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

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

[复制链接]

5

主题

79

回帖

424

积分

中级渣柚V1

积分
424
发表于 2019-10-9 15:22:10 | 显示全部楼层 |阅读模式
本帖最后由 tymfl 于 2019-10-11 23:47 编辑 9 X$ P- E, N  I2 o$ J3 ]! Y' l

3 U) Z- l; j* j& B入手一台伊拉克成色猫盘故障机,连好ttl上电以后
  z% p! G( R& ~. z5 A
  1. TIM-1.01 B6 J" o# B; }" V, s6 Y( Z
  2. WTMI-armada-17.10.1-
    , O5 \6 V; w: @+ @- G
  3. .........
    * y: t; N" L& A1 X! U  s
  4. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB6 ~4 e$ B# B0 C
  5. *** Warning - bad CRC, using default environment
    3 k$ D; ]5 x0 n

  6. ' |5 D+ i# S' m& ]( _, }  y
  7. MMC:   for ssg ledsdhci@d8000: 0
    1 S$ n4 L$ z) D/ `" l5 z
  8. ** File not found boot/armada-3720-customer0.dtb *** X% Z$ t) V5 s, c! U
  9. ** File not found boot/armada-3720-customer0-minifs.dtb **
    5 o) ^5 T3 S2 u/ e2 b8 }
  10. test_mmc_ext4_exist ==1
    + _9 k- x/ k0 w2 {
  11. Comphy-0: UNCONNECTED  5 W8 L6 g# o* J- a- ]/ I# M# E5 k
  12. Comphy-1: UNCONNECTED  
    ! i; a$ v. V; f
  13. Comphy-2: UNCONNECTED  
    & C+ X; t! V0 V0 a; l9 f2 g) |
  14. gpio: pin GPIO23 (gpio 39) value is 1
    . v  u: h$ u% V
  15. ** File not found boot/armada-3720-customer0.dtb **
    1 F/ l  [* B" e/ [
  16. ** File not found boot/armada-3720-customer0-minifs.dtb **
    " e; A" o. w1 E: @" x' ?" G
  17. Enter Recovery mode
    ; O$ J1 R, y1 T9 G& I3 f% E, ]
  18. SCSI:  Hit any key to stop autoboot:  0
复制代码
发现无法找到dtd文件,进入了恢复模式,直接启动或按住reset启动均启动失败,启动信息如下:; u! M" y5 h4 K$ S! c$ I. K) r! q
  1. Marvell>> boot
    & a5 B# K. `+ X  q5 x
  2. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB
    4 A2 J/ L- [; b, `. U* f
  3. device 0 offset 0xcc000, size 0x434000( i6 x1 h" \. i
  4. SF: 4407296 bytes @ 0xcc000 Read: OK
    " h# G$ |' Q2 q  o3 i" T
  5. gpio: pin GPIO21 (gpio 37) value is 12 b% [/ w, M0 @$ Y
  6. gpio: pin GPIO22 (gpio 38) value is 1
    + O0 G6 {( K, i7 ]3 u, d: o
  7. Uncompressed size: 8992256 = 0x893600
    ' O* N/ k7 ?& t0 R& S) Y
  8. device 0 offset 0xc8000, size 0x4000
    / j) D0 _2 o0 T& k. U, D( K
  9. SF: 16384 bytes @ 0xc8000 Read: OK
    2 |% I! O7 a; p* Z0 k% N1 \6 C
  10. ## Flattened Device Tree blob at 04f00000: \0 U8 b( U- ~# C* E8 y
  11.    Booting using the fdt blob at 0x4f00000
    ( n5 J0 F5 R3 B5 a0 k1 Y( e
  12.    Using Device Tree in place at 0000000004f00000, end 0000000004f05df8
    : O  y8 ?  r( }- Q2 S* {+ v

  13. # \$ i- S+ R4 m$ L# _
  14. Starting kernel .../ ?  H1 X, a* L( c+ u
  15. 6 s3 K5 S5 Y6 B
  16. .........1 S) C1 H/ {6 N
  17. [    2.786623]  mmcblk0: p1 p2 p3
    - \6 ~4 f! k+ D$ S2 k
  18. [    2.801201] Starting init: /sbin/init exists but couldn't execute it (error -5)
    6 D- g* \% j% w* I# Q
  19. [    2.813804] cramfs: bad compressed blocksize 4294298135* g2 @; C5 I3 y. P- {+ D
  20. [    2.819206] Starting init: /bin/sh exists but couldn't execute it (error -5)
    0 ~5 t! a( }2 y  _" v8 R
  21. [    2.826452] Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
    ; I' u6 t, K' F0 {# ?) W
  22. [    2.840101] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #21$ ~  E) h$ [- O6 y. {
  23. [    2.847399] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT)% l0 V* A( [8 l$ i; `" m: l
  24. [    2.854957] Call trace:. w# `# P. A) j6 D# y
  25. [    2.857401] [<ffffffc000089b10>] dump_backtrace+0x0/0x108
    & F) h  W0 [8 x
  26. [    2.863150] [<ffffffc000089c2c>] show_stack+0x14/0x20
    / x4 a) Q9 B: g; h+ J
  27. [    2.868371] [<ffffffc00029f280>] dump_stack+0x98/0xb8) @7 R% t3 H0 C5 a6 _/ Z9 s8 p
  28. [    2.873592] [<ffffffc00012b32c>] panic+0xd4/0x2185 x" z7 N  c3 c. V. ?5 l
  29. [    2.878454] [<ffffffc000621d0c>] kernel_init+0xdc/0xe0" R" C. s) ]1 H" r0 V% A0 _
  30. [    2.883761] [<ffffffc000085dd0>] ret_from_fork+0x10/0x40. a4 S# N( A! a3 y9 L4 l8 n8 e
  31. [    2.888890] CPU0: stopping  `8 ?: i7 `" \5 I( O' B( s6 J
  32. [    2.891949] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #215 M% T! i7 y' u' g
  33. [    2.899505] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT)6 z( B$ z6 |' ^( N
  34. [    2.907154] Call trace:$ x6 r1 W. \; }/ K7 m8 n5 o
  35. [    2.909861] [<ffffffc000089b10>] dump_backtrace+0x0/0x108* m* D' N/ R! X! v# M
  36. [    2.915269] [<ffffffc000089c2c>] show_stack+0x14/0x20
    ( y7 u1 t5 W. o8 y" `7 k
  37. [    2.920580] [<ffffffc00029f280>] dump_stack+0x98/0xb8
    / C1 l+ c9 W6 Q: l  M5 O9 k
  38. [    2.925892] [<ffffffc00008efc0>] handle_IPI+0x190/0x1a03 Y2 V! U/ O1 r+ E
  39. [    2.931030] [<ffffffc000082598>] gic_handle_irq+0x78/0x168
    1 e. Z& K. W6 d; [
  40. [    2.936969] Exception stack(0xffffffc0008abda0 to 0xffffffc0008abed0)
    & w5 a& ?" a. O! k! L9 J% a% H( Z
  41. [    2.943547] bda0: ffffffc0008ae000 0000008000000000 ffffffc0008abf00 ffffffc000086840
      B& n; B! B# G6 P2 N7 E: c
  42. [    2.951467] bdc0: 0000000000000145 ffffffc000890000 0000000000000000 00000000000000006 {( n9 o3 x4 w
  43. [    2.959567] bde0: 0000000000000001 0000000000000000 00000000000001c0 0100000000000000
    % L% _, t4 e4 |- y
  44. [    2.967757] be00: 0000000000000001 ffffffc01bfcddc0 00000000fffeddda ffffffc0008abe807 H- [/ U! U+ R2 k
  45. [    2.975676] be20: 00000000000006d0 0000000000000000 0000000000000000 00000000058e8eff# V* V7 D$ O3 P/ D: K: k+ C" U
  46. [    2.983954] be40: ffffffc00426c260 00000000000075af 00000000000ba7a2 0000000000000000
    1 L6 ]) {6 i0 u" u. e( z
  47. [    2.991876] be60: ffffff8000058548 ffffffc0008ae000 ffffffc0008ae8d8 ffffffc00088cad8$ P5 B' W  m2 V& S5 _
  48. [    2.999886] be80: ffffffc0008abf20 ffffffc000631000 ffffffc000890000 ffffffc0008ae0001 S' G8 p' l- M, L. u9 b. K
  49. [    3.007986] bea0: ffffffc0008a8000 0000000000000000 0000000000000000 ffffffc0008abf00
    2 i8 v6 _- K( A! k/ ^
  50. [    3.016353] bec0: ffffffc00008683c ffffffc0008abf00
    1 O: Z3 D% C5 c( k& C0 D3 O
  51. [    3.021215] [<ffffffc000085700>] el1_irq+0x80/0xf8# e5 k+ S  O% t% C) u
  52. [    3.026168] [<ffffffc0000d8164>] default_idle_call+0x1c/0x38
    & }+ t: |) L& o
  53. [    3.032373] [<ffffffc0000d8398>] cpu_startup_entry+0x1c8/0x218
    ; d( S" I8 v8 {$ f* c
  54. [    3.038411] [<ffffffc000621c20>] rest_init+0x88/0x98
    $ C" v5 l1 m* C0 `- j
  55. [    3.043192] [<ffffffc00084d950>] start_kernel+0x384/0x398
    % k/ b- B& u; F, p" ^
  56. [    3.048948] [<0000000000627000>] 0x627000/ I9 w- ~  \$ W. @  q" F
  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 下获取的一些信息0 b5 y7 x0 z$ {0 I2 R
  1. # 查看文件夹 发现boot为空
    * ?+ ^& H- D! R, V8 P) Y( m( t
  2. Marvell>> ext4ls mmc 0:1 /boot
    9 x$ o- s) a6 O& h' p6 ]5 G
  3. <DIR>       4096 .
    ( T; B0 L2 l1 _
  4. <DIR>       4096 ..( e2 z, D) V8 T+ N4 V% o1 I$ W
  5. # Q9 k5 p$ `  ?5 \
  6. # 无法启动usb# t$ N1 @9 S# ?5 T' M3 U) o# s
  7. Marvell>> usb start  @, M& J7 p: I  _  }+ [# u! M
  8. starting USB...
    1 r: t9 s& Z6 O* {% A: x; c& A
  9. No controllers found
复制代码
猜测可能是误删了/boot下的文件导致的,无法通过U盘启动6 A& p3 s4 q+ z7 Y

7 x0 b+ o2 p  T& ^                               
登录/注册后可看大图
2 S0 t4 |0 B& F; ~, Q9 Y/ }
启动进入uboot输入如下命令. U6 @7 ~( s2 U. Z% b  T
  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;"4 d0 s4 M8 x( e& I$ b9 ]" ~
  2. setenv bootargs "console=ttyMV0,115200 root=/dev/mmcblk0p1 rootwait rw init=/bin/sh"
    8 A0 I- z4 o( R5 k* b% S  f
  3. boot
      ^' J* I; h+ |7 w- Y. Z
  4. booti 0x5000000 - 0x4f00000
复制代码
即可进入linux shell
$ t0 f" G) h* U2 `6 ^9 V
  1. # 查看存储设备& y( N3 R  G) F# o: e/ l1 y1 d. m
  2. ls -l /dev/sd
    9 z- k) z  Z8 ?

  3. 6 v  H& }/ k. \+ B' }
  4. # 挂载1 I) N1 q; G6 u% C
  5. mount -t proc /proc* Y" F, k6 D0 m6 _( @
  6. mount /dev/sda4 /mnt
    ) m  ^! L' z( j; S3 Y! p. x% F

  7. " Y, |. p1 a8 W5 Q% Q3 k
  8. # 拷贝文件" G: m& V+ Y* W. ]
  9. cd /mnt
    ! D9 [/ G, ]6 f+ @; |$ P
  10. cp armada-3720-customer0.dtb /boot/
    ( S* j3 l7 A  _& g& E: p
  11. cp Image /boot/
    % L$ w# m" O' \$ A2 q" \
  12. ! ^% }; k5 B) Z' A! Q( m! t
  13. # 退出
    * r* G+ @0 D" a8 `7 M2 k( B
  14. exit
复制代码
重新插拔电源后恢复正常,uboot信息如下:
8 m4 @, @+ ~( ^! n) V, t' H4 \
  1. TIM-1.0" Y  H0 M' b7 S8 N: o
  2. WTMI-armada-17.10.1-
    9 O9 z" u, h; r. X! R; n; w
  3. ENTER init_ddrgen
    * q- N. h4 S% p. P: X( P0 z; t
  4. DDR_TOPOLOGY is 0 :        DDR3, 1CS 512M+ R0 e, n: G2 \7 Z" v% w4 q4 ~
  5. WTMI_CLOCK=2" Z/ o. H' A9 q8 i# F  ^. Y% z0 o
  6. " M5 K: v0 `8 Y. r
  7. Fill memory before self refresh...done) Y% y' Y. k5 G9 |7 Y+ K: u

  8. . K8 o" L7 s* f3 n( [+ W% j
  9. Now in Self-refresh Mode6 u  V% ~: W$ z$ n( _* L$ _
  10. Restore CAS Read and Write Latency3 ]" P$ W% b, ]! y5 [
  11. Restore termination values to original values9 E4 U3 s7 a+ G9 G  L1 r
  12. Exited self-refresh ...' G5 ]1 S* Q& p3 F6 @) r, c, l
  13. 1 y) ~! E# d! `. o( J
  14. DLL TUNING
    ' G5 q9 s: c6 s' F% z4 a; x6 T, B5 \
  15. ==============) Q+ q9 [( R; Q4 y: _( x7 v
  16.    DLL 0xc0001050[21:16]: [0,31,18]: q, k+ x8 S: F; E
  17.    DLL 0xc0001050[29:24]: [0,2b,15]
    1 j9 A1 ?) [. _+ X
  18.    DLL 0xc0001054[21:16]: [0,32,19]; d$ S4 |$ u9 V1 ]: A$ x7 o
  19.    DLL 0xc0001054[29:24]: [0,2d,16]4 R6 K7 j0 g; I+ o2 z$ s
  20.    DLL 0xc0001074[21:16]: [0,3f,1f]9 g2 h* z* I: r/ Z
  21.    DLL 0xc0001074
    + `% Z, Z: O5 v. w" R
  22. - s1 U! h! j) }
  23. U-Boot 2017.03-armada-17.10.1 (Mar 07 2018 - 17:11:33 +0800)* }" h0 s. _( R$ [6 G% y

  24. . J- m' g7 B5 @1 A: f+ z
  25. Model: Marvell Armada 3720 for Eli Cat5 d# a& W9 F! u" M/ E! m% \
  26.        CPU    @ 1000 [MHz]
    2 d( s9 h6 h3 w- _' ]
  27.        L2     @ 800 [MHz]+ K7 Q  E! M8 V- W
  28.        TClock @ 200 [MHz]6 k6 z8 X7 j! h: L
  29.        DDR    @ 800 [MHz]9 A1 p6 V: A2 {4 p( O
  30. I2C:   ready
    . S) L- I% U: H8 m4 P3 l* f3 J2 a
  31. DRAM:  512 MiB
    ( P- T, g8 q  C) @: V( G( X/ P
  32. U-Boot DT blob at : 000000001f73a5204 i  `( q- K/ `: g' v8 s% B
  33. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB$ A3 D6 p7 q, |* M
  34. *** Warning - bad CRC, using default environment8 g* i6 X1 f  }, {( I
  35. , R" A2 c, z6 o
  36. MMC:   for ssg ledsdhci@d8000: 04 [, O- L/ j7 d+ |6 a
  37. 12931 bytes read in 16 ms (789.1 KiB/s)7 i3 y. M8 D. Q0 F& M0 I& C
  38. gpio: pin GPIO23 (gpio 39) value is 1
    & l* H; G$ O8 v
  39. gpio: pin GPIO23 (gpio 39) value is 1
    # R1 T, {/ K/ o0 `  R
  40. gpio: pin GPIO23 (gpio 39) value is 1# V  Y: p5 W. ~5 u
  41. Comphy-0: USB3_HOST0    5 Gbps    ( D; K* v6 f  [2 _% E
  42. Comphy-1: SGMII0        1.25 Gbps
    $ a) m6 p& Z9 |8 z! l( b
  43. Comphy-2: SATA0         6 Gbps   
    0 h. O  |+ s! h. i0 B
  44. gpio: pin GPIO23 (gpio 39) value is 17 A, m4 y" z0 J
  45. 12931 bytes read in 4 ms (3.1 MiB/s)' a$ d( `3 _9 w$ C0 X
  46. Enter Normal mode
    1 I4 |4 I  Q3 F: F, M8 M- Q
  47. SCSI:  Hit any key to stop autoboot:  0
复制代码

. ?! j$ l4 v4 J' }" c' g3 E- a补充下:这样修改后,只能一次有效请删除mmc 0:3 分区的rootfs.tar.bz2和upgrade_eli_38.img文件。
+ ?  O& _1 y1 L或者直接在linux shell里面刷写新uboot
+ j% \" o' y2 h: t9 R( d) V3 r' g- w7 M# d! j; G. q- d; L/ l& H9 ~9 R

; X4 h5 T3 Z5 v( U) A0 c9 D0 A9 h8 q3 x* a9 D$ T

评分

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

查看全部评分

5

主题

57

回帖

491

积分

中级渣柚V1

积分
491
发表于 2019-10-9 15:50:15 | 显示全部楼层
本帖最后由 xingjiwoniu 于 2019-10-9 16:00 编辑
/ `$ C+ q; \, a/ ^  j6 ?. N" T8 k% G" D" w' D; W9 n( _. P3 C7 P, g0 _
感谢分享

4

主题

78

回帖

706

积分

中级渣柚V2

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

7

主题

450

回帖

706

积分

中级渣柚V2

积分
706

热心会员

发表于 2019-10-9 17:09:08 | 显示全部楼层
感谢分享0 }! d5 W3 n' o, }/ H0 i

1

主题

20

回帖

204

积分

中级渣柚V1

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

4

主题

114

回帖

323

积分

中级渣柚V1

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

5

主题

79

回帖

424

积分

中级渣柚V1

积分
424
 楼主| 发表于 2019-10-9 20:36:10 | 显示全部楼层
GokuSun 发表于 2019-10-9 20:25
+ }; l- u5 O+ V* ]* t+ _. O5 a按照你这个执行不成功啊
" l9 B( E. f+ J# r7 v
还是提示找不到?

0

主题

12

回帖

40

积分

初级渣柚V1

积分
40
发表于 2019-10-9 20:45:54 | 显示全部楼层
顶一下顶一下3 Y4 h# ^- u3 \: T3 u

4

主题

114

回帖

323

积分

中级渣柚V1

积分
323
发表于 2019-10-9 20:48:03 | 显示全部楼层
tymfl 发表于 2019-10-9 20:36- U1 z6 d( m& u" U1 O) Y1 ~/ ^
还是提示找不到?
" T' w8 R! ?1 S3 v& X; D& |* t5 @
是还是原样子,启动还是end Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
/ P& A9 ?2 T0 u: D" M完全按照您的步骤做的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-3 10:04 , Processed in 0.073148 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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