|
|
本帖最后由 recfox 于 2019-11-27 22:42 编辑
0 p# W: [9 I$ {1 W# X# t+ P. f" a( g2 I; t. ^. D7 A5 Y+ c9 v
查了日志,是udhcpc执行的时候,网卡down掉了,导致获取不到ip,自动分了169.254.x.x的ip,甚至因为网卡整个down直接不分IP。udhcpc不会运行第二次,之后一直crc错误
8 r6 [( n2 ~, i$ z0 Q& G: w. U O+ I7 V6 ^9 S
目前测试,把emmc里面的内容抹掉,重新写入full.bin的数据,清空emmc并重写full.bin后必然可以获取到IP。8 A. E" H+ e+ D* {6 l
然后写入完整的DSM系统即可* R' U+ g z% W1 f) n! ]6 d
首先进shell:(坛子还不给上传代码,自己敲部分代码贴Google就能找到了)
6 l% }, |) N+ ] l- c: j
; x* Q, t6 M: f" `. U q+ v- r
6 w& I4 Y. M2 M5 M3 ?+ Y( ~然后重写emmc,可以参考板块里猫盘一键刷群辉命令脚本重写full.bin,我是下载到U盘然后sh执行,修改成本地路径不走github,太慢。
- P. t# T6 ~4 H, ^1 p+ R4 l这样重启以后,能获取到ip。8 ]5 A4 I( k5 \; Y4 a
8 L5 }3 q2 ?6 M, E; d( Q
& o( F! L1 n8 C2 k根据这情况,我猜测,应该是网卡驱动或者系统问题,让emmc里面的某些文件,记录了某些不该有的东西,或者执行了某些操作,导致dhcp失败+crc error。6 @5 L2 N8 N8 I' Y# T) |
接下来的思路我想这么搞
1 r1 D5 J3 {2 O: C$ n: Q `0 N
% b5 p4 p+ }5 y. c" u思路A:
) K4 h# f9 x* b& w0 D5 o7 E7 e- J导出重写emmc后第一次和第二次执行的日志,diff对比。
" } ~6 ^; V; h0 S; u u精确到时间。
5 g$ X/ Y! Q( u0 G4 G1 s. t" s5 I& c
思路B:: G) k2 V- m: T/ N
1.按照上面的方法,分别dump写入镜像后和第一次开机后的emmc里的文件
6 D5 a2 F1 S8 l3 s/ {! y2.提取出来后diff检查哪些文件被修改过(注意连带权限也一起检查,可能是某些文件权限问题导致的)( M. @$ q" \+ C6 ^# f
3.筛选网络和dhcp相关的文件,进一步分析' K- S! z, e3 U* J+ u
4.想办法整到udhcpc的日志,分析(测试与其无关)
0 f- I0 b8 Y% Z+ G6 S! B' R& a5.分析不到或者拿不到的话,直接设置权限禁止那部分目录的写入试试,或者整个/目录禁止写入?( [2 A. O, A. d2 J
1 R# O1 P% J" d3 r1 P' ?4 S. Q; K0 |
思路C(我觉得可能跟udhcpc关系不大): S! k. r! c4 y
测试无效。dhclient返回找不到网卡。; g. K. ]% q' T% B Z
- 1970-01-01T08:07:57+08:00 a dhclient: Failed to get interface index: No such device
" W" o O J4 ^ - 1970-01-01T08:07:57+08:00 a dhclient: ! n( O+ C6 y4 h0 b- O' N
- 1970-01-01T08:07:57+08:00 a dhclient: If you think you have received this message due to a bug rather8 h7 g5 `! I, V7 d* R v/ E7 \6 F+ S
- 1970-01-01T08:07:57+08:00 a dhclient: than a configuration issue please read the section on submitting* M$ l/ B9 i* F9 }) I3 I
- 1970-01-01T08:07:57+08:00 a dhclient: bugs on either our web page at www.isc.org or in the README file+ k" Y4 a2 y( z* |
- 1970-01-01T08:07:57+08:00 a dhclient: before submitting a bug. These pages explain the proper9 H; n( _/ B5 x% z# q
- 1970-01-01T08:07:57+08:00 a dhclient: process and the information we find helpful for debugging..
$ u l$ _9 ?4 R( o; p; J - 1970-01-01T08:07:57+08:00 a dhclient:
, t) O2 ^5 I* j3 A) A - 1970-01-01T08:07:57+08:00 a dhclient: exiting.! y; x( I3 K7 H- W( N6 ?$ g
复制代码 $ ~$ Q: H7 S; L( Z0 Q% x2 H
1.升级udhcpc看看能否解决$ Y% r& X: M- C- Z1 e- M
2.不能的话,想办法让udhcpc执行前用其他方法给dhcp到,比如kill掉然后重新执行
Z, k% w/ F, J! j- x8 b" X6 }9 q0 B [ _3.换其他dhcp client尝试0 ]) a# c. e" M. j y
/ \* c7 w, J) b思路D:, A& j6 n, b: X& ^7 H2 Y7 O' [1 I9 y
按照前述方案dd emmc,然后第一次启动时按部就班写好DSM/Linux。此时因为需要出厂设置,在设置期间down掉的网卡会重新up回来。+ l! b1 x2 Q' W% U+ H! n" g/ c, k
然后设置static ip/升级udhcpc等方法尝试
3 P; |. ?* _8 f; ?8 ?
' q3 c" N# c4 a# t* X6 a5 b6 @! w思路E(最简单,或许可行):+ V; m: r9 ?$ k* m t
直接在udhcpc执行后sleep一分钟。
3 T2 V( B* a' N" _ |' c$ R
+ K9 w7 {* v0 z( P8 h2 @+ M" J( i上述方法CDE无效,进入系统后强制重新up网卡,系统提示找不到eth0. V- E0 d3 H" j) [: \+ C, y4 y
应该是系统或者网卡驱动问题了,跟dhcp client关系应该不大# \9 p* \ b9 g$ h# a4 Y
接下来测试udhcpc运行之前网卡是否正常,然后分析前后日志看看1 w5 h; K" F/ \0 U$ Z! @# K* \; S
/ b1 }. c3 r! _$ q% U& c6 T
& {$ H, K9 ^" D V# P思路F:
) w' e4 N, c+ k, b7 |+ o升级emmc里的网卡驱动/把x3p或者猫盘原系统的驱动移植过来看看1 ^; ~' `; Q. ^. H* n+ ~
6 v, G1 V: |5 x0 S. t8 W) V7 g明天出差,三周才能回来,希望有大佬尝试下。
7 e Y l( _8 y4 ?8 e, T如果没有大佬帮忙整小的回来再整。
3 A/ \# H6 q9 u% f0 y |
|