![Al reactivarse, la tarjeta USB PCIe con el dongle WiFi USB conectado falla porque la red se inicia antes que la interfaz USB](https://rvso.com/image/1665752/Al%20reactivarse%2C%20la%20tarjeta%20USB%20PCIe%20con%20el%20dongle%20WiFi%20USB%20conectado%20falla%20porque%20la%20red%20se%20inicia%20antes%20que%20la%20interfaz%20USB.png)
Tengo una placa base antigua con una tarjeta PCIe USB 3.0. En él está conectado un adaptador WiFi que proporciona conectividad de red. Todo funciona bien hasta que la máquina se pone en suspensión/suspensión. Al despertar, la red no se activa porque creo que la máquina intenta activar la red antes de que la tarjeta USB vuelva a activarse. Luego puedo simplemente reiniciar la red, lo que funciona ya que la interfaz USB ya está activada para entonces, pero sería bueno que el sistema operativo espere a que se active primero la interfaz USB antes de intentar activar la red. ¿Hay algo que pueda hacer para priorizar la activación del USB o hacer que esto funcione según lo previsto?
Editar: el controlador WiFi es el controlador MediaTek, ya que el adaptador WiFi utiliza el chip MT7612U con buen soporte. No tengo este problema cuando uso los puertos USB 2.0 integrados en la placa base. Además, el chip USB 3.0 de la tarjeta es el de Renesas/NEC, pero no recuerdo el modelo real en este momento. El punto es que todo esto es hardware muy bien soportado en Linux, así que no estoy seguro de por qué sucede esto.
Respuesta1
Si entendí bien, el comando
sudo systemctl restart network-manager.service
soluciona el problema.
La solución sería entonces agregarlo como script de activación.
De Ejecutar scripts antes y después de suspender con systemd:
Simplemente coloque un script ejecutable de cualquier nombre en /usr/lib/systemd/system-sleep/ que verifique si el primer argumento es pre (antes de que el sistema se suspenda) o post (después de que el sistema se despierte de la suspensión).
Si es así
pre
, haga lo que desee antes de suspender; si espost
así, haga lo que desee después de reanudar. ¡Simple!He aquí un ejemplo inútil:
#!/bin/sh if [ "${1}" == "pre" ]; then # Do the thing you want before suspend here, e.g.: echo "we are suspending at $(date)..." > /tmp/systemd_suspend_test elif [ "${1}" == "post" ]; then # Do the thing you want after resume here, e.g.: echo "...and we are back from $(date)" >> /tmp/systemd_suspend_test fi