|
|
本帖最后由 recfox 于 2019-11-27 22:42 编辑
- X: O: h4 |7 Q: i; B: _1 [ Y& ?& `
6 H: V0 [9 x+ T2 e查了日志,是udhcpc执行的时候,网卡down掉了,导致获取不到ip,自动分了169.254.x.x的ip,甚至因为网卡整个down直接不分IP。udhcpc不会运行第二次,之后一直crc错误
" f8 b5 _ u: `' g) P5 ?0 z
7 g, V& U1 T2 G2 d目前测试,把emmc里面的内容抹掉,重新写入full.bin的数据,清空emmc并重写full.bin后必然可以获取到IP。# V" b+ k: G W. D6 A& t/ d2 @
然后写入完整的DSM系统即可
% a8 ^6 t7 t- s; Y首先进shell:(坛子还不给上传代码,自己敲部分代码贴Google就能找到了)
9 i1 q E# d; H2 K8 ~; ]* ^
2 @- F- E7 X# z$ ]/ c
: y# Z8 U5 W w! ?; V- \然后重写emmc,可以参考板块里猫盘一键刷群辉命令脚本重写full.bin,我是下载到U盘然后sh执行,修改成本地路径不走github,太慢。! c4 h9 |; w; w \: Y7 Q
这样重启以后,能获取到ip。7 A1 X6 c0 i0 A8 T
5 p% u, P- u. K5 w% ~" o" ~
% L6 L, F! c( t2 h根据这情况,我猜测,应该是网卡驱动或者系统问题,让emmc里面的某些文件,记录了某些不该有的东西,或者执行了某些操作,导致dhcp失败+crc error。
0 X7 L# A/ A/ s3 D; a1 s1 V接下来的思路我想这么搞
1 X- d+ v. I7 K+ s0 p- E0 @% v8 y0 p6 v- V5 Q8 k% [
思路A:
& y l: j7 e+ w导出重写emmc后第一次和第二次执行的日志,diff对比。
9 A3 f+ T X: E4 v1 M+ N; s精确到时间。* b; k3 c1 k) S
# t+ C) \! \9 v) Z
思路B:% U3 |5 s7 s& ]+ j0 n$ K6 @6 _; V& |
1.按照上面的方法,分别dump写入镜像后和第一次开机后的emmc里的文件# S. o1 o& d% p4 l
2.提取出来后diff检查哪些文件被修改过(注意连带权限也一起检查,可能是某些文件权限问题导致的)- M2 U6 S! H( S( @% q$ K) u* b
3.筛选网络和dhcp相关的文件,进一步分析7 v* k! L+ t1 R+ M9 ~
4.想办法整到udhcpc的日志,分析(测试与其无关)
$ T* H; k. q& X5.分析不到或者拿不到的话,直接设置权限禁止那部分目录的写入试试,或者整个/目录禁止写入?
9 w8 Q! K9 z# u' f5 q2 x
: _' n% g5 }- u0 l思路C(我觉得可能跟udhcpc关系不大):% h& k! s! C( R, C! ?
测试无效。dhclient返回找不到网卡。* j( Q I3 s' g+ f
- 1970-01-01T08:07:57+08:00 a dhclient: Failed to get interface index: No such device5 s- A& e, l% {4 X& e" c
- 1970-01-01T08:07:57+08:00 a dhclient: 3 ^" |1 _" C3 m* N5 X( |, x" S2 |6 j. ~
- 1970-01-01T08:07:57+08:00 a dhclient: If you think you have received this message due to a bug rather
5 B$ L% v+ D5 a - 1970-01-01T08:07:57+08:00 a dhclient: than a configuration issue please read the section on submitting7 x* n6 \$ I" U% k; U& A
- 1970-01-01T08:07:57+08:00 a dhclient: bugs on either our web page at www.isc.org or in the README file n2 T8 l7 ~/ s& U
- 1970-01-01T08:07:57+08:00 a dhclient: before submitting a bug. These pages explain the proper
* o* b# o3 A) J - 1970-01-01T08:07:57+08:00 a dhclient: process and the information we find helpful for debugging..
. I, Q8 N) \! W - 1970-01-01T08:07:57+08:00 a dhclient:
, Y! t8 G+ c/ {& P2 z1 p - 1970-01-01T08:07:57+08:00 a dhclient: exiting.- V9 {; ]9 m- P' n6 p# ?( g3 v- w
复制代码 1 {! s- \) E5 Q4 y7 a6 `9 u6 ]$ p
1.升级udhcpc看看能否解决, X2 t8 t$ B/ v- c: A2 ]
2.不能的话,想办法让udhcpc执行前用其他方法给dhcp到,比如kill掉然后重新执行6 z q8 j5 ~; M! B4 H$ F
3.换其他dhcp client尝试
' |0 V" b+ {) _
0 O7 C% S" L P" W4 e7 s! N思路D:4 x0 g4 }# h5 l3 m4 B3 F4 o
按照前述方案dd emmc,然后第一次启动时按部就班写好DSM/Linux。此时因为需要出厂设置,在设置期间down掉的网卡会重新up回来。
9 ?) S- X7 F6 q9 a! y; v$ N# W! T2 f) d然后设置static ip/升级udhcpc等方法尝试6 H2 b3 R2 b1 ~- q
0 M7 d# @: C; ?; @0 L思路E(最简单,或许可行):
; v% v5 a2 O2 v( U8 R+ I8 I0 Q: B直接在udhcpc执行后sleep一分钟。
4 i0 N* d, K" C2 J" Y7 k+ Z8 L% Z. b; @/ W2 X$ V* x) C
上述方法CDE无效,进入系统后强制重新up网卡,系统提示找不到eth0
/ F& b2 N% r' b4 t; y应该是系统或者网卡驱动问题了,跟dhcp client关系应该不大9 N. o2 X5 U+ C# j0 z
接下来测试udhcpc运行之前网卡是否正常,然后分析前后日志看看
! B: j* w4 a' g4 w- a
. @5 H' t; t0 ~5 S# Y8 J
, T3 {3 }% q6 @思路F:
, R" {0 s% r. L. U6 T' y升级emmc里的网卡驱动/把x3p或者猫盘原系统的驱动移植过来看看
p, @, {7 `7 h! w( |1 m! [$ k! s
* A, V8 c2 ?( c1 f% B- e4 {明天出差,三周才能回来,希望有大佬尝试下。 R! g0 n& b, e3 }2 z
如果没有大佬帮忙整小的回来再整。, U) X: S9 A- R4 i% Q+ ?
|
|