WiFi
Warning: Display title "WiFi" overrides earlier display title "Wifi".
Эта статья описывает настройку сетевых устройств 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. Некоторым драйверам для беспроводных устройств требуется алгоритм управления скоростью.
[*] 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 это и есть алгоритм управления скоростью.
In case the wireless configuration API (CONFIG_CFG80211) is built into the kernel (
<*>
) instead as a module (<M>
), the driver won't be able to load regulatory.db from /lib/firmware resulting in broken regulatory domain support. Please set CONFIG_CFG80211=m or add regulatory.db and regulatory.db.p7s to 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
WPA supplicant
Если в беспроводной сети установлены WPA или WPA2, то необходимо использовать wpa_supplicant. Больше информации по настройке беспроводной сети в Gentoo Linux можно прочитать в разделе беспроводная сеть в Gentoo Handbook.
Тестирование
После обновления ядра и перезагрузки или после загрузки модулей, устройства можно проверить на доступность с помощью следующих методов:
- используя файловую систему /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
(используемого драйвера ядра).
Устранение проблем
- 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 !?
Смотрите также
Внешние ресурсы
- Настройка беспроводной сети на ArchLinux.