Wi-Fi
Эта статья описывает настройку беспроводных сетевых устройств 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).
[*] 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 (из net-wireless/wireless-regdb) в 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 --->
Accelerated Cryptographic Algorithms for CPU (x86) --->
<*> Ciphers: AES, modes: ECB, CBC, CTS, CTR, XTR, XTS, GCM (AES-NI)
Если драйвер собран не в виде модуля (
<M>
), а встроен в ядро (<*>
), прошивку необходимо также встроить в ядро. Не забудьте пересобрать ядро после изменения его конфигурации.Поддержка LED
Для того, чтобы включить LED triggers для различных событий приема и передачи пакетов, соберите ядро со следующими параметрами:
Device Drivers --->
[*] LED Support --->
<*> LED Class Support
[*] Networking support --->
[*] Wireless --->
[*] Enable LED triggers
Прошивка
Помимо драйвера ядра, некоторым чипсетам (особенно современным) также требуется прошивка. Если она нужна, найдите ее в следующем списке и установите:
root #
emerge --ask sys-kernel/linux-firmware
Устройство WiFi | Драйвер | Прошивка | Примечания |
---|---|---|---|
Atheros AR9271 и AR7010 | ath9k_htc | sys-kernel/linux-firmware | |
Broadcom 43xx wireless support | b43 / b43legacy | sys-firmware/b43-firmware | Совместим с aircrack-ng, вероятно, самый лучший выбор when a bcm43xx device is supported |
Broadcom PCIe и SDIO/USB устройства | brcmsmac / brcmfmac | sys-kernel/linux-firmware | Отсутствует поддержка энергосбережения, LED и других возможностей |
Broadcom 43xx wireless support | 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 |
Ralink/MediaTek USB-устройства | Например, 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.
Имена сетевых устройств
This section is obsolete. See Udev#Optional: Disable_or_override_predictable_network_interface_naming for updated instructions.
Имена сетевых устройств, такие как 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, то необходимо использовать wireless supplicant, например wpa_supplicant или iwd. Больше информации по настройке беспроводной сети в Gentoo Linux можно прочитать в разделе беспроводная сеть в Руководстве пользователя Gentoo.
Тестирование
После обновления ядра и перезагрузки или после загрузки модулей, устройства можно проверить на доступность с помощью следующих методов:
- используя файловую систему /sys
- используя команду ip
- используя команду ifconfig
- используя команду iw
Файловая система /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'
Не забудьте заменить
xx:xx.x
на идентификатор (PCIID) из lspci,wlan
на имя сетевого устройстваiwl
на имя Kernel driver in use(используемого драйвера ядра).
Устранение проблем
Обнаружение недостающей прошивки
При загрузке системы ядро попытается опробовать прошивки, подходящие для каждой карты. Это можно обнаружить, просмотрев вывод dmesg или journalctl (systemd) для текущей загрузки.
user $
journalctl -b 0 --dmesg | grep -i firmware
Oct 05 14:51:09 maffbook kernel: Spectre V2 : Enabling Restricted Speculation for firmware calls Oct 05 14:51:09 maffbook kernel: ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored Oct 05 14:51:09 maffbook kernel: sgx: [Firmware Bug]: Unable to map EPC section to online node. Fallback to the NUMA node 0. Oct 05 14:51:09 maffbook kernel: i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/kbl_dmc_ver1_04.bin (v1.4) Oct 05 14:51:09 maffbook kernel: ACPI: video: [Firmware Bug]: ACPI(PEGP) defines _DOD but not _DOS Oct 05 14:51:09 maffbook kernel: iwlwifi 0000:00:14.3: loaded firmware version 46.6b541b68.0 9000-pu-b0-jf-b0-46.ucode op_mode iwlmvm Oct 05 14:51:09 maffbook kernel: psmouse serio1: elantech: assuming hardware version 4 (with firmware version 0x5f2001) Oct 05 14:51:09 maffbook kernel: Bluetooth: hci0: Firmware revision 0.1 build 6 week 12 2021 Oct 06 17:26:26 maffbook kernel: Bluetooth: hci0: Minimum firmware build 1 week 10 2014 Oct 06 17:26:26 maffbook kernel: Bluetooth: hci0: Found device firmware: intel/ibt-17-16-1.sfi Oct 06 17:26:28 maffbook kernel: Bluetooth: hci0: Waiting for firmware download to complete Oct 06 17:26:28 maffbook kernel: Bluetooth: hci0: Firmware loaded in 1484394 usecs Oct 06 17:26:28 maffbook kernel: Bluetooth: hci0: Firmware revision 0.1 build 6 week 12 2021
Адаптер Wi-Fi не может найти и подключиться к сети 5 GHz
Некоторые сети с WPA или WPA2 до сих пор могут использовать для подключения устаревший протокол TKIP вместо AES. Попробуйте установить net-wireless/wpa_supplicant вместе с USE-флагом tkip и перезагрузите систему.
Темы на форуме
- Forum thread: wireless lan can't get ip from access point объясняет, почему 169.254.x.x ((link local address)) является неправильным IP-адресом
- Forum thread: iwlwifi fails to load after upgrade to 3.17.0
- Forum thread: Where is my network !?
- Forum thread: broadcom-sta with BCM4331 issue after world update
- Forum thread: USB nano 0bda:b812 RTL88x2bu [AC1200] driver needed
Смотрите также
- Handbook:AMD64/Networking/Wireless
- AC1200 Wireless Adapters
- Iproute2 — a tool developed to unify network interface configuration, routing, and tunneling for Linux systems.
- Iwlwifi — драйвер для современных беспроводных чипов Intel.
- Qualcomm Atheros QCA6174 — a 802.11ac Wireless Network Adapter which is used in some laptops.