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

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

[复制链接]

5

主题

79

回帖

424

积分

中级渣柚V1

积分
424
tymfl 发表于 2019-10-9 15:22:10 | 显示全部楼层 |阅读模式 IP:–重庆–重庆 长城宽带
本帖最后由 tymfl 于 2019-10-11 23:47 编辑
; `( D4 o' j5 p2 B; o6 m' g6 u
  S. @! V7 `. @7 u5 i' ^入手一台伊拉克成色猫盘故障机,连好ttl上电以后
6 ^" v0 B$ N) b) y- {$ C
  1. TIM-1.0
    * m. l! d4 U* i+ G" O
  2. WTMI-armada-17.10.1-7 R/ V/ ?: A; d$ z, O, ~5 f: P  _
  3. .........
    * d/ g1 `( s; i
  4. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB
    0 }. Y* P! X* v4 f* Q
  5. *** Warning - bad CRC, using default environment! n; j. c7 d1 r: V9 F2 F
  6. 1 ?3 G1 \$ ?& K
  7. MMC:   for ssg ledsdhci@d8000: 0
    5 h+ a) F5 ]2 G; ]9 J6 z! i
  8. ** File not found boot/armada-3720-customer0.dtb **( t! w! l5 g0 B! A7 r
  9. ** File not found boot/armada-3720-customer0-minifs.dtb **; x# i, p3 ~3 q3 B, B
  10. test_mmc_ext4_exist ==1
    $ \2 n. g2 D% Q6 [2 Z1 A
  11. Comphy-0: UNCONNECTED  
    $ G9 V' p% p6 {) x
  12. Comphy-1: UNCONNECTED  
    ' o2 b2 z5 N' Z% \
  13. Comphy-2: UNCONNECTED  , E& A& H7 d$ p. X4 a# {
  14. gpio: pin GPIO23 (gpio 39) value is 1
    , p0 [; q, k8 a0 J, b. u! C
  15. ** File not found boot/armada-3720-customer0.dtb **
    + U# o9 R( E6 V- B$ N; v2 y  f. M" |
  16. ** File not found boot/armada-3720-customer0-minifs.dtb **
    - D) s; i5 K  j; m* _
  17. Enter Recovery mode
      R$ H& k" g" Y) R$ @  L
  18. SCSI:  Hit any key to stop autoboot:  0
复制代码
发现无法找到dtd文件,进入了恢复模式,直接启动或按住reset启动均启动失败,启动信息如下:
0 Z' B' _- f* g' V* J
  1. Marvell>> boot
    ! T* w  `# A$ G! z+ J3 E
  2. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB2 `  Y" w+ \5 }+ U& m4 ^
  3. device 0 offset 0xcc000, size 0x434000
    0 s( ]9 b/ P  R# Q; p
  4. SF: 4407296 bytes @ 0xcc000 Read: OK
    2 ?# u, ?: Z. J6 X- Y
  5. gpio: pin GPIO21 (gpio 37) value is 1
    ) n9 E, x4 r4 W) R. l* R
  6. gpio: pin GPIO22 (gpio 38) value is 1$ ?2 m% g' d, ^8 M/ |
  7. Uncompressed size: 8992256 = 0x8936004 N6 H# `8 N3 \; N3 T/ D% f
  8. device 0 offset 0xc8000, size 0x40007 E% B( S8 h) H4 H( }
  9. SF: 16384 bytes @ 0xc8000 Read: OK
    6 p; B' l6 K. y* I# G
  10. ## Flattened Device Tree blob at 04f00000
    # Q% `' A! W2 c3 V* r7 X
  11.    Booting using the fdt blob at 0x4f00000
    ' |! n. `, l' J6 V) r* w
  12.    Using Device Tree in place at 0000000004f00000, end 0000000004f05df8
    ( Q+ l  P2 x! {2 n  u

  13. 5 a. P0 G- A* a2 D& [
  14. Starting kernel ...
    : F  a. Q. {; A# \3 _+ K

  15. 9 f, u8 h$ S; H% d  _% l- }
  16. .........
    3 Z# y( }0 `. g2 \7 T6 _& Z4 b5 P% k
  17. [    2.786623]  mmcblk0: p1 p2 p35 S' C; Q- Z5 I: N, y! A- u
  18. [    2.801201] Starting init: /sbin/init exists but couldn't execute it (error -5)
    , c0 r2 o# |! u8 P
  19. [    2.813804] cramfs: bad compressed blocksize 42942981358 k5 r! y9 H( A. D( F4 c! W" H, K
  20. [    2.819206] Starting init: /bin/sh exists but couldn't execute it (error -5)
    + ~/ e3 j" L# T" }3 e5 g
  21. [    2.826452] Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
    + J4 T: A0 L1 `  P- l
  22. [    2.840101] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #212 L* t# J  Q; w! Z$ A9 {$ \2 E
  23. [    2.847399] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT)! P8 Z9 b, u8 {1 b  W+ t
  24. [    2.854957] Call trace:
    & |2 j  R1 S$ f* |. k; L$ d
  25. [    2.857401] [<ffffffc000089b10>] dump_backtrace+0x0/0x108  ?% }$ i9 l6 p: s
  26. [    2.863150] [<ffffffc000089c2c>] show_stack+0x14/0x20
    7 a$ L4 G% D  L/ w, L$ U* r" F
  27. [    2.868371] [<ffffffc00029f280>] dump_stack+0x98/0xb8
    ' q4 U, \/ d7 U. f% w+ {
  28. [    2.873592] [<ffffffc00012b32c>] panic+0xd4/0x218
    - B! p; K3 T* \- y" U1 U
  29. [    2.878454] [<ffffffc000621d0c>] kernel_init+0xdc/0xe0
    * g+ u' N* Q# S% V; ]3 b) z
  30. [    2.883761] [<ffffffc000085dd0>] ret_from_fork+0x10/0x40+ t% L  }* g2 Z2 ], |8 E3 v: n: D6 k
  31. [    2.888890] CPU0: stopping
    ( r- f* |2 `: Z4 X8 r  U1 B
  32. [    2.891949] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.4.52-armada-17.10.1 #21" G- e  t4 h) P% v* ~( P- D
  33. [    2.899505] Hardware name: Marvell Armada 3720 for Eli-Cat DB-88F3720-DDR3 (DT)
    1 H4 c/ x3 E% L2 X) f, Q7 s
  34. [    2.907154] Call trace:
    : W' \" Y1 [& l  a. q2 Z$ x/ t
  35. [    2.909861] [<ffffffc000089b10>] dump_backtrace+0x0/0x108
    : v4 l3 k' o) o9 N  u+ i, `: T) J+ h
  36. [    2.915269] [<ffffffc000089c2c>] show_stack+0x14/0x20' R& d  {% ^) {4 n
  37. [    2.920580] [<ffffffc00029f280>] dump_stack+0x98/0xb8
    / v0 b3 J& n( m3 L
  38. [    2.925892] [<ffffffc00008efc0>] handle_IPI+0x190/0x1a0
    3 L/ k0 I% m/ P
  39. [    2.931030] [<ffffffc000082598>] gic_handle_irq+0x78/0x168
    - Q9 N1 j" _% ?0 B" L" R3 `7 [4 H
  40. [    2.936969] Exception stack(0xffffffc0008abda0 to 0xffffffc0008abed0)- u, a& Q. Y9 L5 S
  41. [    2.943547] bda0: ffffffc0008ae000 0000008000000000 ffffffc0008abf00 ffffffc0000868401 j; v1 p7 B0 b: Z- P% H# c
  42. [    2.951467] bdc0: 0000000000000145 ffffffc000890000 0000000000000000 0000000000000000
    9 _+ y( a1 k( B
  43. [    2.959567] bde0: 0000000000000001 0000000000000000 00000000000001c0 0100000000000000' @3 s! n7 R* v6 J: v5 z, z
  44. [    2.967757] be00: 0000000000000001 ffffffc01bfcddc0 00000000fffeddda ffffffc0008abe80) Y% m: x. a  }' n6 B% |
  45. [    2.975676] be20: 00000000000006d0 0000000000000000 0000000000000000 00000000058e8eff
    9 p! Y& ?. R& E9 t) z6 ?$ \
  46. [    2.983954] be40: ffffffc00426c260 00000000000075af 00000000000ba7a2 0000000000000000
    # F6 a, n4 s) F+ O( D% ]
  47. [    2.991876] be60: ffffff8000058548 ffffffc0008ae000 ffffffc0008ae8d8 ffffffc00088cad8' Q# g) G  I! S9 F- G: p
  48. [    2.999886] be80: ffffffc0008abf20 ffffffc000631000 ffffffc000890000 ffffffc0008ae0007 l7 {& U) c: i5 R/ b2 @7 q
  49. [    3.007986] bea0: ffffffc0008a8000 0000000000000000 0000000000000000 ffffffc0008abf00" |" n& i' T7 T' U
  50. [    3.016353] bec0: ffffffc00008683c ffffffc0008abf00
    ; o' U! l  t4 [2 b! g
  51. [    3.021215] [<ffffffc000085700>] el1_irq+0x80/0xf8
    ; L; U8 f! \2 s+ N# y3 j1 Q/ l* n
  52. [    3.026168] [<ffffffc0000d8164>] default_idle_call+0x1c/0x380 z# T5 A: O8 l0 K  w8 _
  53. [    3.032373] [<ffffffc0000d8398>] cpu_startup_entry+0x1c8/0x2182 |3 F& G1 F! H& y! ]4 Z
  54. [    3.038411] [<ffffffc000621c20>] rest_init+0x88/0x98+ n) b8 n4 k+ `3 O1 B7 Q
  55. [    3.043192] [<ffffffc00084d950>] start_kernel+0x384/0x398% D+ L0 n% G2 W$ s( ~" J6 D
  56. [    3.048948] [<0000000000627000>] 0x6270002 x; |# q% r" G2 {% x, O- D
  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 下获取的一些信息
/ W  d8 ?7 {4 H) M: s- U9 ^
  1. # 查看文件夹 发现boot为空
    5 B3 r' K0 H" G) F! x% s; H
  2. Marvell>> ext4ls mmc 0:1 /boot
    0 f, L: h: b' o# i. H, ]; A
  3. <DIR>       4096 .7 I, `$ t! q$ U2 @" t7 t
  4. <DIR>       4096 ..' J9 I2 K# T: [, G2 J2 H

  5. . a) A6 t1 J' M
  6. # 无法启动usb
    & w$ m7 v4 C! [# X$ v7 A
  7. Marvell>> usb start' q& @9 O5 n  O; H3 m4 p
  8. starting USB...# p# q9 U( g4 V
  9. No controllers found
复制代码
猜测可能是误删了/boot下的文件导致的,无法通过U盘启动
% N2 ?* ?6 X  @$ j% o$ h

8 j. w  t2 p7 C- j7 M                               
登录/注册后可看大图
6 B- V" `8 ?3 R  j6 p* P& V
启动进入uboot输入如下命令
% {, C; Z* j8 Y# I
  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;") ]: Y9 d- h) |! F) [4 E
  2. setenv bootargs "console=ttyMV0,115200 root=/dev/mmcblk0p1 rootwait rw init=/bin/sh"
    . v6 o; S" _0 ^1 A7 o% k
  3. boot
    1 p. i6 w% C! N, I
  4. booti 0x5000000 - 0x4f00000
复制代码
即可进入linux shell
6 Y3 B. `' t- ]# x  X) V
  1. # 查看存储设备
    4 x% ?2 Y; S- V
  2. ls -l /dev/sd/ i% p) b5 p4 \. n$ T
  3. ( Q" v% P+ T8 y) ^4 U
  4. # 挂载
    & v( U3 {& C3 C: c
  5. mount -t proc /proc. z) J& v: d# O2 o
  6. mount /dev/sda4 /mnt; W! c9 e) [7 f. ^
  7. 1 z) u2 M0 L  I" Y
  8. # 拷贝文件
    ' ?% p6 `3 c1 [) o
  9. cd /mnt
    6 Q; P0 K6 D7 [- p+ s) M* q
  10. cp armada-3720-customer0.dtb /boot/
    0 ^7 m6 c; `8 ]- }
  11. cp Image /boot/2 T0 n; ]+ u1 N
  12. . s# F% l! D3 v
  13. # 退出
    * @: w; a; o) ^9 E0 Y1 K
  14. exit
复制代码
重新插拔电源后恢复正常,uboot信息如下:
# P8 M$ L8 l/ O$ h6 a8 n5 Y; h
  1. TIM-1.0) i, V. X# y5 e# P- C: z
  2. WTMI-armada-17.10.1-
    & X/ |) K% B0 L' K) x
  3. ENTER init_ddrgen
    $ @, w) X) K+ }% B7 j
  4. DDR_TOPOLOGY is 0 :        DDR3, 1CS 512M) y  S& X  j( M% Z9 G
  5. WTMI_CLOCK=2
      f! A4 K2 ]; L3 K, l  V

  6. ' W- ~2 X: G; z5 A) e" I7 f3 }
  7. Fill memory before self refresh...done
    ! ~. L! U: Q! A8 B  ^- V( |

  8. 9 w+ z: V4 N' c1 I1 t& Z$ I% t8 B
  9. Now in Self-refresh Mode' P! u/ l, o- V
  10. Restore CAS Read and Write Latency
    6 b$ N9 _( N6 \# p0 Z/ Z  ?
  11. Restore termination values to original values
    4 |! W1 i+ F) Y4 T/ ~8 `
  12. Exited self-refresh ...
    9 o( c% u- p: E  e

  13. ; A( R5 b* H& b( j
  14. DLL TUNING! o* ~' q: B. k/ U' D* ^
  15. ==============' `) @' J) Y' P! _$ y2 ?
  16.    DLL 0xc0001050[21:16]: [0,31,18]8 k) c' }8 [' M0 {2 [  S
  17.    DLL 0xc0001050[29:24]: [0,2b,15]
    - b4 B, f$ v+ @- o  j6 q
  18.    DLL 0xc0001054[21:16]: [0,32,19]
    9 Q" Q3 a% Z$ I8 N4 z' g. L
  19.    DLL 0xc0001054[29:24]: [0,2d,16]/ `. Y, V- o9 w1 U. I
  20.    DLL 0xc0001074[21:16]: [0,3f,1f]6 K0 g& X  o; G2 t9 B, A
  21.    DLL 0xc0001074
    ) G+ ]3 O4 W8 b1 M% \  L
  22. + ?4 D1 I6 u6 y% b! W/ R8 z
  23. U-Boot 2017.03-armada-17.10.1 (Mar 07 2018 - 17:11:33 +0800)0 r' u5 s% N5 Z0 |$ _8 h
  24. 0 a  m, e5 K( [) [5 O. `2 \* R
  25. Model: Marvell Armada 3720 for Eli Cat
    1 a' F/ f  D# k0 k* z" z' e
  26.        CPU    @ 1000 [MHz]& e5 j% \/ c7 R, D) b
  27.        L2     @ 800 [MHz]$ @; H9 @" B& f- }8 I
  28.        TClock @ 200 [MHz]; y3 b/ m; n9 I, y. [# W3 [
  29.        DDR    @ 800 [MHz]) B' _$ E/ S' M) b/ H, [! [
  30. I2C:   ready
    . S: }4 h2 T* J- [& d; ?% F
  31. DRAM:  512 MiB6 v. L/ q& G  `5 O
  32. U-Boot DT blob at : 000000001f73a520
    ( E/ g  M2 ^0 G4 Y/ `( B2 z
  33. SF: Detected GD25LQ64C with page size 256 Bytes, erase size 4 KiB, total 8 MiB
    ' `* M4 l# t% W  q
  34. *** Warning - bad CRC, using default environment
    : ^. V+ G+ i- Z# R+ K
  35. ' ~( ~1 V5 B! W
  36. MMC:   for ssg ledsdhci@d8000: 0; E# E; V; f) p# z8 J- Z5 ^$ ~
  37. 12931 bytes read in 16 ms (789.1 KiB/s)
    - l1 l7 i8 ^! U/ x; G  |
  38. gpio: pin GPIO23 (gpio 39) value is 1& _8 h2 c8 f- s: C
  39. gpio: pin GPIO23 (gpio 39) value is 1
    ' R, n- W6 I: X! z6 u1 [8 {& t; K7 o: ~
  40. gpio: pin GPIO23 (gpio 39) value is 1
    5 M) p. D3 l6 j8 _# R
  41. Comphy-0: USB3_HOST0    5 Gbps   
    2 v/ y7 ^8 f8 S3 O8 P2 G
  42. Comphy-1: SGMII0        1.25 Gbps
    - C4 @4 ^% H9 x6 Q4 E; ?9 D0 g
  43. Comphy-2: SATA0         6 Gbps   
    7 V8 K9 m2 K  K" y% @8 W" l
  44. gpio: pin GPIO23 (gpio 39) value is 1/ m* k$ ?* ^! i
  45. 12931 bytes read in 4 ms (3.1 MiB/s)7 `: z5 l4 D- `  U; ]8 Y- [& v" k
  46. Enter Normal mode$ v# k% I4 L( x5 C, P# W8 B
  47. SCSI:  Hit any key to stop autoboot:  0
复制代码
8 U6 T& e! G# X" J; V9 e
补充下:这样修改后,只能一次有效请删除mmc 0:3 分区的rootfs.tar.bz2和upgrade_eli_38.img文件。
. D8 a5 I; v& q2 h' i或者直接在linux shell里面刷写新uboot2 o) b" n5 `9 {
: S8 A/ [/ @/ }! W: d/ F& y
, D4 Q& S5 c6 i" j$ k
9 V& D2 N" A# T( n3 K

评分

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

查看全部评分

5

主题

57

回帖

491

积分

中级渣柚V1

积分
491
xingjiwoniu 发表于 2019-10-9 15:50:15 | 显示全部楼层 IP:–江苏–宿迁 移动
本帖最后由 xingjiwoniu 于 2019-10-9 16:00 编辑
) {) c" B: J5 S- }2 ~
, v+ R1 z, q: P; x2 D感谢分享

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:–广东–东莞 电信
感谢分享
2 s' S- {+ M7 a# w

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
; V* `# ^$ Y" g5 G按照你这个执行不成功啊

" [: ~; C3 _& |0 V$ ^8 O( a还是提示找不到?

0

主题

12

回帖

40

积分

初级渣柚V1

积分
40
kuangogrish 发表于 2019-10-9 20:45:54 | 显示全部楼层 IP:–上海–上海–杨浦区 电信
顶一下顶一下
% q) f1 w( U8 v1 Q5 a! a

4

主题

114

回帖

323

积分

中级渣柚V1

积分
323
GokuSun 发表于 2019-10-9 20:48:03 | 显示全部楼层 IP:–安徽–阜阳–颍州区 电信
tymfl 发表于 2019-10-9 20:36' l% ]- N* [, D! _! l" E6 u
还是提示找不到?

) U- R: d3 W6 l% V% `是还是原样子,启动还是end Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
% }, Q) t. W, V1 p% o4 y8 Q: \完全按照您的步骤做的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-6-12 00:26 , Processed in 0.084400 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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