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

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

[复制链接]

5

主题

79

回帖

424

积分

中级渣柚V1

积分
424
发表于 2019-10-9 15:22:10 | 显示全部楼层 |阅读模式
本帖最后由 tymfl 于 2019-10-11 23:47 编辑
4 [' _/ w7 F2 ?4 _/ k$ r( i# K( S- P& y0 F+ a
入手一台伊拉克成色猫盘故障机,连好ttl上电以后
, Q! ?- P* a0 B5 v1 U* b
  1. TIM-1.0
    ; c% h4 s, Y0 H* a" `
  2. WTMI-armada-17.10.1-2 N7 B0 _. o0 R
  3. .........
    3 |0 {$ ^0 O3 h- P" Y
  4. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB' G5 a" N9 f$ |& N9 X2 \
  5. *** Warning - bad CRC, using default environment; g9 F7 q" X( Y7 @4 k

  6. $ P* `- y% t/ h- i& `" l
  7. MMC:   for ssg ledsdhci@d8000: 0
      o9 G' W9 ^# v8 ^) b* {( }
  8. ** File not found boot/armada-3720-customer0.dtb **
    ' b; l7 N% A5 I; M# q/ l
  9. ** File not found boot/armada-3720-customer0-minifs.dtb **
    ; p, X; x# C3 O
  10. test_mmc_ext4_exist ==1
    " S0 l8 Q% _" c) Z# l: R
  11. Comphy-0: UNCONNECTED  8 s! x, H- n) G7 r$ C
  12. Comphy-1: UNCONNECTED  
    % F# b3 |. M8 g
  13. Comphy-2: UNCONNECTED  3 a. M0 @2 I& L& d4 x* }/ X% \; O
  14. gpio: pin GPIO23 (gpio 39) value is 1
    ) g5 j7 q% z: l6 p. A
  15. ** File not found boot/armada-3720-customer0.dtb **' n$ ?# s$ h! U9 B" x" N7 c
  16. ** File not found boot/armada-3720-customer0-minifs.dtb **
      D4 Q7 H' s( ^0 F, s
  17. Enter Recovery mode
    & N3 b! T( B  m8 w$ S) a2 x
  18. SCSI:  Hit any key to stop autoboot:  0
复制代码
发现无法找到dtd文件,进入了恢复模式,直接启动或按住reset启动均启动失败,启动信息如下:
7 D# d) I  x7 I8 R; i1 L9 ^
  1. Marvell>> boot
    ! c, u( [) m  S* ?; ?
  2. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB
    1 q* [9 b5 H8 E6 N' E8 B; Q. g
  3. device 0 offset 0xcc000, size 0x434000
    8 z; }8 I2 M' J' n. N' a$ ]# n
  4. SF: 4407296 bytes @ 0xcc000 Read: OK
    2 ^: v! e) b/ r
  5. gpio: pin GPIO21 (gpio 37) value is 1' j7 F) Q/ a1 d2 P
  6. gpio: pin GPIO22 (gpio 38) value is 19 k: }' K0 ?' z5 T8 b! g" s3 I
  7. Uncompressed size: 8992256 = 0x893600
      W# l% v$ u7 i/ W1 Z+ R- Q
  8. device 0 offset 0xc8000, size 0x4000/ }+ n4 p( p" @! L
  9. SF: 16384 bytes @ 0xc8000 Read: OK
    2 _( N& f; s1 t& G. k
  10. ## Flattened Device Tree blob at 04f00000
    6 c- u" F4 c0 R
  11.    Booting using the fdt blob at 0x4f00000) H7 l/ ?/ O7 a+ z& w3 w1 \* h
  12.    Using Device Tree in place at 0000000004f00000, end 0000000004f05df8
    7 A/ ^7 F- z$ J

  13. ( H8 n% D! M! G- B! g+ ], A
  14. Starting kernel ...
    $ Z5 W2 d/ s0 W

  15. ; d, j3 b9 k9 C
  16. .........) f; }( q& L* s$ {4 W3 x- F9 @
  17. [    2.786623]  mmcblk0: p1 p2 p3! V/ a; N6 T" |0 ~8 n9 c
  18. [    2.801201] Starting init: /sbin/init exists but couldn't execute it (error -5)7 _" l% J: k, s- v& h, r
  19. [    2.813804] cramfs: bad compressed blocksize 4294298135- J; N7 J  w5 S( I* W
  20. [    2.819206] Starting init: /bin/sh exists but couldn't execute it (error -5). F; K) B, N9 o8 I& f* [
  21. [    2.826452] Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.2 S* ?$ H5 u& ]: K$ w" q6 }
  22. [    2.840101] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #21. R0 i; D+ i+ H) W& s
  23. [    2.847399] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT)
    % Y1 [+ m# r6 c1 b6 w, ]9 w: H
  24. [    2.854957] Call trace:
    " y3 v6 [/ U2 \2 W: d
  25. [    2.857401] [<ffffffc000089b10>] dump_backtrace+0x0/0x108
    / e4 q8 W# g4 q" h
  26. [    2.863150] [<ffffffc000089c2c>] show_stack+0x14/0x20  x# d3 A8 B9 f9 W% S
  27. [    2.868371] [<ffffffc00029f280>] dump_stack+0x98/0xb86 N& Y: p# r2 [& Z4 M! S% H  E
  28. [    2.873592] [<ffffffc00012b32c>] panic+0xd4/0x218' \, D5 W! u# I! K- e6 d$ ]
  29. [    2.878454] [<ffffffc000621d0c>] kernel_init+0xdc/0xe0
    " N6 t. A$ t* ]1 u+ m2 b& ^
  30. [    2.883761] [<ffffffc000085dd0>] ret_from_fork+0x10/0x40: b3 C# E( ~+ R; [  z. A
  31. [    2.888890] CPU0: stopping
    ; J$ r: o& v$ y+ j  g% D( _
  32. [    2.891949] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #21. X+ y. a" N6 `; A) u
  33. [    2.899505] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT)2 e" D5 y3 W% U2 G
  34. [    2.907154] Call trace:5 V& o/ N4 H4 J
  35. [    2.909861] [<ffffffc000089b10>] dump_backtrace+0x0/0x108
    : T* \! X4 p4 m" @
  36. [    2.915269] [<ffffffc000089c2c>] show_stack+0x14/0x20
    9 q; n' P  `# z
  37. [    2.920580] [<ffffffc00029f280>] dump_stack+0x98/0xb8
      w# T: U* v* ?6 ^/ P( F+ q3 M
  38. [    2.925892] [<ffffffc00008efc0>] handle_IPI+0x190/0x1a0
    0 ^( J+ A; P9 B# E
  39. [    2.931030] [<ffffffc000082598>] gic_handle_irq+0x78/0x168
    2 o7 \& s$ }& T. K
  40. [    2.936969] Exception stack(0xffffffc0008abda0 to 0xffffffc0008abed0)) ~' O' o8 |) v& O4 R; B3 x# r2 w4 B
  41. [    2.943547] bda0: ffffffc0008ae000 0000008000000000 ffffffc0008abf00 ffffffc000086840
    8 V, b' c/ n! B6 a' N; m
  42. [    2.951467] bdc0: 0000000000000145 ffffffc000890000 0000000000000000 0000000000000000( K6 U. \* X1 Y( v* b9 n
  43. [    2.959567] bde0: 0000000000000001 0000000000000000 00000000000001c0 01000000000000001 ~  o5 \2 g% c; e" p
  44. [    2.967757] be00: 0000000000000001 ffffffc01bfcddc0 00000000fffeddda ffffffc0008abe80
    9 j: w6 ]0 J6 T7 \( G. W5 i
  45. [    2.975676] be20: 00000000000006d0 0000000000000000 0000000000000000 00000000058e8eff; `/ C6 Z" H' M: [& B4 B
  46. [    2.983954] be40: ffffffc00426c260 00000000000075af 00000000000ba7a2 0000000000000000, M7 H# q) f( h8 |9 I: l
  47. [    2.991876] be60: ffffff8000058548 ffffffc0008ae000 ffffffc0008ae8d8 ffffffc00088cad8# q: C- u! k5 ]4 {# n
  48. [    2.999886] be80: ffffffc0008abf20 ffffffc000631000 ffffffc000890000 ffffffc0008ae000
    , a# \5 W  j! F% m3 O
  49. [    3.007986] bea0: ffffffc0008a8000 0000000000000000 0000000000000000 ffffffc0008abf00! i+ p! y/ t' Q4 c2 Y
  50. [    3.016353] bec0: ffffffc00008683c ffffffc0008abf00; N" f% T/ }% Z# d) d( y
  51. [    3.021215] [<ffffffc000085700>] el1_irq+0x80/0xf8, f( r5 T! K0 [
  52. [    3.026168] [<ffffffc0000d8164>] default_idle_call+0x1c/0x38. Y! c! _4 e# _4 n, l
  53. [    3.032373] [<ffffffc0000d8398>] cpu_startup_entry+0x1c8/0x2182 j3 F3 }- `# i  S0 A) M
  54. [    3.038411] [<ffffffc000621c20>] rest_init+0x88/0x98! h4 `" _2 L* ^1 c
  55. [    3.043192] [<ffffffc00084d950>] start_kernel+0x384/0x398! w3 q! q, K: m5 I% Y* S' ^
  56. [    3.048948] [<0000000000627000>] 0x627000! X8 L8 u% P5 f6 J8 Y: J
  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 下获取的一些信息( y5 v( V! k- n  B3 B4 K' B
  1. # 查看文件夹 发现boot为空
    % T0 D/ p6 Z4 P, d' ^+ d3 p7 V# B
  2. Marvell>> ext4ls mmc 0:1 /boot% k: |2 e- T, H; J% Q7 ?
  3. <DIR>       4096 .: y; j' {- O2 `: Y# v% \
  4. <DIR>       4096 ..
    1 q0 f* _& y2 d  K. Z+ F& [$ E: _

  5. % Y9 w( l" t8 f5 ^. C
  6. # 无法启动usb: z5 I( K/ g- y" ], o
  7. Marvell>> usb start: x. Y5 r2 u# m7 H
  8. starting USB...1 |0 W  e" B1 ]" l0 ~, d* O/ D
  9. No controllers found
复制代码
猜测可能是误删了/boot下的文件导致的,无法通过U盘启动. }* s0 s. i1 O3 O

; G- v( G* V* u7 y! I/ z  W                               
登录/注册后可看大图
4 j" t/ u, @4 [3 l
启动进入uboot输入如下命令' P: j  p8 O7 I, M% e  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;"
    $ @; A' N& ~' ~) n& s; t
  2. setenv bootargs "console=ttyMV0,115200 root=/dev/mmcblk0p1 rootwait rw init=/bin/sh"" O! N( R, K" p) O+ v! N) B4 v1 L
  3. boot
    1 f" [7 v; g. H9 M5 e* A
  4. booti 0x5000000 - 0x4f00000
复制代码
即可进入linux shell- y; A1 N( N" h( N7 R' @) S
  1. # 查看存储设备
    ) d4 Y( G% p/ u! O& {7 B
  2. ls -l /dev/sd# f$ P2 T: I5 B7 E
  3. $ F$ i+ i% ]" {+ `) `
  4. # 挂载
    2 H6 A  m  F% N( {3 N5 d) U6 ?
  5. mount -t proc /proc% b5 l4 v. i6 r! M& r* \
  6. mount /dev/sda4 /mnt
    ( q* i9 E  ]6 j

  7. 9 n% e" u* ]/ w' Z1 E
  8. # 拷贝文件
    2 Q  n9 _; _, Q6 x7 m% {# P
  9. cd /mnt- L6 F, g# N1 p* W6 V
  10. cp armada-3720-customer0.dtb /boot/9 y- c+ E% R& }
  11. cp Image /boot/
    1 S) o) L% s) ?; E+ F  [3 B
  12. ! F; N, p5 x% r
  13. # 退出
    0 Q- [' X" j% i9 A0 C4 S5 W) {
  14. exit
复制代码
重新插拔电源后恢复正常,uboot信息如下:
2 M' b2 I5 M' p# K7 `( P! f
  1. TIM-1.0/ w% f7 x% C1 t- t' {
  2. WTMI-armada-17.10.1-6 b7 [9 n# e0 k' c! P9 W5 k& U
  3. ENTER init_ddrgen/ _  V/ q3 T7 Z: \
  4. DDR_TOPOLOGY is 0 :        DDR3, 1CS 512M
    , S. N4 }$ F- h( e6 ?
  5. WTMI_CLOCK=2
    1 `& ^! J/ ?6 Q3 b6 N; u- O
  6. , u* X  m# ?( X- t
  7. Fill memory before self refresh...done
    8 _$ d9 \( p- A! C# J

  8. ) `5 s1 B, f$ i& u5 n* f
  9. Now in Self-refresh Mode( {0 \6 p+ f& H
  10. Restore CAS Read and Write Latency
    ; @8 f% A7 B2 X/ m7 N
  11. Restore termination values to original values" S- d& Z! Q4 Z. W0 f
  12. Exited self-refresh ..." j) |) m# D' ~
  13. 0 a/ n& V$ P! P5 Q, e3 T
  14. DLL TUNING
    7 w1 ], Z7 @2 \  i3 L
  15. ==============; a( V3 \. z% |2 o% a% W
  16.    DLL 0xc0001050[21:16]: [0,31,18]
    ) E  x1 F( b( x5 Z5 r  S
  17.    DLL 0xc0001050[29:24]: [0,2b,15]
    6 X, G, @0 F/ \- f" ]
  18.    DLL 0xc0001054[21:16]: [0,32,19]
    $ c) z! U* t0 i4 B2 [
  19.    DLL 0xc0001054[29:24]: [0,2d,16]
    . O: s- y3 H' W; B" }
  20.    DLL 0xc0001074[21:16]: [0,3f,1f]
    & t2 r3 S3 g( r- k8 _
  21.    DLL 0xc0001074  L4 E9 v- m' U& i# Q

  22. " c4 N$ o( f" N( J; k
  23. U-Boot 2017.03-armada-17.10.1 (Mar 07 2018 - 17:11:33 +0800)$ S" m$ \1 ~, K( |5 ^4 G  M

  24. ! R; W2 J" C7 T5 x2 A
  25. Model: Marvell Armada 3720 for Eli Cat9 P" d0 O8 C( S+ t# e
  26.        CPU    @ 1000 [MHz]
    " c! M7 P& r6 C4 D: m
  27.        L2     @ 800 [MHz]8 w* h# i  L6 j- {/ F
  28.        TClock @ 200 [MHz]5 v+ J1 M; Y+ Q' Y. z
  29.        DDR    @ 800 [MHz]8 v4 [7 S; ~& b
  30. I2C:   ready
    ) j( f( U, E6 w5 I0 E  a
  31. DRAM:  512 MiB) W! n' p9 q! s) [. i
  32. U-Boot DT blob at : 000000001f73a5206 m- A$ \- ?, X- c9 C
  33. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB
    ; @( ?, O5 c& O
  34. *** Warning - bad CRC, using default environment9 @( Z7 U; G! k2 O

  35. # O& i- l# f" C* t8 ]
  36. MMC:   for ssg ledsdhci@d8000: 0  N7 r0 f8 i: p9 t
  37. 12931 bytes read in 16 ms (789.1 KiB/s)- R0 F  j$ G9 p! [
  38. gpio: pin GPIO23 (gpio 39) value is 1: w' w- K0 n) Q7 m
  39. gpio: pin GPIO23 (gpio 39) value is 17 u7 w/ ]! A/ q8 v$ V% r+ f( J
  40. gpio: pin GPIO23 (gpio 39) value is 1
    3 q  @. S. B4 ?" H2 K9 d
  41. Comphy-0: USB3_HOST0    5 Gbps   
    * f& T' Q- o8 h& d' ]/ S5 B
  42. Comphy-1: SGMII0        1.25 Gbps
    . O! O/ D1 v& v
  43. Comphy-2: SATA0         6 Gbps   
    . `- F2 M8 r! L
  44. gpio: pin GPIO23 (gpio 39) value is 17 K: H/ R) p+ _
  45. 12931 bytes read in 4 ms (3.1 MiB/s)
    % J1 ^+ `( u3 M- Q% z0 [
  46. Enter Normal mode4 }; j: }) o! I1 {- L! F; ]; l% T
  47. SCSI:  Hit any key to stop autoboot:  0
复制代码
7 H$ g- Y5 D& ^* `
补充下:这样修改后,只能一次有效请删除mmc 0:3 分区的rootfs.tar.bz2和upgrade_eli_38.img文件。
* E, }9 Y# n$ t/ i) g& P或者直接在linux shell里面刷写新uboot/ e( c6 o# F+ V4 Q6 g; n

# m  p% c, F, S! Y% ]# h3 r- v# m' S: z, @

6 b2 f& i- Q" V5 f

评分

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

查看全部评分

5

主题

57

回帖

491

积分

中级渣柚V1

积分
491
发表于 2019-10-9 15:50:15 | 显示全部楼层
本帖最后由 xingjiwoniu 于 2019-10-9 16:00 编辑
3 G3 B7 ?! L, n
% ^4 \5 f2 t: L4 ~感谢分享

4

主题

78

回帖

706

积分

中级渣柚V2

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

7

主题

450

回帖

706

积分

中级渣柚V2

积分
706

热心会员

发表于 2019-10-9 17:09:08 | 显示全部楼层
感谢分享& \: _& _& n1 M/ N4 }

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
1 Y' e- E$ S$ X1 @6 a: Y按照你这个执行不成功啊
9 q5 g( y- q5 o) U' S8 V+ ^2 `
还是提示找不到?

0

主题

12

回帖

40

积分

初级渣柚V1

积分
40
发表于 2019-10-9 20:45:54 | 显示全部楼层
顶一下顶一下/ I& ?) `# ~9 `# a

4

主题

114

回帖

323

积分

中级渣柚V1

积分
323
发表于 2019-10-9 20:48:03 | 显示全部楼层
tymfl 发表于 2019-10-9 20:361 ?( A+ w" E# m) C" _5 U* u
还是提示找不到?

% y3 m4 n) a' S" _( j* s  u是还是原样子,启动还是end Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.# P  I) G" V$ e( E4 a
完全按照您的步骤做的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-21 04:44 , Processed in 0.167171 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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