systemd:ブート時にmodprobeコマンドを自動化


20

私のディストリビューションはFedora 17 Gnomeです。コンピューターを再起動/再起動するたびに、このコマンドをルートとして実行する必要があります。

modprobe rt2800usb

永続化するにはどうすればよいですか?


1
こんにちは、最初の質問に感謝します。参照しているLinuxディストリビューションに言及できればいいと思います:)
Bonsi Scott

1
@BonsiScottおそらくディストリビューションも質問テキストに追加されるべきでしょうが、タグにはFedoraと書かれています。
13

(それがFedoraの固有ではないので、また、私自身の答えを削除)
Bonsiスコット

@BonsiScott、あなたの答えは他の人にも役立つかもしれません
...-vonbrand

回答:


34

どのディストリビューションを使用してい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ます。考えられる原因の1つは*.conf、モジュールをブラックリストに登録した別のファイルです。次のような行を探します。

blacklist rt2800usb

/etc/modprobe.d/*.conf/usr/lib/modprobe.d/*.confまたは/run/modprobe.d/*.confコメントアウト/削除してください。


これを実行しましたが、再起動時にモジュールがロードされませんでした。
somethingSomething

ルートがファイルの所有者であるためですか?
somethingSomething

再起動するとき、まだmodprbeコマンドを実行する必要があります。リストはmodprobeコマンドを実行した後であるため、リストされていませんか?
somethingSomething

5

起動時にモジュールをロードするには、ファイルを作成します/etc/modules-load.d/; このファイルには任意の名前を付けることができますが、末尾はでなければなりません.conf。Wi-Fiドライバーの場合、たとえばファイルを作成できます/etc/modules-load.d/rt2800.conf

ファイルに、ロードするモジュールの名前を次のように1行追加します。

rt2800usb

カーネルモジュールのArch Wikiページに詳細情報があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.