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

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

[复制链接]

5

主题

79

回帖

424

积分

中级渣柚V1

积分
424
tymfl 发表于 2019-10-9 15:22:10 | 显示全部楼层 |阅读模式 IP:–重庆–重庆 长城宽带
本帖最后由 tymfl 于 2019-10-11 23:47 编辑
6 O# M5 f3 x2 K8 @0 i( j9 r, S  `1 ?6 i' ?
入手一台伊拉克成色猫盘故障机,连好ttl上电以后1 W3 v$ t, a8 X5 a8 c$ `+ x, k
  1. TIM-1.0
    + X; Z5 U  }% z$ C/ [
  2. WTMI-armada-17.10.1-+ G- D/ W; _  s, Z$ G
  3. .........# i" [7 w7 C4 t$ d+ M4 D
  4. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB
    . j0 `, y/ E1 Q& Y7 E4 d* V& `
  5. *** Warning - bad CRC, using default environment
    # I- v7 s, X, u! M1 t
  6. 4 x$ A2 Y) c/ ~( [% @! l' F0 L
  7. MMC:   for ssg ledsdhci@d8000: 0
    ' h! h+ P7 ?! X8 J% `; n
  8. ** File not found boot/armada-3720-customer0.dtb **7 C  N) K2 c2 F) t& Z! C# U8 h
  9. ** File not found boot/armada-3720-customer0-minifs.dtb **- X- v) [5 ~$ l( m$ |
  10. test_mmc_ext4_exist ==1
    6 o+ z! c7 ]2 R2 K: u
  11. Comphy-0: UNCONNECTED  ) S; m+ l2 j; J# ?* y5 d+ H
  12. Comphy-1: UNCONNECTED  
    2 H0 h$ x" S- T5 O% u( v8 z
  13. Comphy-2: UNCONNECTED  
    , r: Z+ v0 ~' F& ^; T' N3 m
  14. gpio: pin GPIO23 (gpio 39) value is 1
    , m' e5 Y( b- V- j
  15. ** File not found boot/armada-3720-customer0.dtb **
    , z4 n5 _/ J- W; D: q! j
  16. ** File not found boot/armada-3720-customer0-minifs.dtb **' Y6 C+ {$ F5 f$ d. O: x
  17. Enter Recovery mode
    # |1 e' I/ T+ u
  18. SCSI:  Hit any key to stop autoboot:  0
