Systemd

systemd:在引導時自動執行 modprobe 命令

  • August 11, 2021

我的發行版是 Fedora 17 Gnome。每次我重新啟動/重新啟動電腦時,我都需要以 root 身份執行此命令:

modprobe rt2800usb

我怎樣才能讓它永久化?

在任何使用的發行版上,systemd您都可以通過以下方式自動載入模組modules-load.d

  • 創建配置文件:

/etc/modules-load.d/rt2800usb.conf

  • 打開它並像這樣編輯(添加模組名稱):

rt2800usb

  • 下次重啟模組應該會自動載入

故障排除:

檢查systemd服務是否載入了模組:

systemctl status systemd-modules-load.service

輸出應如下所示:

systemd-modules-load.service - Load Kernel Modules
 Loaded: loaded (/usr/lib/systemd/system/systemd-modules-load.service; static)
 Active: active (exited) since Wed, 03 Apr 2013 22:50:57 +0000; 46s ago
       Docs: man:systemd-modules-load.service(8)
             man:modules-load.d(5)
Process: 260 ExecStart=/usr/lib/systemd/systemd-modules-load (code=exited, status=0/SUCCESS)

最後一行包含PID(程序 ID)和退出程式碼。status=0/SUCCESS表示模組已成功插入,通過以下方式確認:

journalctl -b _PID=260

輸出為:

Apr 03 22:50:57 mxhst systemd-modules-load[260]: Inserted module 'rt2800usb'

如果失敗,systemctl輸出如下所示:

systemd-modules-load.service - Load Kernel Modules
 Loaded: loaded (/usr/lib/systemd/system/systemd-modules-load.service; static)
 Active: failed (Result: exit-code) since Wed, 03 Apr 2013 22:50:59 +0000; 43s ago
       Docs: man:systemd-modules-load.service(8)
             man:modules-load.d(5)
Process: 260 ExecStart=/usr/lib/systemd/systemd-modules-load (code=exited, status=1/FAILURE)

journalctl -b報告:

Apr 03 22:50:59 mxhst systemd-modules-load[260]: Failed to find module 'fakert2800usb'

當退出程式碼為時0/SUCCESS,表示您的模組已成功插入;跑步

lsmod | grep rt2800

應確認:

rt2800usb              26854  0 
rt2x00usb              19757  1 rt2800usb
rt2800lib              64762  1 rt2800usb
rt2x00lib              66520  3 rt2x00usb,rt2800lib,rt2800usb
mac80211              578735  3 rt2x00lib,rt2x00usb,rt2800lib

如果lsmod輸出未確認(儘管服務退出程式碼為0/SUCCESS),則意味著在被modules-load.service. 一個可能的原因是將模組列入黑名單的另一個*.conf文件。尋找如下一行:

blacklist rt2800usb

/etc/modprobe.d/*.conf,/usr/lib/modprobe.d/*.conf/run/modprobe.d/*.conf並註釋掉/刪除它。

引用自:https://unix.stackexchange.com/questions/71064