Entendiendo nuestras tarjetas de Red – WiFi

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!

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 5 / 5. Recuento de votos: 3

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Sé el primero en comentar

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.


*