Загрузка прошивки для USR5423 802.11bg беспроводного адаптера [ZyDAS ZD1211B]

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

Я пытаюсь передать USB WiFi-адаптер (USR5423 802.11bg Wireless Adapter [ZyDAS ZD1211B]) на виртуальную машину, работающую под управлением Debian 12 на QEMU/KVM. Мне нужно передать устройство на виртуальную машину для проекта, над которым я работаю.

Я установил прошивку zd1211rw, и кажется, что система распознает, что это WLAN-адаптер, так как он отображается как сетевой интерфейс, он не активен, но он есть:

4: wlx0014c142c70c: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 26:c2:97:8f:76:ec brd ff:ff:ff:ff:ff:ff permaddr 00:14:c1:42:c7:0c

Кроме того, если я проверю dmesg, я вижу, что есть серьезные ошибки при загрузке прошивки.

[  250.122984] usb 1-3: USB control request for firmware upload failed. Error number -110
[  250.123003] usb 1-3: Could not upload firmware code uph. Error number -110
[  250.123033] zd1211rw 1-3:1.0: couldn't load firmware. Error number -110

Из различных поисков в интернете я думаю, что ошибка -110 связана с истечением времени ожидания USB.

Для этого я добавил

GRUB_CMDLINE_LINUX_DEFAULT="usb-storage.quirks=0baf:0121:u"

в конфигурацию grub внутри /etc/default/grub, но это не сильно помогло.

Какие-нибудь советы?

Ответ или решение

Проблема загрузки микропрограммы для беспроводного адаптера USR5423 на базе чипа ZyDAS ZD1211B при попытке передачи устройства в виртуальную машину Debian 12 под управлением QEMU/KVM может иметь несколько причин. Рассмотрим теоретическую основу проблемы, сделаем разбор конкретного примера и предложим практическое решение.

Теоретическая основа

Теория пассивного режима работы USB-устройств

Проблема может заключаться в некорректной работе USB с виртуальными машинами. Ошибки, связанные с невозможностью загрузки микропрограммы, часто возникают из-за тайм-аутов или отсутствия поддержки специфичных функций USB в среде виртуализации. Ошибка -110 в dmesg предполагает, что устройство не отвечает в заданный период времени, что может быть связано с USB-таймингом.

Факторы, влияющие на загрузку микропрограмм

  1. Загрузка модуля ядра: Убедитесь, что модуль ядра zd1211rw корректно загружен. Модуль отвечает за поддержку чипа ZD1211B.
  2. Тайминг USB: Ошибочный тайминг USB может вызывать проблемы, связанные с загрузкой микропрограммы. Виртуальные машины могут иногда некорректно обрабатывать скорость передачи данных USB.
  3. Микропрограмма: Для корректной работы беспроводного адаптера требуется корректно загруженная и целостная микропрограмма. Испорченные или неполные файлы могут приводить к сбоям.

Разбор примера

Вы пробовали добавить специфичную настройку (usb-storage.quirks=0baf:0121:u) в файле /etc/default/grub. Это указывает на попытку изменить параметры работы USB-устройства. Однако это решение часто бесполезно для устройств, работающих через пользователя (user-space) драйверы или в случае густой виртуализации.

Исходя из кода ошибки, это может означать проблему либо с самим устройством, либо с конфигурацией USB в вашей системе. USB-контроллер, используемый для захвата устройства виртуальной машиной, также может иметь ограниченные возможности, что только усугубляет проблему.

Практическое решение

Обновление конфигурации и устранение неисправностей

  1. Проверка модулей ядра:

    • Убедитесь, что модуль zd1211rw загружен без ошибок. Проверьте это с помощью команды lsmod | grep zd1211rw.
  2. Обновление микропрограммы:

    • Обратите внимание, что вам может потребоваться обновить саму микропрограмму. Убедитесь, что у вас установлена последняя версия прошивки. Проверьте репозиторий Debian для обновлений: apt-cache search zd1211-firmware.
  3. Конфигурация GRUB:

    • Попробуйте заменить опции в GRUB_CMDLINE_LINUX_DEFAULT. Использование noapic или irqpoll может иногда помочь при проблемах с USB.
  4. Настройка тайминга USB:

    • Установите параметры usbcore.autosuspend=-1 в конфигурации GRUB. Это поможет отключить автоматическую задержку USB-устройств.
  5. Проверка оборудования:

    • Убедитесь, что ваше устройство не повреждено и что оно работает на других системах. Попробуйте подключить его к физической машине и проверьте, загружается ли там прошивка корректно.
  6. QEMU/KVM настройки:

    • Проверьте, правильно ли настроен USB-passthrough. Иногда указание конкретной версии USB (usb=ehci) или повышение привилегий может улучшить совместимость.

Применяя направленные решения, помните об их возможности вызова других проблем. В случае если предложенные шаги не привели к решению, рассмотрите возможность обращения к сообществам по поддержке Debian или ZyDAS для получения специфических советов. Часто опыт коллег может оказаться полезным и предостеречь вас от повторения чужих ошибок.

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

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