Updated: January 4, 2020
By and large, my VirtualBox experience is largely pleasant. There are some problems here and there, sometimes serious problems - like the bridged networking issue - but overall, it offers a useful, flexible environment to test operating systems and software quickly, efficiently, smartly. Network isolation, snapshots, Bob's your uncle.
Then, all of a sudden, a few days back I tried to launch a virtual machine, and it wouldn't. The error message contained the following: Failed to load R0 module ... for device 'usb-ehci' (VERR_SYMBOL_VALUE_TOO_BIG). Well, that sounds rather cryptic. Let's troubleshoot.
Problem in more detail
Here's the full message shown on the screen:
Failed to load R0 module
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).
From what we see here, it would appear that VirtualBox is unable to load a module into memory. This seems to be related to the USB functionality - in this case, the USB 2.X/3.X functionality to be more precise. The error appears to be a mismatch between whatever the VirtualBox main component expects and what this specific module provides (one of the symbols).
On its own, this doesn't sound very helpful - but it is. As it happens, VirtualBox provides extended functionality, namely support for USB 2.0 and USB 3.0 devices, VirtualBox RDP, disk encryption, NVMe and PXE boot for Intel cards via its (Oracle VM) VirtualBox Extension Pack. Whenever there's an update for VirtualBox, there ought to be an update for the pack, too.
But there's nothing that prevents you from upgrading your VirtualBox software separately, and then not initiate an upgrade for the extension pack, too. It is quite possible - and even likely - that you may end up with VirtualBox and the pack at two different versions. I've seen this myself, and 99% of the time, this didn't seem to cause any problems with the virtual machine operations. However, in this particular case, the mismatch seems to be too great for VirtualBox to continue, hence the failure.
Once we understand the issue, the fix is seemingly trivial - upgrade and/or match the VirtualBox and Extension Pack versions. You will see a prompt for the upgrade when you launch the program, or if you've dismissed it, you can just download the pack from the official site and run it manually. Once the upgrade is done, re-launch your virtual machines. Things ought to be work smoothly now. Done.
This is a short, simple little tutorial. It addresses the problem of a symbol mismatch between VirtualBox and the USB module available as part of its Extension Pack. If the two are different, there could be a problem in requested functionality, and the virtual machine may not start. The fix is to simply upgrade/match the two software components - or alternatively, disable the affected functionality, but that's not really what we want.
I hope you'll find this useful. I would like VirtualBox error messages to be more descriptive, or to have an even faster method of obtaining and upgrading the extension packs. For now though, carefully reading through logs can yield useful pointers when VM errors do occur, so don't just dismiss them blindly. Anyway, we're done here.