Linux kernel wifi drivers

Linux Wireless

We currently have a fair amount of working drivers that cover most of the available wireless networking cards. However, they don’t implement all features and may have some issues, due to various reasons like companies not providing specs. Below is an alphabetically sorted list of drivers and what they currently can and can’t do.

NOTE: All drivers can of course run in station mode, but only a few drivers support the other available wireless modes! Support of cfg80211 also offers benefits.

Driver Manufacturer cfg80211 AP IBSS mesh monitor PHY modes Buses
adm8211 ADMtek/Infineon yes no no no ? B PCI
airo Aironet/Cisco no ? ? ? ? B PCI / PCMCIA
ar5523 Atheros yes no no no yes A(2)/B/G USB
at76c50x-usb Atmel yes no no no no B USB
ath5k Atheros yes yes yes yes yes A/B/G PCI / PCI-E / PCMCIA
ath6kl Atheros yes no yes no no A/B/G/N SDIO / USB
ath9k Atheros yes yes yes yes yes A/B/G/N PCI / PCI-E / AHB / PCMCIA
ath9k_htc Atheros yes yes yes yes yes B/G/N USB
ath10k Atheros yes yes yes (6) yes (6) yes (6) A/B/G/N/AC PCI-E / AHB / SDIO
ath11k Atheros yes yes no yes (6) yes (6) A/B/G/N/AC/AX PCI-E / AHB
atmel Atmel no ? ? ? ? B PCI / PCMCIA
b43 Broadcom yes yes yes yes yes A(2)/B/G SSB / PCI / PCI-E / PCMCIA
b43legacy Broadcom yes yes yes yes yes A(2)/B/G PCI / SSB
brcmfmac Broadcom yes yes yes no no A(1)/B/G/N/AC USB / SDIO / PCI-E
brcmsmac Broadcom yes yes no no yes A(1)/B/G/N PCI-E / AXI
carl9170 ZyDAS/Atheros yes yes yes yes yes A(1)/B/G/N USB
cw1200 ST-Ericsson yes ? ? ? ? A/B/G/N SPI / SDIO
hostap Intersil/Conexant no ? ? ? ? B PCI / PCMCIA
ipw2100 Intel no no yes no no B PCI
ipw2200 Intel no no (3) yes no no A/B/G PCI
iwlegacy Intel yes no yes no no A/B/G PCI-E
iwlwifi Intel yes yes (6) yes no yes A/B/G/N/AC PCI-E
libertas Marvell no no yes yes (4) no B/G USB / PCMCIA / SDIO / GSPI
libertas_tf Marvell yes yes no yes ? B/G USB
mac80211_hwsim Jouni yes yes yes no yes A/B/G/N NONE!
mt76 Mediatek yes yes yes yes yes A/B/G/N/AC/AX PCIe / SoC / USB / SDIO
mt7601u Mediatek yes ? ? ? ? B/G/N/ USB
mwifiex Marvell yes yes yes ? ? A/B/G/N SDIO / PCI-E / USB
mwl8k Marvell yes yes ? ? yes A/B/G/N PCI
orinoco Agere/Intersil/Symbol yes no yes no yes B PCI / PCMCIA / USB
p54pci Intersil/Conexant yes yes yes yes yes A(1)/B/G PCI / PCMCIA
p54spi Conexant/ST-NXP yes yes yes yes yes A(1)/B/G SPI
p54usb Intersil/Conexant yes yes yes yes yes A(1)/B/G USB
** prism2_usb Intersil/Conexant yes ? ? ? ? B USB
qtnfmac Quantenna yes yes no no no A/B/G/N/AC PCI-E
** r8192e_pci Realtek no ? ? ? ? B/G/N PCI-E
** r8192u_usb Realtek no ? ? ? ? B/G/N USB
** r8712u Realtek no ? ? ? ? B/G/N USB
ray_cs Raytheon no ? ? ? ? pre802.11 PCMCIA
rndis_wlan Broadcom yes no yes no no B/G USB
rt61pci Ralink yes yes yes no yes A(1)/B/G PCI
rt73usb Ralink yes yes yes no yes A(1)/B/G USB
rt2400pci Ralink yes yes yes no yes B PCI
rt2500pci Ralink yes yes yes no yes A(1)/B/G PCI
rt2500usb Ralink yes yes yes no yes A(1)/B/G USB
rt2800pci Ralink yes yes ? ? yes A(1)/B/G/N PCI
rt2800usb Ralink yes yes yes yes(5) yes A(1)/B/G/N USB
rtl8xxxu Realtek yes ? ? ? ? A(1)/B/G/N USB
rtl8180 Realtek yes no no no ? B/G PCI
rtl8187 Realtek yes no yes no yes B/G USB
rtl8188ee Realtek yes ? ? ? ? B/G/N PCI-E
rtl8192ce Realtek yes ? ? ? yes B/G/N PCI-E
rtl8192cu Realtek yes yes ? ? yes B/G/N USB
rtl8192de Realtek yes ? ? ? ? B/G/N PCI-E
rtl8192se Realtek yes yes ? ? ? B/G/N PCI-E
rtl8723ae Realtek yes ? ? ? ? B/G/N PCI-E
rtl8723bs Realtek ? ? ? no no B/G/N SDIO
** r8723au Realtek yes ? ? ? ? B/G/N USB
** vt6655 VIA yes yes yes no no A/B/G PCI
** vt6656 VIA yes yes yes no no A/B/G USB
wcn36xx Qualcomm Atheros yes yes yes yes yes A/B/G/N
wfx Silicon Laboratories yes yes no no no A/B/G/N SPI / SDIO
wil6210 Atheros yes yes no no yes AD PCI-E
** winbond Winbond yes ? ? ? ? B USB
** wilc Microchip yes yes no no no A/B/G/N SPI / SDIO
wl1251 Texas Instruments yes no yes ? yes B/G SPI / SDIO
wl12xx Texas Instruments yes yes yes no no A(1)/B/G/N SPI / SDIO
wl18xx Texas Instruments yes yes yes ? ? A/B/G/N SDIO
wl3501_cs Z-Com no ? ? ? ? pre802.11 PCMCIA
** wlags49_h2 Lucent/Agere no ? ? ? ? B/G PCI / PCMCIA
zd1201 ZyDAS/Atheros no ? ? ? ? B USB
zd1211rw ZyDAS/Atheros yes yes yes yes yes A(2)/B/G USB
Читайте также:  Linux terminal ssh key

