Wifi

From Gentoo Wiki
Jump to: navigation, search
This page contains changes which are not marked for translation.

External resources

This article describes the setup of a Wifi network device.

Gentoo Wifi Installation

Gentoo Install via WIFI

If installing Gentoo and a wifi connection is needed for installation:

The Gentoo minimal install CD has a limited set of wifi drivers available, and will require manual wpa_supplicant setup for WPA/WPA2/Enterprise connections. If your card is not supported there, or you would prefer an interactive frontend to configure wpa_supplicant[1], you should use an alternative livecd. A good example is the System Rescue CD (http://sysresccd.org/Download), but be sure to take note of the special steps that may be needed for installing from non-Gentoo livecds: https://wiki.gentoo.org/wiki/Installation_alternatives#Installation_from_non-Gentoo_LiveCDs .

WIFI

Hardware Detection

First detect the Wifi controllers. You can use lspci or lsusb for this task. If a linux (livecd/usb) is booted that makes a wifi connection:

root #lspci -k

The driver will be identified at "Kernel driver in use:". If a linux is booted that does not make a wifi connection:

root #lspci -n

The driver may be identified by copying the list of PCIID's that the command produces and pasting at http://kmuto.jp/debian/hcl/ .

user $lsusb

may produce pciid manufacturer make model chipset. Of these, the chipset may be the most useful information. Googling linuxwireless.org <chipset> is often the shortest way to find a usb NIC driver and firmware name.

root #lshw | grep -i driver

Will produce a list of all drivers whether the device is pci or usb connected.

Kernel

IEEE 802.11

KERNEL
[*] 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)
        [ ]   PID controller based rate control algorithm
        [*]   Minstrel
        [*]     Minstrel 802.11n 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[2] should always be activated.[3]

WEXT

The "cfg80211 wireless extensions compatibility" option aka WEXT[4] will support old wireless-tools & iwconfig and will be needed only for exotic or very old devices.

KERNEL
[*] Networking support  --->
    [*] Wireless  --->
        [*]     cfg80211 wireless extensions compatibility

Device Drivers

Dependent on your hardware you need to activate the corresponding kernel options. The recommendation is compiling the drivers as modules[5]. Also be sure to enable AES cipher support in the kernel if the network you are connecting to requires it.

KERNEL
    Device Drivers  --->
    [*] Network device support  --->
        [*] Wireless LAN  --->

            Select the driver for your Wifi network device, e.g.:
            <M> Broadcom 43xx wireless support (mac80211 stack) (b43)
            [M]    Support for 802.11n (N-PHY) devices
            [M]    Support for low-power (LP-PHY) devices
            [M]    Support for HT-PHY (high throughput) 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
            <M> Intel Wireless WiFi 4965AGN (iwl4965)
            <M> Intel PRO/Wireless 3945ABG/BG Network Connection (iwl3945)
            <M> Ralink driver support  --->
                <M>   Ralink rt27xx/rt28xx/rt30xx (USB) support (rt2800usb)

-*- Cryptographic API --->
    -*- AES cipher algorithms
    -*- AES cipher algorithms (x86_64)
    <*> AES cipher algorithms (AES-NI)

LED Support

To enable LED triggers for different packet receive/transmit events, compile your kernel with the following options:

KERNEL
    Device Drivers  --->
    [*] LED Support  --->
        <*>   LED Class Support

[*] Networking support  --->
    [*] Wireless  --->
        [*] Enable LED triggers

Firmware

Besides the kernel driver, you will also need firmware, expand section to see firmware/hardware table and notes of supported devices:

