Blacklisting de um módulo apenas para versões específicas do kernel?

1

Quando eu inicializo um kernel 4.4.x, eu quero ter certeza de que o driver de teste% buggy r8723au está na lista negra, em favor da linha principal muito melhorada rtl8xxxu .

No entanto, quando eu inicializo um kernel 4.2.x mais antigo, ainda precisarei usar o antigo driver r8723au .

Existe alguma maneira de colocar um módulo em blacklist somente para uma versão específica do kernel? ( UPDATE: Eu quero colocar um blacklist no módulo old , r8723au , do novo kernel, para evitar que ele substitua o novo driver.)

Ideias que tive:

  • /etc/modprobe.d/blacklist-r8723au.conf - não é possível especificar a lista negra apenas para uma versão do kernel, até onde eu sei
  • /etc/default/grub - nenhuma maneira de especificar modprobe.blacklist=r8723au para a linha de comando do kernel para algumas versões e não outras

A solução rápida e suja que eu tenho é editar manualmente /boot/grub/grub.cfg e adicionar o parâmetro da lista negra relevante a versões específicas do kernel ... mas é claro que isso será sobrescrito automaticamente na próxima vez que eu executar update-grub (talvez ao instalar um kernel Xenial / 16.04 atualizado).

    
por Dan 12.05.2016 / 01:26

1 resposta

2

O módulo rtl8xxxu não existe na versão do kernel 4.2.0-xx, tanto quanto eu sei, então a inicialização em um kernel 4.2.0-xx deve ser boa.

Não estou ciente de que os dois drivers cobrem os mesmos usb.ids, mas você pode evitar que o r8723au carregue no 4.4.0-xx renomeando os módulos. Por exemplo:

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

Você precisará repetir o processo quando uma versão atualizada do kernel, -23 talvez, for instalada pelo Update Manager.

    
por chili555 12.05.2016 / 02:06