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

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

[复制链接]

5

主题

79

回帖

424

积分

中级渣柚V1

积分
424
发表于 2019-10-9 15:22:10 | 显示全部楼层 |阅读模式
本帖最后由 tymfl 于 2019-10-11 23:47 编辑
' r- T' r7 h2 _3 u& J4 g  a6 n) F$ \: a9 Z3 J
入手一台伊拉克成色猫盘故障机,连好ttl上电以后' X& H$ R: R* l! F+ F9 E
  1. TIM-1.0. O! Q2 _4 j; [& d% F" W: x
  2. WTMI-armada-17.10.1-& x1 m4 v  H$ [# L1 r. z
  3. ........., w' ?. e% m4 [$ r5 ^. b
  4. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB
    ( A" Y/ d. T0 ]! `% @, D( x" h
  5. *** Warning - bad CRC, using default environment! k) H( y. R+ o" S
  6. 5 m4 m8 M% H& H5 B- ?
  7. MMC:   for ssg ledsdhci@d8000: 0
    + ~" W% p, n( u. X) e+ y  b. T
  8. ** File not found boot/armada-3720-customer0.dtb **, ^9 [1 |( u! I8 L
  9. ** File not found boot/armada-3720-customer0-minifs.dtb **
    ! ]7 F$ n8 k% Z- V# o) Q$ \* l2 j
  10. test_mmc_ext4_exist ==18 P4 d5 y4 A' h2 ^( y: g
  11. Comphy-0: UNCONNECTED  / n) G1 v# |7 A
  12. Comphy-1: UNCONNECTED  0 O7 V0 n3 H' s5 D0 F
  13. Comphy-2: UNCONNECTED  ( `& U( u4 n8 x1 V
  14. gpio: pin GPIO23 (gpio 39) value is 14 `4 H  {7 @! u  ]5 r
  15. ** File not found boot/armada-3720-customer0.dtb **" m5 b7 i/ K8 {2 t- M# r
  16. ** File not found boot/armada-3720-customer0-minifs.dtb **
    + s7 d' X3 i+ c# V" V7 o8 q; v# w% R
  17. Enter Recovery mode
    ' L  I! X, L8 V$ U3 G
  18. SCSI:  Hit any key to stop autoboot:  0
复制代码
发现无法找到dtd文件,进入了恢复模式,直接启动或按住reset启动均启动失败,启动信息如下:& x; A8 R7 t! Z. Y
  1. Marvell>> boot
    8 t* z# {. M8 O" [2 c% n
  2. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB2 [5 r2 X) {" v$ r: n
  3. device 0 offset 0xcc000, size 0x434000
    $ g/ v) M6 n2 }2 O0 O
  4. SF: 4407296 bytes @ 0xcc000 Read: OK( E- V( I' `6 I& M4 D* t
  5. gpio: pin GPIO21 (gpio 37) value is 1
    $ v: i7 J; L9 U% N" y# T) w
  6. gpio: pin GPIO22 (gpio 38) value is 1
    & T5 R6 Y& {- @- L+ t
  7. Uncompressed size: 8992256 = 0x893600+ u9 {. T# [+ E
  8. device 0 offset 0xc8000, size 0x4000
    , w  U3 a' v* i; n
  9. SF: 16384 bytes @ 0xc8000 Read: OK
    - D, d# J3 X8 W7 |, p
  10. ## Flattened Device Tree blob at 04f000006 n/ S$ A: _/ z: ]# `) q6 d! y/ l
  11.    Booting using the fdt blob at 0x4f00000
    $ g7 z5 p" X4 {1 {
  12.    Using Device Tree in place at 0000000004f00000, end 0000000004f05df8
    # K  C/ d2 ?: g8 @
  13. 6 f; L9 Q' G1 V* w( g
  14. Starting kernel ...
    2 ^; d) K! y, b4 p
  15. $ g$ Z% L& \0 T
  16. .........5 ], l. Q; h& u. v! q
  17. [    2.786623]  mmcblk0: p1 p2 p3
    1 V$ P- V$ B9 J# I  O# F+ A( n
  18. [    2.801201] Starting init: /sbin/init exists but couldn't execute it (error -5)
    $ A/ D7 k! R8 o1 a: e
  19. [    2.813804] cramfs: bad compressed blocksize 4294298135
    - H, Q& `8 r" L% y8 u  A7 V
  20. [    2.819206] Starting init: /bin/sh exists but couldn't execute it (error -5)
    8 @! x& z$ U- @  n# P" h' T7 m
  21. [    2.826452] Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
    5 f+ E+ ?/ S9 H- @
  22. [    2.840101] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #21: k" r  m& W2 G- z7 E
  23. [    2.847399] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT)
    5 ]+ V+ k7 f! ~1 _$ H, {
  24. [    2.854957] Call trace:7 s+ u, o9 w3 q1 b2 J1 ]# Q7 o
  25. [    2.857401] [<ffffffc000089b10>] dump_backtrace+0x0/0x108
    & F; M  c! A! w- ~
  26. [    2.863150] [<ffffffc000089c2c>] show_stack+0x14/0x208 c) X; D& j) T* E8 n
  27. [    2.868371] [<ffffffc00029f280>] dump_stack+0x98/0xb8
    : W3 P9 b- x$ X/ b! L
  28. [    2.873592] [<ffffffc00012b32c>] panic+0xd4/0x218) V& g0 k0 U8 F+ p! F7 M+ M
  29. [    2.878454] [<ffffffc000621d0c>] kernel_init+0xdc/0xe0
    ( q# c' m  v9 i" n) B
  30. [    2.883761] [<ffffffc000085dd0>] ret_from_fork+0x10/0x40/ E: r: X9 j9 ?
  31. [    2.888890] CPU0: stopping
    0 G' S% \1 Q" |( z1 ]
  32. [    2.891949] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #21
    3 d. H/ x' i5 b/ h* s& A
  33. [    2.899505] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT)
    & X1 A; s0 O. f4 W; Z' B
  34. [    2.907154] Call trace:% b; \. V, e' S7 l6 \$ ]
  35. [    2.909861] [<ffffffc000089b10>] dump_backtrace+0x0/0x108
    4 [- T/ b3 S/ Z1 _" ]
  36. [    2.915269] [<ffffffc000089c2c>] show_stack+0x14/0x204 b1 i5 K# @+ k+ K4 G5 B
  37. [    2.920580] [<ffffffc00029f280>] dump_stack+0x98/0xb8& F( _' \; D+ r% ?  t# I& s9 n
  38. [    2.925892] [<ffffffc00008efc0>] handle_IPI+0x190/0x1a0
    : S7 v4 z/ Z  I- B% ]/ C
  39. [    2.931030] [<ffffffc000082598>] gic_handle_irq+0x78/0x1685 y7 ~4 r) U) @% V$ c/ ]( V
  40. [    2.936969] Exception stack(0xffffffc0008abda0 to 0xffffffc0008abed0)
    ( c6 W' S' |7 y/ M0 c: v* W
  41. [    2.943547] bda0: ffffffc0008ae000 0000008000000000 ffffffc0008abf00 ffffffc000086840
    , I7 e, O  x) ~# g
  42. [    2.951467] bdc0: 0000000000000145 ffffffc000890000 0000000000000000 0000000000000000! p; V) i. G  ^: J  f' F
  43. [    2.959567] bde0: 0000000000000001 0000000000000000 00000000000001c0 0100000000000000
    $ r; [- I0 C( [* n! N6 U3 ?6 V
  44. [    2.967757] be00: 0000000000000001 ffffffc01bfcddc0 00000000fffeddda ffffffc0008abe80
    5 q* T2 ?5 n: v  l4 F" Y& ~
  45. [    2.975676] be20: 00000000000006d0 0000000000000000 0000000000000000 00000000058e8eff: N; }0 [9 E5 t' p# Q7 F% c
  46. [    2.983954] be40: ffffffc00426c260 00000000000075af 00000000000ba7a2 0000000000000000' \5 j- P' T3 N0 ^# ]3 s/ l
  47. [    2.991876] be60: ffffff8000058548 ffffffc0008ae000 ffffffc0008ae8d8 ffffffc00088cad8
    + u5 @0 T% ?- x4 c
  48. [    2.999886] be80: ffffffc0008abf20 ffffffc000631000 ffffffc000890000 ffffffc0008ae000# |) x3 i9 @$ V$ r9 Y4 P) |% N% {
  49. [    3.007986] bea0: ffffffc0008a8000 0000000000000000 0000000000000000 ffffffc0008abf00
    " h- c' J& N, X$ ^) y8 r! @3 S
  50. [    3.016353] bec0: ffffffc00008683c ffffffc0008abf009 j5 e5 \/ N: Y8 k4 R5 S' i
  51. [    3.021215] [<ffffffc000085700>] el1_irq+0x80/0xf8
    * J' {0 Z# ^9 m3 c
  52. [    3.026168] [<ffffffc0000d8164>] default_idle_call+0x1c/0x38
    ' S4 N3 l: e* L$ p! A7 V7 K# J
  53. [    3.032373] [<ffffffc0000d8398>] cpu_startup_entry+0x1c8/0x218
    0 A1 l9 C3 r1 E5 v5 o7 m
  54. [    3.038411] [<ffffffc000621c20>] rest_init+0x88/0x980 _0 Q# }* g! s- B% |
  55. [    3.043192] [<ffffffc00084d950>] start_kernel+0x384/0x398
    ' F; w6 i4 e' G2 \
  56. [    3.048948] [<0000000000627000>] 0x627000
    3 ~; r: b. r3 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 下获取的一些信息, N5 b/ J( e0 E8 ]0 m2 j4 J
  1. # 查看文件夹 发现boot为空  B& ~5 o; V9 ^( k7 \8 L! Q: Z4 `
  2. Marvell>> ext4ls mmc 0:1 /boot: ?3 ?  P3 f! y4 q9 m
  3. <DIR>       4096 .: y2 n1 i( ?% H* D
  4. <DIR>       4096 ..
    % w# C) W/ w! T

  5. ( U1 ?5 j4 K( T: `
  6. # 无法启动usb0 Q0 a7 c# V9 R7 A1 M0 z+ Y
  7. Marvell>> usb start
    & A  V, ?' b- U% s& Y* |0 Q. V
  8. starting USB...' N( v, q% K6 t4 J% l  P
  9. No controllers found
复制代码
猜测可能是误删了/boot下的文件导致的,无法通过U盘启动
7 \7 R% T9 o8 n/ L$ V5 r( d* o

' w6 Y7 Y" _1 P& ?2 y* N% T5 |) r                               
登录/注册后可看大图
1 l- V; [8 |$ k1 _, h9 w
启动进入uboot输入如下命令
, m5 ?: j& P  \- ?
  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;"
    + K2 k& ^  e; F& L, k. k
  2. setenv bootargs "console=ttyMV0,115200 root=/dev/mmcblk0p1 rootwait rw init=/bin/sh"2 m: K% f1 i2 z" N$ Y8 m" m
  3. boot7 x8 i& a  r5 F- d5 T9 Z( O
  4. booti 0x5000000 - 0x4f00000
复制代码
即可进入linux shell
1 |3 a) h5 W* P9 ^
  1. # 查看存储设备9 g+ H  _! t- \
  2. ls -l /dev/sd
      H! Y- @! C  ?- ]! R

  3. 1 X% j4 u8 W/ t+ {9 M
  4. # 挂载
    7 V4 u- G, i! |' j  w3 B3 d8 b4 D
  5. mount -t proc /proc. [. A$ w1 |2 F+ \/ ~
  6. mount /dev/sda4 /mnt
    " W2 [4 `# d; l

  7. * m, w: L) v) D5 }2 C; m- b: t# U) j
  8. # 拷贝文件
    % x! J; N( _+ l7 @6 K
  9. cd /mnt6 B! Y, r" m. W" ^: `& \- w
  10. cp armada-3720-customer0.dtb /boot/4 f4 _/ a* c! y0 R
  11. cp Image /boot/5 o& `. v8 E% V! a1 J
  12. + a$ C& D: ^0 }8 L/ g4 o
  13. # 退出8 C1 \! H2 j) e
  14. exit
复制代码
重新插拔电源后恢复正常,uboot信息如下:4 `& A% n- W, a! d5 f" U  k
  1. TIM-1.0
    6 J; z) m# b! f$ y7 S3 l. k3 }
  2. WTMI-armada-17.10.1-9 `0 g0 `# q* K8 n# T. Q
  3. ENTER init_ddrgen) H/ p  L. g% Z: p0 U; n( j
  4. DDR_TOPOLOGY is 0 :        DDR3, 1CS 512M
    ; [# t  e2 F8 E4 T! N  Q; Q
  5. WTMI_CLOCK=2& I" J" C% k4 @1 L! Y
  6. 8 z9 x) M6 a; r- T$ C
  7. Fill memory before self refresh...done
    ; M2 `+ z  ], k( m+ I
  8. 9 A' j+ ~- o5 \/ q0 K
  9. Now in Self-refresh Mode
    , m5 ^4 \/ \  M+ S& W/ H
  10. Restore CAS Read and Write Latency
    4 H& b8 d  L3 f! w! `8 w! M! I- r
  11. Restore termination values to original values0 y+ G  i" r# P$ h% Q9 H+ u
  12. Exited self-refresh ...+ ?  l9 A1 o2 f

  13. / T$ |1 d1 x. T0 E8 [
  14. DLL TUNING
    8 ^, w& O: }: @% c7 _, D- }
  15. ==============
    8 v% ~& Y* {. L% \% e/ k3 j/ F' }
  16.    DLL 0xc0001050[21:16]: [0,31,18]
    7 e5 b6 F$ B$ W( M* B
  17.    DLL 0xc0001050[29:24]: [0,2b,15]9 u& V! g  @" ~8 `
  18.    DLL 0xc0001054[21:16]: [0,32,19]
    4 p( R0 n6 u! |2 o5 \. l
  19.    DLL 0xc0001054[29:24]: [0,2d,16]
    2 E2 ~9 `- u1 ^$ ~5 ^) B, I3 D6 X' h
  20.    DLL 0xc0001074[21:16]: [0,3f,1f]8 p. e. G5 q3 L( n7 K. u( K
  21.    DLL 0xc00010748 l) H6 F; Q4 b+ I# O$ \- v
  22. 2 n3 ?% p1 h- V
  23. U-Boot 2017.03-armada-17.10.1 (Mar 07 2018 - 17:11:33 +0800)
    : V* Z% W0 _" C. V
  24. ) H% }3 O. P9 e+ A* g
  25. Model: Marvell Armada 3720 for Eli Cat
    # s/ Z" A8 W) ?# c
  26.        CPU    @ 1000 [MHz]
    & Z9 T0 ], F) \) E9 {
  27.        L2     @ 800 [MHz]
    % X9 A& l& m6 T! ]
  28.        TClock @ 200 [MHz]
    ) P. q; ?2 R8 O  v5 f
  29.        DDR    @ 800 [MHz]
    ! i+ v' Y7 B4 V& `, M" n8 L& T
  30. I2C:   ready 3 T$ U( {5 F4 Z1 k0 [, l
  31. DRAM:  512 MiB
    7 _, A6 n. @( C3 ~4 w1 u; u/ d, G# d% u
  32. U-Boot DT blob at : 000000001f73a5204 f+ ]0 q% a' ?
  33. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB
    # L% N+ b$ i- z
  34. *** Warning - bad CRC, using default environment
    " @0 f' P. u+ {8 y+ X5 k7 C0 }
  35. ! |$ M6 M# M  o  R- V! J; }
  36. MMC:   for ssg ledsdhci@d8000: 08 F6 w1 F$ n. L; F# ~2 j
  37. 12931 bytes read in 16 ms (789.1 KiB/s)
    $ c8 g+ V: p" q9 D
  38. gpio: pin GPIO23 (gpio 39) value is 1
    % a$ S; L9 b0 h0 c) D- x
  39. gpio: pin GPIO23 (gpio 39) value is 1! A1 M6 W0 }( H& k) h% d2 Q
  40. gpio: pin GPIO23 (gpio 39) value is 1" L0 B5 V: t4 w0 n" ~! q
  41. Comphy-0: USB3_HOST0    5 Gbps   
    6 |+ D+ Z, J8 L# I$ Y
  42. Comphy-1: SGMII0        1.25 Gbps
    3 g1 S" L& a# J; ~( F
  43. Comphy-2: SATA0         6 Gbps   
    # l6 q4 B- g4 w' G; {( d
  44. gpio: pin GPIO23 (gpio 39) value is 1) w9 @5 {& o$ D7 s: B2 ~& k" v
  45. 12931 bytes read in 4 ms (3.1 MiB/s)4 B! z3 u1 _8 W6 k, G/ L
  46. Enter Normal mode
    0 H  H% z$ n1 [1 ^; @- L0 w
  47. SCSI:  Hit any key to stop autoboot:  0
复制代码

% S3 G' G" n7 L7 a补充下:这样修改后,只能一次有效请删除mmc 0:3 分区的rootfs.tar.bz2和upgrade_eli_38.img文件。
" O( `$ [2 i4 C: |& [+ \% m5 R5 ]或者直接在linux shell里面刷写新uboot
. U/ k8 x3 d* i; D6 s, n, ]* z0 M" h: w" u6 F$ v0 F
+ ?+ U7 d" S) ]' D. C0 D6 I
2 e$ ]: |0 ^5 g/ o; f. Z8 S

评分

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

查看全部评分

5

主题

57

回帖

491

积分

中级渣柚V1

积分
491
发表于 2019-10-9 15:50:15 | 显示全部楼层
本帖最后由 xingjiwoniu 于 2019-10-9 16:00 编辑 " j7 K6 n5 f' K( i1 }2 O
+ ~5 {* A3 b! V* W, O
感谢分享

4

主题

78

回帖

706

积分

中级渣柚V2

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

7

主题

450

回帖

706

积分

中级渣柚V2

积分
706

热心会员

发表于 2019-10-9 17:09:08 | 显示全部楼层
感谢分享
! i0 o9 {$ E7 `  V5 {+ _; P% K

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
$ N0 }4 J1 {) b: V3 F按照你这个执行不成功啊
/ s+ N* K. Z) k0 m1 Y' X
还是提示找不到?

0

主题

12

回帖

40

积分

初级渣柚V1

积分
40
发表于 2019-10-9 20:45:54 | 显示全部楼层
顶一下顶一下
9 F4 K4 Y/ g. y2 Q; ?

4

主题

114

回帖

323

积分

中级渣柚V1

积分
323
发表于 2019-10-9 20:48:03 | 显示全部楼层
tymfl 发表于 2019-10-9 20:36% T& L3 C# U& F6 L+ C8 G- m% m  P
还是提示找不到?
  g" Z' [: F# Z$ T* k0 r8 v. R
是还是原样子,启动还是end Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
1 W9 E; Q) {8 D完全按照您的步骤做的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-4 15:04 , Processed in 0.496780 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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