无法获取IP地址(嵌入式Linux)

无法获取IP地址(嵌入式Linux),linux,network-programming,drivers,Linux,Network Programming,Drivers,我最近为phy编写了一个自定义驱动程序,该phy连接到运行Linux3.8内核的ARM处理器。我之所以编写驱动程序,是因为在开源社区中找不到支持此phy上光纤接口的驱动程序。我的司机似乎有点晕车,但我不知道为什么。这是我看到的 1) 在引导过程中,我只会在大约50%的时间里通过DHCP(在这种情况下是udhcpc)获取IP地址。当我没有获得IP地址时,我从ifconfig获得以下输出: eth0 Link encap:Ethernet HWaddr D4:F5:13:B8:86:E4

我最近为phy编写了一个自定义驱动程序,该phy连接到运行Linux3.8内核的ARM处理器。我之所以编写驱动程序,是因为在开源社区中找不到支持此phy上光纤接口的驱动程序。我的司机似乎有点晕车,但我不知道为什么。这是我看到的

1) 在引导过程中,我只会在大约50%的时间里通过DHCP(在这种情况下是udhcpc)获取IP地址。当我没有获得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地址?

eth0具有ipv6地址fe80::d6f5:13ff:feb8:86e4/64 assignt。如果这不是您想要的,您应该在系统上禁用ipv6。猜猜看:如果dhcp响应在正确的时间出现,你就会得到一个指定的地址,否则你就会得到一个ipv6地址。@sinclair我想我在这篇文章中找到了这个问题的答案。第一个反应似乎是对它的总结。我相信这意味着它实际上没有从DHCP获取ip地址。eth0具有ipv6地址fe80::d6f5:13ff:feb8:86e4/64 assignt。如果这不是您想要的,您应该在系统上禁用ipv6。猜猜看:如果dhcp响应在正确的时间出现,你就会得到一个指定的地址,否则你就会得到一个ipv6地址。@sinclair我想我在这篇文章中找到了这个问题的答案。第一个反应似乎是对它的总结。我相信这意味着它实际上并没有从DHCP获取ip地址。