我一直在论坛上寻找针对 18.04 的此问题的通用解决方案(例如这一个或这一)。
第一个例子最初是针对 14.04 发布的,它告诉我向 /etc/pm/sleep.d 添加一个脚本。我尝试了两个不同的脚本:
#!/bin/bash
case "$1" in
thaw|resume)
sudo nmcli nm sleep false
sudo pkill -f wpa_supplicant
;;
*)
;;
esac
exit $?
和
#!/bin/sh
case "${1}" in
resume|thaw)
nmcli r wifi off && nmcli r wifi on ;;
esac
但都没有奏效。我对 Linux 不够熟悉,无法准确理解这些脚本的作用,但我确实知道这应该在从暂停状态恢复时运行(我确实使用 sudo chmod +x 使其可执行)。实际上,只需运行
nmcli nm sleep false
在终端上给了我“错误:参数‘nm’不被理解”
的答案这个帖子说从 16.04 开始 sleep.d 不再处于活动状态,并且脚本应该放在 /lib/systemd/systemd-sleep 中。
第二篇文章似乎专门针对联想笔记本电脑,因为它说要运行:
sudo tee /etc/modprobe.d/blacklist-ideapad.conf <<< "blacklist ideapad_laptop"
但是我有一台 HP Pavilion,带有 Intel Corporation Wireless 3160[8086:08b3] rev (83),根据 lspci | grep Network,/etc/modprobe.d 中没有“blacklist-ideapad.conf”文件
我的笔记本电脑上没有 Wifi 适配器的硬开关,所以我希望有人能帮我根据我的情况调整这些答案。我该如何向 systemd-sleep 添加类似的脚本,因为它不是一个文件夹或脚本(无论如何我都可以读取)?
编辑 根据@nobody 的解决方案,我的 iwlwifi.conf 文件如下所示:
# /etc/modprobe.d/iwlwifi.conf
# iwlwifi will dyamically load either iwldvm or iwlmvm depending on the
# microcode file installed on the system. When removing iwlwifi, first
# remove the iwl?vm module and then iwlwifi.
remove iwlwifi \
(/sbin/lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs /sbin/rmmod) \
&& /sbin/modprobe -r mac80211
options iwlwifi remove_when_gone=1
也许我没有正确添加“options iwlwifi...”行?
谢谢你的帮助!Jeremy
答案1
当我正确时,模块 iwlwifi 适用于您的 wlan。
/etc/modprobe.d/iwlwifi.conf
请创建内容如下的文件
options iwlwifi remove_when_gone=1
如果认为无法访问,则从 PCIe 总线上移除设备
从那时起,从挂起到内存或挂起到磁盘唤醒后,我再也没有遇到过连接问题。
模块的更多选项modinfo iwlwifi | fgrep parm