カーネルに組み込まれたドライバ、つまりモジュールではなくドライバをブロックする方法

カーネルに組み込まれたドライバ、つまりモジュールではなくドライバをブロックする方法

nouveauつまり、Linuxカーネルソースディレクトリで作業を実行するのではなく、カーネルに組み込まれているドライバを使用してLinuxカーネルを設定してコンパイルしました<*><M>make menuconfig

今では別のドライバを使用する予定ですnouveaunouveauモジュールの場合は、blacklist nouveauinsideと同じ行を追加します。/etc/modprobe.d/blacklist.conf

今どうすればいいですか?

答え1

これを知っている人はあまりいませんが、カーネルに組み込まれているドライバをブラックリストに追加する方法は明らかです。

まず、実行する必要がありますlsmod | grep <driver_name>。結果が表示されない場合はおめでとうございます。ドライバはカーネルに直接組み込まれているため、一般的なブラックリスト方法は機能しません。代わりに、ドライバの初期化機能をブラックリストに追加する必要があります。これを行うには、initcall_blacklist=<driver_init>カーネルブートオプションを追加する必要があります。ドライバの初期化ドライバ初期化機能です。どの名前を使用するかを調べるには、カーネルのソースコードを調べる必要があります。具体的な例として、initcall_blacklist=vmd_drv_init起動オプションを使用すると、Intelのボリューム管理デバイスドライバがアクティブボリューム管理デバイスコントローラをロードしてバインドするのを防ぐことができます。

答え2

次の構文を使用して起動するときは、grubコマンドライン(Linux行)から一時的にブラックリストに追加することもできます。

module_to_blacklist.blacklist=yes

または

modprobe.blacklist=module_to_blacklist

変更を永久に適用するには、grub、cfgを変更する必要があります。

このソリューションは一部のモジュールでは機能しません。

関連情報