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

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

[复制链接]

5

主题

79

回帖

423

积分

中级渣柚V1

积分
423
发表于 2019-10-9 15:22:10 | 显示全部楼层 |阅读模式
本帖最后由 tymfl 于 2019-10-11 23:47 编辑 6 U+ W$ g9 p! k; U  N
7 c+ A- ~7 ?( V1 m2 q! r. k+ ?. V
入手一台伊拉克成色猫盘故障机,连好ttl上电以后/ b$ O% a9 x$ [. ?* j9 K" \  W7 p
  1. TIM-1.0
    4 Q2 s! a3 g# W' i7 o2 `- u
  2. WTMI-armada-17.10.1-
    7 z; |+ m' W$ d# K: o4 l
  3. .........' P, x. b  l& ?0 b8 z: g
  4. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB
    4 B7 k1 R8 A7 P
  5. *** Warning - bad CRC, using default environment
    ; s! f4 ~: D2 u' r  G- ~. e' \
  6. # O. W2 }0 ]) b- S/ w* _: @
  7. MMC:   for ssg ledsdhci@d8000: 0! x0 F- y1 P& q" q
  8. ** File not found boot/armada-3720-customer0.dtb **( d( M' Z- d4 V) o
  9. ** File not found boot/armada-3720-customer0-minifs.dtb **5 w9 p& e5 x1 k6 }
  10. test_mmc_ext4_exist ==1
    ; P6 v$ K! X- C9 I; c! r
  11. Comphy-0: UNCONNECTED  ; e# E0 v  ^! H9 x, [: i4 d
  12. Comphy-1: UNCONNECTED  ; A% I; d" }! J6 ]
  13. Comphy-2: UNCONNECTED  
    $ k, {. d' J" t, m' ?8 z/ a
  14. gpio: pin GPIO23 (gpio 39) value is 1
    ; U1 u* M1 X- o% T4 R
  15. ** File not found boot/armada-3720-customer0.dtb **
      R8 \+ G4 a1 W7 |
  16. ** File not found boot/armada-3720-customer0-minifs.dtb **" t1 r/ s+ R5 l% e  L( c
  17. Enter Recovery mode
    3 V- P6 w7 m/ p* s
  18. SCSI:  Hit any key to stop autoboot:  0
复制代码
发现无法找到dtd文件,进入了恢复模式,直接启动或按住reset启动均启动失败,启动信息如下:
" G; ?* O1 ~7 c" {5 [8 w) l
  1. Marvell>> boot9 \! Z8 m  x+ ?. M( k, e
  2. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB
    " c! Z1 ]% V  ^$ A" ^
  3. device 0 offset 0xcc000, size 0x434000; N' N" Q2 h, ~% ]$ M
  4. SF: 4407296 bytes @ 0xcc000 Read: OK9 y; ?) K" G" \/ {$ Q, @. l
  5. gpio: pin GPIO21 (gpio 37) value is 1$ h4 ~# Z3 y  E' [6 A
  6. gpio: pin GPIO22 (gpio 38) value is 1
    ' O  |! m# f. i, K* O
  7. Uncompressed size: 8992256 = 0x893600- E; L7 i8 ?  o) l# n5 \: k
  8. device 0 offset 0xc8000, size 0x4000. |) J8 X5 |* m6 H8 _
  9. SF: 16384 bytes @ 0xc8000 Read: OK
    + s( n6 X) Y6 j0 w9 N
  10. ## Flattened Device Tree blob at 04f000003 {% S. v+ P1 n& X9 n- f, \# p' U
  11.    Booting using the fdt blob at 0x4f000005 |9 B- u  N  q  J
  12.    Using Device Tree in place at 0000000004f00000, end 0000000004f05df8
    7 g: j) E; {9 K. `* W9 c

  13. ( _6 Y$ G) e9 `
  14. Starting kernel ...
    1 ]/ `) }( N8 R  h% I
  15. . [/ h2 F2 X3 \
  16. .........4 n/ x4 G" [& N6 o  I! M
  17. [    2.786623]  mmcblk0: p1 p2 p3
    3 u+ J) o" C& C( H
  18. [    2.801201] Starting init: /sbin/init exists but couldn't execute it (error -5)* m8 a" s3 ^, N8 q
  19. [    2.813804] cramfs: bad compressed blocksize 4294298135
    + \$ y3 {$ G+ D7 Z. J4 H
  20. [    2.819206] Starting init: /bin/sh exists but couldn't execute it (error -5). [8 v! E. [$ A4 q# g$ A
  21. [    2.826452] Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
    " W7 r- S- y& l! B
  22. [    2.840101] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #21
    % |; p& E3 a4 @& m. U
  23. [    2.847399] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT)2 h6 m5 |6 t: u4 `
  24. [    2.854957] Call trace:
    + g% z! e0 y. j- {: Y: q
  25. [    2.857401] [<ffffffc000089b10>] dump_backtrace+0x0/0x108  V, S: ~7 ?& M1 D: @! e' K
  26. [    2.863150] [<ffffffc000089c2c>] show_stack+0x14/0x20
    ; L; J7 F3 c* o$ B1 |7 J
  27. [    2.868371] [<ffffffc00029f280>] dump_stack+0x98/0xb8
    ! f- Q. [1 v* k+ J- E1 l8 v6 e
  28. [    2.873592] [<ffffffc00012b32c>] panic+0xd4/0x2187 b6 S7 z1 V8 C; {- I% q
  29. [    2.878454] [<ffffffc000621d0c>] kernel_init+0xdc/0xe0" ~7 B1 i- q( t. i
  30. [    2.883761] [<ffffffc000085dd0>] ret_from_fork+0x10/0x409 N( S% u$ T' a4 f" u! {; z. t
  31. [    2.888890] CPU0: stopping, v5 P. M2 c: ]4 v
  32. [    2.891949] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #21
    5 J6 a& ]& u2 Q& W; v3 U
  33. [    2.899505] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT)' M4 x/ R6 O! K' j- o2 ]: H
  34. [    2.907154] Call trace:
    9 K: T) D4 o, a& r
  35. [    2.909861] [<ffffffc000089b10>] dump_backtrace+0x0/0x108
    9 @/ ?7 c# N% P+ T1 i
  36. [    2.915269] [<ffffffc000089c2c>] show_stack+0x14/0x20
    1 [; x; `* G( O1 C, m5 m+ _) j- f
  37. [    2.920580] [<ffffffc00029f280>] dump_stack+0x98/0xb8: v6 i$ x" j  J# |) m- ]
  38. [    2.925892] [<ffffffc00008efc0>] handle_IPI+0x190/0x1a01 `& ?0 Q  N/ O* k' T  p
  39. [    2.931030] [<ffffffc000082598>] gic_handle_irq+0x78/0x168% |: @1 u' ?# V
  40. [    2.936969] Exception stack(0xffffffc0008abda0 to 0xffffffc0008abed0)
    % Y# E4 k* D% y. F, a
  41. [    2.943547] bda0: ffffffc0008ae000 0000008000000000 ffffffc0008abf00 ffffffc0000868407 \* k& x* @8 c: T! b
  42. [    2.951467] bdc0: 0000000000000145 ffffffc000890000 0000000000000000 0000000000000000
    + n" V! z9 j" h7 A0 r  y0 \
  43. [    2.959567] bde0: 0000000000000001 0000000000000000 00000000000001c0 0100000000000000
    ( f9 i2 J& W9 D4 _; @
  44. [    2.967757] be00: 0000000000000001 ffffffc01bfcddc0 00000000fffeddda ffffffc0008abe80
    / b0 {, f  h" H3 @+ F8 [
  45. [    2.975676] be20: 00000000000006d0 0000000000000000 0000000000000000 00000000058e8eff( }9 U) T' T: _( p. v: V
  46. [    2.983954] be40: ffffffc00426c260 00000000000075af 00000000000ba7a2 0000000000000000
    + S9 c, q1 L# F1 p! l8 n) F9 U/ V
  47. [    2.991876] be60: ffffff8000058548 ffffffc0008ae000 ffffffc0008ae8d8 ffffffc00088cad8
    ! C2 M: S6 P+ B
  48. [    2.999886] be80: ffffffc0008abf20 ffffffc000631000 ffffffc000890000 ffffffc0008ae000
    / h3 v6 f! C; r, o/ b% S) p1 h! P0 Z* k
  49. [    3.007986] bea0: ffffffc0008a8000 0000000000000000 0000000000000000 ffffffc0008abf00
    , X5 O% `. T2 `5 b5 S' I. Y
  50. [    3.016353] bec0: ffffffc00008683c ffffffc0008abf007 y( L0 {* F1 j
  51. [    3.021215] [<ffffffc000085700>] el1_irq+0x80/0xf82 x0 K# x) S7 \/ e) E. `7 G% n
  52. [    3.026168] [<ffffffc0000d8164>] default_idle_call+0x1c/0x38( I& b( v. V- Q9 U/ g: s& z
  53. [    3.032373] [<ffffffc0000d8398>] cpu_startup_entry+0x1c8/0x218
    ) p# O% P& S/ K. ^) N
  54. [    3.038411] [<ffffffc000621c20>] rest_init+0x88/0x98
    + ~$ N+ X) Y5 b
  55. [    3.043192] [<ffffffc00084d950>] start_kernel+0x384/0x398
    ; n: C+ Z% O. V7 J/ R2 }
  56. [    3.048948] [<0000000000627000>] 0x627000
    * K- ]2 X2 R  V  q. N
  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 下获取的一些信息
7 Y# A5 U8 ?; R& e0 z% M
  1. # 查看文件夹 发现boot为空. P9 a2 F* [. b; {
  2. Marvell>> ext4ls mmc 0:1 /boot
    * [3 B$ d# W0 C- A
  3. <DIR>       4096 .  }' j& ~* M) a# S8 N
  4. <DIR>       4096 ..
    2 t, w$ Q: \2 t8 n4 z

  5. 6 u7 r' t2 |7 I5 k8 }+ g; q% j
  6. # 无法启动usb; b. J( ~! ]5 i0 b; N' m% O
  7. Marvell>> usb start
    & n  l3 _3 ^; S- R
  8. starting USB...
    2 V3 G+ p. ~3 |, [) s+ n0 ^
  9. No controllers found
复制代码
猜测可能是误删了/boot下的文件导致的,无法通过U盘启动# }7 C* V( T/ O4 F: I- G
" Y! e1 E) G% M/ Z' D' n) h
                               
登录/注册后可看大图

' a& c! @& Q& g/ g启动进入uboot输入如下命令0 J5 ~( f5 @3 s& d) P5 p0 |
  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;"
    / l$ K) L- p8 K4 q/ x2 j) x  ]
  2. setenv bootargs "console=ttyMV0,115200 root=/dev/mmcblk0p1 rootwait rw init=/bin/sh"
    , H) _& E4 R8 [, Y- h" }5 e
  3. boot6 y0 |  F- D: l/ }6 Y
  4. booti 0x5000000 - 0x4f00000
