4

试图在 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 下根本不存在。

保持该设置的正确方法是什么?

4

2 回答 2

7

有 3 种方法可以实现这一目标:

  1. rc.local (仍然有效,添加行后记得 chmod +x)
  2. 系统
  3. udev 规则(我自己的首选)

使用系统:

# /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/
于 2015-01-27T08:49:26.360 回答
2

使用 tmpfiles.d 机制,例如将 apple-hid.conf 放到 /etc/tmpfiles.d 中,内容如下

w /sys/module/hid_apple/parameters/fnmode - - - - 2
于 2018-06-01T14:06:30.733 回答