如何使用 systemd 在启动时加载 i2c-dev 模块

rco*_*rre 5 linux display external-display arch-linux kernel-module

我想用 来控制我的显示器亮度ddcutil,这需要i2c-dev加载模块

\n\n

它不会自动加载,因此我按照ArchWiki 上的说明尝试使用 systemd 自动加载它。systemd-modules-load.service没有错误,但启动时未加载该模块。

\n\n
# Not loaded\n[rcorre@midova ~]$ sudo ddcutil setvcp 10 10\nDisplay not found\n\n# But I\'ve got a file in modules-load.d\n[rcorre@midova ~]$ cat /etc/modules-load.d/i2c-dev\ni2c-dev\n\n# The logs have always been rotated on boot ...\n[rcorre@midova ~]$ sudo systemctl status systemd-modules-load\n\xe2\x97\x8f systemd-modules-load.service - Load Kernel Modules\n   Loaded: loaded (/usr/lib/systemd/system/systemd-modules-load.service; static; vendor preset: disabled)\n   Active: active (exited) since Thu 2019-09-05 06:51:35 EDT; 14min ago\n     Docs: man:systemd-modules-load.service(8)\n           man:modules-load.d(5)\n Main PID: 449 (code=exited, status=0/SUCCESS)\n    Tasks: 0 (limit: 4915)\n   Memory: 0B\n   CGroup: /system.slice/systemd-modules-load.service\n\nWarning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.\n\n# ... so I try restarting the service\n[rcorre@midova ~]$ sudo systemctl restart systemd-modules-load\n[rcorre@midova ~]$ sudo systemctl status systemd-modules-load\n\xe2\x97\x8f systemd-modules-load.service - Load Kernel Modules\n   Loaded: loaded (/usr/lib/systemd/system/systemd-modules-load.service; static; vendor preset: disabled)\n   Active: active (exited) since Thu 2019-09-05 07:10:19 EDT; 14s ago\n     Docs: man:systemd-modules-load.service(8)\n           man:modules-load.d(5)\n  Process: 8189 ExecStart=/usr/lib/systemd/systemd-modules-load (code=exited, status=0/SUCCESS)\n Main PID: 8189 (code=exited, status=0/SUCCESS)\n\nSep 05 07:10:19 midova systemd[1]: Stopping Load Kernel Modules...\nSep 05 07:10:19 midova systemd[1]: Starting Load Kernel Modules...\nSep 05 07:10:19 midova systemd[1]: Started Load Kernel Modules.\n\n# Still no luck\n[rcorre@midova ~]$ sudo ddcutil setvcp 10 10\nDisplay not found\n\n# But I can load it manually\n[rcorre@midova ~]$ sudo modprobe i2c-dev\n[rcorre@midova ~]$ sudo ddcutil setvcp 10 10\n
Run Code Online (Sandbox Code Playgroud)\n

use*_*686 2

\n

每个配置文件都以/etc/modules-load.d/<program>.conf.

\n
\n\n

module-load.d \xe2\x80\x93.conf需要后缀,其他文件将被忽略。(这就是程序区分实际配置和剩余备份的方式,例如各种发行版的 .pacnew/.rpmnew 文件。)

\n