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

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

[复制链接]

5

主题

79

回帖

424

积分

中级渣柚V1

积分
424
发表于 2019-10-9 15:22:10 | 显示全部楼层 |阅读模式
本帖最后由 tymfl 于 2019-10-11 23:47 编辑
2 n/ t( y- W( Z* ]# C' B. L8 O- W  n1 M/ N
入手一台伊拉克成色猫盘故障机,连好ttl上电以后& V4 @% p/ H2 ~' R
  1. TIM-1.0
    2 F, A& X$ E9 u$ T+ O
  2. WTMI-armada-17.10.1-
    ; J3 R4 r: U2 W8 Z& n
  3. .........$ P# k: c, K2 I  Y' s/ [
  4. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB
    ) c" x2 \! |5 D
  5. *** Warning - bad CRC, using default environment
    0 s- {+ Z- ~9 O( `/ x

  6. " g: G% g$ d; a- K% \" m4 v
  7. MMC:   for ssg ledsdhci@d8000: 0
    5 A9 l, n  Z: C& T
  8. ** File not found boot/armada-3720-customer0.dtb **/ ~7 \" T% w# M0 w+ t6 G
  9. ** File not found boot/armada-3720-customer0-minifs.dtb **
    , c% @0 [; D8 w9 g. {. ]
  10. test_mmc_ext4_exist ==14 [2 I4 ?2 l8 X$ p8 t. [
  11. Comphy-0: UNCONNECTED  $ j' @+ f- K) Q' c9 S7 s
  12. Comphy-1: UNCONNECTED  0 ]* ?& i7 A* n' L6 a
  13. Comphy-2: UNCONNECTED  
    8 Q  b/ Z9 N2 u% A6 s% {) ^- C
  14. gpio: pin GPIO23 (gpio 39) value is 1
    / ?) p+ G. a7 V7 g8 b3 W
  15. ** File not found boot/armada-3720-customer0.dtb **
    3 y: r! ]+ B; }. F  \
  16. ** File not found boot/armada-3720-customer0-minifs.dtb **
    9 H! ^8 i# E2 h0 b7 O' s( h! Z
  17. Enter Recovery mode
    / U  `) ~- S! ]" T9 ~4 ?
  18. SCSI:  Hit any key to stop autoboot:  0
