Настройка WiFi в Linux на примере беспроводной карты WiFi Intel PRO/Wireless на ноутбуке Asus M5200AE

Здесь я уже писал о том, что на моём ноутбуке Asus M5200AE всё играет и поёт. А не так давно, в связи с приобретением Nokia N800, потребовалось настроить WiFi в Linux. Тут я вспомнил, настройка WiFi прошла как-то слишком просто - сейчас, думаю, с полпинка всё и настрою. Полпинка вылились в небольшое пешее эротическое путешествие со счастливым концом :-)






На всякий случай, в BIOS на Asus M5200AE можно попасть с помощью кнопки  <F2> при загрузке. Если же мы хотим увидеть меню выбора загрузочных устройств (Boot Menu), нужно нажать кнопку <ESC> при появлении экрана BIOS. Доступны варианты загрузки с USB drive, CD-ROM и жёсткого диска.




Настройка WiFi в Linux на примере Intel PRO/Wireless 2200Адаптер от Интел, так что проблем быть по определению не должно. Их, собственно, и нет: качаем firmware отсюда, распаковываем и кидаем её в /usr/share/firmware







Как говорят здесь, WLAN works with the driver ipw2200 from IPW2200's homepage. To use it with 2.6.13, you need these patches:

    ieee80211-for-2.6.13
    ipw2200-for-2.6.13
    ipw2200-suspend2-fix

But still, there is a problem with the RF-Kill switch. According to /sys/bus/pci/drivers/ipw2200/0000:01:05.0/rf_kill, it is hardware-controlled, but Fn+F2 does not do anything. The driver from the project RFSwitch does not work either.



Кроме того, следует поставить пакеты для работы с беспроводными сетями:

aptitude install wireless-tools, kwifimanager, kwirelessmonitor-net kwirelessmonitor kwrapper
А так же ставим пакеты для работы с ACPI, если они ещё не установлены:
aptitude install acpi-support acpid laptop-mode-tools
После этого у вас будет запущен демон acpid и в /etc/acpi добавится много полезных и нужных скриптов.

И если всё правильно сделано, то при загрузке в логах будет видно вот что:
ieee80211_crypt: registered algorithm 'NULL'
ieee80211: 802.11 data/management/control stack, 1.1.14
ieee80211: Copyright (C) 2004-2005 Intel Corporation
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.1.3dmprq
ipw2200: Copyright(c) 2003-2006 Intel Corporation
ACPI: PCI Interrupt 0000:01:05.0[A] -> GSI 18 (level, low) -> IRQ 17
ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
ipw2200: Radio Frequency Kill Switch is On:
Kill switch must be turned off for wireless networking to work.
ipw2200: Detected geography ZZM (11 802.11bg channels, 0 802.11a channels)
Всё здорово, и вроде как работает, но смущают строчки, которые я выделил красным. Что за Kill Switch и почему нельзя подключиться к сети, если он включён?


Аппаратный убийца радиопередатчика

Есть такая комбинация клавиш на ноутбуке, которая включает и выключает радиопередатчик wifi-чипа. Эта комбинация называется "Kill Switch" - если вы не нажали эти клавиши и не включили передатчик, никакие ваши шаманства не помогут.

Проверяется это так: в /proc должен быть файлик с названием rf_kill. Лежать он может в директории, в которой находятся сведения о беспроводной карте. Для того, чтобы проверить положение Kill Switch, выводим его содержимое:
# cat /sys/bus/pci/drivers/ipw2200/0000\:01\:05.0/rf_kill
2
Согласно документации, имеем:
rf_kill
read -
0 = RF kill not enabled (radio on)
1 = SW based RF kill active (radio off)
2 = HW based RF kill active (radio off)
3 = Both HW and SW RF kill active (radio off)

Всё, аппаратный переключатель включён, радио выключено. Это видно и в выводе iwconfig:

eth3 radio off ESSID:"virens"
Mode:Ad-Hoc Frequency:2.412 GHz Cell: Not-Associated
Bit Rate:0 kb/s Tx-Power=off Sensitivity=8/0
Retry limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

Как правило, комбинация для включения\отключения Kill Switch - Fn+F2 но у вас она может быть другой.



Для того, чтобы она работала, нужно, чтобы в ядре была включена поддержка ACPI, причём само ACPI монолитно, а драйверы для событий - модульно. При этом должна быть выключена поддержка Asus Extras (если у вас ноутбук Asus, конечно).
Странно, но именно так - поддержка дополнительных возможностей должна быть отключена, чтобы заработала единственная кнопка Fn+F2. Необычно, но медицинский факт - с ней не работает...
Если у вас ядро дистрибутивное и там всё включено - я очень за вас рад, можете это пропустить. Тем, кто собирает ядра под свои машины - шпаргалка.

