
A compilação do módulo do kernel resultou em um erro
Ignorando a geração de BTF [nome do meu módulo] devido à indisponibilidade do vmlinux.
Esta operação funcionou bem na minha versão anterior 20.10 do Ubuntu com kernel 5.8.0.55*. Atualizei recentemente para a versão 21.04 do Ubuntu - e a construção do meu módulo do kernel apresentou este erro.
Responder1
Isso funcionou para mim no Ubuntu 22.04. Não recebo mais o erro 'Ignorando geração de BTF...'.
apt install dwarves
cp /sys/kernel/btf/vmlinux /usr/lib/modules/`uname -r`/build/
Claro, primeiro você precisa verificar se o seu vmlinux está realmente no formato /sys/kernel/btf
.
Responder2
OK, esta é uma espécie de resposta.
Anteriormente, o início de qualquer máquina virtual no meu Ubuntu 21.10 falhou. O problema da perspectiva do VMWare era
Could not open /dev/vmmon: No such file or directory.
Por favor, certifique-se de que o módulo do kernel `vmmon' esteja carregado.
(e vmnet
também)
Este comando: sudo vmware-modconfig --console --install-all
deu este erro (e ainda dá!)
Skipping BTF generation for /tmp/modconfig-9O1P2c/vmmon-only/vmmon.ko due to unavailability of vmlinux
SOLUÇÃO
Na minha situação, eu estava mudando uma máquina virtual de uma plataforma Windows para um laptop Ubuntu instalado com inicialização segura
Embora a compilação acima não tenha sido perfeita, ela ESTAVA CRIANDO os binários necessários, mas como eles não estão assinados, eles não podem ser carregados no momento da inicialização do Ubuntu
Então recebi mensagens de erro BTF que pensei que estavam impedindo o VMNware de iniciar, mas estava errado.
Esse link https://github.com/mkubecek/vmware-host-modules/issues/87#issuecomment-800051833 explica a tortura necessária para assinar os binários
# generate a key openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=VMware/" # import to UEFI database sudo mokutil --import MOK.der (generate a password need next step) # reboot system and import in UEFI BIOS # (use same password) sudo shutdown -r now # once rebooted need to sign the binaries sudo kmodsign sha256 ./MOK.priv ./MOK.der $(modinfo -n vmmon) sudo kmodsign sha256 ./MOK.priv ./MOK.der $(modinfo -n vmnet) # on reboot new signed binaries used sudo shutdown -r now # now good to start VMware and use any VM
Depois que o UEFI BIOS for informado e os binários do driver assinados, o VMware poderá operar bem e o mundo estará salvo novamente
Portanto, não corrigi totalmente o problema de compilação, mas parece que estava confundindo essa mensagem de erro com a incapacidade de execução do VMware, o que estava errado.
Responder3
Eles mudaram a localização do arquivo ‘vmlinux.xz’
tentarln -sf /usr/lib/modules/$(uname -r)/vmlinux.xz /boot/
Aqui está uma postagem do reddit que dá um pouco mais de detalhes