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

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

[复制链接]

5

主题

79

回帖

424

积分

中级渣柚V1

积分
424
tymfl 发表于 2019-10-9 15:22:10 | 显示全部楼层 |阅读模式 IP:–重庆–重庆 长城宽带
本帖最后由 tymfl 于 2019-10-11 23:47 编辑 3 j0 ~/ \3 o, i9 ?

: k  l3 b% s) \9 V入手一台伊拉克成色猫盘故障机,连好ttl上电以后
* ^, m& Z3 }# n, O( @
  1. TIM-1.09 |' }9 _0 r$ ^; a1 a+ ^/ o9 Z
  2. WTMI-armada-17.10.1-/ F% I, p3 y' U
  3. .........
    1 F9 o) ~7 J9 X
  4. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB4 P- Z3 ?7 ?$ I9 V% i
  5. *** Warning - bad CRC, using default environment
    $ x9 i/ O1 D0 s

  6. ; y7 g5 N# A1 _7 z6 N, q- N2 l& b
  7. MMC:   for ssg ledsdhci@d8000: 0
    2 K! a# t8 e! c* r2 D3 S- a
  8. ** File not found boot/armada-3720-customer0.dtb **
    & M$ N( ?; ]# ^1 L! n3 @3 `
  9. ** File not found boot/armada-3720-customer0-minifs.dtb **: X# d7 N, S* B( a+ Y) M8 ^2 p
  10. test_mmc_ext4_exist ==1- n( o3 I7 K3 k: ^. j& a
  11. Comphy-0: UNCONNECTED  
      z' M4 F/ d9 \2 G
  12. Comphy-1: UNCONNECTED  
    * K# O) F' U; l0 q( Z
  13. Comphy-2: UNCONNECTED  
    ( J0 v& S& i8 V1 [# q; B
  14. gpio: pin GPIO23 (gpio 39) value is 1; H$ F% {7 z& j5 c7 M; H  Y, `, t  w( q
  15. ** File not found boot/armada-3720-customer0.dtb **# w% r3 U) ?- ?' i' }4 O
  16. ** File not found boot/armada-3720-customer0-minifs.dtb **0 p7 n' s4 O9 o# Z# Z
  17. Enter Recovery mode0 q- h5 E% m9 a2 I! I- S7 l* W5 @, U4 d
  18. SCSI:  Hit any key to stop autoboot:  0
复制代码
发现无法找到dtd文件,进入了恢复模式,直接启动或按住reset启动均启动失败,启动信息如下:
% a& e$ Y+ _6 R2 O2 H1 l
  1. Marvell>> boot( o2 ^- c5 j. E) ^3 ~" ?2 V
  2. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB
    7 o- Z, [1 n6 i1 y
  3. device 0 offset 0xcc000, size 0x434000# s; @/ w4 p% j) T: K
  4. SF: 4407296 bytes @ 0xcc000 Read: OK
    % M4 e1 r: Y- s5 |9 O  V
  5. gpio: pin GPIO21 (gpio 37) value is 1
    % \, ~) S/ ^5 `9 w) y0 w9 Z# y
  6. gpio: pin GPIO22 (gpio 38) value is 15 f) Y" x' V- ?6 c- q
  7. Uncompressed size: 8992256 = 0x893600! w2 a  h$ o& b+ j  ]
  8. device 0 offset 0xc8000, size 0x40008 c. z& }- u& [6 U0 s7 R$ W
  9. SF: 16384 bytes @ 0xc8000 Read: OK
    9 t$ f1 `( H" B! F* }
  10. ## Flattened Device Tree blob at 04f00000
    - C) o- Z  |. x# Z0 q
  11.    Booting using the fdt blob at 0x4f00000
    3 ^" t+ ^2 X# ]) O! |$ S
  12.    Using Device Tree in place at 0000000004f00000, end 0000000004f05df8
    , U9 C7 G  l5 R- q4 q
  13. : s  @4 P, k( F8 s1 r: G- c' L
  14. Starting kernel ...3 _9 D* l+ v; ?. [5 T  P5 c
  15. : R+ |8 ~, L" O! |0 v" t8 |
  16. .........1 S- |# g# m% J4 t* ~( i( m- k
  17. [    2.786623]  mmcblk0: p1 p2 p35 P( |, z8 \1 l2 g  H' C% J! X
  18. [    2.801201] Starting init: /sbin/init exists but couldn't execute it (error -5)
    # k- [3 J* ], `( J2 }: z6 L
  19. [    2.813804] cramfs: bad compressed blocksize 4294298135
    6 B% |8 m8 d- W( }6 C: }! w/ U
  20. [    2.819206] Starting init: /bin/sh exists but couldn't execute it (error -5)
    / v  k: N9 y9 {9 K- l) ?
  21. [    2.826452] Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
    ) M: b! H0 v8 ?0 B- V$ `
  22. [    2.840101] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #21
    ! Y  j: q  A. C9 C# P
  23. [    2.847399] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT)8 T0 d1 q, ]' A( K, I$ x
  24. [    2.854957] Call trace:' R1 D- }% X) [4 s  \
  25. [    2.857401] [<ffffffc000089b10>] dump_backtrace+0x0/0x108/ X. S' d& a7 ^$ K7 A
  26. [    2.863150] [<ffffffc000089c2c>] show_stack+0x14/0x20
    - W. _. {- U# j' _
  27. [    2.868371] [<ffffffc00029f280>] dump_stack+0x98/0xb8
    2 {) y: Q- D; S+ m- S3 Z& f
  28. [    2.873592] [<ffffffc00012b32c>] panic+0xd4/0x218
    $ u1 l2 ~" ?2 B
  29. [    2.878454] [<ffffffc000621d0c>] kernel_init+0xdc/0xe0) t6 l) @  s2 `
  30. [    2.883761] [<ffffffc000085dd0>] ret_from_fork+0x10/0x40
    5 V0 h8 B5 O- ?8 D" j
  31. [    2.888890] CPU0: stopping
    ! [" c( \( T* v2 o& j
  32. [    2.891949] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #21
    . b4 n5 Q# c( ]) J5 a7 ^8 N; @
  33. [    2.899505] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT)6 ~+ o3 T% w! E0 o3 a8 @
  34. [    2.907154] Call trace:0 P9 y9 B# T+ K
  35. [    2.909861] [<ffffffc000089b10>] dump_backtrace+0x0/0x108
    & c% o' `; y6 m3 b
  36. [    2.915269] [<ffffffc000089c2c>] show_stack+0x14/0x20: C# k  v2 U/ p1 _, A8 P0 u' j
  37. [    2.920580] [<ffffffc00029f280>] dump_stack+0x98/0xb8
    $ z- b. L3 W" H; t0 |3 }% v7 `
  38. [    2.925892] [<ffffffc00008efc0>] handle_IPI+0x190/0x1a0
    + x4 ^+ f# D( Q* c, Q" y* H
  39. [    2.931030] [<ffffffc000082598>] gic_handle_irq+0x78/0x1686 O; c( h' h$ ^# v' `+ w4 x2 z
  40. [    2.936969] Exception stack(0xffffffc0008abda0 to 0xffffffc0008abed0): Y4 @( t+ z- p
  41. [    2.943547] bda0: ffffffc0008ae000 0000008000000000 ffffffc0008abf00 ffffffc000086840
    & }% V' U: f0 Y! ~0 n/ A0 M  s3 X
  42. [    2.951467] bdc0: 0000000000000145 ffffffc000890000 0000000000000000 0000000000000000
    7 V8 D; Q- [" ~; A
  43. [    2.959567] bde0: 0000000000000001 0000000000000000 00000000000001c0 0100000000000000( H' Z/ M0 R# `' {
  44. [    2.967757] be00: 0000000000000001 ffffffc01bfcddc0 00000000fffeddda ffffffc0008abe80* l, Y9 U1 ^( W4 `* b
  45. [    2.975676] be20: 00000000000006d0 0000000000000000 0000000000000000 00000000058e8eff
      L; \/ n  }/ r1 j5 J: x
  46. [    2.983954] be40: ffffffc00426c260 00000000000075af 00000000000ba7a2 0000000000000000
    ) V" p! E6 `1 I2 K  |" {) m
  47. [    2.991876] be60: ffffff8000058548 ffffffc0008ae000 ffffffc0008ae8d8 ffffffc00088cad8
    * E7 Y% m* L9 o3 e) W
  48. [    2.999886] be80: ffffffc0008abf20 ffffffc000631000 ffffffc000890000 ffffffc0008ae000
    : \% ~3 q4 Y  G: W5 {4 u# @$ ~* |
  49. [    3.007986] bea0: ffffffc0008a8000 0000000000000000 0000000000000000 ffffffc0008abf00
    1 B; m$ ~! R- V% `
  50. [    3.016353] bec0: ffffffc00008683c ffffffc0008abf007 `2 Q6 Q) E* \; F# {( P
  51. [    3.021215] [<ffffffc000085700>] el1_irq+0x80/0xf8
    1 `0 q" w: e+ F0 n. m4 h
  52. [    3.026168] [<ffffffc0000d8164>] default_idle_call+0x1c/0x38
    1 [( B5 H% D" }* d& r
  53. [    3.032373] [<ffffffc0000d8398>] cpu_startup_entry+0x1c8/0x218
    # y" C% b  n0 ^- }
  54. [    3.038411] [<ffffffc000621c20>] rest_init+0x88/0x98) E0 e+ d# w( I% M2 a/ b0 u+ U
  55. [    3.043192] [<ffffffc00084d950>] start_kernel+0x384/0x398
    0 \9 }6 O6 J  g8 ?1 ?
  56. [    3.048948] [<0000000000627000>] 0x627000$ D8 k/ t7 O! c
  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 下获取的一些信息. D% ^  [9 i- Z8 K; y1 z
  1. # 查看文件夹 发现boot为空. z& v2 K0 @: _; `! D9 D
  2. Marvell>> ext4ls mmc 0:1 /boot: x$ ?3 w% x( e& N% P4 Q1 |; W& |
  3. <DIR>       4096 .# T2 }( A9 K$ f# T7 G+ V
  4. <DIR>       4096 ..
    ) a$ o( \' E# ?5 A7 P6 P5 I

  5. ' u4 ^( w, q& a( }: d0 b3 q( X
  6. # 无法启动usb
    " U# o8 E1 |! K5 m) V5 t
  7. Marvell>> usb start
    7 ~% O6 ~& b; c" I# D' e8 I  W( P
  8. starting USB...
    & s; i1 b6 `3 I, ]
  9. No controllers found
复制代码
猜测可能是误删了/boot下的文件导致的,无法通过U盘启动
) U, N) S5 x) P; n

4 G& o2 ~. q. P  O9 d/ @                               
登录/注册后可看大图

9 F1 t8 N0 j4 J- H启动进入uboot输入如下命令
$ ?; }, {1 m' L( ^, h* Y* P, @1 X/ L
  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, H& |1 F! ~" v: u: b7 P
  2. setenv bootargs "console=ttyMV0,115200 root=/dev/mmcblk0p1 rootwait rw init=/bin/sh"6 I3 g8 I6 f3 T
  3. boot
    3 {) w6 K8 q2 X
  4. booti 0x5000000 - 0x4f00000
复制代码
即可进入linux shell& z' m" Y- K6 z: g* G' D
  1. # 查看存储设备" K3 j; U$ `& _7 x
  2. ls -l /dev/sd  L& }8 r* G& s! P1 m. P
  3. ' G% U% s- K3 D, F
  4. # 挂载
    $ h1 w* E+ }4 N' U4 S$ W
  5. mount -t proc /proc
    9 v5 D% v9 j0 x. }& X3 U
  6. mount /dev/sda4 /mnt
    ! ?3 A! O. d: v$ o# T% d: H% h
  7. $ `& f8 Z# X! o" c0 F( `+ A* o
  8. # 拷贝文件
      R: H* }& m  x1 e1 \
  9. cd /mnt
    ) }) w6 r$ c4 M% @
  10. cp armada-3720-customer0.dtb /boot/. g3 m4 F, G6 B% z* P  ]- O1 P* A
  11. cp Image /boot/
    + s  U3 K0 {$ G- i, ]. l$ i
  12. 0 M3 {9 y' c+ N( R; a2 i) r. h0 \( g; d
  13. # 退出
    1 T: s- |6 n6 C* _4 I8 a! U
  14. exit
复制代码
重新插拔电源后恢复正常,uboot信息如下:9 G' f, ~! F4 K5 O% U% b
  1. TIM-1.08 \* i) V* f5 g
  2. WTMI-armada-17.10.1-# [/ q) A" O3 r+ x2 |- ?( Q
  3. ENTER init_ddrgen- ~; u1 H+ ?+ l; {
  4. DDR_TOPOLOGY is 0 :        DDR3, 1CS 512M
    4 t2 P6 ?. h7 H
  5. WTMI_CLOCK=2
    * T$ f/ v: h8 c5 t- H  @3 H. ~  j' F
  6. ! K. J  p2 G* O/ a7 z
  7. Fill memory before self refresh...done4 |& ?# G. t4 {( q8 c- ?
  8. 3 }; C. z& z4 d
  9. Now in Self-refresh Mode, V- `: r3 j$ r4 V: Q- D1 N
  10. Restore CAS Read and Write Latency
    3 i: g0 `0 W" o& l+ t
  11. Restore termination values to original values
    9 J; T( Y. G0 J# q. y% i
  12. Exited self-refresh ...# |" j: Q% h& s' ]& R5 p) k5 |9 T4 M
  13. ( P$ m$ C4 Y; D
  14. DLL TUNING4 z( s9 ^, v) \4 M0 D
  15. ==============
    - E4 D8 N7 }0 r+ Z8 g
  16.    DLL 0xc0001050[21:16]: [0,31,18]
    + l5 V/ T$ U- `  l5 U9 y. j
  17.    DLL 0xc0001050[29:24]: [0,2b,15]
    - ^2 a0 `: g3 X  Z- X
  18.    DLL 0xc0001054[21:16]: [0,32,19]1 q8 H; F& p* U4 A6 x  e" `: d
  19.    DLL 0xc0001054[29:24]: [0,2d,16]! t( g0 z7 Q4 l
  20.    DLL 0xc0001074[21:16]: [0,3f,1f], i$ C" u7 ~3 I0 Y2 Z
  21.    DLL 0xc0001074! u# n; r; V6 Q
  22. + I6 @) p1 |* H  U
  23. U-Boot 2017.03-armada-17.10.1 (Mar 07 2018 - 17:11:33 +0800)
    : X7 a4 W' U, v9 f* i

  24. ! u& {  E- Z: U; q- \
  25. Model: Marvell Armada 3720 for Eli Cat
    / N  A) G2 f- G! E: U9 q7 z; x
  26.        CPU    @ 1000 [MHz]  g4 q+ v$ f! v5 s
  27.        L2     @ 800 [MHz]
    % x  I" J; A6 d( W1 T$ v
  28.        TClock @ 200 [MHz]! {. ]: i% n6 q* V
  29.        DDR    @ 800 [MHz]( u4 B+ v( g3 [- H, r. f
  30. I2C:   ready
    . U* O) Z8 m/ ~' ~9 ~( p. B$ k
  31. DRAM:  512 MiB
    ! a- V  n0 K/ z. h+ n& U6 g% H
  32. U-Boot DT blob at : 000000001f73a520
    $ M  z) Z4 D" d' y: `
  33. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB
    + R+ J7 h+ l6 r0 w
  34. *** Warning - bad CRC, using default environment; x8 P( T& n" q$ F- Q% {
  35. , ]4 P( G% [. [0 }
  36. MMC:   for ssg ledsdhci@d8000: 0) C( g% q" m& t- L/ c5 U
  37. 12931 bytes read in 16 ms (789.1 KiB/s)
    + S; H" v/ I, X$ g. H
  38. gpio: pin GPIO23 (gpio 39) value is 1/ {0 q! t4 n/ l; M# g5 b$ ]3 g
  39. gpio: pin GPIO23 (gpio 39) value is 1
      H" L8 ?5 L3 q- C4 B
  40. gpio: pin GPIO23 (gpio 39) value is 1
    - i* J! g; e$ T5 Y
  41. Comphy-0: USB3_HOST0    5 Gbps    6 U* ^7 n0 J1 s$ J! f( G; {8 S
  42. Comphy-1: SGMII0        1.25 Gbps
    % t# V( A0 e9 m; o2 U# H8 W$ i
  43. Comphy-2: SATA0         6 Gbps    ( H1 I+ m/ c9 S. H! {/ c2 ?
  44. gpio: pin GPIO23 (gpio 39) value is 10 K# X- y: g% a' P! O  ~! g
  45. 12931 bytes read in 4 ms (3.1 MiB/s)
    ( g% T' c- C, W
  46. Enter Normal mode8 f! Q- ?, s8 v+ x2 q- O* _
  47. SCSI:  Hit any key to stop autoboot:  0
复制代码

8 \0 A" x+ V- l4 M  P补充下:这样修改后,只能一次有效请删除mmc 0:3 分区的rootfs.tar.bz2和upgrade_eli_38.img文件。/ T( v6 `/ b# ^2 Z$ l- M- h0 }
或者直接在linux shell里面刷写新uboot% B; p1 i# h. u) c4 q+ g3 C! ^

0 P/ o9 U( q# W- _% g+ T/ J* _# }! x" ^2 _/ ~, G' G
: v- s6 d" a# D( E4 n+ 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 编辑
0 T8 ]7 W0 c" K
2 E) k+ A' ^3 c+ U  e) o/ W: B; d感谢分享

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:–广东–东莞 电信
感谢分享
) J% H) h/ N" n& C. n

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
8 X1 F; Y) k  |% O9 f, y6 V3 [按照你这个执行不成功啊

/ |% ?- x6 [0 w' O9 ^9 ~还是提示找不到?

0

主题

12

回帖

40

积分

初级渣柚V1

积分
40
kuangogrish 发表于 2019-10-9 20:45:54 | 显示全部楼层 IP:–上海–上海–杨浦区 电信
顶一下顶一下
% |  |6 f  i1 _! V' G

4

主题

114

回帖

323

积分

中级渣柚V1

积分
323
GokuSun 发表于 2019-10-9 20:48:03 | 显示全部楼层 IP:–安徽–阜阳–颍州区 电信
tymfl 发表于 2019-10-9 20:36$ W% `1 d) e( t
还是提示找不到?
$ i0 }- t9 A! ]4 |
是还是原样子,启动还是end Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
" p3 ^: I0 V. \& M" l# W  D% e  I; ?完全按照您的步骤做的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-4-26 12:44 , Processed in 0.090136 second(s), 36 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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