Wifi device Driver Firmware Note
Broadcom 43xx wireless support b43 / b43legacy sys-firmware/b43-firmware aircrack-ng ready, most probably the best choice if your bcm43xx device is supported
Broadcom 43xx wireless support (e.g. 4313) brcmsmac / brcmfmac sys-kernel/linux-firmware no powersave, LED support and other features
Broadcom 43xx wireless support wl net-wireless/broadcom-sta proprietary, no AP or Monitor modes, comparision of bcm43xx drivers
Atheros AR9271 & AR7010 ath9k_htc sys-kernel/linux-firmware
Intel PRO/Wireless 3945ABG/BG iwl3945 sys-kernel/linux-firmware
Intel Wireless WiFi 4965AGN iwl4965 sys-kernel/linux-firmware
Intel Wireless WiFi 5100AGN, 5150AGN, 5300AGN, 5350AGN iwlwifi sys-kernel/linux-firmware
Intel Centrino Wireless-N 1000 iwlwifi sys-firmware/iwl1000-ucode or sys-kernel/linux-firmware
Intel Centrino Ultimate-N 6300, Advanced-N 6200 iwlwifi sys-firmware/iwl6000-ucode or sys-kernel/linux-firmware
Intel Centrino Advanced-N + WiMAX 6250, Wireless-N + WiMAX 6150 iwlwifi sys-firmware/iwl6050-ucode or sys-kernel/linux-firmware
Intel Centrino Advanced-N 6205 iwlwifi sys-firmware/iwl6005-ucode or sys-kernel/linux-firmware
Intel Centrino Advanced-N 6230, Wireless-N 1030, Wireless-N 130 iwlwifi sys-firmware/iwl6030-ucode or sys-kernel/linux-firmware
Intel Centrino Wireless-N 2200, 2230 iwlwifi sys-kernel/linux-firmware
Intel Centrino Wireless-N 100, 105, 135 iwlwifi sys-kernel/linux-firmware
Intel Wireless 3160 iwlwifi sys-firmware/iwl3160-ucode or sys-kernel/linux-firmware Requires kernel parameter Device-Drivers->Network device support->Wireless LAN->Intel Wireless WiFi MVM Firmware support
Intel Wireless 7260 iwlwifi sys-firmware/iwl7260-ucode or sys-kernel/linux-firmware Requires kernel parameter Device-Drivers->Network device support->Wireless LAN->Intel Wireless WiFi MVM Firmware support
Ralink driver support e.g. rt2800usb sys-kernel/linux-firmware

b43

Install the required package, e.g for sys-firmware/b43-firmware:

root #echo "sys-firmware/b43-firmware" >> /etc/portage/package.accept_keywords
root #echo "sys-firmware/b43-firmware Broadcom" >> /etc/portage/package.license
root #emerge --ask b43-firmware

linux-firmware

Install the required package, e.g for sys-kernel/linux-firmware:

root #emerge --ask linux-firmware

If there is no package, you have to download the firmware and move it to /lib/firmware yourself.

Testing

After a reboot with the new kernel or after loading the modules, check that the device is ready using one of following methods:

Note
The name of the device may be different, e.g. eth1 or ath0 or a name as described in Predictable Network Interface Names if you use >=sys-fs/udev-200 with default configuration
user $ip addr
3: wlan0:   ...
user $ifconfig -a
wlan0     ...
root #ifconfig -v wlan0 up
SIOCSIFFLAGS: Operation not possible due to RF-kill
WARNING: at least one error occured. (-1)
  • Using net-wireless/wireless-tools[6] if your driver supports the wireless extensions stack. Non-wireless interfaces will be listed with "no wireless extensions":
root #iwconfig
wlan0     IEEE 802.11abg  ESSID:"..."  
          Mode:Managed  Frequency:2.462 GHz  Access Point: ..:..:..:..:..:..   
          ...   
          Link Quality=52/70  Signal level=-58 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:434   Missed beacon:0

lo        no wireless extensions.
sit0      no wireless extensions.
eth0      no wireless extensions.
root #iw dev
   phy#0
	Interface wlan0
		ifindex 4
		type managed

If not, check dmesg for errors:

user $dmesg

References

See also

Forum thread
AC1200 Wireless Adapters