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

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

[复制链接]

5

主题

79

回帖

424

积分

中级渣柚V1

积分
424
发表于 2019-10-9 15:22:10 | 显示全部楼层 |阅读模式
本帖最后由 tymfl 于 2019-10-11 23:47 编辑
* |/ o+ W  N2 Y+ a) }. n# e
( I" f# \& n  ?" i! u入手一台伊拉克成色猫盘故障机,连好ttl上电以后3 j' @5 o4 n& @; H" w
  1. TIM-1.0  e! d7 H0 S, j
  2. WTMI-armada-17.10.1-+ g" s" O0 y/ U* _0 \
  3. .........9 ]  Z9 A% t8 a6 k
  4. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB
    : N- y' i' I2 u4 a
  5. *** Warning - bad CRC, using default environment% p* e  Q0 [/ a& b. {
  6. & ]0 K4 e) \4 z/ E
  7. MMC:   for ssg ledsdhci@d8000: 0
    6 v8 _' v3 g( t8 O- E* G( a$ I
  8. ** File not found boot/armada-3720-customer0.dtb **
    % l6 L% k8 U! |3 c/ K) L/ L
  9. ** File not found boot/armada-3720-customer0-minifs.dtb **7 E# @& }! x+ n) v! `2 n
  10. test_mmc_ext4_exist ==1
    8 u, k) M, ~' H) O
  11. Comphy-0: UNCONNECTED  
    : n+ _1 _; o. [; P8 t$ |- b
  12. Comphy-1: UNCONNECTED  & l! m( g: a- o+ t5 E
  13. Comphy-2: UNCONNECTED  0 E, N" b1 C# {/ t
  14. gpio: pin GPIO23 (gpio 39) value is 1
    # o6 c1 N3 E6 X1 k6 B8 r+ N
  15. ** File not found boot/armada-3720-customer0.dtb **0 B* F1 m! X1 o
  16. ** File not found boot/armada-3720-customer0-minifs.dtb **3 b: Y0 ^0 N) M
  17. Enter Recovery mode
    : \" Z2 p' g1 b$ \: p4 q
  18. SCSI:  Hit any key to stop autoboot:  0
复制代码
发现无法找到dtd文件,进入了恢复模式,直接启动或按住reset启动均启动失败,启动信息如下:0 R! [# i4 Y3 S" Y2 n: |5 ~8 R) G
  1. Marvell>> boot
    + r/ ^) H/ m( Z& c9 M
  2. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB
    + z. j. {* f# t4 q7 B( O
  3. device 0 offset 0xcc000, size 0x434000
    " Q7 n8 \2 z3 ]3 Y* p, F, D$ J
  4. SF: 4407296 bytes @ 0xcc000 Read: OK( K; S; x, e' H1 z" d/ q
  5. gpio: pin GPIO21 (gpio 37) value is 1) m9 F/ h9 ^9 W3 o
  6. gpio: pin GPIO22 (gpio 38) value is 1
    , A# {$ `8 y. _! x% `; i
  7. Uncompressed size: 8992256 = 0x893600
    . d' U) }, j) u0 ?$ C6 e/ O0 W
  8. device 0 offset 0xc8000, size 0x4000* m: _! i" @, R' H4 @- P" s
  9. SF: 16384 bytes @ 0xc8000 Read: OK
    + u; K0 Z& D+ q- B2 E% b
  10. ## Flattened Device Tree blob at 04f000000 d$ l; C" R' w
  11.    Booting using the fdt blob at 0x4f000005 s# S, O* X) O- V3 u( W
  12.    Using Device Tree in place at 0000000004f00000, end 0000000004f05df8
      A" B3 Y. v- A$ W, x& F3 v8 P5 }

  13. # P& l2 \" \' \1 G/ J
  14. Starting kernel ...; w, k' D' V3 d. X; V' X

  15. 9 e# Y9 ]2 d2 X! t! @1 m
  16. .........  j+ u+ r8 j& ~* Z
  17. [    2.786623]  mmcblk0: p1 p2 p3- w' T/ F0 h9 ~1 _) v8 a% S, X5 _
  18. [    2.801201] Starting init: /sbin/init exists but couldn't execute it (error -5)- b/ M; |1 k! b7 `0 M
  19. [    2.813804] cramfs: bad compressed blocksize 4294298135% b/ `9 r' }' G$ H
  20. [    2.819206] Starting init: /bin/sh exists but couldn't execute it (error -5)
    " q% r+ ^" Q# T, @3 s7 }
  21. [    2.826452] Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.9 G( u1 v3 ]/ K4 J6 K2 n& r
  22. [    2.840101] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #21
    ; Y& F; w' m$ L# k% D5 W! Y
  23. [    2.847399] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT)$ a/ ]* i3 n' m& {+ M3 `" d
  24. [    2.854957] Call trace:
    1 B9 ^4 I: _5 [/ a
  25. [    2.857401] [<ffffffc000089b10>] dump_backtrace+0x0/0x108
      \- e' ^0 e5 `# I$ g8 g$ _0 q
  26. [    2.863150] [<ffffffc000089c2c>] show_stack+0x14/0x20
    7 D: Z* T) \3 A5 n3 M  j; s
  27. [    2.868371] [<ffffffc00029f280>] dump_stack+0x98/0xb8/ \- Q/ G; D! a
  28. [    2.873592] [<ffffffc00012b32c>] panic+0xd4/0x218
    4 H3 |3 M" G) w8 ]+ V
  29. [    2.878454] [<ffffffc000621d0c>] kernel_init+0xdc/0xe0) [8 c: @9 J) m. y6 l: q
  30. [    2.883761] [<ffffffc000085dd0>] ret_from_fork+0x10/0x401 @6 H' Y% ?% y$ G3 y1 r: G' |
  31. [    2.888890] CPU0: stopping
    ' Z1 T$ r, C& M' A
  32. [    2.891949] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #218 @. K. f! G7 d6 ?( j& ^
  33. [    2.899505] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT)0 I& O% i2 {" D& J( e
  34. [    2.907154] Call trace:) K) l; o; D2 N( X+ u( ~1 Z
  35. [    2.909861] [<ffffffc000089b10>] dump_backtrace+0x0/0x108! ^2 p6 _; I. y3 n
  36. [    2.915269] [<ffffffc000089c2c>] show_stack+0x14/0x20' I0 g6 `7 V# `6 x4 R* n, V
  37. [    2.920580] [<ffffffc00029f280>] dump_stack+0x98/0xb8- S* c# m' r4 O
  38. [    2.925892] [<ffffffc00008efc0>] handle_IPI+0x190/0x1a0
    : {! u2 N7 O9 X' y
  39. [    2.931030] [<ffffffc000082598>] gic_handle_irq+0x78/0x168
    # w! P2 Z7 j" {, b7 @
  40. [    2.936969] Exception stack(0xffffffc0008abda0 to 0xffffffc0008abed0)
    0 @1 b3 L7 |" s% Z# {3 n+ E# j5 a8 E
  41. [    2.943547] bda0: ffffffc0008ae000 0000008000000000 ffffffc0008abf00 ffffffc000086840% v3 n4 o! C! b5 H" K0 k& J  E: T
  42. [    2.951467] bdc0: 0000000000000145 ffffffc000890000 0000000000000000 00000000000000004 Y* c6 d/ X: N" ]
  43. [    2.959567] bde0: 0000000000000001 0000000000000000 00000000000001c0 0100000000000000. a; t1 Z: r! u- r8 Z2 G, W
  44. [    2.967757] be00: 0000000000000001 ffffffc01bfcddc0 00000000fffeddda ffffffc0008abe80" i4 C9 H+ O0 f; w* {0 m
  45. [    2.975676] be20: 00000000000006d0 0000000000000000 0000000000000000 00000000058e8eff
    7 {5 ^* r. @# @' G$ ~/ f
  46. [    2.983954] be40: ffffffc00426c260 00000000000075af 00000000000ba7a2 0000000000000000/ L# |- ^8 t5 v" D& k0 @  E7 T
  47. [    2.991876] be60: ffffff8000058548 ffffffc0008ae000 ffffffc0008ae8d8 ffffffc00088cad8
    ) E# J$ R1 K0 t5 i1 j
  48. [    2.999886] be80: ffffffc0008abf20 ffffffc000631000 ffffffc000890000 ffffffc0008ae000
    9 _: L( [& X$ K  t: e
  49. [    3.007986] bea0: ffffffc0008a8000 0000000000000000 0000000000000000 ffffffc0008abf00
    + ]' N; i& G/ r5 U0 a7 C6 B6 d
  50. [    3.016353] bec0: ffffffc00008683c ffffffc0008abf006 v1 ?9 e4 w5 T
  51. [    3.021215] [<ffffffc000085700>] el1_irq+0x80/0xf8) ]! d+ W. V/ E$ q1 _: C
  52. [    3.026168] [<ffffffc0000d8164>] default_idle_call+0x1c/0x38) C" \7 _+ j9 q, }7 E" Q3 F( E
  53. [    3.032373] [<ffffffc0000d8398>] cpu_startup_entry+0x1c8/0x2187 q, X) f0 L  _9 O2 l7 b: k% d
  54. [    3.038411] [<ffffffc000621c20>] rest_init+0x88/0x98, Z) V+ b* C3 |6 t8 O" ]
  55. [    3.043192] [<ffffffc00084d950>] start_kernel+0x384/0x398
    1 s8 a2 L2 Z, }+ G9 w. ?6 e
  56. [    3.048948] [<0000000000627000>] 0x627000
    4 w) n# @0 X# K
  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" I9 \& ^4 v( [( y" c
  1. # 查看文件夹 发现boot为空, F, W6 k' k/ U- i: p
  2. Marvell>> ext4ls mmc 0:1 /boot
    . I9 y+ M) ~$ a
  3. <DIR>       4096 .8 Y& A* M6 b2 v9 i( w' j3 \, b6 G: o
  4. <DIR>       4096 ..0 F# @. O6 g; Y  ?. O" U

  5. / ^3 k8 G3 ^1 z
  6. # 无法启动usb4 U0 T. ]+ \8 y/ x7 y+ F. v" N: l
  7. Marvell>> usb start$ b0 d- |# x1 `( Z* b
  8. starting USB...
    7 n1 n! D$ t( U, d% n
  9. No controllers found
复制代码
猜测可能是误删了/boot下的文件导致的,无法通过U盘启动
' {1 D  E# z3 v5 @% v

9 ?/ h. F5 W3 N5 n' I2 l# C                               
登录/注册后可看大图
6 s; M& B; [8 g4 z3 G
启动进入uboot输入如下命令
* i* t$ n) k, I9 Y
  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;"
    * e% o. h! g( l3 w: Z2 C3 B
  2. setenv bootargs "console=ttyMV0,115200 root=/dev/mmcblk0p1 rootwait rw init=/bin/sh"
    9 R) w; J5 h; \$ p9 Y: [$ [6 y
  3. boot& [* c* B8 S& o9 Y9 d
  4. booti 0x5000000 - 0x4f00000
复制代码
即可进入linux shell
6 O0 u/ m  J" c8 w, y* l1 E
  1. # 查看存储设备
    . a/ A" h3 ?. G8 n- @
  2. ls -l /dev/sd. L9 f7 C8 r8 _+ Y2 U! y) ~7 K  M
  3. 5 [6 h' F2 q8 _
  4. # 挂载9 T+ \2 ~" W- r& f7 x
  5. mount -t proc /proc2 [! o( W' o8 T. e
  6. mount /dev/sda4 /mnt: d9 r5 H! X/ f1 v+ d
  7. ( b. a" F2 r) G3 I3 I
  8. # 拷贝文件
    4 U+ |7 B0 b8 {/ u, H6 S
  9. cd /mnt6 b" ]$ G3 g7 K! y* i6 f+ B) w
  10. cp armada-3720-customer0.dtb /boot/
    / X$ r% w3 p7 P3 W  B
  11. cp Image /boot/( c4 N7 v1 i8 i2 {* \+ K5 ~6 Y

  12. ) B% S% \+ d! r  {
  13. # 退出4 U# X+ D- W& @- N' c
  14. exit
复制代码
重新插拔电源后恢复正常,uboot信息如下:
# p$ o  k. w! V# |7 b# w4 N
  1. TIM-1.0
    9 G5 L0 q% v! _6 b
  2. WTMI-armada-17.10.1-" |0 Z- M! n% F  Z
  3. ENTER init_ddrgen% ~! l( h$ ^4 f: B) N
  4. DDR_TOPOLOGY is 0 :        DDR3, 1CS 512M
    + i1 H& `" b) T1 p. e+ S
  5. WTMI_CLOCK=2
    - k7 z6 x2 o8 n& X, H/ b4 f
  6. 8 g! O5 Z4 I+ i% r+ [6 S& z
  7. Fill memory before self refresh...done
    % Q. G% M# i4 L/ o" F% L1 f; y

  8. ; l/ V. `, O4 Z, ?7 |) ~
  9. Now in Self-refresh Mode
    $ u5 ]- V# D8 G& A
  10. Restore CAS Read and Write Latency
    1 I+ e6 E7 f; Q9 r+ l( u. X
  11. Restore termination values to original values) l3 Y, o; A6 b
  12. Exited self-refresh ...
    & c$ U& i% l5 q. b

  13. * s9 l4 |1 p6 Z8 c/ M; ~2 P
  14. DLL TUNING7 {: n  L, _" c" N' W9 m
  15. ==============
    . T) u; l# M2 Q/ m" g
  16.    DLL 0xc0001050[21:16]: [0,31,18]6 x. V$ R! I! v1 q0 p/ }
  17.    DLL 0xc0001050[29:24]: [0,2b,15]( W; z1 Q( _* V
  18.    DLL 0xc0001054[21:16]: [0,32,19]( \8 C( k1 C% Z  a% ~1 ?4 ^; m/ H
  19.    DLL 0xc0001054[29:24]: [0,2d,16]- b( \$ \# v* b# ?  n
  20.    DLL 0xc0001074[21:16]: [0,3f,1f]( Z7 s3 p5 M# }/ h6 T2 C/ V+ A) }
  21.    DLL 0xc0001074
    9 d& m( |: ?- |
  22. / d. F( L4 ~# h# Q& A) e9 Q5 G
  23. U-Boot 2017.03-armada-17.10.1 (Mar 07 2018 - 17:11:33 +0800)
    ! O; b" T& w7 z

  24. 5 Q8 G6 c0 j# [" Y8 C/ i2 {
  25. Model: Marvell Armada 3720 for Eli Cat) x9 U7 k& M7 A1 I( v
  26.        CPU    @ 1000 [MHz]
    $ ]9 O7 d8 W& H0 A' C
  27.        L2     @ 800 [MHz]
      D7 r! ~0 t" n* O
  28.        TClock @ 200 [MHz]
    1 V' }# p1 J# q
  29.        DDR    @ 800 [MHz]
    . Q' P/ B* J6 c% a" M
  30. I2C:   ready + P" N/ G! v4 y9 o7 K2 g, F: n
  31. DRAM:  512 MiB
    % t, k' G& \& `
  32. U-Boot DT blob at : 000000001f73a5206 l: ]$ Y+ J& c3 q# ^$ `
  33. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB' B1 @8 H$ b( H, E/ p1 J3 H
  34. *** Warning - bad CRC, using default environment
    # V& B( y  W  {1 M( L5 {' G/ n
  35. ; y) A5 q" m; Y7 l# A4 w
  36. MMC:   for ssg ledsdhci@d8000: 0
    5 P! I; Q& C: c" T. ]* w- J8 u
  37. 12931 bytes read in 16 ms (789.1 KiB/s)5 x' U1 j* ^" c
  38. gpio: pin GPIO23 (gpio 39) value is 1' T. L, d! X( V, Z  k1 X
  39. gpio: pin GPIO23 (gpio 39) value is 1
    4 i% w& J3 F# q. \( s3 D# |3 o! ^$ o
  40. gpio: pin GPIO23 (gpio 39) value is 14 N9 o7 `2 }1 i" N$ K% F0 h2 \
  41. Comphy-0: USB3_HOST0    5 Gbps   
    8 w) s( T! ]9 d0 S; D' j  P
  42. Comphy-1: SGMII0        1.25 Gbps 3 D/ Z3 D) N, u! B
  43. Comphy-2: SATA0         6 Gbps    % W. Q, J/ @% T7 B3 D# c7 a$ J! `
  44. gpio: pin GPIO23 (gpio 39) value is 1+ \' h' i! _9 [# }. r
  45. 12931 bytes read in 4 ms (3.1 MiB/s)
    & M6 ~3 I2 {6 h) f6 s. K% p
  46. Enter Normal mode2 ?8 F4 W, z# b  H" p
  47. SCSI:  Hit any key to stop autoboot:  0
复制代码
' t* i% [% _6 d. g9 ?( @, h
补充下:这样修改后,只能一次有效请删除mmc 0:3 分区的rootfs.tar.bz2和upgrade_eli_38.img文件。- o6 }4 y/ H6 A; U# h  k& K
或者直接在linux shell里面刷写新uboot
3 I' P# `0 M6 L* i
/ H- X% l+ P+ e2 O6 V9 X  {  s
# d0 _# J1 B% j5 ^# R6 ?- t* f# q7 M. v

评分

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

查看全部评分

5

主题

57

回帖

491

积分

中级渣柚V1

积分
491
发表于 2019-10-9 15:50:15 | 显示全部楼层
本帖最后由 xingjiwoniu 于 2019-10-9 16:00 编辑 : h  ^; M& ~/ S+ ^8 L

# {, E; m8 E7 Q9 j( ]感谢分享

4

主题

78

回帖

706

积分

中级渣柚V2

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

7

主题

450

回帖

706

积分

中级渣柚V2

积分
706

热心会员

发表于 2019-10-9 17:09:08 | 显示全部楼层
感谢分享! d1 v' Y: |  M* }( p+ Y: ^  i

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
& h! M7 k. {* B5 u3 `按照你这个执行不成功啊

7 p. Z) ^- _% z. A; _/ E2 D还是提示找不到?

0

主题

12

回帖

40

积分

初级渣柚V1

积分
40
发表于 2019-10-9 20:45:54 | 显示全部楼层
顶一下顶一下$ X4 Q; S5 l6 f. f! G

4

主题

114

回帖

323

积分

中级渣柚V1

积分
323
发表于 2019-10-9 20:48:03 | 显示全部楼层
tymfl 发表于 2019-10-9 20:36
1 H6 Q7 {( J8 T1 c% A还是提示找不到?
& d1 \8 o( \1 c/ T3 \+ [4 }
是还是原样子,启动还是end Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
: N" l# q* X' G2 g完全按照您的步骤做的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-3-13 16:13 , Processed in 0.395583 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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