Внесение модуля в черный список только для определенных версий ядра?

Внесение модуля в черный список только для определенных версий ядра?

Когда я загружаю ядро ​​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.

Связанный контент