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

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

  [复制链接]

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-27 08:04:02 | 显示全部楼层
mynetdisk 发表于 2022-4-27 01:52& n  V' ?4 f; p, c8 q
刷这个成功迁移并进入群晖5 @) Q, g$ ^- U0 @* t( ?, {3 m- ~

/ ^' t( Z3 V5 j5 O. t+ v; i7 N可惜重启后又出现卡 Starting kernel ... 问题

( B) Y# G% o6 S) w. n4 S* f哦,那应该是因为emmc引导顺序在群晖之前,但是群晖的u-boot提供的设备树与Linux不兼容。
8 z$ R0 L( C* q" _; t: @4 I) v4 x你把emmc中的Debian抹掉就好了。

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
发表于 2022-4-27 09:13:43 | 显示全部楼层
本帖最后由 mynetdisk 于 2022-4-29 02:33 编辑 5 G5 n( q- u4 y- I: P& R4 D
fhh 发表于 2022-4-27 08:04
, n, ~; b% r( X$ z, p4 C哦,那应该是因为emmc引导顺序在群晖之前,但是群晖的u-boot提供的设备树与Linux不兼容。% n( ?% V6 \3 s7 [
你把emmc中的De ...

# ^% v' b* Z( @/ R" s; U谢谢 F 大
3 T* {0 a3 \# ^) _5 X我前面没描述清楚,我的情况是这样:/ a+ d! ?4 V, z: f* B
) F6 U9 d1 h; W0 u- p
1.4 `: H' @3 _5 |3 c: |* N& g
启动时 TTL 默认显示 syno mode,然后在 Starting kernel ... 卡住
/ b: u9 {* z) M/ ?3 z按住 RESET 5S 上电启动 TTL 显示 mmc mode,能正常进 Debian
9 n5 R  p- ^" `
0 G# k2 k0 O3 |% B0 t9 ~2.
8 ~7 |; I; D. A刚刷 u-boot 之后可以进群晖(也有一次刚刷完 uboot 就进不了群晖)7 O" }! D# |6 r! L" M
之后某次重启后 syno mode 就卡在 Starting kernel ...(但 mmc mode 仍然可以进 debian)
" i4 c7 ^( z2 j- w6 X一旦出现卡 Starting kernel ...,再重启 N 次也还是卡 Starting kernel ...,直到下次刷 uboot 通常可以暂时解决
: e% N2 i2 {# y( W5 S
9 N0 z* b) n  U& G4 y' `. y3.; W! w( ?6 E6 G( n& U- ~/ X
一次 saveenv 后重启卡 Starting kernel ...,以为跟这个有关,之后试验排除了此可能【2022-04-29 修订:我又不确定了,今天试了刷 uboot 重启几次正常启动群晖的情况下,saveenv 后重启就卡 Starting kernel ... 了,也许真像你说的是 uboot 分区表有问题(从而导致 saveenv 破坏了什么东西?)】* f, v% ~6 d' K9 X' M0 R
一次进 debian 后重启卡 Starting kernel ...,以为是 debian 自动修改了 uboot 环境变量,之后试验排除了此可能
) M( ~/ A8 Q5 ]9 A: ~" iU盘、硬盘都拔掉试过,排除了这两种设备问题的可能

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-27 10:15:13 | 显示全部楼层
mynetdisk 发表于 2022-4-27 09:13& w+ [3 e) i4 L& x" Z. u- K  M2 D. w
谢谢 F 大0 y, e6 Y# ^/ ]; ]1 \& O
我前面没描述清楚,我的情况是这样:
, g1 o) c- H3 z% |8 b
看上去像是u-boot中分区表配置错误,或者是你的spi nor flash出现了故障。
3 f3 o; i. M6 m/ d( _7 F: l我想询问一下:" S: h* ]2 @8 k2 X; O
1.在刷我修改之前的u-boot之前(也就是在使用Soul的U-boot的时候),你会遇到这个情况吗?
7 f- h* d' D+ B: M; Y+ C2.在你卡在Starting kernel的时候,还能够进入emmc环境下的Debian吗?如果能,请问你能够在Debian下把spi flash的数据读取出来,以分析一下是否出现了错误吗?
( \4 s( s- A6 s7 a6 D, g如果可以的话,请提供一下无法正常启动时期的spi nor flash的备份镜像(应该是/dev目录下的各个mtdblock,以及/proc/mtd分区表),我需要根据这些信息进行分析。
" X  x( D; i7 L谢谢!

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
发表于 2022-4-27 10:50:00 | 显示全部楼层
本帖最后由 mynetdisk 于 2022-4-27 10:53 编辑 ' J/ o9 S5 s# _5 I
fhh 发表于 2022-4-27 10:154 l: z5 l+ p5 J3 `0 k
看上去像是u-boot中分区表配置错误,或者是你的spi nor flash出现了故障。
  e& b/ E# l6 H8 l* \我想询问一下:
! A) Y+ U$ u; w; \1.在刷我修改之 ...

/ P4 A! j( O1 A7 D6 B- D5 V看上去像是u-boot中分区表配置错误) H( F3 }* G1 Y! k/ W$ j5 S/ P
--- 应该不是,因为并不是换了 uboot 之后出现卡 Starting kernel ... 问题,刚刷 uboot 后通常可以用,第 N 次重启之后可能出现 Starting kernel ...,之后再重启也必然这样,只能重新刷 uboot(注:不代表一定是 uboot 这里出了错,因为每次重刷 uboot 后需要重装群晖 DSM,所以也可能是因为重装 DSM 而暂时解决了问题)" v& Q# U) F' B4 S, s, p
; c/ m* V% m2 a! V# K% v
或者是你的spi nor flash出现了故障: D8 Q  e" k% M4 ~/ d8 R
--- uboot bubt 命令刷写 SPI FLASH 后会不会校验呢,如果有校验,证明 FLASH 本身读写应该没问题,而是否后续 FLASH 数据出问题待确定
, W# d. R! [8 @' K( u2 X0 v! |" Y: c$ l5 P
在刷我修改之前的u-boot之前(也就是在使用Soul的U-boot的时候),你会遇到这个情况吗?
) I4 }0 W/ F/ V3 c0 H--- 原来的 uboot 就会,并非你的修改导致的,是在 emmc 装了 debian 之后出现的(没改 uboot 启动顺序),不知道是不是巧合
' @( C8 @/ e9 k  }3 U3 G- V, n( ]5 f! G' O7 @8 |
在你卡在Starting kernel的时候,还能够进入emmc环境下的Debian吗?" [: i: n. I, Z6 r* {" T
--- 能,引导群晖卡在 Starting kernel ...,而按住 RESET 5S 重新上电引导 Debian 能正常进系统
; V$ Z' \5 t7 i. `, a3 J- T/ i9 d2 M% s9 k, H
请问你能够在Debian下把spi flash的数据读取出来,以分析一下是否出现了错误吗?.
5 n( R' G2 x9 b0 q$ ]--- 卡 Starting kernel ... 前后的 uboot 环境变量我对比过,是一样的。而整个 spi 的 flash 8M 镜像没有前后对比过,按理说除了环境变量以外其它部分应该是只读的?
* ^5 ?( h/ |2 Y2 Y# K  \( J2 _9 W) r- N4 e  n) Y) a$ i( g$ U% Q& W
请提供一下无法正常启动时期的spi nor flash的备份镜像(应该是/dev目录下的各个mtdblock,以及/proc/mtd分区表
6 Y  L- P3 B9 y% D; u--- 好的,晚上回家备份

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
发表于 2022-4-29 02:34:38 | 显示全部楼层
mynetdisk 发表于 2022-4-27 09:13
  G0 f0 D0 V- B谢谢 F 大
+ Q+ B1 Y8 W! Q/ o, |% c我前面没描述清楚,我的情况是这样:

! {1 j/ E, d3 P* t& s6 `我之前说:$ N) b2 N8 j  w) i- k! J  N
一次 saveenv 后重启卡 Starting kernel ...,以为跟这个有关,之后试验排除了此可能
. R8 I! N! k- K$ _4 O6 ^+ c) A% q  e* \4 ^
0 d+ u8 K* P, d# k$ y: A; w3 K现在我又不确定了,今天试了刷 uboot 重启几次正常启动群晖的情况下,saveenv 后重启就卡 Starting kernel ... 了,也许真像你说的是 uboot 分区表有问题(从而导致 saveenv 破坏了什么东西?)

46

主题

617

回帖

2764

积分

中级渣柚V3

积分
2764
发表于 2022-4-29 06:31:27 | 显示全部楼层
mynetdisk 发表于 2022-4-27 10:50
* b4 I9 n$ i7 `2 m+ g1 d看上去像是u-boot中分区表配置错误
& q( T& ^2 X. p+ N9 p- T- n* R--- 应该不是,因为并不是换了 uboot 之后出现卡 Starting kernel ...  ...

; d# A+ a3 x+ W. C做设计这么多年,spi flash 从来没有出现过问题。所有spi flash故障都可以用其他问题来解释。
$ s, |3 e& L$ P! A/ d这个应该可以排除。

46

主题

617

回帖

2764

积分

中级渣柚V3

积分
2764
发表于 2022-4-29 06:39:18 | 显示全部楼层
fhh 发表于 2022-4-26 18:08
+ Z% x0 s9 q0 [" oU-boot有一部分问题。# G: h! y) D' i* b. \* {: n, {
我的做法是修改设备树,让Linux在重新初始化网卡的时候把功率拉到最大。
: g$ a7 b5 J4 _* {因为没有 ...
! {5 W& m& }" z( x7 h  Q1 d
soul确实通过uboot修改了掉IP问题。不过没有开放。当时我测试过。具体改了啥不太清楚。还是要通过手册来查找哪里出的问题,慢慢来试试。

4

主题

71

回帖

280

积分

中级渣柚V1

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

/ q* J2 ]3 e. ^9 z3 O是的。# h" c8 _. ]% y# J3 J8 O& _2 \
只要u-boot不初始化PHY,其上电以后的默认配置不被覆盖,就不会掉IP。
5 ]$ w2 F7 g$ ~0 |1 v. V3 ~+ ^. i, e但是代价就是U-boot无法使用网卡,以及这其实算是一种……“鸵鸟”解法?4 o; J9 g0 \. n* H/ E, Y
我的解法是修改设备树,使得它被初始化后,再次把信号增益数据填入。
5 r" g& M% z+ W! x' J1 q我认为这样才算是这个问题的真正正确解法。

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-29 08:07:28 | 显示全部楼层
本帖最后由 fhh 于 2022-4-29 08:16 编辑
) F' ?6 x  Q5 S1 T1 {
QQ66566 发表于 2022-4-29 06:31
0 O  L- @7 u8 q$ ^做设计这么多年,spi flash 从来没有出现过问题。所有spi flash故障都可以用其他问题来解释。
; a; h& T7 _- R! }& J; m这个应该可 ...

& V* C1 `! E. Q* N" `我的意思是,设备树中关于spi的分区配置错误,导致群晖把数据写入了其他的分区中。我在观察他的分区表的时候,发现u-boot中的分区配置,与手动dd出来的分区表……并不一致。
& f4 ^+ J! a% P+ G$ I4 H按照设备树中定义的分区表dd出来的分区,全都是无效数据。
- A; u3 _) e) f2 |( ^4 [换而言之,u-boot通过设备树暴露给群晖的分区,本身就是错误的。( J. ?3 P: k8 e) r& |
我现在希望通过他的dump来分析u-boot和群晖究竟采取了哪一份分区表,以此来进行修复。
' ^/ p* i* P! m. t! z% B
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-11-23 15:03 , Processed in 0.062567 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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