En un momento anterior, analizamos como diagnosticar y lograr echar a andar una red cableada. Hoy nos toca la misma tarea, pero para las redes wifi.
Casi todos los comandos empleados anteriormente funcionan para las redes WiFi, excepto alguno que otro que funcione solo para redes cableadas, o por tipo, ya sea PCI/MiniPCI o USB, por lo cual no los voy a repetir. Veamos algunos ejemplos.
Información de la tarjeta de red[PCI/MiniPCI]:
# lspci | egrep -i --color 'wifi|wlan|wireless|802.11' 08:00.0 Network controller: Broadcom Limited BCM43142 802.11b/g/n (rev 01)
Si adaptador WiFi es USB:
# lsusb | egrep -i --color 'wifi|wlan' Bus 001 Device 007: ID 0bda:a811 Realtek Semiconductor Corp. RTL8811AU 802.11a/b/g/n/ac WLAN Adapter
O en general:
# lshw -C network | grep -B 1 -A 12 'Wireless interface' *-network description: Wireless interface product: BCM43142 802.11b/g/n vendor: Broadcom Limited physical id: 0 bus info: pci@0000:08:00.0 logical name: wlan0 version: 01 serial: d0:53:49:bb:45:52 width: 64 bits clock: 33MHz capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless configuration: broadcast=yes driver=wl0 driverversion=6.30.223.271 (r587334) latency=0 multicast=yes wireless=IEEE 802.11 resources: irq:18 memory:c6100000-c6107fff -- *-network:2 description: Wireless interface physical id: 5 bus info: usb@1:6 logical name: wlan1 serial: 00:e0:4c:42:af:7b capabilities: ethernet physical wireless configuration: broadcast=yes driver=rtl88xxau multicast=yes wireless=IEEE 802.11
Siguiendo la informacion obtenida, para las tarjetas PCI o MiniPCI, en el apartado bus info:
bus info: pci@0000:08:00.0
# lspci -vv -s 08:00.0 Kernel driver in use: wl Kernel modules: wl
Mirando el driver:
# modinfo wl filename: /lib/modules/4.19.0-10-amd64/updates/dkms/wl.ko license: MIXED/Proprietary license: MIXED/Proprietary alias: pci:v*d*sv*sd*bc02sc80i* depends: cfg80211 retpoline: Y name: wl vermagic: 4.19.0-10-amd64 SMP mod_unload modversions parm: passivemode:int parm: wl_txq_thresh:int parm: oneonly:int parm: piomode:int parm: instance_base:int parm: nompc:int parm: intf_name:string
Si el dispositivo WiFi es USB, sabiendo el bus, podemos obtener bastante información acerca:
# lsusb -v -d 0bda:a811 Bus 001 Device 007: ID 0bda:a811 Realtek Semiconductor Corp. RTL8811AU 802.11a/b/g/n/ac WLAN Adapter Device Descriptor: . . . idVendor 0x0bda Realtek Semiconductor Corp. idProduct 0xa811 RTL8811AU 802.11a/b/g/n/ac WLAN Adapter bcdDevice 2.00 iManufacturer 1 Realtek iProduct 2 802.11ac WLAN Adapter iSerial 3 00e04c000001 Self Powered Remote Wakeup MaxPower 500mA iInterface 2 802.11ac WLAN Adapter USB 2.0 Extension Device Capability: HIRD Link Power Management (LPM) Supported . . .
Para ver la info del driver:
# lsmod | egrep -i cfg80211 cfg80211 774144 3 wl,88XXau
Donde wl es el driver del chip PCI y 88XXau es el driver de nuestra WiFi USB. Todo esto haciendo uso del subsistema CFG80211.
Ahora veamos:
# modinfo 88XXau filename: /lib/modules/4.19.0-10-amd64/updates/dkms/88XXau.ko version: v5.2.20.2_28373.20180619 author: Realtek Semiconductor Corp. description: Realtek Wireless Lan Driver license: GPL name: 88XXau . . .
Si el driver fue compilado con DKMS:
# dkms status aufs, 4.19+20190211, 4.19.0-10-amd64, x86_64: installed broadcom-sta, 6.30.223.271, 4.19.0-10-amd64, x86_64: installed rtl8812au, 5.2.20.2, 4.19.0-10-amd64, x86_64: installed
Antes de seguir necesitaremos algunos utilitarios:
apt install -y iw wpasupplicant wireless-tools wavemon
Por supuesto, para obtener los datos de configuración del, o los dispositivos:
# iwconfig wlan0 wlan0 IEEE 802.11 ESSID:off/any Mode:Managed Access Point: Not-Associated Tx-Power=200 dBm Retry short limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:off # iwconfig wlan1 wlan1 IEEE 802.11 ESSID:"d2B20U00tRzYxME0" Mode:Managed Frequency:2.437 GHz Access Point: 14:96:E5:45:9D:78 Bit Rate=72.2 Mb/s Tx-Power=18 dBm Retry short limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality=61/70 Signal level=-49 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Si queremos ver en tiempo real el nivel de señal del AP al que estamos conectados:
watch -n 1 cat /proc/net/wireless
wavemon es una aplicación de monitoreo escrita en ncurses para dispositivos inhalámbricos. Esta herramienta muestra información continua y actualizada acerca de los niveles de señal así como parámetros especificos de la red e información general.
# wavemon
Para ver los canales que soporta el adaptador WiFi:
# iwlist chan
Y para escanear las redes cercanas[ESSID]:
# iwlist wlan0 scan | egrep -i 'cell|chan|essid|wpa|cipher|qual' Cell 01 - Address: 14:96:E5:45:9D:78 Channel:6 Frequency:2.437 GHz (Channel 6) Quality=55/70 Signal level=-55 dBm ESSID:"WIFI-LOCAL" Cell 02 - Address: 68:72:51:64:58:7A Channel:11 Frequency:2.462 GHz (Channel 11) Quality=35/70 Signal level=-75 dBm ESSID:"FRATERNIDAD"
Existen otras herramientas gráficas, tanto para la consola como WiFi-Radar o NMTui. Por último veamos un ejemplo demostrativo de como configurar la conectividad wifi por la consola. Variante 1:
# nano /etc/network/interfaces and write: auto wlan0 iface wlan0 inet dhcp wpa-ssid [SSID] wpa-psk [Password]
Guardamos y salimos del editor. Ahora pedimos IP con:
# dhclient wlan0
Y listo!
Ahora que menciono NMTui/NMcli, para ver un ejemplo detallado de todas las propiedades del adaptador WiFi:
# nmcli -f GENERAL,WIFI-PROPERTIES dev show wlan0
Este mismo ejemplo, pero con Netplan[Gracias Ubuntu de .l.]:
# nano /etc/netplan01-network-manager-all.yaml version: 2 wifis: wlan0: optional: true access-points: "SSID": password: "Password" dhcp4: true
Guardamos y salimos.
# netplan apply
Si hay algun error en la config:
# netplan --debug apply
Ejecutamos:
# ip a
Y si nos da IP es que todo está OK.
Variante 2:
# iwconfig wlan0 essid SSID key s:Password
Ahora pedimos IP con:
# dhclient wlan0
Y listo!
Hasta acá lo dejo, que me he extendido un poco. En el apartado drivers WiFi y configuraciones, hay bastante tela por donde cortar, dejo algunos artículos de referencia para que se guíen si presentan problemas:
– https://www.sysadminsdecuba.com/2018/11/dkms-que-es-y-como-se-usa/
– https://www.sysadminsdecuba.com/2018/10/linux-y-los-drivers-wi-fi/
– https://xn--deepinenespaol-1nb.org/mejorar-rendimiento-de-algunos-wifi-intel-en-deepin/
– https://xn--deepinenespaol-1nb.org/wiki/drivers-controladores/reparar-y-reinstalar-conexiones-wifi-ralink-y-realtek/
– https://xn--deepinenespaol-1nb.org/wiki/drivers-controladores/reparar-y-reinstalar-conexiones-wifi/
– https://wiki.debian.org/WiFi
– https://wireless.wiki.kernel.org/
– https://wiki.archlinux.org/index.php/Network_configuration/Wireless
Un placer y espero les sirva. Hasta la próxima!
Dejar una contestacion