Wifi

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Wifi and the translation is 100% complete.

Other languages:
English • ‎español • ‎русский • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어
Resources

Эта статья описывает настройку сетевых устройств wifi (беспроводных).

Wifi во время установки

Тем, кому требуется соединение wifi во время установки Gentoo, следует иметь в виду, что минимальный установочный компакт-диск Gentoo содержит только некоторые драйвера и предоставляет только wpa_cli (не wpa_gui) для настройки соединений WPA/WPA2/Enterprise.

Если минимальный установочный компакт-диск не содержит требуемые драйвера или желательно использование графического интерфейса вместо wpa_supplicant, выберите другой live CD, например, System Rescue CD. Имейте в виду, что в случае использования не-Gentoo live CD могут понадобиться дополнительные действия.

Определение аппаратного обеспечения

Прежде всего, определите устройства wifi. Для этого можно воспользоваться командами lspci или lsusb.

Если в загруженной Linux-системе (LiveCD/USB) присутствует соединение wifi:

root #lspci -k

Драйвер можно увидеть в строке, которая начинается с Kernel driver in use:.

Если в загруженной системе отсутствует соединение wifi, выведите весь список идентификаторов устройств, присутствующих в системе. Впоследствии этим списком можно воспользоваться для определения нужного драйвера:

root #lspci -n

Скопируйте список идентификаторов PCIID из вывода этой команды и вставьте его здесь: http://kmuto.jp/debian/hcl/.

Устройства USB можно определить похожим образом. Сначала выведите список устройств:

user $lsusb

Эта команда выводит идентификатор PCI ID, производителя, марку, модель и/или чипсет каждого устройства USB, присоединенного к системе. Из всех этих данных чипсет может дать наиболее важную информацию. Поиск в интернете по запросу linuxwireless.org <чипсет> часто является наиболее быстрым способом найти драйвер USB NIC и название прошивки.

Также можно воспользоваться командой lshw:

root #lshw | grep -i driver | perl -pe 's/^.*driver=(\S+).*$/$1/g;' | sort -u

Эта команда выводит список драйверов всех устройств, как PCI, так и USB.

Ядро

Теперь, когда драйвера определены, можно приступить к настройке ядра Linux.

IEEE 802.11

Включите по крайней мере опции cfg80211 и mac80211. Некоторым драйверам для беспроводных устройств требуется алгоритм управления скоростью.

Ядро linux-4.1
[*] Networking support  --->
    [*] Wireless  --->
        <*>   cfg80211 - wireless configuration API
        [ ]     nl80211 testmode command
        [ ]     enable developer warnings
        [ ]     cfg80211 regulatory debugging
        [ ]     cfg80211 certification onus
        [*]     enable powersave by default
        [ ]     cfg80211 DebugFS entries
        [ ]     use statically compiled regulatory rules database
        [ ]     cfg80211 wireless extensions compatibility
        <*>   Generic IEEE 802.11 Networking Stack (mac80211)
        [*]   Minstrel
        [*]     Minstrel 802.11n support
        [ ]       Minstrel 802.11ac support
              Default rate control algorithm (Minstrel)  --->
        [ ]   Enable mac80211 mesh networking (pre-802.11s) support
        -*-   Enable LED triggers
        [ ]   Export mac80211 internals in DebugFS
        [ ]   Trace all mac80211 debug messages
        [ ]   Select mac80211 debugging features  ----

Minstrel с его поддержкой 802.11n это и есть алгоритм управления скоростью.

WEXT

Параметр "cfg80211 wireless extensions compatibility", также известный как WEXT, поддерживает устаревшие wireless-tools и iwconfig.

Ядро
[*] Networking support  --->
    [*] Wireless  --->
        [*]     cfg80211 wireless extensions compatibility

Драйвера устройств

Далее необходимо включить соответствующие параметры ядра, в зависимости от драйверов и устройств, определенных ранее. Рекомендуется собирать драйвера в виде модулей. Не забудьте включить поддержку шифра AES, если беспроводная сеть использует шифрование WPA или WPA2.

Ядро
Device Drivers  --->
    [*] Network device support  --->
        [*] Wireless LAN  --->
 
            Select the driver for your Wifi network device, e.g.:
            <M> Broadcom 43xx wireless support (mac80211 stack) (b43)
            [M]    Support for 802.11n (N-PHY) devices
            [M]    Support for low-power (LP-PHY) devices
            [M]    Support for HT-PHY (high throughput) devices
            <M> Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi)
            <M>    Intel Wireless WiFi DVM Firmware support                             
            <M>    Intel Wireless WiFi MVM Firmware support
            <M> Intel Wireless WiFi 4965AGN (iwl4965)
            <M> Intel PRO/Wireless 3945ABG/BG Network Connection (iwl3945)
            <M> Ralink driver support  --->
                <M>   Ralink rt27xx/rt28xx/rt30xx (USB) support (rt2800usb)
 
-*- Cryptographic API --->
    -*- AES cipher algorithms
    -*- AES cipher algorithms (x86_64)
    <*> AES cipher algorithms (AES-NI)
Важно
Если драйвер собран не в виде модуля (<M>), а встроен в ядро (<*>), прошивку необходимо также встроить в ядро. Не забудьте пересобрать ядро после изменения его конфигурации.

