Hostapd на Raspberry Pi 3 с внешней WiFi-картой

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

Я пытаюсь настроить точку доступа на Raspberry Pi 3, используя внешнюю USB WiFi-карту, hostapd и dnsmasq. Мне удалось это сделать с внутренней WiFi-картой, но когда я пытаюсь переключиться на внешнюю, я получаю следующую ошибку:

$ sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf
Configuration file: /etc/hostapd/hostapd.conf
nl80211: Could not configure driver mode
nl80211: deinit ifname=wlan1 disabled_11b_rates=0
nl80211 driver initialization failed.
wlan1: interface state UNINITIALIZED->DISABLED
wlan1: AP-DISABLED 
hostapd_free_hapd_data: Interface wlan1 wasn't started

Я считаю, это из-за того, что по умолчанию hostapd использует драйвер nl80211. Это вывод команды lsusbBus 001 Device 004: ID 148f:3072 Ralink Technology, Corp. RT3072 Wireless Adapter. А это вывод команды lshw

  *-network:1
       description: Wireless interface
       physical id: 3
       bus info: usb@1:1.4
       logical name: wlan1
       serial: 98:3f:9f:24:a2:00
       capabilities: ethernet physical wireless
       configuration: broadcast=yes driver=rt2800usb driverversion=4.14.71-v7+ firmware=0.36 ip=10.100.100.254 link=no m
ulticast=yes wireless=IEEE 802.11

Судя по всему, эта карта использует драйвер rt2080usb, но когда я пытаюсь указать это в hostapd.conf и вручную стартовать hostapd, я получаю следующую ошибку:

$ sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf
Configuration file: /etc/hostapd/hostapd.conf
Line 3: invalid/unknown driver 'rt2080usb'
1 errors found in configuration file '/etc/hostapd/hostapd.conf'
Failed to set up interface with /etc/hostapd/hostapd.conf
Failed to initialize interface

А это мой файл hostapd.conf:

interface=wlan1
ssid=WiPi
driver=rt2080usb
hw_mode=g
ieee80211n=1
wmm_enabled=1
channel=4
macaddr_acl=0
auth_algs=3
ignore_broadcast_ssid=0
wpa=3
wpa_passphrase=wifipasswordhere
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
ht_capab=[HT20][SHORT-GI-20]

[EDIT] Это вывод команды iwconfig:

wlan1     IEEE 802.11  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm   
          Retry short  long limit:2   RTS thr:off   Fragment thr:off
          Power Management:off

wlan0     IEEE 802.11  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=31 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on

А это вывод команды iw list:

valid interface combinations:
         * #{ AP, mesh point } <= 8,
           total <= 8, #channels <= 1

[EDIT 2] Вот такой вывод, когда я запускаю ‘hostapd’:

$ sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf 
Configuration file: /etc/hostapd/hostapd.conf
Using interface wlan1 with hwaddr 98:3f:9f:24:a2:00 and ssid "WiPi"
random: Only 16/20 bytes of strong random data available from /dev/random
random: Not enough entropy pool available for secure operations
WPA: Not enough entropy in random pool for secure operations - update keys later when the first station connects
wlan1: interface state UNINITIALIZED->ENABLED
wlan1: AP-ENABLED 

А это вывод команды iwconfig:

wlan1     IEEE 802.11  Mode:Master  Tx-Power=20 dBm   
          Retry short  long limit:2   RTS thr:off   Fragment thr:off
          Power Management:off

А это лог hostapd, когда я пытаюсь подключиться к своей сети WiPi и запустить speedtest:

$ Configuration file: /etc/hostapd/hostapd.conf
Using interface wlan1 with hwaddr 98:3f:9f:24:a2:00 and ssid "WiPi"
wlan1: interface state UNINITIALIZED->ENABLED
wlan1: AP-ENABLED 
wlan1: STA 94:65:2d:d4:e0:5b IEEE 802.11: authenticated
wlan1: STA 94:65:2d:d4:e0:5b IEEE 802.11: associated (aid 1)
wlan1: AP-STA-CONNECTED 94:65:2d:d4:e0:5b
wlan1: STA 94:65:2d:d4:e0:5b RADIUS: starting accounting session 5BEC735C-00000000
wlan1: STA 94:65:2d:d4:e0:5b WPA: pairwise key handshake completed (RSN)
wlan1: AP-STA-DISCONNECTED 94:65:2d:d4:e0:5b
Failed to set beacon parameters
wlan1: INTERFACE-DISABLED 
wlan1: INTERFACE-ENABLED 
Failed to set beacon parameters
wlan1: INTERFACE-DISABLED 
wlan1: INTERFACE-ENABLED 
Failed to set beacon parameters
handle_probe_req: send failed

