|
|
本帖最后由 recfox 于 2019-11-27 22:42 编辑 9 H; Z% L* `; s, w7 y( @$ O# S
( O1 ?' `: O }1 e$ s3 u5 z查了日志,是udhcpc执行的时候,网卡down掉了,导致获取不到ip,自动分了169.254.x.x的ip,甚至因为网卡整个down直接不分IP。udhcpc不会运行第二次,之后一直crc错误# b+ Z8 e) W7 L1 q0 _
( \& F8 V" W9 C& A目前测试,把emmc里面的内容抹掉,重新写入full.bin的数据,清空emmc并重写full.bin后必然可以获取到IP。+ l/ B3 G4 h: M* a- G
然后写入完整的DSM系统即可
* S7 m% A; `" A首先进shell:(坛子还不给上传代码,自己敲部分代码贴Google就能找到了)$ k9 Z+ o8 {6 ^" |6 M0 r" c
2 z% v$ k5 S2 s) R
+ Y* l/ F q% X7 i! L% O然后重写emmc,可以参考板块里猫盘一键刷群辉命令脚本重写full.bin,我是下载到U盘然后sh执行,修改成本地路径不走github,太慢。$ i% u( S# e) U
这样重启以后,能获取到ip。( F2 T) w6 W! T7 \* R' m
! ]# n+ @6 Y- T% o1 c h$ n, m# F9 {2 p+ V; \% }4 _9 f' t
根据这情况,我猜测,应该是网卡驱动或者系统问题,让emmc里面的某些文件,记录了某些不该有的东西,或者执行了某些操作,导致dhcp失败+crc error。- \% v. Q( B N9 z! ~
接下来的思路我想这么搞" _3 y/ r4 @& \" d& R
! ] h! ?( a6 J0 Q6 D3 ^思路A:1 L, y0 w- d" n. _8 K
导出重写emmc后第一次和第二次执行的日志,diff对比。
9 w; d* ]% W% h8 Y, T精确到时间。# f h4 V" ^2 a9 `/ b. L
4 D- h! R/ P; q, q( x9 C' o- P思路B:
5 y3 p0 k- K/ m. C# p* o9 @/ ^1.按照上面的方法,分别dump写入镜像后和第一次开机后的emmc里的文件
) g% c. w6 G7 z& a! {2.提取出来后diff检查哪些文件被修改过(注意连带权限也一起检查,可能是某些文件权限问题导致的): G! i: X- v1 P5 m
3.筛选网络和dhcp相关的文件,进一步分析7 A- z5 h( m5 [! r3 I
4.想办法整到udhcpc的日志,分析(测试与其无关)5 {1 F( C; M! j# e
5.分析不到或者拿不到的话,直接设置权限禁止那部分目录的写入试试,或者整个/目录禁止写入?0 r. K0 J% n. u0 |
* ~6 z4 n5 ~2 b4 J5 J$ z! a+ V
思路C(我觉得可能跟udhcpc关系不大):
& x/ Z% s, ^0 g# x4 O6 W测试无效。dhclient返回找不到网卡。% e6 i/ X {6 K6 o* \9 q
- 1970-01-01T08:07:57+08:00 a dhclient: Failed to get interface index: No such device
: k" O$ ^+ y& Q* b7 ]7 A - 1970-01-01T08:07:57+08:00 a dhclient:
& h5 M* @6 L" g+ ? - 1970-01-01T08:07:57+08:00 a dhclient: If you think you have received this message due to a bug rather/ @) N. q! K" A+ v9 l, t
- 1970-01-01T08:07:57+08:00 a dhclient: than a configuration issue please read the section on submitting
5 R. j9 Z$ W; Y1 j7 Z5 }) F - 1970-01-01T08:07:57+08:00 a dhclient: bugs on either our web page at www.isc.org or in the README file
' W6 w" G9 S+ H - 1970-01-01T08:07:57+08:00 a dhclient: before submitting a bug. These pages explain the proper* _( m6 P' T: P
- 1970-01-01T08:07:57+08:00 a dhclient: process and the information we find helpful for debugging.., h+ o# i/ }1 p9 t
- 1970-01-01T08:07:57+08:00 a dhclient:
8 y0 o, v8 F' p2 M& e4 E - 1970-01-01T08:07:57+08:00 a dhclient: exiting.
v0 g8 C/ [/ D4 x6 ?' i. q
复制代码 " H3 Y7 ?' O: w/ p
1.升级udhcpc看看能否解决4 c: e: M I7 ?0 |5 D4 a4 ?% ]" _, Y8 Z
2.不能的话,想办法让udhcpc执行前用其他方法给dhcp到,比如kill掉然后重新执行! C1 B. i/ L9 l" o7 _1 a! [4 w
3.换其他dhcp client尝试
$ k) ]* U, M- Z; z
0 `# Q7 _9 _) f& i9 h7 t思路D:0 e$ T7 x+ R: H# f
按照前述方案dd emmc,然后第一次启动时按部就班写好DSM/Linux。此时因为需要出厂设置,在设置期间down掉的网卡会重新up回来。
+ H4 ]9 ]! |9 P; |8 \; J9 `然后设置static ip/升级udhcpc等方法尝试
& y8 D. H& e) P* A4 [+ ?% T R1 M. s& J
思路E(最简单,或许可行):7 J. u7 D2 y: ^; K1 H! ?
直接在udhcpc执行后sleep一分钟。, \4 a( M1 }4 e. k% g: `
$ s8 r3 y9 ^' ^3 C上述方法CDE无效,进入系统后强制重新up网卡,系统提示找不到eth0
3 k' f5 e: @: c2 M1 g6 ^6 W6 l应该是系统或者网卡驱动问题了,跟dhcp client关系应该不大- G' `+ w& |+ n7 o
接下来测试udhcpc运行之前网卡是否正常,然后分析前后日志看看
# a" e3 B3 m- U; f. [# v8 k L) \# C, j
# Z& O. q- c' u0 s2 W0 \
思路F:
$ l4 Y: E+ x' j `升级emmc里的网卡驱动/把x3p或者猫盘原系统的驱动移植过来看看# ]& r( U1 G$ n0 R2 v2 j* l
$ |: Q9 t, f8 B7 K0 r明天出差,三周才能回来,希望有大佬尝试下。$ [/ r, W" r& P [ }- ~: a- p" U
如果没有大佬帮忙整小的回来再整。+ s7 y9 S# K+ T: Y; N; U- _$ |4 T
|
|