在笔记本电脑上安装 Ubuntu、Manjaro 或其他图形化 Linux 发行版时,按下笔记本电脑上的飞行模式按钮时,可以启用飞行模式。
飞行模式的概念在 Linux 发行版中如何运作?
它只是针对蓝牙、wifi 和其他无线设备的一套规则吗?
飞行模式控制的实现是否出现在窗口管理器、网络管理器或 x11 或其他地方?
有谁可以提供特定系统(KDE/Linux、Gnome/Linux 或其他常见系统)中飞行模式控制机制的(高水平)解释吗?
答案1
大多数情况下,“飞行模式”意味着断开任何无线电(“无线”)连接,并停止发送任何活动探测以查找可能的连接。
在大多数 Linux 系统上,Wi-Fi 网络连接是通过 NetworkManager 进行管理的。还可以使用其他无线网络连接管理器。
另外,还有一个概念叫射频杀伤。 RFKILL的意思是切断某个无线电发射器。在一些在这种情况下,更高层(例如 Wi-Fi 驱动程序)可能会意识到 RFKILL,并返回特定的错误代码ERFKILL
“由于 RF-kill 无法进行操作”。例如,该命令iw dev wlp2s0 scan
可能会返回此错误。
如果硬件支持,Gnome Shell 或其他 GUI 系统中的飞行模式将激活 RFKILL。但是,即使您的所有无线电设备没有 RFKILL 控件,您的 GUI 也可能允许您启用飞行模式...部分原因是 GUI 无法可靠地判断 RFKILL 控件和无线电设备之间的关联:-)。
在 Gnome Shell 中,键盘上的飞行模式按钮只是切换飞行模式的键盘快捷键。启用飞行模式后,我还可以在角落菜单中看到一个按钮,可以将其重新关闭。
其他一些 GUI 用于nm-applet
为 NetworkManager 提供 GUI。我认为nm-applet
有某种方法可以禁用 Wi-Fi,但除此之外我不确定它到底提供了哪些功能。
此外,RFKILL 可能是操作系统只能读取的物理开关,即硬件/固件可能不允许它被覆盖。这称为“硬 rfkill”。当操作系统拥有控制权时,称为“soft rfkill”。
正如上面的链接所解释的,您可以使用该rfkill
命令。 rfkill list
,或者简单地rfkill
,会让您查看硬 rfkill 是否处于活动状态,以及设备名称是什么。
也可以进去看看/sys/class/rfkill/
。如果您知道如何检查/sys/
,您可以找到该名称司机它公开了给定的 RFKILL 控件。例如
$ cd /sys/class/rfkill
$ ls
rfkill1 rfkill2 rfkill3 rfkill8
$ grep -H . */name
rfkill1/name:dell-wifi
rfkill2/name:dell-bluetooth
rfkill3/name:phy0
rfkill8/name:hci0
$ ls -l
total 0
lrwxrwxrwx. 1 root root 0 Apr 6 10:03 rfkill1 -> ../../devices/platform/dell-laptop/rfkill/rfkill1
lrwxrwxrwx. 1 root root 0 Apr 6 10:03 rfkill2 -> ../../devices/platform/dell-laptop/rfkill/rfkill2
lrwxrwxrwx. 1 root root 0 Apr 6 10:03 rfkill3 -> ../../devices/pci0000:00/0000:00:1c.3/0000:02:00.0/ieee80211/phy0/rfkill3
lrwxrwxrwx. 1 root root 0 Apr 6 15:53 rfkill8 -> ../../devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.3/1-1.3:1.0/bluetooth/hci0/rfkill8
$ readlink rfkill8
../../devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.3/1-1.3:1.0/bluetooth/hci0/rfkill8
$ cd rfkill8
$ readlink device
../../hci0
$ cd device
$ readlink driver
$ cd device
$ readlink driver
../../../../../../../bus/usb/drivers/btusb
$ cd driver
$ readlink module
../../../../module/btusb
蓝牙
Gnome 是集成度最高的 Linux GUI 系统之一,它包括对蓝牙的支持。我可以看到我的 Gnome 系统上的飞行模式激活了蓝牙 RFKILL。乐观地,我猜想即使蓝牙设备没有 RFKILL 控制,Gnome 的飞行模式也会停止任何蓝牙连接。 (此外,停止发送任何活动探针以查找可能的蓝牙连接)。我的系统有一个名为 的独特进程bluetoothd
,我认为它负责管理蓝牙设备。然而这对我来说有点神秘。
“飞行模式”问题
从历史上看,飞行模式或类似功能最常见的问题是您无意中意外激活了它,例如按下键盘按钮。然后您的 Wi-Fi 无法工作,您可能不知道原因或如何修复它。然而,我当前的 Gnome shell 对于 soft rfkill 来说相当不错。如果启用了飞行模式,Wi-Fi 菜单将显示“Wi-Fi 关闭”。单击 Wi-Fi 菜单中的“选择网络”会显示一条重大通知,表明飞行模式已启用,并为您提供一个立即禁用飞行模式的按钮。