从 Raspbian 卸载 rfkill 后如何禁用它

从 Raspbian 卸载 rfkill 后如何禁用它

执行系统更新后,我突然发现 Raspberry Pi 4 上的 Wi-Fi 停止工作。没有 IP 地址。因此,我尝试使用 获取新的租约(简单的 DHCP 配置)dhclient wlan0,但会受到错误消息的惩罚RTNETLINK answers: Operation not possible due to RF-kill

经过简短的谷歌搜索后,我发现简单地清除包的建议apt purge rfkill,我当然立即毫不犹豫地跑了。现在我没有用户空间rfkill命令或工具,rfkill内核模块继续重新加载,阻止我激活我的 Wi-Fi(因此无法简单地rfkill通过重新安装apt),而且我不知道如何阻止它启动。

我做了什么:

sudo systemctl disable rfkill
sudo systemctl stop rfkill
echo "rfkill" | sudo tee -a /etc/modprobe.d/raspi-blacklist.conf
sudo mv /lib/systemd/{systemd-rfkill,system/systemd-rfkill.{service,socket}} ~
echo "0" | sudo tee /var/lib/systemd/rfkill/*

在里面/lib/systemd/system/raspberrypi-net-mods.service,我注释掉了:

#After=systemd-rfkill.service

最后附加systemd.restore_state=0/boot/cmdline.txt

console=serial0,115200 console=tty1 root=PARTUUID=738a4d67-02 rootfstype=ext4 rootfsflags=commit=120,data=writeback elevator=deadline noatime nodiratime data=writeback fsck.repair=yes rootwait systemd.restore_state=0

lsmod重新启动后,我可以看到rfkill模块是仍然正在加载,并且任何运行尝试dhclient wlan0都会导致相同的原始错误消息!

那么如何禁用或删除rfkill并重新启用我的 Wi-Fi 适配器呢?


$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux bullseye/sid
Release:        testing
Codename:       bullseye

$ uname -a
Linux jam 4.19.118-v7l+ #1311 SMP Mon Apr 27 14:26:42 BST 2020 armv7l GNU/Linux

答案1

根据Linux内核参数文档您还需要将rfkill.default_state=1参数(除了systemd.restore_state=0)添加到内核中/boot/cmdline.txt,以便将其默认设置为解锁:

    rfkill.default_state=1

相关内容