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

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

  [复制链接]

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| fhh 发表于 2022-4-27 08:04:02 | 显示全部楼层 IP:–浙江–杭州 移动
mynetdisk 发表于 2022-4-27 01:52- t6 l+ C7 m+ _: D: e; h5 K2 F
刷这个成功迁移并进入群晖7 a7 F0 h9 }8 {" ]
' x3 Z! B( Z; O9 I
可惜重启后又出现卡 Starting kernel ... 问题

+ e! O  b" Q4 w哦,那应该是因为emmc引导顺序在群晖之前,但是群晖的u-boot提供的设备树与Linux不兼容。& K* \- f3 J! [- L  S
你把emmc中的Debian抹掉就好了。

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
mynetdisk 发表于 2022-4-27 09:13:43 | 显示全部楼层 IP:–福建–厦门 电信
本帖最后由 mynetdisk 于 2022-4-29 02:33 编辑
, r7 y. b; J! |. J
fhh 发表于 2022-4-27 08:04
& }7 n  X+ L8 P+ F6 ~哦,那应该是因为emmc引导顺序在群晖之前,但是群晖的u-boot提供的设备树与Linux不兼容。
( a7 L) v- h9 e) @/ ^. `9 o你把emmc中的De ...
4 i. }9 A( {% }
谢谢 F 大
# e9 q) G6 _$ x  N我前面没描述清楚,我的情况是这样:
% B4 Y3 ?. l# C% r- {' X4 g7 @; ]9 W+ E' C( O
1.
# W" B1 k7 m  v" D启动时 TTL 默认显示 syno mode,然后在 Starting kernel ... 卡住
) K& t( A" Z9 ?0 C* r0 }按住 RESET 5S 上电启动 TTL 显示 mmc mode,能正常进 Debian
$ W' ^( ?6 _, ]- ~, ^3 I  |5 W, m; m- F5 B8 `
2.) p* H2 I: {8 x' i9 M
刚刷 u-boot 之后可以进群晖(也有一次刚刷完 uboot 就进不了群晖)7 r7 l2 C4 I" C+ g, W9 z" X* f- e
之后某次重启后 syno mode 就卡在 Starting kernel ...(但 mmc mode 仍然可以进 debian)
: n) L, i; x6 _, [% I一旦出现卡 Starting kernel ...,再重启 N 次也还是卡 Starting kernel ...,直到下次刷 uboot 通常可以暂时解决0 G, j( I* R  i( D; Z
. P- D. x: n- G5 [! D
3.. o, ]; e5 e# P# Y* D
一次 saveenv 后重启卡 Starting kernel ...,以为跟这个有关,之后试验排除了此可能【2022-04-29 修订:我又不确定了,今天试了刷 uboot 重启几次正常启动群晖的情况下,saveenv 后重启就卡 Starting kernel ... 了,也许真像你说的是 uboot 分区表有问题(从而导致 saveenv 破坏了什么东西?)】4 a2 B: Z+ K. v$ b7 E! }
一次进 debian 后重启卡 Starting kernel ...,以为是 debian 自动修改了 uboot 环境变量,之后试验排除了此可能# u8 }8 q: i' i: G) N
U盘、硬盘都拔掉试过,排除了这两种设备问题的可能

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| fhh 发表于 2022-4-27 10:15:13 | 显示全部楼层 IP:–浙江–杭州 移动
mynetdisk 发表于 2022-4-27 09:13! j, ~" [  g9 q' n
谢谢 F 大
: t) l8 `. f1 _我前面没描述清楚,我的情况是这样:

  z4 w) l) }% A( x$ e4 v  ^3 _3 w看上去像是u-boot中分区表配置错误,或者是你的spi nor flash出现了故障。
/ w9 s$ K, K* u" |$ F4 G我想询问一下:
* ?1 F& ?5 Q% W1.在刷我修改之前的u-boot之前(也就是在使用Soul的U-boot的时候),你会遇到这个情况吗?/ T5 f0 Y0 p. v
2.在你卡在Starting kernel的时候,还能够进入emmc环境下的Debian吗?如果能,请问你能够在Debian下把spi flash的数据读取出来,以分析一下是否出现了错误吗?! X5 E/ w& n) y* u4 E! q% Y
如果可以的话,请提供一下无法正常启动时期的spi nor flash的备份镜像(应该是/dev目录下的各个mtdblock,以及/proc/mtd分区表),我需要根据这些信息进行分析。
: T- l$ e) Q7 O  B. v. X谢谢!

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
mynetdisk 发表于 2022-4-27 10:50:00 | 显示全部楼层 IP:–福建–厦门 电信
本帖最后由 mynetdisk 于 2022-4-27 10:53 编辑 + b% u& Q% T/ `$ `4 W) E
fhh 发表于 2022-4-27 10:15
* o2 g, e4 c9 e  g( w+ }看上去像是u-boot中分区表配置错误,或者是你的spi nor flash出现了故障。; r" b7 O& l5 ]0 {' i& c1 z3 V
我想询问一下:7 G2 b3 }, H0 A+ A- t1 @( e
1.在刷我修改之 ...
  D4 e0 Y* v# f% Y
看上去像是u-boot中分区表配置错误' f0 {) ^% Q# M. Y5 C- T; c
--- 应该不是,因为并不是换了 uboot 之后出现卡 Starting kernel ... 问题,刚刷 uboot 后通常可以用,第 N 次重启之后可能出现 Starting kernel ...,之后再重启也必然这样,只能重新刷 uboot(注:不代表一定是 uboot 这里出了错,因为每次重刷 uboot 后需要重装群晖 DSM,所以也可能是因为重装 DSM 而暂时解决了问题)6 D% H0 u6 o& @! w  }' b: n9 h

0 J3 `" ^' ^5 L* W4 m+ c: I8 k或者是你的spi nor flash出现了故障
# \* p% K; ]. ~1 F--- uboot bubt 命令刷写 SPI FLASH 后会不会校验呢,如果有校验,证明 FLASH 本身读写应该没问题,而是否后续 FLASH 数据出问题待确定
* B! m, r/ f4 ]/ E9 P6 k( v6 m
0 Z7 b% X& y' `* l0 Y% P在刷我修改之前的u-boot之前(也就是在使用Soul的U-boot的时候),你会遇到这个情况吗?" o* R) \3 O' c0 Z; z5 c1 v
--- 原来的 uboot 就会,并非你的修改导致的,是在 emmc 装了 debian 之后出现的(没改 uboot 启动顺序),不知道是不是巧合
5 G; F- U2 @* |" B# ^
  e3 Q( J# g* |, R9 C5 q在你卡在Starting kernel的时候,还能够进入emmc环境下的Debian吗?
" V* q! v% P. S( m  r  g5 z# {--- 能,引导群晖卡在 Starting kernel ...,而按住 RESET 5S 重新上电引导 Debian 能正常进系统
2 E- Q- [3 j. M* W  @. Q0 e7 k7 `" Q4 N) d
请问你能够在Debian下把spi flash的数据读取出来,以分析一下是否出现了错误吗?.6 {0 J" @1 y; z& R# ~
--- 卡 Starting kernel ... 前后的 uboot 环境变量我对比过,是一样的。而整个 spi 的 flash 8M 镜像没有前后对比过,按理说除了环境变量以外其它部分应该是只读的?8 y8 ]% S! ^% M/ n6 v: M

2 N$ i: O3 h/ i8 {请提供一下无法正常启动时期的spi nor flash的备份镜像(应该是/dev目录下的各个mtdblock,以及/proc/mtd分区表
+ S8 `5 Q* s. f# F& @% ?- q" |: t--- 好的,晚上回家备份

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
mynetdisk 发表于 2022-4-29 02:34:38 | 显示全部楼层 IP:–福建–厦门 电信
mynetdisk 发表于 2022-4-27 09:138 d8 c5 D) W% I
谢谢 F 大
. Q( i+ m2 ?3 C& T" B我前面没描述清楚,我的情况是这样:

; ^2 p! P5 N& ^4 c3 D  \! c我之前说:% f8 _, K3 Z$ b: K
一次 saveenv 后重启卡 Starting kernel ...,以为跟这个有关,之后试验排除了此可能
1 x* G: @* S3 A) T
1 {6 M5 t" G* Z% x现在我又不确定了,今天试了刷 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/ g, i& |4 T' ~  C$ t7 {
看上去像是u-boot中分区表配置错误
% s) [9 Q2 T/ G' [- S1 V--- 应该不是,因为并不是换了 uboot 之后出现卡 Starting kernel ...  ...
* C# Y. [( O  t' y  Y
做设计这么多年,spi flash 从来没有出现过问题。所有spi flash故障都可以用其他问题来解释。2 o) E- ?# {9 S7 v3 o9 |) a; [
这个应该可以排除。

46

主题

617

回帖

2765

积分

中级渣柚V3

积分
2765
QQ66566 发表于 2022-4-29 06:39:18 | 显示全部楼层 IP:–天津–天津 联通
fhh 发表于 2022-4-26 18:08
) h9 N- v$ T6 {6 l- q. B# UU-boot有一部分问题。
( e  ~7 R( p# W4 [- e1 r! Y我的做法是修改设备树,让Linux在重新初始化网卡的时候把功率拉到最大。% b, S! q6 o5 w) a. ?
因为没有 ...

  c& ~& F! h: k& fsoul确实通过uboot修改了掉IP问题。不过没有开放。当时我测试过。具体改了啥不太清楚。还是要通过手册来查找哪里出的问题,慢慢来试试。

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| fhh 发表于 2022-4-29 08:06:14 | 显示全部楼层 IP:–浙江–杭州 移动
QQ66566 发表于 2022-4-29 06:39& {: Z! }$ S5 p! _
soul确实通过uboot修改了掉IP问题。不过没有开放。当时我测试过。具体改了啥不太清楚。还是要通过手册来查 ...

  E" F6 Y* t* K& O" h" A" [9 z8 J是的。
( y+ V. ]3 p: K# R: U只要u-boot不初始化PHY,其上电以后的默认配置不被覆盖,就不会掉IP。) y* E; P! O3 Z) |
但是代价就是U-boot无法使用网卡,以及这其实算是一种……“鸵鸟”解法?6 u% e+ \, C; k
我的解法是修改设备树,使得它被初始化后,再次把信号增益数据填入。, S) L% \6 w7 A/ B' n2 f6 K5 t# a* o
我认为这样才算是这个问题的真正正确解法。

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| fhh 发表于 2022-4-29 08:07:28 | 显示全部楼层 IP:–浙江–杭州 移动
本帖最后由 fhh 于 2022-4-29 08:16 编辑 $ X& {4 Q( M$ J- `
QQ66566 发表于 2022-4-29 06:31
, W  R* \$ ^- E做设计这么多年,spi flash 从来没有出现过问题。所有spi flash故障都可以用其他问题来解释。+ u  y. q# Z9 a. S4 I
这个应该可 ...

3 t& ]7 W% X' T8 `. Y我的意思是,设备树中关于spi的分区配置错误,导致群晖把数据写入了其他的分区中。我在观察他的分区表的时候,发现u-boot中的分区配置,与手动dd出来的分区表……并不一致。& g+ y7 r& E2 R& ~/ I: M% E. U
按照设备树中定义的分区表dd出来的分区,全都是无效数据。9 |/ b4 o9 w) \# X% ?& y6 ]' s
换而言之,u-boot通过设备树暴露给群晖的分区,本身就是错误的。
* n2 `, J/ r" Q! z我现在希望通过他的dump来分析u-boot和群晖究竟采取了哪一份分区表,以此来进行修复。8 l. j: G; o; G) C
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-5-6 13:06 , Processed in 0.109201 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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