喚醒後,插入 USB WiFi 加密狗的 PCIe USB 卡故障,因為網路先於 USB 介面啟動

喚醒後,插入 USB WiFi 加密狗的 PCIe USB 卡故障,因為網路先於 USB 介面啟動

我有一個帶有 PCIe USB 3.0 卡的舊主機板。其中插入了一個提供網路連線的 WiFi 轉接器。一切正常,直到機器進入睡眠/掛起狀態。喚醒後,網路無法啟動,因為我認為機器會在 USB 卡恢復之前嘗試啟動網路。之後我可以重新啟動網絡,這會在 USB 接口啟動時起作用,但最好讓作業系統先等待 USB 接口啟動,然後再嘗試打開網絡。我可以做些什麼來優先啟動 USB 或以其他方式使其按預期工作嗎?

編輯:WiFi驅動程式是MediaTek驅動程序,因為WiFi適配器使用支援良好的MT7612U晶片。我使用主機板上內建的 USB 2.0 連接埠時沒有出現此問題。另外,卡片上的 USB 3.0 晶片是 Renesas/NEC 的,但我現在不記得實際型號了。關鍵是 Linux 上的硬體都得到了很好的支持,所以我不確定為什麼會發生這種情況。

答案1

如果我理解正確,該命令 sudo systemctl restart network-manager.service 可以解決問題。

解決方案是將其新增為喚醒腳本。

使用 systemd 掛起之前和之後運行腳本:

只要將任何名稱的可執行腳本放在 /usr/lib/systemd/system-sleep/ 下,檢查第一個參數是 pre (系統掛起之前)還是 post (系統從掛起中喚醒之後)。

如果是pre,則在掛起之前執行您想要執行的操作,如果是, post則在恢復後執行您執行的操作。簡單的!

這是一個無用的例子:

#!/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

相關內容