Wifi

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

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

Este artículo muestra cómo configurar un dispositivo de red Wifi (inalámbrica).

Wifi durante la instalación

Si es necesaria una conexión de red inalámbrica mientras instala Gentoo, tenga en cuenta que el CD de intalación tiene una cantidad limitada de drivers disponible, y sólo provee wpa_cli (y no wpa_gui) para configurar conexiones de tipo WPA/WPA2/Enterprise.

Si el CD de instalación minimal no contiene los controladores necesarios o si prefiere una interfaz gráfica sobre wpa_supplicant, elija un live CD diferente como System Rescue CD. Tenga en cuenta que algunos pasos adicionales pueden ser necesarios cuando utiliza un live CD diferente del de Gentoo.

Detección de hardware

First detect the wifi controllers. lspci or lsusb are command-line tools that can be used for this task.

Si se inicia un Linux (mediante un LiveCD o un USB) que realiza un conexión wifi:

root #lspci -k

El driver podrá ser identificado con la línea Kernel driver in use:.

Si el sistema iniciado no realiza una conexión wifi entonces se debe obtener una lista completa de identificadores hardware para el sistema actual. Esta lista se puede utilizar para identificar el controlador adecuado más adelante:

root #lspci -n

Copiar la lista de PCIID que produce la orden y pegarla en http://kmuto.jp/debian/hcl/.

Para dispositivos USB, se puede seguir un procedimiento similar. Primero obtenga la lista de los dispositivos USB detectados en el sistema:

user $lsusb

Esta orden muestra el PCI ID, fabricante, construcción, modelo y chipset de cada dispositivo USB conectado al sistema. De éstos, el chipset suele ser la información más útil. Buscar algo como linuxwireless.org <chipset> es normalmente una forma rápida de encontrar el firmware para el controlador NIC USB.

De forma alternativa, se puede utilizar lshw para obtener la información necesaria:

root #lshw | grep -i driver

Esta orden produce una lista de todos los controladores, independientemente del dispositivo PCI o USB en el que se base.

Kernel

Una vez identificados los drivers, es hora de configurar el kernel de Linux.

IEEE 802.11

Active al menos cfg80211 y mac80211. Algunos controladores wireless requieren también un algoritmo de control de paso (rate control algorithm).

KERNEL linux-4.1
[*] 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)
        [*]   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 y su soporte para 802.11n es un rate control algorithm.

WEXT

La opción "cfg80211 wireless extensions compatibility", también conocida como WEXT, da soporte para las antiguas herramientas wireless-tools y iwconfig.

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

Controladores de dispositivo

Luego debe habilitarse el juego de opciones correspondiente del kernel, basado en los drivers y hardware detectado anteriormente. La recomendación (inglés) es compilar los drivers como módulos. También debes asegurarte de habilitar el soporte para cifrado AES si quieres utilizar redes de tipo WPA o WPA2.

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)
Importante
En el caso de que el driver sea compilado dentro del kernel (<*>) en lugar de como módulo (<M>), el firmware también debe compilarse dentro del kernel.
No olvides recompilar el kernel luego de cambiar esta configuración.

Soporte para LED

Para habilitar las señales de LED para los diferentes eventos de recepción/transmisión de paquetes, compila el kernel con las siguientes opciones:

KERNEL
Device Drivers  --->
    [*] LED Support  --->
        <*>   LED Class Support
 
[*] Networking support  --->
    [*] Wireless  --->
        [*] Enable LED triggers

Firmware

Adicionalmente al controlador del kernel, algunas tarjetas requieren firmware adicional. Si es necesario, búscalo en la siguiente lista e instálalo:

root #emerge --ask sys-kernel/linux-firmware
Dispositivo Wifi Driver Firmware Notas
Atheros AR9271 & AR7010 ath9k_htc sys-kernel/linux-firmware
Broadcom 43xx wireless support b43 / b43legacy sys-firmware/b43-firmware Listo para utilizar con aircrack-ng, muy probablemente la mejor opción si tu tarjeta bcm43xx está soportada
Broadcom PCIe and SDIO/USB devices brcmsmac / brcmfmac sys-kernel/linux-firmware Carece de ahorro de energía, soporte para LED y otras características
Broadcom 43xx wireless support wl net-wireless/broadcom-sta Privativo, no soporta los modos monitor y AP, Comparación de drivers bcm43xx
Intel PRO/Wireless 2200BG ipw2200 sys-firmware/ipw2200-firmware
Intel PRO/Wireless 3945ABG/BG iwlegacy sys-kernel/linux-firmware
Intel Wireless WiFi 4965AGN iwl4965 sys-kernel/linux-firmware
Otros dispositivos Wireless Intel iwlwifi sys-kernel/linux-firmware Lea el artículo iwlwifi para instrucciones detalladas.
Qualcomm Atheros QCA6174 ath10k_pci ath10k-firmware Lea Qualcomm_Atheros_QCA6174#Firmware
Ralink/MediaTek USB devices e.g. rt2800usb sys-kernel/linux-firmware
Realtek RTL8191SE & RTL8192SE rtl8192se sys-kernel/linux-firmware
Realtek 8723AU/8723BU/8191EU/8192EU/8188EU/8188RU rtl8xxxu sys-kernel/linux-firmware Puede ser necesaria la opción CONFIG_RTL8XXXU_UNTESTED para encontrar todos los dispositivos. Únicamente se habilitan por defecto aquéllos verificados por los desarrolladores del núcleo.

Si el controlador requiere firmware adicional pero no aparece en la lista, será necesario descargarlo manualmente y ponerlo en /lib/firmware.

Nombres de los dispositivos de red

Los nombres de dispositivos de red eth0, eth1, etc. tal y como los suministra el núcleo podrían cambiar en el arranque (ver dmesg) por la regla udev /lib/udev/rules.d/80-net-name-slot.rules.

Para mantener el nombrado clásico, se puede sobrescribir esta regla con un fichero vacío con el mismo nombre en el directorio /etc/udev/rules.d:

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

WPA supplicant

Si la red inalámbrica está configurada con WPA o WPA2, entonces es necesario utilizar wpa_supplicant. Para más información sobre la configuración de la red inalámbrica en Gentoo Linux, lea Handbook:AMD64/Networking/Wireless en el Manual de Gentoo.


Testing

Luego de reiniciar con el nuevo kernel o luego de cargar los módulos, puede ser chequeada la disponibilidad del dispositivo usando los siguientes métodos:

Sistema de archivos /sys

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

comando ip

Para obtener el nombre del dispositivo y verificar que la tarjeta inalámbrica es detectada, ejecute el siguiente ip comando:

user $ip addr
3: wlan0:   ...

comando ifconfig

El comando ifconfig es provisto por el paquete sys-apps/net-tools. Usa ifconfig -a para listar todas las tarjetas de red detectadas, incluso si aún no están activas o habilitadas:

user $ifconfig -a
wlan0     ...

Una tarjeta de red puede ser activada de la siguiente forma:

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

En este ejemplo, la habilitación de la tarjeta de red falló debido a que el estado RF-kill (radio frequency kill state) está habilitado (usualmente para evitar el consumo de energía y no conectar por accidente a una red inalámbrica).

comando iw

Si el controlador de la tarjeta de red soporta nl80211, entonces el comando iw del paquete net-wireless/iw puede mostrar las tarjetas de red inalámbricas:

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

dmesg

Comprobar la salida de dmesg.

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

Asegúrese de reemplazar

Resolución de problemas

Vea también

Recursos externos