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

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

  [复制链接]

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-27 08:04:02 | 显示全部楼层
mynetdisk 发表于 2022-4-27 01:52
/ B# c9 @4 _4 T( E) T刷这个成功迁移并进入群晖3 o( H: R: o2 R+ I0 J
9 W2 @2 f6 l1 }# x% q
可惜重启后又出现卡 Starting kernel ... 问题
) f7 |! r2 A% _2 b2 ]
哦,那应该是因为emmc引导顺序在群晖之前,但是群晖的u-boot提供的设备树与Linux不兼容。
1 {) f' {- ]0 _% r% u你把emmc中的Debian抹掉就好了。

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
发表于 2022-4-27 09:13:43 | 显示全部楼层
本帖最后由 mynetdisk 于 2022-4-29 02:33 编辑
9 g& M6 X! I' ~# F+ @, i
fhh 发表于 2022-4-27 08:04
, N9 P6 w9 f1 g5 \: I哦,那应该是因为emmc引导顺序在群晖之前,但是群晖的u-boot提供的设备树与Linux不兼容。
& U" l6 Y, Y; X3 K你把emmc中的De ...

/ _! I! h/ D+ w* ], M9 I谢谢 F 大
6 u: x, i/ r# H2 l我前面没描述清楚,我的情况是这样:
2 k9 n0 M) h0 S- H5 j- H1 s( R, u
) V2 h7 C4 ]( J2 p+ v1.: B: |) G! _5 i( E3 A
启动时 TTL 默认显示 syno mode,然后在 Starting kernel ... 卡住. D4 ], C4 g9 ^0 T& B
按住 RESET 5S 上电启动 TTL 显示 mmc mode,能正常进 Debian" E# A  }7 c: Y' I

+ y1 @1 @! x- N2.
7 S% }' T& T( i1 g1 ]刚刷 u-boot 之后可以进群晖(也有一次刚刷完 uboot 就进不了群晖)
: w, O7 B  p* a之后某次重启后 syno mode 就卡在 Starting kernel ...(但 mmc mode 仍然可以进 debian)
: d- R7 g7 U4 d5 Q" I2 F4 t; W3 L一旦出现卡 Starting kernel ...,再重启 N 次也还是卡 Starting kernel ...,直到下次刷 uboot 通常可以暂时解决5 E+ Z* u7 o. ~, \1 x/ S

