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

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

  [复制链接]

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-27 08:04:02 | 显示全部楼层
mynetdisk 发表于 2022-4-27 01:52
' f9 H) ?5 h9 e" A8 r( i; k刷这个成功迁移并进入群晖. I3 \& D+ _1 P7 @' l, W
( ]/ N* d6 Q1 }6 }
可惜重启后又出现卡 Starting kernel ... 问题
+ F5 b$ G& K0 o$ M2 @. F6 ^
哦,那应该是因为emmc引导顺序在群晖之前,但是群晖的u-boot提供的设备树与Linux不兼容。# z  T2 x# g  }5 K4 T$ }6 h" V
你把emmc中的Debian抹掉就好了。

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
发表于 2022-4-27 09:13:43 | 显示全部楼层
本帖最后由 mynetdisk 于 2022-4-29 02:33 编辑
( `! e: p3 H1 J* h
fhh 发表于 2022-4-27 08:044 o/ p  V9 ~, N* p  l3 s8 [
哦,那应该是因为emmc引导顺序在群晖之前,但是群晖的u-boot提供的设备树与Linux不兼容。4 R) u7 I3 k( s4 ]6 D
你把emmc中的De ...
' G; l3 q" M2 Z* L+ c, C' i/ {
谢谢 F 大3 U" i. T& b" c7 T
我前面没描述清楚,我的情况是这样:. t0 R: z3 w$ A3 G# [3 B/ H

! m5 C! v* e3 N7 \1.
1 N+ L$ T' z. `) }启动时 TTL 默认显示 syno mode,然后在 Starting kernel ... 卡住
4 Y" x, w' {) s% h7 {; v按住 RESET 5S 上电启动 TTL 显示 mmc mode,能正常进 Debian0 Y4 E$ `" _" `. Y: |

