由于我在 PC 上安装了 USB 3 扩展卡,因此我的挂起功能无法正常使用。计算机没有进入 S3 模式,而是立即唤醒。dmesg 给出提示“usb_dev_suspend+0x0/0x20 返回 -2”,因此我 rmmod 了“xhci_hcd”模块,成功了。
有没有什么好办法可以解决这个问题?遗憾的是,内核主线 PPA 的构建没有帮助,而且将模块列入黑名单不是我最喜欢的选项。我在哪里可以最好地报告此问题?
答案1
这是一个已知的错误:https://bugs.launchpad.net/ubuntu/+source/linux/+bug/522998
从那里:
如果
SUSPEND_MODULES="xhci"
添加到/etc/pm/config.d/unload_module
则系统可以正常挂起。
那里的评论也指向该主题的第 7 号帖子:http://ubuntuforums.org/showthread.php?t=1444822
类似的东西,很多人都说它有效。希望它有效。
答案2
除了什么奥利在该帖子中说,如果您有内置媒体读卡器或者在暂停请求时安装了 USB(闪存或旋转)存储,则会出现已知问题。
添加脚本 /etc/pm/sleep.d/00_fixMounted.sh,并使其由 root 拥有并可执行。此脚本应执行卸载在任何已安装的媒体卡和 USB 存储上。在 Ubuntu 上,它们默认安装在 /mnt/media/*。
卸载后,我在删除模块“usb_storage”方面取得了相当大的进展。
USB 连接设备(如相机等)还存在其他已知问题。上述方法可以处理这些设备的任何存储组件,但您需要以某种方式单独停用其他部分。
祝你好运,~~~0;-丹
答案3
看Maco 对此问题的回答,其中概述了如何在暂停时将模块列入黑名单(实际上是删除),然后在恢复时重新加载它。
作为后续,您可以看到我对 /etc/default/acpi-support 文件的具体编辑在这个答案中。
不过,这些内容并不能保证万无一失。您可能需要进行一些实验才能使其全部正常工作。在某些情况下(Sony Viao WLAN 卡),无论我如何编辑此文件,我都无法使硬件在挂起后恢复。
祝你好运。
答案4
如今,你会把脚本放进去,/lib/systemd/system-sleep/
而不是/etc/pm/sleep.d
。我使用这个脚本
#!/bin/sh
case $1/$2 in
pre/*)
echo "Removing 'xhci' for $2..."
modprobe -r xhci
;;
post/* )
echo "Waking up from $2 , adding 'xhci' ..."
modprobe xhci
;;
esac
进而
chmod +x
你的脚本