Поддержка LED

Для того, чтобы включить LED triggers для различных событий приема и передачи пакетов, соберите ядро со следующими параметрами:

Ядро
Device Drivers  --->
    [*] LED Support  --->
        <*>   LED Class Support
 
[*] Networking support  --->
    [*] Wireless  --->
        [*] Enable LED triggers

Firmware

Помимо драйвера ядра, некоторым чипсетам также требуется прошивка. Если она нужна, найдите ее в следующем списке и установите:

root #emerge --ask sys-kernel/linux-firmware
Устройство Wifi Драйвер Прошивка Заметки
Atheros AR9271 и AR7010 ath9k_htc sys-kernel/linux-firmware
Broadcom 43xx b43 / b43legacy sys-firmware/b43-firmware Поддерживает aircrack-ng. Скорее всего, является лучшим выбором, если ваше устройство bcm43xx поддерживается.
Устройства Broadcom PCIe и SDIO/USB brcmsmac / brcmfmac sys-kernel/linux-firmware Отсутствует поддержка энергосбережения, LED и некоторых других возможностей.
Broadcom 43xx wl net-wireless/broadcom-sta Проприетарный, отсутствуют режимы AP и Monitor. Сравнение драйверов bcm43xx.
Intel PRO/Wireless 2200BG ipw2200 sys-firmware/ipw2200-firmware
Intel PRO/Wireless 3945ABG/BG iwlegacy sys-kernel/linux-firmware
Intel Wireless WiFi 4965AGN iwl4965 sys-kernel/linux-firmware
Все другие беспроводные карты Intel iwlwifi sys-kernel/linux-firmware Подробные инструкции смотрите в статье iwlwifi.
Qualcomm Atheros QCA6174 ath10k_pci ath10k-firmware Смотрите Qualcomm_Atheros_QCA6174#Firmware
Ralink/MediaTek USB devices например rt2800usb sys-kernel/linux-firmware
Realtek RTL8191SE & RTL8192SE rtl8192se sys-kernel/linux-firmware
Realtek 8723AU/8723BU/8191EU/8192EU/8188EU/8188RU rtl8xxxu sys-kernel/linux-firmware Для определения всех устройств может потребоваться опция ядра CONFIG_RTL8XXXU_UNTESTED. По умолчанию включены только те, которые проверены разработчиками ядра.

Если драйверу требуется прошивка, но ее нет в списке, ее понадобится скачать вручную и поместить в /lib/firmware.

Имена сетевых устройств

Имена сетевых устройств, такие как eth0 или wlan0 и так далее, как предусмотрено ядром, обычно меняются во время загрузки системы (смотрите dmesg) с помощью /lib/udev/rules.d/80-net-name-slot.rules правила udev.

Чтобы сохранить классическое именование это правило может быть перезаписано пустым файлом с таким же именем в каталоге /etc/udev/rules.d:

root #touch /etc/udev/rules.d/80-net-name-slot.rules

WPA supplicant

Если в беспроводной сети установлены WPA или WPA2, то необходимо использовать wpa_supplicant. Больше информации по настройке беспроводной сети в Gentoo Linux можно прочитать в разделе беспроводная сеть в Gentoo Handbook.


Тестирование

После обновления ядра и перезагрузки или после загрузки модулей, устройства можно проверить на доступность с помощью следующих методов:

Файловая система /sys

Узнать имя устройства можно с помощью просмотра каталога /sys/class/net используя ls -al или команду tree (из пакета app-text/tree):

user $tree /sys/class/net
/sys/class/net/
├── enp2s14 -> ../../devices/pci0000:00/0000:00:1e.0/0000:02:0e.0/net/enp2s14
├── lo -> ../../devices/virtual/net/lo
├── sit0 -> ../../devices/virtual/net/sit0
└── wlp8s0 -> ../../devices/pci0000:00/0000:00:1c.0/0000:08:00.0/net/wlp8s0

Команда ip

Чтобы убедится, что беспроводная карта обнаружена, а также чтобы узнать имя карты, выполните следующую команду ip:

user $ip addr
3: wlan0:   ...

Команда ifconfig

Команда ifconfig предоставляется пакетом sys-apps/net-tools. Используйте ifconfig -a, чтобы вывести список всех обнаруженных сетевых карт, даже если они не включены/активированы:

user $ifconfig -a
wlan0     ...

Сетевая карта может быть активирована так:

root #ifconfig -v wlan0 up
SIOCSIFFLAGS: Operation not possible due to RF-kill
WARNING: at least one error occurred. (-1)

В этом примере включить беспроводную карту не удалось, поскольку был установлен radio frequency kill state (RF-kill). Как правило, он устанавливается в целях энергосбережения и избежания случайного соединения с беспроводными сетями.

Команда iw

Если драйвер беспроводной сетевой карты поддерживает стэк nl80211, команда iw, которая есть в паете net-wireless/iw, может отобразить обнаруженную беспроводную сетевую карту:

root #iw dev
   phy#0
	Interface wlan0
		ifindex 4
		type managed

dmesg

Проверьте вывод команды dmesg.

user $dmesg | grep -i -E 'xx:xx.x|wlan|iwl|80211'

Не забудьте заменить

Устранение проблем

Смотрите также

Внешние ресурсы