LINUX.ORG.RU
решено ФорумAdmin

[dir-300][Slackware 13.37][Ath9k] Загадочные глюки Wi-Fi

 ,


0

1

Кратко:
Получается получить 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).

★★★★★

Последнее исправление: Xenius (всего исправлений: 3)
Ответ на: комментарий от Xenius

драйвер на буке Ath9k стандартный, убунтушный. к генту подрубил ethernet.

sage@rascal-netbook:~$ su
Пароль: 
root@rascal-netbook:/home/sage# iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

wlan0     IEEE 802.11bgn  ESSID:"kawaii-wifi"  
          Mode:Managed  Frequency:2.452 GHz  Access Point: 34:08:04:C3:27:F2   
          Bit Rate=150 Mb/s   Tx-Power=20 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on
          Link Quality=70/70  Signal level=-30 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:1   Missed beacon:0

root@rascal-netbook:/home/sage# 
rafister
()

У меня тоже ноутбук с ath9k, проблема была одна, неотключаемый Soft Blocked: yes. Решил замаскировыванием модуля rfkill, либо пересборкой ядра без него. До этого пробовал проприетарный madwifi,-ng, который хоть и не поддерживает ath9k, но нужная функциональность добавляется 100-килобайтным патчем, портированном с FreeBSD.

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

> Попробуй убрать вызов setup_ht_cap() из init.c.

В смысле вот это всё закомментировать?
[code] if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_HT) {
if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_2GHZ)
setup_ht_cap(sc, &sc->sbands[IEEE80211_BAND_2GHZ].ht_cap);
if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_5GHZ)
setup_ht_cap(sc, &sc->sbands[IEEE80211_BAND_5GHZ].ht_cap);
}

[/code]

В htc_drv_init.c он тоже есть, там его оставить?

А что это такое и что оно должно дать?

Xenius ★★★★★
() автор топика
Ответ на: комментарий от kmeaw

Значит, в Makefile, который в директории ath9k добавил строчки в конце
all:
   make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

Закомментировал в init.c кусок кода.

Потом сделал make, но

# insmod ath9k.ko
insmod: error inserting 'ath9k.ko': -1 Unknown symbol in module

Правда, когда я просто подменил файлы в /lib/modules на собранные, вроде получилось что-то...

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

> В смысле вот это всё закомментировать?

Да.

В htc_drv_init.c он тоже есть, там его оставить?

Зависит от чипсета. Если не AR9271, то можно оставить.

А что это такое и что оно должно дать?

Если я ничего не напутал, то должен отключиться 802.11n.

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

> insmod: error inserting 'ath9k.ko': -1 Unknown symbol in module

У ath9k есть зависимости. Есть три варианта:

1) посмотреть dmesg, узнать какого символа не хватает, поискать его в других модулях и загрузить их, потом сделать insmod ещё раз; 2) загрузить старый ath9k через modprobe, выгрузить его (зависимости останутся загруженными), загрузить новый через insmod; 3) подменить модуль в /lib/modules, сделать modprobe.

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

>> А что это такое и что оно должно дать?

Если я ничего не напутал, то должен отключиться 802.11n.


Ну оно отключилось, но какие могут быть побочные эффекты? В смысле, почему именно этот вызов этой функции должен включать 11n?

Xenius ★★★★★
() автор топика
Ответ на: комментарий от pekmop1024

>> Какое по-вашему наилучшее решение, кроме очевидного (перепрошить роутер на dd-wrt)?

Стоит выкинуть говнопрошивку и поставить OpenWRT или DD-WRT, для начала.


Я над этим уже думал. Что если не получится прошить и я вообще без интернета останусь?

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

> не получится прошить

Это надо иметь терминальную стадию рукожопия, я в живых с такой болезнью не верю. В крайнем случае откатишься на стоковую.

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

DIR-300/DIR-400 по моим наблюдениям весьма стабильны на DD-WRT, я другу отдал свою бывшую 400ку, аптаймы по нескольку месяцев без вопросов. Правда, подключение без извращений типа PPTP/L2TP.

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

> и у тебя???

Хотелось бы более информативного сообщения.

А перепрошивку... может быть сделаю, если меня этот роутер окончательно достанет.

Xenius ★★★★★
() автор топика
Ответ на: комментарий от pekmop1024

>> не получится прошить

Это надо иметь терминальную стадию рукожопия

Если бы у DIR-825 не было бы режима восстановления прошивки, у меня давно был бы кирпич за 800 грн. Я буквально только что смог собрать прошивку с ядром, которое загрузилось. Конфигурировал сам. Удалось мне это только тогда, когда я оставил конфиг ядра дефолтным, ничего не трогал. До этого пытался отключать лишние борды, squashfs, включал тайминги при printk, включал kexec — и почему-то не грузилось.

/me ушёл настраивать заработавший Wi-Fi.

BTW, нельзя ли как-то заставить opkg использовать собранные мной пакеты, не поднимая зеркало?

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

ты кирпичи то не откладывай раньше времени

ядро свежее стабильное слей и вперед!

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

>>DIR-300/DIR-400 по моим наблюдениям весьма стабильны на DD-WRT

на dir300nru dd-wrt с вафлей не подружилась.тоесть она работала но нестабильно

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

У меня на dd-wrt вообще интернет через PPTP не заработал — соединение после танцев с бубном установил, но пинги до интернет-сайтов не шли.

Xenius ★★★★★
() автор топика

Прошил вначале на DD-WRT с http://dd-wrt.com последней версией, не взлетело. Хотя видно, что по идее прошивка мощная, но сегфолтились некоторые утилиты при работе в консоли.

Прошил на 2.05 через emergency flash, теперь вроде 802.11n взлетел, во всяком случае, iwconfig показывает скорость 65 Mb/s. Описанная проблема не наблюдается.

Впрочем, может было дело в настройках.

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

я решил проблему проше.собрал на itx плате роутер.это более гибкий вариант чем левые прошивки)

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