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

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

[复制链接]

5

主题

79

回帖

424

积分

中级渣柚V1

积分
424
发表于 2019-10-9 15:22:10 | 显示全部楼层 |阅读模式
本帖最后由 tymfl 于 2019-10-11 23:47 编辑 ; m3 y# H$ {0 |: ^

3 A; |4 \% h4 G" _* d入手一台伊拉克成色猫盘故障机,连好ttl上电以后7 J/ X- u9 Y% {* \
  1. TIM-1.0
      j7 Z9 V  T6 c( E
  2. WTMI-armada-17.10.1-  B- b( y8 q, h
  3. .........
    * i/ K  u6 U* [3 S
  4. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB1 `/ L8 Z$ z6 q; \' f) G7 I- S
  5. *** Warning - bad CRC, using default environment
    9 Z0 J- p& J& e) K

  6. ! {5 P- b- E# M; i
  7. MMC:   for ssg ledsdhci@d8000: 0
    & y! I6 s$ u& }2 P1 D' x2 K/ ]
  8. ** File not found boot/armada-3720-customer0.dtb **% I& B# q$ d3 n- C1 p0 e
  9. ** File not found boot/armada-3720-customer0-minifs.dtb **
    , m: K) O2 d& o  M) M
  10. test_mmc_ext4_exist ==1
    6 |' A; y0 F6 d
  11. Comphy-0: UNCONNECTED  
    4 @' N  r, Y! j' |  _. ], N5 E
  12. Comphy-1: UNCONNECTED  
    2 ~4 e* B* ~: k# G  S7 r1 {
  13. Comphy-2: UNCONNECTED  
    8 T$ K7 F9 _+ V/ ]: ^* T
  14. gpio: pin GPIO23 (gpio 39) value is 1
    ( K1 P, n* i- a% j3 V  [/ x
  15. ** File not found boot/armada-3720-customer0.dtb **
    3 D) l2 r2 m- z5 z2 h
  16. ** File not found boot/armada-3720-customer0-minifs.dtb **
    $ e8 @7 f3 F5 h$ \; |6 K
  17. Enter Recovery mode  i1 m7 X! p* a- w
  18. SCSI:  Hit any key to stop autoboot:  0
复制代码
发现无法找到dtd文件,进入了恢复模式,直接启动或按住reset启动均启动失败,启动信息如下:
, `" u8 x: W8 x
  1. Marvell>> boot
    / R( @2 J% m% l- {  S2 o# E
  2. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB% C2 B& X# q+ S
  3. device 0 offset 0xcc000, size 0x434000" g1 }1 j! r) T* W
  4. SF: 4407296 bytes @ 0xcc000 Read: OK
    4 g9 I. Z2 v3 L7 d' W* N+ x' a: `/ i
  5. gpio: pin GPIO21 (gpio 37) value is 1
    / w$ M4 w; ]# c) L( B6 [
  6. gpio: pin GPIO22 (gpio 38) value is 16 _2 q  w" u  V5 ~8 c' t. c
  7. Uncompressed size: 8992256 = 0x893600! J9 W  H1 G$ [4 t
  8. device 0 offset 0xc8000, size 0x40005 b- b% K1 Q6 c6 O7 u; o6 M' [
  9. SF: 16384 bytes @ 0xc8000 Read: OK
    ) l" S) W7 e# v8 W0 e( O: U
  10. ## Flattened Device Tree blob at 04f00000% j. u2 c) w9 M# I& j3 D* r7 k/ G
  11.    Booting using the fdt blob at 0x4f000009 Q/ j- [, c5 O! A6 U3 K3 l
  12.    Using Device Tree in place at 0000000004f00000, end 0000000004f05df8
    + r5 x/ k( s% S# h

  13. ; F2 I9 F0 t, f6 J
  14. Starting kernel ...8 L3 n+ }1 a) Z7 w" V5 e# H4 h
  15. 8 J% C: v# k( l; B  a/ A8 I% k
  16. .........6 F4 i8 \8 k( N9 `; k
  17. [    2.786623]  mmcblk0: p1 p2 p3
    % a! Y- B* K1 h5 S* u. x2 h( }# M  T
  18. [    2.801201] Starting init: /sbin/init exists but couldn't execute it (error -5)
    # Y; L# y( a$ L& m
  19. [    2.813804] cramfs: bad compressed blocksize 4294298135
    8 X3 ~# `6 @) ~  H: X2 l
  20. [    2.819206] Starting init: /bin/sh exists but couldn't execute it (error -5)
    & w- s  l6 _5 O* \' 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 |2 q! s' ?8 \$ n) a
  22. [    2.840101] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #21
    9 L8 Q: Y6 I) @3 G/ l4 m: t
  23. [    2.847399] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT); x5 h+ U1 K  v( e# n
  24. [    2.854957] Call trace:
    1 {$ g3 a' O5 d: V- u" W
  25. [    2.857401] [<ffffffc000089b10>] dump_backtrace+0x0/0x108
    - k7 P! S2 T: E! D# [2 o
  26. [    2.863150] [<ffffffc000089c2c>] show_stack+0x14/0x20
    * M3 U) S7 c, Y/ v. U/ h
  27. [    2.868371] [<ffffffc00029f280>] dump_stack+0x98/0xb8
    $ _, c& w5 H! U
  28. [    2.873592] [<ffffffc00012b32c>] panic+0xd4/0x218
    0 H! G% X$ l( C$ k' m
  29. [    2.878454] [<ffffffc000621d0c>] kernel_init+0xdc/0xe00 v% `# y) K- z6 l2 @9 [- c
  30. [    2.883761] [<ffffffc000085dd0>] ret_from_fork+0x10/0x40
    4 Z, H& _5 S5 h5 s/ w: M1 c; F
  31. [    2.888890] CPU0: stopping9 v. j9 C0 u) P
  32. [    2.891949] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #21: }4 ?- O) ?, e
  33. [    2.899505] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT)$ v& G0 T) q" ]4 b& e$ p
  34. [    2.907154] Call trace:9 y5 [! J. }$ R' X
  35. [    2.909861] [<ffffffc000089b10>] dump_backtrace+0x0/0x108* X" _! i% |2 q& ~: _; ]3 l/ J  A
  36. [    2.915269] [<ffffffc000089c2c>] show_stack+0x14/0x20
    8 [, v6 q4 v' J9 Y) l  K
  37. [    2.920580] [<ffffffc00029f280>] dump_stack+0x98/0xb8
    2 ?+ q) e( t1 o( w
  38. [    2.925892] [<ffffffc00008efc0>] handle_IPI+0x190/0x1a07 n' L4 F) k" H5 ^" a" a
  39. [    2.931030] [<ffffffc000082598>] gic_handle_irq+0x78/0x168
    7 B- }7 L! U) I1 ]( Z9 o
  40. [    2.936969] Exception stack(0xffffffc0008abda0 to 0xffffffc0008abed0)8 R. F, C. v" g+ i6 L# X9 N
  41. [    2.943547] bda0: ffffffc0008ae000 0000008000000000 ffffffc0008abf00 ffffffc000086840
    + {# I. F; G( R' v  D- y. a5 t
  42. [    2.951467] bdc0: 0000000000000145 ffffffc000890000 0000000000000000 0000000000000000
    ' W) }  L* d. Y& Y8 ?
  43. [    2.959567] bde0: 0000000000000001 0000000000000000 00000000000001c0 01000000000000002 d  U0 L1 ?1 w. n& M$ F  ?7 g
  44. [    2.967757] be00: 0000000000000001 ffffffc01bfcddc0 00000000fffeddda ffffffc0008abe80
    8 Y# n. u" j4 j. d, e) Y+ t
  45. [    2.975676] be20: 00000000000006d0 0000000000000000 0000000000000000 00000000058e8eff, L% E9 p2 E$ J
  46. [    2.983954] be40: ffffffc00426c260 00000000000075af 00000000000ba7a2 0000000000000000
    8 {3 m; j; C5 j, ?
  47. [    2.991876] be60: ffffff8000058548 ffffffc0008ae000 ffffffc0008ae8d8 ffffffc00088cad8
    ) k$ H; F+ \8 q3 e% x
  48. [    2.999886] be80: ffffffc0008abf20 ffffffc000631000 ffffffc000890000 ffffffc0008ae000
    & W+ Q& O( Q7 J; X( M) o  ]
  49. [    3.007986] bea0: ffffffc0008a8000 0000000000000000 0000000000000000 ffffffc0008abf00; A4 B7 U' x9 R8 u
  50. [    3.016353] bec0: ffffffc00008683c ffffffc0008abf00
      ]) C7 h  Z. ~, }% A
  51. [    3.021215] [<ffffffc000085700>] el1_irq+0x80/0xf8& Z. W* n; y1 }
  52. [    3.026168] [<ffffffc0000d8164>] default_idle_call+0x1c/0x38+ n  }0 I$ R: W8 [
  53. [    3.032373] [<ffffffc0000d8398>] cpu_startup_entry+0x1c8/0x218
    0 B0 y/ F8 S8 Y* b
  54. [    3.038411] [<ffffffc000621c20>] rest_init+0x88/0x98
    - x- t+ w) _" V% q5 i( h
  55. [    3.043192] [<ffffffc00084d950>] start_kernel+0x384/0x3980 C5 I7 n* D- P9 b0 L
  56. [    3.048948] [<0000000000627000>] 0x627000
      D2 Y, S: ^: t$ K. |4 w
  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 下获取的一些信息3 s3 v6 D2 K/ u7 |( |
  1. # 查看文件夹 发现boot为空" L; X" W! n/ z, x
  2. Marvell>> ext4ls mmc 0:1 /boot
    ; I2 X) p, Y+ w
  3. <DIR>       4096 ./ y8 j, E$ ?# [4 x; m4 A* k
  4. <DIR>       4096 ..
    ' C) G; k: ~$ h: H
  5. - y) e0 L) s: }% a6 p: r' E7 F
  6. # 无法启动usb
    + v$ c. m- f% u
  7. Marvell>> usb start2 Q3 i9 v, P" E  E' ]6 o5 O$ |! o
  8. starting USB...2 O, V2 Y- }( E0 y0 h, e4 F5 b
  9. No controllers found
复制代码
猜测可能是误删了/boot下的文件导致的,无法通过U盘启动0 P# S3 r' m$ Y# ^) L& u

' c8 q8 ^! y+ _3 J1 u! X                               
登录/注册后可看大图
/ |: t) D, @4 f9 N' A, ^. ?
启动进入uboot输入如下命令) |! t& F0 E5 a" ~" |* ^! R  X
  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;"
    5 w+ j% K! V5 x# Z' [; g* K4 {
  2. setenv bootargs "console=ttyMV0,115200 root=/dev/mmcblk0p1 rootwait rw init=/bin/sh"' \0 B; T$ D3 o7 N; [
  3. boot
    , H1 [. I/ B9 f& j) E
  4. booti 0x5000000 - 0x4f00000
复制代码
即可进入linux shell
$ u: z: _! {' C" C0 u6 l' g5 j
  1. # 查看存储设备
    ( [8 a/ o, |2 {+ W1 Q/ \
  2. ls -l /dev/sd. O) S5 B2 V; l2 P" z  u. M

  3. $ `: _* L. f+ s; p
  4. # 挂载6 ~* ]/ |5 @9 R) ^. I
  5. mount -t proc /proc
    , @6 y' Y; M* q% I, @
  6. mount /dev/sda4 /mnt9 a: T0 O; I4 M4 m
  7. 3 Y& [; \0 {+ n1 o3 h5 d; g) E, B, y
  8. # 拷贝文件# ~$ u- G. D+ M. V5 s
  9. cd /mnt0 O' ~& q! l; x/ L% L+ _+ j
  10. cp armada-3720-customer0.dtb /boot/
    4 O" }- S: }% \* o& k8 y
  11. cp Image /boot/6 A- w$ L8 ?# o3 g0 N( R

  12. ; @7 Y$ J6 A% u
  13. # 退出' t" }/ ?  j# k& C+ j  J5 P
  14. exit
复制代码
重新插拔电源后恢复正常,uboot信息如下:
$ f$ L* B; f1 b( B5 b8 F+ [
  1. TIM-1.09 y% [- T% ]/ O2 |# C9 ?
  2. WTMI-armada-17.10.1-
    8 V) l* K" d2 U+ `+ {+ O
  3. ENTER init_ddrgen
    ' G0 i" o" H% v  A; a' |9 g
  4. DDR_TOPOLOGY is 0 :        DDR3, 1CS 512M
    # f' q* o/ m, t& ]7 |
  5. WTMI_CLOCK=29 u5 k# P& a5 q" A
  6. : J& ^- Q; m# x
  7. Fill memory before self refresh...done. I' k7 |8 B. N) ]8 u! ]7 X- W

  8. 9 `! Q6 I& G& `6 {: `
  9. Now in Self-refresh Mode2 d% G1 g0 y7 V/ ^6 x( m+ a
  10. Restore CAS Read and Write Latency. y+ s0 @! L6 v. W1 `# @/ @
  11. Restore termination values to original values
    5 N; Z. w  q% F+ t
  12. Exited self-refresh ...
    6 Q+ I/ i' v2 ~# G

  13. 7 S6 f$ Z5 H: q: O! }8 a
  14. DLL TUNING
    ) ]4 |" C5 F1 \) H7 Z
  15. ==============
    . O# V8 x7 w; z" D! F' _
  16.    DLL 0xc0001050[21:16]: [0,31,18]
    / v: O3 R7 S: l; ^1 C* K
  17.    DLL 0xc0001050[29:24]: [0,2b,15]
    : A# J+ P( @4 i. \1 x( G/ s/ r8 s0 p
  18.    DLL 0xc0001054[21:16]: [0,32,19]* E% X, ]. a3 A0 Y& g+ K
  19.    DLL 0xc0001054[29:24]: [0,2d,16]$ |( z5 _# g8 ~; z1 h$ l5 i
  20.    DLL 0xc0001074[21:16]: [0,3f,1f]
    ( r4 @4 i" x8 T+ F9 G8 }1 @
  21.    DLL 0xc0001074
    1 J" L6 u! f$ O/ K' a) M. ?

  22. 7 C) z% c- ?- {0 p6 x
  23. U-Boot 2017.03-armada-17.10.1 (Mar 07 2018 - 17:11:33 +0800)5 x( [5 V4 w" Y6 T9 T7 d

  24. : M3 j' H& _" @8 X2 `  ?. h) E
  25. Model: Marvell Armada 3720 for Eli Cat8 _( D( f5 G) m& H& |7 k
  26.        CPU    @ 1000 [MHz]9 E' ^  g" A% O, i
  27.        L2     @ 800 [MHz]* Q& K! m7 F3 p  O7 s
  28.        TClock @ 200 [MHz]
    8 U) g$ [3 ~3 I, C/ R
  29.        DDR    @ 800 [MHz]# w% X1 P. n% E1 C# \7 A0 \: F; f
  30. I2C:   ready - d! T$ }( L/ C
  31. DRAM:  512 MiB6 w6 H/ {7 c% I7 y
  32. U-Boot DT blob at : 000000001f73a5207 H" A3 |" J4 P$ a3 Y( ]' ]' z
  33. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB: e  Z" S* R4 [, q5 U
  34. *** Warning - bad CRC, using default environment  M7 D1 g# V! \4 f1 w9 F0 [7 @
  35. 0 e3 D  ?- l1 z  w, [
  36. MMC:   for ssg ledsdhci@d8000: 0$ G8 P0 R5 v$ t4 i2 f7 S4 C
  37. 12931 bytes read in 16 ms (789.1 KiB/s)
    & S4 {9 P6 g- f" h) ^. r  N3 {$ w
  38. gpio: pin GPIO23 (gpio 39) value is 1
    ' p" E) G( }! S) v+ ~
  39. gpio: pin GPIO23 (gpio 39) value is 1
    $ Z& g! a& {$ _  h1 ]) u9 N4 n  d
  40. gpio: pin GPIO23 (gpio 39) value is 1
    9 r$ y3 F* a' |7 Y
  41. Comphy-0: USB3_HOST0    5 Gbps    7 A1 E# h* k+ C( H: D
  42. Comphy-1: SGMII0        1.25 Gbps : j2 u: \/ j5 y2 q, o
  43. Comphy-2: SATA0         6 Gbps   
    ! W3 A5 C! h( `' E# h* n
  44. gpio: pin GPIO23 (gpio 39) value is 1+ ^8 |5 N* _0 f) W3 L
  45. 12931 bytes read in 4 ms (3.1 MiB/s)7 K) b  L0 U( X# T3 s( b$ r: W. t
  46. Enter Normal mode! M1 f7 u( ?# b3 Q- C
  47. SCSI:  Hit any key to stop autoboot:  0
复制代码
& j7 j: K/ m  `3 r- ~9 v" k2 ~
补充下:这样修改后,只能一次有效请删除mmc 0:3 分区的rootfs.tar.bz2和upgrade_eli_38.img文件。. v& ^8 i; y( T! r! r, W* t- x6 j
或者直接在linux shell里面刷写新uboot
4 j$ W9 C9 p6 Z5 S3 D+ n
4 j- w, i# X3 F3 t) F
! c, x, P4 g3 e/ k5 U* p7 Z
6 N3 h+ q" @/ b7 B  S

评分

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

查看全部评分

5

主题

57

回帖

491

积分

中级渣柚V1

积分
491
发表于 2019-10-9 15:50:15 | 显示全部楼层
本帖最后由 xingjiwoniu 于 2019-10-9 16:00 编辑
/ O+ \! z8 [0 t# m& c
; t* F9 W4 b) L* H7 D6 U& r0 Q$ F4 y感谢分享

4

主题

78

回帖

706

积分

中级渣柚V2

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

7

主题

450

回帖

706

积分

中级渣柚V2

积分
706

热心会员

发表于 2019-10-9 17:09:08 | 显示全部楼层
感谢分享3 M  R  v& U1 f8 ^* F

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
4 ^: \. G* k7 ~/ s按照你这个执行不成功啊
( x. i: \; b* [7 ]  [2 @
还是提示找不到?

0

主题

12

回帖

40

积分

初级渣柚V1

积分
40
发表于 2019-10-9 20:45:54 | 显示全部楼层
顶一下顶一下
$ j' W. O, ~  _6 f+ l

4

主题

114

回帖

323

积分

中级渣柚V1

积分
323
发表于 2019-10-9 20:48:03 | 显示全部楼层
tymfl 发表于 2019-10-9 20:36
& L& D4 m: N9 ~. U& C还是提示找不到?

6 j$ }+ d5 K# G3 T+ n) T8 B+ e是还是原样子,启动还是end Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
4 M  v2 W% Z) m4 x0 g完全按照您的步骤做的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-21 02:40 , Processed in 0.085389 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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