iwlwifi/es

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

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

Warning: Display title "iwlwifi/es" overrides earlier display title "Iwlwifi".

Resources

iwlwifi es el driver para los chips actuales de Intel.

Kernel

Para que funcione es necesario configurar algunas opciones del kernel. El controlador soporta 802.11a/b/g/n/ac (dependiendo del dispositivo), por lo que debe habilitarse IEEE 802.11.

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.

Controlador de dispositivo iwlwifi

Usa este driver para chips Intel actuales. Configúralo como módulo de esta forma: <M>. También es necesaria la opción DVM o MVM correcta, acorde a la columna Module de la tabla de firmware.

KERNEL linux-4.9
Device Drivers  --->
 
        [*] Network device support  --->
 
        --- Network device support
        [*]   Wireless LAN  --->
 
            --- Wireless LAN
            [ ]   ADMtek devices
            [ ]   Atheros/Qualcomm devices
            [ ]   Atmel devices
            [ ]   Broadcom devices
            [ ]   Cisco devices
            [*]   Intel devices
            < >     Intel PRO/Wireless 2100 Network Connection
            < >     Intel PRO/Wireless 2200BG and 2915ABG Network Connection
            < >     Intel Wireless WiFi 4965AGN (iwl4965)
            < >     Intel PRO/Wireless 3945ABG/BG Network Connection (iwl3945)
            <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
            [ ]       Enable broadcast filtering (NEW)
            [ ]       Enable runtime power management mode for PCIe devices (NEW)
                      Debugging Options  --->
            [ ]   Intersil devices
            [ ]   Marvell devices
            [ ]   MediaTek devices
            [ ]   Ralink devices
            [ ]   Realtek devices
            [ ]   Redpine Signals Inc devices
            [ ]   STMicroelectronics devices
            [ ]   Texas Instrument devices
            [ ]   ZyDAS devices
            < >   Simulated radio testing tool for mac80211
            < >   Wireless RNDIS USB support
Importante
En caso de compilar el driver dentro del kernel (<*>) en lugar de como módulo (<M>), también el firmware debe ser compilado dentro del kernel. Vea la sección When using built-in configuration.
Luego de los cambios en la configuración del kernel, no olvide recompilarlo.

Abajo se muestra cómo se puede comprobar las opciones seleccionadas una vez reconstruido el núcleo y reiniciado con él:

Nota
El soporte para el pseudofichero /proc/config.gz se habilita a través de la característica Kernel/IKCONFIG_Support.
user $zgrep 'IWLWIFI\|IWLDVM\|IWLMVM' /proc/config.gz

Firmware

También es necesario firmware individual para los dispositivos como se muestra en esta tabla. Está disponible en el paquete sys-kernel/linux-firmware y en los paquetes para dispositivos específicos sys-firmware/iwlxxxx-*ucode.

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

Compilando el driver dentro del kernel

En caso de compilar el driver dentro del kernel (<*>) en lugar de como módulo (<M>), también el firmware debe ser compilado dentro del kernel.

KERNEL linux-4.1
Device Drivers  --->
 
            Generic Driver Options  --->
 
            -*- Userspace firmware loading support
            [ ]   Include in-kernel firmware blobs in kernel binary
            (iwlwifi-xxxx.ucode) External firmware blobs to build into the kernel binary
            (/lib64/firmware) Firmware blobs root directory
            [ ] Fallback user-helper invocation for firmware loading

En este caso reemplace iwlwifi-xxxx.ucode con el nombre exacto del firmware. Parece que es necesario cierta atención para FW_LOADER_USER_HELPER_FALLBACK.

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


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

modprobe y modinfo

modprobe no debe devolver nada:

root #modprobe iwlwifi

Puede obtenerse más información sobre el módulo con modinfo iwlwifi.

user $modinfo iwlwifi

lspci

lspci debe mostrar iwlwifi tanto Kernel driver in use: como Kernel modules:.

root #lspci -k
xx:xx.x Network controller: Intel Corporation Wireless xxxx
        Kernel driver in use: iwlwifi
        Kernel modules: iwlwifi

El identificador xx:xx.x será útil para buscar información específica con dmesg.

dmesg

Comprobar la salida de dmesg. Reemplazar xx:xx.x por el identificador que se muestra en lspci y wlan por el nombre de la interfaz de red.

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

Resolución de problemas

No se ha cargado el núcleo

Comprobar que se ha cargado el núcleo correcto. A continuación se muestra cómo se puede hacer esto (depende del la característica IKCONFIG):

user $zgrep CONFIG_IWL /proc/config.gz

Problemas de firmware

  • Es necesario configurar el kernel para que cargue blobs binarios en sistemas que utilizan udev o systemd. En este caso el firmware de la tarjeta inalámbrica es el firmware que debe ser cargado. Más información sobre esta forma de configurar el kernel se puede encontrar en el siguiente hilo de los foros de Gentoo: FW_LOADER_USER_HELPER_FALLBACK.

Wireless no funciona

Vea también

Recursos externos