Skip to content
Advertisement

The vboxdrv kernel module is not loaded (Unknown rela relocation – debian buster) [closed]

Virtualbox fails to load kernel module after updating Debian from Stretch to Buster. I have Virtualbox 6.1 and the next kernel version:

JavaScript

Also, I have legacy support on my Bios and secureboot disabled. Debian is also configured to boot from Legacy

I’ve seen a bunch of similar cases however all of the proposed workarounds don’t work for me.

I’ve tried the next solutions:

JavaScript

JavaScript

JavaScript

JavaScript

JavaScript

Also i’ve tried another possible workarounds:

  • Reboot my PC and try to perform modprobe and vboxconfig commands
  • run virtualbox as root
  • install Virtualbox 5.2, 6.0, 6.1 from Debian repo
  • Install the latest Virtualbox directly from the .deb package
  • sudo /opt/VirtualBox/vboxdrv.sh force-reload
  • sudo /opt/VirtualBox/vboxdrv.sh setup

All the failed operations related to vboxdrv kernel module returning in stdout or in dmesg this message:

JavaScript

Advertisement

Answer

The relocation errors look like a compatibility issue between the running kernel and the binutils version that was used when building modules. See these discussions:

Exec format error and Unknown rela relocation:

This kernel commit looks relevant — 0x02 and 0x04 are R_X86_64_PC32 and R_X86_64_PLT32 respectively — but you don’t have that in your kernel. It looks like you’ve upgraded to binutils >= 2.31, so your linker has decided to use R_X86_64_PLT32 relocations now.

Confirmed, downgrading binutils to 2.30 solves the problem

On Stack Overflow, see binutils version

User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement