特定のカーネルバージョンのみのモジュールをブラックリストに登録しますか?

特定のカーネルバージョンのみのモジュールをブラックリストに登録しますか?

r8723au4.4.xカーネルを起動するときに、バグのあるステージングドライバがブラックリストに登録され、大幅に改善されたメインラインドライバが優先されるようにしたい。rtl8xxxu

ただし、古い 4.2.x カーネルを起動する場合は、古いドライバーを使用する必要がありますr8723au

モジュールをブラックリストに登録する方法はありますかのみ特定のカーネルバージョン用ですか?(アップデート:ブラックリストに登録したい古いモジュール、、r8723auから新しいカーネルが新しいドライバーから引き継ぐのを防ぐためです。

私が考えたアイデア:

  • /etc/modprobe.d/blacklist-r8723au.conf-- 私の知る限り、1つのカーネルバージョンのみにブラックリストを指定することはできません
  • /etc/default/grubmodprobe.blacklist=r8723au--一部のバージョンではカーネルコマンドラインを指定する方法がなく、他のバージョンでは指定できない

私が思いついた手っ取り早い解決策は、/boot/grub/grub.cfg関連するブラックリスト パラメータを手動で編集して特定のカーネル バージョンに追加することですが、もちろん、これは次回実行するときに自動的に上書きされますupdate-grub(おそらく更新された Xenial/16.04 カーネルをインストールするとき)。

答え1

私の知る限り、モジュール rtl8xxxu はカーネル バージョン 4.2.0-xx には存在しないので、4.2.0-xx カーネルで起動しても問題ないはずです。

2 つのドライバーが同じ usb.ids をカバーしているかどうかはわかりませんが、モジュールの名前を変更することで r8723au が 4.4.0-xx にロードされないようにすることができます。たとえば、次のようになります。

sudo mv /lib/modules/4.4.0-21-generic/kernel/drivers/staging/rtl8723au/r8723au.ko  /lib/modules/4.4.0-21-generic/kernel/drivers/staging/rtl8723au/r8723au.bak

sudo mv /lib/modules/4.4.0-22-generic/kernel/drivers/staging/rtl8723au/r8723au.ko  /lib/modules/4.4.0-22-generic/kernel/drivers/staging/rtl8723au/r8723au.bak

Update Manager によって更新されたカーネル バージョン (おそらく -23) がインストールされた場合は、このプロセスを繰り返す必要があります。

関連情報