LINUX.ORG.RU

Точка доступа на «Realtek RTL8187» и «Ralink RT2870/RT3070»

 , , , ,


0

1

Доброго времени суток!

Возникли трудности при попытке создания ТД с использованием Wi-Fi адаптеров ALFA. Что было проделано:

1)МAC адреса адаптеров были добавлены в unmanaget list network-manager-а

2)Проверено, что драйвера обоих карточек установлены

3)При попытке запуска hostapd для карточки Realtek c её драйвером - выводит:

root@slax:/etc/hostapd# hostapd -d hostapd.conf
random: Trying to read entropy from /dev/random
Configuration file: hostapd.conf
Line 2: invalid/unknown driver 'rtl8187'
1 errors found in configuration file 'hostapd.conf'
Failed to set up interface with hostapd.conf
hostapd_init: free iface 0x55987df97710
Failed to initialize interface

4)Если в конфиге прописать driver=none, то выводит:

random: Trying to read entropy from /dev/random
Configuration file: hostapd.conf
wlan3: interface state UNINITIALIZED->COUNTRY_UPDATE
Previous country code , new country code RU 
Continue interface setup after channel list update
ctrl_iface not configured!
random: Got 20/20 bytes from /dev/random
Channel list update timeout - try to continue anyway
Completing interface initialization
Mode: IEEE 802.11g  Channel: 1  Frequency: 0 MHz
DFS: No current_mode information - assume no need to perform DFS operations by hostapd
hostapd_setup_bss(hapd=0x563826c11900 (wlan3), first=1)
wlan3: interface state COUNTRY_UPDATE->ENABLED
wlan3: AP-ENABLED 
wlan3: Setup of interface done.

НО, точку не видно с других устройств...

Мой конфиг:

interface=wlan3
driver=none
ssid=test
country_code=RU
hw_mode=g
channel=1

