Если интерфейс предварительно ассоциировать с точкой доступа через wireless-tools, то wpa_supplicant перестаёт работать. Пример: настраиваем карту через iwconfig eth1 essid myessid key 0x12121212 После этого пытаемся перенастроить плату с помощью alterator-net-wifi на WEP. Получаем странное - идёт коннект, после этого сразу - дисконнект. Это зависит от ядерного драйвера, и воспроизводится железно на ipw3945. Проблема в том, что если интерфейс уже ассоциирован с точкой доступа, то драйвер не отправляет SIOCGIWAP (в общем то он прав), и wpa_supplicant никогда не получает сигнал о том, что подсоединение к точке доступа прошло успешно. И соответственно процедура аутентификации обламывается по таймауту (хотя во время таймаута сеть работает), после таймаута идёт повторная процедура и так до бесконечности. Мне показалось правильным способом исправить данную проблему - перед началом аутентификации на точке доступа сбросить ассоциацию, что в общем то никому не вредит (процедура тривиальная), а драйверу скажет "разорви соединение, если был подключен". Патч тривиален, просьба приложить как в Sisyphus так и в branch/4.0: diff --git a/wpa_supplicant/driver_wext.c b/wpa_supplicant/driver_wext.c index de97950..7a3daf9 100644 --- a/wpa_supplicant/driver_wext.c +++ b/wpa_supplicant/driver_wext.c @@ -1796,6 +1796,12 @@ wpa_driver_wext_associate(void *priv, int value; wpa_printf(MSG_DEBUG, "%s", __FUNCTION__); + /* + * DeAuthenticate workaround for already authentificated driver + * + */ + + wpa_driver_wext_deauthenticate(drv,params->bssid,0); /* * If the driver did not support SIOCSIWAUTH, fallback to
перевешиваю на "последнего кто изменял" Стас, внеси пожалуйста данное изменение. 2lioka: посмотри, на твой взгляд - что-то оно сломает ? я у себя протестировал - работает fine, как с настроенной точкой так и с отключенной.
Забыл добавить - эта ошибка вылезает только в случае использование аутентификации WEP а не WPA
давно исправлено.