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

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

[复制链接]

5

主题

79

回帖

423

积分

中级渣柚V1

积分
423
发表于 2019-10-9 15:22:10 | 显示全部楼层 |阅读模式
本帖最后由 tymfl 于 2019-10-11 23:47 编辑
! \1 A7 Q% N$ T/ x6 U3 D7 Q
8 e) o' P) o$ t" ?" T8 F入手一台伊拉克成色猫盘故障机,连好ttl上电以后
$ Q  A8 w, q/ L3 O9 `. ~7 ]4 y
  1. TIM-1.0' R2 E1 V  Y, ?$ l, Y
  2. WTMI-armada-17.10.1-
    ) Y; I6 E: q& x
  3. .........4 V5 k7 m* t: B; K
  4. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB
    . J/ `, p9 S9 J( I; I& h" `; C# `9 M3 d
  5. *** Warning - bad CRC, using default environment
    6 O; K# Z1 ~" Y: B: x- P- u
  6. , i% d: X9 |, N- p3 }
  7. MMC:   for ssg ledsdhci@d8000: 0) [4 O1 h* |$ G
  8. ** File not found boot/armada-3720-customer0.dtb **) p+ J2 Q& f) I; w1 B7 b9 l
  9. ** File not found boot/armada-3720-customer0-minifs.dtb **: h/ l) v  I6 f; r
  10. test_mmc_ext4_exist ==10 |4 ]; ?" u0 l  Z2 h7 o
  11. Comphy-0: UNCONNECTED  
      ?  y# g7 q: q; a
  12. Comphy-1: UNCONNECTED  
      o& g/ S" M3 {: m
  13. Comphy-2: UNCONNECTED  ( \$ n  Q& A* `9 r. {! Z
  14. gpio: pin GPIO23 (gpio 39) value is 1
    & _! ^6 c5 A9 t- K* N. v( v7 f
  15. ** File not found boot/armada-3720-customer0.dtb **5 {- |& [) I/ Z3 I
  16. ** File not found boot/armada-3720-customer0-minifs.dtb **
    " V% n9 J0 U1 z
  17. Enter Recovery mode+ V! Y. d, F1 }* {: Y
  18. SCSI:  Hit any key to stop autoboot:  0
复制代码
发现无法找到dtd文件,进入了恢复模式,直接启动或按住reset启动均启动失败,启动信息如下:
& ]  u! m" W1 m
  1. Marvell>> boot
    . T9 y; F7 w- F/ E: Q
  2. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB4 f! F3 O* q( v
  3. device 0 offset 0xcc000, size 0x434000
    - z2 l0 B9 q( f
  4. SF: 4407296 bytes @ 0xcc000 Read: OK
      u& E' h) M( w! Z3 W' E
  5. gpio: pin GPIO21 (gpio 37) value is 1
    + s0 I- q: d1 E
  6. gpio: pin GPIO22 (gpio 38) value is 12 t- i$ }' \1 {) n& x
  7. Uncompressed size: 8992256 = 0x893600' t: m( ^! c! n3 {3 J! [# a
  8. device 0 offset 0xc8000, size 0x4000. B# c$ c4 V9 E9 ]& _# Z
  9. SF: 16384 bytes @ 0xc8000 Read: OK9 w& o0 _3 |% R) w! x& n6 h
  10. ## Flattened Device Tree blob at 04f00000
    8 Z) C4 t% A& S8 B) U0 p
  11.    Booting using the fdt blob at 0x4f000008 c  {: m7 L' K' L8 J
  12.    Using Device Tree in place at 0000000004f00000, end 0000000004f05df8
    4 A* K0 O8 A9 a% E, J

  13. 3 a5 k6 m4 m" d* E6 k* v; H+ `
  14. Starting kernel ...9 `' e- \' t6 r  p7 I( P# P2 X6 H

  15. - ?- v) a. r2 T- E1 y
  16. .......... V# Q7 c! _8 b0 C& \
  17. [    2.786623]  mmcblk0: p1 p2 p3% q" r( E: x# x9 l! k4 P
  18. [    2.801201] Starting init: /sbin/init exists but couldn't execute it (error -5)
    3 y- E3 ^1 w! |* N) D( ^1 y/ m- C
  19. [    2.813804] cramfs: bad compressed blocksize 4294298135
    3 A# J( y. j8 E2 o: Z: V9 o$ k/ z
  20. [    2.819206] Starting init: /bin/sh exists but couldn't execute it (error -5)
      i# Q1 }' E2 J
  21. [    2.826452] Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
    " R2 O6 @* |& G  o  N, W5 z
  22. [    2.840101] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #21
    ) t: [3 ]: D) b" \  f5 y
  23. [    2.847399] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT)0 ^8 D) u# ~9 p3 g% W5 @4 k
  24. [    2.854957] Call trace:
    * W$ `! j+ K6 K9 R2 j  X! `6 @8 D
  25. [    2.857401] [<ffffffc000089b10>] dump_backtrace+0x0/0x108# T6 T5 ~3 l/ h. s% e6 A" P. c) U
  26. [    2.863150] [<ffffffc000089c2c>] show_stack+0x14/0x20
    ' G+ h% |' i. A1 X) o8 b
  27. [    2.868371] [<ffffffc00029f280>] dump_stack+0x98/0xb8
    9 d+ G5 P- ^: o8 S
  28. [    2.873592] [<ffffffc00012b32c>] panic+0xd4/0x218
    3 Z/ o4 i6 e3 J7 n- G' Q; s& O; D. o
  29. [    2.878454] [<ffffffc000621d0c>] kernel_init+0xdc/0xe04 z& {* S9 U; f, R9 C
  30. [    2.883761] [<ffffffc000085dd0>] ret_from_fork+0x10/0x40
    2 y' \1 t! F4 C( d8 v
  31. [    2.888890] CPU0: stopping) ~$ {+ r7 f$ G- [. U' o1 [, z
  32. [    2.891949] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #21
    * b) K+ u, X. P1 o
  33. [    2.899505] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT)7 |5 x( M: b3 Z& ^% P
  34. [    2.907154] Call trace:. B5 l, S: J$ L
  35. [    2.909861] [<ffffffc000089b10>] dump_backtrace+0x0/0x108
    6 }- K" Z3 q0 S3 `4 A
  36. [    2.915269] [<ffffffc000089c2c>] show_stack+0x14/0x20
    . ~5 @' f2 z% G
  37. [    2.920580] [<ffffffc00029f280>] dump_stack+0x98/0xb8
    / n# G8 X+ s5 V  H
  38. [    2.925892] [<ffffffc00008efc0>] handle_IPI+0x190/0x1a0% b1 ~/ s8 p6 b
  39. [    2.931030] [<ffffffc000082598>] gic_handle_irq+0x78/0x168
    : O1 ?, F6 S2 n) x
  40. [    2.936969] Exception stack(0xffffffc0008abda0 to 0xffffffc0008abed0)2 H# W4 z" ]- Y- `
  41. [    2.943547] bda0: ffffffc0008ae000 0000008000000000 ffffffc0008abf00 ffffffc000086840
      E0 V+ N6 ]; L: _
  42. [    2.951467] bdc0: 0000000000000145 ffffffc000890000 0000000000000000 0000000000000000% Z. o( w# Q! w! w$ I' V# d
  43. [    2.959567] bde0: 0000000000000001 0000000000000000 00000000000001c0 0100000000000000% Q) j3 n7 @  \. c/ D+ b7 Q2 {! \& o1 Z
  44. [    2.967757] be00: 0000000000000001 ffffffc01bfcddc0 00000000fffeddda ffffffc0008abe80
    * D& g0 l* G2 ]" g
  45. [    2.975676] be20: 00000000000006d0 0000000000000000 0000000000000000 00000000058e8eff; z1 i6 l" R) R5 ]/ D! y+ K
  46. [    2.983954] be40: ffffffc00426c260 00000000000075af 00000000000ba7a2 00000000000000008 r4 w) U4 u- i
  47. [    2.991876] be60: ffffff8000058548 ffffffc0008ae000 ffffffc0008ae8d8 ffffffc00088cad8' w& T1 c2 l. {1 k1 G7 h, k
  48. [    2.999886] be80: ffffffc0008abf20 ffffffc000631000 ffffffc000890000 ffffffc0008ae000
    9 @* f: S7 t/ l0 L) T3 l
  49. [    3.007986] bea0: ffffffc0008a8000 0000000000000000 0000000000000000 ffffffc0008abf00
    * b% U& e8 k( B2 r
  50. [    3.016353] bec0: ffffffc00008683c ffffffc0008abf005 D( y. ~' }+ J, z, M7 U0 L
  51. [    3.021215] [<ffffffc000085700>] el1_irq+0x80/0xf8% Z/ d( u. ]. M4 C2 @
  52. [    3.026168] [<ffffffc0000d8164>] default_idle_call+0x1c/0x38
    4 P( l: K+ u- [# H) g9 [, X
  53. [    3.032373] [<ffffffc0000d8398>] cpu_startup_entry+0x1c8/0x218. a% p7 c/ R4 l9 Y2 s+ N6 D
  54. [    3.038411] [<ffffffc000621c20>] rest_init+0x88/0x98
    " l0 E+ a  Y1 w* v) G( w
  55. [    3.043192] [<ffffffc00084d950>] start_kernel+0x384/0x398
    3 }. m# p! d1 ~: ~, j. F
  56. [    3.048948] [<0000000000627000>] 0x6270008 b; [7 v$ |1 l. G0 B9 ^
  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 @1 d! R. C" g* `: M( x
  1. # 查看文件夹 发现boot为空
    % m2 ]8 j, e3 J' m4 C* k3 W
  2. Marvell>> ext4ls mmc 0:1 /boot
    / O  s* Y* {+ X# W
  3. <DIR>       4096 .+ j" |( u- u9 b* H# v6 k3 z
  4. <DIR>       4096 ..
    " Y, R( |5 K$ X: z0 s) {

  5.   D" Q- I6 k1 {2 J( M
  6. # 无法启动usb
    ' B4 k# _5 M# E7 P/ R4 F/ i0 L  h2 x
  7. Marvell>> usb start2 K& z  A1 \' Y) }- }5 A5 P% P
  8. starting USB...
    " Y$ I: X. t9 r: p/ ^: c) J  u
  9. No controllers found
复制代码
猜测可能是误删了/boot下的文件导致的,无法通过U盘启动
8 ?4 I% X9 V# P% C7 ^

6 o- _& n  \2 X. ~' s- _% }                               
登录/注册后可看大图
$ ?- g0 W) r; `
启动进入uboot输入如下命令
. M2 J8 [# o- L7 H2 I2 Q
  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;"/ P7 ~4 a( `% o+ G- ]' s4 }/ h
  2. setenv bootargs "console=ttyMV0,115200 root=/dev/mmcblk0p1 rootwait rw init=/bin/sh"
    ) S9 k5 N; F: I4 }
  3. boot* p# m4 L. i, o$ O" z
  4. booti 0x5000000 - 0x4f00000