- H5 a2 d& w$ g% W. o2.
) t: |# Y2 S& a/ Z' R刚刷 u-boot 之后可以进群晖(也有一次刚刷完 uboot 就进不了群晖)+ _* W  ?; U  y! E$ P) N! Z3 j7 D- n( D
之后某次重启后 syno mode 就卡在 Starting kernel ...(但 mmc mode 仍然可以进 debian)
' w) Q- ?+ G9 D8 G  [一旦出现卡 Starting kernel ...,再重启 N 次也还是卡 Starting kernel ...,直到下次刷 uboot 通常可以暂时解决* v7 Q; _! Z4 n- Q
; x# v7 a$ [% A8 X- |2 q( e* C
3.
8 |, i$ [" ~% a" w* A! c# ?" G一次 saveenv 后重启卡 Starting kernel ...,以为跟这个有关,之后试验排除了此可能【2022-04-29 修订:我又不确定了,今天试了刷 uboot 重启几次正常启动群晖的情况下,saveenv 后重启就卡 Starting kernel ... 了,也许真像你说的是 uboot 分区表有问题(从而导致 saveenv 破坏了什么东西?)】
% K% w  h8 E& x) y5 o# u" Q一次进 debian 后重启卡 Starting kernel ...,以为是 debian 自动修改了 uboot 环境变量,之后试验排除了此可能% z* h/ X* v) q! }% ~
U盘、硬盘都拔掉试过,排除了这两种设备问题的可能

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-27 10:15:13 | 显示全部楼层
mynetdisk 发表于 2022-4-27 09:131 s) A! P" K$ S! m- ]
谢谢 F 大
* _7 _0 |- }( j/ A3 E2 b2 X, ]" t我前面没描述清楚,我的情况是这样:
8 r3 Y; ?6 j: y: x& J
看上去像是u-boot中分区表配置错误,或者是你的spi nor flash出现了故障。
& j8 o+ y; R6 _2 J+ V我想询问一下:$ F1 Y, d7 A3 |8 }# A
1.在刷我修改之前的u-boot之前(也就是在使用Soul的U-boot的时候),你会遇到这个情况吗?) f2 b8 b0 `5 K( s6 O
2.在你卡在Starting kernel的时候,还能够进入emmc环境下的Debian吗?如果能,请问你能够在Debian下把spi flash的数据读取出来,以分析一下是否出现了错误吗?
5 A1 ]( |. T: d+ J4 I4 t, I如果可以的话,请提供一下无法正常启动时期的spi nor flash的备份镜像(应该是/dev目录下的各个mtdblock,以及/proc/mtd分区表),我需要根据这些信息进行分析。( u! r2 e- a4 q( H
谢谢!

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
发表于 2022-4-27 10:50:00 | 显示全部楼层
本帖最后由 mynetdisk 于 2022-4-27 10:53 编辑
' X8 [! K1 I; a8 }& e
fhh 发表于 2022-4-27 10:15
- I6 f. ^) s, v! O# T6 E看上去像是u-boot中分区表配置错误,或者是你的spi nor flash出现了故障。
* E4 Y+ ?2 n% s  l" u3 t6 B我想询问一下:
' H# d  X4 }5 h1.在刷我修改之 ...
7 f! o: d  p0 e, @& z8 ^  l
看上去像是u-boot中分区表配置错误2 q/ ~: J2 F2 \
--- 应该不是,因为并不是换了 uboot 之后出现卡 Starting kernel ... 问题,刚刷 uboot 后通常可以用,第 N 次重启之后可能出现 Starting kernel ...,之后再重启也必然这样,只能重新刷 uboot(注:不代表一定是 uboot 这里出了错,因为每次重刷 uboot 后需要重装群晖 DSM,所以也可能是因为重装 DSM 而暂时解决了问题)# Q! |$ Z- a) Q/ P

; D, W; g( p, G+ J或者是你的spi nor flash出现了故障1 X4 b: j' C: V
--- uboot bubt 命令刷写 SPI FLASH 后会不会校验呢,如果有校验,证明 FLASH 本身读写应该没问题,而是否后续 FLASH 数据出问题待确定3 R7 v* v$ L0 y" u# j( U1 z
1 h7 s- {6 |7 z' Q2 n
在刷我修改之前的u-boot之前(也就是在使用Soul的U-boot的时候),你会遇到这个情况吗?+ s  p, u4 l* `7 b% }4 B; i
--- 原来的 uboot 就会,并非你的修改导致的,是在 emmc 装了 debian 之后出现的(没改 uboot 启动顺序),不知道是不是巧合
9 {3 H/ _( H/ j1 `$ g9 q6 P
  ]( t/ a- M+ S* u* S  ^在你卡在Starting kernel的时候,还能够进入emmc环境下的Debian吗?
, X7 j4 ]9 `; f( [7 K7 d! A--- 能,引导群晖卡在 Starting kernel ...,而按住 RESET 5S 重新上电引导 Debian 能正常进系统
7 f% e4 @3 {; Y) E3 m$ d
- m9 g7 ?# D3 Y+ Q( U& B请问你能够在Debian下把spi flash的数据读取出来,以分析一下是否出现了错误吗?.# a1 Q! x5 ]/ V# K9 z; Y
--- 卡 Starting kernel ... 前后的 uboot 环境变量我对比过,是一样的。而整个 spi 的 flash 8M 镜像没有前后对比过,按理说除了环境变量以外其它部分应该是只读的?
4 B/ d4 z% Q/ }5 I5 p
# M9 f- ?- w9 g! P1 }请提供一下无法正常启动时期的spi nor flash的备份镜像(应该是/dev目录下的各个mtdblock,以及/proc/mtd分区表9 _2 V6 O  k: g4 p. U
--- 好的,晚上回家备份

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
发表于 2022-4-29 02:34:38 | 显示全部楼层
mynetdisk 发表于 2022-4-27 09:13
% i( d8 Q9 o+ x0 B5 J谢谢 F 大4 O1 M) A  Q+ M
我前面没描述清楚,我的情况是这样:
- m5 r+ Q, e. W( m5 F; k) n
我之前说:. Q* r9 }* e0 ?: A. \" e
一次 saveenv 后重启卡 Starting kernel ...,以为跟这个有关,之后试验排除了此可能. t3 E( W& y; ~7 G3 B
% s  j9 t; x* `" A0 ?. Y
现在我又不确定了,今天试了刷 uboot 重启几次正常启动群晖的情况下,saveenv 后重启就卡 Starting kernel ... 了,也许真像你说的是 uboot 分区表有问题(从而导致 saveenv 破坏了什么东西?)

46

主题

617

回帖

2764

积分

中级渣柚V3

积分
2764
发表于 2022-4-29 06:31:27 | 显示全部楼层
mynetdisk 发表于 2022-4-27 10:50+ L0 J6 `/ P1 V7 i
看上去像是u-boot中分区表配置错误
% h' v/ _& |6 v$ g/ W( s--- 应该不是,因为并不是换了 uboot 之后出现卡 Starting kernel ...  ...

/ m! N( P$ _4 `& G, l/ o' @做设计这么多年,spi flash 从来没有出现过问题。所有spi flash故障都可以用其他问题来解释。# D) @0 X4 \( r! o! ^6 y
这个应该可以排除。

46

主题

617

回帖

2764

积分

中级渣柚V3

积分
2764
发表于 2022-4-29 06:39:18 | 显示全部楼层
fhh 发表于 2022-4-26 18:08
( }- k. @! d( d- q- k- DU-boot有一部分问题。) M) p- l$ X: I9 U( q$ x. {0 W
我的做法是修改设备树,让Linux在重新初始化网卡的时候把功率拉到最大。  i; L; ~8 ^7 R) c  X1 b- E9 T
因为没有 ...

4 |, e% x' j5 s6 c( e' l+ Y2 Wsoul确实通过uboot修改了掉IP问题。不过没有开放。当时我测试过。具体改了啥不太清楚。还是要通过手册来查找哪里出的问题,慢慢来试试。

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-29 08:06:14 | 显示全部楼层
QQ66566 发表于 2022-4-29 06:39
. b& ]. M* @/ C( G/ L" v& @* rsoul确实通过uboot修改了掉IP问题。不过没有开放。当时我测试过。具体改了啥不太清楚。还是要通过手册来查 ...
: [6 E9 b7 c1 h; ]. f
是的。
# Y( H& l2 D7 J- B2 a8 L2 I# n只要u-boot不初始化PHY,其上电以后的默认配置不被覆盖,就不会掉IP。
" l5 a3 S- _! y6 t) _但是代价就是U-boot无法使用网卡,以及这其实算是一种……“鸵鸟”解法?( N# t* t( G. t, V, e" [- o- e
我的解法是修改设备树,使得它被初始化后,再次把信号增益数据填入。' ?8 z7 I$ P$ K) e, _
我认为这样才算是这个问题的真正正确解法。

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-29 08:07:28 | 显示全部楼层
本帖最后由 fhh 于 2022-4-29 08:16 编辑 6 B/ t# o7 P4 i
QQ66566 发表于 2022-4-29 06:312 L  O8 Q- C  |$ t2 Q6 W; b
做设计这么多年,spi flash 从来没有出现过问题。所有spi flash故障都可以用其他问题来解释。
" N7 v+ c( ?$ A7 [$ H这个应该可 ...

- c, q* h8 T: Z我的意思是,设备树中关于spi的分区配置错误,导致群晖把数据写入了其他的分区中。我在观察他的分区表的时候,发现u-boot中的分区配置,与手动dd出来的分区表……并不一致。, K. J' b+ W- Y& H$ ~4 \" j
按照设备树中定义的分区表dd出来的分区,全都是无效数据。  a& H/ X( M2 z+ T: w0 }  @* m+ R& L
换而言之,u-boot通过设备树暴露给群晖的分区,本身就是错误的。: g' a0 ?) F8 ]& f8 w8 ^) D) s/ e# u- E
我现在希望通过他的dump来分析u-boot和群晖究竟采取了哪一份分区表,以此来进行修复。
6 C# |" r( [+ y1 {
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-17 14:47 , Processed in 0.052252 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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