web-dev-qa-db-ja.com

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

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

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

特定のカーネルバージョンのモジュール only をブラックリストに登録する方法はありますか? (UPDATE: old モジュールr8723au new カーネル、新しいドライバーから引き継がれないようにします。)

私が持っていたアイデア:

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

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

1
Dan

私の知る限り、モジュール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

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

2
chili555