我在使用 Ubuntu 18.04 LTS 的 MacBook Pro 上遇到了暂停问题。
这个问题在一定程度上取决于雷电以太网适配器是插入还是拔出(以太网电缆是否插入似乎不会改变任何事情)。
我几乎只能在拔出适配器的情况下才能成功暂停,但即使在这种情况下,它也只能在重启后工作几次。几次成功尝试后,下一次尝试将不再起作用,直到重启。
为了获得更多见解,我通过不同配置的“暂停”按钮测试了暂停功能,主要是无需登录。
有 4 种不同的配置:
1 雷电以太网适配器已拔出
2 适配器已插入
3 适配器在启动期间插入,并在尝试挂起之前拔出
4 适配器仅在启动后插入(因此在尝试挂起之前)
以及六种状态:
A 暂停成功
B 暂停似乎成功(风扇关闭)但是它在一秒后重生
C 它只是在睡眠(风扇打开)并且屏幕黑着,按下按键后它会重生
D 它只是在睡眠并且屏幕黑着,并且它无法重生,它似乎被冻结了
E 它只是在睡眠并且屏幕黑着,并且在一秒后重生而没有按下按键
F 暂停似乎成功(风扇关闭)但是它在一秒后重生然后似乎被冻结了。
配置 1 在第一次尝试时总是导致状态 A(OK),有时在第二次、第三次和第四次尝试时也会导致状态 B;
配置 2 导致状态 D(冻结);
配置 3 在第一次尝试时导致状态 C,然后下一次尝试导致状态 E;
配置 4 第一次尝试可能导致状态 F(冻结)或 A(OK),然后下一次尝试导致状态 B、D 或 F
知道发生什么事了吗?
答案1
暂停/恢复期间关闭/打开所有电源
很难找出到底发生了什么。使用这个脚本可以让一切正常工作:
#!/bin/bash
# Original script was using /bin/sh but shellcheck reporting warnings.
# NAME: custom-xhci_hcd
# PATH: /lib/systemd/system-sleep
# CALL: Called from SystemD automatically
# DESC: Suspend broken for USB3.0 as of Oct 25/2018 various kernels all at once
# DATE: Oct 28 2018.
# NOTE: From comment #61 at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/522998
TMPLIST=/tmp/xhci-dev-list
# Original script was: case "${1}" in hibernate|suspend)
case $1/$2 in
pre/*)
echo "$0: Going to $2..."
echo -n '' > $TMPLIST
for i in `ls /sys/bus/pci/drivers/xhci_hcd/ | egrep '[0-9a-z]+\:[0-9a-z]+\:.*$'`; do
# Unbind xhci_hcd for first device XXXX:XX:XX.X:
echo -n "$i" | tee /sys/bus/pci/drivers/xhci_hcd/unbind
echo "$i" >> $TMPLIST
done
;;
post/*)
echo "$0: Waking up from $2..."
for i in `cat $TMPLIST`; do
# Bind xhci_hcd for first device XXXX:XX:XX.X:
echo -n "$i" | tee /sys/bus/pci/drivers/xhci_hcd/bind
done
rm $TMPLIST
;;
esac
家政
使用 root 权限创建脚本:
sudo -H gedit /lib/systemd/system-sleep/custom-xhci_hcd
插入上面的文本并保存文件。将脚本标记为可执行:
sudo chmod a+x /lib/systemd/system-sleep/custom-xhci_hcd
重启并测试
如果脚本无法帮助删除它:
sudo rm -f /lib/systemd/system-sleep/custom-xhci_hcd