Iwlwifi

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Iwlwifi and the translation is 88% complete.

Other languages:
English • ‎español • ‎polski • ‎русский • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어
Resources

iwlwifi인텔의 현재 무선 네트워크 칩을 구동하는 무선 네트워크 장치 드라이버입니다.

커널

동작하게 하려면 일부 커널 설정이 필요합니다. (장치에 따라) 드라이버에서 802.11a/b/g/n/ac를 지원하므로, IEEE 802.11를 활성화해야 합니다.

IEEE 802.11

Activate at least cfg80211 and 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 and its 802.11n support is a rate control algorithm. Some wireless drivers might require it enabled.

중요
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.

iwlwifi 장치 드라이버

인텔의 현재 무선 네트워크 칩에 이 드라이버를 사용하십시오. 여기에 나타난대로 모듈<M>로 설정하십시오. 또한 펌웨어 표모듈 칸에서 필요한 내용에 따라 DVM 옵션 또는 MVM 옵션을 수정하십시오.

커널 linux-4.1
Device Drivers  --->
 
        [*] Network device support  --->
 
        --- Network device support
        [*]   Wireless LAN  --->
 
            --- Wireless LAN
            < >   Marvell 8xxx Libertas WLAN driver support with thin firmware
            < >   Cisco/Aironet 34X/35X/4500/4800 ISA and PCI cards
            < >   Atmel at76c50x chipset  802.11b support
            < >   Atmel at76c503/at76c505/at76c505a USB cards
            < >   Intersil Prism GT/Duette/Indigo PCI/Cardbus (DEPRECATED)
            < >   USB ZD1201 based Wireless device support
            < >   Wireless RNDIS USB support
            < >   Realtek 8180/8185/8187SE PCI support
            < >   Realtek 8187 and 8187B USB support
            < >   ADMtek ADM8211 support
            < >   Simulated radio testing tool for mac80211
            < >   Marvell 88W8xxx PCI/PCIe Wireless support
            < >   Atheros Wireless Cards  ----
            < >   Broadcom 43xx wireless support (mac80211 stack)
            < >   Broadcom 43xx-legacy wireless support (mac80211 stack)
            < >   Broadcom IEEE802.11n PCIe SoftMAC WLAN driver
            < >   Broadcom IEEE802.11n embedded FullMAC WLAN driver
            < >   IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP)
            < >   Intel PRO/Wireless 2100 Network Connection
            < >   Intel PRO/Wireless 2200BG and 2915ABG Network Connection
            <M>   Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi)
            <M>     Intel Wireless WiFi DVM Firmware support (NEW)
            <M>     Intel Wireless WiFi MVM Firmware support (NEW)
                    *** WARNING: iwlwifi is useless without IWLDVM or IWLMVM *** 
            [ ]     Enable broadcast filtering
            [ ]     enable U-APSD by default
                    Debugging Options  ---> 
            < >   Intel Wireless WiFi 4965AGN (iwl4965)
            < >   Intel PRO/Wireless 3945ABG/BG Network Connection (iwl3945)
            < >   Marvell 8xxx Libertas WLAN driver support
            < >   Hermes chipset 802.11b support (Orinoco/Prism2/Symbol)
            < >   Softmac Prism54 support
            < >   Ralink driver support  ----
            < >   Realtek rtlwifi family of devices  ----
            [ ]   TI Wireless LAN support  ----
            < >   ZyDAS ZD1211/ZD1211B USB-wireless support
            < >   Marvell WiFi-Ex Driver
            < >   CW1200 WLAN support
            < >   Redpine Signals Inc 91x WLAN driver support
중요
커널에 드라이버를 모듈(<M>) 대신 넣는 방식(<*>)으로 빌드하면, 펌웨어도 커널에 넣어 빌드해야합니다. 내장 설정 활용 섹션을 확인하십시오.
커널 설정을 바꾸고 나면 커널 재 빌드를 잊지 마십시오.

After rebuilding the kernel and rebooting with this kernel, the selected options can be verified as follows:

참고
Support for the /proc/config.gz pseudo-file is enabled through the Kernel/IKCONFIG_Support feature.
user $zgrep 'IWLWIFI\|IWLDVM\|IWLMVM' /proc/config.gz

펌웨어