Итак, в ядре должно быть:

Power management options (ACPI, APM) --->
[*] Power Management support ---->
[*] ACPI Support:
<М> AC Adapter
<М> Battery
<М> Button
<М> Video
<М> Fan
<М>Processor
<М>Thermal Zone
< > ASUS/Medion Laptop Extras
<--- в положении ВЫКЛЮЧЕНО!
Теперь идём дальше и включаем поддержку Radio Frequency Kill Switch

Networking --->
[*] Networking support -->
Improved wireless configuration API
--- Wireless extensions
<М> Generic IEEE 802.11 Networking Stack (mac80211)
[ ] Enable debugging output
<М>Generic IEEE 802.11 Networking Stack
[ ] Enable full debugging output
--- IEEE 802.11 WEP encryption (802.1x)
<М> IEEE 802.11i CCMP support
<М> IEEE 802.11i TKIP encryption
<М> Software MAC add-on to the IEEE 802.11 networking stack
[ ] Enable full debugging output

Там же, в Networking, включаем:
<*> RF switch subsystem support --->
<*> Input layer to RF switch connector
Наверняка потребуется NAT для того, чтобы беспроводные устройства могли выходить в Интернет по проводному \ модемному соединению. Поэтому включаем всё, что относится к NAT и Masquerading:

Networking --->
[*] Networking support -->
Networking options --->
[*] Network packet filtering framework (Netfilter) --->
Core Netfilter Configuration --->

<*> Netfilter netlink interface
...
<*> Netfilter connection tracking support

IP: Netfilter Configuration --->
<*> IPv4 connection tracking support (required for NAT)
[*] proc/sysctl compatibility with old connection tracking
<*> IP tables support (required for filtering/masq/NAT)
<*> IP range match support
<*> TOS match support
<*> recent match support
<*> ECN match support
<*> AH match support
<*> TTL match support
<*> Owner match support
<*> address type match support
<*> Packet filtering
<*> REJECT target support
<*> LOG target support
<*> ULOG target support
<*> Full NAT
<*> MASQUERADE target support
<*> REDIRECT target support
<*> NETMAP target support
<*> SAME target support
...
<*> Packet mangling
<*> TOS target support
<*> ECN target support
<*> TTL target support
Приведённые настройки - не догма, а руководство к действию. Но всё, что касается NAT и Masquerade включать обязательно.

Идём дальше, нам нужно включить поддержку нашей интеловской карты. Нужен раздел в корне под названием Device Drivers, оттуда мы продолжим успешное наступление на беспроводные сети.

Device Drivers ---->
Network device support --->
[*] Network device support
.................
Wireless LAN --->

[*] Wireless LAN (IEEE 802.11)
<М> Intel PRO/Wireless 2200BG and 2915ABG Network Connection
<------- это наш драйвер, его делаем модулем.
[*] Enable promiscuous mode
--- Enable radiotap format 802.11 raw packet support
[*] Enable creation of a RF radiotap promiscuous interface
[*] Enable QoS support
[*] Enable full debugging output in IPW2200 module.

Включаем поддержку загрузки firmware:
Device Drivers ---->
Generic Driver Options ---->
Hotplug firmware loading support

Должно уже быть либо отмечено, либо поставлен прочерк - значит, всё в порядке, загрузка firmware обеспечивается.

Для шифрования соединения нужна поддержка алгоритмов шифрования:
Cryptographic options ->
<*>ARC4 cipher algorithm
<*>Michael MIC keyed digest algorithm
<*>AES cipher algorithms (i586)

И ещё вот это:
Library routines ->
<*>CRC32 functions


Ну и наконец включаем поддержку LED-ов, чтобы лампочками можно было мигать при включении WiFi. Там же, в Device Drivers, ищем внизу:

Device Drivers ---->
LED devices --->
[*] LED Support
<*> LED Class Support
--- LED drivers
--- LED Triggers
Поздравляем себя, ещё раз проверяем, не пропустили ли от счастья какие-нибудь подлые грабли, собираем ядро, ставим его в загрузку, перезагружаемся.


Ключ на старт!Всё готово для нашего беспроводного счастья. Собственно, оно должно наступить ещё при загрузке: ядро обнаружит ACPI-возможности ноутбука и включит лампочку беспроводного соединения. Подгрузится модуль ipw2200, ieee80211 и ieee80211_crypt.

