Configure the Linux Kernel for Wireless

Before using any userspace tool for connecting with a wireless AP, the Linux kernel must be configured to drive the wireless NIC properly. Enable the following options in the kernel configuration as well as specific device drivers for your hardware and recompile the kernel if necessary:

[*] Networking support  --->                                [CONFIG_NET]
  [*] Wireless  --->                                        [CONFIG_WIRELESS]
    <*/M> cfg80211 - wireless configuration API             [CONFIG_CFG80211]
    < /*/M> Generic IEEE 802.11 Networking Stack (mac80211) [CONFIG_MAC80211]
Device Drivers  --->
  [*] Network device support  --->                          [CONFIG_NETDEVICES]
    [*] Wireless LAN  --->                                  [CONFIG_WLAN]

Open the Wireless LAN submenu and select the options that support your hardware. lspci from pciutils-3.10.0 or lsusb from usbutils-015 can be used to view your hardware configuration. Note that many (though not all) options for the wireless NICs depend on CONFIG_MAC80211. After the correct drivers are loaded, the interface will appear in /sys/class/net, or the output of the ip link command.

Many wireless NIC drivers require a firmware. If you've enabled the correct driver in the kernel configuration but it fails to load (with the messages like Direct firmware load for <filename> failed with error -2, it means you need to install the firmware or the wireless NIC won't work. Read About Firmware for details.