最近我安装了 Ubuntu 18.04 并开始面临一个奇怪的问题。当我进入睡眠/休眠模式时,我的三个 USB 端口中的两个停止工作。
如果我重新启动 Ubuntu,USB 端口会恢复正常模式。
这个来自Unix & Linux Stack Exchange 的答案(这里略有增强)有一个解决方案。
编辑/etc/default/grub
并找到包含LINUX_DEFAULT
. 更改行:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
Run Code Online (Sandbox Code Playgroud)
到:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.autosuspend=-1"
Run Code Online (Sandbox Code Playgroud)
保存文件,运行sudo update-grub
,然后重新启动。
使用后,你会发现:
$ cat /sys/module/usbcore/parameters/autosuspend
-1
Run Code Online (Sandbox Code Playgroud)
默认值为2
。内核参数更改此值。
设置内核参数对我有帮助。现在我的鼠标从挂起恢复时再次工作。
建议:当USB设备在挂起后不工作时,您也可以以root身份使用以下命令重新加载驱动程序:
modprobe -r uhci_hcd
modprobe uhci_hcd
Run Code Online (Sandbox Code Playgroud)
和/或:
modprobe -r ehci_hcd
modprobe ehci_hcd
Run Code Online (Sandbox Code Playgroud)
小智 7
接受的答案对我来说不起作用,而且每当我重新安装或更新 grub 或从另一个操作系统启动或其他任何东西时,我也不想跟上内核参数。有一个名为的文件usbreset
随usbutils
. 运行它,找到您想要在唤醒时重新启动的设备的名称,然后将一个文件放入/lib/systemd/system-sleep
我的文件中,我称之为重置鼠标,所以我的文件是/lib/systemd/system-sleep/reset-mouse
.
如果您有该文件夹,只需查看该格式的另一个条目即可。我的是:
#!/bin/sh
case $1 in
post)
usbreset "Wireless Device"
;;
esac
Run Code Online (Sandbox Code Playgroud)
我通过从终端运行获得了“无线设备”名称,usbreset
该终端还将列出您的设备并告诉它们的名称,因此无论您遇到问题是什么设备。
sudo chmod +x /lib/systemd/system-sleep/reset-mouse
Run Code Online (Sandbox Code Playgroud)
然后下次我的机器进入睡眠状态时,此后每次都会立即唤醒,没有 USB 问题。
归档时间: |
|
查看次数: |
6713 次 |
最近记录: |