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

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

[复制链接]

5

主题

79

回帖

424

积分

中级渣柚V1

积分
424
发表于 2019-10-9 15:22:10 | 显示全部楼层 |阅读模式
本帖最后由 tymfl 于 2019-10-11 23:47 编辑
% l' B; k: @5 V5 F! _! q; o* d& q! `* ?$ ^4 i1 x- H' h
入手一台伊拉克成色猫盘故障机,连好ttl上电以后/ Q' X+ ~  H& y6 Z1 V
  1. TIM-1.05 f: p) ]6 C0 g  M5 j' M& r
  2. WTMI-armada-17.10.1-2 o& \) k9 |* a- l2 ~6 @! q
  3. .........3 @6 ]+ Q8 L9 k7 b3 Q! k4 M
  4. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB1 R! u" _0 X' v; W/ y; ^5 H: i
  5. *** Warning - bad CRC, using default environment3 p/ B* _. X/ w) d

  6. ; a% L9 T# h. Y
  7. MMC:   for ssg ledsdhci@d8000: 0
    - z' _6 U! T3 e) @# j7 [! G
  8. ** File not found boot/armada-3720-customer0.dtb **+ \7 v8 N" @# Q$ H! p+ E
  9. ** File not found boot/armada-3720-customer0-minifs.dtb **
    & n7 M+ b; _. k  f
  10. test_mmc_ext4_exist ==1
    % Z" N& V# [* X, m$ n  i* {
  11. Comphy-0: UNCONNECTED  % M- r2 H' A" \$ l2 v/ _
  12. Comphy-1: UNCONNECTED  
    1 r% w" H" E& D. w' h
  13. Comphy-2: UNCONNECTED  
    ( `  N, N1 F! a! f+ q: B; \
  14. gpio: pin GPIO23 (gpio 39) value is 1. f9 W1 h7 _2 @# {1 E
  15. ** File not found boot/armada-3720-customer0.dtb **
    # u1 j9 i2 P4 g( e6 [
  16. ** File not found boot/armada-3720-customer0-minifs.dtb **
      ?7 z( {3 k" m/ y9 Z( X6 R1 I
  17. Enter Recovery mode; W' W" j6 u  ?( y  T* N/ D1 _
  18. SCSI:  Hit any key to stop autoboot:  0
复制代码
发现无法找到dtd文件,进入了恢复模式,直接启动或按住reset启动均启动失败,启动信息如下:3 W4 M- ?- F7 i) T
  1. Marvell>> boot
    , }' B; Z- P9 d5 ]
  2. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB% b/ h( R( Y4 f8 O
  3. device 0 offset 0xcc000, size 0x434000* Q0 A$ L  C" A
  4. SF: 4407296 bytes @ 0xcc000 Read: OK
    / v! }: M' G+ m: g
  5. gpio: pin GPIO21 (gpio 37) value is 1
    " Y4 |% I7 D5 K- [
  6. gpio: pin GPIO22 (gpio 38) value is 17 M+ K, Z+ Q0 P' I1 T
  7. Uncompressed size: 8992256 = 0x893600  J: }. J, l4 z. E3 X% H2 E% z
  8. device 0 offset 0xc8000, size 0x4000# a! C, W3 K: ~, z. `
  9. SF: 16384 bytes @ 0xc8000 Read: OK
    # f  k6 A( B9 S: r
  10. ## Flattened Device Tree blob at 04f00000
    " K9 O" A& V7 n0 @  R0 V3 ]6 g
  11.    Booting using the fdt blob at 0x4f00000
    5 D1 Q' s1 x" {6 Z2 _7 ]
  12.    Using Device Tree in place at 0000000004f00000, end 0000000004f05df8
    ' I/ R# o3 A/ {$ [+ j' P
  13.   l* s$ ?5 j# R1 W& q9 s! g
  14. Starting kernel ...
    # [6 v% O8 _$ w1 p8 ?

  15. % b, \7 R& h2 e  j
  16. .........9 h+ O: K3 U0 f/ c+ K
  17. [    2.786623]  mmcblk0: p1 p2 p38 C. ~$ [+ I% F+ d3 O
  18. [    2.801201] Starting init: /sbin/init exists but couldn't execute it (error -5)5 G' s4 E  r* {2 N9 B4 j7 S0 S
  19. [    2.813804] cramfs: bad compressed blocksize 4294298135
    4 }7 r: p: Y- B  W) P/ E
  20. [    2.819206] Starting init: /bin/sh exists but couldn't execute it (error -5)
    6 m- g' P& T. E0 S5 Y
  21. [    2.826452] Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.6 }  F  }' J; j7 g
  22. [    2.840101] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #219 t+ [4 w, {6 g6 J2 o5 `
  23. [    2.847399] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT)
    + g2 z& w2 l8 O- ^& p% S& R
  24. [    2.854957] Call trace:8 r' d  f. [2 i& K* M+ h
  25. [    2.857401] [<ffffffc000089b10>] dump_backtrace+0x0/0x108
    1 S/ _$ o4 U; I; P9 ~
  26. [    2.863150] [<ffffffc000089c2c>] show_stack+0x14/0x20
    . V& S! L# x) X2 a' U
  27. [    2.868371] [<ffffffc00029f280>] dump_stack+0x98/0xb8
    / J0 b  x6 e: K7 ?0 d. l
  28. [    2.873592] [<ffffffc00012b32c>] panic+0xd4/0x218& O( W9 Q! L% h
  29. [    2.878454] [<ffffffc000621d0c>] kernel_init+0xdc/0xe0
    / d! Z0 z* {% M& z" n! I
  30. [    2.883761] [<ffffffc000085dd0>] ret_from_fork+0x10/0x40
    ' g* u- h% h1 Y3 }, E/ w! l8 v
  31. [    2.888890] CPU0: stopping: y6 A5 _8 P* k8 Q
  32. [    2.891949] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #21
    6 ^; I3 h" W: w* x
  33. [    2.899505] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT)
      c& U8 u& A0 r  |5 O
  34. [    2.907154] Call trace:: m# K; C# g  f; S) `& [; p9 ^
  35. [    2.909861] [<ffffffc000089b10>] dump_backtrace+0x0/0x108
    ) }5 B+ J4 ~% d  O! u, u% Y
  36. [    2.915269] [<ffffffc000089c2c>] show_stack+0x14/0x20
    ! N! S7 e4 c& Q( ]2 _8 {) H5 f
  37. [    2.920580] [<ffffffc00029f280>] dump_stack+0x98/0xb8
    8 n5 e1 T1 `0 R" ^+ G! t
  38. [    2.925892] [<ffffffc00008efc0>] handle_IPI+0x190/0x1a0* [! n0 \# |: m$ [; G% _- K
  39. [    2.931030] [<ffffffc000082598>] gic_handle_irq+0x78/0x168
    0 n$ t3 N9 v' y
  40. [    2.936969] Exception stack(0xffffffc0008abda0 to 0xffffffc0008abed0)1 ^" D" p0 B  w. @, q
  41. [    2.943547] bda0: ffffffc0008ae000 0000008000000000 ffffffc0008abf00 ffffffc000086840
    & ^6 L' F9 m8 w. Q
  42. [    2.951467] bdc0: 0000000000000145 ffffffc000890000 0000000000000000 0000000000000000. m4 [; K: H. M" d; t
  43. [    2.959567] bde0: 0000000000000001 0000000000000000 00000000000001c0 0100000000000000
    / n- {7 W; g1 B" g
  44. [    2.967757] be00: 0000000000000001 ffffffc01bfcddc0 00000000fffeddda ffffffc0008abe80# k5 K% Z$ [8 U; ^2 G) y
  45. [    2.975676] be20: 00000000000006d0 0000000000000000 0000000000000000 00000000058e8eff
    2 X# Q# y7 m) g- i2 d, t6 v
  46. [    2.983954] be40: ffffffc00426c260 00000000000075af 00000000000ba7a2 0000000000000000
    - y( u! t+ g( g1 X
  47. [    2.991876] be60: ffffff8000058548 ffffffc0008ae000 ffffffc0008ae8d8 ffffffc00088cad8
    : p+ G7 V" i) j! ^3 D
  48. [    2.999886] be80: ffffffc0008abf20 ffffffc000631000 ffffffc000890000 ffffffc0008ae000
    0 C/ N$ @' L0 s) ]" R1 Z! g3 b
  49. [    3.007986] bea0: ffffffc0008a8000 0000000000000000 0000000000000000 ffffffc0008abf006 e( ]  W1 J  F) Z! o, x
  50. [    3.016353] bec0: ffffffc00008683c ffffffc0008abf007 ^9 z. y' A* _7 S
  51. [    3.021215] [<ffffffc000085700>] el1_irq+0x80/0xf8; U+ z3 n4 X& t: Z
  52. [    3.026168] [<ffffffc0000d8164>] default_idle_call+0x1c/0x38- }/ @* F) Z2 y& @
  53. [    3.032373] [<ffffffc0000d8398>] cpu_startup_entry+0x1c8/0x2187 U8 Y# |9 z& T. B0 l8 b# R
  54. [    3.038411] [<ffffffc000621c20>] rest_init+0x88/0x98( x( Z1 K7 |8 v, p4 v+ f; K
  55. [    3.043192] [<ffffffc00084d950>] start_kernel+0x384/0x398" l3 ~1 h2 T* a
  56. [    3.048948] [<0000000000627000>] 0x627000
    $ q6 A% X3 P" S& z. n0 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 下获取的一些信息% w9 A* l1 k5 M* ?
  1. # 查看文件夹 发现boot为空' d$ n% b, s% N' K0 m
  2. Marvell>> ext4ls mmc 0:1 /boot( R2 @. K+ ^$ m( p
  3. <DIR>       4096 .2 }/ ~" S6 e1 U7 q  ^
  4. <DIR>       4096 ..! a  a% T) E; m! E* Q

  5. ) J2 m7 p% k( A2 K2 |; T7 v6 Z5 }
  6. # 无法启动usb
    ( }: s; g- d! W6 f) ~* O  C( c
  7. Marvell>> usb start
    ) L# k; b7 U/ z1 e4 T
  8. starting USB...# C! F8 A/ E9 q  ?! _: X5 ]& `3 d
  9. No controllers found
