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

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

[复制链接]

5

主题

79

回帖

424

积分

中级渣柚V1

积分
424
发表于 2019-10-9 15:22:10 | 显示全部楼层 |阅读模式
本帖最后由 tymfl 于 2019-10-11 23:47 编辑
; c3 I2 W: K9 ^+ k1 v: {% P/ d; |" u
入手一台伊拉克成色猫盘故障机,连好ttl上电以后
: i5 U8 B8 ~% b. {' B: B
  1. TIM-1.0
    3 |0 |2 P. f- E" A2 r% R
  2. WTMI-armada-17.10.1-. r7 I0 W- E4 X( a, i/ w
  3. .........
    . K/ i' T3 c$ ]3 L. d
  4. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB; [7 u5 T$ t4 V" a: b0 z
  5. *** Warning - bad CRC, using default environment
    3 _7 r/ L( z% X6 \8 t& H: h
  6. ! @' N! O( P/ x3 K  `
  7. MMC:   for ssg ledsdhci@d8000: 0' H. B3 L1 `8 k8 l4 J' ~# O2 {* T- n0 O
  8. ** File not found boot/armada-3720-customer0.dtb **
    8 E  U% N9 ^. |4 B: r
  9. ** File not found boot/armada-3720-customer0-minifs.dtb **
    2 w1 \( t" \  @) Z3 J$ e+ A
  10. test_mmc_ext4_exist ==1
    4 h! S  M- C. A- x
  11. Comphy-0: UNCONNECTED  0 Q6 G+ I6 {0 M1 \4 @
  12. Comphy-1: UNCONNECTED  / Z8 c$ ^  S3 B0 |; F9 F
  13. Comphy-2: UNCONNECTED  
    2 m9 a$ J9 Y4 ]0 q+ [
  14. gpio: pin GPIO23 (gpio 39) value is 1
    ) p+ ^, N; [0 }5 w' e
  15. ** File not found boot/armada-3720-customer0.dtb **3 N5 M( h- Z4 u# ^* Y
  16. ** File not found boot/armada-3720-customer0-minifs.dtb **  l/ o1 `! K' Y: P; `: Y
  17. Enter Recovery mode
    : O8 ?- `. q1 P9 m8 w3 a0 l
  18. SCSI:  Hit any key to stop autoboot:  0
复制代码
发现无法找到dtd文件,进入了恢复模式,直接启动或按住reset启动均启动失败,启动信息如下:5 u/ b) p& ]) g
  1. Marvell>> boot  a0 R9 c- q; ^! r% O$ e& e
  2. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB& A. X# k6 c; _
  3. device 0 offset 0xcc000, size 0x434000
    & ~9 q5 w5 \' X0 j. g4 S3 X* s
  4. SF: 4407296 bytes @ 0xcc000 Read: OK
    / w' Q3 ?1 E3 \: F: ~# e
  5. gpio: pin GPIO21 (gpio 37) value is 1, L# ?5 _1 N5 u" T
  6. gpio: pin GPIO22 (gpio 38) value is 1
    * H* |* T! H  l/ C  ?  J! e2 g
  7. Uncompressed size: 8992256 = 0x893600
    ( n# [- A0 N. v) ^( E& x
  8. device 0 offset 0xc8000, size 0x4000+ b# [3 g. E' Y5 [
  9. SF: 16384 bytes @ 0xc8000 Read: OK
    1 E6 d! C1 q& s: @5 h
  10. ## Flattened Device Tree blob at 04f00000
    9 \7 E, y5 k2 T  z: y7 ~) ~+ G9 s  F
  11.    Booting using the fdt blob at 0x4f00000' q' S( ~3 S4 {! k$ |0 l5 M/ E2 F" Q: N
  12.    Using Device Tree in place at 0000000004f00000, end 0000000004f05df8; n+ p/ `6 F' A  ?
  13. 3 b( U  I- D" ]6 @4 O# i. ~3 o% j8 G% c
  14. Starting kernel ...
      g/ u$ {9 v% n6 _2 ?% X- w! G# R
  15. * _- }  m3 v8 W- o7 y/ m
  16. .........% t# Z9 ~) j6 V  o
  17. [    2.786623]  mmcblk0: p1 p2 p3
    ' v$ x( z: v8 f/ X" i; k# R
  18. [    2.801201] Starting init: /sbin/init exists but couldn't execute it (error -5)
    5 J; F0 _6 [7 D- C
  19. [    2.813804] cramfs: bad compressed blocksize 4294298135; T1 m4 P2 l0 C6 E" V" w  n# L: x7 y& e
  20. [    2.819206] Starting init: /bin/sh exists but couldn't execute it (error -5)
    / J8 t" C# 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.
    ; m5 T4 |" T, J$ }+ F0 Z
  22. [    2.840101] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #21
    ; }- u7 M2 _3 \0 B5 j' b4 f
  23. [    2.847399] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT)* k2 q0 W* V$ A1 ]% L
  24. [    2.854957] Call trace:
    , {# [5 V( }* i
  25. [    2.857401] [<ffffffc000089b10>] dump_backtrace+0x0/0x108
    4 C6 G' ]6 x" v* v1 C- n  N
  26. [    2.863150] [<ffffffc000089c2c>] show_stack+0x14/0x20
    6 s6 a% d0 t( d! F, m
  27. [    2.868371] [<ffffffc00029f280>] dump_stack+0x98/0xb8
    ; ^. e7 ]1 t  |! k0 c! @) W
  28. [    2.873592] [<ffffffc00012b32c>] panic+0xd4/0x218! m7 {8 K. y& @' r2 I' Q
  29. [    2.878454] [<ffffffc000621d0c>] kernel_init+0xdc/0xe01 c5 \( \( e" a* D! H8 s
  30. [    2.883761] [<ffffffc000085dd0>] ret_from_fork+0x10/0x405 n. V; m& o! l( \" ?  U: i
  31. [    2.888890] CPU0: stopping  {$ Y2 W% S- d1 o
  32. [    2.891949] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #21
    + B& s5 E" a& X0 _2 b, B2 f& P
  33. [    2.899505] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT)
    9 I$ U6 q  O# u2 q) v& h. ?
  34. [    2.907154] Call trace:1 b1 O( N  ^4 d2 i' r/ i7 G6 e
  35. [    2.909861] [<ffffffc000089b10>] dump_backtrace+0x0/0x1087 `5 j. B6 ^, r
  36. [    2.915269] [<ffffffc000089c2c>] show_stack+0x14/0x207 G8 B& z5 j$ W4 [% X
  37. [    2.920580] [<ffffffc00029f280>] dump_stack+0x98/0xb8
    9 J: v  S- @4 b' e5 O
  38. [    2.925892] [<ffffffc00008efc0>] handle_IPI+0x190/0x1a0
    5 Y6 w  x! M1 v7 u6 m
  39. [    2.931030] [<ffffffc000082598>] gic_handle_irq+0x78/0x168
    1 K# }0 o/ y0 o6 P; b% a. r4 W
  40. [    2.936969] Exception stack(0xffffffc0008abda0 to 0xffffffc0008abed0)
    + O" |1 n1 n) O6 H" B6 Q
  41. [    2.943547] bda0: ffffffc0008ae000 0000008000000000 ffffffc0008abf00 ffffffc000086840
    ; T9 Y' {- p* _5 e* |
  42. [    2.951467] bdc0: 0000000000000145 ffffffc000890000 0000000000000000 0000000000000000
    3 ^* O" x% F5 Q1 m# |
  43. [    2.959567] bde0: 0000000000000001 0000000000000000 00000000000001c0 0100000000000000" {1 F+ E0 A+ o4 _2 n# h
  44. [    2.967757] be00: 0000000000000001 ffffffc01bfcddc0 00000000fffeddda ffffffc0008abe80
    & v# r/ M0 l* x  \2 D5 c# L
  45. [    2.975676] be20: 00000000000006d0 0000000000000000 0000000000000000 00000000058e8eff4 Z  T+ o. ?! X3 a+ n" O8 H$ n, `
  46. [    2.983954] be40: ffffffc00426c260 00000000000075af 00000000000ba7a2 00000000000000006 S9 y* h* z0 ~) I# S- O9 R
  47. [    2.991876] be60: ffffff8000058548 ffffffc0008ae000 ffffffc0008ae8d8 ffffffc00088cad8" Y7 O& [& G$ U% G) E
  48. [    2.999886] be80: ffffffc0008abf20 ffffffc000631000 ffffffc000890000 ffffffc0008ae000
    6 H6 |& L; g' r* F; W* s; L' D: Q
  49. [    3.007986] bea0: ffffffc0008a8000 0000000000000000 0000000000000000 ffffffc0008abf00( V  m: Y* `! `% f& n* c
  50. [    3.016353] bec0: ffffffc00008683c ffffffc0008abf00
    : l+ d4 ?: E) ?( Y- X  Q- S9 W
  51. [    3.021215] [<ffffffc000085700>] el1_irq+0x80/0xf8
    0 S, U& b/ m" U/ a8 F  ?6 J
  52. [    3.026168] [<ffffffc0000d8164>] default_idle_call+0x1c/0x38& Q$ {! P' D' s8 m# p
  53. [    3.032373] [<ffffffc0000d8398>] cpu_startup_entry+0x1c8/0x2186 D5 o2 P: N2 W4 o
  54. [    3.038411] [<ffffffc000621c20>] rest_init+0x88/0x98
    : F5 `5 R! l' l: s; Z3 D
  55. [    3.043192] [<ffffffc00084d950>] start_kernel+0x384/0x398
    % y* ^- j! u; _9 p; k/ o( j
  56. [    3.048948] [<0000000000627000>] 0x627000
    / F1 i% c% \9 U4 V6 g# 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 下获取的一些信息
/ Q/ s: H* H7 G. B: t% w* s
  1. # 查看文件夹 发现boot为空# V9 H: F% g6 E5 a( s
  2. Marvell>> ext4ls mmc 0:1 /boot
    8 u. K2 M  l5 i* L: v9 ]$ |* t
  3. <DIR>       4096 .
    # a# ?* P9 P9 r
  4. <DIR>       4096 ..
    ( S, ?8 H3 `0 ?) Q. z/ g0 G7 A
  5. 9 x* G' u. k( A
  6. # 无法启动usb
    * P0 w% J; w3 V7 O* D
  7. Marvell>> usb start3 w. ~( Z  j; o0 p
  8. starting USB...
    1 q; P+ E* v  K' t
  9. No controllers found
复制代码
猜测可能是误删了/boot下的文件导致的,无法通过U盘启动
2 d( p  ^& J, r2 ~$ `

" ?- i# J2 g4 W" G8 n- c* _                               
登录/注册后可看大图
1 b  S. z8 A& W* J( u
启动进入uboot输入如下命令) ]0 V: y" [8 P3 U1 B- m" ~3 E
  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;"
    3 X0 o9 d& D9 Q6 q* J& J
  2. setenv bootargs "console=ttyMV0,115200 root=/dev/mmcblk0p1 rootwait rw init=/bin/sh"5 M6 b8 _' i3 i* _& Q& a& T
  3. boot# B$ t: y6 T0 F% |8 i
  4. booti 0x5000000 - 0x4f00000
复制代码
即可进入linux shell0 R* g# Q& Z7 W: t7 L
  1. # 查看存储设备& z8 N5 `' T- z# s# H* B' r
  2. ls -l /dev/sd
    . k2 ^, T* u) [# q; S% v% t+ @
  3. 7 n5 W8 f$ S; s% ]+ [& V
  4. # 挂载
    : b! O; {% |9 {( C- C) C( e
  5. mount -t proc /proc; Q# h7 k- ]) C$ z5 b7 V
  6. mount /dev/sda4 /mnt$ j6 m3 \( p, X
  7. 0 v6 T) y6 K1 u9 Z6 Q* @8 M5 ^
  8. # 拷贝文件
    ! \7 J! O+ b+ l9 V; U
  9. cd /mnt4 {& {+ o0 A4 r) E+ Y
  10. cp armada-3720-customer0.dtb /boot/- P' n7 u7 ~, d' V( J. Q5 v" Z
  11. cp Image /boot/
    6 h! \6 H; l0 \- v1 A. A
  12. ( p  W. d! |/ \2 Y! d# b
  13. # 退出- R# y) j# D4 G* x0 \
  14. exit
复制代码
重新插拔电源后恢复正常,uboot信息如下:" s$ ~0 D1 b3 w' `; j# `
  1. TIM-1.09 I  ^" X$ L5 K* i4 g- y: p
  2. WTMI-armada-17.10.1-
    3 H4 O  K" _6 }  Q! C
  3. ENTER init_ddrgen
    $ O) n/ E+ o) i5 \% R0 ?4 q* T( w
  4. DDR_TOPOLOGY is 0 :        DDR3, 1CS 512M
    ' y9 W. G$ V. R+ A4 r: l9 g, a
  5. WTMI_CLOCK=2' ?0 \+ Y$ x) f+ h6 C, I
  6. , B6 ?" o2 w$ ^, v& s" Y- {
  7. Fill memory before self refresh...done  I* k* s3 F- S% f! s
  8. 8 A) ]2 K4 E1 `3 m1 R4 V/ F
  9. Now in Self-refresh Mode
    . w8 w; d) {# y; f
  10. Restore CAS Read and Write Latency
    ) x3 n9 d# B; ~
  11. Restore termination values to original values
    7 U: T: `7 B8 e4 J9 I# [7 N
  12. Exited self-refresh ...
    $ S! z, A& v5 K6 M4 d1 C* X* Z

  13. , U$ g5 Q  S; t$ @/ s# y0 k
  14. DLL TUNING; y& \8 [% v6 p" v& c9 j3 ?0 J, ^
  15. ==============
    $ `' m; r+ P" S% B
  16.    DLL 0xc0001050[21:16]: [0,31,18]" e+ C- b3 r5 z4 a7 O3 i' j+ K
  17.    DLL 0xc0001050[29:24]: [0,2b,15]
    8 `# X! Y2 S, i& Z
  18.    DLL 0xc0001054[21:16]: [0,32,19]
    1 \, @; R( `, i0 b
  19.    DLL 0xc0001054[29:24]: [0,2d,16]
    7 V/ O' J7 T+ W7 Y" j6 }
  20.    DLL 0xc0001074[21:16]: [0,3f,1f]. f3 L% s4 y+ _5 s1 T
  21.    DLL 0xc0001074
    / n: L) C4 u$ q0 r) X$ ?5 ~
  22. $ B0 X- l' ?6 A1 i2 K
  23. U-Boot 2017.03-armada-17.10.1 (Mar 07 2018 - 17:11:33 +0800)
    0 E, `, {; ]8 R" u* l/ w
  24. 1 G- k9 b: B9 s0 u2 ^( d7 y
  25. Model: Marvell Armada 3720 for Eli Cat
    . j& x, c  t+ V- e6 b4 N. s' F6 G
  26.        CPU    @ 1000 [MHz]( h& N3 ?; I& A5 P
  27.        L2     @ 800 [MHz]6 P; q6 n( c- Z
  28.        TClock @ 200 [MHz]
    & p( z% t% _7 [2 d, D' F
  29.        DDR    @ 800 [MHz]
    ) v2 _( Q, w& n1 p  W, V
  30. I2C:   ready 1 y  Y1 Z, a3 t8 B$ t, T6 I) f
  31. DRAM:  512 MiB0 B& X+ y6 @* w* a& I
  32. U-Boot DT blob at : 000000001f73a520& d8 A2 L* Z  Y& B
  33. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB
    ; b+ }: a6 @9 M! H2 v
  34. *** Warning - bad CRC, using default environment
    ( c0 w) {) U; N* a, n/ |

  35. + a7 B6 }. a1 m0 Y" j# l
  36. MMC:   for ssg ledsdhci@d8000: 0$ u0 v$ Z! H6 o" o3 Z
  37. 12931 bytes read in 16 ms (789.1 KiB/s)' q( b: S2 f) |$ Z: f. z
  38. gpio: pin GPIO23 (gpio 39) value is 1& ^  M% q/ f6 u1 l6 E! z4 A
  39. gpio: pin GPIO23 (gpio 39) value is 1/ j: r  e# S6 |+ o& j! d2 I; [
  40. gpio: pin GPIO23 (gpio 39) value is 1" \! h* s9 ?: p+ Z7 [0 S6 }
  41. Comphy-0: USB3_HOST0    5 Gbps   
    9 l6 X7 `- F& s/ D" y
  42. Comphy-1: SGMII0        1.25 Gbps - y* v0 V! E; s+ I
  43. Comphy-2: SATA0         6 Gbps   
    $ e  ?0 P7 ?0 h% D3 U# q* }0 {4 G2 t% U
  44. gpio: pin GPIO23 (gpio 39) value is 1
    " A/ Q. }1 g1 V, L" g9 R" Z4 k5 Y# v
  45. 12931 bytes read in 4 ms (3.1 MiB/s)' F# r5 U9 }. [/ p. a/ ?; s% R
  46. Enter Normal mode6 \# x3 k9 e" ~; Z! K  d
  47. SCSI:  Hit any key to stop autoboot:  0
复制代码
" b1 @- w* w2 d4 U+ y
补充下:这样修改后,只能一次有效请删除mmc 0:3 分区的rootfs.tar.bz2和upgrade_eli_38.img文件。
8 w; d( p! [1 r$ d7 p' [或者直接在linux shell里面刷写新uboot
/ ?# u# i/ F2 h) p9 ^' @8 v; Y0 b) k& \2 n+ T
& P  Q. W" Z: t( z
2 f! m3 p  R4 r7 E4 H) O; D) C2 Q

评分

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

查看全部评分

5

主题

57

回帖

491

积分

中级渣柚V1

积分
491
发表于 2019-10-9 15:50:15 | 显示全部楼层
本帖最后由 xingjiwoniu 于 2019-10-9 16:00 编辑
. ?( D, v# e. A# c+ a4 X
1 ?. ~  B& B6 _( H9 V4 W感谢分享

4

主题

78

回帖

706

积分

中级渣柚V2

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

7

主题

450

回帖

706

积分

中级渣柚V2

积分
706

热心会员

发表于 2019-10-9 17:09:08 | 显示全部楼层
感谢分享$ v3 H: F' |2 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:254 G* n  U; C1 S
按照你这个执行不成功啊

9 N9 d  f" L3 N' R. P还是提示找不到?

0

主题

12

回帖

40

积分

初级渣柚V1

积分
40
发表于 2019-10-9 20:45:54 | 显示全部楼层
顶一下顶一下7 l1 E+ o# P8 U, |# R6 I

4

主题

114

回帖

323

积分

中级渣柚V1

积分
323
发表于 2019-10-9 20:48:03 | 显示全部楼层
tymfl 发表于 2019-10-9 20:368 w9 i! t# I  ]' X' T" Q
还是提示找不到?

& a! T2 P: v! T( {. |是还是原样子,启动还是end Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
$ `, N4 H  l! ~3 ^7 B8 x8 `" m% P完全按照您的步骤做的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-5 04:01 , Processed in 0.067153 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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