如何在HP ENVY X360 15-EW1073CL的Ubuntu系统中禁用飞行模式或屏蔽硬件触发的飞行模式切换
如何在HP ENVY X360 15-EW1073CL的Ubuntu系统中禁用飞行模式或屏蔽硬件触发的飞行模式切换
嗨,我完全懂你这种被莫名其妙触发的飞行模式折磨的感受——动个盖子、挪下电脑就断网,实在太闹心了!针对你的HP ENVY X360 15-EW1073CL在Ubuntu上的问题,我整理了几个实用的解决办法,你可以按需尝试:
方法一:屏蔽硬件触发的飞行模式事件(保留命令行控制权限)
如果你只是想阻止硬件操作(比如开合盖子、翻转屏幕、移动电脑)触发飞行模式,但还想保留通过命令行手动开启/关闭的权限,可以试试这个方法:
找出触发飞行模式的输入设备
先安装evtest工具来检测事件:sudo apt update && sudo apt install evtest运行
sudo evtest,终端会列出所有输入设备。逐个选择设备测试(输入对应序号回车),然后做会触发飞行模式的操作(比如开合盖子、翻转屏幕),找到那个会输出KEY_RFKILL事件的设备,记下它的设备名称和事件编号(比如/dev/input/event8)。创建udev规则屏蔽该设备的触发事件
用文本编辑器创建一个udev规则文件:sudo nano /etc/udev/rules.d/99-block-airplane-trigger.rules写入以下内容(把
"你的设备名称"替换成刚才记下的设备名称,input8替换成对应事件编号的数字部分):SUBSYSTEM=="input", ATTRS{name}=="你的设备名称", RUN+="/bin/echo 1 > /sys/class/input/input8/device/disable"保存退出后,重启udev服务生效:
sudo udevadm control --reload-rules && sudo udevadm trigger
之后你就可以用命令行手动控制飞行模式了:
- 开启飞行模式:
sudo rfkill block airplane - 关闭飞行模式:
sudo rfkill unblock airplane
方法二:彻底禁用飞行模式(仅保留命令行开启可能)
如果你几乎不用飞行模式,想彻底让它无法被硬件触发,甚至默认保持关闭状态,可以这样操作:
- 锁定飞行模式硬件开关
先运行这条命令立即关闭飞行模式并锁定:sudo rfkill block airplane - 设置开机自动锁定
创建一个systemd服务来确保每次开机都自动执行锁定操作:
写入以下内容:sudo nano /etc/systemd/system/disable-airplane-mode.service
保存退出后,启用并启动这个服务:[Unit] Description=Auto disable airplane mode on boot After=multi-user.target [Service] Type=oneshot ExecStart=/usr/sbin/rfkill block airplane [Install] WantedBy=multi-user.target
这样开机后飞行模式会一直保持关闭,你如果偶尔需要开启,还是可以用sudo systemctl enable disable-airplane-mode.service sudo systemctl start disable-airplane-mode.servicesudo rfkill unblock airplane命令手动开启。
方法三:调整HP专属按键映射(针对HP机型优化)
因为你提到之前试过HP keycodes相关的方案,我们可以调整这个映射来屏蔽飞行模式的触发:
创建HP按键规则文件
sudo nano /etc/udev/hwdb.d/90-hp-custom-keycodes.hwdb添加屏蔽飞行模式的规则
写入以下内容(适配HP ENVY X360系列的硬件ID,通用规则如下):evdev:input:b*v03F0p* KEYBOARD_KEY_10080=none这里的
10080是飞行模式按键的通用扫描码,如果你不确定自己机型的扫描码,可以用evtest工具找到对应的码值替换。生效规则
sudo systemd-hwdb update && sudo udevadm trigger
注意事项
- 操作前建议备份对应的配置文件,比如
/etc/udev/rules.d下的文件,避免操作失误导致其他问题。 - 每个方法测试后,最好重启一下笔记本,确保设置完全生效。
- 如果某个方法对你的机型无效,可以尝试另一种方法,不同硬件的触发逻辑可能略有差异。
备注:内容来源于stack exchange,提问作者Joaquin




