Oracle VirtualBox is my go to solution to efficiently and quickly test different Linux and Unix operating systems. It is one of the easiest and simplest virtualization software. Today, I upgraded to Oracle VirtualBox 6.1.16 in my Ubuntu desktop. When starting a VM, I encountered with this error - Failed to load ring-0 module VBoxEhciR0.r0 for device usb-ehci (VERR_SYMBOL_VALUE_TOO_BIG)
.
Here is the full error message:
Failed to load R0 module /usr/lib/virtualbox/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack/linux.amd64/VBoxEhciR0.r0: RTLdrGetBits failed (VERR_SYMBOL_VALUE_TOO_BIG). Failed to load ring-0 module 'VBoxEhciR0.r0' for device 'usb-ehci' (VERR_SYMBOL_VALUE_TOO_BIG).
I won't say VirtualBox works just fine all the time. I had a few issues now and then. But they are easily solvable. The above error message is new to me. It seems like Virtualbox is unable to load a ring-0 module named VBoxEhciR0.r0
for the USB interface.
The root cause of "Failed to load R0 module" error could be the mismatch in the virtualbox version and extension pack version. Let us see how to troubleshoot this problem in Linux.
How To Fix "Failed to load ring-0 module VBoxEhciR0.r0 for device usb-ehci" Error in VirtualBox
To solve the error "Failed to load ring-0 module VBoxEhciR0.r0 for device usb-ehci", first make sure the version of extension pack matches with Virtualbox's version. Please note that the version need not to be exactly same. The extension pack version should be the latest available (either same as or greater than the virtualbox) version.
To check Virtualbox version from commandline, run:
$ VBoxManage --version
Or use lowercase letters:
$ vboxmanage --version
6.1.16_Ubuntur140961
Let us check extension pack version:
$ vboxmanage list extpacks
Sample output:
Extension Packs: 2
Pack no. 0: VNC
Version: 6.1.16
Revision: 140961
Edition:
Description: VNC plugin module
VRDE Module: VBoxVNC
Usable: true
Why unusable:
Pack no. 1: Oracle VM VirtualBox Extension Pack
Version: 6.1.6
Revision: 137129
Edition:
Description: Oracle Cloud Infrastructure integration, USB 2.0 and USB 3.0 Host Controller, Host Webcam, VirtualBox RDP, PXE ROM, Disk Encryption, NVMe.
VRDE Module: VBoxVRDP
Usable: true
Why unusable:
There it is! The extension pack version is different from the Virtualbox version. In my case, Virtuabox version is 6.1.16 and the extension pack version is 6.1.6, which is bit older version.
As I already mentioned, you need to update Extension pack version to latest available version in-order to solve the "Failed to load R0 module" error in Virtualbox.
Download the latest Extension pack version from the Virtualbox downloads page. Go to the download location and run the following command to install virtualbox extension pack in Linux:
$ sudo vboxmanage extpack install --replace Oracle_VM_VirtualBox_Extension_Pack-6.1.18.vbox-extpack
The above command will install the new Extension pack even if an older version already exists.
Once the installation is completed, check the Virtualbox and Extension pack version to see if they matches.
Well, they are almost same. Restart Oracle Virtualbox manager (if it is already open). You can now able to start virtual machines without any issues.
If the aforementioned steps still doesn't fix this issue, open the Virtual machine's Settings window. Go to USB section and downgrade the USB controller to USB 1.1 (OHCI).
Virtual machines should probably start now.
Good luck!
Related read:
- How To Fix “Kernel driver not installed (rc=-1908)” VirtualBox Error In Ubuntu
- Solve “Result Code: NS_ERROR_FAILURE (0x80004005)” VirtualBox Error In Arch Linux
- VirtualBox Error – Cannot register the DVD image because UUID already exists
- Fix “hard disk with UUID already exists” Issue In VirtualBox
- Solve “Cannot change group vboxusers for device /dev/vboxdrv” Virtualbox Error
- Virtualbox Guru Meditation Critical Error In Linux
5 comments
Many thanks for a VERY clear description and fix. Saved me much time and effort.
Glad I could help.
Thank you.
Excellent!! Thanks.
Both solutions didn’t work for me. There was no mismatch and downgrading the USB controller also didn’t work. 🙁