Kernel 5.8, VirtualBox and snapshot 20200810

Threads like:

https://www.virtualbox.org/ticket/19644

and

https://lists.opensuse.org/opensuse-kernel/2020-08/msg00000.html

have me leery of dup’ing to the 20200810 snapshot, which brings in the 5.8 kernel with VirtualBox. Have any of you fellow VirtualBox-in-Tumbleweed users dup’d to this snapshot? Is VB running well with 5.8, guest additions and all?

If so, I’ll eagerly dup, too. But I thought I should check first.

Just did a “zypper dup”:

Operating System: openSUSE Tumbleweed 20200810
KDE Plasma Version: 5.19.4
KDE Frameworks Version: 5.72.0
Qt Version: 5.15.0
Kernel Version: 5.8.0-1-default
OS Type: 64-bit

and now virtualbox 6.1.12-1.3 (from Tumbleweed Oss repository) fails with

...

Failed to load R0 module /usr/lib/virtualbox/VMMR0.r0: SUP_IOCTL_LDR_OPEN failed (VERR_NO_EXEC_MEMORY).

Failed to load VMMR0.r0 (VERR_NO_EXEC_MEMORY).

Fehlercode: NS_ERROR_FAILURE (0x80004005)
Komponente: ConsoleWrap
Interface: IConsole {872da645-4a9b-1727-bee2-5585105b9eed}


so, might be better to wait …

Regards

susejunky

Yep, same issue here. I’m not dying to get VBox up today, and would anticipate an update shortly. One thing that might work is simply booting the last kernel, 5.7.11, and running VBox under that kernel until a fix comes up.

https://forums.opensuse.org/showthread.php/542638-Virtualbox-Crash-with-kernel-5-8

OK, after reading the VBox bug page at #19644 (Linux kernel version: 5.8 - we need changes (fixed in 6.1.14)) – Oracle VM VirtualBox, it looks like the 5.8.x kernel broke several VBox calls that allocate virtual memory. There’s no easy fix, and the Linux kernel team apparently won’t allow the memory calls needed on the kernel end. VBox is working on solutions, but don’t know how long that will take. They seem to be close, but you never know.

It also kills virtualbox guests running Tumbleweed.

Going back to 5.7 does not fix it.

I got the Tumbleweed guest with 5.8 Kernel working again by zypper rm virtualbox* and changing the video back to VBoxSVGA.

For those that do not know how to get to the console in VirtualBox it is right CTRL + Insert + F1 - It might take 2 or 3 tries to come up.

There is some sort of Virtualbox stuff built into Tumbleweed for guests.

Thanks for the replies, everyone. Not good news, at least not yet, but still: thanks for letting me know.

After reading your posts and the thread linked by Sauerland, it looks like:

  • My fears are confirmed: zypper dup to kernel 5.8 will break VirtualBox.

  • Herbster0815 got VB to work in Tumbleweed by installing a VB development version:

https://www.virtualbox.org/download/testcase/VirtualBox-6.1.97-139689-Linux_amd64.run

Question:

I’d prefer to wait for a functional-with-5.8 version of VirtualBox to be available through zypper dup. If I get impatient (or desperate), though, I may want to install the development version .run file.

I regularly update the nvidia driver with:

sh NVIDIA-Linux-version_number.run

but have never updated VirtualBox that way. Would the procedure be the same:

sh VirtualBox-6.1.97-139689-Linux_amd64.run

or would I need to take additional steps?

For now I’ve protected kernel and VirtualBox from updating as I need VB for some stuff I’m doing. Not ideal I know but hopefully in a few days VB will come up with a fix.

Stuart

First some background: For several cycles, the kernel developers have been restricting the allocation of executable memory for out-of-kernel modules. With 5.8, the method used by VirtualBox is no longer accessible. The resulting error is as follows:

Failed to open a session for the virtual machine <VM Name>

"Failed to load R0 module /usr/lib/virtualbox/VMMR0.r0: SUP_IOCTL_LDR_OPEN failed (VERR_NO_EXEC_MEMORY).

Failed to load VMMR0.r0 (VERR_NO_EXEC_MEMORY)."

I tried to find workarounds for this problem, but the only one I found requires modifying the kernel, which the openSUSE developers would not make part of the distribution [1][2]. I expect that Oracle will likely find a solution using libvirt, but a rewrite of that magnitude is beyond my capabilities.

The current solutions are as follows:

  1. Remain with kernel 5.7.
  2. Convert from VirtualBox to KVM.[3] The quoted web page covers the issue, and I will not discuss it further.
  3. It is reported that the test builds at [4] work. Be sure to get the latest 6.1.X test build for 64-bit Linux and the Extensions. Before installing that package, use YaST to remove all the regular VB packages. When Oracle’s release runs with kernel 5.8, you will need to rerun their ‘.run’ file with the uninstall option. This option may or may not work. I had trouble with it.
  4. Use a modified kernel and modify the vboxdrv kernel module. The necessary files and instructions are at [5].

[1] https://bugzilla.suse.com/show_bug.cgi?id=1172897
[2] https://lists.opensuse.org/opensuse-kernel/2020-06/msg00002.html
[3] https://joseph.zikusooka.com/?p=981#:~:text=To%20convert%20from%20VirtualBox%20to%20KVM%2C%20look%20for%20your%20VDI%20images.&text=You%20can%20now%20import%20the,'Storage%20format’%20to%20qcow2.
[4]https://www.virtualbox.org/wiki/Testbuilds
[5]https://bugzilla.opensuse.org/show_bug.cgi?id=1175201

