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

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

  [复制链接]

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-27 08:04:02 | 显示全部楼层
mynetdisk 发表于 2022-4-27 01:52: |7 @: \4 O1 W9 o9 W4 ]
刷这个成功迁移并进入群晖: [, K: X5 _6 j+ {) d

" Y3 m7 c, h7 u$ K可惜重启后又出现卡 Starting kernel ... 问题
5 _+ F4 W& H# }8 E0 Y# _
哦,那应该是因为emmc引导顺序在群晖之前,但是群晖的u-boot提供的设备树与Linux不兼容。# K% Q2 E# N+ Q6 y0 f) v0 l
你把emmc中的Debian抹掉就好了。

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
发表于 2022-4-27 09:13:43 | 显示全部楼层
本帖最后由 mynetdisk 于 2022-4-29 02:33 编辑
. y/ c8 I! |( |/ r0 [$ l% p
fhh 发表于 2022-4-27 08:049 e, a3 B8 q- X* w
哦,那应该是因为emmc引导顺序在群晖之前,但是群晖的u-boot提供的设备树与Linux不兼容。
3 y2 z& ^4 D. Z( u: H' u# v, u1 q# T4 t你把emmc中的De ...
) a3 O# O6 m. }$ R" X" ~1 I
谢谢 F 大! Q8 d% h3 ]6 ~
我前面没描述清楚,我的情况是这样:
2 O4 J! V3 O1 e
; y* y: n2 g4 F( e6 Q% U3 @3 m' o1.
" B5 W& q8 t+ L6 z8 B- i. x+ E6 v启动时 TTL 默认显示 syno mode,然后在 Starting kernel ... 卡住0 o9 b& {( U% m8 |" @* h0 H
按住 RESET 5S 上电启动 TTL 显示 mmc mode,能正常进 Debian, t2 |  Y$ T) m, J# @
& Y, {. j1 m$ `$ q4 u2 R
2.
' [! Y- h0 _8 y2 j刚刷 u-boot 之后可以进群晖(也有一次刚刷完 uboot 就进不了群晖)
8 z6 B! w$ {6 v$ @2 k8 t6 ?$ l之后某次重启后 syno mode 就卡在 Starting kernel ...(但 mmc mode 仍然可以进 debian)
  o' ]" ]( L/ {. F1 [  q8 Z+ w一旦出现卡 Starting kernel ...,再重启 N 次也还是卡 Starting kernel ...,直到下次刷 uboot 通常可以暂时解决1 _9 u+ j* g' @: ?1 T

( m7 d  b" W; D: w, ]' T, r" @5 `3.' b$ V! M4 ^; [) m, @3 p; x4 k
一次 saveenv 后重启卡 Starting kernel ...,以为跟这个有关,之后试验排除了此可能【2022-04-29 修订:我又不确定了,今天试了刷 uboot 重启几次正常启动群晖的情况下,saveenv 后重启就卡 Starting kernel ... 了,也许真像你说的是 uboot 分区表有问题(从而导致 saveenv 破坏了什么东西?)】
: i1 \+ i& ~1 Q4 P% j一次进 debian 后重启卡 Starting kernel ...,以为是 debian 自动修改了 uboot 环境变量,之后试验排除了此可能
% J9 B4 |+ {; ]U盘、硬盘都拔掉试过,排除了这两种设备问题的可能

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-27 10:15:13 | 显示全部楼层
mynetdisk 发表于 2022-4-27 09:139 s- K8 W+ M7 B4 Y5 T: o
谢谢 F 大
# W8 p4 \! J9 ?! ^, X* j3 x9 Q我前面没描述清楚,我的情况是这样:

! R: z1 J+ b+ X7 j看上去像是u-boot中分区表配置错误,或者是你的spi nor flash出现了故障。. a! |  z% e/ r0 z* N
我想询问一下:
7 E9 k( M; o7 H# n& c" i! I* g) U1.在刷我修改之前的u-boot之前(也就是在使用Soul的U-boot的时候),你会遇到这个情况吗?
" Y5 ~( F, n1 u, w% o6 V8 Y6 I$ s2.在你卡在Starting kernel的时候,还能够进入emmc环境下的Debian吗?如果能,请问你能够在Debian下把spi flash的数据读取出来,以分析一下是否出现了错误吗?: @8 `- k# F. A+ G/ s
如果可以的话,请提供一下无法正常启动时期的spi nor flash的备份镜像(应该是/dev目录下的各个mtdblock,以及/proc/mtd分区表),我需要根据这些信息进行分析。% _3 ~# v, A! S; o$ ?* I
谢谢!

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
发表于 2022-4-27 10:50:00 | 显示全部楼层
本帖最后由 mynetdisk 于 2022-4-27 10:53 编辑 $ n$ z- Z1 w/ {+ I; S' q
fhh 发表于 2022-4-27 10:15
$ k% C" V% }+ q! \% P6 r& g' Q, O看上去像是u-boot中分区表配置错误,或者是你的spi nor flash出现了故障。* `4 V1 y3 S; O# m' O" W
我想询问一下:
6 M9 H# `# [* t1.在刷我修改之 ...
( m+ g- _0 K' A6 F# [  o
看上去像是u-boot中分区表配置错误
8 |0 N, _0 d' s3 I--- 应该不是,因为并不是换了 uboot 之后出现卡 Starting kernel ... 问题,刚刷 uboot 后通常可以用,第 N 次重启之后可能出现 Starting kernel ...,之后再重启也必然这样,只能重新刷 uboot(注:不代表一定是 uboot 这里出了错,因为每次重刷 uboot 后需要重装群晖 DSM,所以也可能是因为重装 DSM 而暂时解决了问题)
; Q& v1 ]- K: O, Q* d' P8 g2 w$ f9 u& d6 f3 B
或者是你的spi nor flash出现了故障6 o) K# N7 ~+ S) d0 m+ u  {
--- uboot bubt 命令刷写 SPI FLASH 后会不会校验呢,如果有校验,证明 FLASH 本身读写应该没问题,而是否后续 FLASH 数据出问题待确定2 g! @  y6 g! e5 V# g, u  q
8 f& m3 Z$ T/ s1 M7 k7 v
在刷我修改之前的u-boot之前(也就是在使用Soul的U-boot的时候),你会遇到这个情况吗?2 X5 P* r, [# t' o6 ]% k
--- 原来的 uboot 就会,并非你的修改导致的,是在 emmc 装了 debian 之后出现的(没改 uboot 启动顺序),不知道是不是巧合
  m+ X2 D+ E$ g. S! A; f
) i, X$ I" [0 j# S" d6 a9 A7 w在你卡在Starting kernel的时候,还能够进入emmc环境下的Debian吗?
. d; y% l" t7 j7 @--- 能,引导群晖卡在 Starting kernel ...,而按住 RESET 5S 重新上电引导 Debian 能正常进系统/ ?( P' [, t. Q" R9 K

3 H) y3 Q( K9 L) ?( w请问你能够在Debian下把spi flash的数据读取出来,以分析一下是否出现了错误吗?.+ t& m1 V' i; _" j1 T( i' `
--- 卡 Starting kernel ... 前后的 uboot 环境变量我对比过,是一样的。而整个 spi 的 flash 8M 镜像没有前后对比过,按理说除了环境变量以外其它部分应该是只读的?
, q* @9 b1 j( X& y% m, u6 |+ Y! P9 N% {5 e; l5 O7 [
请提供一下无法正常启动时期的spi nor flash的备份镜像(应该是/dev目录下的各个mtdblock,以及/proc/mtd分区表& ?8 p- n& i. u) y+ l4 V
--- 好的,晚上回家备份

0

主题

32

回帖

50

积分

初级渣柚V2

积分
50
QQ
发表于 2022-4-29 02:34:38 | 显示全部楼层
mynetdisk 发表于 2022-4-27 09:13& I# B& L) X, ?1 H
谢谢 F 大( ]) o# b: l0 k2 V0 ~
我前面没描述清楚,我的情况是这样:
6 t+ v/ S! h4 O- N" k1 W8 g
我之前说:+ h6 C+ j, a# L3 S: E, M
一次 saveenv 后重启卡 Starting kernel ...,以为跟这个有关,之后试验排除了此可能
8 Y5 ?2 U* l: b* d: u2 t6 d$ T$ a+ `9 w) J! O  Y0 q5 r- y1 _+ I
现在我又不确定了,今天试了刷 uboot 重启几次正常启动群晖的情况下,saveenv 后重启就卡 Starting kernel ... 了,也许真像你说的是 uboot 分区表有问题(从而导致 saveenv 破坏了什么东西?)

46

主题

617

回帖

2765

积分

中级渣柚V3

积分
2765
发表于 2022-4-29 06:31:27 | 显示全部楼层
mynetdisk 发表于 2022-4-27 10:50( Q$ ?+ \8 l! `# E
看上去像是u-boot中分区表配置错误- B7 V2 F0 J" @% P6 ?1 p- S
--- 应该不是,因为并不是换了 uboot 之后出现卡 Starting kernel ...  ...

; B! L* I$ G( ^( X' Z! J做设计这么多年,spi flash 从来没有出现过问题。所有spi flash故障都可以用其他问题来解释。3 ^+ s  ?4 h9 m( L* j, f* S5 b
这个应该可以排除。

46

主题

617

回帖

2765

积分

中级渣柚V3

积分
2765
发表于 2022-4-29 06:39:18 | 显示全部楼层
fhh 发表于 2022-4-26 18:081 F$ O! G! e* j! A$ t. @
U-boot有一部分问题。
/ m/ z) A5 o; m我的做法是修改设备树,让Linux在重新初始化网卡的时候把功率拉到最大。; ^5 \) K$ ~. F2 ?
因为没有 ...

) a- R! y+ ]* Z8 d) \soul确实通过uboot修改了掉IP问题。不过没有开放。当时我测试过。具体改了啥不太清楚。还是要通过手册来查找哪里出的问题,慢慢来试试。

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-29 08:06:14 | 显示全部楼层
QQ66566 发表于 2022-4-29 06:39% t' p' p0 M; U" O0 A9 J9 I
soul确实通过uboot修改了掉IP问题。不过没有开放。当时我测试过。具体改了啥不太清楚。还是要通过手册来查 ...
& e! b$ y# O! j9 p  u
是的。  z- n/ I4 K  ?  l9 ~4 H# [
只要u-boot不初始化PHY,其上电以后的默认配置不被覆盖,就不会掉IP。
; J! i3 ]0 m2 O- Y! P但是代价就是U-boot无法使用网卡,以及这其实算是一种……“鸵鸟”解法?3 q2 m& j3 S# L: c$ m5 f, n8 q
我的解法是修改设备树,使得它被初始化后,再次把信号增益数据填入。) x7 [8 b1 y+ }% p& ~) e
我认为这样才算是这个问题的真正正确解法。

4

主题

71

回帖

280

积分

中级渣柚V1

积分
280
QQ
 楼主| 发表于 2022-4-29 08:07:28 | 显示全部楼层
本帖最后由 fhh 于 2022-4-29 08:16 编辑
' |9 Y, I% ^+ O/ P4 F4 R( q! ~2 m- ]
QQ66566 发表于 2022-4-29 06:310 v7 I0 h0 C) S% H& w/ a# l! Q
做设计这么多年,spi flash 从来没有出现过问题。所有spi flash故障都可以用其他问题来解释。
9 S/ Y6 D( j3 u" d# n这个应该可 ...
% ^+ [9 v0 s9 |) E/ @& A; d& p
我的意思是,设备树中关于spi的分区配置错误,导致群晖把数据写入了其他的分区中。我在观察他的分区表的时候,发现u-boot中的分区配置,与手动dd出来的分区表……并不一致。
% l  o$ q  O1 s' W; v( g. u按照设备树中定义的分区表dd出来的分区,全都是无效数据。( G0 h3 _% G* T+ g
换而言之,u-boot通过设备树暴露给群晖的分区,本身就是错误的。
4 I2 _- T! i0 m' N我现在希望通过他的dump来分析u-boot和群晖究竟采取了哪一份分区表,以此来进行修复。4 m; L- _1 X3 b1 S! O, U: p, e% |
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-2-18 03:46 , Processed in 0.077558 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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