web-dev-qa-db-ja.com

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

Linuxカーネルソースディレクトリー内で<*>を実行するとき、<M>ではなくmake menuconfigを使用して、nouveauドライバー組み込みカーネルでLinuxカーネルを構成およびコンパイルしました。

今、私はnouveauではなく別のドライバを使用するつもりです。 nouveauがモジュールの場合、blacklist nouveau内に/etc/modprobe.d/blacklist.confのような行を追加します

私は今どうすればいい。

7
user3405291

構文で起動するときに、grubコマンドライン(linux行)で一時的にブラックリストに登録することもできます

module_to_blacklist.blacklist=yes

OR

modprobe.blacklist=module_to_blacklist

変更を永続的にするには、grub、cfgを変更する必要があります。

注意してください、このソリューションはいくつかのモジュールでは機能しません

6
SHW

これについて多くの人が知っているわけではありませんが、カーネルに組み込まれているドライバーをブラックリストに登録する方法は絶対にあります。

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

8
Dave