|
|
本帖最后由 recfox 于 2019-11-27 22:42 编辑
9 n/ H! i; x- F* f
9 r/ }9 o9 N5 ^4 Y o3 P; b# {# u查了日志,是udhcpc执行的时候,网卡down掉了,导致获取不到ip,自动分了169.254.x.x的ip,甚至因为网卡整个down直接不分IP。udhcpc不会运行第二次,之后一直crc错误7 F( ]$ ~0 Y4 D) w7 c
$ R: F( k2 T, m, V目前测试,把emmc里面的内容抹掉,重新写入full.bin的数据,清空emmc并重写full.bin后必然可以获取到IP。, q; x# q8 w2 v: j, E; l" d- F
然后写入完整的DSM系统即可
1 n& l6 f& Z0 E" v. X9 X# i首先进shell:(坛子还不给上传代码,自己敲部分代码贴Google就能找到了)9 E$ N) W: A6 c, e% C/ ]6 v
; ` }1 p6 e- F- f) {% |3 |1 V" [! ]& n1 h
' G( ~3 O. s, R然后重写emmc,可以参考板块里猫盘一键刷群辉命令脚本重写full.bin,我是下载到U盘然后sh执行,修改成本地路径不走github,太慢。
) E" E2 d. ~; [. m这样重启以后,能获取到ip。8 s$ ]" A) w b! i& S
/ M0 b3 N% p/ V f
/ L. {7 }9 n* Y, S
根据这情况,我猜测,应该是网卡驱动或者系统问题,让emmc里面的某些文件,记录了某些不该有的东西,或者执行了某些操作,导致dhcp失败+crc error。" O6 X# z5 V' Z
接下来的思路我想这么搞) i, F Q' ]0 d8 H
4 }, L3 T0 F3 g& T思路A:8 H' U5 A; |& o4 d6 j/ Y
导出重写emmc后第一次和第二次执行的日志,diff对比。4 {) Y5 h- c G7 j g0 W
精确到时间。( G: e. \# E% N: j
# Y+ f5 u' c: M/ S( A思路B:
1 e1 {$ r; k' V7 Q9 M3 f1.按照上面的方法,分别dump写入镜像后和第一次开机后的emmc里的文件
) M) k. ~& k; G6 y) q2.提取出来后diff检查哪些文件被修改过(注意连带权限也一起检查,可能是某些文件权限问题导致的)
! p* n/ [& R2 G3.筛选网络和dhcp相关的文件,进一步分析/ w3 W3 B+ R( o$ a* i" t# F* C0 H
4.想办法整到udhcpc的日志,分析(测试与其无关)
, L6 J0 I3 g" D3 ]7 N2 j5.分析不到或者拿不到的话,直接设置权限禁止那部分目录的写入试试,或者整个/目录禁止写入?* ]6 W# l" T$ M+ x9 Q9 q
2 \: N7 a1 \2 V8 `; p, D: o! f8 f8 @; {
思路C(我觉得可能跟udhcpc关系不大):
& J0 @ ?, o) ] ]. k测试无效。dhclient返回找不到网卡。
' z' |) k" a) |9 U `- 1970-01-01T08:07:57+08:00 a dhclient: Failed to get interface index: No such device- h+ C$ [. {/ l0 ~; p M
- 1970-01-01T08:07:57+08:00 a dhclient:
" b" f7 C8 Y U# F% m/ y - 1970-01-01T08:07:57+08:00 a dhclient: If you think you have received this message due to a bug rather
3 @- s6 j% ^" ^+ O% ?" Q E: N - 1970-01-01T08:07:57+08:00 a dhclient: than a configuration issue please read the section on submitting
* Y: C' R4 o n9 x* `% Z - 1970-01-01T08:07:57+08:00 a dhclient: bugs on either our web page at www.isc.org or in the README file/ @4 I7 P/ t: ^; ~% u$ B
- 1970-01-01T08:07:57+08:00 a dhclient: before submitting a bug. These pages explain the proper5 S5 _0 l* }6 ]) x w3 b$ F* t7 Z
- 1970-01-01T08:07:57+08:00 a dhclient: process and the information we find helpful for debugging..
9 l! e6 ^; g) o6 e5 r @2 {+ @ - 1970-01-01T08:07:57+08:00 a dhclient: 2 v1 T- x% S% F$ w+ N: _
- 1970-01-01T08:07:57+08:00 a dhclient: exiting.+ I' {6 a/ Q6 H: G$ H
复制代码
/ H# Z0 @- x" U# M% K; p1.升级udhcpc看看能否解决9 i8 H" @5 }$ f. C2 I! a) y
2.不能的话,想办法让udhcpc执行前用其他方法给dhcp到,比如kill掉然后重新执行
@# O! M" ` t1 j9 b) w" c4 g3.换其他dhcp client尝试1 ^4 ?/ O3 R; s0 m9 g! L
" ?$ R9 b% ]* C4 h& |! h7 V! C思路D:
; e/ x# _6 q R& Z3 x$ F按照前述方案dd emmc,然后第一次启动时按部就班写好DSM/Linux。此时因为需要出厂设置,在设置期间down掉的网卡会重新up回来。' [* l; v# F$ N1 d# E, z
然后设置static ip/升级udhcpc等方法尝试
- {0 s' H3 ]" }7 L; T" N
$ W' a* ]5 C: R: L思路E(最简单,或许可行):
' _& z$ g. [" I' }5 a直接在udhcpc执行后sleep一分钟。
8 j3 t9 ~0 B6 n# K3 S( p7 x, b' e3 x, v
上述方法CDE无效,进入系统后强制重新up网卡,系统提示找不到eth0
! n8 Y% _9 o% V应该是系统或者网卡驱动问题了,跟dhcp client关系应该不大# I- J0 o$ z2 V i" n
接下来测试udhcpc运行之前网卡是否正常,然后分析前后日志看看
$ B: |+ |6 l4 w; x# j) ~9 L" H. v, ]9 w$ [* g* W j7 X" {
; L r9 i7 F- Y: j* m9 S1 P- D
思路F:6 C. k; \3 I! Y: E$ G' r
升级emmc里的网卡驱动/把x3p或者猫盘原系统的驱动移植过来看看+ O: Z$ ]. t3 j1 `* x- l
- p- v! |, L, Y) o* T
明天出差,三周才能回来,希望有大佬尝试下。
- S1 f; h& U, B$ q0 G: a4 c5 t0 ~如果没有大佬帮忙整小的回来再整。3 O F! d9 E$ ?6 n2 I, y
|
|