Wifi
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
En primer lugar, detecte los controladores wifi. lspci o lsusb son herramientas de línea de comandos que pueden ser utilizadas para esta tarea.
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
[*] Networking support --->
[*] Wireless --->
<M> cfg80211 - wireless configuration API
[ ] nl80211 testmode command
[ ] enable developer warnings
[ ] cfg80211 certification onus
[*] enable powersave by default
[ ] cfg80211 DebugFS entries
[ ] support CRDA
[ ] cfg80211 wireless extensions compatibility
<M> 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 and its 802.11n support is a rate control algorithm. Some wireless drivers might require it enabled.
In case the wireless configuration API (CONFIG_CFG80211) is built into the kernel (
<*>
) instead as a module (<M>
), the driver won't be able to load regulatory.db from /lib/firmware resulting in broken regulatory domain support. Please set CONFIG_CFG80211=m or add regulatory.db and regulatory.db.p7s (from net-wireless/wireless-regdb) to CONFIG_EXTRA_FIRMWARE.WEXT
La opción "cfg80211 wireless extensions compatibility", también conocida como WEXT, da soporte para las antiguas herramientas wireless-tools y iwconfig.
[*] 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.
'"`UNIQ--pre-00000006-QINU`"'
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:
'"`UNIQ--pre-00000009-QINU`"'
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
Wi-Fi device | Driver | Firmware | Note |
---|---|---|---|
Atheros AR9271 & AR7010 | ath9k_htc | sys-kernel/linux-firmware | |
Broadcom 43xx wireless support | b43 / b43legacy | sys-firmware/b43-firmware | Aircrack-ng ready, most probably the best choice when a bcm43xx device is supported |
Broadcom PCIe and SDIO/USB devices | brcmsmac / brcmfmac | sys-kernel/linux-firmware | Lacks powersaving, LED support and other features |
Broadcom 43xx wireless support | wl | net-wireless/broadcom-sta | Proprietary, no AP or Monitor modes, Comparison of bcm43xx drivers |
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 | |
All other Intel Wireless devices | iwlwifi | sys-kernel/linux-firmware | See the iwlwifi article for detailed instructions. |
Qualcomm Atheros QCA6174 | ath10k_pci | ath10k-firmware | See Qualcomm Atheros QCA6174 |
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 | May need the CONFIG_RTL8XXXU_UNTESTED kernel option to find all devices. Only those verified by kernel developers are enabled by default. |
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
This section is obsolete. See Udev#Optional: Disable_or_override_predictable_network_interface_naming for updated instructions.
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
Después de reiniciar con el nuevo kernel o de cargar los módulos, Se puede chequear la disponibilidad del dispositivo usando los siguientes métodos:
- Mediante el sistema de ficheros /sys
- Mediante la orden ip
- Mediante la orden ifconfig
- Mediante la orden iw
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
Orden 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: ...
Orden 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).
Orden 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
xx:xx.x
por el identificador (PCIID) de lspci,wlan
por el nombre del interfaz de red yiwl
por el nombre dlcontrolador del núcleo en uso
.
Resolución de problemas
Finding missing firmware
At system boot, the kernel will attempt to probe firmware as appropriate for each card. This can be discovered by searching dmesg or journalctl's (systemd) output from the current boot.
user $
journalctl -b 0 --dmesg | grep -i firmware
Oct 05 14:51:09 maffbook kernel: Spectre V2 : Enabling Restricted Speculation for firmware calls Oct 05 14:51:09 maffbook kernel: ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored Oct 05 14:51:09 maffbook kernel: sgx: [Firmware Bug]: Unable to map EPC section to online node. Fallback to the NUMA node 0. Oct 05 14:51:09 maffbook kernel: i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/kbl_dmc_ver1_04.bin (v1.4) Oct 05 14:51:09 maffbook kernel: ACPI: video: [Firmware Bug]: ACPI(PEGP) defines _DOD but not _DOS Oct 05 14:51:09 maffbook kernel: iwlwifi 0000:00:14.3: loaded firmware version 46.6b541b68.0 9000-pu-b0-jf-b0-46.ucode op_mode iwlmvm Oct 05 14:51:09 maffbook kernel: psmouse serio1: elantech: assuming hardware version 4 (with firmware version 0x5f2001) Oct 05 14:51:09 maffbook kernel: Bluetooth: hci0: Firmware revision 0.1 build 6 week 12 2021 Oct 06 17:26:26 maffbook kernel: Bluetooth: hci0: Minimum firmware build 1 week 10 2014 Oct 06 17:26:26 maffbook kernel: Bluetooth: hci0: Found device firmware: intel/ibt-17-16-1.sfi Oct 06 17:26:28 maffbook kernel: Bluetooth: hci0: Waiting for firmware download to complete Oct 06 17:26:28 maffbook kernel: Bluetooth: hci0: Firmware loaded in 1484394 usecs Oct 06 17:26:28 maffbook kernel: Bluetooth: hci0: Firmware revision 0.1 build 6 week 12 2021
Wi-Fi adapter cannot find and connect to a 5 GHz network
Some networks with WPA or WPA2 may still use the legacy TKIP protocol instead of AES to connect. Try installing net-wireless/wpa_supplicant with the tkip USE flag and reboot your system.
Forum threads
- Forum thread: wireless lan can't get ip from access point which explains about 169.254.x.x (link local address) being a wrong IP address
- Forum thread: iwlwifi fails to load after upgrade to 3.17.0
- Forum thread: Where is my network !?