Вопрос или проблема
В настоящее время я работаю с Ethernet-коммутатором KSZ9897, подключенным к плате RSB3720. Ethernet-порты были настроены правильно, но у меня возникла проблема с адаптером USB-Ethernet LAN7801 при попытке инициализации PHY.
Детали: Плата: RSB3720 Коммутатор: KSZ9897 Адаптер: LAN7801 (USB-Ethernet) Версия ядра: 5.15 Проблема: LAN7801 не может обнаружить драйвер PHY, что подтверждается логами ядра. Логи ядра:
[ 2586.345280] TRACE 1 of_mdiobus_register done
[ 2586.349570] TRACE 1 dev->mdiobus->id -964161520
[ 2586.354204] lan78xx: Возможность удаленной активации включена
[ 2586.359523] [DEBUG1] значение mdiio равно 0000000053e716ae
[ 2586.359529] [DEBUG2] значение mdiio равно lan78xx-mdio
[ 2586.364844] [DEBUG3] значение mdiio равно 2
[ 2586.370070] TRACE 1 phydev -972208128
[ 2586.377747] TRACE 1 phydev phy_id 0
[ 2586.381239] TRACE 1 phydev drv 0
[ 2586.384470] lan78xx 3-1.2:1.0 (безымянное сетевое устройство) (неинициализировано): драйвер PHY не найден
[ 2586.392483] lan78xx 3-1.2:1.0 (безымянное сетевое устройство) (неинициализировано): lan7801: Инициализация PHY не удалась
[ 2586.401482] lan78xx: probe of 3-1.2:1.0 failed with error -5
Я добавил информацию для отладки, чтобы проследить за проблемой, и похоже, что указатель phydev не инициализируется должным образом, что приводит к тому, что драйвер PHY не обнаруживается. Запрос: Можете ли вы предоставить рекомендации или известные решения для этой проблемы? В частности, я ищу советы по:
Правильной конфигурации для драйвера PHY LAN7801. Любым дополнительным конфигурациям или патчам ядра, которые могут быть необходимы. Известной совместимости или проблемам с KSZ9897 на версии ядра 5.15.
Ответ или решение
Проблема с адаптером USB-Ethernet LAN7801 на RSB3720 с KSZ9897 при использовании ядра 5.15
Введение
Ваша задача заключается в устранении проблемы, связанной с инициализацией PHY для адаптера LAN7801 на платформе RSB3720 с использованием Ethernet-коммутатора KSZ9897. Проблема заключается в том, что адаптер не может обнаружить драйвер PHY, что подтверждается сообщениями в журналах ядра. Данная статья предоставляет вам рекомендации по правильной конфигурации драйвера PHY, необходимым изменениям в конфигурациях ядра и совместимости компонентов.
Анализ ситуации
Из предоставленных логов видно следующее:
- Адаптер LAN7801 пытается выполнить регистрацию MDIO и показывает, что возможности удалённого пробуждения включены.
- Однако PHY-устройство не инициализируется должным образом, приводя к ошибке: "no PHY driver found" и "PHY Init Failed".
- Указание на то, что указатель phydev не инициализирован корректно, указывает на возможные проблемы в конфигурации или совместимости драйвера.
Рекомендации по устранению проблемы
-
Проверка конфигурации ядра:
- Убедитесь, что в конфигурации ядра включены необходимые модули для поддержки адаптера LAN7801. Для этого используйте команды
make menuconfig
илиmake xconfig
в каталоге исходников ядра. - Проверьте наличие следующих опций:
CONFIG_USB_NET
CONFIG_PHY
CONFIG_PHY_LAN7801
- Другие специфические настройки, относящиеся к KSZ9897.
- Убедитесь, что в конфигурации ядра включены необходимые модули для поддержки адаптера LAN7801. Для этого используйте команды
-
Патчи и обновления:
- Убедитесь, что вы используете последнюю доступную версию ядра 5.15 с последними патчами и исправлениями, в которых могут быть решены известные проблемы с данными драйверами.
- Проверьте официальные репозитории и сообщества разработчиков, такие как GitHub, для поиска патчей или обсуждений, касающихся проблем совместимости LAN7801 с KSZ9897 и ядром версии 5.15.
-
Инициализация устройства:
- Проблема с инициализацией указателя phydev может быть связана с тем, что драйвер не инициализирует PHY-устройство должным образом. Проверьте код драйвера на наличие корректной последовательности вызовов функций инициализации PHY после распознавания устройства.
- Убедитесь, что PHY-адресация выполняется правильно, так как некорректные адреса могут привести к тому, что драйвер не сможет найти нужный PHY.
-
Логирование и отладка:
- Внедрите дополнительные операторы логирования в код драйвера для анализа процесса инициализации PHY. Это поможет лучше понять, на каком этапе происходит сбой.
- Используйте отладочные инструменты, такие как
gdb
, для детального анализа проблемных участков.
-
Совместимость компонентов:
- При использовании KSZ9897 убедитесь в правильной конфигурации параметров, таких как скорость передачи и режим работы порта. Некоторые настройки могут влиять на обнаружение PHY-устройства.
- Обратитесь к документации как для KSZ9897, так и для LAN7801, чтобы убедиться, что все параметры установлены корректно.
Заключение
Решение проблемы с инициализацией PHY на адаптере LAN7801 при использовании RSB3720 и коммутатора KSZ9897 с ядром 5.15 требует глубокого анализа конфигурации драйвера, совместимости аппаратного обеспечения и настройках ядра. Применение предложенных рекомендаций должно помочь вам диагностировать и устранить корень проблемы, что обеспечит стабильную работу вашей системы. Не забывайте документировать все изменения для последующей отладки.