rt2860 + hostapd = SoftAP?
Уже давно поставил себе в ноут i5350 с поддержкой 802.11n, а в домашнем сервере стояла .g карточка (d-link dge-530t, rt61 под hostapd), что шибко обламывало, т.к. сервер не какой-нибудь, а файловый.
Купил на днях trendnet tew-623pi (ralink 2860, 3 антенны). Поставил последнее ядро 2.35, включил поддержку новой карточки. Все определилось. Собрал hostapd с поддержкой ieee80211n. А дальше наступила большая грусть. Ибо скорость даже в обычном .g режиме намного меньше, чем у старой. Плюс к этому постоянно прыгает скорость коннекта (в 2 метрах от антенны, проседает до 24 Мбит и назад до 54), пинги тоже больше, чем на старой и тоже прыгают (например на старой пинг на сервер <1мс, на новой 5-20мс, прыгает). В режиме .n все аналогично, разве что скорость прыгает не от 24 до 54, а где-то от 38 до 170Мбит.
Со старой сетевушкой скорость скачивания с сервера ~2-3МБ, с новой 0.3-0.9, иногда и 0.1МБ. Вобщем даже как замену старой из-за увеличенного радиуса действия не попользовать, не говоря о моих грезах по поводу 10МБ/c связи. Гуглил, нашел только упоминание про проблему с потерей пакетов - с установкой свежего compat-wireless ситуация там улучшилась. Пробовал - фиолетово. Также находил что косяк с низкой скоростью был при прописанном параметре ht_capab по-умолчанию, и скорость становилась 9-10 метров/c при задании его пустым. У меня с пустым тупо hostapd не может карточку завести. Подскажите плз, куда копать, или может дрова очень сырые (experimental) на этот чипсет в ядре? Хотя полная поддержка (в т.ч. режима AP) заявлена...
Конфиг hostapd с включенным .n
http://pastebin.com/LJApuQif
Конфиг hostapd для режима .g (полностью аналогичен конфигу для старой карточки, с которой все отлично)
http://pastebin.com/whcUYDqg
После запуска и убития hostapd (с новой карточкой), возникает глюк. При попытке сделать ifconfig wlan1 down в консоль сыпется здоровый дебаг-вывод, никакие операции над wlan1 сделать нельзя, система сама не перезагружается/выключается - виснет на выключении сетевых адаптеров. Помогает только RESET.
UPD: переставил в нижний слот (теперь - wlan0), проблемы с пингами пропали в .g режиме, но скорость маленькая - метр и меньше в секунду. С .n все так же.
Trace: http://pastebin.com/BP5KCUpa
См. ошибки при обращении к wlan0 (это все при попытке сделать ifconfig wlan0 down)
- Для комментирования войдите или зарегистрируйтесь
Итак. Целый день геммороя,
Итак. Целый день геммороя, хотя все было несложно))
Напишу по порядку для нубов, вроде меня.
cfg80211, mac80211; ralink rt28xx/.../ - модулями. Компилим ядро, кидаем в /boot, перезагружаемся.
Качаем последний релиз compat-wireless, выбираем в нем rt2x00 (юзаем ./scripts/driver-select), компилим, ставим, ребутимся.
Качаем последний (0.8.x) снапшот hostapd и wpa_supplicant.
:hostapd:
cp ./defconfig ./.config
В .config:
#CONFIG_DRIVER_HOSTAP=y
CONFIG_DRIVER_NL80211=y
и под конец
CONFIG_IEEE80211N=y
make
make install
:wpa_supplicant:
cp ./defconfig ./.config
В .config
#CONFIG_DRIVER_HOSTAP=y
#CONFIG_DRIVER_ATMEL=y
CONFIG_DRIVER_RALINK=y
make
make install
В hostapd.conf
channel=5
ieee802.11n=1
ht_capab=[HT40-][SHORT-GI-20][SHORT-GI-40][TX-STBC][RX-STBC1] (так у меня, что прописывать вам смотрите через iw list - прям в самом начале "HT capabilities"; если нету - emerge iw).
Номер канала ограничивается параметром [HT40-] / [HT40+], читайте пример конфига hostapd ;)
Ну, все остальное вроде просто настроить по коментам из примера.
У меня, если убить hostapd и заново запустить, начинается чехарда пингов. Такая же, как была до установки свежых compat-wireless, hostapd и wpa_supplicant.
Мое решение:
rmmod rt2800lib
rmmod rt2x00pci
rmmod rt2x00lib
rmmod mac80211
rmmod cfg80211
rmmod compat
modprobe rt2800pci
hostapd /etc/hostapd.conf
После этого все снова нормально.
Посему прописал rmmod'ы, modprobe, ifconfig wlan0 up прямо в /etc/init.d/hostapd.
Скорость с WPA2 CCMP (AES) - 19-20 метров в секунду (клиент - i5350).
Косячок один остался... С
Косячок один остался...
С включенным .n при использовании WPA примерно раз в 10 минут hostapd деаутентифицирует клиента.
wlan0: WPA rekeying GTK
WPA: group state machine entering state SETKEYS (VLAN-ID 0)
GMK - hexdump(len=32): [REMOVED]
GTK - hexdump(len=16): [REMOVED]
WPA: 00:16:eb:0b:8c:d2 WPA_PTK_GROUP entering state REKEYNEGOTIATING
wlan0: STA 00:16:eb:0b:8c:d2 WPA: sending 1/2 msg of Group Key Handshake
WPA: Send EAPOL(version=2 secure=1 mic=1 ack=1 install=0 pairwise=0 kde_len=24 keyidx=2 encr=1)
Plaintext EAPOL-Key Key Data - hexdump(len=32): [REMOVED]
wpa_group_setkeys: GKeyDoneStations=1
IEEE 802.1X: 00:16:eb:0b:8c:d2 TX status - version=2 type=3 length=127 - ack=1
wlan0: STA 00:16:eb:0b:8c:d2 WPA: EAPOL-Key timeout
WPA: 00:16:eb:0b:8c:d2 WPA_PTK_GROUP entering state REKEYNEGOTIATING
wlan0: STA 00:16:eb:0b:8c:d2 WPA: sending 1/2 msg of Group Key Handshake
WPA: Send EAPOL(version=2 secure=1 mic=1 ack=1 install=0 pairwise=0 kde_len=24 keyidx=2 encr=1)
Plaintext EAPOL-Key Key Data - hexdump(len=32): [REMOVED]
IEEE 802.1X: 00:16:eb:0b:8c:d2 TX status - version=2 type=3 length=127 - ack=1
wlan0: STA 00:16:eb:0b:8c:d2 WPA: EAPOL-Key timeout
WPA: 00:16:eb:0b:8c:d2 WPA_PTK_GROUP entering state REKEYNEGOTIATING
wlan0: STA 00:16:eb:0b:8c:d2 WPA: sending 1/2 msg of Group Key Handshake
WPA: Send EAPOL(version=2 secure=1 mic=1 ack=1 install=0 pairwise=0 kde_len=24 keyidx=2 encr=1)
Plaintext EAPOL-Key Key Data - hexdump(len=32): [REMOVED]
IEEE 802.1X: 00:16:eb:0b:8c:d2 TX status - version=2 type=3 length=127 - ack=1
wlan0: STA 00:16:eb:0b:8c:d2 WPA: EAPOL-Key timeout
WPA: 00:16:eb:0b:8c:d2 WPA_PTK_GROUP entering state REKEYNEGOTIATING
wlan0: STA 00:16:eb:0b:8c:d2 WPA: sending 1/2 msg of Group Key Handshake
WPA: Send EAPOL(version=2 secure=1 mic=1 ack=1 install=0 pairwise=0 kde_len=24 keyidx=2 encr=1)
Plaintext EAPOL-Key Key Data - hexdump(len=32): [REMOVED]
IEEE 802.1X: 00:16:eb:0b:8c:d2 TX status - version=2 type=3 length=127 - ack=1
wlan0: STA 00:16:eb:0b:8c:d2 WPA: EAPOL-Key timeout
WPA: 00:16:eb:0b:8c:d2 WPA_PTK_GROUP entering state REKEYNEGOTIATING
WPA: 00:16:eb:0b:8c:d2 WPA_PTK_GROUP entering state KEYERROR
WPA: group state machine entering state SETKEYSDONE (VLAN-ID 0)
wpa_driver_nl80211_set_key: ifindex=16 alg=3 addr=(nil) key_idx=2 set_tx=1 seq_len=0 key_len=16
WPA: 00:16:eb:0b:8c:d2 WPA_PTK entering state DISCONNECT
hostapd_wpa_auth_disconnect: WPA authenticator requests disconnect: STA 00:16:eb:0b:8c:d2 reason 2
WPA: 00:16:eb:0b:8c:d2 WPA_PTK_GROUP entering state IDLE
WPA: 00:16:eb:0b:8c:d2 WPA_PTK entering state DISCONNECTED
WPA: 00:16:eb:0b:8c:d2 WPA_PTK entering state INITIALIZE
wpa_driver_nl80211_set_key: ifindex=16 alg=0 addr=0x8e94c18 key_idx=0 set_tx=1 seq_len=0 key_len=0
addr=00:16:eb:0b:8c:d2
wlan0: STA 00:16:eb:0b:8c:d2 IEEE 802.1X: unauthorizing port
wlan0: STA 00:16:eb:0b:8c:d2 IEEE 802.11: deauthenticated due to local deauth request
По умолчанию, я так понимаю, этот самый rekeying просиходит как раз каждые 10 минут.
# Time interval for rekeying GTK (broadcast/multicast encryption keys) in
# seconds. (dot11RSNAConfigGroupRekeyTime)
#wpa_group_rekey=600
# Maximum lifetime for PTK in seconds. This can be used to enforce rekeying of
# PTK to mitigate some attacks against TKIP deficiencies.
#wpa_ptk_rekey=600
wpa_supplicant что ли глючит.