Когда я загружаю ядро 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).
Модуль 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, возможно, будет установлена Менеджером обновлений.