僅將特定核心版本的模組列入黑名單?

僅將特定核心版本的模組列入黑名單?

當我啟動 4.4.x 核心時,我想確保有問題的暫存驅動程式r8723au被列入黑名單,以支援經過大幅改進的主線rtl8xxxu

但是,當我啟動較舊的 4.2.x 核心時,我仍然需要使用舊的r8723au驅動程式。

有沒有辦法將模組列入黑名單僅有的對於特定的核心版本? (更新:我想將其列入黑名單老的模組,r8723au,來自新的內核,以防止它接管新驅動程式。

我的想法:

  • /etc/modprobe.d/blacklist-r8723au.conf-- 據我所知,不可能只為一個核心版本指定黑名單
  • /etc/default/grub-- 無法modprobe.blacklist=r8723au為某些版本指定內核命令列,而其他版本則不行

我得到的快速而骯髒的解決方案是手動編輯/boot/grub/grub.cfg相關的黑名單參數並將其添加到特定的內核版本......但是當然這會在我下次運行時自動覆蓋update-grub(也許在安裝更新的Xenial/16.04 核心時) 。

答案1

據我所知,模組 rtl8xxxu 在核心版本 4.2.0-xx 中不存在,因此引導到 4.2.0-xx 核心應該沒問題。

我不知道這兩個驅動程式覆蓋相同的 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)時,您將需要重複此過程。

相關內容