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

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

[复制链接]

5

主题

79

回帖

424

积分

中级渣柚V1

积分
424
tymfl 发表于 2019-10-9 15:22:10 | 显示全部楼层 |阅读模式 IP:–重庆–重庆 长城宽带
本帖最后由 tymfl 于 2019-10-11 23:47 编辑
6 [8 O2 n" t' E5 z, F/ Z( O" M9 W7 G& Z8 j1 Z# B3 u  w5 a
入手一台伊拉克成色猫盘故障机,连好ttl上电以后
5 X4 }! ^7 u6 A+ |0 f8 u1 G
  1. TIM-1.0
    ; |" s: N2 k. C; f- D* t
  2. WTMI-armada-17.10.1-
    * P8 W- T# r2 y3 p/ W
  3. .........! F8 P+ m) _& d" G1 a
  4. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB
    0 O2 A% x2 M8 E5 Q  F
  5. *** Warning - bad CRC, using default environment& }" z( a  i9 J
  6. 1 P3 \7 i" E0 y/ O) W: w
  7. MMC:   for ssg ledsdhci@d8000: 06 e( Y( \0 t1 P2 a6 b* c0 x
  8. ** File not found boot/armada-3720-customer0.dtb **
    9 `% ^- y* x! Z% S( n
  9. ** File not found boot/armada-3720-customer0-minifs.dtb **
    , d; r/ W& R$ i4 U+ L7 ]
  10. test_mmc_ext4_exist ==1, S6 z( u0 P" \  {8 C( u
  11. Comphy-0: UNCONNECTED  
    $ K5 W) s- E8 X8 U4 Q
  12. Comphy-1: UNCONNECTED  
    ' l: V, x! ]$ o; ?
  13. Comphy-2: UNCONNECTED  
    " I5 Z- S- E) M* M  ?. @3 o0 {! W
  14. gpio: pin GPIO23 (gpio 39) value is 1
    0 u" ]0 G' u$ ]% G( I" |
  15. ** File not found boot/armada-3720-customer0.dtb **! R2 H! h% v* D/ N( e& |3 `8 t8 G
  16. ** File not found boot/armada-3720-customer0-minifs.dtb **
    2 T6 M  {3 {! z2 c, d/ f
  17. Enter Recovery mode! Q3 i- [7 i6 v$ p- E% ]
  18. SCSI:  Hit any key to stop autoboot:  0
复制代码
发现无法找到dtd文件,进入了恢复模式,直接启动或按住reset启动均启动失败,启动信息如下:
% ?  v6 ~8 ~: T, `+ T$ ~" I
  1. Marvell>> boot0 d3 Z0 i" F$ E" K+ E8 S5 f0 }
  2. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB
    % a4 g: W* B9 w$ @+ u. m4 s! G
  3. device 0 offset 0xcc000, size 0x434000
    1 Y, [9 Q' W# S$ C$ w' O2 Y
  4. SF: 4407296 bytes @ 0xcc000 Read: OK
    ( s# k3 Q# b4 K- F% l- u6 Y1 p
  5. gpio: pin GPIO21 (gpio 37) value is 1. B( ^. |8 Q8 P% c# V* U0 B6 E9 ~; x
  6. gpio: pin GPIO22 (gpio 38) value is 1
    1 S4 p& F4 A+ v" ]- N. U9 T
  7. Uncompressed size: 8992256 = 0x893600. [  T0 j$ Z$ A% B
  8. device 0 offset 0xc8000, size 0x4000. H. c! b+ k$ s6 J
  9. SF: 16384 bytes @ 0xc8000 Read: OK
    " ~% y- ?2 l. ?* }" h. ?
  10. ## Flattened Device Tree blob at 04f00000
    # w* u) D. A) |
  11.    Booting using the fdt blob at 0x4f00000
    . z/ [2 e8 W7 E* ?2 \
  12.    Using Device Tree in place at 0000000004f00000, end 0000000004f05df8
    ! G' k% {/ r3 S7 j. u" }
  13. 5 a: d; j& C% f4 v
  14. Starting kernel ...) Y  n5 |% r, d7 q; s5 w- q+ b

  15. # |9 }$ I2 h; C# {6 Z, J( `
  16. .........
    ; O  t9 F: ?/ z0 Z: n1 z$ f# i
  17. [    2.786623]  mmcblk0: p1 p2 p3) L  q6 r7 m1 Y- `; n
  18. [    2.801201] Starting init: /sbin/init exists but couldn't execute it (error -5), I0 v0 \; d; H* M( n; x
  19. [    2.813804] cramfs: bad compressed blocksize 4294298135
      u1 n, Y7 k% H9 ?1 V$ M! U
  20. [    2.819206] Starting init: /bin/sh exists but couldn't execute it (error -5)  U7 x$ Y: P+ m$ j
  21. [    2.826452] Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.8 w# {) s6 ~; a3 e  l
  22. [    2.840101] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #21* n* X' E1 m: c' U. h! P
  23. [    2.847399] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT)
    " Z2 Y& C( O6 y3 d1 U; Q' A( i
  24. [    2.854957] Call trace:. j" v- h  d# u/ z! t
  25. [    2.857401] [<ffffffc000089b10>] dump_backtrace+0x0/0x108
    % U4 P. N. l/ r; e
  26. [    2.863150] [<ffffffc000089c2c>] show_stack+0x14/0x20
    0 D+ f; j) _1 q1 V. N/ T9 k
  27. [    2.868371] [<ffffffc00029f280>] dump_stack+0x98/0xb8" ^$ O' ~( z/ P
  28. [    2.873592] [<ffffffc00012b32c>] panic+0xd4/0x218
    " {7 q# |9 ]; H0 V( W8 ^
  29. [    2.878454] [<ffffffc000621d0c>] kernel_init+0xdc/0xe0
    * M2 z- j; i# d6 `
  30. [    2.883761] [<ffffffc000085dd0>] ret_from_fork+0x10/0x40  D/ J- V0 ~; C3 \6 {
  31. [    2.888890] CPU0: stopping6 j( u. u2 H, S2 J( F
  32. [    2.891949] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #21) Q, |# \$ B/ ?  Q% _/ J  i4 p
  33. [    2.899505] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT); w+ \- M5 m& T' x" `; C
  34. [    2.907154] Call trace:
    6 f. ]: m. e# i1 C
  35. [    2.909861] [<ffffffc000089b10>] dump_backtrace+0x0/0x108
    + k) u' a! S+ T' ?0 g9 {4 Y: S+ \. Z
  36. [    2.915269] [<ffffffc000089c2c>] show_stack+0x14/0x20
    ; }# R2 e; A- A3 O  J$ l; X& W
  37. [    2.920580] [<ffffffc00029f280>] dump_stack+0x98/0xb8
    " K; F$ a/ f* F0 K6 f9 O
  38. [    2.925892] [<ffffffc00008efc0>] handle_IPI+0x190/0x1a0
    , ]5 R7 P  |& M. }5 g( D
  39. [    2.931030] [<ffffffc000082598>] gic_handle_irq+0x78/0x168! Y0 }5 p+ m+ [: [+ `
  40. [    2.936969] Exception stack(0xffffffc0008abda0 to 0xffffffc0008abed0)
    & R; ?5 n; M; [0 X$ e! h, a  k
  41. [    2.943547] bda0: ffffffc0008ae000 0000008000000000 ffffffc0008abf00 ffffffc000086840+ P% s: R* _! S4 d; @
  42. [    2.951467] bdc0: 0000000000000145 ffffffc000890000 0000000000000000 00000000000000003 P! Y1 ?9 r. t4 ]- N  y% H
  43. [    2.959567] bde0: 0000000000000001 0000000000000000 00000000000001c0 0100000000000000
    - ~% Q: K6 ?# G4 J" }
  44. [    2.967757] be00: 0000000000000001 ffffffc01bfcddc0 00000000fffeddda ffffffc0008abe80
    0 B7 W$ V( f% M5 E6 ^
  45. [    2.975676] be20: 00000000000006d0 0000000000000000 0000000000000000 00000000058e8eff
    * B" n3 c' z; }, U" n0 c
  46. [    2.983954] be40: ffffffc00426c260 00000000000075af 00000000000ba7a2 00000000000000008 D6 O; {! F% j5 R: `: e
  47. [    2.991876] be60: ffffff8000058548 ffffffc0008ae000 ffffffc0008ae8d8 ffffffc00088cad8
    & D! K4 w4 V7 B% C8 p
  48. [    2.999886] be80: ffffffc0008abf20 ffffffc000631000 ffffffc000890000 ffffffc0008ae000& ?0 s9 n. j/ s6 {
  49. [    3.007986] bea0: ffffffc0008a8000 0000000000000000 0000000000000000 ffffffc0008abf00' S  N9 C5 V1 _1 h
  50. [    3.016353] bec0: ffffffc00008683c ffffffc0008abf00
    ; l- i, x) _; `2 j4 B& H; I
  51. [    3.021215] [<ffffffc000085700>] el1_irq+0x80/0xf89 P. f2 R: ~' p- G$ r
  52. [    3.026168] [<ffffffc0000d8164>] default_idle_call+0x1c/0x38
    5 w7 z. V% D5 a  u8 E1 ~8 w( S
  53. [    3.032373] [<ffffffc0000d8398>] cpu_startup_entry+0x1c8/0x2183 V: K) N  S1 \1 I" |
  54. [    3.038411] [<ffffffc000621c20>] rest_init+0x88/0x98
    6 C: U$ x/ y6 K2 N& W' p. A9 I, @
  55. [    3.043192] [<ffffffc00084d950>] start_kernel+0x384/0x398, z+ U8 f" D2 g
  56. [    3.048948] [<0000000000627000>] 0x6270003 e% g* {3 x6 g+ k% {
  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 下获取的一些信息
# F0 _4 s3 c- r6 a: _2 V) `6 ]5 y
  1. # 查看文件夹 发现boot为空
    7 e, l$ W/ J+ x2 T; k- r
  2. Marvell>> ext4ls mmc 0:1 /boot9 }0 a; S# l; i9 L3 i1 P+ {" ^, Z
  3. <DIR>       4096 .1 M# j, A& g" P) l" g/ J
  4. <DIR>       4096 ..# [$ w5 Z) b" @' S) L
  5. 1 N6 [( A* ]0 K6 f+ w6 o* W
  6. # 无法启动usb
    # l2 z3 i3 G& B- E
  7. Marvell>> usb start
    0 K6 G$ `7 y2 K2 l: r2 Y9 V5 M. @$ F6 X
  8. starting USB...
    7 H. Y. r) d1 _) f% B( G& J% _
  9. No controllers found
复制代码
猜测可能是误删了/boot下的文件导致的,无法通过U盘启动: w2 V7 T0 Y  g5 h! e8 c: Q; v

3 O; Y3 ^* W2 M7 P* Q$ ?% I                               
登录/注册后可看大图

. @& h- v, ~* _+ Y) y启动进入uboot输入如下命令
) M, w3 H" `4 B, ]
  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;": j+ x1 i3 l% D$ t- |
  2. setenv bootargs "console=ttyMV0,115200 root=/dev/mmcblk0p1 rootwait rw init=/bin/sh"
    " [' l) B: n8 q, E
  3. boot
    ! C2 V7 l" A" ?9 ], j7 w! \
  4. booti 0x5000000 - 0x4f00000
