搜索后我发现这个问题这解释了如何激活功能键,但变化似乎不是永久性的。
每次启动时文件内容/sys/module/hid_apple/parameters/fnmode
都会返回到3。
为什么3? 允许的参数不是在范围内吗0-2?
我怎样才能使文件更改/sys/module/hid_apple/parameters/fnmode
永久生效?
答案1
为什么是 3?允许的参数不是仅在 0-2 范围内吗?
不,该选项3
是在 2022 年为 Linux 5.18 添加的,而您正在阅读的文档似乎是在 ~2012 年最后更新的。
$ modinfo hid-apple
parm: fnmode:Mode of fn key on Apple keyboards (0 = disabled,
1 = fkeyslast, 2 = fkeysfirst, [3] = auto) (uint)
如何才能使 /sys/module/hid_apple/parameters/fnmode 文件的更改永久生效?
它是一个模块参数,因此您可以通过 a) modprobe 或 b) 内核命令行对其进行配置。
当通过 modprobe 加载模块时,它们的参数将从文件中读取
/etc/modprobe.d
(参见man modprobe.d
手册页):options hid-apple fnmode=2
不要忘记重新运行
mkinitcpio -P
以将文件复制到 initramfs 中(因为这很可能是模块实际加载时的情况)。也可以通过内核命令行(通过 GRUB 或类似方式)指定默认参数:
linux root=... rw hid_apple.fnmode=2
(至少,我认为这应该可行。)
答案2
这不是最佳解决方案,但目前我已经这样做了:
创建 systemd 服务文件:使用
nano
具有超级用户权限的文本编辑器创建一个新的 systemd 服务文件。要运行的命令是sudo nano /etc/systemd/system/fnmode.service.
填充服务文件:服务文件需要填充以下 systemd 指令:
[Unit] Description=Set hid_apple fnmode [Service] Type=oneshot ExecStart=/bin/bash -c 'echo 2 > /sys/module/hid_apple/parameters/fnmode' [Install] WantedBy=multi-user.target
启用 systemd 服务:需要启用 systemd 服务以在系统启动时启动。可以使用以下命令完成此操作
sudo systemctl enable fnmode
。启动 systemd 服务:最后,可以立即启动 systemd 服务,而无需重新启动系统。这可以通过命令来完成
sudo systemctl start fnmode
。