复制代码
发现无法找到dtd文件,进入了恢复模式,直接启动或按住reset启动均启动失败,启动信息如下:1 X, H0 i) S- ~
  1. Marvell>> boot) S% y/ n* A5 H1 V! x( ^8 \0 E9 b9 u9 R
  2. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB
    4 q) n  f$ c; X( Y; C1 e! F9 D1 g. H
  3. device 0 offset 0xcc000, size 0x434000
    . W/ V) T$ G# ^7 T
  4. SF: 4407296 bytes @ 0xcc000 Read: OK
    ) M6 B, ^  e0 v) o- e. i
  5. gpio: pin GPIO21 (gpio 37) value is 19 u& N8 j* F, A+ o
  6. gpio: pin GPIO22 (gpio 38) value is 13 _2 l# E" S: A# Q& M
  7. Uncompressed size: 8992256 = 0x8936002 Z2 T$ j1 V- k6 ?
  8. device 0 offset 0xc8000, size 0x4000
    " W3 z7 k) t, \" S
  9. SF: 16384 bytes @ 0xc8000 Read: OK' J. R( U' j" Z" ^1 n2 E  }
  10. ## Flattened Device Tree blob at 04f00000
    8 x8 P* R9 R+ I8 N6 K" a  Y" n
  11.    Booting using the fdt blob at 0x4f00000
    + K" G4 w% `3 |( @9 b2 n9 R( L1 j
  12.    Using Device Tree in place at 0000000004f00000, end 0000000004f05df8
    , J- L0 `) Y; [$ M
  13. 8 ?- H  y9 R; K+ c5 r; ?
  14. Starting kernel ...3 p7 e4 u& y3 }# Y. W# L) Y

  15. 2 w0 j. u& D$ |7 \6 E$ O3 R
  16. .........
      g: s& a- |9 }+ r
  17. [    2.786623]  mmcblk0: p1 p2 p3
    ) D/ u5 l) {. w; U# q
  18. [    2.801201] Starting init: /sbin/init exists but couldn't execute it (error -5)
    , Z: Z, Z5 a1 |4 B6 g7 ]# ~: X
  19. [    2.813804] cramfs: bad compressed blocksize 4294298135* ^) [6 e; L" N+ B' J* b
  20. [    2.819206] Starting init: /bin/sh exists but couldn't execute it (error -5)8 E0 f# u8 h1 Z/ m3 X# k
  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 k' S2 `6 V# _0 N" g. M& Q& a
  22. [    2.840101] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #21
    ; w0 ~, s3 ^( s" z) y
  23. [    2.847399] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT)
    9 E7 K8 c* h' K8 @0 t
  24. [    2.854957] Call trace:$ L5 {5 U! Q9 g" ?$ A' ~4 o; Q
  25. [    2.857401] [<ffffffc000089b10>] dump_backtrace+0x0/0x108
    - H5 t# U& R( L+ K" [
  26. [    2.863150] [<ffffffc000089c2c>] show_stack+0x14/0x20, \" Q: X% E( U% X0 W1 }
  27. [    2.868371] [<ffffffc00029f280>] dump_stack+0x98/0xb8. L$ D2 l; Q$ H2 G
  28. [    2.873592] [<ffffffc00012b32c>] panic+0xd4/0x218* c% T, K% t5 ]2 i* W$ ]8 V
  29. [    2.878454] [<ffffffc000621d0c>] kernel_init+0xdc/0xe0) D4 H" o/ x7 V( G
  30. [    2.883761] [<ffffffc000085dd0>] ret_from_fork+0x10/0x40' N( y- }. Z6 f/ t8 G4 G
  31. [    2.888890] CPU0: stopping6 I+ @. q: ~+ L; _
  32. [    2.891949] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #21' A( Y4 H4 P7 q& Z6 ^4 w
  33. [    2.899505] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT)
    : B1 m: l4 y* M, c- s  R3 C2 L
  34. [    2.907154] Call trace:. K8 u6 ~+ T0 z8 q$ i' [9 o
  35. [    2.909861] [<ffffffc000089b10>] dump_backtrace+0x0/0x108+ |5 r- u# @- `0 V) s% Q
  36. [    2.915269] [<ffffffc000089c2c>] show_stack+0x14/0x20& @8 X9 {7 |/ _, L# S
  37. [    2.920580] [<ffffffc00029f280>] dump_stack+0x98/0xb8. X) A- r5 W" I# s0 W) y0 Q7 _0 Z* H
  38. [    2.925892] [<ffffffc00008efc0>] handle_IPI+0x190/0x1a0
    $ Y" k4 u* I' N, ^6 t
  39. [    2.931030] [<ffffffc000082598>] gic_handle_irq+0x78/0x168# j! `$ s5 W. L8 E( e
  40. [    2.936969] Exception stack(0xffffffc0008abda0 to 0xffffffc0008abed0)0 ?/ y9 [2 c( F5 W
  41. [    2.943547] bda0: ffffffc0008ae000 0000008000000000 ffffffc0008abf00 ffffffc0000868406 F; _' p- u7 i
  42. [    2.951467] bdc0: 0000000000000145 ffffffc000890000 0000000000000000 0000000000000000
    ' U6 E% n2 q/ x9 y0 v
  43. [    2.959567] bde0: 0000000000000001 0000000000000000 00000000000001c0 0100000000000000- C4 y# \+ {; {9 y
  44. [    2.967757] be00: 0000000000000001 ffffffc01bfcddc0 00000000fffeddda ffffffc0008abe807 F1 E8 e& S5 Z& \/ m) C; {
  45. [    2.975676] be20: 00000000000006d0 0000000000000000 0000000000000000 00000000058e8eff$ Q  I7 I8 Q) ^! T
  46. [    2.983954] be40: ffffffc00426c260 00000000000075af 00000000000ba7a2 0000000000000000
    ; m  c# @* o* \1 F3 o) F" }
  47. [    2.991876] be60: ffffff8000058548 ffffffc0008ae000 ffffffc0008ae8d8 ffffffc00088cad8  f( R! l) {6 ?4 Z
  48. [    2.999886] be80: ffffffc0008abf20 ffffffc000631000 ffffffc000890000 ffffffc0008ae000' E( v+ j3 Y4 ~2 W
  49. [    3.007986] bea0: ffffffc0008a8000 0000000000000000 0000000000000000 ffffffc0008abf00
    3 ]6 q: ~' S  y
  50. [    3.016353] bec0: ffffffc00008683c ffffffc0008abf00
    / t4 h0 W9 d) |/ Z; X. N
  51. [    3.021215] [<ffffffc000085700>] el1_irq+0x80/0xf84 g* D9 i% N& B& e+ f; s9 b1 {2 c
  52. [    3.026168] [<ffffffc0000d8164>] default_idle_call+0x1c/0x38  y; Y. @0 W, J
  53. [    3.032373] [<ffffffc0000d8398>] cpu_startup_entry+0x1c8/0x2182 e" m: L$ R6 s/ o
  54. [    3.038411] [<ffffffc000621c20>] rest_init+0x88/0x98) V9 S3 o6 z5 `; a' g
  55. [    3.043192] [<ffffffc00084d950>] start_kernel+0x384/0x398
    2 f' T; p7 t8 x, y( Q9 P
  56. [    3.048948] [<0000000000627000>] 0x627000. n% S+ Q: ^0 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 下获取的一些信息( }3 o; P3 L( z1 B: V. g4 x
  1. # 查看文件夹 发现boot为空+ y5 h9 T. |/ |3 J
  2. Marvell>> ext4ls mmc 0:1 /boot& z- N2 t) h8 q! J
  3. <DIR>       4096 .: O$ i  Q/ M9 g* r
  4. <DIR>       4096 ... A$ F2 ~$ T7 s+ a$ B
  5. ' I  o0 S; x; Q! c7 H- K
  6. # 无法启动usb
    9 f! X2 l; T! i% O" e" w5 w* Z
  7. Marvell>> usb start
    ( g1 p; _1 u8 F
  8. starting USB...
    / ?* J/ m  t: ~% z7 `! [. Z
  9. No controllers found
复制代码
猜测可能是误删了/boot下的文件导致的,无法通过U盘启动
. X! n3 y5 F8 d, q- |  z1 J4 S1 F

# P& c: _( |  r  }                               
登录/注册后可看大图

# E/ U1 t9 H+ t- b启动进入uboot输入如下命令; {+ H5 r0 @9 k3 m+ I7 R9 U
  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 Z  ]- f4 ^; F! z+ B
  2. setenv bootargs "console=ttyMV0,115200 root=/dev/mmcblk0p1 rootwait rw init=/bin/sh"5 ]3 @( x0 V( F6 T8 V! Y
  3. boot3 A7 J( k1 S! S+ H2 d! s1 l* P  m
  4. booti 0x5000000 - 0x4f00000
复制代码
即可进入linux shell
% t5 N: L7 Y# M% [( r& ?/ ]# e: {
  1. # 查看存储设备
    ' {, W8 U3 }( O6 v4 `4 z
  2. ls -l /dev/sd
    0 a0 ^" J- B: C; c
  3. : G/ e: L. D6 H/ S1 J. U# ]
  4. # 挂载) T6 T% W# l! n! d) ?3 d
  5. mount -t proc /proc9 J2 u. b6 V; Z+ [4 _
  6. mount /dev/sda4 /mnt
    : c) k8 T2 m2 {# v. E& y* V

  7. 0 J' e* V6 b6 j1 ]
  8. # 拷贝文件: v. K  M" f2 J
  9. cd /mnt( U9 T0 n% G% z$ q, R% n6 l( @
  10. cp armada-3720-customer0.dtb /boot/
    ' n$ N# i  V( Y! S9 t
  11. cp Image /boot/& I7 g' B$ r1 h& g! R4 a4 g- S6 R
  12. ( m& S" E! a- _1 B* O
  13. # 退出
    2 f& Q( f1 z7 a/ z% T/ |" Y* b. A& w
  14. exit
复制代码
重新插拔电源后恢复正常,uboot信息如下:
+ M1 X  {+ @  `8 J' G
  1. TIM-1.0# O4 O- K! U6 Z- ~
  2. WTMI-armada-17.10.1-" v! j  G6 }; F* \( m: R2 x( T! L3 m- H
  3. ENTER init_ddrgen
    5 \% w: H9 \4 s6 d2 r+ S6 f  x7 p9 @
  4. DDR_TOPOLOGY is 0 :        DDR3, 1CS 512M3 \8 p0 P7 ?! [% Q* u
  5. WTMI_CLOCK=2+ A0 K& W: A1 s( l, X1 l" ?, `
  6.   [4 _7 ?3 @8 p9 f3 Q: e( n( P5 Y
  7. Fill memory before self refresh...done
    2 Z: a4 H4 S' x% j% r
  8. 2 S: w- y% b3 [, u' o, e
  9. Now in Self-refresh Mode& F% B: t. R1 A4 ]/ M7 v. K
  10. Restore CAS Read and Write Latency7 p8 w0 ~- L9 S
  11. Restore termination values to original values
    9 B( l$ K' [% N+ H
  12. Exited self-refresh ...
    " k9 D/ r7 D& ~' E2 p! D1 P
  13. - t" D2 \/ o' V
  14. DLL TUNING4 m& F8 F* A8 l! p' X7 `
  15. ==============
    9 Y3 H4 G$ |6 [
  16.    DLL 0xc0001050[21:16]: [0,31,18]
    ! Q0 e5 T* l9 h- V
  17.    DLL 0xc0001050[29:24]: [0,2b,15]$ X! H( |0 W4 {/ z0 |1 n- A# b
  18.    DLL 0xc0001054[21:16]: [0,32,19]
    , X8 I& M5 J( }
  19.    DLL 0xc0001054[29:24]: [0,2d,16]: L0 U/ K% z7 y+ n
  20.    DLL 0xc0001074[21:16]: [0,3f,1f]
    9 |: A1 l( O- m+ X6 _# ]
  21.    DLL 0xc0001074. Z8 O& x. z# \0 P( q' z+ M) d

  22. ( M, c1 U, ]0 H8 N6 U0 U5 N
  23. U-Boot 2017.03-armada-17.10.1 (Mar 07 2018 - 17:11:33 +0800)" R, X0 t3 R: `6 `0 W

  24. # V4 d0 z0 H. N5 o% `
  25. Model: Marvell Armada 3720 for Eli Cat
    # p  i2 ?' g7 y# D& f1 E
  26.        CPU    @ 1000 [MHz]5 u: h% l) Z8 S! a) c
  27.        L2     @ 800 [MHz]' p7 N3 k* k' I: i. U
  28.        TClock @ 200 [MHz]  S1 f& z( L" k
  29.        DDR    @ 800 [MHz]3 o1 }8 b# r' \) @
  30. I2C:   ready ( x+ w6 E; r' M/ ]
  31. DRAM:  512 MiB
    3 l+ U! N3 Z7 C0 f8 S
  32. U-Boot DT blob at : 000000001f73a520- b% B! z' N2 g+ R* |6 `# A
  33. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB
    / A  t$ {" J6 D  b0 l/ J7 H- D
  34. *** Warning - bad CRC, using default environment1 V- D  H$ i/ L, q) l  m5 D
  35. 6 j( Q2 X" t9 a: s/ |
  36. MMC:   for ssg ledsdhci@d8000: 0
    % V0 b/ c* \( h, ]
  37. 12931 bytes read in 16 ms (789.1 KiB/s)9 U/ W) W) `! \: u
  38. gpio: pin GPIO23 (gpio 39) value is 1' u" W; x8 q, b. w3 `  {
  39. gpio: pin GPIO23 (gpio 39) value is 1
    5 u; G: C4 C  \$ A
  40. gpio: pin GPIO23 (gpio 39) value is 1
    3 s0 ]2 o. d; H2 _3 B
  41. Comphy-0: USB3_HOST0    5 Gbps    $ X- v! l* [) g/ l( t* t8 }
  42. Comphy-1: SGMII0        1.25 Gbps # B5 q: V5 A( N/ w+ q* l' v; V# F
  43. Comphy-2: SATA0         6 Gbps    8 E, z# R+ Q- q
  44. gpio: pin GPIO23 (gpio 39) value is 1
    ; B5 x; H) F$ f) n  @4 }' r5 x& {
  45. 12931 bytes read in 4 ms (3.1 MiB/s)
    # A& D$ f! R- j7 W
  46. Enter Normal mode6 F! z- S  T, V# u
  47. SCSI:  Hit any key to stop autoboot:  0
复制代码
4 y: H6 v% ~' p. n
补充下:这样修改后,只能一次有效请删除mmc 0:3 分区的rootfs.tar.bz2和upgrade_eli_38.img文件。0 f4 Y' ]  R9 P1 s* u/ t
或者直接在linux shell里面刷写新uboot
1 \' _2 q+ z5 ?1 I* l  n
6 |  V" F" B8 q
2 z# X1 B* d+ k8 G: \7 N; L3 ]0 w  n, [( j# g; o8 ?/ R, h1 B: u+ t

评分

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

查看全部评分

5

主题

57

回帖

491

积分

中级渣柚V1

积分
491
xingjiwoniu 发表于 2019-10-9 15:50:15 | 显示全部楼层 IP:–江苏–宿迁 移动
本帖最后由 xingjiwoniu 于 2019-10-9 16:00 编辑 ( _& e8 \' J. g$ r, }; G

( l2 s; N; g" W" ]感谢分享

4

主题

78

回帖

706

积分

中级渣柚V2

积分
706
tkunming 发表于 2019-10-9 16:07:37 | 显示全部楼层 IP:–湖南–永州 移动
谢谢分享

7

主题

450

回帖

706

积分

中级渣柚V2

积分
706

热心会员

along1231 发表于 2019-10-9 17:09:08 | 显示全部楼层 IP:–广东–东莞 电信
感谢分享
; F' w; @: z& r" f5 a: m6 a

1

主题

20

回帖

204

积分

中级渣柚V1

积分
204
kristy 发表于 2019-10-9 17:10:58 | 显示全部楼层 IP:–浙江–杭州 电信
收藏 感谢!

4

主题

114

回帖

323

积分

中级渣柚V1

积分
323
GokuSun 发表于 2019-10-9 20:25:44 | 显示全部楼层 IP:–安徽–阜阳–颍州区 电信
按照你这个执行不成功啊

5

主题

79

回帖

424

积分

中级渣柚V1

积分
424
 楼主| tymfl 发表于 2019-10-9 20:36:10 | 显示全部楼层 IP:–重庆–重庆 长城宽带
GokuSun 发表于 2019-10-9 20:25
8 s5 ~5 }1 }8 G2 x/ {按照你这个执行不成功啊
1 Z' a5 V( z9 I, U
还是提示找不到?

0

主题

12

回帖

40

积分

初级渣柚V1

积分
40
kuangogrish 发表于 2019-10-9 20:45:54 | 显示全部楼层 IP:–上海–上海–杨浦区 电信
顶一下顶一下
) j5 {  I' n! ^: z

4

主题

114

回帖

323

积分

中级渣柚V1

积分
323
GokuSun 发表于 2019-10-9 20:48:03 | 显示全部楼层 IP:–安徽–阜阳–颍州区 电信
tymfl 发表于 2019-10-9 20:36. i0 N! z+ b5 L0 I( j
还是提示找不到?
* x8 C! D& H+ ~* v, \$ l
是还是原样子,启动还是end Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
& N' O/ q7 M1 c1 |完全按照您的步骤做的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-11-7 23:58 , Processed in 0.065822 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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