O módulo do kernel modificado do Ubuntu 15.10 não será carregado - deve ser feito manualmente

0

Um módulo chamado alx, que controla minha Ethernet Qualcomm AR8161, é carregado na inicialização e é visível com o lsmod.

Este módulo é buggy. Eu encontrei as correções, baixei o código-fonte para o meu kernel em execução, fiz o patch dos arquivos alx / e depois de descobrir como, reconstruí o arquivo do módulo alx.ko. Depois de rmmod'ing o antigo alx e modprobe -v minha nova versão, ethernet começou a funcionar perfeitamente. Viva! Problema resolvido.

O incômodo é que, se eu fizer uma troca direta do alx.ko original com o meu novo alx.ko, ele ainda carrega o antigo no boot ?? Além disso, se eu remover completamente os arquivos all alx.ko do / lib / modules, o módulo alx STILL será carregado no momento da inicialização ??? Então, a questão é: de onde ele está tirando isso, e como faço para que o sistema carregue a minha versão de substituição (exatamente o mesmo nome de arquivo)?

No momento, eu emito rmmod alx; modprobe -v alx no momento da inicialização, mas prefiro que isso aconteça automaticamente.

    
por Pingers 22.01.2016 / 15:13

2 respostas

0

A maneira normal de fazer isso é nomear o novo módulo com um nome ligeiramente diferente, como alx_fixed.ko, e colocar o original na lista negra. Instruções sobre como lista negra de um módulo pode ser encontrado aqui. link Depois de colocar o novo módulo em / lib / modules / your-kernel-versão / kernel / drivers / net /, você precisa executar o comando "sudo depmod -a" para atualizar a lista de módulos instalados.

Eu duvido que este seja o caso de um driver ethernet, mas alguns módulos são carregados no momento da inicialização, então você pode precisar executar "update-initramfs" também. link

Quanto a onde os módulos vêm, mesmo que você os tenha excluído? Qual versão do kernel você está executando? Tem certeza de que você os excluiu da versão correta do kernel? Em geral, a exclusão de arquivos do sistema é uma má ideia porque pode causar um sistema instável.

    
por 22.01.2016 / 15:59
0

Eu coloquei o novo módulo em /lib/modules/4.2.0-27-generic/updates/dkms/ e executei depmod -av | grep alx e update-intramfs -uv | grep alx verificando que ele estava apenas captando meu módulo modificado, não o original. Nos logs de inicialização subsequentes: alx: a verificação do módulo falhou: assinatura e / ou chave requerida ausente - corrompendo o kernel, mas ele carrega de qualquer maneira e resolve o problema.

    
por 23.01.2016 / 14:14