|
|
发表于 2019-11-26 01:13:39
|
显示全部楼层
本帖最后由 recfox 于 2019-11-27 22:42 编辑
: D$ q" ^" D# v. R. t3 Q
# y* v4 x! e. `0 _6 ^! W查了日志,是udhcpc执行的时候,网卡down掉了,导致获取不到ip,自动分了169.254.x.x的ip,甚至因为网卡整个down直接不分IP。udhcpc不会运行第二次,之后一直crc错误
+ S4 ]8 N4 Y, p4 X2 D7 q" k( q
目前测试,把emmc里面的内容抹掉,重新写入full.bin的数据,清空emmc并重写full.bin后必然可以获取到IP。
+ z- x9 f# c* p# W _, N7 D然后写入完整的DSM系统即可 W5 o. a$ v6 O( k/ F
首先进shell:(坛子还不给上传代码,自己敲部分代码贴Google就能找到了)
! H4 [$ B2 B5 ?
0 E* p5 L9 H& `' ~" ]# d% ~
( ^1 @" d$ V5 y% X2 Q- L' |
然后重写emmc,可以参考板块里猫盘一键刷群辉命令脚本重写full.bin,我是下载到U盘然后sh执行,修改成本地路径不走github,太慢。" q3 I' z3 M: i2 N; J
这样重启以后,能获取到ip。
# P( S, P8 Y8 p, ]) u
) V1 C( w8 L0 \, m u; g' I- u* i" U# I" V% _
根据这情况,我猜测,应该是网卡驱动或者系统问题,让emmc里面的某些文件,记录了某些不该有的东西,或者执行了某些操作,导致dhcp失败+crc error。
) S( y5 X& I- e, Y a接下来的思路我想这么搞! {# D/ N- w5 k, T6 j
' `5 R9 L+ j- Q+ W* w8 p! v
思路A:
: N- p5 z e$ E- m- @导出重写emmc后第一次和第二次执行的日志,diff对比。- k( E3 @0 c$ w( E
精确到时间。' h) V$ J* S: K4 v
7 n' _) t& W' Y6 W+ t思路B:
) B0 U) q0 c' [- \% m: f% ]1.按照上面的方法,分别dump写入镜像后和第一次开机后的emmc里的文件
c7 A ~- ], g& a; P2.提取出来后diff检查哪些文件被修改过(注意连带权限也一起检查,可能是某些文件权限问题导致的)7 |+ l* p& i9 W1 z& |, q: _
3.筛选网络和dhcp相关的文件,进一步分析2 l3 W$ g' |8 R
4.想办法整到udhcpc的日志,分析(测试与其无关)
/ U0 R4 t" H' ?5.分析不到或者拿不到的话,直接设置权限禁止那部分目录的写入试试,或者整个/目录禁止写入?
0 w' L- |5 @! |! P8 y& {8 y( j k, M3 `: Q* h2 B8 C! _
思路C(我觉得可能跟udhcpc关系不大):
' d7 V) F% O, z& A测试无效。dhclient返回找不到网卡。# L/ e' d7 P9 R
- 1970-01-01T08:07:57+08:00 a dhclient: Failed to get interface index: No such device
`6 r1 `% `9 q' B1 H - 1970-01-01T08:07:57+08:00 a dhclient: 5 v* s6 ^& ~9 W% h# J6 o
- 1970-01-01T08:07:57+08:00 a dhclient: If you think you have received this message due to a bug rather
0 D4 G/ w( X- R" S8 X! a7 S1 o/ F0 M - 1970-01-01T08:07:57+08:00 a dhclient: than a configuration issue please read the section on submitting% p2 a% C# U" O( M O
- 1970-01-01T08:07:57+08:00 a dhclient: bugs on either our web page at www.isc.org or in the README file. T, _7 O1 p5 k
- 1970-01-01T08:07:57+08:00 a dhclient: before submitting a bug. These pages explain the proper
! e4 e- Q2 s L5 G - 1970-01-01T08:07:57+08:00 a dhclient: process and the information we find helpful for debugging..
& `/ n* k2 @* z/ D - 1970-01-01T08:07:57+08:00 a dhclient: ' d/ t7 B a" G, S) R5 z; O! W
- 1970-01-01T08:07:57+08:00 a dhclient: exiting.
% v. H) s5 Q% \% y
复制代码 ! g$ l& G( h( G( U5 k* H K
1.升级udhcpc看看能否解决) n2 ~8 z4 x5 x+ n& d: V
2.不能的话,想办法让udhcpc执行前用其他方法给dhcp到,比如kill掉然后重新执行
9 x- y3 |% t/ d3.换其他dhcp client尝试
$ a% a- g- g9 ~3 j+ ~
0 p g8 V v! `+ k思路D:: h6 ^' @! j& Q$ F
按照前述方案dd emmc,然后第一次启动时按部就班写好DSM/Linux。此时因为需要出厂设置,在设置期间down掉的网卡会重新up回来。
7 E, m. l3 f: H然后设置static ip/升级udhcpc等方法尝试* F+ k# V( y l# q4 R
) m2 }( m$ B! d% n) f X( W
思路E(最简单,或许可行): u( j+ G- j# a
直接在udhcpc执行后sleep一分钟。
2 w% [# e, f! H v% b! M# F1 H/ O: j) j8 ]+ q* f" l7 D
上述方法CDE无效,进入系统后强制重新up网卡,系统提示找不到eth0
* t j5 |+ |) q/ |/ M应该是系统或者网卡驱动问题了,跟dhcp client关系应该不大
$ V0 [, _" v9 D' t2 O0 ] _接下来测试udhcpc运行之前网卡是否正常,然后分析前后日志看看: r' y0 u6 k b/ l: N- f
0 g7 B+ B9 _4 t) T( i; _
! x/ J$ v- {4 c+ i% W* t思路F:
: `- W! H& V( `9 D( E5 N( R5 x: q% |升级emmc里的网卡驱动/把x3p或者猫盘原系统的驱动移植过来看看
+ `3 Z9 \: N+ s( x6 b- s' K. v/ R. J# ^# {0 c, o1 K
明天出差,三周才能回来,希望有大佬尝试下。2 q2 {$ z: F! q3 M6 ~
如果没有大佬帮忙整小的回来再整。
2 H5 P7 k# }: M1 i |
|