|
发表于 2019-11-26 01:13:39
|
显示全部楼层
本帖最后由 recfox 于 2019-11-27 22:42 编辑
# M* u( X9 ] W# {
0 h0 O/ ^ q3 n! D% D查了日志,是udhcpc执行的时候,网卡down掉了,导致获取不到ip,自动分了169.254.x.x的ip,甚至因为网卡整个down直接不分IP。udhcpc不会运行第二次,之后一直crc错误0 `) y4 y' e# s" E" H$ Y r
8 @6 q8 n2 C o) j
目前测试,把emmc里面的内容抹掉,重新写入full.bin的数据,清空emmc并重写full.bin后必然可以获取到IP。
9 L# {, C( ~- O. L/ n3 O然后写入完整的DSM系统即可
1 r' ~) k C6 G首先进shell:(坛子还不给上传代码,自己敲部分代码贴Google就能找到了)4 y, \/ L* d4 k; X, b9 h
/ I0 e6 d! B- S- Z+ E
/ {, ?1 t5 s) m4 }) f' Y
然后重写emmc,可以参考板块里猫盘一键刷群辉命令脚本重写full.bin,我是下载到U盘然后sh执行,修改成本地路径不走github,太慢。
! A% K3 T, m3 G这样重启以后,能获取到ip。" e4 w! d( }) A8 s6 O
" z7 H* B' b0 z' T- u! d$ Y
$ M' p* b. o4 Z- z5 D# \6 _# o; O+ G根据这情况,我猜测,应该是网卡驱动或者系统问题,让emmc里面的某些文件,记录了某些不该有的东西,或者执行了某些操作,导致dhcp失败+crc error。7 k* F2 \! M7 |9 A! L/ x, i; e
接下来的思路我想这么搞. W4 y) d, s2 }* e' M1 s" ~
5 X7 M9 X/ C% Z
思路A:3 R, B( M) i# v1 b* j9 z" A, {
导出重写emmc后第一次和第二次执行的日志,diff对比。
" S1 Q" x. h6 C3 `" r精确到时间。
0 `* V! C# o8 R' y; e9 T3 {6 V) t$ b( o8 F* |/ u% ~
思路B:/ [" Q1 f/ j! b6 h" B& d0 Y3 K1 ?
1.按照上面的方法,分别dump写入镜像后和第一次开机后的emmc里的文件& m7 G& W% J8 r; G
2.提取出来后diff检查哪些文件被修改过(注意连带权限也一起检查,可能是某些文件权限问题导致的)0 q4 w; o' h) w* w, p
3.筛选网络和dhcp相关的文件,进一步分析2 X! j. \- t3 T6 h
4.想办法整到udhcpc的日志,分析(测试与其无关)6 u& G/ {7 U8 ?% M
5.分析不到或者拿不到的话,直接设置权限禁止那部分目录的写入试试,或者整个/目录禁止写入?2 B# N5 B! G+ |3 u
( v) c5 a) P: _- n2 j/ ^# @思路C(我觉得可能跟udhcpc关系不大):
5 Q+ _" j1 {+ e8 b测试无效。dhclient返回找不到网卡。 |/ q' V1 ] H5 K
- 1970-01-01T08:07:57+08:00 a dhclient: Failed to get interface index: No such device
# g8 o) k# S* @* `: d6 s$ O E4 E - 1970-01-01T08:07:57+08:00 a dhclient: $ e1 R1 @) }4 q: U- Z6 v
- 1970-01-01T08:07:57+08:00 a dhclient: If you think you have received this message due to a bug rather
* N$ ?/ n0 h+ T" X - 1970-01-01T08:07:57+08:00 a dhclient: than a configuration issue please read the section on submitting
9 o8 f3 E7 a' N7 X' M1 B% T - 1970-01-01T08:07:57+08:00 a dhclient: bugs on either our web page at www.isc.org or in the README file
$ H- ]. `" P# m4 c2 Z - 1970-01-01T08:07:57+08:00 a dhclient: before submitting a bug. These pages explain the proper
+ k) h8 g& h, z' [; B- O( y - 1970-01-01T08:07:57+08:00 a dhclient: process and the information we find helpful for debugging..- U3 F- u: K& [- ?2 j) G3 k; p; ]. o0 I
- 1970-01-01T08:07:57+08:00 a dhclient:
, i2 A! I9 R( \$ T3 t2 a - 1970-01-01T08:07:57+08:00 a dhclient: exiting.; `1 R$ \8 n; k/ P
复制代码
5 a u" F3 J% g) P# L3 P1.升级udhcpc看看能否解决3 o$ n1 F4 _- x$ V- H
2.不能的话,想办法让udhcpc执行前用其他方法给dhcp到,比如kill掉然后重新执行
, u$ `- F0 f4 r m3.换其他dhcp client尝试
* g. a' z& F0 T; P! O& G0 h" s2 x. d# h. I" v! v
思路D:$ U. g1 C" B/ S# O4 C% B) s; p3 ^% D
按照前述方案dd emmc,然后第一次启动时按部就班写好DSM/Linux。此时因为需要出厂设置,在设置期间down掉的网卡会重新up回来。 d* `# S, _% E# N1 s( b2 e7 D
然后设置static ip/升级udhcpc等方法尝试
9 ]+ c( s% c) x/ }% P. O' T9 A9 o( c% z% v
思路E(最简单,或许可行):
& h, _3 M, ^1 I0 ]) B) q直接在udhcpc执行后sleep一分钟。
: t' f% M: r/ Y4 ]! d5 Z" U4 P' u6 s/ u. B }
上述方法CDE无效,进入系统后强制重新up网卡,系统提示找不到eth0
% S* m0 J' f. W2 w应该是系统或者网卡驱动问题了,跟dhcp client关系应该不大, P p% a2 F5 R# Z
接下来测试udhcpc运行之前网卡是否正常,然后分析前后日志看看
' S& ]2 u3 K2 y# a: j/ _3 t$ L2 ^& D7 S, g
& _6 r1 J( Y0 y# U# j' u, B思路F:
' Y8 h3 ~! c" p. z8 x2 z1 g升级emmc里的网卡驱动/把x3p或者猫盘原系统的驱动移植过来看看+ P& m" j+ v* g/ M" g
o ?# a* w, ?" v+ v; y
明天出差,三周才能回来,希望有大佬尝试下。
1 T: [' t2 H- M/ r# Z0 [如果没有大佬帮忙整小的回来再整。
) H& B6 v5 ?& K$ s$ W- B |
|