5 @7 w6 ?0 f* Z2 W- S# s. b! A3./ Z$ _5 Q- y! s! e
一次 saveenv 后重启卡 Starting kernel ...,以为跟这个有关,之后试验排除了此可能【2022-04-29 修订:我又不确定了,今天试了刷 uboot 重启几次正常启动群晖的情况下,saveenv 后重启就卡 Starting kernel ... 了,也许真像你说的是 uboot 分区表有问题(从而导致 saveenv 破坏了什么东西?)】) D; o; A% t" S! ~
一次进 debian 后重启卡 Starting kernel ...,以为是 debian 自动修改了 uboot 环境变量,之后试验排除了此可能
; p) \2 A" t) ]5 g0 n9 \" TU盘、硬盘都拔掉试过,排除了这两种设备问题的可能

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-27 10:15:13 | 显示全部楼层
mynetdisk 发表于 2022-4-27 09:13
3 {% u% W/ `7 _谢谢 F 大
5 h+ Z' X0 K# T0 |# q( a7 u我前面没描述清楚,我的情况是这样:
: S, Y4 _+ T: A% R3 d  O
看上去像是u-boot中分区表配置错误,或者是你的spi nor flash出现了故障。
. H+ }$ p# @  h" T3 n我想询问一下:
8 e# B' |- C+ c6 b1.在刷我修改之前的u-boot之前(也就是在使用Soul的U-boot的时候),你会遇到这个情况吗?, A8 I% R) z7 v
2.在你卡在Starting kernel的时候,还能够进入emmc环境下的Debian吗?如果能,请问你能够在Debian下把spi flash的数据读取出来,以分析一下是否出现了错误吗?& S: R4 m/ J5 p8 j3 t4 Z  j
如果可以的话,请提供一下无法正常启动时期的spi nor flash的备份镜像(应该是/dev目录下的各个mtdblock,以及/proc/mtd分区表),我需要根据这些信息进行分析。' T6 H! }9 b9 X1 v! Z' Z
谢谢!

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
发表于 2022-4-27 10:50:00 | 显示全部楼层
本帖最后由 mynetdisk 于 2022-4-27 10:53 编辑 5 |8 e  q, U9 O6 e+ p
fhh 发表于 2022-4-27 10:15
( d2 d8 z7 t3 h看上去像是u-boot中分区表配置错误,或者是你的spi nor flash出现了故障。7 O( ^; p! s& c5 F1 X( y
我想询问一下:2 ^. E2 m( M- ]! T7 s6 y
1.在刷我修改之 ...

& s# o7 E' T' W0 R3 N5 I* d' v看上去像是u-boot中分区表配置错误* U; K6 ~, v; c" M
--- 应该不是,因为并不是换了 uboot 之后出现卡 Starting kernel ... 问题,刚刷 uboot 后通常可以用,第 N 次重启之后可能出现 Starting kernel ...,之后再重启也必然这样,只能重新刷 uboot(注:不代表一定是 uboot 这里出了错,因为每次重刷 uboot 后需要重装群晖 DSM,所以也可能是因为重装 DSM 而暂时解决了问题)% \5 T# a% v5 q9 o# }; R
. t1 M9 `6 V, B3 n# @; `4 Y
或者是你的spi nor flash出现了故障
: Y3 d% e# {$ }- V# _* }9 d; ~, G--- uboot bubt 命令刷写 SPI FLASH 后会不会校验呢,如果有校验,证明 FLASH 本身读写应该没问题,而是否后续 FLASH 数据出问题待确定0 V* [) N# S/ w5 J7 `
. H# P* P$ p* L* |) M$ h1 [
在刷我修改之前的u-boot之前(也就是在使用Soul的U-boot的时候),你会遇到这个情况吗?  r2 f' e2 J  G
--- 原来的 uboot 就会,并非你的修改导致的,是在 emmc 装了 debian 之后出现的(没改 uboot 启动顺序),不知道是不是巧合
: M. N3 l- m& ]* _8 X+ c
+ @4 I8 o& F/ S% X, e/ R在你卡在Starting kernel的时候,还能够进入emmc环境下的Debian吗?
8 C) p3 q3 g3 D. Q! X/ l. ?  I--- 能,引导群晖卡在 Starting kernel ...,而按住 RESET 5S 重新上电引导 Debian 能正常进系统
: p, j1 v1 G' y) N7 y+ X8 j: w1 e0 p. j
请问你能够在Debian下把spi flash的数据读取出来,以分析一下是否出现了错误吗?.& u$ N& z1 V! A. g
--- 卡 Starting kernel ... 前后的 uboot 环境变量我对比过,是一样的。而整个 spi 的 flash 8M 镜像没有前后对比过,按理说除了环境变量以外其它部分应该是只读的?
6 m" i! P" `5 X, x/ D4 T7 u+ l; K  y
5 x2 ^6 B* K1 A6 Y1 D: W请提供一下无法正常启动时期的spi nor flash的备份镜像(应该是/dev目录下的各个mtdblock,以及/proc/mtd分区表
: L: r2 H% B, L% O2 d4 d--- 好的,晚上回家备份

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
发表于 2022-4-29 02:34:38 | 显示全部楼层
mynetdisk 发表于 2022-4-27 09:13& b6 B" H+ u% H' d4 p  M
谢谢 F 大
' T) z! f/ [% M# u; Q4 b我前面没描述清楚,我的情况是这样:
, V9 w6 Y" c. c
我之前说:% o* G  W: y5 C6 E) k3 p
一次 saveenv 后重启卡 Starting kernel ...,以为跟这个有关,之后试验排除了此可能
: M4 }1 r7 X5 _8 K- }6 h
. j" U4 M% D1 E- D1 h现在我又不确定了,今天试了刷 uboot 重启几次正常启动群晖的情况下,saveenv 后重启就卡 Starting kernel ... 了,也许真像你说的是 uboot 分区表有问题(从而导致 saveenv 破坏了什么东西?)

46

主题

617

回帖

2764

积分

中级渣柚V3

积分
2764
发表于 2022-4-29 06:31:27 | 显示全部楼层
mynetdisk 发表于 2022-4-27 10:50
" `7 @1 Z- H0 T- c9 J; s& t看上去像是u-boot中分区表配置错误5 X: w# p, K& [+ j. X
--- 应该不是,因为并不是换了 uboot 之后出现卡 Starting kernel ...  ...

