
La compilación del módulo kernel resultó en un error
Saltar la generación de BTF [nombre de mi módulo] debido a la falta de disponibilidad de vmlinux.
Esta operación funcionó bien en mi versión anterior 20.10 de Ubuntu con kernel 5.8.0.55*. Recientemente actualicé a la versión 21.04 de Ubuntu y la compilación de mi módulo del kernel dio este error.
Respuesta1
Esto funcionó para mí en ubuntu 22.04. Ya no aparece el error "Omitiendo la generación de BTF...".
apt install dwarves
cp /sys/kernel/btf/vmlinux /usr/lib/modules/`uname -r`/build/
Por supuesto, primero debe verificar que su vmlinux esté efectivamente en formato /sys/kernel/btf
.
Respuesta2
Bien, esta es una especie de respuesta.
Anteriormente fallaba el inicio de cualquier máquina virtual en mi Ubuntu 21.10. El problema desde la perspectiva de VMWare era
Could not open /dev/vmmon: No such file or directory.
Asegúrese de que el módulo del kernel `vmmon' esté cargado.
(y vmnet
también)
Este comando: sudo vmware-modconfig --console --install-all
dio este error (¡y todavía lo hace!)
Skipping BTF generation for /tmp/modconfig-9O1P2c/vmmon-only/vmmon.ko due to unavailability of vmlinux
SOLUCIÓN
En mi situación, estaba moviendo una máquina virtual desde una plataforma Windows a una computadora portátil Ubuntu instalada con arranque seguro.
Aunque la compilación anterior no fue perfecta, ESTABA CREANDO los binarios necesarios, pero debido a que no están firmados, no se pueden cargar en el momento del arranque de Ubuntu.
Entonces recibí los mensajes de error BTF que pensé que estaban impidiendo que VMNware se iniciara, pero estaba equivocado.
Este enlace https://github.com/mkubecek/vmware-host-modules/issues/87#issuecomment-800051833 explica la tortura necesaria para firmar los binarios
# 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
Una vez que se informa al UEFI BIOS y se firman los binarios del controlador, VMware puede funcionar bien y el mundo se salva nuevamente.
Así que no solucioné totalmente el problema de compilación, pero parece que estaba combinando este mensaje de error con la imposibilidad de ejecutar VMware, lo cual estaba mal.
Respuesta3
Cambiaron la ubicación del archivo 'vmlinux.xz'
intentarln -sf /usr/lib/modules/$(uname -r)/vmlinux.xz /boot/
Aquí hay una publicación de Reddit que va con un poco más de detalle.