Подскажите, пожалуйста, в чем я тут ошибаюсь?
Для второй карточки тоже самое выводит((

Ты не читаешь мануалы и примеры конфигов предоставленые проектом hostapd.

Например

# Driver interface type (hostap/wired/none/nl80211/bsd);
# default: hostap). nl80211 is used with all Linux mac80211 drivers.
# Use driver=none if building hostapd as a standalone RADIUS server that does
# not control any wireless/wired driver.
# driver=hostap

daemonpnz ★★★★★ ()
Последнее исправление: daemonpnz (всего исправлений: 1)

Если драйвера (те которые для работы с железом) используют mac80211 из ядра, то в hostapd строка driver должна быть nl80211. То есть, если никаких драйверов ручками не ставил, а используешь родные опенсорсные, то твой драйвер nl80211. Иначе, при использовании проприетарных драйверов нужно обратиться к документации этих драйверов, в ней должен быть указан метод/пример настройки hostapd. А вообще в проприетарных драйверах обычно используют встроенную поддержку AP-mode с собственным стеком 802.11 и не требуют hostapd совсем или требуют только для общения с RADIUS.

Важно понимать отличия, драйвер для железа - это непосредственно драйвер управления железом. А драйвер в hostapd - это драйвер управления интерфейсом, так сказать протокол управления/взаимодействия с ядерным модулем. Для всех опенсорсных драйверов железа драйвер hostapd - nl80211.

nickleiten ★★★ ()
Ответ на: комментарий от daemonpnz

Спасибо!!!

Выставил driver=nl80211 и точка заработала на Ralink с вот таким конфигом:

interface=wlan1
driver=nl80211
ssid=testAp
hw_mode=g
channel=1
macaddr_acl=0
ignore_broadcast_ssid=0

А при попытке с этим же конфигом поднять точку на Realtek -

:

random: Trying to read entropy from /dev/random
Configuration file: hostapd.conf
rfkill: initial event: idx=0 type=1 op=0 soft=0 hard=0
rfkill: initial event: idx=1 type=1 op=0 soft=0 hard=0
nl80211: Supported cipher 00-0f-ac:1
nl80211: Supported cipher 00-0f-ac:5
nl80211: Supported cipher 00-0f-ac:2
nl80211: Supported cipher 00-0f-ac:4
nl80211: Supported cipher 00-0f-ac:10
nl80211: Supported cipher 00-0f-ac:8
nl80211: Supported cipher 00-0f-ac:9
nl80211: Using driver-based off-channel TX
nl80211: interface wlan3 in phy phy0
nl80211: Set mode ifindex 3 iftype 3 (AP)
nl80211: Failed to set interface 3 to mode 3: -95 (Operation not supported)
nl80211: Try mode change after setting interface down
nl80211: Set mode ifindex 3 iftype 3 (AP)
nl80211: Failed to set interface 3 to mode 3: -95 (Operation not supported)
nl80211: Interface mode change to 3 from 0 failed
nl80211: Could not configure driver mode
nl80211: deinit ifname=wlan3 disabled_11b_rates=0
nl80211: Remove monitor interface: refcount=0
netlink: Operstate: ifindex=3 linkmode=0 (kernel-control), operstate=6 (IF_OPER_UP)
nl80211: Set mode ifindex 3 iftype 2 (STATION)
nl80211 driver initialization failed.
hostapd_interface_deinit_free(0x564ae4053710)
hostapd_interface_deinit_free: num_bss=1 conf->num_bss=1
hostapd_interface_deinit(0x564ae4053710)
wlan3: interface state UNINITIALIZED->DISABLED
hostapd_bss_deinit: deinit bss wlan3
wlan3: AP-DISABLED 
hostapd_cleanup(hapd=0x564ae4054900 (wlan3))
hostapd_free_hapd_data: Interface wlan3 wasn't started
hostapd_interface_deinit_free: driver=(nil) drv_priv=(nil) -> hapd_deinit
hostapd_interface_free(0x564ae4053710)
hostapd_interface_free: free hapd 0x564ae4054900
hostapd_cleanup_iface(0x564ae4053710)
hostapd_cleanup_iface_partial(0x564ae4053710)
hostapd_cleanup_iface: free iface=0x564ae4053710

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

tailer73 ()
Ответ на: комментарий от nickleiten

Спасибо за ответ! Ручками никаких драйверов не ставил, все было системе.

tailer73 ()
Ответ на: комментарий от tailer73

Попробуй остановить hostapd и ручками создать AP-интерфейс. Желательно, чтоб никакие NetworkManager'ы не мешались по пути, то есть больше никаких управляющих программ не должно быть запущено.

Для просмотра, что поддерживает адаптер можно воспользоваться командой (если адаптер под phy0 прячется, но если их несколько, можно перебрать phy1, phy2 и т.д.)

iw phy0 info
Вывод команды будет большой, но нас интересует блок «valid interface combinations». У меня он выглядит так:
        valid interface combinations:
                 * #{ managed } <= 2048, #{ AP, mesh point } <= 8, #{ P2P-client, P2P-GO } <= 1, #{ IBSS } <= 1,
                   total <= 2048, #channels <= 1, STA/AP BI must match
                 * #{ WDS } <= 2048,
                   total <= 2048, #channels <= 1, STA/AP BI must match
Что означает поддержку адаптером до 2048 виртуальных интерфейсов в комбинациях до 2048 в режиме станции + 8 в режиме AP и по одной для P2P и IBSS, но суммарное количество интерфейсов не должно превышать 2048. И до 2048 WDS-интерфейсов. Любая комбинация подразумевает работу всех интерфейсов на одном канале и соответствие WMM параметров между STA/AP интерфейсами.

Для создания AP-интерфейса вручную, желательно предварительно удалить виртуальный интерфейс, который создаётся по-умолчанию в режиме sta:

ip link set wlan0 down
iw dev wlan0 del
Потом выполняешь команду добавления интерфейса в режиме AP:
iw phy0 interface add wlan0 type __ap
Если ошибок не будет, значит всё хорошо и есть проблема миграции режима интерфейса. То есть перед стартом hostapd нужно удалять все интерфейсы по-умолчанию. Ошибка возникает из-за невозможности переназначить MAC-адрес интерфейсу, для совместной работы STA+AP режимов, есть такой глюк на некоторых драйверах/железках.

Если же возникла ошибка, то потребуется, так сказать, deep digging в устройство твоей железки. Не знаю, как сейчас у риалтеков, но некоторым чипам для работы требуется прошивка (для 802.11ac практически все уже требуют её), а т.к. в адаптере проц и память тухленькие, всё сразу заставить работать проблемно (нет исходников для этого). То есть, вполне вероятно, что для работы AP-режима требуется другая прошивка самого адаптера (их обычно так и разделяют, для sta-режима и для ap-режима, т.к. внутреннее устройство чипа одинаковое для роутеров и адаптеров в комп/планшет/ноут, но разные рынки сбыта для OEM-производителей, потому производитель чипа и разделяет эту часть).

nickleiten ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.