Теперь нажимаем Fn+F2 и смотрим, загорается \ потухает ли лампочка. Если да - мои поздравления, аппаратный переключатель в наших руках. Снова проверяем состояние Kill Switch, выводим его содержимое:
# cat /sys/bus/pci/drivers/ipw2200/0000\:01\:05.0/rf_kill
0
Всё, радио включено. Теперь смотрим вывод:
# iwconfig
lo no wireless extensions.

eth1 no wireless extensions.

Warning: Driver for device eth3 has been compiled with version 22
of Wireless Extension, while this program supports up to version 20.
Some things may be broken...

eth3 unassociated ESSID:"virens"
Mode:Ad-Hoc Frequency=2.412 GHz Cell: Not-Associated
Bit Rate:0 kb/s Tx-Power=20 dBm Sensitivity=8/0
Retry limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Заработало! Остался сущий пустяк - настроить сеть. Для начала лучше настроить простую Ad-Hoc сеть (то есть точка-точка). Лучше назначить сетевые адреса, и, если сеть маленькая - статические.

В /etc/network/interfaces пишем что-то вроде:

auto eth3
iface eth3 inet static
address 10.106.146.1
netmask 255.255.255.0
wireless-mode ad-hoc
wireless-channel 1
wireless-rate auto
wireless-essid virens

Теперь настраиваем саму карту:
iwconfig eth3 mode Ad-Hoc channel 1 essid virens
Всё, теперь у вас есть простая одноранговая беспроводная сеть с идентификатором virens (настройка сети приведена, естественно, на моём рабочем примере). Прочитать о том, что такое essid и прочие заумные тонкости беспроводной связи можно в этой изумительной статье.

17 комментариев: |высказаться!| RSS-лента дискуссии.|
Анонимный комментирует...

Скажите, на вашем ноутбуке hibernate заработал ? SwSusp2 ставили, или через bios засыпает

gio комментирует...

Спасибо за статью. Все не решался попробовать настроить сеть между Nokia N80 и HP Compaq nx6325, правда там карта Broadcom. Посмотрим, что получится.

Last~Exile комментирует...

Конечно чуток оффтоп... но раз тема по Ви-Фи, то спрошу...

Некороторые дистрибутивы без встренной поддержки Ви-Фи (например Gentoo или ещё какой-нить) вырубают аппаратно мой Wi-Fi встроенный адаптер Intel Wireless 3945abg, т.е. когда запускаешь Live-CD, а потом перезагружаешься, то ни Linux, ни Windows по переключателю на теле ноута не могут включить адаптер.

Использую: Acer 4202WLMi, Ubuntu Linux и ХРень.

Где капать проблему?

sda комментирует...

дистрибутив OpenSuSE, Acer5024, IbmT40, Asus A8V+Ralink на машине + Asus wl550ge (на олеговой прошивке с Broadcom-ом) в качестве роутера. как-то всё тихо-мирно без эксцессов на дефолтном ядре...

Ilya Brik комментирует...

Некороторые дистрибутивы без встренной поддержки Ви-Фи (например Gentoo или ещё какой-нить) вырубают аппаратно мой Wi-Fi встроенный адаптер
Звучит как что-то из области фантастики. Я достаточно много имел дело с wireless, но про такое не слыхал.

virens комментирует...

2 Анонимный пишет...
Скажите, на вашем ноутбуке hibernate заработал ?
Мне это не нужно, поэтому не проверял.

2 gio пишет...
Все не решался попробовать настроить сеть между Nokia N80 и HP Compaq nx6325
У меня получилось, правда, между ноутом и N800. Всё работает. Скоро будет пост.

2 Last~Exile пишет...
Некороторые дистрибутивы без встренной поддержки Ви-Фи (например Gentoo или ещё какой-нить) вырубают аппаратно мой Wi-Fi встроенный адаптер
Это смахивает на фантастику, как ниже говорят. Только если вы вырубите одновременно и программный ключ, и аппаратный.

2 sda пишет...
как-то всё тихо-мирно без эксцессов на дефолтном ядре...
Мне вайфай не был нужен, и я его поотрубал. И ядро у меня самосборное.

2 Ilya Brik пишет...

Некороторые дистрибутивы без встренной поддержки Ви-Фи (например Gentoo или ещё какой-нить) вырубают аппаратно мой Wi-Fi встроенный адаптер
Звучит как что-то из области фантастики.

Мне тоже это кажется сомнительным. Либо прошивка кривая, либо у ноута неправильный BIOS с кривой поддрежкой ACPI.

Last~Exile комментирует...

Так вот именно, что ни тыкай этот аппаратный ключ, всё равно карточка не запускается. Хотя огонёчек загорается.

