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
iwlwifi
iwlwifi — это драйвер для современных беспроводных чипов Intel.
Ядро
Чтобы заставить его работать, нужно сделать небольшую настройку ядра. Драйвер поддерживает 802.11a/b/g/n/ac (в зависимости от устройства), поэтому IEEE 802.11 должно быть включено.
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 это и есть алгоритм управления скоростью.
Драйвер устройства iwlwifi
Используйте этот драйвер для современных беспроводных чипов Intel. Установите как модуль, как показано <M>
. Также необходим DVM или MVM вариант согласно записи в колонке Module в таблице firmware.
Device Drivers ---> [*] Network device support ---> --- Network device support [*] Wireless LAN ---> --- Wireless LAN [ ] ADMtek devices [ ] Atheros/Qualcomm devices [ ] Atmel devices [ ] Broadcom devices [ ] Cisco devices [*] Intel devices < > Intel PRO/Wireless 2100 Network Connection < > Intel PRO/Wireless 2200BG and 2915ABG Network Connection < > Intel Wireless WiFi 4965AGN (iwl4965) < > Intel PRO/Wireless 3945ABG/BG Network Connection (iwl3945) <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 [ ] Enable broadcast filtering (NEW) [ ] Enable runtime power management mode for PCIe devices (NEW) Debugging Options ---> [ ] Intersil devices [ ] Marvell devices [ ] MediaTek devices [ ] Ralink devices [ ] Realtek devices [ ] Redpine Signals Inc devices [ ] STMicroelectronics devices [ ] Texas Instrument devices [ ] ZyDAS devices < > Simulated radio testing tool for mac80211 < > Wireless RNDIS USB support
В случае если драйвер встроен в ядро (
<*>
), а не собран как модуль (<M>
), firmware необходимо собрать также непосредственно в ядре. Смотрите раздел если предпочтительней собирать в ядро.
После внесения изменений в конфигурацию ядра не забудьте перекомпилировать ядро.
После перекомпиляции ядра и перезагрузки с использованием нового ядра, выбранные параметры можно проверить следующим образом:
user $
zgrep 'IWLWIFI\|IWLDVM\|IWLMVM' /proc/config.gz
Firmware
Необходимые firmware для конкретных устройств перечислены в этой таблице. Они доступны в пакетах sys-kernel/linux-firmware, а также, для конкретного устройства, в пакетах sys-firmware/iwlxxxx-*ucode.
root #
emerge --ask sys-kernel/linux-firmware
Если предпочтительней собирать в ядро
В случае если драйвер будет компилироваться в ядре (<*>
), а не как модуль (<M>
), firmware необходимо также собирать в ядре.
Device Drivers ---> Generic Driver Options ---> -*- Userspace firmware loading support [ ] Include in-kernel firmware blobs in kernel binary (iwlwifi-xxxx.ucode) External firmware blobs to build into the kernel binary (/lib64/firmware) Firmware blobs root directory [ ] Fallback user-helper invocation for firmware loading
В этом примере замените iwlwifi-xxxx.ucode
на подходящее имя firmware. Уделите некоторое внимание для FW_LOADER_USER_HELPER_FALLBACK.
Имена сетевых устройств
Имена сетевых устройств, как их предоставляет ядро, 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
Тестирование
После обновления ядра и перезагрузки или после загрузки модулей, устройства можно проверить на доступность с помощью следующих методов:
- используя файловую систему /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
modprobe и modinfo
modprobe не должен возвращать что-либо:
root #
modprobe iwlwifi
Большую часть информации о драйвере можно получить с помощью modinfo iwlwifi
user $
modinfo iwlwifi
lspci
lspci должен показать iwlwifi
в Kernel driver in use:
и Kernel modules:
.
root #
lspci -nnkv | sed -n '/Network/,/^$/p'
03:00.0 Network controller [0280]: Intel Corporation Centrino Advanced-N 6205 [Taylor Peak] [8086:0082] (rev 34) Subsystem: Intel Corporation Centrino Advanced-N 6205 AGN [8086:1321] Flags: bus master, fast devsel, latency 0, IRQ 33 Memory at f7d00000 (64-bit, non-prefetchable) [size=8K] Capabilities: [c8] Power Management version 3 Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+ Capabilities: [e0] Express Endpoint, MSI 00 Capabilities: [100] Advanced Error Reporting Capabilities: [140] Device Serial Number confidential Kernel driver in use: iwlwifi Kernel modules: iwlwifi
Идентификатор xx:xx.x
будет весьма полезен при поиске специфичной информации для этого устройства в выводе dmesg.
dmesg
Проверьте вывод dmesg. Замените 03:00.0
на идентификатор из lspci, а wlp
на имя сетевого устройства.
user $
dmesg | grep -i -E '03:00.0|wlp|iwl|80211'
[ 1.200902] pci 0000:03:00.0: [8086:0082] type 00 class 0x028000 [ 1.201065] pci 0000:03:00.0: reg 0x10: [mem 0xf7d00000-0xf7d01fff 64bit] [ 1.201776] pci 0000:03:00.0: PME# supported from D0 D3hot D3cold [ 1.201999] pci 0000:03:00.0: System wakeup disabled by ACPI [ 18.260461] iwlwifi 0000:03:00.0: enabling device (0100 -> 0102) [ 18.260598] iwlwifi 0000:03:00.0: can't disable ASPM; OS doesn't have ASPM control [ 18.419884] iwlwifi 0000:03:00.0: loaded firmware version 18.168.6.1 op_mode iwldvm [ 18.671329] iwlwifi 0000:03:00.0: CONFIG_IWLWIFI_DEBUG enabled [ 18.671330] iwlwifi 0000:03:00.0: CONFIG_IWLWIFI_DEBUGFS enabled [ 18.671330] iwlwifi 0000:03:00.0: CONFIG_IWLWIFI_DEVICE_TRACING disabled [ 18.671332] iwlwifi 0000:03:00.0: Detected Intel(R) Centrino(R) Advanced-N 6205 AGN, REV=0xB0 [ 18.673421] iwlwifi 0000:03:00.0: L1 Enabled - LTR Disabled [ 18.705882] ieee80211 phy0: Selected rate control algorithm 'iwl-agn-rs' [ 18.706468] iwlwifi 0000:03:00.0 wlp3s0: renamed from wlan0 [ 23.286871] IPv6: ADDRCONF(NETDEV_UP): wlp3s0: link is not ready ......... snip ......... [ 48.176954] IPv6: ADDRCONF(NETDEV_UP): wlp3s0: link is not ready [ 92.720710] wlp3s0: authenticate with my WLAN AP [ 92.724440] wlp3s0: send auth to my WLAN AP (try 1/3) [ 92.728436] wlp3s0: authenticated [ 92.728646] wlp3s0: waiting for beacon from my WLAN AP [ 92.821389] wlp3s0: associate with my WLAN AP (try 1/3) [ 92.828148] wlp3s0: RX AssocResp from my WLAN AP (capab=0x431 status=0 aid=4) [ 92.853124] wlp3s0: associated [ 92.853173] IPv6: ADDRCONF(NETDEV_CHANGE): wlp3s0: link becomes ready
Устранение проблем
Ядро не загружается
Проверьте, что загружено правильное ядро. Это можно сделать (зависит от параметра IKCONFIG) так:
user $
zgrep CONFIG_IWL /proc/config.gz
Проблемы с firmware
- Для систем использующих udev или systemd надо настроить ядро для загрузки бинарного блоба (binary blob). В случае firmware для беспроводной карты это firmware, который нуждается в загрузки. Больше информации о конфигурации ядра для такой ситуации можно найти в следующей ветке форума Gentoo: FW_LOADER_USER_HELPER_FALLBACK.
Беспроводная сетевая карта не работает
- Intel Corporation Wireless 8260 (rev 3a) can't access the RSA semaphore it is write protected
Смотрите также
- Handbook:AMD64/Networking/Wireless
- wifi
- wpa_supplicant — a wifi supplicant to handle network authentication.
- Network management using DHCPCD
- netifrc
- Устранение неполадок