复制代码
即可进入linux shell5 h4 Y) {% W6 Z5 G
  1. # 查看存储设备
    * Y! i& V$ [# X, G3 P4 o# y% x) k
  2. ls -l /dev/sd
    * G5 ^: B( q- o% }; R, V0 l( I) @# q

  3. : H9 N& ^$ x3 [$ d6 c
  4. # 挂载
    - q( d" N, P, s' `, z# S" L7 {
  5. mount -t proc /proc
    6 q, n& M- k' L& }# s
  6. mount /dev/sda4 /mnt: v: p; M6 K3 }8 C; o6 j* ^5 C
  7. 2 d! K/ Y6 X# a5 C' m4 a- W3 Q
  8. # 拷贝文件
    9 T" _: K, @0 R7 _
  9. cd /mnt
    9 @/ i7 Q5 b& {. e& B( N; d9 v
  10. cp armada-3720-customer0.dtb /boot/0 L( \: [  l3 `5 f& L1 j( x
  11. cp Image /boot/
    9 l# V* ~7 y2 U+ g9 s; O: X: I

  12. , |0 b% t0 t# R# G7 B9 @; j
  13. # 退出
    5 K3 u& ^: p+ g% Q2 |, H: o
  14. exit
复制代码
重新插拔电源后恢复正常,uboot信息如下:
: D$ D6 |" z- N. A, s9 O$ w
  1. TIM-1.0% I0 r2 m5 Z1 S: l
  2. WTMI-armada-17.10.1-
    4 s9 a+ @6 f. {  i. v4 K
  3. ENTER init_ddrgen- a& ]$ H) n- ^8 P) [% t+ h3 g
  4. DDR_TOPOLOGY is 0 :        DDR3, 1CS 512M  Y, I7 H) p. B/ \+ Q% m& D
  5. WTMI_CLOCK=2) a% b/ Z; h( @. n8 p! r5 T

  6. ( k$ t4 Z1 I5 O* m
  7. Fill memory before self refresh...done
    2 v" a# }6 {* i7 {' t& ^( z

  8. * s. {* I3 e5 @3 @: V
  9. Now in Self-refresh Mode7 W0 ]. ?) b# |% C% l" }  w
  10. Restore CAS Read and Write Latency1 B- v/ d  H! T
  11. Restore termination values to original values
    % I8 W7 p4 K* _  h& u+ o+ s0 e
  12. Exited self-refresh ...6 D0 z/ S) K8 ~/ i
  13. 2 w4 _- D6 ?9 a. E
  14. DLL TUNING( V: E  Z% K1 a1 ]" c% u5 s
  15. ==============0 O' F8 [7 \- _& Q5 ~% r
  16.    DLL 0xc0001050[21:16]: [0,31,18]
    5 j5 M9 v. b! D1 @
  17.    DLL 0xc0001050[29:24]: [0,2b,15]+ L. V( G$ N6 U4 b2 o$ F  y( P
  18.    DLL 0xc0001054[21:16]: [0,32,19]: }) @$ Q8 B) ~) X! Q3 w
  19.    DLL 0xc0001054[29:24]: [0,2d,16]
    2 [- N' }+ h" ]$ N3 b
  20.    DLL 0xc0001074[21:16]: [0,3f,1f]
    1 X+ o- p3 Q+ y' i) M5 e# m0 S
  21.    DLL 0xc00010743 j1 k. t  b. Q, ]8 j
  22. 2 l- C2 j! E4 X( {  f
  23. U-Boot 2017.03-armada-17.10.1 (Mar 07 2018 - 17:11:33 +0800)7 \! D7 [+ Z* w

  24. 3 c+ W  o0 S& V
  25. Model: Marvell Armada 3720 for Eli Cat
    - ]# C* E6 {, Q% R) k: D
  26.        CPU    @ 1000 [MHz]# c9 ~/ m& a' @+ a+ l6 ~
  27.        L2     @ 800 [MHz]
      r* k2 T$ T6 q/ M
  28.        TClock @ 200 [MHz]
    0 J3 y) Z8 D( L
  29.        DDR    @ 800 [MHz]
    4 ?9 i( z: G9 E8 P5 Z$ T
  30. I2C:   ready ) S* t2 P5 v' K! v. Z
  31. DRAM:  512 MiB0 V5 N$ ^6 }' B' Z3 f) ]
  32. U-Boot DT blob at : 000000001f73a520( J3 r- J, I2 n: Z
  33. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB
    # T7 m8 I  z0 y3 z, ~8 _
  34. *** Warning - bad CRC, using default environment
    . g0 ~+ k6 o) O4 N* M1 {9 l

  35. , j- V' Y% e$ N$ x7 [
  36. MMC:   for ssg ledsdhci@d8000: 0$ e0 D* X! t) _& r" q4 m+ w, S& j
  37. 12931 bytes read in 16 ms (789.1 KiB/s)0 K' S9 l9 A0 I/ _
  38. gpio: pin GPIO23 (gpio 39) value is 1- H  X& @* C. i
  39. gpio: pin GPIO23 (gpio 39) value is 1* e" b  H9 L4 C. P4 V5 x
  40. gpio: pin GPIO23 (gpio 39) value is 1( |$ i, ^; Y; r0 _
  41. Comphy-0: USB3_HOST0    5 Gbps   
    : o3 t5 [8 ^, N8 \% b
  42. Comphy-1: SGMII0        1.25 Gbps
    ; T" z2 r6 N2 }  c
  43. Comphy-2: SATA0         6 Gbps    % _! O3 j: k+ E6 z
  44. gpio: pin GPIO23 (gpio 39) value is 1" N) P/ x- s: i; t' G# Y
  45. 12931 bytes read in 4 ms (3.1 MiB/s)
    % P/ s9 D2 W9 k5 I0 M
  46. Enter Normal mode
    # L+ {( W2 C! ?; Y
  47. SCSI:  Hit any key to stop autoboot:  0
复制代码

9 p* D+ f0 a! b补充下:这样修改后,只能一次有效请删除mmc 0:3 分区的rootfs.tar.bz2和upgrade_eli_38.img文件。
% Z3 |0 F" e+ e) i$ s) U或者直接在linux shell里面刷写新uboot% C  C/ @" X! ^. X) X  e% Q

; w3 M, m" E9 W5 |5 Z0 J# u2 N0 C4 M- }4 e) `4 T$ `3 K; U
9 M  ?$ C4 ?1 L8 t6 Y

评分

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

查看全部评分

5

主题

57

回帖

491

积分

中级渣柚V1

积分
491
发表于 2019-10-9 15:50:15 | 显示全部楼层
本帖最后由 xingjiwoniu 于 2019-10-9 16:00 编辑 ) c, b' ~, {; }. U- n' _6 ?
/ h. V5 L: {; k+ t! f
感谢分享

4

主题

78

回帖

706

积分

中级渣柚V2

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

7

主题

450

回帖

705

积分

中级渣柚V2

积分
705

热心会员

发表于 2019-10-9 17:09:08 | 显示全部楼层
感谢分享
, ^! D# G0 G4 x6 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
2 T3 r& @( T" i  s按照你这个执行不成功啊

5 U# h' f! i9 X2 \还是提示找不到?

0

主题

12

回帖

40

积分

初级渣柚V1

积分
40
发表于 2019-10-9 20:45:54 | 显示全部楼层
顶一下顶一下$ J2 j. O  T# p0 @

4

主题

114

回帖

323

积分

中级渣柚V1

积分
323
发表于 2019-10-9 20:48:03 | 显示全部楼层
tymfl 发表于 2019-10-9 20:36; V+ K7 S1 ?* w) C0 |( ]
还是提示找不到?

0 b- [9 S, Z7 W( Z; p9 q是还是原样子,启动还是end Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
; _1 t2 K- i# C* _完全按照您的步骤做的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-13 14:04 , Processed in 0.061042 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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