复制代码
发现无法找到dtd文件,进入了恢复模式,直接启动或按住reset启动均启动失败,启动信息如下:! p1 e& I, Z. x0 @1 |: Z9 P
  1. Marvell>> boot
    ) T% T. a* n5 X5 l3 |
  2. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB
    ) a. E1 Y- K+ |
  3. device 0 offset 0xcc000, size 0x4340004 c# q1 @0 a6 A2 B- U
  4. SF: 4407296 bytes @ 0xcc000 Read: OK. N; |, Z9 L. b1 K
  5. gpio: pin GPIO21 (gpio 37) value is 17 T7 Y5 F& d1 N
  6. gpio: pin GPIO22 (gpio 38) value is 1
    & T) D+ Z- N( s( r3 A: ~: s- P
  7. Uncompressed size: 8992256 = 0x8936005 z7 B- M5 ?% N4 E9 ~+ y
  8. device 0 offset 0xc8000, size 0x4000
    / ]* V" M  J9 z, B* q' t
  9. SF: 16384 bytes @ 0xc8000 Read: OK( J4 G6 _/ c" o. H# a
  10. ## Flattened Device Tree blob at 04f00000
    - I9 Y6 G$ a2 X* ]7 X, e: S) }3 H
  11.    Booting using the fdt blob at 0x4f00000. G6 r: ~$ T6 ~+ T7 h! J$ b+ F; Y
  12.    Using Device Tree in place at 0000000004f00000, end 0000000004f05df8
    . Z8 P) J6 C6 Y, v

  13. 3 u/ e: p" G- U8 Q& K* c) z5 H
  14. Starting kernel ...$ |; i" x5 B+ Y1 b  m) @3 S8 n

  15. ' B: ]$ t" q. o+ w
  16. .........
    # _: o) L1 X1 v/ d+ L) D! V
  17. [    2.786623]  mmcblk0: p1 p2 p3
    3 [4 ~1 J1 a6 m& q) M5 z
  18. [    2.801201] Starting init: /sbin/init exists but couldn't execute it (error -5)0 \& N7 e7 d, M2 M' V* F
  19. [    2.813804] cramfs: bad compressed blocksize 4294298135
    0 Z. o0 k$ ]% Y  K8 ^$ Z
  20. [    2.819206] Starting init: /bin/sh exists but couldn't execute it (error -5)
    9 A7 [' R. D0 W& ?8 ~) K
  21. [    2.826452] Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
    0 y. c% J- w) V4 K1 m
  22. [    2.840101] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #21' ^$ ^/ C, g. U
  23. [    2.847399] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT)
    5 S. k; c' @; Q0 ~
  24. [    2.854957] Call trace:# Z! @. [5 t- o% D
  25. [    2.857401] [<ffffffc000089b10>] dump_backtrace+0x0/0x108
    ! Z1 L2 a$ |7 i# w1 s- q* k0 ]8 E
  26. [    2.863150] [<ffffffc000089c2c>] show_stack+0x14/0x20
    % T( x! |% i8 U8 q
  27. [    2.868371] [<ffffffc00029f280>] dump_stack+0x98/0xb8
    0 ?; j1 X8 A( X9 c; a) k" Y
  28. [    2.873592] [<ffffffc00012b32c>] panic+0xd4/0x218+ S, T( j( P% k* c
  29. [    2.878454] [<ffffffc000621d0c>] kernel_init+0xdc/0xe0
    ; v3 l8 _4 `1 o; E
  30. [    2.883761] [<ffffffc000085dd0>] ret_from_fork+0x10/0x40) W2 E5 B0 w! d! h
  31. [    2.888890] CPU0: stopping9 c7 P% W+ ~+ Y$ {5 n
  32. [    2.891949] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #21
    / |. J) B6 \$ z0 ^: ]
  33. [    2.899505] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT)
    3 A& P( \, i* e! K3 C3 \
  34. [    2.907154] Call trace:
    : T3 [* p. Y8 Y1 i, T; }
  35. [    2.909861] [<ffffffc000089b10>] dump_backtrace+0x0/0x108
    . p, F9 l% p, T6 E8 h: T  p
  36. [    2.915269] [<ffffffc000089c2c>] show_stack+0x14/0x20
    & k8 F" X1 O  y- b3 F, Y8 a" H
  37. [    2.920580] [<ffffffc00029f280>] dump_stack+0x98/0xb86 }. o7 N% {! Q
  38. [    2.925892] [<ffffffc00008efc0>] handle_IPI+0x190/0x1a07 z5 J, ^2 z, Y8 a" |0 ]
  39. [    2.931030] [<ffffffc000082598>] gic_handle_irq+0x78/0x1684 Q. w# q1 k& J5 A& v! J! ~
  40. [    2.936969] Exception stack(0xffffffc0008abda0 to 0xffffffc0008abed0)( U' F' C2 |% w
  41. [    2.943547] bda0: ffffffc0008ae000 0000008000000000 ffffffc0008abf00 ffffffc0000868409 f& h9 b' N3 ^2 h6 M$ `1 p
  42. [    2.951467] bdc0: 0000000000000145 ffffffc000890000 0000000000000000 0000000000000000
    # Z# O4 @  v  T* E( D! ~
  43. [    2.959567] bde0: 0000000000000001 0000000000000000 00000000000001c0 0100000000000000
    5 a0 X: X9 ^. B% `/ j1 J% a
  44. [    2.967757] be00: 0000000000000001 ffffffc01bfcddc0 00000000fffeddda ffffffc0008abe80/ N# f1 i- a& u  A3 H
  45. [    2.975676] be20: 00000000000006d0 0000000000000000 0000000000000000 00000000058e8eff
    7 A4 {0 N6 b: G/ G
  46. [    2.983954] be40: ffffffc00426c260 00000000000075af 00000000000ba7a2 0000000000000000. h, t2 N7 A. {. a$ b
  47. [    2.991876] be60: ffffff8000058548 ffffffc0008ae000 ffffffc0008ae8d8 ffffffc00088cad8
    7 X5 ]' `3 r- g  u
  48. [    2.999886] be80: ffffffc0008abf20 ffffffc000631000 ffffffc000890000 ffffffc0008ae000' u0 p/ j/ H$ N6 x
  49. [    3.007986] bea0: ffffffc0008a8000 0000000000000000 0000000000000000 ffffffc0008abf00
    4 X* {' g8 h  z$ V, M6 e0 K# A% h
  50. [    3.016353] bec0: ffffffc00008683c ffffffc0008abf00
    ! {' V# u, F/ Z
  51. [    3.021215] [<ffffffc000085700>] el1_irq+0x80/0xf8
    3 L$ E" \6 J' r
  52. [    3.026168] [<ffffffc0000d8164>] default_idle_call+0x1c/0x38
    : C! ?5 L" b' `+ G. ~
  53. [    3.032373] [<ffffffc0000d8398>] cpu_startup_entry+0x1c8/0x2187 J* Y( B5 ]+ M
  54. [    3.038411] [<ffffffc000621c20>] rest_init+0x88/0x988 w$ x$ M2 E* B5 ]3 h6 {7 `
  55. [    3.043192] [<ffffffc00084d950>] start_kernel+0x384/0x398
    1 A0 Y( u& ?; V* B+ B
  56. [    3.048948] [<0000000000627000>] 0x627000
    0 c1 i; R* Y  p8 k3 P" H1 `
  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 下获取的一些信息
" i. i) a4 R* x& G/ ^/ w- b- E
  1. # 查看文件夹 发现boot为空" X/ s' n7 H8 @8 m% D; W. i
  2. Marvell>> ext4ls mmc 0:1 /boot
    ( a' X- ?# v1 Q' x! p
  3. <DIR>       4096 .. u* ]0 x$ J$ I; [; V3 i; o& X
  4. <DIR>       4096 ..4 K: o: q4 Q$ O
  5. 1 Y: c7 H! T, C" D/ x
  6. # 无法启动usb" l0 p, H& C1 g, m, I3 T, V& @
  7. Marvell>> usb start+ V* u% I  o" f! q2 f1 W
  8. starting USB...
    , ]7 r0 B) U& X2 x+ g. C
  9. No controllers found
复制代码
猜测可能是误删了/boot下的文件导致的,无法通过U盘启动
2 j: r# O4 [. N7 e3 }5 c$ }
3 t, G4 q8 V3 M) u! j3 l$ Y1 j
                               
登录/注册后可看大图
) A! ?1 Z5 \0 P5 F+ y
启动进入uboot输入如下命令3 l4 Q; v/ F) N: s" X5 ?; \1 H
  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;"+ f8 j; a$ T" }% m
  2. setenv bootargs "console=ttyMV0,115200 root=/dev/mmcblk0p1 rootwait rw init=/bin/sh"
    ; b/ i: S; p9 Y; W+ ?' H: x7 ?% k& F- c
  3. boot
    ) n, T$ G( v: A- ?
  4. booti 0x5000000 - 0x4f00000
复制代码
即可进入linux shell& M) m5 L# i. i8 O2 p
  1. # 查看存储设备4 G' y$ ^9 ^- O1 z
  2. ls -l /dev/sd
    , R# V0 ]6 M- \- v' C* `0 F& O

  3. 6 _- V$ N, l* J
  4. # 挂载/ B1 L1 e" Y/ u0 f( d8 e
  5. mount -t proc /proc
    3 H! a. O' {- n9 g4 `! p& M3 Z
  6. mount /dev/sda4 /mnt0 B5 Q; z+ D+ L: f: i

  7. 1 P5 P3 b0 y& n2 V
  8. # 拷贝文件5 a1 i6 {, E- m0 }/ ^( L0 z
  9. cd /mnt+ Q2 j, q/ u6 `* u4 A, `
  10. cp armada-3720-customer0.dtb /boot/
    . a, i9 i8 v( c# B' o
  11. cp Image /boot/2 Y0 i& V8 Z3 b9 Q8 F, u) m; {

  12. " v8 _2 Q' f. p
  13. # 退出
    ) y5 P9 r, u3 I
  14. exit