复制代码
猜测可能是误删了/boot下的文件导致的,无法通过U盘启动/ W: V/ h( g$ W$ W

; w2 X' D  x: r7 @: u" N                               
登录/注册后可看大图
) Z: Z& j' M' x" W: y/ e9 P
启动进入uboot输入如下命令! B8 _4 ~/ F7 a' ]# _, L  E% |, h2 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;"
    6 {$ m2 x" U# @
  2. setenv bootargs "console=ttyMV0,115200 root=/dev/mmcblk0p1 rootwait rw init=/bin/sh"6 v/ P1 R. s/ w, N
  3. boot
    . d2 Y1 r3 j$ b! f. P+ A
  4. booti 0x5000000 - 0x4f00000
复制代码
即可进入linux shell; c; L1 f$ x- \
  1. # 查看存储设备' K, H* O. ^- ]% \
  2. ls -l /dev/sd+ w. a, y6 W. Z

  3. 1 k: V! s4 p/ r
  4. # 挂载
    : m* a6 r* `* j# `, T: [) Q! B$ j
  5. mount -t proc /proc
    % ]8 v  r3 N, L
  6. mount /dev/sda4 /mnt1 |% S% L# {! z& E" u; G

  7. 7 V. E. X# o2 ^) W& W, @- v
  8. # 拷贝文件
    : m9 ~) A. |6 @6 q, M- a2 b
  9. cd /mnt% f- n2 l  q9 ]% G! a
  10. cp armada-3720-customer0.dtb /boot/
    . U: l0 C$ ?# \9 W' D9 T
  11. cp Image /boot/
    3 h8 x; g- Q; ~. [
  12. . y0 R0 e1 Y" G  H
  13. # 退出6 n) ]4 R4 V" h0 m" Y4 i, f
  14. exit
复制代码
重新插拔电源后恢复正常,uboot信息如下:0 c1 L: Q* b4 \: H! `, }0 \+ E
  1. TIM-1.06 F: h/ N4 ~1 c; p8 ?
  2. WTMI-armada-17.10.1-. B" c6 D1 u! X1 I) W* H
  3. ENTER init_ddrgen
    - O8 w0 ^' Y$ w, A! L
  4. DDR_TOPOLOGY is 0 :        DDR3, 1CS 512M* M* q; L  P( K6 k4 K
  5. WTMI_CLOCK=24 Z% K, @+ P1 o3 e3 |8 C6 ]
  6.   }1 X7 ]0 _* O5 E1 a+ x
  7. Fill memory before self refresh...done" j4 r$ S" |1 j
  8. 1 `% @, M2 t  V& L5 ]! {% m) R
  9. Now in Self-refresh Mode
    % H$ F1 Y- C8 n* t# N3 i  z1 E
  10. Restore CAS Read and Write Latency
    ; |+ H' q8 U7 x3 ~2 n% y
  11. Restore termination values to original values
    & q$ j* g6 F! D7 C
  12. Exited self-refresh ...
    ; M2 i! \1 W7 Z" F

  13. * U( X4 D  L: L( h
  14. DLL TUNING
    0 f: J! M& m  o, r% M
  15. ==============
    / A1 a* P  g0 f$ _5 b. t
  16.    DLL 0xc0001050[21:16]: [0,31,18]4 X. K- e* M3 |% k* Z- b6 k
  17.    DLL 0xc0001050[29:24]: [0,2b,15]
    4 R- Q( U! [' N# H8 Z
  18.    DLL 0xc0001054[21:16]: [0,32,19]
    1 \! @" C  e$ k& K8 V, E
  19.    DLL 0xc0001054[29:24]: [0,2d,16]. s9 p& r0 p5 c. \7 F
  20.    DLL 0xc0001074[21:16]: [0,3f,1f]/ Z) s" k* k/ D2 {1 ~
  21.    DLL 0xc0001074& G9 F  g3 C" p- W6 [
  22. 1 A2 Y" @( V5 ?3 f' X
  23. U-Boot 2017.03-armada-17.10.1 (Mar 07 2018 - 17:11:33 +0800); a6 m& o5 M) N, I

  24. ! W6 o( v- k8 b0 N2 D( L
  25. Model: Marvell Armada 3720 for Eli Cat
    5 ?3 w% a3 n3 b( [
  26.        CPU    @ 1000 [MHz]! C3 K8 R$ Q  f
  27.        L2     @ 800 [MHz]/ U6 a6 ?' h1 H0 [' L" O3 i
  28.        TClock @ 200 [MHz]. }# G# r8 k: d' ]* \1 Q/ A
  29.        DDR    @ 800 [MHz]9 ^  W8 _- Q' x2 H* w
  30. I2C:   ready
    4 R4 G( l. c7 h6 V3 v* z* i2 Q9 p1 {
  31. DRAM:  512 MiB
    0 @, \( C! k# r) p" _- I
  32. U-Boot DT blob at : 000000001f73a520* g2 Q. L' }/ Y) X' z2 y; J
  33. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB- R* y' r5 E5 D! g2 G. s
  34. *** Warning - bad CRC, using default environment
    4 g+ Q7 p, J: d8 w8 i4 w% q( B! V

  35. : E* k  ^- F- y! j  v  _
  36. MMC:   for ssg ledsdhci@d8000: 0' q5 Y. F8 y+ Z9 w5 X% E( j3 V3 A
  37. 12931 bytes read in 16 ms (789.1 KiB/s)- N8 C, B& g9 u$ L8 X
  38. gpio: pin GPIO23 (gpio 39) value is 1
    , k8 T7 V% U* b4 ^. ~- b
  39. gpio: pin GPIO23 (gpio 39) value is 1) _  \2 @$ ~+ c5 |
  40. gpio: pin GPIO23 (gpio 39) value is 1
    " q1 Y, I& \7 y9 ?/ j
  41. Comphy-0: USB3_HOST0    5 Gbps   
    ) l" \+ [' `4 f0 k
  42. Comphy-1: SGMII0        1.25 Gbps
    1 N4 ]& o3 p" O
  43. Comphy-2: SATA0         6 Gbps   
      Q$ Z- _5 E0 Z7 u
  44. gpio: pin GPIO23 (gpio 39) value is 1
      Y: `! l! D1 H# U8 C0 |& Y
  45. 12931 bytes read in 4 ms (3.1 MiB/s)4 R& p3 A: S. `, `0 R
  46. Enter Normal mode/ R, ~1 B& @( g# b$ Y, s2 S
  47. SCSI:  Hit any key to stop autoboot:  0
复制代码

* {0 u. j  @( {* @补充下:这样修改后,只能一次有效请删除mmc 0:3 分区的rootfs.tar.bz2和upgrade_eli_38.img文件。' g! ?, n0 m' M% [8 _  F3 l
或者直接在linux shell里面刷写新uboot: Z: o% a& [$ [4 ?" t# q

5 E. a0 q8 a/ d! [; T+ N% n
8 Y' z: Q7 R: h. M+ I; k# d. I. C( [: v' E7 \

评分

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

查看全部评分

5

主题

57

回帖

491

积分

中级渣柚V1

积分
491
发表于 2019-10-9 15:50:15 | 显示全部楼层
本帖最后由 xingjiwoniu 于 2019-10-9 16:00 编辑
2 m- V9 f( V( c6 {0 o$ U" o: T% L; J7 b; \. x4 Z; K
感谢分享

4

主题

78

回帖

706

积分

中级渣柚V2

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

7

主题

450

回帖

706

积分

中级渣柚V2

积分
706

热心会员

发表于 2019-10-9 17:09:08 | 显示全部楼层
感谢分享
/ }: g4 Z# {: M$ c5 i8 f8 X

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
7 u' n  ?; I0 I按照你这个执行不成功啊
- [# I7 S) q9 u2 ]7 e
还是提示找不到?

0

主题

12

回帖

40

积分

初级渣柚V1

积分
40
发表于 2019-10-9 20:45:54 | 显示全部楼层
顶一下顶一下+ c2 b0 d0 W1 a0 P& X9 v0 G

4

主题

114

回帖

323

积分

中级渣柚V1

积分
323
发表于 2019-10-9 20:48:03 | 显示全部楼层
tymfl 发表于 2019-10-9 20:36
7 h  P2 m& o$ y4 N2 Q还是提示找不到?
' ]( u; q3 Q- E( c2 C  O- @
是还是原样子,启动还是end Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.7 s) x+ A3 \) K& p9 h: D0 f- V
完全按照您的步骤做的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-11-5 01:12 , Processed in 0.072809 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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