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