复制代码
重新插拔电源后恢复正常,uboot信息如下:
/ Y% Z1 w* ^5 X" G9 n2 T
  1. TIM-1.04 `& G# z: Q4 [& g/ d/ m. s" e/ t
  2. WTMI-armada-17.10.1-8 R. E2 @/ w4 k9 j0 n
  3. ENTER init_ddrgen* z3 |5 Y! f3 i5 S! c; J
  4. DDR_TOPOLOGY is 0 :        DDR3, 1CS 512M
    * K; @9 B* _# j0 n$ M
  5. WTMI_CLOCK=2: ~( S7 P& T& Z# z
  6. ( y$ B  S, S7 v: K
  7. Fill memory before self refresh...done
    + S/ N3 Y" A1 V# q; T7 B! t% @9 R( [
  8. 0 W% }5 u8 R/ m, t: t& h
  9. Now in Self-refresh Mode
    7 [2 e( K/ E" c
  10. Restore CAS Read and Write Latency% Z" `8 t! o3 _: g
  11. Restore termination values to original values7 D( y$ `) q+ r1 e$ T( g
  12. Exited self-refresh ...
    9 s( r" e1 H3 h* U  X

  13. / d% L# W$ c; T) h: k
  14. DLL TUNING' ]) o: }1 w* v$ w7 a8 r0 ?; I2 c
  15. ==============. {( g( [% W1 A$ ~( [4 w
  16.    DLL 0xc0001050[21:16]: [0,31,18]
    0 q- G6 i1 M3 P' V9 `% u+ }
  17.    DLL 0xc0001050[29:24]: [0,2b,15]
    2 {" @9 n( m. `5 |, ^8 B1 k
  18.    DLL 0xc0001054[21:16]: [0,32,19]& r. N3 {( W" p: L
  19.    DLL 0xc0001054[29:24]: [0,2d,16]! @( A6 M- D0 n( M% K
  20.    DLL 0xc0001074[21:16]: [0,3f,1f]3 o! n. t. h2 f+ j' Z
  21.    DLL 0xc00010746 Y" ]% G+ T# u/ T

  22. ; \9 \% R7 ]" B1 H! d( i$ M) \7 G
  23. U-Boot 2017.03-armada-17.10.1 (Mar 07 2018 - 17:11:33 +0800)
    / A/ P/ S  ]7 ]1 E

  24. , @; s, b; G6 E! j8 h) {
  25. Model: Marvell Armada 3720 for Eli Cat
    ! w: }* ?$ a) l; u% Y
  26.        CPU    @ 1000 [MHz]
    5 b5 p% [* k' k" `, {. h. e
  27.        L2     @ 800 [MHz]
    ; V8 u& [) z0 R4 Y
  28.        TClock @ 200 [MHz]# t- p5 p0 ]8 g* k- ~
  29.        DDR    @ 800 [MHz]7 N0 B# D: H' O; @* ~
  30. I2C:   ready ( i# R/ w/ B1 }2 O4 Y* Z
  31. DRAM:  512 MiB3 w, f* H2 B: l8 ]
  32. U-Boot DT blob at : 000000001f73a520
    3 a' M+ j- w% }, I) Q* E" b
  33. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB, s- u8 n2 L$ f9 @9 @. e
  34. *** Warning - bad CRC, using default environment
    ( t1 D& f5 D/ U6 n2 ]& P7 b/ C# ]- [

  35. 3 }; U2 w9 f/ L) O$ c$ M
  36. MMC:   for ssg ledsdhci@d8000: 0
    3 `/ e; b) y  Z4 F  i
  37. 12931 bytes read in 16 ms (789.1 KiB/s)2 E1 d7 Z( ~2 d
  38. gpio: pin GPIO23 (gpio 39) value is 1
    ; M" _. g. g0 W0 @
  39. gpio: pin GPIO23 (gpio 39) value is 1
    ( B# @, D; b- t
  40. gpio: pin GPIO23 (gpio 39) value is 1, s- ]# E1 w+ V* g2 ~' l& Q& ^  _
  41. Comphy-0: USB3_HOST0    5 Gbps    8 ?. _- M: Q: I4 p/ \
  42. Comphy-1: SGMII0        1.25 Gbps 1 t  L  W( d1 q1 ~7 g
  43. Comphy-2: SATA0         6 Gbps   
    ! o) Q/ R: T& e" U
  44. gpio: pin GPIO23 (gpio 39) value is 1
    " O) X: M, a3 r
  45. 12931 bytes read in 4 ms (3.1 MiB/s)' s" x+ y. y! u
  46. Enter Normal mode. v. j0 Y, Y; ?
  47. SCSI:  Hit any key to stop autoboot:  0
复制代码
$ ^) v. n, Y# I3 I9 k
补充下:这样修改后,只能一次有效请删除mmc 0:3 分区的rootfs.tar.bz2和upgrade_eli_38.img文件。
% K! J3 @" L2 K2 P. {  R: L8 O+ U或者直接在linux shell里面刷写新uboot
. }% g# @7 I/ I. I. G7 {+ a3 ^. N  x
+ U- M3 s& D  C1 P
* y# e/ z+ _0 r2 ^# `; o0 R$ \7 v3 Y$ V8 I" C

