WIFI адаптеры в Linux

Создан: 25.08.2009
Модиф: 25.12.2010
Иванов Аркадий

 

Появилась у меня задача - установить Wi-Fi соединение в Linux с помощью USB-адаптера TRENDNnet TEW-444UB.

Развлекался я в Alt Linux Desktop 4.1, в Alt Linux Sisyphus от июня 2009 года, в Alt Linux 5.0.0 и в Fedora 14.

Не скажу, что решил её за секунду, поэтому сделал вот эту памятку для подобных задачек.

 

  1. С помощью Гугла выяснил, что родных дров для Линукса для этой железяки не наблюдается и что следует с помощью программы ndiswrapper установить виндовые дрова в Linux.
     
  2. Проверил, что мой адаптер уже у кого-то работал под управлением ndiswrapper.  Это легко выяснить на страничке:
    http://sourceforge.net/apps/mediawiki/ndiswrapper/index.php?mediawiki/index.php/List
    Обнаружил, что устройство проверено в работе.
     
  3. Загружаю модуль в ядро (если его нет, надо собрать модуль или перекомпилить ядро):
    modprobe ndiswrapper
     
  4. В /etc/modules вставляю строку, чтобы при старте модуль обязательно подгружался:
    ndiswrapper
     
  5. Втыкаю адаптер в USB и проверяю, что он видится:
    #lsusb
    ...
    Bus 005 Device 019: ID 157e:3007 TRENDnet TEW-444UB EU (no firmware)
    ...

     
  6. Устанавливаю драйвера от Windows с прилагаемого CD-диска:
    ndiswrapper -i athfmwdl.inf
    ndiswrapper -i net5523.inf

     
  7. Проверяю, что драйвера установились:
    # ndiswrapper -l
    athfmwdl : driver installed
    net5523 : driver installed
     
  8. В каталоге /etc/modprobe.d создаю файл ndiswrapper с содержимым:
    alias wlan0 ndiswrapper
     
  9. Перевтыкаю адаптер и смотрю вывод команды dmesg:
    usb 5-5: new high speed USB device using ehci_hcd and address 29
    usb 5-5: configuration #1 chosen from 1 choice
    usb 5-5: reset high speed USB device using ehci_hcd and address 29
    ndiswrapper: driver net5523 (,02/24/2005,1.1.0.25) loaded
    wlan0: ethernet device 00:14:d1:c2:b7:99 using NDIS driver: net5523, version: 0x10001, NDIS version: 0x501, vendor: 'NDIS Network Adapter', 157E:3006.F.conf
    wlan0: encryption modes supported: WEP; TKIP with WPA; AES/CCMP with WPA
     
  10. Команда iwconfig должна показать наличие устройства wlan0:
    wlan0     IEEE 802.11g  ESSID:off/any
              Mode:Managed  Frequency:2.412 GHz  Access Point: Not-Associated
              Bit Rate:54 Mb/s
              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:
     
  11. Теперь настраиваем само подключение. Сканируем беспроводные сети:
    # iwlist wlan0 scan
    wlan0     Scan completed :
              Cell 01 - Address: 00:21:91:7B:D2:20
                        ESSID:"ikir"
                        Protocol:IEEE 802.11g
                        Mode:Managed
                        Frequency:2.442 GHz (Channel 7)
                        Quality:53/100  Signal level:-62 dBm  Noise level:-96 dBm
                        Encryption key:on
                        Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                                  12 Mb/s; 24 Mb/s; 36 Mb/s; 9 Mb/s; 18 Mb/s
                                  48 Mb/s; 54 Mb/s
                        Extra:bcn_int=100
                        Extra:atim=0
                        IE: WPA Version 1
                            Group Cipher : TKIP
                            Pairwise Ciphers (1) : TKIP
                            Authentication Suites (1) : PSK
    Обнаружилась точка доступа с физическим адресом 00:21:91:7B:D2:20, которая даёт  доступ в сеть "ikir". Шифрование алгоритмом WPA, методом TKIP, используется ключ (PSK).

 

Файлы сетевых настроек для AltLinux

 

В AltLinux сетевая конфигурация "etcnet", т.е. все конфиги сети живут в /etc/net. Для неё я и описываю конфигурационные файлы.

  1. Должен быть каталог /etc/net/ifaces/wlan0.
  2. Файл /etc/net/ifaces/wlan0/wpa_supplicant.conf для моего случая содержит:

    ctrl_interface=/var/run/wpa_supplicant
    update_config=1

    network={
        ssid="ikir"
        scan_ssid=1
        psk="verysecretpassword"
        proto=WPA
        key_mgmt=WPA-PSK
        pairwise=TKIP
    }
    То, что у вас должно быть записано в строке с psk, узнайте у человека, который конфигурировал точку доступа.
     
  3. Файл /etc/net/ifaces/wlan0/options:
    DISABLED=no
    USE_IFPLUGD=no
    NM_CONTROLLED=no
    TYPE=eth
    BOOTPROTO=dhcp
    WPA_DRIVER=wext

    В конфиге указано, что IP-конфигурацию адаптер получает по протоколу DHCP.
     
  4. Последнее действие : 
    # service network restart

 

Теперь у вас должно быть настроенное WiFi подключение. Настройку сети может быть можно сделать и с помощью графических приблуд. Я специально про них ничего не говорю, поскольку несколько раз нарвался в Alt Linux, что метод шифрования TKIP система графической настройки упорно не показывала и на ручную правку ушло 30 секунд, а на разборки с глюками этих графических программ не один час.

 

 

Файлы сетевых настроек для Fedora

 

 

  1. В файле /etc/sysconfig/network-scripts/ifcfg-wlan0 должно быть примерно следующее:
    DEVICE="wlan0"
    HWADDR="00:21:91:2F:8F:9F"
    NM_CONTROLLED="no"
    ONBOOT="yes"
    BOOTPROTO=static
    TYPE=wireless
    USERCTL=yes
    IPV6INIT=no
    IPADDR=192.168.1.2
    NETMASK=255.255.255.0
    NM_CONTROLLED=no
    ESSID=mynet
    MODE=Ad-Hoc
    RATE=auto

    MAC-адрес берёте от своей карты.
    Название сети то, что запрограммировано в вашей точке доступа.

     
  2. Файл /etc/wpa_supplicant/wpa_supplicant.conf практически такой же, как и для Alt Linux:

    ctrl_interface=/var/run/wpa_supplicant
    ctrl_interface_group=wheel

    ap_scan=1

    network={
        ssid="ikir"
        scan_ssid=1
        psk="verysecretpassword"
        proto=WPA
        key_mgmt=WPA-PSK
        pairwise=TKIP
    }
    То, что у вас должно быть записано в строке с psk, узнайте у человека, который конфигурировал точку доступа.
     
  3. # service network restart
    # service wpa_supplicant restart