WiFi

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Wifi and the translation is 98% complete.
Outdated translations are marked like this.
Other languages:
English • ‎español • ‎français • ‎русский • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어

Warning: Display title "WiFi" overrides earlier display title "Wifi".

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 из вывода этой команды.

Устройства 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 (CONFIG_CFG80211) и mac80211 (CONFIG_MAC80211).

Ядро Пример linux-4.19
[*] Networking support  --->
    [*] Wireless  --->
        <M>   cfg80211 - wireless configuration API
        [ ]     nl80211 testmode command
        [ ]     enable developer warnings
        [ ]     cfg80211 certification onus
        [*]     enable powersave by default
        [ ]     cfg80211 DebugFS entries
        [ ]     support CRDA
        [ ]     cfg80211 wireless extensions compatibility
        <M>   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 является алгоритмом управления скоростью. Некоторым беспроводным драйверам может понадобится его поддержка.

Важно
В случае, если wireless configuration API (CONFIG_CFG80211) скомпилирована в качестве части ядра (<*>), а не в виде модуля (<M>), драйвер не сможет загрузить regulatory.db из /lib/firmware, вследствие чего будет нарушена поддержка специфичных для отдельных стран особенностей. Установите CONFIG_CFG80211=m или добавьте regulatory.db и regulatory.db.p7s в CONFIG_EXTRA_FIRMWARE.

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

Беспроводной 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'

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

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

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

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