(感谢群友在debug过程中的帮助)
请先检查journalctl输出,观察是否存在来自bitland_mifs_wmi的错误消息。
若存在,本文所述的workaround很可能适用于你。
有两种方案可以解决这个问题,影响较小的是以下第一个,若你不需要键盘背光与自定义风扇控制的支持可以选择第二个。
方案 1. 添加systemd system-sleep hook,在准备休眠时断开该设备并在恢复后重联
在/usr/lib/systemd/system-sleep/添加如下内容的文件,建议文件名workaround-bitland-mifs-wmi.sh,并chmod +x
#!/bin/bash
DEV="B60BFB48-3E5B-49E4-A0E9-8CFFE1B3434B-4"
case $1 in
pre)
echo -n "$DEV" > /sys/bus/wmi/drivers/bitland-mifs-wmi/unbind
;;
post)
echo -n "$DEV" > /sys/bus/wmi/drivers/bitland-mifs-wmi/bind
;;
esac
对应的PKGBUILD:
pkgname=bitland-sleep-workaround
pkgver=1
pkgrel=1
pkgdesc="Workaround: Unbinds and rebinds WMI Devices before and after sleep"
arch=('any')
license=('MIT')
depends=()
source=("workaround-bitland-mifs-wmi.sh")
sha256sums=(SKIP)
package() {
install -Dm755 "workaround-bitland-mifs-wmi.sh" -t "$pkgdir"/usr/lib/systemd/system-sleep/
}
方案 2. 黑名单bitland_mifs_wmi内核模块(同时能够部分修复性能模式无法激活的问题,部分型号上可能需要LTS内核以避免触控板不工作的副作用)
在/etc/modprobe.d/添加如下内容的文件,建议文件名workaround-disable-bitland-mifs-wmi.conf,无需chmod +x
blacklist bitland_mifs_wmi
对应的PKGBUILD:
pkgname=bitland-sleep-workaround
pkgver=1
pkgrel=1
pkgdesc="Workaround: Disable module bitland_mifs_wmi"
arch=('any')
license=('MIT')
depends=()
source=("workaround-disable-bitland-mifs-wmi.conf")
sha256sums=(SKIP)
package() {
install -Dm644 "workaround-disable-bitland-mifs-wmi.conf" -t "$pkgdir"/etc/modprobe.d/
}