This looks like a challenge, at least for an often clueless user like me, but at least now we know where we stand! Thanks for posting, Larry.

It’s probably easiest to hold you kernel to a 5.7 version, and you can make sure that it is kept by editing

/etc/zypp/zypp.conf

search in that file for “multiversion.kernels”

If you’ve never tweked that before, you’ll find

multiversion.kernels = latest,latest-1,running

I’ve commented that line out, and now have:

multiversion.kernels = latest,latest-1,latest-2,5.7.11-1,running

So zypper should leave that last 2 kernels, as well as force it to hold the 5.7.11-1 - with which VirtualBox does still work

This page tells you more about multiversion kernels

https://doc.opensuse.org/documentation/leap/reference/html/book.opensuse.reference/cha-tuning-multikernel.html

(in case I’m getting this wrong)

So, at the moment, I boot 5.8.0-1 by default

And I use the grub menu to pick 5.7.11-1 at boot time, if I need to use VirtualBox

(eg if I need to play a WAV file from my Zoom R16 in Audacity without converting it first)

I’m probably going to have to force grub to load 5.7.11-1 by default - in some distros you can add

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

to /etc/default/grub and then (in suse) update grub by doing

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

I’m just going to test that process, not sure if it will pick my current kernel (5.7.11-1)

Hmm… Ran into another bug trying to do this https://forums.opensuse.org/showthread.php/523940-error-sparse-file-not-allowed-at-boot So it looks like, if I know I’m going to need to use a VirtualBox VM (which I often do, for Working From Home under coronavirus rules / restrictions) I will need to manually pick the 5.7 kernel at boot time

Or, set it as your default.
IIRC easy to do in the YaST Bootloader module.

TSU

also seeing same issue with snapshot openSUSE Tumbleweed 20200815

System:
Host: skynet-HP-tw Kernel: 5.8.0-1-default x86_64 bits: 64 compiler: N/A Console: tty 2 dm: N/A
Distro: openSUSE Tumbleweed 20200815

seeing same issue with VirtualBox-6.1-6.1.12_139181_openSUSE150-1.x86_64.rpm

i have error log from module build https://termbin.com/4sb7

i am guessing issue is related to too new a kernel, if i am wrong and someone has some fix pls answer up

(After much experimentation) Larry’s third option worked for me. I uninstalled VB through Yast, dup’d to the 5.8 kernel, downloaded and installed the latest test build from https://www.virtualbox.org/wiki/Testbuilds . No problems.

As for option #2: I had no trouble converting a Win 7 machine to KVM, didn’t get a blue screen or a Windows activation error. What I did get, unfortunately, were activation warnings from two Adobe CS3 products. Adobe has shut down the CS3 activation servers, provides no further support on the products. There might be a way to coax a conversion from VDI to QCOW2 without setting off the Adobe alarms, but I didn’t find it.

Just a reminder that installing a test build as you describe is installing the Oracle version of Virtualbox.
When you do this, be sure not to mix future openSUSE VBox packages with your Oracle version… If you eventually decide to go back to openSUSE packages, you should uninstall the test build you installed.

AFAIK affects only the HostOS install,
Does not affect Guest installs, so far I’m not seeing any problems in Guests.
The Guest Additions from openSUSE seems to work fine whether the HostOS is from Oracle or openSUSE.

TSU

Thanks for the reminder, Tony. I uninstalled everything VirtualBox-related in Yast → Software Management before installing the Oracle VB test build, and also fetched and installed the related Oracle Guest Additions and Extension Pack. When the openSUSE repositories have a 5.8 compatible VB version, I’ll uninstall these three offerings from Oracle, install the openSUSE version, then return to virtualbox.org to download and install the version-appropriate Oracle Guest Additions and Extension Pack. If you think that plan looks flawed, please let me know!

I ended up uninstalling VB completely through Yast Software, installing KVM through Yast Virtualization, and converting my Win10 VM from VMware format to qcow2. I think that this is the best route for me at this point, as it unties me from future kernel update issues with VMs. That may not work for everyone, but so far it’s working for me.

I started with VMware Workstation back in 2007, went to VirtualBox when VMWare was slow to keep up with changing Linux kernels (and at a premium price as well), and now moved from VirtualBox to KVM for exactly the same issue. Never lost any needed capability in making those migrations, but my Win10 VM lost its authentication when I moved to VB. I cannot find the original disk (moved 3 times since installing it), so there’s that. The VM still works fine, though.

Just to update this, after an update to the openSUSE virtualbox package, and with Kernel 5.8.4-1-default

Information for package virtualbox:
-----------------------------------
Repository     : openSUSE-Tumbleweed-Oss
Name           : virtualbox
Version        : 6.1.13-1.1
Arch           : x86_64
Vendor         : openSUSE
Installed Size : 87.1 MiB
Installed      : Yes
Status         : up-to-date
Source package : virtualbox-6.1.13-1.1.src

And my linux vbox VMs now run

But my Windows VM, I had to disable USB in Settings

(NB I’ve only just tried this, and not spent a lot of time looking at it, but both ehci and xhci stopped the VM booting.)