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

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

  [复制链接]

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| fhh 发表于 2022-4-27 08:04:02 | 显示全部楼层 IP:–浙江–杭州 移动
mynetdisk 发表于 2022-4-27 01:52
/ l/ p* k' a4 f1 X刷这个成功迁移并进入群晖
' h. u( ^4 ]- r+ N  E
: L7 f1 |, s3 o6 x% U8 Y& S可惜重启后又出现卡 Starting kernel ... 问题

2 T, J( D" f0 _; b哦,那应该是因为emmc引导顺序在群晖之前,但是群晖的u-boot提供的设备树与Linux不兼容。+ C% K0 n# c/ F4 a" d! w
你把emmc中的Debian抹掉就好了。

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
mynetdisk 发表于 2022-4-27 09:13:43 | 显示全部楼层 IP:–福建–厦门 电信
本帖最后由 mynetdisk 于 2022-4-29 02:33 编辑   W/ ]- b2 N% f) @
fhh 发表于 2022-4-27 08:04
' s, d3 d3 z" h9 ]* }7 G哦,那应该是因为emmc引导顺序在群晖之前,但是群晖的u-boot提供的设备树与Linux不兼容。, T# c7 M, c7 Y0 `; t7 c0 M: \& R
你把emmc中的De ...
6 Z+ r3 \" y/ V6 Q, V  n
谢谢 F 大
* {" |) L7 v. Q- G/ Q1 r我前面没描述清楚,我的情况是这样:3 |& B  b# V. ?0 S: a) H
! f" d0 t% G- l: n
1.
* o4 m( C( {0 u  W+ Y; {& ~' |启动时 TTL 默认显示 syno mode,然后在 Starting kernel ... 卡住
; {2 Y, E- c9 y# ~  Q按住 RESET 5S 上电启动 TTL 显示 mmc mode,能正常进 Debian9 q( i7 Q6 g( B
2 Y' b- q6 i; I! l$ X
2.3 d, @8 @1 F- N- W+ X3 o, U/ a
刚刷 u-boot 之后可以进群晖(也有一次刚刷完 uboot 就进不了群晖)
( w/ Z% p5 a) @之后某次重启后 syno mode 就卡在 Starting kernel ...(但 mmc mode 仍然可以进 debian)$ V4 X& D4 U6 X# W: ^- v5 K+ `# Q2 c! p
一旦出现卡 Starting kernel ...,再重启 N 次也还是卡 Starting kernel ...,直到下次刷 uboot 通常可以暂时解决
3 R, p% ^7 R9 ~" k" ]3 P; t( F- i, n+ k/ F' u! U
3.
* H3 h9 ~, b9 k( E! S一次 saveenv 后重启卡 Starting kernel ...,以为跟这个有关,之后试验排除了此可能【2022-04-29 修订:我又不确定了,今天试了刷 uboot 重启几次正常启动群晖的情况下,saveenv 后重启就卡 Starting kernel ... 了,也许真像你说的是 uboot 分区表有问题(从而导致 saveenv 破坏了什么东西?)】
6 ~. `8 x( P& Y) U4 Q一次进 debian 后重启卡 Starting kernel ...,以为是 debian 自动修改了 uboot 环境变量,之后试验排除了此可能) h( {" E) Q) Q5 o8 S
U盘、硬盘都拔掉试过,排除了这两种设备问题的可能

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| fhh 发表于 2022-4-27 10:15:13 | 显示全部楼层 IP:–浙江–杭州 移动
mynetdisk 发表于 2022-4-27 09:13
0 H, V- \# S7 p* F0 C谢谢 F 大
& y% t# ~& G4 Q- d6 U我前面没描述清楚,我的情况是这样:
. d$ M8 |7 G  g+ w/ {* v  V: K0 m
看上去像是u-boot中分区表配置错误,或者是你的spi nor flash出现了故障。
; _  L: M4 b7 w( }, ?  U& S我想询问一下:
& \, d8 ]! @% [. j1.在刷我修改之前的u-boot之前(也就是在使用Soul的U-boot的时候),你会遇到这个情况吗?
: g6 H% I# m3 p9 k2.在你卡在Starting kernel的时候,还能够进入emmc环境下的Debian吗?如果能,请问你能够在Debian下把spi flash的数据读取出来,以分析一下是否出现了错误吗?/ S6 y+ \" `3 `/ o5 z' s7 l
如果可以的话,请提供一下无法正常启动时期的spi nor flash的备份镜像(应该是/dev目录下的各个mtdblock,以及/proc/mtd分区表),我需要根据这些信息进行分析。; W' K: ]# z  U6 [
谢谢!

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
mynetdisk 发表于 2022-4-27 10:50:00 | 显示全部楼层 IP:–福建–厦门 电信
本帖最后由 mynetdisk 于 2022-4-27 10:53 编辑 ; I2 r  z1 o$ x) u9 m& k
fhh 发表于 2022-4-27 10:15
3 N. P7 S; l+ L' h1 m  ~看上去像是u-boot中分区表配置错误,或者是你的spi nor flash出现了故障。
# {$ c3 a! J( p+ L/ ?) }2 l1 _1 F我想询问一下:
8 w4 K  n; [7 b* o' C( r1.在刷我修改之 ...
! i" U1 q5 v5 s  r0 F
看上去像是u-boot中分区表配置错误
. d8 U" E' I. b; K--- 应该不是,因为并不是换了 uboot 之后出现卡 Starting kernel ... 问题,刚刷 uboot 后通常可以用,第 N 次重启之后可能出现 Starting kernel ...,之后再重启也必然这样,只能重新刷 uboot(注:不代表一定是 uboot 这里出了错,因为每次重刷 uboot 后需要重装群晖 DSM,所以也可能是因为重装 DSM 而暂时解决了问题)  U8 r* V# t* @4 I1 g' x
0 ?8 J' {1 g# {3 }1 x5 h5 o" n
或者是你的spi nor flash出现了故障4 u  v% ^. n4 B" A8 h2 p
--- uboot bubt 命令刷写 SPI FLASH 后会不会校验呢,如果有校验,证明 FLASH 本身读写应该没问题,而是否后续 FLASH 数据出问题待确定8 e  }. Q6 L1 O

! o8 Y/ i! a' Y8 k( Z) A* i在刷我修改之前的u-boot之前(也就是在使用Soul的U-boot的时候),你会遇到这个情况吗?
5 B1 f8 g5 g! ^* @- _--- 原来的 uboot 就会,并非你的修改导致的,是在 emmc 装了 debian 之后出现的(没改 uboot 启动顺序),不知道是不是巧合
$ w; l: P4 C% Z2 |/ ?3 a9 Z7 j) A
在你卡在Starting kernel的时候,还能够进入emmc环境下的Debian吗?
# h" p5 [6 m4 a+ J. f--- 能,引导群晖卡在 Starting kernel ...,而按住 RESET 5S 重新上电引导 Debian 能正常进系统8 b. z% D& g" k9 K6 y6 X, Y
' x0 z1 ^/ B) v" h' L! }
请问你能够在Debian下把spi flash的数据读取出来,以分析一下是否出现了错误吗?., g) X$ o- K& R
--- 卡 Starting kernel ... 前后的 uboot 环境变量我对比过,是一样的。而整个 spi 的 flash 8M 镜像没有前后对比过,按理说除了环境变量以外其它部分应该是只读的?$ [) j2 R! X$ W/ p# q% Y
0 [. i& S) A! f  G
请提供一下无法正常启动时期的spi nor flash的备份镜像(应该是/dev目录下的各个mtdblock,以及/proc/mtd分区表
1 z7 v; ~+ h' M: M$ j--- 好的,晚上回家备份

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
mynetdisk 发表于 2022-4-29 02:34:38 | 显示全部楼层 IP:–福建–厦门 电信
mynetdisk 发表于 2022-4-27 09:134 R) u, d4 ?$ K7 |4 y  v3 V
谢谢 F 大3 R: c" A3 k; T5 i+ J
我前面没描述清楚,我的情况是这样:

2 c0 ^: g9 ^6 c: o" N# R我之前说:2 {4 w; u& R% j* G% _% j- R0 `
一次 saveenv 后重启卡 Starting kernel ...,以为跟这个有关,之后试验排除了此可能) {  ~4 g& j$ O
# Y/ t1 K  S% M
现在我又不确定了,今天试了刷 uboot 重启几次正常启动群晖的情况下,saveenv 后重启就卡 Starting kernel ... 了,也许真像你说的是 uboot 分区表有问题(从而导致 saveenv 破坏了什么东西?)

46

主题

617

回帖

2765

积分

中级渣柚V3

积分
2765
QQ66566 发表于 2022-4-29 06:31:27 | 显示全部楼层 IP:–天津–天津 联通
mynetdisk 发表于 2022-4-27 10:501 a( f+ b% l/ \  `, o; o, r
看上去像是u-boot中分区表配置错误% R- O4 i. E: Z8 k) x1 \
--- 应该不是,因为并不是换了 uboot 之后出现卡 Starting kernel ...  ...
' w7 ]7 c  A- l& d
做设计这么多年,spi flash 从来没有出现过问题。所有spi flash故障都可以用其他问题来解释。9 I+ |$ Q& K, {: n
这个应该可以排除。

46

主题

617

回帖

2765

积分

中级渣柚V3

积分
2765
QQ66566 发表于 2022-4-29 06:39:18 | 显示全部楼层 IP:–天津–天津 联通
fhh 发表于 2022-4-26 18:08# b8 S/ D" {7 ]' Z
U-boot有一部分问题。% u% {6 p/ K! v( h/ R2 H' t% @
我的做法是修改设备树,让Linux在重新初始化网卡的时候把功率拉到最大。3 j+ p, ]7 J; y& |; K
因为没有 ...
8 o' n& s7 n4 E+ \0 r8 H
soul确实通过uboot修改了掉IP问题。不过没有开放。当时我测试过。具体改了啥不太清楚。还是要通过手册来查找哪里出的问题,慢慢来试试。

4

主题

71

回帖

280

积分

中级渣柚V1

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

0 m6 |5 V! A' |8 H# [是的。
4 K% y. D- o* A) b8 I* f只要u-boot不初始化PHY,其上电以后的默认配置不被覆盖,就不会掉IP。
& Y- L5 D( [) @5 C: X但是代价就是U-boot无法使用网卡,以及这其实算是一种……“鸵鸟”解法?
5 B* |& K6 n( y4 r我的解法是修改设备树,使得它被初始化后,再次把信号增益数据填入。
0 q! X' e, M+ h" }0 r! i" T- d我认为这样才算是这个问题的真正正确解法。

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| fhh 发表于 2022-4-29 08:07:28 | 显示全部楼层 IP:–浙江–杭州 移动
本帖最后由 fhh 于 2022-4-29 08:16 编辑
* g& l# T. k9 f7 ^: |
QQ66566 发表于 2022-4-29 06:31, Z+ X# h2 {( n, r2 h+ y7 N( B
做设计这么多年,spi flash 从来没有出现过问题。所有spi flash故障都可以用其他问题来解释。3 m$ _. w& w5 \: X+ M+ B7 o  B
这个应该可 ...
; M( f& H! \! R1 K0 U
我的意思是,设备树中关于spi的分区配置错误,导致群晖把数据写入了其他的分区中。我在观察他的分区表的时候,发现u-boot中的分区配置,与手动dd出来的分区表……并不一致。
( ]9 |4 g5 B6 [: o4 f7 T按照设备树中定义的分区表dd出来的分区,全都是无效数据。
3 T5 \0 E/ M  \4 M, O  _换而言之,u-boot通过设备树暴露给群晖的分区,本身就是错误的。
) O% W# @8 R* v5 w7 O5 N0 q我现在希望通过他的dump来分析u-boot和群晖究竟采取了哪一份分区表,以此来进行修复。5 H2 K8 K+ ]6 J# f
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-5-6 11:49 , Processed in 0.097059 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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