iwlwifi

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


Az iwlwifi az Intel vezeték nélküli lapkakészleteihez készült vezeték nélküli illesztőprogram. A megfelelő működéshez szükséges a kernel Wi-Fi vermének a támogatása, valamint a kártyaspecifikus firmware, amely futásidőben töltődik be.

Kernel

A megfelelő működéshez bizonyos kernelbeállításra van szükség. Az illesztőprogram támogatja a 802.11a/b/g/n/ac szabványokat (az eszköztől függően), ezért szükséges az IEEE 802.11 engedélyezése.

IEEE 802.11

Aktiválja legalább a cfg80211 ( CONFIG_CFG80211 ) és a mac80211 ( CONFIG_MAC80211 ) kernelmodulokat. A részletekért tekintse meg a Wi-Fi cikk IEEE 802.11 szekcióját .

Eszközt működtető iwlwifi illesztőprogram

Használja ezt az illesztőprogramot az Intel jelenlegi vezeték nélküli lapkakészleteihez . Állítsa be kernelmodulnak <M> , ahogyan itt látható. Továbbá szükséges a megfelelő DVM vagy MVM firmware-opció a Module oszlop szerint a firmware táblázatban .

KERNEL Opciók a Linux Kernel 4.19 számára
Device Drivers  --->
    [*] Network device support  --->
        [*]   Wireless LAN  --->
            [*]     Intel 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
Important
Ha az illesztőprogram be van építve a bináris futtatható kernelképfájlba ( <*> ) a különálló kernelmodulfájl helyett ( <M> ), akkor a firmware-t is be kell építeni a kernelképfájlba . Tekintse meg a Beépített beállítás használata szakaszt.

A bináris futtatható kernelképfájl forráskódból történő újraépítése és az ezzel a kernelképfájllal való számítógép újraindítás után a kiválasztott opciók az alábbi módon ellenőrizhetők le:

user $ zgrep 'IWLWIFI\|IWLDVM\|IWLMVM' /proc/config.gz
Note
A /proc/config.gz fájl támogatása engedélyezhető a Kernel/IKCONFIG support funkción keresztül.

Firmware

További firmware szükséges az egyes eszközökhöz, amelyeket ebben a táblázatban vannak felsorolva. A legújabb firmware mindig elérhető a sys-kernel/linux-firmware szoftvercsomagban. Ha nem található meg a linux-firmware szoftvercsomagban, akkor az eszközspecifikus sys-firmware/iwlxxxx-*ucode szoftvercsomagokban lehet megtalálni.

Az upstream Intel útmutatások [1] azt javasolják, hogy minden iwlwifi ucode kerüljön hozzáadásra a számítógép által binárisan futtatható kernelképfájlhoz. Ez kényelmi szempontból ajánlott, azonban kissé megnöveli a forráskódból lefordított bináris kernelképfájlnak a méretét.

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

Beépített beállítás használatakor

Ha az illesztőprogram bele van fordítva (be van építve) a számítógép által futtatható bináris kernelképfájlba ( <*> ) különálló kernelmodulfájl helyett ( <M> ), akkor a firmware-t is bele kell fordítani (bele kell építeni) a kernelbe .

KERNEL linux-4.19
Device Drivers  --->
            Generic Driver Options  --->
                Firmware loader --->
 
                    -*- Firmware loading facility
                    (iwlwifi-xxxx.ucode) Build named firmware blobs into the kernel binary
                    (/lib/firmware) Firmware blobs root directory
                    [ ] Enable the firmware sysfs fallback mechanism

Ebben az esetben cserélje le az iwlwifi-xxxx.ucode fájlt a pontos firmware névre. Úgy tűnik, hogy különös figyelmet kell fordítani a FW_LOADER_USER_HELPER_FALLBACK beállítására.

Optional: savedconfig

A savedconfig USE jelölőzászló beállítható a Linux firmware számára annak érdekében, hogy elkerülje a felesleges elemeket a /lib/firmware/ könyvtárban.

Például az Intel® Centrino® Advanced-N 6205 az iwlwifi-6000g2a-ucode firmware-t igényli, míg minden más megjegyzésbe tehető vagy törölhető.

