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

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

  [复制链接]

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-27 08:04:02 | 显示全部楼层
mynetdisk 发表于 2022-4-27 01:52
( {3 v4 A6 z" ]刷这个成功迁移并进入群晖4 [7 o7 u& C9 f% N* ?3 U

. ^& a6 {3 A. w, d4 r7 }可惜重启后又出现卡 Starting kernel ... 问题
% g2 x2 d* ^6 ]! }9 e4 t
哦,那应该是因为emmc引导顺序在群晖之前,但是群晖的u-boot提供的设备树与Linux不兼容。8 N& c+ G9 Z; f! O
你把emmc中的Debian抹掉就好了。

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
发表于 2022-4-27 09:13:43 | 显示全部楼层
本帖最后由 mynetdisk 于 2022-4-29 02:33 编辑 4 L& l8 c: M& J7 {! u5 A% W4 j( s
fhh 发表于 2022-4-27 08:04
6 u: Q" G  L" [( N' M/ B哦,那应该是因为emmc引导顺序在群晖之前,但是群晖的u-boot提供的设备树与Linux不兼容。
$ K1 D2 U- y# k* ^( n+ X你把emmc中的De ...

8 O: k& B3 `0 L* R4 v% ^谢谢 F 大
6 L6 X+ n4 Q+ J0 ?$ ?我前面没描述清楚,我的情况是这样:) L% g6 w; y# |: E+ I; S

  L* x* o  B# @8 L0 s& h4 ]1.
, ~: [" q3 y3 x( p4 v启动时 TTL 默认显示 syno mode,然后在 Starting kernel ... 卡住5 Q0 M4 i& O+ g$ p0 P1 w
按住 RESET 5S 上电启动 TTL 显示 mmc mode,能正常进 Debian, Z6 G3 c( q/ v( }% I2 S

9 N% c# \( X  Z6 i  E$ H2.
0 W- u/ j% V* [0 ^- J刚刷 u-boot 之后可以进群晖(也有一次刚刷完 uboot 就进不了群晖)& ~1 @8 W2 n  K" g8 ^) L
之后某次重启后 syno mode 就卡在 Starting kernel ...(但 mmc mode 仍然可以进 debian)4 ^  b; M. I# a% v( r; L0 F" C3 d
一旦出现卡 Starting kernel ...,再重启 N 次也还是卡 Starting kernel ...,直到下次刷 uboot 通常可以暂时解决: k. Q# p7 `, P; t
, m1 O! Q4 ]7 o2 w
3.: e8 v% o( z5 `) ^( k
一次 saveenv 后重启卡 Starting kernel ...,以为跟这个有关,之后试验排除了此可能【2022-04-29 修订:我又不确定了,今天试了刷 uboot 重启几次正常启动群晖的情况下,saveenv 后重启就卡 Starting kernel ... 了,也许真像你说的是 uboot 分区表有问题(从而导致 saveenv 破坏了什么东西?)】
: S, E( I- l* g% U一次进 debian 后重启卡 Starting kernel ...,以为是 debian 自动修改了 uboot 环境变量,之后试验排除了此可能
: @: \$ w3 |0 c; fU盘、硬盘都拔掉试过,排除了这两种设备问题的可能

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-27 10:15:13 | 显示全部楼层
mynetdisk 发表于 2022-4-27 09:13
8 P  K* m7 _7 I谢谢 F 大
2 C/ I4 d6 L3 a, V' w我前面没描述清楚,我的情况是这样:
! v1 j* m3 W+ B8 U
看上去像是u-boot中分区表配置错误,或者是你的spi nor flash出现了故障。. w' N, T1 m) }7 L5 B
我想询问一下:
# x1 H: }: f% r# I8 f2 P2 ]% n1.在刷我修改之前的u-boot之前(也就是在使用Soul的U-boot的时候),你会遇到这个情况吗?
5 g2 \: d/ _) I6 ~! H* p, i2.在你卡在Starting kernel的时候,还能够进入emmc环境下的Debian吗?如果能,请问你能够在Debian下把spi flash的数据读取出来,以分析一下是否出现了错误吗?1 u. n& e' o0 I) h' G5 x, F6 b5 M9 n( k
如果可以的话,请提供一下无法正常启动时期的spi nor flash的备份镜像(应该是/dev目录下的各个mtdblock,以及/proc/mtd分区表),我需要根据这些信息进行分析。0 J3 G% m( ?( e0 Q8 {* B; b: x) S
谢谢!

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
发表于 2022-4-27 10:50:00 | 显示全部楼层
本帖最后由 mynetdisk 于 2022-4-27 10:53 编辑
$ Y4 l5 B  B0 I) \
fhh 发表于 2022-4-27 10:15( j9 G8 f4 }, L2 \/ O; [
看上去像是u-boot中分区表配置错误,或者是你的spi nor flash出现了故障。2 f2 L- X. f3 M# p' B
我想询问一下:/ ], `9 j1 ^2 R/ Q( O- l9 Y
1.在刷我修改之 ...
8 g9 ~: [0 g. p5 T' P2 z
看上去像是u-boot中分区表配置错误, q+ Y8 ?* C5 u) @
--- 应该不是,因为并不是换了 uboot 之后出现卡 Starting kernel ... 问题,刚刷 uboot 后通常可以用,第 N 次重启之后可能出现 Starting kernel ...,之后再重启也必然这样,只能重新刷 uboot(注:不代表一定是 uboot 这里出了错,因为每次重刷 uboot 后需要重装群晖 DSM,所以也可能是因为重装 DSM 而暂时解决了问题)
5 E; ~" V3 V" s( c; m# N* }$ E
' J9 F+ v% B% B- T$ K& F或者是你的spi nor flash出现了故障0 b0 z( M. f  B
--- uboot bubt 命令刷写 SPI FLASH 后会不会校验呢,如果有校验,证明 FLASH 本身读写应该没问题,而是否后续 FLASH 数据出问题待确定
* U/ B2 o2 H$ {6 h2 f5 B" q" J& M. y- t2 N6 Q
在刷我修改之前的u-boot之前(也就是在使用Soul的U-boot的时候),你会遇到这个情况吗?
1 D- K  _9 y* \6 Z--- 原来的 uboot 就会,并非你的修改导致的,是在 emmc 装了 debian 之后出现的(没改 uboot 启动顺序),不知道是不是巧合$ D/ {5 e9 L  X+ v+ A4 T1 L. V

6 ^# b; ?9 c' ]* Z6 ?* s# p( W- W在你卡在Starting kernel的时候,还能够进入emmc环境下的Debian吗?$ Z! A  J3 x" g4 v5 h, s. X
--- 能,引导群晖卡在 Starting kernel ...,而按住 RESET 5S 重新上电引导 Debian 能正常进系统
6 x5 n0 u& \2 U( u2 E  G( t) A( k! y2 b) g
请问你能够在Debian下把spi flash的数据读取出来,以分析一下是否出现了错误吗?.
; v! ]/ d% e1 L# F5 b--- 卡 Starting kernel ... 前后的 uboot 环境变量我对比过,是一样的。而整个 spi 的 flash 8M 镜像没有前后对比过,按理说除了环境变量以外其它部分应该是只读的?- F) w. Y: N& B7 x; o0 w  S! g
; m  X4 h! p4 g
请提供一下无法正常启动时期的spi nor flash的备份镜像(应该是/dev目录下的各个mtdblock,以及/proc/mtd分区表9 x: s7 M/ T6 j* e) V
--- 好的,晚上回家备份

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
发表于 2022-4-29 02:34:38 | 显示全部楼层
mynetdisk 发表于 2022-4-27 09:13: p4 @( V+ l0 {! x. b
谢谢 F 大9 s3 S. e7 D" R0 E& Z
我前面没描述清楚,我的情况是这样:
( h1 F) `% f" c+ K1 ]
我之前说:
- Z8 P+ a9 y) S一次 saveenv 后重启卡 Starting kernel ...,以为跟这个有关,之后试验排除了此可能
$ l% W: I; N/ a( l4 H, |0 `* Q+ ^
! |8 x, E% r9 F! r. N2 A现在我又不确定了,今天试了刷 uboot 重启几次正常启动群晖的情况下,saveenv 后重启就卡 Starting kernel ... 了,也许真像你说的是 uboot 分区表有问题(从而导致 saveenv 破坏了什么东西?)

46

主题

617

回帖

2765

积分

中级渣柚V3

积分
2765
发表于 2022-4-29 06:31:27 | 显示全部楼层
mynetdisk 发表于 2022-4-27 10:50
% A( g& X( _( [6 \看上去像是u-boot中分区表配置错误% U( a$ R& H9 L3 k' s; Q
--- 应该不是,因为并不是换了 uboot 之后出现卡 Starting kernel ...  ...
, @/ y0 N, X$ X% ]+ b4 T/ [
做设计这么多年,spi flash 从来没有出现过问题。所有spi flash故障都可以用其他问题来解释。
6 m% ]' Q( u% F  c- S这个应该可以排除。

46

主题

617

回帖

2765

积分

中级渣柚V3

积分
2765
发表于 2022-4-29 06:39:18 | 显示全部楼层
fhh 发表于 2022-4-26 18:08
: ~, P7 Q! J$ x9 D0 o9 a. o" ~U-boot有一部分问题。$ z7 W. k5 E" h4 Q
我的做法是修改设备树,让Linux在重新初始化网卡的时候把功率拉到最大。
- A. A! ~8 X1 U! c# _0 R5 Z因为没有 ...

4 I4 g) Y; A  B$ Osoul确实通过uboot修改了掉IP问题。不过没有开放。当时我测试过。具体改了啥不太清楚。还是要通过手册来查找哪里出的问题,慢慢来试试。

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-29 08:06:14 | 显示全部楼层
QQ66566 发表于 2022-4-29 06:39+ X8 F) o+ N0 B! ~6 x" w* k: @& L
soul确实通过uboot修改了掉IP问题。不过没有开放。当时我测试过。具体改了啥不太清楚。还是要通过手册来查 ...

+ w& w( f. a" d' i1 C6 f  e$ B) P是的。+ ?! D! v5 k; U9 D7 `
只要u-boot不初始化PHY,其上电以后的默认配置不被覆盖,就不会掉IP。0 {+ b2 w2 q7 ?6 o6 b8 Z
但是代价就是U-boot无法使用网卡,以及这其实算是一种……“鸵鸟”解法?
) O/ v) M% h. q我的解法是修改设备树,使得它被初始化后,再次把信号增益数据填入。8 S: F* Q  H" W- I0 z) @# p& D
我认为这样才算是这个问题的真正正确解法。

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-29 08:07:28 | 显示全部楼层
本帖最后由 fhh 于 2022-4-29 08:16 编辑 " a7 H% h3 k0 U- w# y5 M
QQ66566 发表于 2022-4-29 06:31
! t* U- m- B3 ^! Y' u1 l% [做设计这么多年,spi flash 从来没有出现过问题。所有spi flash故障都可以用其他问题来解释。
, z  H* h; x3 p# a这个应该可 ...

$ ?! P1 h% [/ N% ]; b7 Z我的意思是,设备树中关于spi的分区配置错误,导致群晖把数据写入了其他的分区中。我在观察他的分区表的时候,发现u-boot中的分区配置,与手动dd出来的分区表……并不一致。
: W6 ~+ w; \( E4 A9 i+ r. e- e按照设备树中定义的分区表dd出来的分区,全都是无效数据。
1 b; w5 t/ x# o: i+ E3 I1 y换而言之,u-boot通过设备树暴露给群晖的分区,本身就是错误的。! b. c. K/ R8 c+ `
我现在希望通过他的dump来分析u-boot和群晖究竟采取了哪一份分区表,以此来进行修复。
7 M+ O  H7 k1 H
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-4-4 23:47 , Processed in 0.125201 second(s), 31 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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