В Windows это звучит как "No Wireless Device", когда запускаешь аппаратным ключём карточку.

virens комментирует...

2 Last~Exile пишет...
Так вот именно, что ни тыкай этот аппаратный ключ, всё равно карточка не запускается. Хотя огонёчек загорается.
А в /proc меняется значение rf_kill или нет? acpid установлен? В ядре поддержка acpi в каком состоянии?

В Windows это звучит как "No Wireless Device", когда запускаешь аппаратным ключём карточку.
Это мне ни о чём не говорит. Нужны логи системы. Но это лучше в личку или (ещё лушче,т.к. я сейчас загружен) на forum.ubuntu.ru

Last~Exile комментирует...

virens

спасибо, попробую покопаться в данных направлениях

kEVG комментирует...

Спасибо за статью. Сделал всё, как здесь написано... но есть некоторые проблемы.
По dmesg появилось следующее:
net eth2: device_rename: sysfs_create_symlink filed (-17)
А при нажатии кнопки wi-fi на передней панели ноута:
ipw2200: Filed to send CARD_DISABLE: Command timed out.
Ноут Acer TravelMate 4151LCi. Дистр Debian Etch r0, ядро 2.6.23, собранное самостоятельно в соответствии с рекомендациями в этом блоге.

Саша комментирует...

Спасибо за заметку, помогла - по аналогии настроил i3945ABG в буке FS Amilo Pro V3205 и дистре Slackware 12.

virens комментирует...

2 Last~Exile комментирует...
спасибо, попробую покопаться в данных направлениях
Главное, чтобы у вас не было проблем с ACPI.

2 kEVG комментирует...
По dmesg появилось следующее:
net eth2: device_rename: sysfs_create_symlink filed (-17)
А при нажатии кнопки wi-fi на передней панели ноута:
ipw2200: Filed to send CARD_DISABLE: Command timed out.
Ноут Acer TravelMate 4151LCi.

Скорее всего, вам нужно обновить драйвера для поддержки дополнительных возможностей ноутбука. Что-то похожее на acpi4asus.

2 Саша комментирует...
Спасибо за заметку, помогла - по аналогии настроил i3945ABG в буке FS Amilo Pro V3205 и дистре Slackware 12.
Документация по Линукс тем и хороша, что советы портируемы: что получилось в одном дистрибутиве, то получится в другом :-)

R-Dorn комментирует...

Вопрос на засыпку,
asus F3Jc, ubuntu 8.04, ядро дефолтное
Карта определилась нормально, коннектится к роутеру ADSL без проблем да и к любому WiFi роутеру (проверял специально), проблемы начинаются при попытке связаться с виндовой машиной. Безопасную сеть просто игнорит, к защищенной запрашивает пароль, а потом игнорит. Где грабли? в никсах новичек, так что если можно то в ответах указывайте в какой файл править и где он лежит

Minton комментирует...

А что делать неудачникам, у которых на просторах /proc нету ничего похожего на rf_kill (при том модуль rfkill успешно загружен)

Анонимный комментирует...

как быть, если устройство перечислено в списке по команде lspci, но не работает?
У меня это вай-фай, звуковая карта, инфракрасный порт, модем, и все адаптеры, которые ставятся в слоты PCMCIA.

medvesonok комментирует...

попробовал вставить программы но вот что получил:
T7200:/home/lm# aptitude install wireless-tools, kwifimanager, kwirelessmonitor-net kwirelessmonitor kwrapper
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Reading task descriptions... Done
Couldn't find any package whose name or description matched "wireless-tools,"
Couldn't find any package whose name or description matched "kwifimanager,"
Couldn't find any package whose name or description matched "kwirelessmonitor-net"
Couldn't find any package whose name or description matched "kwrapper"
Couldn't find any package whose name or description matched "wireless-tools,"
Couldn't find any package whose name or description matched "kwifimanager,"
Couldn't find any package whose name or description matched "kwirelessmonitor-net"
Couldn't find any package whose name or description matched "kwrapper"
The following NEW packages will be installed:
kwirelessmonitor

наверное, надо ещё узнать список репозиториев, которыми вы пользуетесь, кроме тех, что были в ЕТН 4.0 по умолчанию?

mr.Ded комментирует...

2 Саша
у меня такойже ноутбук (FS Amilo Pro V3205), никак не получается настроить.. не моги бы Вы мне с этим помоч?
(icq: 250-991-201, jabber: mrded@gromozeka.org)

Отправить комментарий

Подписаться на RSS-ленту комментариев к этому посту.