FILE /etc/portage/savedconfig/sys-kernel/linux-firmware Ügyeljen arra, hogy a verziószám eltávolításra kerüljön
iwlwifi-6000g2a-5.ucode
iwlwifi-6000g2a-6.ucode

Annak érdekében, hogy a következő firmware-frissítés során ezek a beállítások ne vesszenek el, el kell távolítani a verziószámot.

user $ cd /etc/portage/savedconfig/sys-kernel
root # mv linux-firmware{-20200316,}

Legújabb firmware-verzió, amely támogatja az eszközt

Az alábbiakban található egy hiányos lista a legújabb ismert firmware blob-okról, amelyek támogatják az adott lapkakészletet. Az eszközneveket a lspci segítségével lehet lekérdezni.

Eszköz neve Firmware blob fájlneve Firmware verziója
Intel Corporation Wi-Fi 6 AX200 (rev 1a) iwlwifi-cc-a0-77.ucode 77.ad46c98b.0


Tesztelés

Az eszköz elérhetősége a következő módszerekkel ellenőrizhető az új kernel újraindítása vagy a modulok betöltése után:

/sys fájlrendszer

Szerezze meg az eszköz nevét a /sys/class/net könyvtár tartalmának felsorolásával a ls -al vagy a tree parancs segítségével (amit a app-text/tree szoftvercsomag biztosít):

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 parancs

Az eszköz nevének megszerzéséhez és annak ellenőrzéséhez, hogy az vezeték nélküli kártya felismerésre került-e, hajtsa végre a következő ip parancsot :

user $ ip addr
3: wlan0:   ...

ifconfig parancs

A ifconfig parancs a sys-apps/net-tools szoftvercsomagon keresztül érhető el. Használja a ifconfig -a parancsot az összes felismerhető hálózati kártya listázásához, még azokat is, amelyek még nincsenek engedélyezve/aktív állapotban:

user $ ifconfig -a
wlan0     ...

Egy hálózati kártya az alábbi módon aktiválható:

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

Ebben a példában a vezeték nélküli kártya engedélyezése sikertelen volt, mivel rádiófrekvenciás letiltási állapot van beállítva (általában azért, hogy csökkenjen az energiafogyasztás, és el legyen kerülve a véletlenszerű csatlakozás egy vezeték nélküli hálózathoz).

iw parancs

Ha a vezeték nélküli hálózati kártya illesztőprogramja támogatja az nl80211 stack-et, akkor a net-wireless/iw szoftvercsomag által biztosított iw parancs meg tudja jeleníteni a felismerhető vezeték nélküli kártyákat:

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

modprobe és modinfo

A modprobe parancs semmint nem szabad, hogy visszaadjon:

root # modprobe iwlwifi

A legtöbb információ az illesztőprogram kernelmodulfájljáról a modinfo iwlwifi paranccsal szerezhető meg:

user $ modinfo iwlwifi

lspci

Az lspci parancsnak meg kell jelenítenie az iwlwifi értéket mind a Kernel driver in use: , mind a Kernel modules: esetében.

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

Az xx:xx.x azonosító hasznos lesz a dmesg parancstól érkező specifikus információk szűrésére.

dmesg

Ellenőrizze a dmesg kimenetét. Cserélje le a 03:00.0 értéket az lspci azonosítójával, valamint a wlp értéket a hálózati interfész nevével .