Note: ** staging drivers

Out of the tree drivers(Unsupported)

Driver Manufacturer cfg80211 AP IBSS mesh monitor PHY modes Buses
acx1xx Texas Instruments yes ? ? no ? B PCI / PCMCIA / USB
agnx Airgo/Qualcom yes ? ? ? ? A/B/G PCI
ar6k Atheros ? ? ? ? ? B/G ?
poldhu NWN no ? ? ? ? B PCMCIA
RT2880 iNIC Ralink ? ? ? ? ? ? PCI

802.11a devices exist, but currently can’t be used with this driver, A/B/G devices will work in B/G mode only.

There is support with a special, out-of-tree driver and special firmware, see http://sf.net/projects/ipw2200-ap.

Abandoned/Deprecated Drivers(Unsupported)

Driver Manufacturer cfg80211 AP ad-hoc mesh monitor PHY modes BUS Replaced by
ar9170usb ZyDAS/Atheros yes no yes no yes A(1)/B/G/N USB carl9170
arlan Aironet/Cisco no ? ? ? ? pre802.11 ISA
at76_usb Atmel no no no no no B USB at76c50x-usb
netwave_cs Netwave/Xircom no ? ? ? ? pre802.11 PCMCIA
otus ZyDAS/Atheros no ? no no no A/B/G/N USB carl9170
prism54 Intersil/Conexant no ? ? ? ? A/B/G PCI / PCMCIA p54pci
stlc45xx ST/Nokia yes no no no no B/G SPI p54spi
wavelan Lucent no ? ? ? ? pre802.11 ISA / PCMCIA

Page Tools

Источник

Linux Wireless

iwlwifi is the wireless driver for Intel’s current wireless chips. For older chips, there are other drivers:

Features

Supported Devices

The following devices are supported (since kernel version):

For more information on Intel Wireless products, please visit Intel Wireless.

Git repositories

There are four repositories that we maintain:

iwlwifi/linux-firmware that feeds the official linux-firmware tree. It contains early releases, or content that just hasn’t been merged in mainline linux-firmware yet.

iwlwifi/backport-iwlwifi.git which is a backport based tree with iwlwifi / mac80211 / cfg80211 commits only. This tree is ideal for bisecting.

Firmware

If not installed by your distribution already (check the packages) you can get the latest firmware from linux-firmware.git.

Читайте также:  Linux скопировать права доступа

If you do get it from linux-firmware.git, you’ll have to copy the files to the appropriate location on your system. Where that appropriate location is depends (again) on your system distribution. You can typically find this location by looking in the udev scripts of your distro, the default on most distributions is /lib/firmware.

Installation of the firmware is simply:

You can now load the driver.

Support

If you have technical issues or general questions about Intel Wi-Fi on Linux, please contact Intel Customer Support.

For bug reports and debugging, please see the page dedicated to that.

7260, 3160, 7265, 7265D, 3165 and 3168 support

