web-dev-qa-db-ja.com

起動時にドライバーを起動する適切な方法は何ですか?

ドキュメントによると、手動で開始する必要があるイーサネットカードのインストールについて(全文 ここ )を成功させました

# modprobe e1000bp

このドライバの起動をブート時間に実行したい。

これを達成するための適切な方法とは何ですか?

コマンドを/etc/rc.localに追加することを考えましたが、PPTPまたはOpenVPN接続の場合、よりクリーンであるはずの別の方法があるので、同じことが伝えられるかどうか疑問に思いましたドライバーの起動用。

Debianおよび派生物(Ubuntu、Mint、elementary、…)では、 /etc/modules (1行に1つ、引数を指定できます)にリストされているモジュールが起動時にロードされます。

Systemdベースのシステムでは、 /etc/modules-load.d/*.conf (1行に1つ)にリストされているモジュールが起動時にロードされます。

ただし、通常は明示的にモジュールをロードする必要はありません。ほとんどのハードウェアでは、Linuxはハードウェアを自動的に検出し、適切なモジュールをロードします。 Linuxは、モジュールのソースコードの宣言から入力された/lib/modules/VERSION/modules.aliasに格納されているデータベースから適切なモジュールを見つけます。 この回答 プロセス全体を説明しています。

コンパイルした.koファイルを/lib/modules/VERSION/の下のどこかに置き(それを見つけるためにmodprobeを取得するには、とにかくそれを行う必要があります)、ルートとしてdepmod -aを実行します。これにより、modules.aliasesデータベースが更新されます。その後、カーネルがハードウェアを検出したとき(または、ハードウェアは起動時間の早い段階で検出されるため、モジュールのロードプロセスが開始されたとき)に、モジュールが自動的にロードされます。

ハードウェアがディストリビューションによって提供されるモジュールによってもサポートされているが、ディストリビューションのドライバーにバグがある場合、モジュールの1つを強制的に使用する簡単な方法はないと思います。この場合、コンパイルしたモジュールを/etc/modulesに追加し、blacklist MODULE_NAME行を /etc/modprobe.conf に追加して、標準モジュールをブラックリストに登録する必要があります。

ドライバーを/etc/modules(Debian、Ubuntu、Mintなど)または/etc/modules.conf(Fedora、RHEL、CentOS、Arch Linuxなど)ファイルに入れます。

1
mdpc