Кратко:
Получается получить IP адрес от роутера, но после этого сеть не работает.
Возникающие вопросы:
Что это может быть такое?
Какое по-вашему наилучшее решение, кроме очевидного (перепрошить роутер на dd-wrt)?
Как заставить карту с драйвером ath9k не использовать 802.11n, если она его поддерживает?
Подробно:
Имеется ноутбук Asus X58L, роутер D-link DIR-300, работающий в качестве точки доступа.
На ноутбуке установлена Slackware 13.37 с последними обновлениями.
На роутере прошивка 2.04.
С другими компами и тем же роутером такой проблемы нет.
# lspci -nn | grep -i ath
04:00.0 Network controller [0280]: Atheros Communications Inc. AR928X Wireless Network Adapter (PCI-Express) [168c:002a] (rev 01)
Сразу после соединения удаётся получить IP-адрес:
# /etc/rc.d/rc.inet1 restart
Error for wireless request "Set Nickname" (8B1C) :
SET failed on device wlan0 ; Operation not supported.
Error for wireless request "Set Modulation" (8B2F) :
SET failed on device wlan0 ; Operation not supported.
Polling for DHCP server on interface wlan0:
dhcpcd[12895]: version 5.2.11 starting
dhcpcd[12895]: wlan0: rebinding lease of ***
dhcpcd[12895]: wlan0: NAK: from ***
dhcpcd[12895]: wlan0: broadcasting for a lease
dhcpcd[12895]: wlan0: offered *** from ***
dhcpcd[12895]: wlan0: acknowledged *** from ***
dhcpcd[12895]: wlan0: checking for ***
dhcpcd[12895]: timed out
dhcpcd[12895]: allowing 8 seconds for IPv4LL timeout
dhcpcd[12895]: wlan0: leased **** for infinity
dhcpcd[12895]: forked to background, child pid 12933
Но после этого ничего больше не работает (ни роутер, ни интернет-сайты не пингуются).
Если устанавливать соединение с помощью wicd, которая тоже есть в составе слаки, то глюк всё равно был, но я тогда думал, что дело в wicd, однако оказалось, что настройка кошерным способом не помогла.
Однако, если сделать nmap на адрес роутера, то он всё-таки в некоторых случаях срабатывает, и после этого интернет появляется.
В других случаях, если сделать nmap (особенно без ключей), то интернет не появляется, а наоборот, полученный по DHCP адрес пропадает из ifconfig и приходится перезапускать интерфейс. При этом в dmesg ничего об этом разрыве нет. То же самое происходит и через некоторое время после работы с сеть — и приходится опять пляски с бубном (в смысле с nmap).
Я подозреваю, что проблема в том, что этот ноутбук единственный из всех поддерживает 802.11n и устанавливает слишком высокий битрейт, а роутер, хотя вроде бы тоже поддерживает 802.11n, но на деле с ним не работает.
В стандартный скрипт /etc/rc.d/rc.wireless я пробовал добавить строчки:
# local change: set modulation
echo "$0: $IWCOMMAND modulation 11g" | $LOGGER
$IWCOMMAND modulation 11g | $LOGGER
Однако это лишь добавило в лог ошибок две строчки (см. выше «Error for wireless request „Set Modulation“ (8B2F)»), а режим, похоже, не поменялся (по крайней мере, скорость показывалась 150 Mb/s).