user $ dmesg | grep -i -E '03:00.0|wlp|iwl|80211'
[    0.251986] pci 0000:03:00.0: [8086:0082] type 00 class 0x028000
[    0.252146] pci 0000:03:00.0: reg 0x10: [mem 0xf7d00000-0xf7d01fff 64bit]
[    0.252863] pci 0000:03:00.0: PME# supported from D0 D3hot D3cold
[    3.621978] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    3.629362] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    3.634986] iwlwifi 0000:03:00.0: enabling device (0100 -> 0102)
[    3.635111] iwlwifi 0000:03:00.0: can't disable ASPM; OS doesn't have ASPM control
[    3.644480] iwlwifi 0000:03:00.0: loaded firmware version 18.168.6.1 op_mode iwldvm
[    3.659269] iwlwifi 0000:03:00.0: CONFIG_IWLWIFI_DEBUG disabled
[    3.659270] iwlwifi 0000:03:00.0: CONFIG_IWLWIFI_DEBUGFS disabled
[    3.659271] iwlwifi 0000:03:00.0: CONFIG_IWLWIFI_DEVICE_TRACING enabled
[    3.659273] iwlwifi 0000:03:00.0: Detected Intel(R) Centrino(R) Advanced-N 6205 AGN, REV=0xB0
[    3.694543] ieee80211 phy0: Selected rate control algorithm 'iwl-agn-rs'
[    3.695812] iwlwifi 0000:03:00.0 wlp3s0: renamed from wlan0
[    5.060307] iwlwifi 0000:03:00.0: Radio type=0x1-0x2-0x0
[    5.352853] iwlwifi 0000:03:00.0: Radio type=0x1-0x2-0x0
[    5.431804] IPv6: ADDRCONF(NETDEV_UP): wlp3s0: link is not ready
[    8.908518] wlp3s0: authenticate with <my WLAN AP>
[    8.912238] wlp3s0: send auth to <my WLAN AP> (try 1/3)
[    9.016437] wlp3s0: send auth to <my WLAN AP> (try 2/3)
[    9.120455] wlp3s0: send auth to <my WLAN AP> (try 3/3)
[    9.125773] wlp3s0: authenticated
[    9.126019] wlp3s0: waiting for beacon from <my WLAN AP>
[    9.148418] wlp3s0: associate with <my WLAN AP> (try 1/3)
[    9.191232] wlp3s0: RX AssocResp from <my WLAN AP> (capab=0x1431 status=0 aid=2)
[    9.211860] wlp3s0: associated
[    9.242532] IPv6: ADDRCONF(NETDEV_CHANGE): wlp3s0: link becomes ready
[    9.249856] wlp3s0: Limiting TX power to 20 (20 - 0) dBm as advertised by <my WLAN AP>

Hibaelhárítás

Kernel nem töltődött be

Ellenőrizze, hogy a megfelelő bináris futtatható kernelképfájl van-e betöltve a számítógép memóriájába. Ez a következőképpen valósítható meg (az IKCONFIG funkciótól függően):

user $ zgrep CONFIG_IWL /proc/config.gz

Firmware problémák

  • Az udevet vagy systemd init rendszert használó operációs rendszerek esetében elengedhetetlen a kernelt úgy beállítani, hogy az betöltse a bináris blob fájlokat a memóriába. Ebben az esetben a vezeték nélküli kártya firmware-je az a firmware, amelyet be kell tölteni a memóriába. További információ a kernel ilyen módon történő beállításáról megtalálható a következő Gentoo fórum témában: FW_LOADER_USER_HELPER_FALLBACK .

Nem működik a vezeték nélküli kapcsolat

KERNEL
Device Drivers  --->
    [*] PCI support  --->
        [*]   Message Signaled Interrupts (MSI and MSI-X)

Nincs internetkapcsolat, már a nagy fejszét készítem. Mit tegyek?

Ilyen esetekben sem a számítógép fejszével történő teljes kiirtása, sem a benzinnel történő lelocsolása, majd felgyújtása se nem segít. Bízzon bennünk! Ha lehetséges csatlakozni egy hozzáférési ponthoz, de nem lehet csatlakozni semmilyen szerverhez, illetve az internetkapcsolat nem működik, akkor érdemes lehet megpróbálni letiltani az 802.11n szabványt és/vagy engedélyezni a szoftveres titkosítást. Ehhez szükséges a iwlwifi.11n_disable=1 vagy iwlwifi.11n_disable=8 és/vagy iwlwifi.swcrypto=1 paraméter átadása a kernelnek. Annak érdekében, hogy a paraméter automatikusan átadásra kerüljön a kernelmodul memóriába történő betöltésekor, a következő fájlt kell létrehozni:

FILE /etc/modprobe.d/iwlwifi.conf Disabling 802.11n, enabling software crypto
options iwlwifi 11n_disable=1 swcrypto=1
Note
Az újabb kernelekben, amelyeket az 5.3.7-es verzióig ellenőriztek, a 11n_disable=1 beállítás (vagy 0x01 maszkolással) azzal a következménnyel jár, hogy az 802.11ac letiltásra kerül. Ez korlátozni fogja az eszközt legfeljebb 54 Mbit átviteli sebességre.

Hálózat összeomlik a nagy terhelés alatt

Egyes vezeték nélküli hálózati kártyákon (például Intel® Wi-Fi 6 AX201) nagy terhelés alatt a hálózat összeomlik egy hasonló hibaüzenettel:

root # dmesg
[  367.411551] iwlwifi 0000:00:14.3: reached 20 old SN frames from 77:77:77:77:77:77 on queue 2, stopping BA session on TID 3

Alternatív megoldásként az RX-aggregációt le kell tiltani a iwlwifi.11n_disable=4 kernelparaméter használatával.

FILE /etc/modprobe.d/iwlwifi.conf Disabling RX aggregation
options iwlwifi 11n_disable=4

"Microcode SW error detected. Restarting 0x0" üzenet a kernelnaplókban

root # dmesg | grep iwlwifi
(... redacted ...)
[ 5711.326985] iwlwifi 0000:28:00.0: Microcode SW error detected. Restarting 0x0.
[ 5711.326987] iwlwifi 0000:28:00.0: Start IWL Error Log Dump:
[ 5711.326990] iwlwifi 0000:28:00.0: Transport status: 0x0000004A, valid: 6
[ 5711.326992] iwlwifi 0000:28:00.0: Loaded firmware version: 71.058653f6.0 ty-a0-gf-a0-71.ucode
[ 5711.326993] iwlwifi 0000:28:00.0: 0x00000071 | NMI_INTERRUPT_UMAC_FATAL    
[ 5711.326995] iwlwifi 0000:28:00.0: 0x00008210 | trm_hw_status0
[ 5711.326998] iwlwifi 0000:28:00.0: 0x00000000 | trm_hw_status1
[ 5711.327001] iwlwifi 0000:28:00.0: 0x004DAEA2 | branchlink2
[ 5711.327003] iwlwifi 0000:28:00.0: 0x004D9974 | interruptlink1
[ 5711.327004] iwlwifi 0000:28:00.0: 0x004D9974 | interruptlink2
[ 5711.327006] iwlwifi 0000:28:00.0: 0x0000C314 | data1
[ 5711.327008] iwlwifi 0000:28:00.0: 0x00000010 | data2
[ 5711.327009] iwlwifi 0000:28:00.0: 0x00000000 | data3
(... redacted ...)
[ 5711.329587] iwlwifi 0000:28:00.0: ieee80211 phy0: Hardware restart was requested

Ez arra utal, hogy a WiFi adapter mikrovezérlője súlyos hibát észlelt, ami miatt újraindításra került. Ennek következménye lehet a hálózat megszakadása és/vagy jelentős lassulások még a hozzáférési ponthoz (AP-hez) való csatlakozás helyreállítása után is. A probléma gyökerét nehezen lehet megtalálni (platform saját rádiózaja, hibás firmware stb.), azonban az első kipróbálható lépések egyike, még akkor is, ha az iwlwifi modulhoz tartozó energiagazdálkodás le van tiltva, az, hogy megakadályozzuk a WiFi hálózati adapter PCIe kapcsolatát az energiatakarékos módba való átlépésben. Ezt az iwlmvm kernelmodul által használt power_scheme érték 1 (aktív) módra állításával lehet elérni.

FILE /etc/modprobe.d/iwlmvm.conf A power_scheme átváltása 'active' állapotra
options iwlmvm power_scheme=1

A https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi weboldalon javasolt további ellenintézkedések között szerepel a 40 MHz-es csatornák használatának letiltása a 2,4 GHz-es sávban, amely szintén segíthet.

FILE /etc/modprobe.d/cfg80211.conf A 40 MHz-es csatornák használatának kikapcsolása (2.4 Ghz-es rádiósáv)
options cfg80211 cfg80211_disable_40mhz_24ghz=Y

További olvasnivaló a témában

Külső források

References