评分

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

查看全部评分

5

主题

57

回帖

491

积分

中级渣柚V1

积分
491
发表于 2019-10-9 15:50:15 | 显示全部楼层
本帖最后由 xingjiwoniu 于 2019-10-9 16:00 编辑 # _! t+ k$ {$ `1 V# q& ^% Y* V

4 z$ D; x1 g$ W. M+ n1 ^4 D感谢分享

4

主题

78

回帖

706

积分

中级渣柚V2

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

7

主题

450

回帖

706

积分

中级渣柚V2

积分
706

热心会员

发表于 2019-10-9 17:09:08 | 显示全部楼层
感谢分享4 ^, m1 o5 ]7 o# P, r

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' T" e6 l- y8 B/ d: c2 Z6 i. B. r
按照你这个执行不成功啊

+ k0 ^3 H+ _$ Y还是提示找不到?

0

主题

12

回帖

40

积分

初级渣柚V1

积分
40
发表于 2019-10-9 20:45:54 | 显示全部楼层
顶一下顶一下
: {" A& w& @& K% r& x

4

主题

114

回帖

323

积分

中级渣柚V1

积分
323
发表于 2019-10-9 20:48:03 | 显示全部楼层
tymfl 发表于 2019-10-9 20:36, P6 J- W2 v0 s3 z
还是提示找不到?
' g3 P- B1 l0 M. U* a1 B  H
是还是原样子,启动还是end Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
- L/ N2 i4 C: T. P完全按照您的步骤做的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-21 06:32 , Processed in 0.084936 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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