|
发表于 2019-11-26 01:13:39
|
显示全部楼层
本帖最后由 recfox 于 2019-11-27 22:42 编辑
1 |; W* y4 K+ F5 `- p8 T, b" B4 O4 m5 B# w6 u
查了日志,是udhcpc执行的时候,网卡down掉了,导致获取不到ip,自动分了169.254.x.x的ip,甚至因为网卡整个down直接不分IP。udhcpc不会运行第二次,之后一直crc错误
4 x% X' P/ m6 a) ^ w( {2 X% s8 M) u: j) C. j, D6 p3 }
目前测试,把emmc里面的内容抹掉,重新写入full.bin的数据,清空emmc并重写full.bin后必然可以获取到IP。3 a, z( h8 s- x
然后写入完整的DSM系统即可9 T m; `, b: {7 a( ?
首先进shell:(坛子还不给上传代码,自己敲部分代码贴Google就能找到了)
( J5 O$ ^7 Z& q- W& L) k; u
, s9 D; }3 D$ Z0 b" B6 |% q, e9 ]& T2 {% Z, [+ ~6 h i% G
然后重写emmc,可以参考板块里猫盘一键刷群辉命令脚本重写full.bin,我是下载到U盘然后sh执行,修改成本地路径不走github,太慢。+ X! o3 N3 L+ _3 X3 o4 e+ W
这样重启以后,能获取到ip。; j4 t2 X) q% Q: B7 T
- k6 J4 t/ @/ N! x
0 `6 r+ `1 M9 j" e
根据这情况,我猜测,应该是网卡驱动或者系统问题,让emmc里面的某些文件,记录了某些不该有的东西,或者执行了某些操作,导致dhcp失败+crc error。+ m3 `2 q: M3 C- t
接下来的思路我想这么搞
$ |8 ]/ H5 b( z4 E
1 ?4 H* v5 w/ h, r思路A:1 m" g# v3 o: V
导出重写emmc后第一次和第二次执行的日志,diff对比。
) r) d# ~+ n3 e0 Q' k& w6 @9 N精确到时间。
9 c, c- k1 d) t+ D. P. ^
! f" S0 W- ~' e1 W1 K思路B:2 x9 @5 W( U7 \5 L2 p) V
1.按照上面的方法,分别dump写入镜像后和第一次开机后的emmc里的文件& a2 D+ V- K2 k* V$ i9 Y- i# t
2.提取出来后diff检查哪些文件被修改过(注意连带权限也一起检查,可能是某些文件权限问题导致的)
; R) c( @/ B7 Q% V( k3.筛选网络和dhcp相关的文件,进一步分析1 v( b1 O3 U( u- n8 X! @: b
4.想办法整到udhcpc的日志,分析(测试与其无关)7 ?8 \7 x8 ~9 ^9 k) S
5.分析不到或者拿不到的话,直接设置权限禁止那部分目录的写入试试,或者整个/目录禁止写入?$ y) E ]" s. f, U* S
8 }1 ?( q: V4 Y思路C(我觉得可能跟udhcpc关系不大):
4 k# J3 p z+ [) X2 J测试无效。dhclient返回找不到网卡。* Y' t# u/ a7 N$ Y6 u' Z1 T. R7 `# N
- 1970-01-01T08:07:57+08:00 a dhclient: Failed to get interface index: No such device0 _7 k) {9 R+ h0 X% a, b: K( z
- 1970-01-01T08:07:57+08:00 a dhclient:
) K, n2 c; _7 U) U- |& Z - 1970-01-01T08:07:57+08:00 a dhclient: If you think you have received this message due to a bug rather& L* _, N8 ?( ^1 X! W
- 1970-01-01T08:07:57+08:00 a dhclient: than a configuration issue please read the section on submitting
3 c+ z) C1 C5 G4 s/ \" Z+ m% d+ C - 1970-01-01T08:07:57+08:00 a dhclient: bugs on either our web page at www.isc.org or in the README file
& q$ F( L* w, A - 1970-01-01T08:07:57+08:00 a dhclient: before submitting a bug. These pages explain the proper
3 L) c. O* Q! T1 D1 v2 I+ ^ - 1970-01-01T08:07:57+08:00 a dhclient: process and the information we find helpful for debugging..' I! k/ i8 a' w
- 1970-01-01T08:07:57+08:00 a dhclient:
/ G( V' a- ~8 H f1 q9 w% N1 Q - 1970-01-01T08:07:57+08:00 a dhclient: exiting.0 i- x$ m% N+ R, d$ p; n% O
复制代码 ; a. a" B8 b8 z- s4 C( Y; T
1.升级udhcpc看看能否解决% i$ E8 |% E* @ g
2.不能的话,想办法让udhcpc执行前用其他方法给dhcp到,比如kill掉然后重新执行
* Q2 t, t/ w: a# a/ \3.换其他dhcp client尝试- I- G& j& U$ r# U- T4 I: x
: ?2 p3 h+ A" U$ I6 X+ D思路D:: L, E) w% J: W" N% X" x
按照前述方案dd emmc,然后第一次启动时按部就班写好DSM/Linux。此时因为需要出厂设置,在设置期间down掉的网卡会重新up回来。, _- ~* P% V: ]
然后设置static ip/升级udhcpc等方法尝试
: k& U' \. H0 h6 K H9 s. ~3 I' S% `% o/ R5 U
思路E(最简单,或许可行):
- _ E6 B6 j7 `+ b4 t直接在udhcpc执行后sleep一分钟。% L/ f) D# h/ e6 I# ~# {
% D1 v6 |3 ]8 o$ M* X2 U& q
上述方法CDE无效,进入系统后强制重新up网卡,系统提示找不到eth0! O1 N6 b8 B0 X) S& p H$ C
应该是系统或者网卡驱动问题了,跟dhcp client关系应该不大' c% D3 Z3 D; b: A. @
接下来测试udhcpc运行之前网卡是否正常,然后分析前后日志看看
; s2 `5 [* G* P, i9 t
; C( ?$ x- F1 d) G. m' @% a
2 B9 r8 p- W$ H* M4 k思路F:% f2 j0 z7 c& c1 I
升级emmc里的网卡驱动/把x3p或者猫盘原系统的驱动移植过来看看: s- W3 I% E I1 N) j! m
+ {& Y- W- `! ^/ H( v6 @0 g明天出差,三周才能回来,希望有大佬尝试下。
6 P( m, U4 _( e& A5 h8 z如果没有大佬帮忙整小的回来再整。) ^ n& p2 [' _ n+ G# ?% n) p! `
|
|