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

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

  [复制链接]

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-27 08:04:02 | 显示全部楼层
mynetdisk 发表于 2022-4-27 01:52+ v6 b) X0 O* z3 l4 J/ l! }, {! q
刷这个成功迁移并进入群晖
  ^* x$ r, N! ^% s9 B$ D
; O- Y& b. d1 V* w% Y4 e可惜重启后又出现卡 Starting kernel ... 问题
6 s$ U7 @$ O7 [
哦,那应该是因为emmc引导顺序在群晖之前,但是群晖的u-boot提供的设备树与Linux不兼容。
: f% j, M8 `$ m( N5 t你把emmc中的Debian抹掉就好了。

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
发表于 2022-4-27 09:13:43 | 显示全部楼层
本帖最后由 mynetdisk 于 2022-4-29 02:33 编辑 & e, _) x, l' T) d
fhh 发表于 2022-4-27 08:04
' ~4 P% X* |. o- {哦,那应该是因为emmc引导顺序在群晖之前,但是群晖的u-boot提供的设备树与Linux不兼容。* s1 u. G% C# K; E( s
你把emmc中的De ...
& A# |, M+ x4 I
谢谢 F 大% ^* `5 m3 M" Y5 W* h2 {
我前面没描述清楚,我的情况是这样:6 n" r; n/ E) E5 {0 Y7 L& G

- B: R, o4 F" F1.
0 A+ n; N3 L+ d' @- W9 ]6 `% H& _0 b启动时 TTL 默认显示 syno mode,然后在 Starting kernel ... 卡住
- r' e( o" \0 r) A( ?: p9 K& X3 W6 S按住 RESET 5S 上电启动 TTL 显示 mmc mode,能正常进 Debian
7 a8 {, H( k* W1 n& V
( x3 a2 f8 O: I' g7 X$ M2.
: B* Z: \% ~8 o刚刷 u-boot 之后可以进群晖(也有一次刚刷完 uboot 就进不了群晖)
4 i9 m: t* H- O. |& N/ q之后某次重启后 syno mode 就卡在 Starting kernel ...(但 mmc mode 仍然可以进 debian)
* |" m1 F7 Y2 d& j一旦出现卡 Starting kernel ...,再重启 N 次也还是卡 Starting kernel ...,直到下次刷 uboot 通常可以暂时解决
, E# G3 W0 C0 T  ?; W$ t$ i, V& j# ~8 ]. [/ ]
3.$ a+ A" B# q7 ?& C
一次 saveenv 后重启卡 Starting kernel ...,以为跟这个有关,之后试验排除了此可能【2022-04-29 修订:我又不确定了,今天试了刷 uboot 重启几次正常启动群晖的情况下,saveenv 后重启就卡 Starting kernel ... 了,也许真像你说的是 uboot 分区表有问题(从而导致 saveenv 破坏了什么东西?)】
7 }" X9 y% ?* ~: o一次进 debian 后重启卡 Starting kernel ...,以为是 debian 自动修改了 uboot 环境变量,之后试验排除了此可能6 K% b$ a+ n6 c% \
U盘、硬盘都拔掉试过,排除了这两种设备问题的可能

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-27 10:15:13 | 显示全部楼层
mynetdisk 发表于 2022-4-27 09:13
9 ~0 X: l. ^' Q# K谢谢 F 大
' ^( F/ _* y2 N% e/ c  [' |我前面没描述清楚,我的情况是这样:

) N8 z( t' Y! |* h/ O看上去像是u-boot中分区表配置错误,或者是你的spi nor flash出现了故障。4 b- X2 h$ A; T. g, j
我想询问一下:8 ?+ e+ }' \' R
1.在刷我修改之前的u-boot之前(也就是在使用Soul的U-boot的时候),你会遇到这个情况吗?
; O( B7 c& m- d1 H$ I2.在你卡在Starting kernel的时候,还能够进入emmc环境下的Debian吗?如果能,请问你能够在Debian下把spi flash的数据读取出来,以分析一下是否出现了错误吗?
3 X, V8 `( U' s1 ]如果可以的话,请提供一下无法正常启动时期的spi nor flash的备份镜像(应该是/dev目录下的各个mtdblock,以及/proc/mtd分区表),我需要根据这些信息进行分析。' w. y5 q2 E3 c0 j% P1 o
谢谢!

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
发表于 2022-4-27 10:50:00 | 显示全部楼层
本帖最后由 mynetdisk 于 2022-4-27 10:53 编辑
  w; k( [" u9 D- K' K
fhh 发表于 2022-4-27 10:15- `# {& a( ?' N7 V1 p) x
看上去像是u-boot中分区表配置错误,或者是你的spi nor flash出现了故障。
; E. Z' x5 ?: w+ w3 D我想询问一下:% X" n3 A3 S& t# ]: w: F4 d# X/ p
1.在刷我修改之 ...
% S8 \, X7 b8 d: k3 S$ T
看上去像是u-boot中分区表配置错误
& L! S8 \! Q/ c--- 应该不是,因为并不是换了 uboot 之后出现卡 Starting kernel ... 问题,刚刷 uboot 后通常可以用,第 N 次重启之后可能出现 Starting kernel ...,之后再重启也必然这样,只能重新刷 uboot(注:不代表一定是 uboot 这里出了错,因为每次重刷 uboot 后需要重装群晖 DSM,所以也可能是因为重装 DSM 而暂时解决了问题)( v2 X  E* z% q2 ?; Y6 o0 C7 q

/ w- a+ N6 J2 H4 L* w: ]或者是你的spi nor flash出现了故障. n) a' }5 ~/ w3 d+ S
--- uboot bubt 命令刷写 SPI FLASH 后会不会校验呢,如果有校验,证明 FLASH 本身读写应该没问题,而是否后续 FLASH 数据出问题待确定
7 o3 Q* [# U8 E7 x
( H  ?1 G' n' n5 R6 n& o/ y在刷我修改之前的u-boot之前(也就是在使用Soul的U-boot的时候),你会遇到这个情况吗?
% _. w8 W: _: @& a$ _9 k--- 原来的 uboot 就会,并非你的修改导致的,是在 emmc 装了 debian 之后出现的(没改 uboot 启动顺序),不知道是不是巧合% Q6 t5 _  u8 k+ v( |
) J; q2 \* i5 Y9 `1 x% L
在你卡在Starting kernel的时候,还能够进入emmc环境下的Debian吗?! a- f, @  B7 F8 t" K+ Z
--- 能,引导群晖卡在 Starting kernel ...,而按住 RESET 5S 重新上电引导 Debian 能正常进系统9 r$ s2 V* d! Q6 |  O

! R5 N* o; B, J' l请问你能够在Debian下把spi flash的数据读取出来,以分析一下是否出现了错误吗?.
  f! i& Y. O( a; S--- 卡 Starting kernel ... 前后的 uboot 环境变量我对比过,是一样的。而整个 spi 的 flash 8M 镜像没有前后对比过,按理说除了环境变量以外其它部分应该是只读的?
# l; S3 @5 X! b
: D2 H# o( l3 X3 h7 ^; Y6 s. |请提供一下无法正常启动时期的spi nor flash的备份镜像(应该是/dev目录下的各个mtdblock,以及/proc/mtd分区表
% U" A" g4 D8 W, c6 G--- 好的,晚上回家备份

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
发表于 2022-4-29 02:34:38 | 显示全部楼层
mynetdisk 发表于 2022-4-27 09:13, n) z3 H- e4 ~# D. C: I
谢谢 F 大- O9 m: Z. E3 r( z
我前面没描述清楚,我的情况是这样:

+ {* q  J8 C! T: Q8 ~7 N4 J9 t4 m我之前说:0 K6 o/ s6 L' A* T' _! e) k: p
一次 saveenv 后重启卡 Starting kernel ...,以为跟这个有关,之后试验排除了此可能) C# M: @2 c& r8 X
9 o1 u- _9 ^4 J+ S" e( {8 E
现在我又不确定了,今天试了刷 uboot 重启几次正常启动群晖的情况下,saveenv 后重启就卡 Starting kernel ... 了,也许真像你说的是 uboot 分区表有问题(从而导致 saveenv 破坏了什么东西?)

46

主题

617

回帖

2764

积分

中级渣柚V3

积分
2764
发表于 2022-4-29 06:31:27 | 显示全部楼层
mynetdisk 发表于 2022-4-27 10:50$ ~/ T8 U5 x* Z: S$ h
看上去像是u-boot中分区表配置错误- z) j* Z& x* Y6 `' N0 [  ^' i
--- 应该不是,因为并不是换了 uboot 之后出现卡 Starting kernel ...  ...
  c% o6 W% R+ r: D) O( t1 X- j% \
做设计这么多年,spi flash 从来没有出现过问题。所有spi flash故障都可以用其他问题来解释。% W9 a0 ?; P( K6 Q$ _; _" z# a7 J
这个应该可以排除。

46

主题

617

回帖

2764

积分

中级渣柚V3

积分
2764
发表于 2022-4-29 06:39:18 | 显示全部楼层
fhh 发表于 2022-4-26 18:08$ U6 a: t$ W7 x4 ]( f$ c
U-boot有一部分问题。
. {4 W+ p6 }$ z" ?我的做法是修改设备树,让Linux在重新初始化网卡的时候把功率拉到最大。
# _# g' O" k; q2 T5 F* l4 N因为没有 ...

: Z" x; |  \7 V1 u) |soul确实通过uboot修改了掉IP问题。不过没有开放。当时我测试过。具体改了啥不太清楚。还是要通过手册来查找哪里出的问题,慢慢来试试。

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-29 08:06:14 | 显示全部楼层
QQ66566 发表于 2022-4-29 06:39
# j3 r8 h, |( E4 Z; Bsoul确实通过uboot修改了掉IP问题。不过没有开放。当时我测试过。具体改了啥不太清楚。还是要通过手册来查 ...

. Q; I. E$ b$ h1 X" `# X1 M7 k是的。
: e4 p/ E8 O/ Z* M% d" m" ]只要u-boot不初始化PHY,其上电以后的默认配置不被覆盖,就不会掉IP。' M1 [! V; j+ p
但是代价就是U-boot无法使用网卡,以及这其实算是一种……“鸵鸟”解法?
7 }; E5 Y8 [* w, m5 Q" `我的解法是修改设备树,使得它被初始化后,再次把信号增益数据填入。
/ P4 P3 R0 W1 \. f, o) l( p我认为这样才算是这个问题的真正正确解法。

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-29 08:07:28 | 显示全部楼层
本帖最后由 fhh 于 2022-4-29 08:16 编辑
" T: u  i+ w: W) x2 I" r. y
QQ66566 发表于 2022-4-29 06:31* o3 R  H9 N8 F$ s2 Y! c  k
做设计这么多年,spi flash 从来没有出现过问题。所有spi flash故障都可以用其他问题来解释。
6 ^; M; {  P9 S! C% v2 y1 j2 q5 I这个应该可 ...
! v" o$ E6 O; K) `1 F
我的意思是,设备树中关于spi的分区配置错误,导致群晖把数据写入了其他的分区中。我在观察他的分区表的时候,发现u-boot中的分区配置,与手动dd出来的分区表……并不一致。) x9 b8 x3 u0 J- f
按照设备树中定义的分区表dd出来的分区,全都是无效数据。
- K4 J2 W: T: o) J8 K. g8 `' n0 ]$ T换而言之,u-boot通过设备树暴露给群晖的分区,本身就是错误的。0 g# z- Q2 K/ M: m9 |) F+ v$ [
我现在希望通过他的dump来分析u-boot和群晖究竟采取了哪一份分区表,以此来进行修复。
6 p% [' h: ^1 f1 _5 J+ ]) s
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-4 07:10 , Processed in 0.063942 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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