This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.
Please visit our production wiki at https://wiki.gentoo.org
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 это и есть алгоритм управления скоростью.
WEXT
Параметр "cfg80211 wireless extensions compatibility", также известный как WEXT, поддерживает устаревшие wireless-tools и iwconfig.
[*] Networking support ---> [*] Wireless ---> [*] cfg80211 wireless extensions compatibility
Драйвера устройств
Далее необходимо включить соответствующие параметры ядра, в зависимости от драйверов и устройств, определенных ранее. Рекомендуется собирать драйвера в виде модулей. Не забудьте включить поддержку шифра AES, если беспроводная сеть использует шифрование WPA или WPA2.
'"`UNIQ--pre-00000005-QINU`"'
Если драйвер собран не в виде модуля (
<M>
), а встроен в ядро (<*>
), прошивку необходимо также встроить в ядро. Не забудьте пересобрать ядро после изменения его конфигурации.Поддержка LED
Для того, чтобы включить LED triggers для различных событий приема и передачи пакетов, соберите ядро со следующими параметрами:
'"`UNIQ--pre-00000008-QINU`"'
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 !?
Смотрите также
- Handbook:AMD64/Networking/Wireless
- AC1200 Wireless Adapters
- iproute2
- iwlwifi
- Qualcomm Atheros QCA6174
Внешние ресурсы
- Настройка беспроводной сети на ArchLinux.