У меня есть специальное устройство Linux с портом Ethernet 100M. В ядре 2.6.39 работа в сети никогда не была проблемой. Автосогласование работало нормально, как и передача по сети. Теперь, с новым ядром 3.6.9, подавляющее большинство устройств либо сообщают об отсутствии связи, либо ограничены 10M / половиной dulpex (что на самом деле вообще не работает).
Я подозреваю, что есть проблема в конструкции адаптера ehternet, и что новое ядро проверяет вещи, которые игнорировало старое ядро. Мой вопрос: кто-нибудь знает, какие фундаментальные изменения драйверов произошли между выпусками? Я хотел бы запустить это снова, но я не знаю, могу ли я исправить аппаратное обеспечение на этом этапе, поэтому я ищу решение для программного обеспечения. Я попытался отключить автосогласование и установить скорость соединения вручную, но оператор связи по-прежнему не обнаружен, так что это, похоже, не влияет.
Любые идеи приветствуются.
Контроллер Ethernet интегрирован в мой ARM SoC. Я использую микропроцессор Atmel AT91SAM9X25 с драйвером PHY Davicom DM9161A. Похоже, что подсистема 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% из них работали правильно под старым ядром.)
Спасибо за ответы.