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

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

  [复制链接]

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-27 08:04:02 | 显示全部楼层
mynetdisk 发表于 2022-4-27 01:52
, |) m& H. \( L" M) n: d刷这个成功迁移并进入群晖
5 M8 o6 V4 e5 T, b: ?' a  _( f( o8 p% c5 m
可惜重启后又出现卡 Starting kernel ... 问题
$ p) d3 Y1 Z3 u, Y, b2 i3 f" }
哦,那应该是因为emmc引导顺序在群晖之前,但是群晖的u-boot提供的设备树与Linux不兼容。
' ^) {. w6 s1 F1 [# E你把emmc中的Debian抹掉就好了。

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
发表于 2022-4-27 09:13:43 | 显示全部楼层
本帖最后由 mynetdisk 于 2022-4-29 02:33 编辑 8 V3 |+ z+ b' _0 K! V; x2 Q
fhh 发表于 2022-4-27 08:04/ o( ]4 x! z% P# q9 A8 B
哦,那应该是因为emmc引导顺序在群晖之前,但是群晖的u-boot提供的设备树与Linux不兼容。8 Z, L( e7 c$ c$ t6 _  E
你把emmc中的De ...
/ ?" D" E7 {# }( N( f% c) r
谢谢 F 大
( Z! g( K8 a' w. x2 j+ S- T我前面没描述清楚,我的情况是这样:
3 X# v. P3 a" t& d! s# S6 K# U; L3 t  e. z0 o5 R
1.
! N' r& X4 S1 o  j& V, M" |启动时 TTL 默认显示 syno mode,然后在 Starting kernel ... 卡住
4 C* t% D* U' T6 [- H# l# w按住 RESET 5S 上电启动 TTL 显示 mmc mode,能正常进 Debian5 \* y9 x- z: p- ^2 e5 E  _
1 E' h7 F6 j- R! [, W
2.
" \2 d; j# {& X刚刷 u-boot 之后可以进群晖(也有一次刚刷完 uboot 就进不了群晖)
- h8 c9 F3 E% V: R, R6 u0 ~0 l之后某次重启后 syno mode 就卡在 Starting kernel ...(但 mmc mode 仍然可以进 debian)
' ?- O7 x# f2 m! y5 Z一旦出现卡 Starting kernel ...,再重启 N 次也还是卡 Starting kernel ...,直到下次刷 uboot 通常可以暂时解决$ X* y2 e# }; q4 s( ^& x4 @4 y

) S8 y# S1 q0 V  i: D3 Z( ^3.$ u, R% L* H3 A/ c$ E' d
一次 saveenv 后重启卡 Starting kernel ...,以为跟这个有关,之后试验排除了此可能【2022-04-29 修订:我又不确定了,今天试了刷 uboot 重启几次正常启动群晖的情况下,saveenv 后重启就卡 Starting kernel ... 了,也许真像你说的是 uboot 分区表有问题(从而导致 saveenv 破坏了什么东西?)】
$ l2 _( c% ]4 x5 L一次进 debian 后重启卡 Starting kernel ...,以为是 debian 自动修改了 uboot 环境变量,之后试验排除了此可能# K: s% T) p! s3 {) ^; {9 M
U盘、硬盘都拔掉试过,排除了这两种设备问题的可能

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-27 10:15:13 | 显示全部楼层
mynetdisk 发表于 2022-4-27 09:13
1 b$ j7 x- g* e! _+ A+ W谢谢 F 大0 C6 H3 B5 Y- w6 s/ S  S
我前面没描述清楚,我的情况是这样:

4 \8 v& x" u- @看上去像是u-boot中分区表配置错误,或者是你的spi nor flash出现了故障。8 T, y# C9 i, r$ q
我想询问一下:- r" r6 ^/ v1 P5 m2 q& }
1.在刷我修改之前的u-boot之前(也就是在使用Soul的U-boot的时候),你会遇到这个情况吗?
7 @2 [7 W. @9 T6 w: `& `* h2.在你卡在Starting kernel的时候,还能够进入emmc环境下的Debian吗?如果能,请问你能够在Debian下把spi flash的数据读取出来,以分析一下是否出现了错误吗?
( R9 ]$ K/ j) S7 B( L. e& l如果可以的话,请提供一下无法正常启动时期的spi nor flash的备份镜像(应该是/dev目录下的各个mtdblock,以及/proc/mtd分区表),我需要根据这些信息进行分析。! n! |# m( T+ ~0 i' k
谢谢!

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
发表于 2022-4-27 10:50:00 | 显示全部楼层
本帖最后由 mynetdisk 于 2022-4-27 10:53 编辑 ; R4 ?& n  P' K6 b. K: ~
fhh 发表于 2022-4-27 10:15
3 `# B8 c) E. |看上去像是u-boot中分区表配置错误,或者是你的spi nor flash出现了故障。
6 J2 U! E* Z- N- m) P我想询问一下:
5 d- I( x, v! L8 `1.在刷我修改之 ...

/ j5 O9 o9 G! Y7 P  [8 w/ \& V看上去像是u-boot中分区表配置错误
2 l& W8 y% n  t$ }% @* m--- 应该不是,因为并不是换了 uboot 之后出现卡 Starting kernel ... 问题,刚刷 uboot 后通常可以用,第 N 次重启之后可能出现 Starting kernel ...,之后再重启也必然这样,只能重新刷 uboot(注:不代表一定是 uboot 这里出了错,因为每次重刷 uboot 后需要重装群晖 DSM,所以也可能是因为重装 DSM 而暂时解决了问题)3 v/ Q5 N# G. }* a5 r" A5 ^' a

) u. A8 z1 r& v; G. t2 O% p或者是你的spi nor flash出现了故障) C' `' w) [- o# H4 {4 v
--- uboot bubt 命令刷写 SPI FLASH 后会不会校验呢,如果有校验,证明 FLASH 本身读写应该没问题,而是否后续 FLASH 数据出问题待确定5 V4 \  S, Z: b' w# o$ U' c

5 K0 O( e- g0 M1 |在刷我修改之前的u-boot之前(也就是在使用Soul的U-boot的时候),你会遇到这个情况吗?
( T1 z; c+ ]/ \+ z& r--- 原来的 uboot 就会,并非你的修改导致的,是在 emmc 装了 debian 之后出现的(没改 uboot 启动顺序),不知道是不是巧合
  ?: o) s0 N. k* W+ n9 Q$ k9 I
+ m2 K7 j# I* l  p! T2 u' n8 ?在你卡在Starting kernel的时候,还能够进入emmc环境下的Debian吗?. p' H4 y2 l: H% D" E3 q0 Q0 w
--- 能,引导群晖卡在 Starting kernel ...,而按住 RESET 5S 重新上电引导 Debian 能正常进系统) M0 ?! ^& n7 u- Q6 a

0 P% L7 o2 `: G/ U* t请问你能够在Debian下把spi flash的数据读取出来,以分析一下是否出现了错误吗?.
/ M2 b& ^& K9 @* P: E--- 卡 Starting kernel ... 前后的 uboot 环境变量我对比过,是一样的。而整个 spi 的 flash 8M 镜像没有前后对比过,按理说除了环境变量以外其它部分应该是只读的?2 i5 o4 e2 i; v  O9 t8 [  p
2 }( u, D; Y' Q# Z( \
请提供一下无法正常启动时期的spi nor flash的备份镜像(应该是/dev目录下的各个mtdblock,以及/proc/mtd分区表% F, }/ B7 y5 I* y
--- 好的,晚上回家备份

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
发表于 2022-4-29 02:34:38 | 显示全部楼层
mynetdisk 发表于 2022-4-27 09:13; x9 M# I+ A1 k" ]: c
谢谢 F 大) \6 j: p1 B( V5 M- N* I
我前面没描述清楚,我的情况是这样:

8 e& ~& v) M8 g. I9 u* ]5 M# a2 ?" S' r我之前说:
2 `( o& U! k* B, B- |* J$ U一次 saveenv 后重启卡 Starting kernel ...,以为跟这个有关,之后试验排除了此可能, r& ^# N' P1 h9 {3 P/ r

5 Q& Q6 S0 ~& a- p9 u# T" k- Q现在我又不确定了,今天试了刷 uboot 重启几次正常启动群晖的情况下,saveenv 后重启就卡 Starting kernel ... 了,也许真像你说的是 uboot 分区表有问题(从而导致 saveenv 破坏了什么东西?)

46

主题

617

回帖

2765

积分

中级渣柚V3

积分
2765
发表于 2022-4-29 06:31:27 | 显示全部楼层
mynetdisk 发表于 2022-4-27 10:50
8 u8 S, G6 |/ h' d$ e; L: e看上去像是u-boot中分区表配置错误) ^! k$ N) y/ i
--- 应该不是,因为并不是换了 uboot 之后出现卡 Starting kernel ...  ...
: @3 m% V: j, y: k% M
做设计这么多年,spi flash 从来没有出现过问题。所有spi flash故障都可以用其他问题来解释。
' b9 t1 I3 @5 o这个应该可以排除。

46

主题

617

回帖

2765

积分

中级渣柚V3

积分
2765
发表于 2022-4-29 06:39:18 | 显示全部楼层
fhh 发表于 2022-4-26 18:08' q8 @# V. L" k! |) p
U-boot有一部分问题。
' A% h" D* ]9 f$ J: x" Y% a! y我的做法是修改设备树,让Linux在重新初始化网卡的时候把功率拉到最大。; ~( E: c  Y1 t# o8 ?' I
因为没有 ...

/ Q8 {3 D8 ?7 `soul确实通过uboot修改了掉IP问题。不过没有开放。当时我测试过。具体改了啥不太清楚。还是要通过手册来查找哪里出的问题,慢慢来试试。

4

主题

71

回帖

280

积分

中级渣柚V1

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

. q3 u- ]' ?" \, _2 b# ?2 Q是的。
  h& [5 X$ G, G  P$ G; @只要u-boot不初始化PHY,其上电以后的默认配置不被覆盖,就不会掉IP。
# V  s- D. A/ I5 @但是代价就是U-boot无法使用网卡,以及这其实算是一种……“鸵鸟”解法?
: J. S7 m( o7 p3 t3 j; j我的解法是修改设备树,使得它被初始化后,再次把信号增益数据填入。( A& G; j0 D0 y
我认为这样才算是这个问题的真正正确解法。

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-29 08:07:28 | 显示全部楼层
本帖最后由 fhh 于 2022-4-29 08:16 编辑 & J- S' n1 g6 s4 `
QQ66566 发表于 2022-4-29 06:318 j1 H" S1 i- d8 D
做设计这么多年,spi flash 从来没有出现过问题。所有spi flash故障都可以用其他问题来解释。. ?5 G/ Z1 S; A: `
这个应该可 ...
$ M) K" \' c* i2 x6 K( t5 r
我的意思是,设备树中关于spi的分区配置错误,导致群晖把数据写入了其他的分区中。我在观察他的分区表的时候,发现u-boot中的分区配置,与手动dd出来的分区表……并不一致。7 B: U; u" c! {# Q. P
按照设备树中定义的分区表dd出来的分区,全都是无效数据。
1 x3 N3 P, s- U: I  G0 C换而言之,u-boot通过设备树暴露给群晖的分区,本身就是错误的。
- D- p) i# o2 ?我现在希望通过他的dump来分析u-boot和群晖究竟采取了哪一份分区表,以此来进行修复。$ y7 S0 Z$ v- \4 e
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-2-18 05:43 , Processed in 0.317019 second(s), 2 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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