找回密码
 立即注册
楼主: fhh

[教程] 自编译猫盘u-boot,解决掉IP

  [复制链接]

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-27 08:04:02 | 显示全部楼层
mynetdisk 发表于 2022-4-27 01:52
0 V; v3 ~) R9 X  r' ?刷这个成功迁移并进入群晖
1 z' I5 w5 x8 J4 [8 I" \7 K. H4 c# ^3 j
可惜重启后又出现卡 Starting kernel ... 问题
) @* z$ Z, `. R. L
哦,那应该是因为emmc引导顺序在群晖之前,但是群晖的u-boot提供的设备树与Linux不兼容。5 _6 E1 G$ ]" z* i( ]
你把emmc中的Debian抹掉就好了。

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
发表于 2022-4-27 09:13:43 | 显示全部楼层
本帖最后由 mynetdisk 于 2022-4-29 02:33 编辑 7 F# D6 W) S) J# P& N; f0 g
fhh 发表于 2022-4-27 08:044 b" L' S6 K$ ~2 L: D; m
哦,那应该是因为emmc引导顺序在群晖之前,但是群晖的u-boot提供的设备树与Linux不兼容。3 R0 t7 ?1 ]3 p: ?1 p; y. X% L
你把emmc中的De ...

/ j) X" ~  c" s5 M) x, p谢谢 F 大6 E2 l# |# z' W1 Y/ Z
我前面没描述清楚,我的情况是这样:+ a2 |! W& J9 v8 Z1 E4 x. }; U
5 l: m2 C2 g1 F$ G
1.* n  j4 f* j' |2 C5 O5 v
启动时 TTL 默认显示 syno mode,然后在 Starting kernel ... 卡住2 w$ C8 y- B8 `
按住 RESET 5S 上电启动 TTL 显示 mmc mode,能正常进 Debian
) u8 x& f8 u! Z: K- q9 I; j
' C7 _# [4 A3 ~( L2.$ c: i, {1 A; X: y
刚刷 u-boot 之后可以进群晖(也有一次刚刷完 uboot 就进不了群晖)1 t& ^- u3 C5 G5 B) |+ k! ^
之后某次重启后 syno mode 就卡在 Starting kernel ...(但 mmc mode 仍然可以进 debian)$ A, _& V5 e1 j% C
一旦出现卡 Starting kernel ...,再重启 N 次也还是卡 Starting kernel ...,直到下次刷 uboot 通常可以暂时解决9 S$ m6 y) A9 h) [8 }
- t  N, Y8 i9 \& z
3.
, d2 O% Y& a! v4 p一次 saveenv 后重启卡 Starting kernel ...,以为跟这个有关,之后试验排除了此可能【2022-04-29 修订:我又不确定了,今天试了刷 uboot 重启几次正常启动群晖的情况下,saveenv 后重启就卡 Starting kernel ... 了,也许真像你说的是 uboot 分区表有问题(从而导致 saveenv 破坏了什么东西?)】8 z8 b; i% S' v9 V+ U/ T8 \- ^
一次进 debian 后重启卡 Starting kernel ...,以为是 debian 自动修改了 uboot 环境变量,之后试验排除了此可能* i9 X0 d* t, a% k
U盘、硬盘都拔掉试过,排除了这两种设备问题的可能

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-27 10:15:13 | 显示全部楼层
mynetdisk 发表于 2022-4-27 09:13
- \( b+ H/ J) S5 Y2 r谢谢 F 大
( P# [3 W+ J9 _+ G- Q7 C我前面没描述清楚,我的情况是这样:

% p% p4 T' _, j; ?$ \看上去像是u-boot中分区表配置错误,或者是你的spi nor flash出现了故障。
$ ]( ~, o  j0 o4 Z2 F0 q# J/ @我想询问一下:& ~- w( ?$ z8 Z4 G( g" v1 f) w, Z
1.在刷我修改之前的u-boot之前(也就是在使用Soul的U-boot的时候),你会遇到这个情况吗?7 z8 o' h7 G# I7 i; S( b
2.在你卡在Starting kernel的时候,还能够进入emmc环境下的Debian吗?如果能,请问你能够在Debian下把spi flash的数据读取出来,以分析一下是否出现了错误吗?
7 |& S  a/ z: }/ E. l; Q. p: u" n如果可以的话,请提供一下无法正常启动时期的spi nor flash的备份镜像(应该是/dev目录下的各个mtdblock,以及/proc/mtd分区表),我需要根据这些信息进行分析。
% I+ V* D1 |( [0 E( Q( E5 a( d谢谢!

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
发表于 2022-4-27 10:50:00 | 显示全部楼层
本帖最后由 mynetdisk 于 2022-4-27 10:53 编辑
' ~  v# V/ T! f
fhh 发表于 2022-4-27 10:15
; o5 ?6 ^! O, S/ ~看上去像是u-boot中分区表配置错误,或者是你的spi nor flash出现了故障。
; U+ }0 P  k& c% u3 z8 ~( h1 r3 P) H我想询问一下:9 }, ]* j% |" R$ a' W
1.在刷我修改之 ...

4 S: F* M0 t0 r$ i看上去像是u-boot中分区表配置错误' E3 }# u$ c/ K( O
--- 应该不是,因为并不是换了 uboot 之后出现卡 Starting kernel ... 问题,刚刷 uboot 后通常可以用,第 N 次重启之后可能出现 Starting kernel ...,之后再重启也必然这样,只能重新刷 uboot(注:不代表一定是 uboot 这里出了错,因为每次重刷 uboot 后需要重装群晖 DSM,所以也可能是因为重装 DSM 而暂时解决了问题)
5 b. H2 X6 Y% B3 G* v0 @/ \3 ?3 @+ @# c; S# o
或者是你的spi nor flash出现了故障+ H& I* Y( n8 r% D
--- uboot bubt 命令刷写 SPI FLASH 后会不会校验呢,如果有校验,证明 FLASH 本身读写应该没问题,而是否后续 FLASH 数据出问题待确定
  o9 d4 e+ O* g8 c# F' s6 }8 P1 H7 z, w. z" y" j
在刷我修改之前的u-boot之前(也就是在使用Soul的U-boot的时候),你会遇到这个情况吗?3 j# V. l( g+ G
--- 原来的 uboot 就会,并非你的修改导致的,是在 emmc 装了 debian 之后出现的(没改 uboot 启动顺序),不知道是不是巧合4 T% x9 \; \/ s# ^3 m. R6 h/ }7 \3 R
" j: G& r; K( G$ g7 a+ I
在你卡在Starting kernel的时候,还能够进入emmc环境下的Debian吗?
3 l/ q7 q0 A$ _& x--- 能,引导群晖卡在 Starting kernel ...,而按住 RESET 5S 重新上电引导 Debian 能正常进系统' W* Q5 _2 {( y. u) m5 w8 o. y

) q: D+ v. d3 }7 p# ?. O/ O请问你能够在Debian下把spi flash的数据读取出来,以分析一下是否出现了错误吗?.7 M6 Y% }" N! ^! ^9 [5 i$ l8 d
--- 卡 Starting kernel ... 前后的 uboot 环境变量我对比过,是一样的。而整个 spi 的 flash 8M 镜像没有前后对比过,按理说除了环境变量以外其它部分应该是只读的?
: V. g/ N& y9 d  m: F, B
; n7 b, ~/ `# H; T$ `0 Z# c, m" D请提供一下无法正常启动时期的spi nor flash的备份镜像(应该是/dev目录下的各个mtdblock,以及/proc/mtd分区表$ K* p2 e3 l+ }! {. D
--- 好的,晚上回家备份

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
发表于 2022-4-29 02:34:38 | 显示全部楼层
mynetdisk 发表于 2022-4-27 09:13' x' W/ A, S. }
谢谢 F 大
( v8 m& p+ C$ Y' Y- f我前面没描述清楚,我的情况是这样:
/ n9 l2 e- {, \3 _- C6 m9 {: q
我之前说:
2 a2 g% a* q; a5 _一次 saveenv 后重启卡 Starting kernel ...,以为跟这个有关,之后试验排除了此可能
- A$ [# h# Y1 U8 J  ?2 \% X4 P6 ?
7 Y0 J5 V8 L, b7 ^+ V& x" p现在我又不确定了,今天试了刷 uboot 重启几次正常启动群晖的情况下,saveenv 后重启就卡 Starting kernel ... 了,也许真像你说的是 uboot 分区表有问题(从而导致 saveenv 破坏了什么东西?)

46

主题

617

回帖

2765

积分

中级渣柚V3

积分
2765
发表于 2022-4-29 06:31:27 | 显示全部楼层
mynetdisk 发表于 2022-4-27 10:50
+ V3 R7 a- P+ u8 W看上去像是u-boot中分区表配置错误
  r8 `3 H8 J. P, s--- 应该不是,因为并不是换了 uboot 之后出现卡 Starting kernel ...  ...
* u! K# Q+ K4 ~$ Q' u. h
做设计这么多年,spi flash 从来没有出现过问题。所有spi flash故障都可以用其他问题来解释。
9 W" A6 |( ]9 r0 P这个应该可以排除。

46

主题

617

回帖

2765

积分

中级渣柚V3

积分
2765
发表于 2022-4-29 06:39:18 | 显示全部楼层
fhh 发表于 2022-4-26 18:08
9 o7 e4 _1 p* Z1 \U-boot有一部分问题。# }/ m& }/ u7 V  u) E1 Z; Q
我的做法是修改设备树,让Linux在重新初始化网卡的时候把功率拉到最大。
! U- N2 s/ n3 F, o因为没有 ...
$ `: s2 Z6 Z# i9 Q3 v) C9 J: r
soul确实通过uboot修改了掉IP问题。不过没有开放。当时我测试过。具体改了啥不太清楚。还是要通过手册来查找哪里出的问题,慢慢来试试。

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-29 08:06:14 | 显示全部楼层
QQ66566 发表于 2022-4-29 06:39# ^  n# W" N6 w; n: v
soul确实通过uboot修改了掉IP问题。不过没有开放。当时我测试过。具体改了啥不太清楚。还是要通过手册来查 ...
, q. C# H2 }% N/ G2 A$ k# y0 W; L
是的。& c1 F& n, t/ X' G# p0 o
只要u-boot不初始化PHY,其上电以后的默认配置不被覆盖,就不会掉IP。* b5 d2 }2 y* T/ S& C9 t/ H
但是代价就是U-boot无法使用网卡,以及这其实算是一种……“鸵鸟”解法?( [5 g1 I) p- i" p0 z
我的解法是修改设备树,使得它被初始化后,再次把信号增益数据填入。0 E; ?0 U5 e2 k5 O. X
我认为这样才算是这个问题的真正正确解法。

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-29 08:07:28 | 显示全部楼层
本帖最后由 fhh 于 2022-4-29 08:16 编辑   c5 a2 E' E' U0 v
QQ66566 发表于 2022-4-29 06:31
3 W" t! B! {- M. Y; U9 J0 I1 @) \做设计这么多年,spi flash 从来没有出现过问题。所有spi flash故障都可以用其他问题来解释。
  ]5 u) _& J5 b; d" K) }这个应该可 ...
% Y* q2 x5 ]. Q$ ]! m7 `
我的意思是,设备树中关于spi的分区配置错误,导致群晖把数据写入了其他的分区中。我在观察他的分区表的时候,发现u-boot中的分区配置,与手动dd出来的分区表……并不一致。, s  E% K, V( |2 }$ \
按照设备树中定义的分区表dd出来的分区,全都是无效数据。5 A( S0 ~( \) i- n1 Q
换而言之,u-boot通过设备树暴露给群晖的分区,本身就是错误的。
: o( S! W1 R, s1 P8 ^我现在希望通过他的dump来分析u-boot和群晖究竟采取了哪一份分区表,以此来进行修复。7 ~1 R) d6 w: X' _2 B- }
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-14 07:19 , Processed in 0.698571 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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