Si utilizas WICD en vez de Network Manager como gestor de conexiones Wifi para Linux puede que tengas algún problema puntual con el servicio wpa_supplicant
que viene instalado por defecto.
Como podemos ver en los logs, al arrancar el sistema se inicia el servicio wpa_supplicant.service
con su propio driver nl80211:
root@jota-portatil:~# journalctl -u wpa_supplicant.service -- Logs begin at Thu 2018-10-18 20:24:28 CEST, end at Fri 2019-05-17 16:44:17 CEST. -- oct 18 20:24:37 jota-portatil wpa_supplicant[2379]: ctrl_iface exists and seems to be in use - cannot override it oct 18 20:24:37 jota-portatil wpa_supplicant[2379]: Delete '/run/wpa_supplicant/wlp3s0' manually if it is not used anymore oct 18 20:24:37 jota-portatil wpa_supplicant[2379]: Failed to initialize control interface '/run/wpa_supplicant'. You may have another wpa_supplicant process already running or the file was left by an unclean termination of wpa_supplicant in which case you will need to manually remove this file before starting wpa_supplicant again. oct 18 20:24:37 jota-portatil wpa_supplicant[2379]: nl80211: deinit ifname=wlp3s0 disabled_11b_rates=0 oct 18 20:24:47 jota-portatil wpa_supplicant[2379]: ctrl_iface exists and seems to be in use - cannot override it oct 18 20:24:47 jota-portatil wpa_supplicant[2379]: Delete '/run/wpa_supplicant/wlp3s0' manually if it is not used anymore oct 18 20:24:47 jota-portatil wpa_supplicant[2379]: Failed to initialize control interface '/run/wpa_supplicant'. You may have another wpa_supplicant process already running or the file was left by an unclean termination of wpa_supplicant in which case you will need to manually remove this file before starting wpa_supplicant again.
El problema es que el servicio de WICD utiliza su propio proceso WPA Supplicant encargado de conectar desde la interfaz de red wlp3s0 al punto de acceso configurado en /var/lib/wicd/configurations/9c5c8e8ba580
Si echamos un vistazo al fichero de configuración se especifica SSID de la red, clave de conexión, etc…
root@jota-portatil:~# cat /var/lib/wicd/configurations/9c5c8e8ba580 ap_scan=1 ctrl_interface=/var/run/wpa_supplicant network={ ssid="***" scan_ssid=1 proto=WPA RSN key_mgmt=WPA-PSK pairwise=CCMP TKIP group=CCMP TKIP psk=*** }
La configuración del Supplicant podemos verla en Preferences -> Advanced Settings donde además se especifica el driver utilizado que por defecto es wext:
Por tanto si estamos utilizando WICD tenemos que forzar el deshabilitado (mask) del servicio wpa_supplicant.service
que se ejecuta en nuestro sistema para que no entren en conflicto ambos procesos entre sí:
systemctl mask wpa_supplicant.service
Una vez hecho esto no deberíamos volver a tener conflictos entre ambos servicios. Asegurarnos también si no lo hemos hecho ya de deshabilitar los servicios de Network Manager que no vamos a utilizar y que a su vez tienen dependencias con el servicio de marras:
sudo systemctl mask NetworkManager.service sudo systemctl mask NetworkManager-wait-online.service sudo systemctl mask NetworkManager-dispatcher.service