|
发表于 2019-11-26 01:13:39
|
显示全部楼层
本帖最后由 recfox 于 2019-11-27 22:42 编辑 : E: Y" U4 _7 ^; C; H9 V
4 D/ ?! ?! X H1 x' ]查了日志,是udhcpc执行的时候,网卡down掉了,导致获取不到ip,自动分了169.254.x.x的ip,甚至因为网卡整个down直接不分IP。udhcpc不会运行第二次,之后一直crc错误( b+ o' }4 M" S6 d" H
. T3 q7 k. M c- g2 P
目前测试,把emmc里面的内容抹掉,重新写入full.bin的数据,清空emmc并重写full.bin后必然可以获取到IP。1 G; v$ F" G1 ?: c; b; X! ~
然后写入完整的DSM系统即可
8 w% m" M: X* M* D2 g) H) g; I首先进shell:(坛子还不给上传代码,自己敲部分代码贴Google就能找到了)
% G! a/ p7 Q( o; S
! g' r/ X; g% o
V( s. @6 X8 y8 s5 G
然后重写emmc,可以参考板块里猫盘一键刷群辉命令脚本重写full.bin,我是下载到U盘然后sh执行,修改成本地路径不走github,太慢。9 ]3 [% t3 G& V2 S- i4 L5 E
这样重启以后,能获取到ip。
, T! A- x4 u5 Y& v6 R) K
( c) J: E. ~: _$ m) L/ J& Z) C" b/ M4 t
根据这情况,我猜测,应该是网卡驱动或者系统问题,让emmc里面的某些文件,记录了某些不该有的东西,或者执行了某些操作,导致dhcp失败+crc error。
( A( A: a4 S2 {接下来的思路我想这么搞$ W% s6 q- G. f, x/ `$ s" g7 R+ F
) z# V0 N3 e8 w3 _; \! [ {
思路A:6 ?: e7 q8 ]4 d" |/ g
导出重写emmc后第一次和第二次执行的日志,diff对比。
f3 F# g. z' Z. J8 Q精确到时间。1 ?+ K- V* |" I7 J/ H" S9 R. X& P! f
3 k1 _0 a8 d; L" e3 ]! a
思路B:
_8 F5 V9 s) t/ W1.按照上面的方法,分别dump写入镜像后和第一次开机后的emmc里的文件
( L; ~: W, p6 c1 b+ x$ S2.提取出来后diff检查哪些文件被修改过(注意连带权限也一起检查,可能是某些文件权限问题导致的)
0 }5 D) Q7 q; \ S0 E8 D3.筛选网络和dhcp相关的文件,进一步分析- F3 V/ G& J# t- h: Z, E" N
4.想办法整到udhcpc的日志,分析(测试与其无关)
' E) @7 C9 u n& W% v" }+ [5.分析不到或者拿不到的话,直接设置权限禁止那部分目录的写入试试,或者整个/目录禁止写入?" t+ M2 m6 E9 o! W! w: K) O
' d( n4 v. `$ k6 |, O9 G( J
思路C(我觉得可能跟udhcpc关系不大):* z- Q( [6 {2 o, ^& X/ Y
测试无效。dhclient返回找不到网卡。6 |" z; C6 u G+ }( t
- 1970-01-01T08:07:57+08:00 a dhclient: Failed to get interface index: No such device0 p9 P4 h1 m/ u
- 1970-01-01T08:07:57+08:00 a dhclient: . i* Q, |/ u7 ~' s& c; r
- 1970-01-01T08:07:57+08:00 a dhclient: If you think you have received this message due to a bug rather
* n' a$ V9 ?# \2 [1 } - 1970-01-01T08:07:57+08:00 a dhclient: than a configuration issue please read the section on submitting0 G- T7 @0 q' 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* P& d2 J4 m" S5 e$ l) J: r
- 1970-01-01T08:07:57+08:00 a dhclient: before submitting a bug. These pages explain the proper
/ A! |7 P3 _8 K/ n/ I - 1970-01-01T08:07:57+08:00 a dhclient: process and the information we find helpful for debugging..
3 X& v. r+ X0 S S, L - 1970-01-01T08:07:57+08:00 a dhclient: ; l1 C$ h; J' x; T, E5 h% `/ G" S
- 1970-01-01T08:07:57+08:00 a dhclient: exiting.
' |% U. |0 Q0 ?! H, P
复制代码 ]/ J- M) y8 @+ C& J
1.升级udhcpc看看能否解决3 p: F) `( l% e. M* h
2.不能的话,想办法让udhcpc执行前用其他方法给dhcp到,比如kill掉然后重新执行4 I8 z7 B% P, t1 S8 g
3.换其他dhcp client尝试
. h0 H% _! {* D2 i2 D9 P
/ G* K/ e' S/ v4 M. ]- `/ a思路D:1 s- S q/ z' C2 k' j' ]6 }
按照前述方案dd emmc,然后第一次启动时按部就班写好DSM/Linux。此时因为需要出厂设置,在设置期间down掉的网卡会重新up回来。! j+ T6 R& T" ?5 _. D
然后设置static ip/升级udhcpc等方法尝试
9 }% B+ u: C/ [% l; S. P8 T2 I* B1 @
% H: o5 J1 Z- a0 k: |, r4 q思路E(最简单,或许可行):
- _( I% A6 M. m7 T; o# c直接在udhcpc执行后sleep一分钟。
$ ]" [" u; O" N; Y) E0 Y4 ]8 o: G+ |' N' b
上述方法CDE无效,进入系统后强制重新up网卡,系统提示找不到eth0
8 G6 `" ]& R! Z8 M7 T `应该是系统或者网卡驱动问题了,跟dhcp client关系应该不大 r" s6 F* I X+ `% c4 y, q# `
接下来测试udhcpc运行之前网卡是否正常,然后分析前后日志看看
. R+ X4 z9 k# i! @* T! N) ~1 y: j- d, h9 g6 c5 {( b
# Z7 w4 ^' P( |3 F0 J$ c) i2 I
思路F:$ J" B) E9 `+ @; U9 }6 F4 x( x
升级emmc里的网卡驱动/把x3p或者猫盘原系统的驱动移植过来看看% @" ~4 q5 g/ T2 ]
2 F0 w) m5 ^9 Q( F! v明天出差,三周才能回来,希望有大佬尝试下。4 n7 g; g; n# W7 q3 k
如果没有大佬帮忙整小的回来再整。
3 U- g- S a! A" a5 Y1 ] |
|