Проблема с адаптером USB-Ethernet LAN7801 на RSB3720 с KSZ9897 при использовании ядра 5.15

Вопрос или проблема

В настоящее время я работаю с 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, необходимым изменениям в конфигурациях ядра и совместимости компонентов.

Анализ ситуации

Из предоставленных логов видно следующее:

  1. Адаптер LAN7801 пытается выполнить регистрацию MDIO и показывает, что возможности удалённого пробуждения включены.
  2. Однако PHY-устройство не инициализируется должным образом, приводя к ошибке: "no PHY driver found" и "PHY Init Failed".
  3. Указание на то, что указатель phydev не инициализирован корректно, указывает на возможные проблемы в конфигурации или совместимости драйвера.

Рекомендации по устранению проблемы

  1. Проверка конфигурации ядра:

    • Убедитесь, что в конфигурации ядра включены необходимые модули для поддержки адаптера LAN7801. Для этого используйте команды make menuconfig или make xconfig в каталоге исходников ядра.
    • Проверьте наличие следующих опций:
      • CONFIG_USB_NET
      • CONFIG_PHY
      • CONFIG_PHY_LAN7801
      • Другие специфические настройки, относящиеся к KSZ9897.
  2. Патчи и обновления:

    • Убедитесь, что вы используете последнюю доступную версию ядра 5.15 с последними патчами и исправлениями, в которых могут быть решены известные проблемы с данными драйверами.
    • Проверьте официальные репозитории и сообщества разработчиков, такие как GitHub, для поиска патчей или обсуждений, касающихся проблем совместимости LAN7801 с KSZ9897 и ядром версии 5.15.
  3. Инициализация устройства:

    • Проблема с инициализацией указателя phydev может быть связана с тем, что драйвер не инициализирует PHY-устройство должным образом. Проверьте код драйвера на наличие корректной последовательности вызовов функций инициализации PHY после распознавания устройства.
    • Убедитесь, что PHY-адресация выполняется правильно, так как некорректные адреса могут привести к тому, что драйвер не сможет найти нужный PHY.
  4. Логирование и отладка:

    • Внедрите дополнительные операторы логирования в код драйвера для анализа процесса инициализации PHY. Это поможет лучше понять, на каком этапе происходит сбой.
    • Используйте отладочные инструменты, такие как gdb, для детального анализа проблемных участков.
  5. Совместимость компонентов:

    • При использовании KSZ9897 убедитесь в правильной конфигурации параметров, таких как скорость передачи и режим работы порта. Некоторые настройки могут влиять на обнаружение PHY-устройства.
    • Обратитесь к документации как для KSZ9897, так и для LAN7801, чтобы убедиться, что все параметры установлены корректно.

Заключение

Решение проблемы с инициализацией PHY на адаптере LAN7801 при использовании RSB3720 и коммутатора KSZ9897 с ядром 5.15 требует глубокого анализа конфигурации драйвера, совместимости аппаратного обеспечения и настройках ядра. Применение предложенных рекомендаций должно помочь вам диагностировать и устранить корень проблемы, что обеспечит стабильную работу вашей системы. Не забывайте документировать все изменения для последующей отладки.

Оцените материал
Добавить комментарий

Капча загружается...