如果我尝试暂停系统,它会立即或几分钟后唤醒。我有一段系统日志摘录,显示了系统何时进入暂停状态和退出,但我不知道如何以易于阅读的格式将其上传到这里。
答案1
从 ubuntu 16.04 升级到 ubuntu 18.04 后我遇到了同样的问题。
我通过禁用我的情况下已启用的设备的唤醒选项解决了这个问题。
$ cat /sys/bus/usb/devices/*/power/wakeup
disabled
enabled
disabled
disabled
$ ll /sys/bus/usb/devices/*/power/wakeup
-rw-r--r-- 1 root root 4,0K mag 19 11:04 /sys/bus/usb/devices/1-7/power/wakeup
-rw-r--r-- 1 root root 4,0K mag 19 11:02 /sys/bus/usb/devices/1-9/power/wakeup <-- the bad guy
-rw-r--r-- 1 root root 4,0K mag 19 10:46 /sys/bus/usb/devices/usb1/power/wakeup
-rw-r--r-- 1 root root 4,0K mag 19 10:46 /sys/bus/usb/devices/usb2/power/wakeup
但真正帮助我识别设备的是它的 ID。
cat /sys/bus/usb/devices/1-9/idVendor
8087
cat /sys/bus/usb/devices/1-9/idProduct
0a2b
经过一番谷歌搜索后,发现它是蓝牙控制器。 https://usb-ids.gowdy.us/read/UD/8087/0a2b
最后禁用它
echo "disabled" > /sys/bus/usb/devices/1-9/power/wakeup
现在我的笔记本电脑真的挂起了。希望这也能帮到你。
使其在重启后持久化:
根据这个帖子
将此命令添加到 /etc/rc.local
如果该文件不存在,则运行:
printf '%s\n' '#!/bin/bash' 'exit 0' | sudo tee -a /etc/rc.local
sudo chmod +x /etc/rc.local
该文件看起来应该类似于:
#!/bin/bash
echo "disabled" > /sys/bus/usb/devices/1-9/power/wakeup
exit 0
测试启动 rc.local 服务
sudo /etc/rc.local start
并测试一下
sudo systemctl status rc-local
重新启动才能查看更改。
答案2
我在更新 Ubuntu 21.04 Hirsute Hippo 后遇到了这种情况。问题出在 nvidia 显卡和安装的 CUDA 上。
要解决此问题,请在软件更新程序中禁用 CUDA 存储库。 软件更新程序图片
更新 nvidia 驱动程序。
sudo apt install nvidia-driver-[your drive number]
如果您不知道您的驱动程序编号,请检查您安装的驱动程序。
apt list -i | grep nvidia
在 systemd 中启用这些服务。
sudo systemctl enable nvidia-suspend.service
sudo systemctl enable nvidia-hibernate.service
sudo systemctl enable nvidia-resume.service
答案3
对我来说,使用电源按钮是可行的。
我们可以在设置中将其配置为暂停(而不是关机)。
(但您始终可以长按以强制硬关机)。
看来如果我使用菜单中的挂起应用程序/命令,笔记本电脑将不会保持挂起状态。
我也尝试将所有 USB 的唤醒功能更改为禁用,但在这里不起作用。
我猜想电源按钮是起作用的,因为我避免触摸键盘。即使禁用,我仍然可以使用键盘唤醒。
答案4
我建议关注 这方法已rc.local
被弃用,主要用于特定用例和向后兼容性。
就我而言,下面的服务/etc/systemd/system
如下所示:
[Unit]
Description=Disables wake-up from keyboard and mouse
# the service runs before the computer goes to sleep
Before=sleep.target
[Service]
Type=simple
ExecStart=/usr/bin/bash -c "sudo echo disabled > /sys/bus/usb/devices/1-10/power/wakeup & sudo echo disabled > /sys/bus/usb/devices/1-9/power/wakeup"
[Install]
# this does the hook to sleep.target
WantedBy=sleep.target
现在已经测试了几次,它似乎按预期工作。