Вопрос или проблема
У меня есть проблемы с 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 адаптера не поддерживает необходимые команды для аутентификации или ассоциации.
Возможные причины проблемы
-
Драйвер RTL8812au: Драйвер RTL8812au, который вы используете, возможно, не полностью поддерживает API
nl80211
. Это может быть следствием недостатков в реализациях или устаревших версиях драйвера. Важно убедиться, что драйвер обновлён и совместим с вашей версией ядра (3.14.28). -
Использование nl80211: Протокол nl80211 является интерфейсом взаимодействия для драйверов Wi-Fi и
hostapd
. Если драйвер не поддерживает необходимый функционал,hostapd
не сможет правильно инициализировать интерфейс. -
Проблемы с iwlist: Вы упоминаете, что команда
iw list
не возвращает никаких результатов. Это может указывать на то, что драйвер не предоставляет необходимую информацию о поддерживаемых режимах работы, что дополнительно подтверждает, что драйвер не функционирует должным образом.
Проверка состояния драйвера
Для начала попробуйте выполнить следующие команды для диагностики:
-
Проверка загруженных модулей: Убедитесь, что драйвер правильно загружен. Используйте:
lsmod | grep rtl8812au
Это убедится, что модуль загружен в ядро.
-
Логи ядра: Изучите сообщения ядра при помощи:
dmesg | grep rtl8812au
Логи могут дать вам более детальную информацию о том, что происходит при попытке инициализации драйвера.
-
Поддержка 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, а также проверить журналы системы на наличие ошибок. Если проблема не решится, возможно, стоило бы подумать о переходе на другой, более совместимый драйвер.
Если у вас возникнут дополнительные вопросы или потребуется помощь, не стесняйтесь обращаться за поддержкой!