我最近编写了一个自定义驱动程序,用于连接到运行Linux 3.8内核的ARM处理器的phy。我编写驱动程序是因为在开源社区中找不到支持光纤接口的驱动程序。我的司机似乎是一个小马车但我不知道为什么。这就是我所看到的。
1)在启动过程中,我将通过DHCP(在这种情况下为udhcpc)获得IP地址的时间仅为50%左右。当我没有获得IP地址时,我从ifconfig获得此输出:
eth0 Link encap:Ethernet HWaddr D4:F5:13:B8:86:E4
inet6 addr: fe80::d6f5:13ff:feb8:86e4/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1634 errors:0 dropped:436 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:114256 (111.5 KiB) TX bytes:1112 (1.0 KiB)
eth1 Link encap:Ethernet HWaddr C4:12:D6:A1:7F:00
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
在上述情况下,eth0
已将光纤连接到Phy,eth1
已断开连接。这对我来说很奇怪,因为eth0
中的eth1
和ifconfig
接口是不同的,告诉我内核注意到两个接口之间存在不同的东西。
当我使用ethtool eth0
时,我被告知检测到链接,并且被告知没有检测到eth1的链接(正如预期的那样)。
什么会导致ethtool意识到存在链接,但是udhcpc无法获取IP地址?