. A, Y2 ]5 |% h0 \/ s7 W2 d做设计这么多年,spi flash 从来没有出现过问题。所有spi flash故障都可以用其他问题来解释。
  a1 a$ @, V6 s  O# |这个应该可以排除。

46

主题

617

回帖

2764

积分

中级渣柚V3

积分
2764
发表于 2022-4-29 06:39:18 | 显示全部楼层
fhh 发表于 2022-4-26 18:08
* b1 q1 g* e3 l7 }- q  d# Q! pU-boot有一部分问题。
3 v/ K& ~4 P$ ?! o4 r. L我的做法是修改设备树,让Linux在重新初始化网卡的时候把功率拉到最大。
- E5 I( O8 {: O, c$ S" e: O因为没有 ...
+ b) J8 i5 r. U
soul确实通过uboot修改了掉IP问题。不过没有开放。当时我测试过。具体改了啥不太清楚。还是要通过手册来查找哪里出的问题,慢慢来试试。

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-29 08:06:14 | 显示全部楼层
QQ66566 发表于 2022-4-29 06:39
+ L  q) P4 ~4 j5 ]; ^soul确实通过uboot修改了掉IP问题。不过没有开放。当时我测试过。具体改了啥不太清楚。还是要通过手册来查 ...

6 D3 {+ F3 a8 T- M* F# T是的。+ t9 I' z" D; q) ~3 v4 O
只要u-boot不初始化PHY,其上电以后的默认配置不被覆盖,就不会掉IP。0 N- i- k, B1 B4 v* X+ v5 v
但是代价就是U-boot无法使用网卡,以及这其实算是一种……“鸵鸟”解法?
5 J# n, l1 ]( }, u4 Q" y  i我的解法是修改设备树,使得它被初始化后,再次把信号增益数据填入。
' ?, [5 b3 Z: T, Q" J我认为这样才算是这个问题的真正正确解法。

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-29 08:07:28 | 显示全部楼层
本帖最后由 fhh 于 2022-4-29 08:16 编辑 ! E) `5 I9 i* Q% U+ J1 S6 f
QQ66566 发表于 2022-4-29 06:31
0 w6 A6 y0 k9 Y做设计这么多年,spi flash 从来没有出现过问题。所有spi flash故障都可以用其他问题来解释。) r+ n3 d& E2 b6 M. y! j
这个应该可 ...

1 S$ s2 a' s# n& l/ ~7 |( k; e我的意思是,设备树中关于spi的分区配置错误,导致群晖把数据写入了其他的分区中。我在观察他的分区表的时候,发现u-boot中的分区配置,与手动dd出来的分区表……并不一致。
' w9 E' `9 m& x按照设备树中定义的分区表dd出来的分区,全都是无效数据。7 m2 r  U0 s! g" j" ?
换而言之,u-boot通过设备树暴露给群晖的分区,本身就是错误的。
: N, n' e/ H. n- w1 }, K我现在希望通过他的dump来分析u-boot和群晖究竟采取了哪一份分区表,以此来进行修复。
" a, B) R  C3 Z( U3 e
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-1-22 16:57 , Processed in 0.072048 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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