复制代码
即可进入linux shell
* F) b7 ?& \/ @- f2 {
  1. # 查看存储设备9 a8 v5 S/ R6 T+ d9 p& h3 ]) T, e
  2. ls -l /dev/sd' i% r) {; ]" X0 w1 p

  3. * f, P  M5 I* o# t/ ]9 x
  4. # 挂载9 n6 M* }' Y" ^. N7 V& J+ |$ H
  5. mount -t proc /proc
    ( W$ N8 O" z2 }+ q; J. }; Z
  6. mount /dev/sda4 /mnt
    0 P# e3 l* q1 w/ D. ]
  7. : A) J8 I$ j. d9 W
  8. # 拷贝文件4 Z2 T+ i' m" N
  9. cd /mnt
    * x, [2 ?* t% f; Q4 H' H! x% G
  10. cp armada-3720-customer0.dtb /boot/; @1 P8 c+ N! t. _' `* M* r
  11. cp Image /boot/4 |2 J3 P4 h8 s/ o$ T0 H+ q! l
  12. ! {* f: {+ z) \% O0 T
  13. # 退出/ Z/ ?$ o7 h3 N, S/ ~( g
  14. exit
复制代码
重新插拔电源后恢复正常,uboot信息如下:5 r0 l: `& o3 N" r7 X- x
  1. TIM-1.0, S) y! `  q9 @# f
  2. WTMI-armada-17.10.1-$ r, r* D# Z9 Z
  3. ENTER init_ddrgen
    ! S3 ]' I, O% d; @9 r* W0 l: l
  4. DDR_TOPOLOGY is 0 :        DDR3, 1CS 512M3 Y/ q; i7 S% u) X& A, D8 {$ T: E
  5. WTMI_CLOCK=2
    8 p" U, e/ v$ I( h+ _* A

  6. 8 R( k; {/ `+ v- R1 Z) P4 n3 H3 V! R, g
  7. Fill memory before self refresh...done
    3 P+ s) N1 c* v5 \' k% Q8 C
  8. ' ]. a$ W/ Z" \+ Q4 y. o
  9. Now in Self-refresh Mode; y- |; b7 z; Y9 l
  10. Restore CAS Read and Write Latency9 R) }1 t( l& B* f  y
  11. Restore termination values to original values
    % r6 |, O+ ]. @* N
  12. Exited self-refresh ...
    1 o9 ]7 l5 t+ Q4 H: u: j
  13. , [& p0 f6 Q6 `) z, v
  14. DLL TUNING( C# n/ t& V, k" v
  15. ==============' F9 j- L( r- g" V
  16.    DLL 0xc0001050[21:16]: [0,31,18]
    ! C9 L1 p  T# k6 W9 x+ U1 b
  17.    DLL 0xc0001050[29:24]: [0,2b,15]
    $ d/ J% q% G8 S. Q2 g( z
  18.    DLL 0xc0001054[21:16]: [0,32,19]
    , w; ~; _* W8 K  D1 K. g
  19.    DLL 0xc0001054[29:24]: [0,2d,16]
    * p) D4 I" v) I$ G
  20.    DLL 0xc0001074[21:16]: [0,3f,1f]
    9 r6 z: o: ?1 s! Z- B5 ]* b5 v# B
  21.    DLL 0xc0001074
    + L+ C" Q+ `  h9 ]/ |* j: n8 O3 o
  22. * m% N9 z7 p: T+ Y4 l
  23. U-Boot 2017.03-armada-17.10.1 (Mar 07 2018 - 17:11:33 +0800)
    : R, Y' L" G  w1 E( @
  24. . E. ?( H3 [2 b! }) s8 G3 J5 W
  25. Model: Marvell Armada 3720 for Eli Cat  G( c1 S5 C) ]& q0 ?8 @3 ?2 b
  26.        CPU    @ 1000 [MHz]$ t; J* c' Z0 r8 ~5 D
  27.        L2     @ 800 [MHz]
    * H  `- Q4 X. Q) d% m) q/ A) e
  28.        TClock @ 200 [MHz]1 p( G& d8 w# w, J0 @
  29.        DDR    @ 800 [MHz]
    8 \+ [' d0 k$ z7 ~, Y, R! J7 J
  30. I2C:   ready
    : x* u0 i+ N# D2 f
  31. DRAM:  512 MiB
    : J, c' K4 U' u1 s
  32. U-Boot DT blob at : 000000001f73a520
    * p' M9 `, d7 S
  33. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB5 |+ n: q. W1 c
  34. *** Warning - bad CRC, using default environment+ ~  E2 @2 D9 {8 K# o
  35. ) w0 B; a3 n" R1 {* |6 B
  36. MMC:   for ssg ledsdhci@d8000: 08 V% U1 w6 h0 l! Y! {
  37. 12931 bytes read in 16 ms (789.1 KiB/s)0 [2 {1 W4 L/ Q& {9 M' e7 H! C+ B' {
  38. gpio: pin GPIO23 (gpio 39) value is 17 l( P9 C5 B& \8 [
  39. gpio: pin GPIO23 (gpio 39) value is 1* g& |0 P; [9 X
  40. gpio: pin GPIO23 (gpio 39) value is 1* }: @/ R6 I5 ?- J, ^
  41. Comphy-0: USB3_HOST0    5 Gbps   
    9 ]( S& H  s7 j* X6 w1 S' i
  42. Comphy-1: SGMII0        1.25 Gbps
    5 S5 M( m5 X3 z% z/ ~
  43. Comphy-2: SATA0         6 Gbps    9 W. A+ C4 `: `+ `9 Y* ]! q5 A
  44. gpio: pin GPIO23 (gpio 39) value is 1" q8 E  H& j; d3 k
  45. 12931 bytes read in 4 ms (3.1 MiB/s)9 R' J- Z/ N8 ^! L
  46. Enter Normal mode9 I! x1 M2 [. G# o8 Y) f
  47. SCSI:  Hit any key to stop autoboot:  0
复制代码

( P2 Q! J9 {- E补充下:这样修改后,只能一次有效请删除mmc 0:3 分区的rootfs.tar.bz2和upgrade_eli_38.img文件。6 G' L# {/ g8 s7 l
或者直接在linux shell里面刷写新uboot( ]3 F0 C$ n8 d7 [3 t& P$ J
* y9 ?. I+ R) M4 i
5 i( t# ]' v/ O( ]4 D# r( k

2 s* m$ D) m' A: e8 W$ n

评分

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

查看全部评分

5

主题

57

回帖

491

积分

中级渣柚V1

积分
491
xingjiwoniu 发表于 2019-10-9 15:50:15 | 显示全部楼层 IP:–江苏–宿迁 移动
本帖最后由 xingjiwoniu 于 2019-10-9 16:00 编辑 2 `3 Y9 O" r! ?2 C( D3 ]& }

8 n3 b2 l7 `7 O" v8 N感谢分享

4

主题

78

回帖

706

积分

中级渣柚V2

积分
706
tkunming 发表于 2019-10-9 16:07:37 | 显示全部楼层 IP:–湖南–永州 移动
谢谢分享

7

主题

450

回帖

706

积分

中级渣柚V2

积分
706

热心会员

along1231 发表于 2019-10-9 17:09:08 | 显示全部楼层 IP:–广东–东莞 电信
感谢分享
0 `/ _4 ~0 A4 @, t

1

主题

20

回帖

204

积分

中级渣柚V1

积分
204
kristy 发表于 2019-10-9 17:10:58 | 显示全部楼层 IP:–浙江–杭州 电信
收藏 感谢!

4

主题

114

回帖

323

积分

中级渣柚V1

积分
323
GokuSun 发表于 2019-10-9 20:25:44 | 显示全部楼层 IP:–安徽–阜阳–颍州区 电信
按照你这个执行不成功啊

5

主题

79

回帖

424

积分

中级渣柚V1

积分
424
 楼主| tymfl 发表于 2019-10-9 20:36:10 | 显示全部楼层 IP:–重庆–重庆 长城宽带
GokuSun 发表于 2019-10-9 20:25
7 G+ _4 g& N3 {' t8 K按照你这个执行不成功啊

# H4 k" `+ i* [5 H9 o9 k还是提示找不到?

0

主题

12

回帖

40

积分

初级渣柚V1

积分
40
kuangogrish 发表于 2019-10-9 20:45:54 | 显示全部楼层 IP:–上海–上海–杨浦区 电信
顶一下顶一下5 Q5 ~, g9 Y# d& _0 g' R; I0 {! i

4

主题

114

回帖

323

积分

中级渣柚V1

积分
323
GokuSun 发表于 2019-10-9 20:48:03 | 显示全部楼层 IP:–安徽–阜阳–颍州区 电信
tymfl 发表于 2019-10-9 20:36+ h& s6 z; C9 Y( V
还是提示找不到?

1 h/ |5 j0 `" w: y9 x. A; S/ P是还是原样子,启动还是end Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.$ e# E* i5 a1 c6 ^* O
完全按照您的步骤做的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-7-31 03:30 , Processed in 0.085998 second(s), 33 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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