![Beim Aufwachen schlägt die PCIe-USB-Karte mit eingestecktem USB-WLAN-Dongle fehl, da das Netzwerk vor der USB-Schnittstelle gestartet wird](https://rvso.com/image/1665752/Beim%20Aufwachen%20schl%C3%A4gt%20die%20PCIe-USB-Karte%20mit%20eingestecktem%20USB-WLAN-Dongle%20fehl%2C%20da%20das%20Netzwerk%20vor%20der%20USB-Schnittstelle%20gestartet%20wird.png)
Ich habe ein älteres Motherboard mit einer PCIe USB 3.0-Karte. Daran ist ein WLAN-Adapter angeschlossen, der Netzwerkkonnektivität bereitstellt. Alles funktioniert einwandfrei, bis die Maschine in den Ruhezustand versetzt wird. Beim Aufwachen wird das Netzwerk nicht hochgefahren, weil ich glaube, dass die Maschine versucht, das Netzwerk hochzufahren, bevor die USB-Karte wieder hochfährt. Danach kann ich das Netzwerk einfach neu starten, was funktioniert, da die USB-Schnittstelle bis dahin hochgefahren ist, aber es wäre schön, wenn das Betriebssystem warten würde, bis die USB-Schnittstelle hochgefahren ist, bevor es versucht, das Netzwerk einzuschalten. Kann ich irgendetwas tun, um das Hochfahren von USB zu priorisieren oder dies anderweitig wie vorgesehen funktionieren zu lassen?
Bearbeiten: Der WLAN-Treiber ist der MediaTek-Treiber, da der WLAN-Adapter den gut unterstützten MT7612U-Chip verwendet. Ich habe dieses Problem nicht, wenn ich die integrierten USB 2.0-Anschlüsse auf dem Motherboard verwende. Außerdem ist der USB 3.0-Chip auf der Karte der von Renesas/NEC, aber ich kann mich im Moment nicht an das tatsächliche Modell erinnern. Der Punkt ist, dass dies alles sehr gut unterstützte Hardware unter Linux ist, also bin ich mir nicht sicher, warum das passiert.
Antwort1
Wenn ich das richtig verstanden habe, behebt der Befehl
sudo systemctl restart network-manager.service
das Problem.
Die Lösung wäre dann, es als Wake-Skript hinzuzufügen.
Aus Ausführen von Skripten vor und nach dem Suspendieren mit systemd:
Legen Sie einfach ein ausführbares Skript mit beliebigem Namen unter /usr/lib/systemd/system-sleep/ ab, das prüft, ob das erste Argument „pre“ (vor dem Suspendieren des Systems) oder „post“ (nachdem das System aus dem Suspendieren erwacht) ist.
Wenn dies der Fall ist
pre
, führen Sie vor dem Anhalten das gewünschte Ergebnis aus. Wenn dies der Fall ist,post
führen Sie nach dem Fortsetzen das gewünschte Ergebnis aus. Ganz einfach!Hier ist ein nutzloses Beispiel:
#!/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