Hostapd и nl80211

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

У меня есть проблемы с hostapd и nl80211, когда я пытаюсь запустить hostapd, вот что я получил:

# /etc/init.d/hostapd start
Запуск демона HOSTAP: Файл конфигурации: /etc/hostapd.conf
nl80211: Драйвер не поддерживает команды аутентификации/ассоциации или подключения
Инициализация драйвера nl80211 не удалась.
hostapd_free_hapd_data: Интерфейс wlan0 не был запущен

Это связано с драйвером wifi (RTL8812au) или драйвером nl80211? Я работаю на устройстве на базе ARM с процессором iMX6, драйвер был скомпилирован кросс-компиляцией.

Что-то странное, iwconfig работает:

# iwconfig 
wlan0     не ассоциирован  Псевдоним:"<WIFI@REALTEK>"
          Режим:Авто  Частота=2.412 GHz  Точка доступа: Не ассоциирована   
          Чувствительность:0/0  
          Повторы:выкл   RTS thr:выкл   Fragment thr:выкл
          Ключ шифрования:выкл
          Управление энергией:выкл
          Качество связи:0  Уровень сигнала:0  Уровень шума:0
          Недопустимый Rx nwid:0  Недопустимый Rx crypt:0  Недопустимый Rx frag:0
          Чрезмерные попытки Tx:0  Недопустимые misc:0   Пропущенные маяки:0

Но когда я запускаю iw list, ничего не происходит.

Может кто-то помочь мне с этой проблемой?

Дополнительная информация:

  • Yocto и кастомный BSP на плате iMX6
  • версия ядра 3.14.28
  • Дистрибутив Linux poky 1.8.1
  • WiFi USB ключ: Edimax EW-7811USC

С уважением,

Пьер-Оливье

Согласно Arch-wiki, вам нужно использовать устаревший wext драйвер, для подключения вы можете ввести следующую команду:

wpa_supplicant -B -i wlan0 -D wext -c /etc/wpa_supplicant/example.conf

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

Проблема с hostapd и nl80211 на ARM-устройстве

Описание проблемы

Вы столкнулись с проблемой при запуске hostapd на вашем устройстве с ARM-процессором iMX6. Ошибка, которую вы видите –

nl80211: Driver does not support authentication/association or connect commands
nl80211 driver initialization failed.
hostapd_free_hapd_data: Interface wlan0 wasn't started

указывает на то, что драйвер для Wi-Fi адаптера не поддерживает необходимые команды для аутентификации или ассоциации.

Возможные причины проблемы

  1. Драйвер RTL8812au: Драйвер RTL8812au, который вы используете, возможно, не полностью поддерживает API nl80211. Это может быть следствием недостатков в реализациях или устаревших версиях драйвера. Важно убедиться, что драйвер обновлён и совместим с вашей версией ядра (3.14.28).

  2. Использование nl80211: Протокол nl80211 является интерфейсом взаимодействия для драйверов Wi-Fi и hostapd. Если драйвер не поддерживает необходимый функционал, hostapd не сможет правильно инициализировать интерфейс.

  3. Проблемы с iwlist: Вы упоминаете, что команда iw list не возвращает никаких результатов. Это может указывать на то, что драйвер не предоставляет необходимую информацию о поддерживаемых режимах работы, что дополнительно подтверждает, что драйвер не функционирует должным образом.

Проверка состояния драйвера

Для начала попробуйте выполнить следующие команды для диагностики:

  1. Проверка загруженных модулей: Убедитесь, что драйвер правильно загружен. Используйте:

    lsmod | grep rtl8812au

    Это убедится, что модуль загружен в ядро.

  2. Логи ядра: Изучите сообщения ядра при помощи:

    dmesg | grep rtl8812au

    Логи могут дать вам более детальную информацию о том, что происходит при попытке инициализации драйвера.

  3. Поддержка nl80211: Проверьте, поддерживает ли ваш драйвер команду nl80211. Для этого вы можете использовать iw list или iw dev wlan0 info. Если они не работают, скорее всего, драйвер не поддерживает nl80211.

Альтернативные решения

Если вы всё-таки хотите использовать hostapd с вашим драйвером, вам стоит рассмотреть использование более стабильного драйвера или даже версии wext, что предполагается в вашей второй части вопроса. Например, для запуска wpa_supplicant с использованием wext, выполните команду:

wpa_supplicant -B -i wlan0 -D wext -c /etc/wpa_supplicant/example.conf

Заключение

Для успешной настройки точки доступа с помощью hostapd необходима полноценная поддержка драйверов Wi-Fi, особенно для nl80211. Рекомендуется проверить версию и поддержку вашего драйвера RTL8812au, а также проверить журналы системы на наличие ошибок. Если проблема не решится, возможно, стоило бы подумать о переходе на другой, более совместимый драйвер.

Если у вас возникнут дополнительные вопросы или потребуется помощь, не стесняйтесь обращаться за поддержкой!

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

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