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

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

  [复制链接]

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| fhh 发表于 2022-4-27 08:04:02 | 显示全部楼层 IP:–浙江–杭州 移动
mynetdisk 发表于 2022-4-27 01:52% w! @. m$ _6 Y$ r" u( Z, F
刷这个成功迁移并进入群晖
4 d, k, u# R+ \9 \2 J: u% }4 S3 s# j1 @0 l. [
可惜重启后又出现卡 Starting kernel ... 问题

3 Q: w& T& ~* C7 H- J哦,那应该是因为emmc引导顺序在群晖之前,但是群晖的u-boot提供的设备树与Linux不兼容。
/ P7 r/ W( Z$ {你把emmc中的Debian抹掉就好了。

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
mynetdisk 发表于 2022-4-27 09:13:43 | 显示全部楼层 IP:–福建–厦门 电信
本帖最后由 mynetdisk 于 2022-4-29 02:33 编辑 3 h* n* ?- j, ~( {& T
fhh 发表于 2022-4-27 08:04
: r- G* D2 Q8 K* P/ ~( D8 i哦,那应该是因为emmc引导顺序在群晖之前,但是群晖的u-boot提供的设备树与Linux不兼容。8 R( @) M/ m+ r' T
你把emmc中的De ...

) \0 A' j& r3 W) m6 Z7 ~$ C谢谢 F 大6 ^: z: f" ]& G2 }' c9 }+ Y
我前面没描述清楚,我的情况是这样:7 c& k: z- p- X$ m: P- }/ R

7 i* w2 ?9 c+ v8 G1.8 g, b5 s+ w0 V  K# m! J' O
启动时 TTL 默认显示 syno mode,然后在 Starting kernel ... 卡住
; T- h; a# t) ]按住 RESET 5S 上电启动 TTL 显示 mmc mode,能正常进 Debian
1 K9 D2 m& U: K6 @7 R6 g
0 m# \; j; k; ~( Q7 K2.! E4 Z' y* T0 Y" m0 P% u
刚刷 u-boot 之后可以进群晖(也有一次刚刷完 uboot 就进不了群晖)
# J. g: m. \8 c: E* U' h: j6 W之后某次重启后 syno mode 就卡在 Starting kernel ...(但 mmc mode 仍然可以进 debian), d4 F6 v1 [0 V( S- ^
一旦出现卡 Starting kernel ...,再重启 N 次也还是卡 Starting kernel ...,直到下次刷 uboot 通常可以暂时解决
6 {4 M# [# z9 J* H6 h6 u
: i+ h0 k" P) e0 v3.6 X6 @6 ^$ x; }; {
一次 saveenv 后重启卡 Starting kernel ...,以为跟这个有关,之后试验排除了此可能【2022-04-29 修订:我又不确定了,今天试了刷 uboot 重启几次正常启动群晖的情况下,saveenv 后重启就卡 Starting kernel ... 了,也许真像你说的是 uboot 分区表有问题(从而导致 saveenv 破坏了什么东西?)】
9 ?% J% `* m) H7 B一次进 debian 后重启卡 Starting kernel ...,以为是 debian 自动修改了 uboot 环境变量,之后试验排除了此可能# T' x. c, A; W- I: _7 C* c
U盘、硬盘都拔掉试过,排除了这两种设备问题的可能

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| fhh 发表于 2022-4-27 10:15:13 | 显示全部楼层 IP:–浙江–杭州 移动
mynetdisk 发表于 2022-4-27 09:13
" ?# t- X- b* b- L谢谢 F 大
; \  ?, K" _9 U3 V! u/ c3 [我前面没描述清楚,我的情况是这样:

  O7 ~+ W2 |; U5 r; f: q2 f看上去像是u-boot中分区表配置错误,或者是你的spi nor flash出现了故障。
3 P/ R3 w8 q1 _2 |# v我想询问一下:  P! U  u$ u( `" ?  P
1.在刷我修改之前的u-boot之前(也就是在使用Soul的U-boot的时候),你会遇到这个情况吗?+ ^4 c4 H: {: S* U. J2 E% @1 C
2.在你卡在Starting kernel的时候,还能够进入emmc环境下的Debian吗?如果能,请问你能够在Debian下把spi flash的数据读取出来,以分析一下是否出现了错误吗?4 j+ {$ t! y& f3 u: o
如果可以的话,请提供一下无法正常启动时期的spi nor flash的备份镜像(应该是/dev目录下的各个mtdblock,以及/proc/mtd分区表),我需要根据这些信息进行分析。
/ O7 m" P4 ?: @) g谢谢!

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
mynetdisk 发表于 2022-4-27 10:50:00 | 显示全部楼层 IP:–福建–厦门 电信
本帖最后由 mynetdisk 于 2022-4-27 10:53 编辑 0 Y+ m; |$ P9 I! d- C
fhh 发表于 2022-4-27 10:15! o+ ]9 L$ @7 F6 O3 O: _
看上去像是u-boot中分区表配置错误,或者是你的spi nor flash出现了故障。! s( H: j) d* ]; z
我想询问一下:
9 ?2 s8 K- n9 G$ M: P, S3 o1.在刷我修改之 ...
: q- ]- m: j3 O) B" N$ f
看上去像是u-boot中分区表配置错误: x) ~; g, J  j4 [: w4 K& y
--- 应该不是,因为并不是换了 uboot 之后出现卡 Starting kernel ... 问题,刚刷 uboot 后通常可以用,第 N 次重启之后可能出现 Starting kernel ...,之后再重启也必然这样,只能重新刷 uboot(注:不代表一定是 uboot 这里出了错,因为每次重刷 uboot 后需要重装群晖 DSM,所以也可能是因为重装 DSM 而暂时解决了问题)
5 c" ~* G7 V8 x" z
9 T0 d1 B, \, e5 g. i- m$ U  x# ?或者是你的spi nor flash出现了故障- ^3 i1 R! d3 G
--- uboot bubt 命令刷写 SPI FLASH 后会不会校验呢,如果有校验,证明 FLASH 本身读写应该没问题,而是否后续 FLASH 数据出问题待确定' P# _' T. D; f& _# E6 n, B, @/ \
6 T8 t# v9 A8 Y- a' @
在刷我修改之前的u-boot之前(也就是在使用Soul的U-boot的时候),你会遇到这个情况吗?
- d2 D( Z( k7 H+ ?% Z--- 原来的 uboot 就会,并非你的修改导致的,是在 emmc 装了 debian 之后出现的(没改 uboot 启动顺序),不知道是不是巧合, f6 z0 }0 \0 Z- \" E/ ?
0 s4 i* |  s; Q; t/ t0 U  y
在你卡在Starting kernel的时候,还能够进入emmc环境下的Debian吗?% w, w0 V4 P6 s' p5 b7 b
--- 能,引导群晖卡在 Starting kernel ...,而按住 RESET 5S 重新上电引导 Debian 能正常进系统$ Z( t& B- x5 R( d! B

, R( f. T. G( c请问你能够在Debian下把spi flash的数据读取出来,以分析一下是否出现了错误吗?.
5 \" y5 ]- \' b; h7 N) j6 U--- 卡 Starting kernel ... 前后的 uboot 环境变量我对比过,是一样的。而整个 spi 的 flash 8M 镜像没有前后对比过,按理说除了环境变量以外其它部分应该是只读的?
) R; f' O/ R" e0 t
2 `, t6 p7 k8 x' y' X' Z, e请提供一下无法正常启动时期的spi nor flash的备份镜像(应该是/dev目录下的各个mtdblock,以及/proc/mtd分区表
, N* W) B7 x; ~5 {& Y5 r0 F) F--- 好的,晚上回家备份

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
mynetdisk 发表于 2022-4-29 02:34:38 | 显示全部楼层 IP:–福建–厦门 电信
mynetdisk 发表于 2022-4-27 09:13# K! B8 i! a! T8 y4 S3 i5 V
谢谢 F 大8 g% r2 l; |2 ]% X0 E; P
我前面没描述清楚,我的情况是这样:
5 S; d' d+ `9 ?
我之前说:
. A$ J& f$ e. S/ p一次 saveenv 后重启卡 Starting kernel ...,以为跟这个有关,之后试验排除了此可能
" U. K: v; s) V1 P: M% R0 O+ R0 Z- y  |
现在我又不确定了,今天试了刷 uboot 重启几次正常启动群晖的情况下,saveenv 后重启就卡 Starting kernel ... 了,也许真像你说的是 uboot 分区表有问题(从而导致 saveenv 破坏了什么东西?)

46

主题

617

回帖

2765

积分

中级渣柚V3

积分
2765
QQ66566 发表于 2022-4-29 06:31:27 | 显示全部楼层 IP:–天津–天津 联通
mynetdisk 发表于 2022-4-27 10:50
3 B8 x' x# l9 {+ L! n看上去像是u-boot中分区表配置错误% p- X7 E% E5 Y
--- 应该不是,因为并不是换了 uboot 之后出现卡 Starting kernel ...  ...
# [) ?# _" U4 b  ^) [1 E. }
做设计这么多年,spi flash 从来没有出现过问题。所有spi flash故障都可以用其他问题来解释。
0 B( d# |3 g2 O: A这个应该可以排除。

46

主题

617

回帖

2765

积分

中级渣柚V3

积分
2765
QQ66566 发表于 2022-4-29 06:39:18 | 显示全部楼层 IP:–天津–天津 联通
fhh 发表于 2022-4-26 18:08
" z! H3 j; `# A' I$ NU-boot有一部分问题。
5 ]! p. v  q" B: |3 }( l我的做法是修改设备树,让Linux在重新初始化网卡的时候把功率拉到最大。0 u. \% V  L' @- A5 n" u
因为没有 ...
7 }" Z$ t0 \- A; `: x& X& K" D
soul确实通过uboot修改了掉IP问题。不过没有开放。当时我测试过。具体改了啥不太清楚。还是要通过手册来查找哪里出的问题,慢慢来试试。

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| fhh 发表于 2022-4-29 08:06:14 | 显示全部楼层 IP:–浙江–杭州 移动
QQ66566 发表于 2022-4-29 06:39
4 z  z7 g8 r; O9 X& d5 d+ psoul确实通过uboot修改了掉IP问题。不过没有开放。当时我测试过。具体改了啥不太清楚。还是要通过手册来查 ...
' X" ^+ R4 K! G+ r( s, L1 ~6 _5 ^
是的。4 ?9 l( |( K5 u# w  k0 z; l
只要u-boot不初始化PHY,其上电以后的默认配置不被覆盖,就不会掉IP。
2 b- h1 w* X5 J3 E$ m但是代价就是U-boot无法使用网卡,以及这其实算是一种……“鸵鸟”解法?
5 R" C/ l* E, M, A' E我的解法是修改设备树,使得它被初始化后,再次把信号增益数据填入。: k+ ~. a. D0 o$ r1 A
我认为这样才算是这个问题的真正正确解法。

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| fhh 发表于 2022-4-29 08:07:28 | 显示全部楼层 IP:–浙江–杭州 移动
本帖最后由 fhh 于 2022-4-29 08:16 编辑 ; L" Z; G& G. L! F! h
QQ66566 发表于 2022-4-29 06:31/ X4 e" n' ]) B3 V$ A4 {
做设计这么多年,spi flash 从来没有出现过问题。所有spi flash故障都可以用其他问题来解释。
, r- b( O4 B: i+ V这个应该可 ...

; c1 `" t6 t  Z* c+ o" Y. `- s我的意思是,设备树中关于spi的分区配置错误,导致群晖把数据写入了其他的分区中。我在观察他的分区表的时候,发现u-boot中的分区配置,与手动dd出来的分区表……并不一致。
& @3 |* j+ b; U0 i- |2 b7 K9 N1 z按照设备树中定义的分区表dd出来的分区,全都是无效数据。
( x% K& |0 n  L+ @换而言之,u-boot通过设备树暴露给群晖的分区,本身就是错误的。$ ?% Y1 m2 |4 o
我现在希望通过他的dump来分析u-boot和群晖究竟采取了哪一份分区表,以此来进行修复。; s& B  \- B) M/ b& F* |
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-6-27 05:38 , Processed in 0.068497 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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