Linux 3.6.9 下检测不到以太网链路,但在 2.6.39 下可以检测到

Linux 3.6.9 下检测不到以太网链路,但在 2.6.39 下可以检测到

我有一个带有 100M 以太网端口的定制 Linux 设备。在 2.6.39 内核下,网络从来都不是问题。自动协商工作得很好,网络传输也很好。现在,使用较新的 3.6.9 内核,绝大多数设备要么说没有链接,要么被限制为 10M/半双工(实际上根本不起作用)。

我怀疑以太网适配器的设计存在问题,新内核正在检查旧内核忽略的内容。我的问题是,有人知道版本之间发生了哪些基本驱动程序变化吗?我想让它再次运行,但我不知道此时是否可以修复硬件,所以我正在寻找软件解决方法。我尝试关闭自动协商并手动设置链接速度,但仍然没有检测到运营商,所以这似乎没有效果。

欢迎任何想法。

以太网控制器集成在我的 ARM SoC 中。我使用的是 Atmel AT91SAM9X25 微处理器,它有一个 Davicom DM9161A PHY 驱动程序。看起来 PHY 子系统没有检测到端口上有链接。

dmesg 的输出如下所示:

macb f802c000.ethernet: (unregistered net_device): invalid hw address, using random
libphy: MACB_mii_bus: probed
macb f802c000.ethernet: eth0: Cadence MACB at 0xf802c000 irq 24 (e6:0d:5b:9d:13:c8)
macb f802c000.ethernet: eth0: attached PHY driver [Davicom DM9161A] (mii_bus:phy_addr=f802c000.etherne:1f, irq=-1)
IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready

(有几个单元的链接确实出现了,但几乎所有单元都没有超过链接未准备好的状态。它们 100% 在旧内核下都能正常工作。)

谢谢您的回复。

相关内容