|
|
发表于 2019-11-26 01:13:39
|
显示全部楼层
本帖最后由 recfox 于 2019-11-27 22:42 编辑
' i9 A0 n2 F8 g) w8 E7 T9 k
0 v' j- ~. d( o# R9 G查了日志,是udhcpc执行的时候,网卡down掉了,导致获取不到ip,自动分了169.254.x.x的ip,甚至因为网卡整个down直接不分IP。udhcpc不会运行第二次,之后一直crc错误
5 a5 X7 _& v9 B0 W: Q& f* g7 B; y7 q' W7 {* o
目前测试,把emmc里面的内容抹掉,重新写入full.bin的数据,清空emmc并重写full.bin后必然可以获取到IP。+ y' J' x( F- W _! |! `
然后写入完整的DSM系统即可3 c+ F" b$ a3 B- o! P9 q
首先进shell:(坛子还不给上传代码,自己敲部分代码贴Google就能找到了)4 B. t7 t6 y3 S3 ]# x0 a7 }
! R* v; R7 \' e. |
8 v6 t C, ?2 J9 X) k& |; O7 ^
然后重写emmc,可以参考板块里猫盘一键刷群辉命令脚本重写full.bin,我是下载到U盘然后sh执行,修改成本地路径不走github,太慢。2 o8 r% ]1 E* D- m4 }2 a! Q8 L
这样重启以后,能获取到ip。
- F2 o. {' ?( f+ m1 U. B* @& z
' q2 L- u' G, b1 C
; @" Z9 s) |. F( D1 `( s0 w" Q根据这情况,我猜测,应该是网卡驱动或者系统问题,让emmc里面的某些文件,记录了某些不该有的东西,或者执行了某些操作,导致dhcp失败+crc error。
8 h# ]! H- _6 z# ~接下来的思路我想这么搞: D6 d$ f H& _4 O, R5 ~
# t/ U0 o1 j1 Z* q
思路A:3 ^2 t9 m/ h* t9 g2 ^7 f# W7 N
导出重写emmc后第一次和第二次执行的日志,diff对比。
6 w4 }' V7 v! |* `精确到时间。7 w) Q9 z! E, P' H B# Y' k6 }1 i8 N
. c) p1 A# R; w( l" U
思路B:) w5 X: h" m& O5 i, Z
1.按照上面的方法,分别dump写入镜像后和第一次开机后的emmc里的文件
4 Q, U; h# q {! O2.提取出来后diff检查哪些文件被修改过(注意连带权限也一起检查,可能是某些文件权限问题导致的)
# U0 B3 P, L' |3 d) V& o3.筛选网络和dhcp相关的文件,进一步分析
' d) f m! E$ k3 z: e ]4.想办法整到udhcpc的日志,分析(测试与其无关)
# x9 j, W! Z8 P+ h D% ]" h- E5.分析不到或者拿不到的话,直接设置权限禁止那部分目录的写入试试,或者整个/目录禁止写入?
4 R0 ~3 Y; t8 K, u2 A/ q1 ^/ Z' ~" `: J& M
思路C(我觉得可能跟udhcpc关系不大):* g2 m7 ]7 Z$ t% R6 ?
测试无效。dhclient返回找不到网卡。+ \% I T! K9 l! K( D8 |
- 1970-01-01T08:07:57+08:00 a dhclient: Failed to get interface index: No such device. r& s6 h1 V" x- S
- 1970-01-01T08:07:57+08:00 a dhclient: ; E3 S& ~$ L8 w* Z
- 1970-01-01T08:07:57+08:00 a dhclient: If you think you have received this message due to a bug rather
0 j2 }& w* `* g8 s! e* ^) e) I - 1970-01-01T08:07:57+08:00 a dhclient: than a configuration issue please read the section on submitting% T5 s, @# o+ ~& m) I; q
- 1970-01-01T08:07:57+08:00 a dhclient: bugs on either our web page at www.isc.org or in the README file+ ~$ \. m& S. I9 d( |
- 1970-01-01T08:07:57+08:00 a dhclient: before submitting a bug. These pages explain the proper
: p7 J u5 k( H1 X; s( x3 E - 1970-01-01T08:07:57+08:00 a dhclient: process and the information we find helpful for debugging..; K) a( d% F- P5 q6 }# a
- 1970-01-01T08:07:57+08:00 a dhclient:
( U, h& p+ h& B5 j8 `9 A - 1970-01-01T08:07:57+08:00 a dhclient: exiting.
" j+ c$ Z9 G5 n, b( }4 E8 [
复制代码 4 B3 g- Y7 ]# _8 i C+ X
1.升级udhcpc看看能否解决7 G- I: S U5 o& M
2.不能的话,想办法让udhcpc执行前用其他方法给dhcp到,比如kill掉然后重新执行
; ^4 q0 B3 X3 H h3.换其他dhcp client尝试
0 k" h. M) `9 Y4 C9 M/ {0 q. o" L- e" u/ t4 q7 G# v
思路D:
0 K5 w2 Y+ j* @1 d* ^! m& ^按照前述方案dd emmc,然后第一次启动时按部就班写好DSM/Linux。此时因为需要出厂设置,在设置期间down掉的网卡会重新up回来。* H6 L% ?# A0 K
然后设置static ip/升级udhcpc等方法尝试* @. r$ U8 ~5 u- @4 F# Z( R
& R+ i5 T u& z2 w7 H h; S思路E(最简单,或许可行):
' O" {7 r% W5 ~) X( b直接在udhcpc执行后sleep一分钟。+ n$ _& k1 ~' q8 h; _
3 e9 ]0 L1 ^$ G# p+ {- V0 \( w上述方法CDE无效,进入系统后强制重新up网卡,系统提示找不到eth0' r N6 [0 v, N% @9 e
应该是系统或者网卡驱动问题了,跟dhcp client关系应该不大1 l; O# }7 j5 J8 d1 \8 J! p- w
接下来测试udhcpc运行之前网卡是否正常,然后分析前后日志看看0 ~& v* s& J+ w& b2 n
* \0 j3 f' ~/ `- i/ Y3 F* P) T6 f2 o5 Z6 |& _- t
思路F:
4 F) \% P4 `$ Y. [升级emmc里的网卡驱动/把x3p或者猫盘原系统的驱动移植过来看看
\- j8 t8 b2 n# q9 c+ t
9 `* N0 W, _' A3 m明天出差,三周才能回来,希望有大佬尝试下。' |6 c, r2 T/ B: I
如果没有大佬帮忙整小的回来再整。; F! h1 M7 h) L1 k ]; D) y
|
|