复制代码
即可进入linux shell
# `, {5 [# a: h
  1. # 查看存储设备/ f3 T" C4 A3 M- Z/ }  |
  2. ls -l /dev/sd6 a  u$ j" Y# i/ B' ]! c2 Y2 P' `

  3. ! [2 j/ D- _$ u7 i0 F5 K, e2 ?
  4. # 挂载% k4 @( t2 B* \' h% R# c: S, t
  5. mount -t proc /proc8 l3 t. S" r" r( z( e9 U
  6. mount /dev/sda4 /mnt
    & U. J: a7 [' S; t, n8 ^; e4 j% g/ R" Z
  7.   Z: c7 G0 V: U, G% C) r* b
  8. # 拷贝文件- G/ ~) g0 t0 o, G; I
  9. cd /mnt* s0 V. ~( `- v  ~3 \. g
  10. cp armada-3720-customer0.dtb /boot/2 o; p' g' H' h( x1 B6 B
  11. cp Image /boot/! }% Z) Y% ?+ o* h0 D, N. R, i
  12. 0 m0 M3 K1 _% X* ?8 J' V
  13. # 退出" k3 i: I5 G$ D. g0 ]
  14. exit
复制代码
重新插拔电源后恢复正常,uboot信息如下:
9 x2 g9 P; {/ t0 L- P: c) ?
  1. TIM-1.0$ ]! y$ D3 x6 e* w: y
  2. WTMI-armada-17.10.1-' ~8 l8 L; W- \: U0 i
  3. ENTER init_ddrgen
    7 [: ?3 o: K8 w7 u/ B
  4. DDR_TOPOLOGY is 0 :        DDR3, 1CS 512M
    * @9 V$ h  R9 y6 ?
  5. WTMI_CLOCK=2( d" ?$ t3 E* |& n# X
  6. 4 [1 f- H& \9 M' |; W, F
  7. Fill memory before self refresh...done
    ' A2 v3 {/ I9 ?

  8. * `- P, G# ?1 j
  9. Now in Self-refresh Mode
    5 C6 ~+ Y3 B7 {5 r
  10. Restore CAS Read and Write Latency
    $ \: P: f4 }3 |, N9 A5 T! q& _& e& t7 x
  11. Restore termination values to original values7 }( S1 w% E) B# b) s. Z
  12. Exited self-refresh ...
      Q( i' a5 x$ V. e7 ~5 }

  13. & p+ V. l# D  `" j
  14. DLL TUNING5 ]1 P  U) _- J
  15. ==============
    ( |  S4 X1 |6 e) ~! i7 }' C# u
  16.    DLL 0xc0001050[21:16]: [0,31,18]
    + ~* l' k3 `# n& |7 T9 {+ Q! z  x
  17.    DLL 0xc0001050[29:24]: [0,2b,15]) q  d, ?2 {6 [3 {. E4 E. P
  18.    DLL 0xc0001054[21:16]: [0,32,19]/ M# j5 w9 o7 u8 t; @' u
  19.    DLL 0xc0001054[29:24]: [0,2d,16]
    : F  F; D7 r. B& s6 ~
  20.    DLL 0xc0001074[21:16]: [0,3f,1f]
    $ Y& R) F- v$ Y2 O
  21.    DLL 0xc0001074
    / n. U0 y7 R" j# x
  22. $ l8 g( L/ x3 h7 b0 _) S" v
  23. U-Boot 2017.03-armada-17.10.1 (Mar 07 2018 - 17:11:33 +0800)' |" F! d8 Y( F+ J, F. }+ {

  24. " y8 Y  k) I  I9 r5 ?
  25. Model: Marvell Armada 3720 for Eli Cat
    ) I& p4 k* C6 G: J% ^6 |+ F& {
  26.        CPU    @ 1000 [MHz]# [1 K- F/ ^7 A
  27.        L2     @ 800 [MHz]
    4 L# t5 {) _: g- H; a# H6 }
  28.        TClock @ 200 [MHz]
    ) n7 ]3 i: l1 `' o+ X, `
  29.        DDR    @ 800 [MHz]
    , S" |% N- i% u0 o
  30. I2C:   ready
    , x  x& M  L: l2 J1 G  s" M
  31. DRAM:  512 MiB, Q( S+ b) h! }* G0 [
  32. U-Boot DT blob at : 000000001f73a520: G0 Y3 A+ ~8 m9 s  {
  33. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB: u% [9 E1 `1 z
  34. *** Warning - bad CRC, using default environment
    & i1 M/ e* |. p" w, `* H
  35. * {% Z) w6 U" p; E3 p( Y
  36. MMC:   for ssg ledsdhci@d8000: 0
    6 @2 \. {, ?  T1 r
  37. 12931 bytes read in 16 ms (789.1 KiB/s)
    ( E# Q. \% @. l6 B* j  e
  38. gpio: pin GPIO23 (gpio 39) value is 1
    : |: K( L' y# j6 ~" j/ C1 ~
  39. gpio: pin GPIO23 (gpio 39) value is 1
    + [; j9 {4 L; i- r. i
  40. gpio: pin GPIO23 (gpio 39) value is 1
    9 t( P! e0 ?; Q" ^
  41. Comphy-0: USB3_HOST0    5 Gbps   
    3 i$ |0 V1 Y) u, l2 Z
  42. Comphy-1: SGMII0        1.25 Gbps
    1 q. W2 `, @& z; }
  43. Comphy-2: SATA0         6 Gbps    5 i4 J1 ~; p% H0 V( ]& p: H' f5 G
  44. gpio: pin GPIO23 (gpio 39) value is 1
    " M5 c0 g" X  H6 J+ r6 a
  45. 12931 bytes read in 4 ms (3.1 MiB/s)
    8 X4 a3 K! ]( r8 D
  46. Enter Normal mode
    1 e6 _6 v+ G0 {+ b% a  d
  47. SCSI:  Hit any key to stop autoboot:  0
复制代码
* U: s  `7 q, Z9 k& T3 R) r
补充下:这样修改后,只能一次有效请删除mmc 0:3 分区的rootfs.tar.bz2和upgrade_eli_38.img文件。
9 I+ s9 p3 ?9 {或者直接在linux shell里面刷写新uboot
( i) C9 Q# [# R, J% f. {
2 Y; V: b- ~# p/ q9 U' y" z: A/ p  O

& D% j7 d& F) n6 g5 n9 }4 B( H

评分

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

查看全部评分

5

主题

57

回帖

491

积分

中级渣柚V1

积分
491
发表于 2019-10-9 15:50:15 | 显示全部楼层
本帖最后由 xingjiwoniu 于 2019-10-9 16:00 编辑
6 M; S0 [8 u  ^1 N! p3 J. N9 k# o) W& C: i  {% p! j: u( `
感谢分享

4

主题

78

回帖

706

积分

中级渣柚V2

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

7

主题

450

回帖

705

积分

中级渣柚V2

积分
705

热心会员

发表于 2019-10-9 17:09:08 | 显示全部楼层
感谢分享
$ b$ ^6 K0 ~4 O# ]; _

1

主题

20

回帖

203

积分

中级渣柚V1

积分
203
发表于 2019-10-9 17:10:58 | 显示全部楼层
收藏 感谢!

4

主题

114

回帖

323

积分

中级渣柚V1

积分
323
发表于 2019-10-9 20:25:44 | 显示全部楼层
按照你这个执行不成功啊

5

主题

79

回帖

423

积分

中级渣柚V1

积分
423
 楼主| 发表于 2019-10-9 20:36:10 | 显示全部楼层
GokuSun 发表于 2019-10-9 20:25
9 h; K) V1 P" {% f& `按照你这个执行不成功啊

: I1 X2 A+ ?0 l还是提示找不到?

0

主题

12

回帖

40

积分

初级渣柚V1

积分
40
发表于 2019-10-9 20:45:54 | 显示全部楼层
顶一下顶一下" D$ `9 h7 T7 N3 |4 U  w& _) s

4

主题

114

回帖

323

积分

中级渣柚V1

积分
323
发表于 2019-10-9 20:48:03 | 显示全部楼层
tymfl 发表于 2019-10-9 20:365 W  x% b* p; j) |
还是提示找不到?

% c8 ~7 z0 U- R; v* f是还是原样子,启动还是end Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
. D. K  Q: L) _0 n( F完全按照您的步骤做的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-13 12:20 , Processed in 0.056027 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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