[EDIT 3]: Я запустил hostapd в режиме отладки sudo hostapd -dd -P /run/hostapd.pid -B -f /tmp/hostapd.log /etc/hostapd/hostapd.conf и загрузил файл лога на pastebin

Это может помочь:
https://www.ibm.com/developerworks/library/l-wifiencrypthostapd/index.html

https://wiki.gentoo.org/wiki/Hostapd

auth_algs=1 #Ограничить до wpa

wpa=1 #Ограничить до wpa

Также: У вас установлен ieee80211n=1 и hw_mode=g, попробуйте установить ieee80211n=0 или удалить эту опцию и посмотрите, поможет ли это.

Если вы не собираетесь использовать внутреннюю карту вообще, я бы добавил ее в черный список и затем настроил внешнюю для использования с hostapd, или, если установлен GUI, просто используйте опцию настройки AP в диспетчере подключений для того, чтобы делиться проводным подключением. Убедитесь, что все файлы, которые вы изменили, кроме того, что управляет hostapd, возвращены к оригиналу, если вы попробуете один из вышеперечисленных вариантов.

.

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

Настройка точки доступа (AP) на Raspberry Pi 3 с использованием внешнего USB WiFi-адаптера и hostapd может столкнуться с рядом специфических проблем. В данном случае, судя по предоставленной информации, вы пытаетесь использовать внешний адаптер Ralink RT3072, который функционирует на основе драйвера rt2800usb, в качестве точки доступа. Ошибки, с которыми вы сталкиваетесь, связаны с неправильной настройкой драйвера и недостаточной поддержкой интерфеса nl80211 для вашего устройства в конфигурации hostapd. Рассмотрим возможные шаги для решения проблемы.

Анализ проблемы

  1. Ошибка конфигурации драйвера:

    • В файле конфигурации hostapd.conf указывается драйвер rt2080usb, который, вероятно, введен ошибочно. Правильное значение — nl80211, так как это стандартный драйвер для большинства современных устройств на Linux.
  2. Проблемы с entrophy (энтропией):

    • Современные реализации WPA требуют достаточного количества "случайных" данных для генерации ключей безопасности. В Raspberry Pi иногда может не хватать энтропии, из-за чего возникают ошибки в безопасности. Эту проблему можно смягчить, используя более быстрые источники случайных данных, такие как haveged.

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

  1. Настройка конфигурации hostapd:

    • Откройте файл /etc/hostapd/hostapd.conf и убедитесь, что включены следующие ключевые настройки:
      interface=wlan1
      driver=nl80211
      ssid=WiPi
      hw_mode=g
      channel=4
      macaddr_acl=0
      auth_algs=1  # Ограничьте до WPA
      ignore_broadcast_ssid=0
      wpa=1  # Используйте только WPA
      wpa_passphrase=wifipasswordhere
      wpa_key_mgmt=WPA-PSK
      wpa_pairwise=TKIP
      rsn_pairwise=CCMP
  2. Увеличение энтропийного пула:

    • Установите пакет haveged, чтобы обеспечить достаточную генерацию случайных данных:
      sudo apt-get install haveged
      sudo systemctl enable haveged
      sudo systemctl start haveged
  3. Проверка работы драйвера:

    • Убедитесь, что драйвер rt2800usb действительно загружен:
      lsmod | grep rt2800usb
    • Если он не загружен, попробуйте принудительно его загрузить:
      sudo modprobe rt2800usb
  4. Ограничение режима работы:

    • Попробуйте отключить поддержку ieee80211n, если это не критично для вашего применения:
      # ieee80211n=1
  5. Черный список внутреннего адаптера:

    • Если вы не планируете использовать встроенный WiFi-адаптер, его можно отключить, добавив в /etc/modprobe.d/raspi-blacklist.conf:
      blacklist brcmfmac
      blacklist brcmutil

Заключение

Системная настройка Raspberry Pi требует внимательного подхода, особенно при конфигурации WiFi сетевого оборудования. Следуя данным рекомендациям, вы сможете устранить текущие проблемы, улучшив стабильность и производительность вашей точки доступа. Убедитесь, что после внесения изменений вы перезагрузили устройство и повторно проверили функционирование сети с помощью команды sudo systemctl restart hostapd. Если проблема сохраняется, рассмотрите возможность обращения к дополнительной технической документации или форумам поддержки.

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

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