이 표en에 나온 대로 개별 장치의 펌웨어가 필요합니다. sys-kernel/linux-firmware 꾸러미와 장치별 sys-firmware/iwlxxxx-*ucode 꾸러미로 있습니다.

root #emerge --ask sys-kernel/linux-firmware

내장 설정 활용

모듈(<M>)대신 커널 내장형으로 드라이버를 빌드하면, 펌웨어도 커널에 넣어en 빌드해야합니다.

커널 linux-4.1
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 대신 정확한 펌웨어 이름으로 바꾸십시오. FW_LOADER_USER_HELPER_FALLBACK 설정 변수에 몇가지 사항을 확인해봐야 할 수도 있습니다.

네트워크 장치 이름

Network device names such as eth0 or wlan0 as provided by the kernel are normally changed on system boot (see dmesg) by the /lib/udev/rules.d/80-net-name-slot.rules udev rule.

To keep the classic naming this rule can be overwritten with an equally named empty file in the /etc/udev/rules.d directory:

root #touch /etc/udev/rules.d/80-net-name-slot.rules


Testing

After a reboot with the new kernel or after loading the modules, the device can be checked for availability by using following methods:

/sys file system

Get the device name by listing the /sys/class/net directory contents using ls -al or the tree command (provided by the app-text/tree package):

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 command

To obtain the device name and verify that the wireless card is detected, execute the following ip command:

user $ip addr
3: wlan0:   ...

ifconfig command

The ifconfig command is provided through the sys-apps/net-tools package. Use ifconfig -a to list all detected network cards, even those that are not enabled/active yet:

user $ifconfig -a
wlan0     ...

A network card can be activated as follows:

root #ifconfig -v wlan0 up
SIOCSIFFLAGS: Operation not possible due to RF-kill
WARNING: at least one error occurred. (-1)

In this example, enabling the wireless card failed as a radio frequency kill state is set (usually to keep power consumption at bay and not connect by accident to a wireless network).

iw command

If the wireless network card driver supports the nl80211 stack, then the iw command as offered by the net-wireless/iw package can show the detected wireless cards:

root #iw dev
   phy#0
	Interface wlan0
		ifindex 4
		type managed

modprobe와 modinfo

modprobe 에서는 어떤 결과도 나오지 말아야 합니다:

root #modprobe iwlwifi

드라이버 모듈에 대한 자세한 내용은 modinfo iwlwifi 명령에서 확인할 수 있습니다.

user $modinfo iwlwifi

lspci

lspci 명령에서 Kernel driver in use:Kernel modules: 두 부분에 iwlwifi가 나타나야합니다.

root #lspci -k
xx:xx.x Network controller: Intel Corporation Wireless xxxx
        Kernel driver in use: iwlwifi
        Kernel modules: iwlwifi

xx:xx.x 식별자는 dmesg에서 지정 정보를 찾아볼 때 쓸만합니다.

dmesg

dmesg 출력 내용을 확인하십시오. xx:xx.x를 lspci 정보에 해당하는 내용으로 바꾸십시오.

user $dmesg | grep -i 'xx:xx.x\|wlan\|iwl\|80211'

문제 해결

Kernel not loaded

Check if the correct kernel is loaded. This can be accomplished as follows (depends on the IKCONFIG feature):

user $zgrep CONFIG_IWL /proc/config.gz

펌웨어 문제

  • udev 또는 systemd를 사용하는 시스템에는 커널에서 바이너리 블롭을 불러오도록 설정해야합니다. 이 경우, 무선 카드 펌웨어는 불러와야 할 펌웨어입니다. 이 방식으로 커널을 설정하는 자세한 방법은 젠투 포럼의 다음 스레드에서 찾아볼 수 있습니다: FW_LOADER_USER_HELPER_FALLBACK.

무선 연결이 동작하지 않네요

No internet connection

If you can connect to an access point, but still can't connect to any server or get any connection to the internet it might be worth a try to disable 802.11n and/or enable software encryption. You can pass the 11n_disable=1 and/or swcrypto=1 option to the iwlwifi module. In order to pass the option automatically on module load create the file /etc/modprobe.d/iwlwifi.conf as follows:

파일 /etc/modprobe.d/iwlwifi.confDisabling 802.11n, enabling software crypto
options iwlwifi 11n_disable=1 swcrypto=1

추가 참조

외부 자료