Ignorando a geração BTF xxx. devido à indisponibilidade do vmlinux no Ubuntu 21.04

Ignorando a geração BTF xxx. devido à indisponibilidade do vmlinux no Ubuntu 21.04

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 vmnettambém)

Este comando: sudo vmware-modconfig --console --install-alldeu 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

informação relacionada