|
发表于 2019-11-26 01:13:39
|
显示全部楼层
本帖最后由 recfox 于 2019-11-27 22:42 编辑 8 O+ V0 W( n5 i- C, D
5 x8 l! a, I# a& p" v* h- P查了日志,是udhcpc执行的时候,网卡down掉了,导致获取不到ip,自动分了169.254.x.x的ip,甚至因为网卡整个down直接不分IP。udhcpc不会运行第二次,之后一直crc错误3 O: r3 K0 S9 [9 o& w) L3 v
7 z% l2 H: Q L$ g目前测试,把emmc里面的内容抹掉,重新写入full.bin的数据,清空emmc并重写full.bin后必然可以获取到IP。
! d( C! I7 p# }5 h( q! J5 Q1 K/ X然后写入完整的DSM系统即可/ J' Z8 A5 f. e, ?/ y% L5 C
首先进shell:(坛子还不给上传代码,自己敲部分代码贴Google就能找到了)& H1 w" X0 G3 O0 Q1 X8 c+ r
4 S- e9 }' f) `6 c ]" ~5 y% z
; c0 `& e4 Y, }8 D9 G
然后重写emmc,可以参考板块里猫盘一键刷群辉命令脚本重写full.bin,我是下载到U盘然后sh执行,修改成本地路径不走github,太慢。7 K3 k) J& T! w- D/ B
这样重启以后,能获取到ip。
; o! x2 h8 w. s+ W+ l7 l) o
2 ]+ I, c @/ N; m" h+ ]6 I) ]
/ r0 K) b" R/ k9 T1 A根据这情况,我猜测,应该是网卡驱动或者系统问题,让emmc里面的某些文件,记录了某些不该有的东西,或者执行了某些操作,导致dhcp失败+crc error。( P8 y% P. k% m5 V; L- K' x: C: p/ u+ b
接下来的思路我想这么搞4 n* v5 d# T$ ^% M, i
% [" E( ]/ l( R c
思路A:
: B; _, r' f8 C5 I3 A. r; U导出重写emmc后第一次和第二次执行的日志,diff对比。
8 q) D# f4 B" P/ u2 Z4 f+ g精确到时间。
" M/ G7 ]9 t d$ n
2 f+ B5 _/ G0 r+ N) N$ K5 |/ s5 T$ U# |& C& N思路B:8 _! _) W: m9 c
1.按照上面的方法,分别dump写入镜像后和第一次开机后的emmc里的文件$ r% E' c- G7 g
2.提取出来后diff检查哪些文件被修改过(注意连带权限也一起检查,可能是某些文件权限问题导致的)
) v" ]# |2 r( ^$ s3.筛选网络和dhcp相关的文件,进一步分析
6 J! g$ `* _# L. G" S7 u% v P0 ?& k4.想办法整到udhcpc的日志,分析(测试与其无关)
. C: e7 K7 f1 S; q, j5.分析不到或者拿不到的话,直接设置权限禁止那部分目录的写入试试,或者整个/目录禁止写入?
* O% H6 U; P d$ K
1 \. T2 T# J t6 w1 A' a( h" b8 E思路C(我觉得可能跟udhcpc关系不大):8 e l+ V" A! D
测试无效。dhclient返回找不到网卡。; V: D2 Y! p2 ^' Q n7 g
- 1970-01-01T08:07:57+08:00 a dhclient: Failed to get interface index: No such device
% L$ j6 u9 ?4 ` - 1970-01-01T08:07:57+08:00 a dhclient: 0 ?2 U5 [! N% ^- U _
- 1970-01-01T08:07:57+08:00 a dhclient: If you think you have received this message due to a bug rather1 D* s8 G0 B: L8 X2 x, `( O9 i
- 1970-01-01T08:07:57+08:00 a dhclient: than a configuration issue please read the section on submitting0 S ?/ M, z( z
- 1970-01-01T08:07:57+08:00 a dhclient: bugs on either our web page at www.isc.org or in the README file, O2 c; @& d8 w4 }+ [
- 1970-01-01T08:07:57+08:00 a dhclient: before submitting a bug. These pages explain the proper
5 s' [4 W1 I2 H$ I. u) Z - 1970-01-01T08:07:57+08:00 a dhclient: process and the information we find helpful for debugging.., V6 V. ?. @' G0 c! A3 O1 B9 B) L
- 1970-01-01T08:07:57+08:00 a dhclient: 5 e( ^6 W1 g4 g2 U& C
- 1970-01-01T08:07:57+08:00 a dhclient: exiting.
; U, G. A4 H, [. G% a( E* b
复制代码
6 v9 K- F* x2 c$ ?+ j1.升级udhcpc看看能否解决& O ?4 j- K2 f" {
2.不能的话,想办法让udhcpc执行前用其他方法给dhcp到,比如kill掉然后重新执行
& k& k6 t% g o; M8 z+ L K3.换其他dhcp client尝试
- C# }2 ?' z3 ]4 L3 [, @
4 y4 J* M* c. N) ?思路D:
0 K. Q7 e$ A+ ]) A, m L按照前述方案dd emmc,然后第一次启动时按部就班写好DSM/Linux。此时因为需要出厂设置,在设置期间down掉的网卡会重新up回来。
7 Q/ f1 ?& X% b- {) Q1 i; N然后设置static ip/升级udhcpc等方法尝试2 u5 ?6 T/ ?) L' M w" _6 D
# U! A( ~) C& T2 o" y思路E(最简单,或许可行):" Y* J) L' ^. E* x* j) [
直接在udhcpc执行后sleep一分钟。! j7 G& S1 K9 j+ t3 o: w
+ o! W5 t" A- a% J# U Y' X上述方法CDE无效,进入系统后强制重新up网卡,系统提示找不到eth0: R* j* ^3 K+ B, G
应该是系统或者网卡驱动问题了,跟dhcp client关系应该不大
% a; M; q. }( i3 ?. l1 ?接下来测试udhcpc运行之前网卡是否正常,然后分析前后日志看看. F$ F- ^- l% {+ y% r% ^
( q) F5 E6 ?0 B6 ?
. X! n/ k* X3 A; m思路F:
/ W$ G3 ?" o* |- l6 `3 p+ v6 O1 j: [升级emmc里的网卡驱动/把x3p或者猫盘原系统的驱动移植过来看看 P8 l% d3 f0 l- e9 _( N
: s. z* t4 p9 N4 O0 e" `8 i' S明天出差,三周才能回来,希望有大佬尝试下。1 h2 n0 d$ ^, F- K- }7 C
如果没有大佬帮忙整小的回来再整。- L9 @( C, P2 t' r1 }; ^+ ?
|
|