Linux

休眠後禁用 USB 喚醒

  • July 31, 2021

**問題:我在晚上休眠電腦,我的貓通過踩鍵盤喚醒它。**是的,休眠又名掛起到磁碟,使用systemctl hibernate. 不暫停到 ram。我曾經認為,一旦完成,休眠將與正常關機沒有區別,但顯然情況並非如此,因為正常關機後電腦不會在 USB 上喚醒。

系統:Debian 10,主機板華碩 B450。

我試過的:

我在 BIOS 上找不到任何東西。

cat /sys/bus/usb/devices/usb[1-7]/power/wakeup

全部返回disabled

下面還有其他“設備”,/sys/bus/usb/devices/但它們似乎都是集線器,沒有power/wakeup選項。他們都有這樣的名字:1-0:1.0.

我想通過軟體解決這個問題。我不想

  1. 任何涉及更改我的設置、鎖定房間、賣貓等的事情;
  2. 關閉電源板。路由器已連接到它,當我睡著時其他人可能想要 wifi。

我在這裡先向您的幫助表示感謝。

編輯:

cat /proc/acpi/wakeup返回:

Device  S-state   Status   Sysfs node
GPP0      S4    *disabled
GPP1      S4    *disabled
GPP3      S4    *disabled
GPP4      S4    *disabled
GPP5      S4    *disabled
GPP6      S4    *disabled
GPP7      S4    *disabled
GPP8      S4    *enabled   pci:0000:00:03.1
X161      S4    *disabled  pci:0000:08:00.0
GPP9      S4    *disabled
X162      S4    *disabled
GPPA      S4    *disabled
GPPB      S4    *disabled
GPPC      S4    *disabled
GPPD      S4    *disabled
GPPE      S4    *disabled
GPPF      S4    *disabled
GP10      S4    *disabled
GP11      S4    *disabled
GP12      S4    *enabled   pci:0000:00:07.1
GP13      S4    *enabled   pci:0000:00:08.1
XHC0      S4    *enabled   pci:0000:0a:00.3
GP30      S4    *enabled   pci:0000:00:08.2
GP31      S4    *enabled   pci:0000:00:08.3
PS2K      S3    *disabled
PS2M      S3    *disabled
GPP2      S4    *enabled   pci:0000:00:01.3
PX11      S4    *disabled
PX12      S4    *disabled
RLAN      S4    *disabled  pci:0000:07:00.0
PTXH      S4    *enabled   pci:0000:01:00.0

核心文件中有一些關於 ACPI 狀態的背景。

由於鍵盤大概是usb設備,如果不能禁用,可以嘗試禁用控制器。此外,您還可以禁用/sys/bus/usb/devices/偽文件中列出的設備。/proc/acpi/wakeup這些往往在主機板上,而不是熱插拔。這 4 個字元的名字相當晦澀,來自 bios,但其中一些在這個答案中有所描述。您可以通過將其名稱寫入文件來切換一個,例如:

echo XHC0 >/proc/acpi/wakeup

這應該會禁用您的 USB 3 控制器。正如 CM 在評論中指出的那樣,您仍然依賴於 bios 的功能,因此可能需要暫停到記憶體。

對於永久設置,您需要在每次啟動時編寫此設置,並且如您所見,systemd-tmpfiles實用程序可以使用其通用方法執行此操作。創建一個文件,例如/etc/tmpfiles.d/disable-usb-wake.conf與行

#    Path                  Mode UID  GID  Age Argument
w    /proc/acpi/wakeup     -    -    -    -   XHC0

第一行只是一個註釋。請參閱man tmpfiles.d格式。

引用自:https://unix.stackexchange.com/questions/662668