尝试修复 CentOS 7 上苹果键盘上的 fn 键,我已经设置了
$ cat /etc/modprobe.d/hid_apple.conf
options hid_apple fnmode=2
重启后
$ cat /sys/module/hid_apple/parameters/fnmode
1
互联网上的建议包括运行 update-initramfs,这在 Centos 7 上似乎不存在,并在 /etc/rc.local 中执行“echo 2 >> /sys/module/hid_apple/parameters/fnmode”,这当然在 systemd 下已经不存在了。
保持该设置的正确方法是什么?
您可以通过 3 种方式实现这一目标:
使用 systemd:
# /etc/systemd/system/hid_apple_fnmode_set.service
[Unit]
Description=Set Apple keyboard fn mode
After=multi-user.target
[Service]
ExecStart=/usr/bin/bash -c '/usr/bin/echo 2 > /sys/module/hid_apple/parameters/fnmode'
[Install]
WantedBy=graphical.target
接下来使服务在启动时运行。
sudo systemctl enable hid_apple_fnmode_set.service
使用 udev 规则:
# /etc/udev/rules.d/99-hid_apple.rules
SUBSYSTEM=="module", DRIVER=="hid_apple", ATTR{parameters/fnmode}="2"
systemd 脚本和 udev 规则是与一些疯狂的猜测放在一起的,可能需要一些调整才能工作。以下命令可以帮助调整和调试 udev 规则:
udevadm info --attribute-walk --path=/module/hid_apple
udevadm test /sys/module/hid_apple/
使用 tmpfiles.d 机制,例如将 apple-hid.conf 放置到 /etc/tmpfiles.d 中,内容如下
w /sys/module/hid_apple/parameters/fnmode - - - - 2
使用crontab。
以 root 身份输入以下命令:
$ crontab -e
这将打开您选择的 crontab 编辑器。在其中输入以下内容:
@reboot echo 2 > /sys/module/hid_apple/parameters/fnmode
保存并退出编辑器。您的设置将在每次重新启动时完成。希望这有帮助。