Qué hacer si deja de funcionar la WiFi al actualizar Ubuntu

Ayer realicé el proceso de actualización desde Ubuntu 16.10 a la 17.04. Todo fue estupendamente hasta después de reiniciar para arrancar con el nuevo sistema. No había manera de autentificarme en la red WiFi.

A continuación explico cómo lo solucioné y lo que aprendí de la gestión de redes Wifi en Linux…

El problema

No es que no reconociera o dejara de funcionar el adaptador. De hecho en el «Network Manager» aparecían todas las redes disponibles, intentaba conectarse a la establecida por defecto y luego nada de nada.

Lo primero que pensé es que al actualizar se hubiera perdido la configuración con la clave de conexión, así que pulsé en «Editar las conexiones» para comprobarlo…

Una vez descartado un problema con la contraseña ejecuté en un terminal los típicos comandos para la configuración de dispositivos de red:

ifconfig

… y por supuesto iwconfig, específico para wireless…

Confirmado. El adaptador Wifi «wlx00805a4dfde6» estaba reconocido y habilitado en el sistema, pero no enlazaba con red. Mosquedo acudí al registro de mensajes del sistema ejecutando dmesg

Me llamaron la atención dos mensajes diferentes: el primero era la imposibilidad de enlazar los dispositivos de red utilizando IPv6, y el segundo «aborting authentication with xx:xx:xx:xx:xx:xx by local choice (Reason: 3=DEAUTH_LEAVING)«.

Deshabilitando IPv6

Ya había tenido algún problemilla con el uso de IPv6 y Firefox, así que como no lo implementaba en mi red local decidí desactivarlo. Primero comprobé que el soporte de IPv6 estaba cargado en el kernel:

test -f /proc/net/if_inet6 && echo «Running kernel is IPv6 ready»

Efectivamente ahí estaba. Para desactivarlo edite el archivo «/etc/sysctrl.conf» y añadí las líneas que aparecen al final:

Luego ejecute la orden sysctl -p para recargar la configuración del kernel sin tener que reiniciar. Al volver a ejecutar  test -f /proc/net/if_inet6 && echo «Running kernel is IPv6 ready» ya no recibí el mensaje de control.

Para asegurarme de que se deshabilitara desde el arranque del sistema (por si no se contemplara «sysctrl.conf«) edité también el fichero «/etc/default/grub» añadiendo «ipv6.disable=1» a la línea de «GRUB_CMDLINE_LINUX_DEFAULT«:

Guardadas las modificaciones actualicé el cargador «grub» con la orden update-grub y reinicié el equipo esperando haber resuelto el problema.

Pues va a ser que aun no.

Cambiando la región de uso de Wifi

Centrado ahora en el segundo mensaje del registro («aborting authentication…«) y «googleando» un poco decidí cambiar el canal del punto de acceso (por si ahora se solapaba con las redes de los vecinos). Nada.

Cada país tiene unas leyes que regulan las frecuencias en las que pueden trabajar las personas, y la potencia con la que pueden hacerlo. El sistema viene configurado con las restricciones para que no puedas cambiar la configuración de tu tarjeta de red a una configuración que no esté permitida en la regulación de tu país. Esta restricción es una simple variable en el sistema operativo que indica el país en el que estás, con la consecuencia de que solo te dejará configurar la frecuencia y potencia de tu tarjeta de red para las regulaciones de ese país.

Ejecute la orden iw reg get para obtener la configuración actual:

Para mi sorpresa estaba configurado de forma genérica (país 00) así que pensé que al actualizar se habría perdido esa configuración al actualizar. Ejecuté sudo  iw reg set ES  para «España»:

Volví a intentar la conexión con la nueva configuración. Nada de nuevo! Decidí dejar el cambio «permanente» editando el fichero «/etc/default/crda«:

Reemplazar Network Manager

Un poco desesperado ya sólo me quedaba probar con otro gestor de conexiones. Ubuntu trae por defecto «Network manager» que se integra perfectamente en el escritorio y nos proporciona el  indicador de conexión en la barra de notificaciones. Pero en los foros de internet se le conocen algunos defectos y problemas, en especial en la gestión de conexiones Wifi.

La alternativa es «wicd», que si bien no tiene un diseño tan «adaptable» dicen de él que proporciona un mejor control individual de dispositivos y acceso a modos «monitor» sin tener que retocar ficheros de configuración.

Así que a instalarlo conectado por cable (o descargando los paquetes en otro equipo) :

sudo apt-get clean
sudo apt-get update
sudo apt-get install wicd

Se instalarán entre otros los paquetes «wicd«,  «wicd-daemon» y  «wicd-gtk«. Opcionalmente si te gusta trabajar en consola puedes añadir «wicd-curses«. Durante el proceso de instalación aparecerá un formulario como el de la imagen. Asegúrate de marcar a todos los usuarios (especialmente tú) que vayan a tener privilegios de acceso al gestor de conexiones:

Siempre podrías volver a este panel ejecutando sudo dpkg-reconfigure wicd-daemon.

Antes de iniciarlo por primera vez debemos desactivar «network-manager» (no hace falta desinstalarlo). Ejecutamos:

sudo systemctl stop NetworkManager.service
sudo systemctl disable NetworkManager.service

A continuación abrimos desde el menú «Aplicaciones» -> «Internet» -> «Wicd Network Manager«. Una vez identificada la SSID de mi red Wifi pulsé en «Propiedades» y configuré la clave:

Cruzando los dedos pulsé el botón «Conectar» y …. !EUREKA: CONECTADO!