如何防止 RF Kill 禁用 wifi

如何防止 RF Kill 禁用 wifi

我的一台机器遇到了无线问题,它自动离线了一段时间。当我在路由器页面上检查它的状态时,它不在那里。由于无法使用键盘/鼠标/ hdmi 访问它,我不得不重新启动它,重新启动后,它又恢复了在线状态。我立即检查了日志,寻找它离线原因的任何线索。

/var/log/daemon.log这是机器离线时的特定时间的日志。

THIS IS THE TIME WHEN THE MACHINE WENT OFFLINE (5月21日 08:38:00)

May 21 08:38:00 Machine-04 dhcpcd[371]: eth0: removing interface
May 21 08:38:00 Machine-04 systemd[1]: Starting Load/Save RF Kill Switch Status...
May 21 08:38:00 Machine-04 avahi-daemon[332]: Interface wlan0.IPv6 no longer relevant for mDNS.
May 21 08:38:00 Machine-04 systemd[1]: Started Load/Save RF Kill Switch Status.
May 21 08:38:00 Machine-04 avahi-daemon[332]: Leaving mDNS multicast group on interface wlan0.IPv6 with address fe80::20d8:7961:155a:c338.
May 21 08:38:00 Machine-04 dhcpcd[371]: wlan0: carrier lost
May 21 08:38:00 Machine-04 avahi-daemon[332]: Interface wlan0.IPv4 no longer relevant for mDNS.
May 21 08:38:00 Machine-04 avahi-daemon[332]: Leaving mDNS multicast group on interface wlan0.IPv4 with address 10.1.140.6.
May 21 08:38:00 Machine-04 avahi-daemon[332]: Withdrawing address record for fe80::20d8:7961:155a:c338 on wlan0.
May 21 08:38:00 Machine-04 avahi-daemon[332]: Withdrawing address record for 10.1.140.6 on wlan0.
May 21 08:38:00 Machine-04 dhcpcd[371]: wlan0: deleting address fe80::20d8:7961:155a:c338
May 21 08:38:00 Machine-04 dhcpcd[371]: wlan0: deleting default route via 10.1.0.254
May 21 08:38:00 Machine-04 dhcpcd[371]: wlan0: deleting route to 10.1.0.0/16
May 21 08:38:00 Machine-04 dhcpcd[371]: wlan0: dhcp_envoption 119: Operation not supported
May 21 08:38:00 Machine-04 dhcpcd[371]: wlan0: dhcp_envoption 119: Operation not supported
May 21 08:38:00 Machine-04 dhcpcd[371]: wlan0: removing interface
May 21 08:38:00 Machine-04 dhcpcd-run-hooks[6825]: wlan0: stopping wpa_supplicant

从上面的日志来看,我认为这与有关RF Kill。我开始搜索它,发现这个很好关联文章说RF Kill主要是同步硬件和软件,有时会失败,导致特定接口(Wlan0 in my case)被软阻止。文章还建议了几种重新启用它的方法,但由于我的机器没有任何显示器/键盘,所以我正在寻找解决方案来解决这个问题。

可以RF Kill软阻断 wifi 吗?如果可以,那么我们如何才能自动重新启用它?

谢谢

答案1

我在 Ubuntu 16.04 Server 中遇到了同样的问题,wifi 无法使用。除此之外,我还收到了消息rfkill command not found

我添加了以下行/etc/modprobe.d/blacklist.conf

blacklist wmi

然后我将以下几行添加到/etc/network/interfaces

auto wlo1
iface wlo1 inet dhcp
    wpa-ssid SSID
    wpa-psk PASSWORD

其中,wlo1是我的 wifi 接口名称,SSID是 wifi 网络名称,PASSWORD是 wifi 密码。

答案2

这不是一个真正的解决方案,只是一种解决更深层次的 rfkill 问题的解决方法。

在尝试了所有这些解决方案和其他方法(将所有模块列入黑名单、从 /lib/modules/ 中删除模块、创建启动脚本以解除阻止、创建系统服务以解除阻止、添加rfkill.default_state=2启动参数等)后,rfkill 仍然会自动随机阻止 WiFi。我能够可靠地解决这个问题的唯一方法是:

echo "* * * * * root rfkill unblock all" >> /etc/crontab

这会rfkill unblock all每分钟执行一次命令,以在 WiFi 被关闭后强制重新启用它。这不会阻止随机网络中断,但至少它会在最多一分钟后重新连接。

相关内容