Those devices will not be supported by the newest firmware versions: the last firmware that was released for 3160, 7260 and 7265 is -17.ucode. Bug fixes will be ported to -17.ucode. 7265D, 3165 and 3168’s latest firmware version is -29.ucode. In order to determine if your 7265 device is a ‘D’ version, you can check the dmesg output:

Detected Intel(R) Dual Band Wireless AC 7265, REV=0x210

The revision number of a 7265D device is 0x210, if you see any other number, you have a 7265 device.

Firmware_class dependency

The firmware necessary to support the devices is distributed separately under the firmware license.

Note that many distributions ship the firmware, you could install the “linux-firmware” package or similar. If that doesn’t work, or you need newer firmware, read on.?

The driver loads the firmware using the kernel’s firmware_class infrastructure. More information can be found under in the Documentation/firmware_class/README file in the kernel source. In order to function correctly the driver requires this to be enabled in your kernel. When you configure the kernel, you can find this option in the following location:

Device Drivers -> Generic Driver Options -> Userspace firmware loading support

You can determine if your kernel currently has firmware loader support by looking for the

definition on your kernel’s

In addition to having the firmware_class support in your kernel, you must also have a working userspace infrastructure configured. The steps for installing and configuring this are very distribution specific and the tools differ, but distributions have this enabled.

Once you have the firmware loader in place (or if you aren’t sure and you just want to try things to see if it works), you need to install the firmware file into the appropriate location.

About the backport tree

We merge the updates coming from the backport infrastructure on a regular basis. This means that the bleeding edge of the backport tree will run against decently recent kernel (usually against Linus’s tree). If you checkout an earlier branch / commit in backport-iwlwifi.git, you might not be able to work against the most recent kernel. Please keep that in mind. We have a release cycle based on the backport tree. These Core releases can be very useful for someone who wants to integrate our Wi-Fi solution into his home made system.

About dual-boot with Windows and «fast-boot» enabled

If you have a dual-boot machine with a recent version of Windows and start seeing problems during initialization of the WiFi device when booting Linux, the problem could be due to the “fast startup” feature on Windows.

Читайте также:  Linux desktop not working

With this feature enabled, Windows don’t really shut down the entire system, but leaves things partially running so you can start the machine faster again. Try to disable this option, on Windows 10 it should be in “Control Panel→Hardware and Sound→Power Options→System Settings”. Select “Chooose what the power buttons do” to access the System Settings from the Power Options. Then disable the “Fast Startup” option in “Shutdown Settings”. This will cause Windows to fully shutdown and may solve the issue.

About platform noise

Wi-Fi heavily relies on radio frequencies, and those are subject to interference. Interference may come from another Wi-Fi device, or from many other non Wi-Fi devices (e.g. microwaves) that operates on the same frequency, and it might also come from other components of your own device/computer – this is known as ‘platform noise’. Platform noise depends on the actual platform/computer and its design/manufacturing, and not on the Intel Wi-Fi module.

Some common sources of platform noise might be:

This kind of interference might happen on 2.4GHz band, it is much less likely to happen on 5.2GHz band. Also note that using 40MHz (and not 20MHz) channel bandwidth will increase the probability to suffer from platform noise (since more frequencies might impact the Wi-Fi performance).

Some potential work-around options to this issue:

Disable Wi-Fi’s power save (prevent the PCIe link to go to power save): power_scheme=1 module parameter for iwlmvm

The fact that one of these options helped doesn’t prove that the issue being troubleshooted is ‘platform noise’, but it may be an indication.

Another thing that can be tried is to modify the antenna position. The antennas are typically located in the lid of the laptop. It is worth trying to open / close the lid or to rotate the system and see if it has any effect.

About the monitor / sniffer mode

Our devices support monitor mode. When you have VHT APs around, you should load the iwlwifi module with

This will put lots of pressure on the memory subsystem, but it will allow you to hear 12K long packets. You may see firmware crashes in case you didn’t set that module parameter.

About iwldvm support and known issues

Wi-Fi / Bluetooth coexistence

Having Wi-Fi and Bluetooth running at the same time is a challenge. These scenarios have been tested thoroughly on 7260 and up, less so on earlier devices. This is why some people may face issues with devices that are handled by iwldvm. For users of these devices who have problems when Wi-Fi and Bluetooth are running concurrently, we suggest to disable BT Coex by loading iwlwifi with bt_coex_active=0 as a module parameter.

Power management

Starting from 3.17, power management has been disabled in iwldvm because users reported it improved the behavior and was a valid work around for issues. The commit that disabled power management is here.

To enable manually power management, you can set the following module parameters to these values: iwlwifi.power_save=Y and iwldvm.force_cam=N.

Page Tools

Источник

Оцените статью
Adblock
detector