找回密码
 立即注册
查看: 11025|回复: 41

[教程] 猫盘故障机的自我救赎

[复制链接]

5

主题

79

回帖

423

积分

中级渣柚V1

积分
423
发表于 2019-10-9 15:22:10 | 显示全部楼层 |阅读模式
本帖最后由 tymfl 于 2019-10-11 23:47 编辑 # O0 h6 R. Z, w( Y/ E6 E
) A0 N" L/ X$ v" v3 J& c
入手一台伊拉克成色猫盘故障机,连好ttl上电以后# O) {: l' h' R# }8 p& x2 o
  1. TIM-1.0- E0 q3 n3 }9 h" z$ T
  2. WTMI-armada-17.10.1-
    5 v% c/ n3 L! c" G3 L
  3. .........
    1 Q. J* F1 m" ]0 ?
  4. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB1 A: Z. k# t- t" K, j2 Q' m
  5. *** Warning - bad CRC, using default environment
    6 H4 @2 Z. ?7 Q4 e7 P$ u/ n

  6. ( S4 I. F9 s, I1 v8 }) Y5 N
  7. MMC:   for ssg ledsdhci@d8000: 0. o- n- j" c6 |" w/ }; u2 L
  8. ** File not found boot/armada-3720-customer0.dtb **
    1 s& j( G9 I7 `, I4 d: _0 x
  9. ** File not found boot/armada-3720-customer0-minifs.dtb **/ z) i, P% m6 G% M! `/ A
  10. test_mmc_ext4_exist ==1% Q3 D* H- d* p8 z8 T3 `
  11. Comphy-0: UNCONNECTED  
    & J7 q5 V* O( @. w% z
  12. Comphy-1: UNCONNECTED  ) g. v- P' y+ @7 Z* S+ \
  13. Comphy-2: UNCONNECTED  
    * ?9 z  z+ e( w) U0 W1 w4 x
  14. gpio: pin GPIO23 (gpio 39) value is 16 b& ^$ W3 O/ O' m: E+ y# r; r! v
  15. ** File not found boot/armada-3720-customer0.dtb **
    % S7 @& w, f5 j' {
  16. ** File not found boot/armada-3720-customer0-minifs.dtb **. p* ]7 F$ E% s& ~
  17. Enter Recovery mode
    ' y  z' C. V5 M# P; m
  18. SCSI:  Hit any key to stop autoboot:  0
复制代码
发现无法找到dtd文件,进入了恢复模式,直接启动或按住reset启动均启动失败,启动信息如下:
$ K* w5 D2 L" Q7 A
  1. Marvell>> boot
    : r/ `+ E& v' i  \
  2. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB
    8 J" z0 Y( |8 X* ?2 m+ Z% j6 l
  3. device 0 offset 0xcc000, size 0x434000
    8 g, B* L! y) r, s: [) ~# C2 V
  4. SF: 4407296 bytes @ 0xcc000 Read: OK+ g' w7 V) d+ ~$ M! r' S2 y
  5. gpio: pin GPIO21 (gpio 37) value is 1
    - @+ g+ V2 U6 \
  6. gpio: pin GPIO22 (gpio 38) value is 1; B6 n0 v, B) s8 l2 U0 Q
  7. Uncompressed size: 8992256 = 0x893600; q/ i7 j* Z. v& W, L
  8. device 0 offset 0xc8000, size 0x4000
    6 N  k5 ?" U' A8 B
  9. SF: 16384 bytes @ 0xc8000 Read: OK% u4 `2 F2 P- K) [
  10. ## Flattened Device Tree blob at 04f00000
      ^: o( j# o6 ?/ {3 o$ f  f; p
  11.    Booting using the fdt blob at 0x4f00000
    7 V- m8 m+ {: K% R
  12.    Using Device Tree in place at 0000000004f00000, end 0000000004f05df84 {  a7 W) s# O6 G- H
  13. 1 ^: [& k% ]" u  V6 f3 t  f
  14. Starting kernel ...
    . b( m0 e( g4 s/ x6 ^9 I: g

  15. + F& `4 I0 u% D! m: ?- r* p
  16. .......... e% s; h4 ?: x9 G5 k" u! }
  17. [    2.786623]  mmcblk0: p1 p2 p3& W: b$ {; g! \" ?0 w1 l0 p
  18. [    2.801201] Starting init: /sbin/init exists but couldn't execute it (error -5)
      \. M% c7 \; |
  19. [    2.813804] cramfs: bad compressed blocksize 4294298135
    / m% b1 M' A  i7 X$ ]! R; u$ b. W
  20. [    2.819206] Starting init: /bin/sh exists but couldn't execute it (error -5)
    ' ^. G4 Y" d) X6 _% R' C
  21. [    2.826452] Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
    4 X; O( `( j" g. o/ O% F
  22. [    2.840101] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #218 O/ l5 x5 t% G* J. H6 D
  23. [    2.847399] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT)
    4 o3 y; W8 n) K6 Z4 f
  24. [    2.854957] Call trace:
    & j' c+ A# z' j$ k# K
  25. [    2.857401] [<ffffffc000089b10>] dump_backtrace+0x0/0x108. {3 p: ~* C. \9 i9 [
  26. [    2.863150] [<ffffffc000089c2c>] show_stack+0x14/0x20
    1 Q; i" M/ j& e8 c0 d" L
  27. [    2.868371] [<ffffffc00029f280>] dump_stack+0x98/0xb8
    0 ~' ]9 r' e3 L/ W) I+ V
  28. [    2.873592] [<ffffffc00012b32c>] panic+0xd4/0x218
    ( t! j( F+ H7 r5 h2 C3 `
  29. [    2.878454] [<ffffffc000621d0c>] kernel_init+0xdc/0xe0; {( _% ?: ?' i6 b
  30. [    2.883761] [<ffffffc000085dd0>] ret_from_fork+0x10/0x40
    - g0 Z) t: |7 @# b* x
  31. [    2.888890] CPU0: stopping
    . T, `; Q) s, M6 o1 W$ y: m
  32. [    2.891949] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #214 o* D" u4 t8 S, E4 `
  33. [    2.899505] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT)6 U1 k5 h2 }- e: m# V3 x
  34. [    2.907154] Call trace:& t. m- ?: N+ {8 B. c3 a3 N" ~: h
  35. [    2.909861] [<ffffffc000089b10>] dump_backtrace+0x0/0x108& ^0 I& C2 J8 {' S+ i' k$ s
  36. [    2.915269] [<ffffffc000089c2c>] show_stack+0x14/0x20
    ) f# p5 B, M: |( }! ^1 I
  37. [    2.920580] [<ffffffc00029f280>] dump_stack+0x98/0xb8
    2 q' |, z6 {  V  F6 @
  38. [    2.925892] [<ffffffc00008efc0>] handle_IPI+0x190/0x1a0
    7 @: s" J* i4 o, U" O  w* \- q
  39. [    2.931030] [<ffffffc000082598>] gic_handle_irq+0x78/0x168- t5 r" O; E( A
  40. [    2.936969] Exception stack(0xffffffc0008abda0 to 0xffffffc0008abed0)+ w5 X" k* o0 m3 _6 z
  41. [    2.943547] bda0: ffffffc0008ae000 0000008000000000 ffffffc0008abf00 ffffffc000086840
    , J+ X4 ?* Q- @- l; B! u, E% {7 t
  42. [    2.951467] bdc0: 0000000000000145 ffffffc000890000 0000000000000000 0000000000000000! P) Y" Z" O2 n+ ?# o
  43. [    2.959567] bde0: 0000000000000001 0000000000000000 00000000000001c0 0100000000000000& [: K5 F; w2 N- _! n- a
  44. [    2.967757] be00: 0000000000000001 ffffffc01bfcddc0 00000000fffeddda ffffffc0008abe80$ p! C- {/ F! i9 a9 m# I
  45. [    2.975676] be20: 00000000000006d0 0000000000000000 0000000000000000 00000000058e8eff
    / f/ E4 B  q9 }* S: s/ @
  46. [    2.983954] be40: ffffffc00426c260 00000000000075af 00000000000ba7a2 0000000000000000
    4 t( T& }) {; u+ R( [
  47. [    2.991876] be60: ffffff8000058548 ffffffc0008ae000 ffffffc0008ae8d8 ffffffc00088cad8. F6 u. u7 h# g; A2 F% y$ ?
  48. [    2.999886] be80: ffffffc0008abf20 ffffffc000631000 ffffffc000890000 ffffffc0008ae000
      y' X; {2 c+ D5 z: Q) `  D. x# l
  49. [    3.007986] bea0: ffffffc0008a8000 0000000000000000 0000000000000000 ffffffc0008abf00
    / n0 `0 b- m6 H
  50. [    3.016353] bec0: ffffffc00008683c ffffffc0008abf00
    2 ?! A1 K! V2 l' h) F3 U0 P. b1 n9 e7 R
  51. [    3.021215] [<ffffffc000085700>] el1_irq+0x80/0xf8, c/ ]; `  D1 H- G) u
  52. [    3.026168] [<ffffffc0000d8164>] default_idle_call+0x1c/0x38
    ' Y- O1 S, a% e  s( U; f& x' {
  53. [    3.032373] [<ffffffc0000d8398>] cpu_startup_entry+0x1c8/0x218
    ) J* }. v) c7 i6 {
  54. [    3.038411] [<ffffffc000621c20>] rest_init+0x88/0x98
    3 k* j2 j# w) ]
  55. [    3.043192] [<ffffffc00084d950>] start_kernel+0x384/0x398
    ) h( W7 u( l# n: m, g
  56. [    3.048948] [<0000000000627000>] 0x6270002 ?' m4 C# f% L1 T7 E
  57. [    3.053272] ---[ end Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
复制代码
uboot 下获取的一些信息
9 }. p# L* q) S) ~6 H6 o
  1. # 查看文件夹 发现boot为空  X1 Y' T% K$ f( t# l
  2. Marvell>> ext4ls mmc 0:1 /boot: x4 K& w9 d$ X0 W7 V6 z' @3 I
  3. <DIR>       4096 .
    ! Y: |: l6 o1 X- `$ j, D) I
  4. <DIR>       4096 ..
    $ b3 S, X" G+ D  v6 X& m
  5. + [: O4 |6 ?9 _# c) `/ Y
  6. # 无法启动usb) o6 _- _* v# r/ o( Z% R
  7. Marvell>> usb start
    ; Q+ u, N* Z1 I: [
  8. starting USB...1 d( V# b$ R( |  K
  9. No controllers found
复制代码
猜测可能是误删了/boot下的文件导致的,无法通过U盘启动: q1 g' P+ [6 }/ y

# `" D( l- C) {7 b% O# e) r4 N                               
登录/注册后可看大图

+ y$ k+ R4 h- V5 w& [启动进入uboot输入如下命令- Y+ f6 h( h2 y- Z% K, o
  1. setenv bootcmd "sf probe 0;sf read 0x8000000 0x0CC000 0x434000;gpio set GPIO21;gpio set GPIO22;unzip 0x8000000 0x5000000;sf read 0x4f00000 0x0c8000 4000;"
    8 D7 h- n1 H+ v$ X/ @  C
  2. setenv bootargs "console=ttyMV0,115200 root=/dev/mmcblk0p1 rootwait rw init=/bin/sh"% Q6 G; f; s0 D4 O. B2 ~
  3. boot
    * z% n- {) ?( r3 `5 Q5 U7 B" V+ h6 Q3 L
  4. booti 0x5000000 - 0x4f00000
复制代码
即可进入linux shell9 C: t" j( r* r3 d( u: e8 Q
  1. # 查看存储设备% f+ {2 z6 b7 A3 U" |1 Z
  2. ls -l /dev/sd' i# y/ {9 W+ O8 k0 E; T7 \
  3. $ T8 _9 s  u* P2 m* J, h
  4. # 挂载* |, x( M+ _/ D# o; a- p$ [
  5. mount -t proc /proc
    3 _' S* i; \$ Q8 n$ q( |. s( ]
  6. mount /dev/sda4 /mnt
    % [9 R4 o; }8 W. Q

  7. : l0 }, p1 }4 D  z6 N: R& R% R5 J: r
  8. # 拷贝文件. C8 B5 {! |) h2 p" R6 N7 }  l
  9. cd /mnt
    8 I9 L0 p! _" e
  10. cp armada-3720-customer0.dtb /boot/& T+ M  \- M  s/ k: t
  11. cp Image /boot/2 u( Q. }& U/ x. f4 @
  12. $ k( T4 e5 l1 b2 o' P6 Y% v, j
  13. # 退出
    / r$ z4 X2 l  }6 n+ x
  14. exit
复制代码
重新插拔电源后恢复正常,uboot信息如下:
7 O3 e) r6 T: ^$ Y' m' ]
  1. TIM-1.0
    - p9 M8 c4 H$ [9 U/ |0 M: [/ r: g
  2. WTMI-armada-17.10.1-9 S$ j5 f! n; ?( V0 E: b2 {0 q
  3. ENTER init_ddrgen+ z+ g0 @* d- l# G
  4. DDR_TOPOLOGY is 0 :        DDR3, 1CS 512M1 q' a8 T, O# q. M+ u- B0 q
  5. WTMI_CLOCK=21 [% L+ m$ I6 n% D
  6. # F! s* v% L% u. j9 u! N
  7. Fill memory before self refresh...done
    7 |6 F; M. V# p3 m' @
  8. ' h( a" ]" o1 I3 q: [% l* w/ k
  9. Now in Self-refresh Mode; W- ?( H% s3 k7 E$ L# E
  10. Restore CAS Read and Write Latency
    7 Z5 ]5 A& Q4 x# A9 W" p/ Z4 l" m
  11. Restore termination values to original values0 p/ R$ }6 O; R) Q# T& h. d2 m  X! u- R, r
  12. Exited self-refresh ...
    1 s! ^* u$ N# W% W5 y- ^
  13. - d$ K( t5 I' V/ U6 x. H
  14. DLL TUNING
    ( ]' |, r" {9 ~8 [6 r/ E1 F
  15. ==============! y9 f; x0 J# z' l" c( S
  16.    DLL 0xc0001050[21:16]: [0,31,18]
    4 O( j3 G# S7 j. f
  17.    DLL 0xc0001050[29:24]: [0,2b,15]2 e( ?; I/ p4 Y5 K2 N
  18.    DLL 0xc0001054[21:16]: [0,32,19]+ X  l9 x" h& R! i
  19.    DLL 0xc0001054[29:24]: [0,2d,16]
    * ~6 R$ g- t6 Y: O' s: Z$ v
  20.    DLL 0xc0001074[21:16]: [0,3f,1f]( m6 f- n! f) a" k
  21.    DLL 0xc0001074
    . A) r; ~0 I" ]# g+ ?+ B
  22. 3 T4 d5 r. I2 c
  23. U-Boot 2017.03-armada-17.10.1 (Mar 07 2018 - 17:11:33 +0800), i" B8 z1 f' J$ q8 p$ r$ m7 a
  24.   c7 _/ P( T! b4 }
  25. Model: Marvell Armada 3720 for Eli Cat3 L* |" ^( E4 }8 U  S
  26.        CPU    @ 1000 [MHz], p. c/ ?7 w5 ?4 e6 p+ f: Z
  27.        L2     @ 800 [MHz]( Y: Y" e, x) b% Z
  28.        TClock @ 200 [MHz]& C1 F  x: V$ W. f0 j
  29.        DDR    @ 800 [MHz]
    " a1 q% H) \/ L2 B$ W1 s+ M/ c
  30. I2C:   ready
    8 F( j4 ?- S- U) ^
  31. DRAM:  512 MiB; }* y2 F/ t5 r1 Y2 M
  32. U-Boot DT blob at : 000000001f73a520
    : u4 @  W  O. v4 g$ p5 _
  33. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB( t* V4 }" W& C3 A- W1 S0 y3 W
  34. *** Warning - bad CRC, using default environment
    : N* m/ s5 |: C; j
  35. ! R. z+ B1 m1 N1 T, j
  36. MMC:   for ssg ledsdhci@d8000: 0
    * T9 N% x' }4 P8 T1 X
  37. 12931 bytes read in 16 ms (789.1 KiB/s). O) W( P/ [0 K  E- X) ?8 @8 p
  38. gpio: pin GPIO23 (gpio 39) value is 1
    5 ~5 o; Z5 N+ Z
  39. gpio: pin GPIO23 (gpio 39) value is 1% s) k! W2 D: N" D9 w
  40. gpio: pin GPIO23 (gpio 39) value is 1
    $ {' t% k9 F# S/ w$ h( |. c# ~
  41. Comphy-0: USB3_HOST0    5 Gbps    + M/ n$ g  M/ n3 K* i
  42. Comphy-1: SGMII0        1.25 Gbps 4 g5 ?3 \8 o# x8 k$ c
  43. Comphy-2: SATA0         6 Gbps   
    : Z" K+ c/ Q; D
  44. gpio: pin GPIO23 (gpio 39) value is 12 d0 o: {, G2 _! @& E8 C+ i
  45. 12931 bytes read in 4 ms (3.1 MiB/s)3 y: H% J/ a6 Z3 h
  46. Enter Normal mode
    * O7 l# k; ~4 }; M% i* C( c, Q% t
  47. SCSI:  Hit any key to stop autoboot:  0
复制代码

- [) C: {9 S/ P; D- ~补充下:这样修改后,只能一次有效请删除mmc 0:3 分区的rootfs.tar.bz2和upgrade_eli_38.img文件。
& S5 K8 p1 V+ X' _3 S或者直接在linux shell里面刷写新uboot
) s& c2 H5 q+ u. b* ?
, k$ S8 O, ~& ^, _( L& O
) c" l$ ~. B3 F
! S% j$ Z  F* N# N; w

评分

参与人数 2渣金 +4 收起 理由
zxjwwwh + 1 很给力!
断章 + 3 很给力!

查看全部评分

5

主题

57

回帖

491

积分

中级渣柚V1

积分
491
发表于 2019-10-9 15:50:15 | 显示全部楼层
本帖最后由 xingjiwoniu 于 2019-10-9 16:00 编辑 6 V5 U9 S2 n8 I( R# h2 u" p' w' s

/ r" }/ F. t8 @感谢分享

4

主题

78

回帖

706

积分

中级渣柚V2

积分
706
发表于 2019-10-9 16:07:37 | 显示全部楼层
谢谢分享

7

主题

450

回帖

705

积分

中级渣柚V2

积分
705

热心会员

发表于 2019-10-9 17:09:08 | 显示全部楼层
感谢分享' I+ A# S& j/ x' e: [. ?

1

主题

20

回帖

203

积分

中级渣柚V1

积分
203
发表于 2019-10-9 17:10:58 | 显示全部楼层
收藏 感谢!

4

主题

114

回帖

323

积分

中级渣柚V1

积分
323
发表于 2019-10-9 20:25:44 | 显示全部楼层
按照你这个执行不成功啊

5

主题

79

回帖

423

积分

中级渣柚V1

积分
423
 楼主| 发表于 2019-10-9 20:36:10 | 显示全部楼层
GokuSun 发表于 2019-10-9 20:25
( R: M6 w+ O  w( ^0 E7 f按照你这个执行不成功啊

- G$ a4 Q' @5 u( m6 z还是提示找不到?

0

主题

12

回帖

40

积分

初级渣柚V1

积分
40
发表于 2019-10-9 20:45:54 | 显示全部楼层
顶一下顶一下& \4 |4 I  b2 X+ L2 S* \0 }3 A7 Y

4

主题

114

回帖

323

积分

中级渣柚V1

积分
323
发表于 2019-10-9 20:48:03 | 显示全部楼层
tymfl 发表于 2019-10-9 20:36
+ V" B% X3 g6 Y1 g还是提示找不到?
2 {! W5 l2 e* O& H; v5 }
是还是原样子,启动还是end Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.  _( k% V* i' }6 Q; V3 Q, a
完全按照您的步骤做的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|矿渣社区 ( 黔ICP备2024020525号-1 )

GMT+8, 2024-4-28 20:15 , Processed in 0.057735 second(s), 7 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表