virtualbox VMSVGA vs. VBoxSVGA

I know that there are a couple of threads here talking about VMSVGA vs. VBoxSVGA graphic setting in virtualbox. But none of them is addressing this here:

According to the virtualbox documentation Linux guest should be run with VMSVGA setting. But when I do so with a Manjaro+xorg+gnome guest I get this message:

grafik

And this is true. The window resizing only properly works with VBoxSVGA.

But on the other hand Fedora32+gnome is resizing just fine with VMSVGA. And it is doing so with either wayland or xorg. So what is wrong with manjaro guests that they do not resize properly with VMSVGA setting?

Manjaro packages used:

kernel 5.6.15-1
linux56-virtualbox-guest-modules 6.1.8-3
gnome-shell 3.36

Fedora packages used:

kernel 5.6.15-300.fc32
vitualbox-guest-additions 6.1.8-2.fc32
gnome-shell 3.36

I would assume this has to do with kernel settings or kernel patches in Fedora. Any idea?

Moderation Note: Moved to #manjaro-development

I have been asking myself the same question and I have found no answer to it.

It is an upstream issue - and I think it has something to do with display driver has been split from the guest util and added as kernel module.

In case you missed or didn't recall

Indeed, IMO Manjaro should overlay <kernel>-virtualbox-guest-modules + dkms variant, but this would require Manjaro to overlay the entire VirtualBox package. Ideally, this would be fixed on the kernel level (upstream) tho.

I compared fedora and out of the box linux kernel source for vboxvideo and there are differences in vboxvideo.h and vbox_mode.c.

10# diff fedora/drivers/gpu/drm/vboxvideo/vboxvideo.h linux-5.6.15/drivers/gpu/drm/vboxvideo/vboxvideo.h 
141c141
< 	u8 data[];
---
> 	u8 data[0];
11# diff fedora/drivers/gpu/drm/vboxvideo/vbox_mode.c linux-5.6.15/drivers/gpu/drm/vboxvideo/vbox_mode.c 
20a21
> #include <drm/drm_vblank.h>
227a229,239
> 	struct drm_pending_vblank_event *event;
> 	unsigned long flags;
> 
> 	if (crtc->state && crtc->state->event) {
> 		event = crtc->state->event;
> 		crtc->state->event = NULL;
> 
> 		spin_lock_irqsave(&crtc->dev->event_lock, flags);
> 		drm_crtc_send_vblank_event(crtc, event);
> 		spin_unlock_irqrestore(&crtc->dev->event_lock, flags);
> 	}
829d840
< 	.mode_valid = drm_vram_helper_mode_valid,

Or, in other words: The function

static void vbox_crtc_atomic_flush(struct drm_crtc *crtc,
				   struct drm_crtc_state *old_crtc_state)

is empty in Fedora.

I leave it to the experts to tell if that is relevant.

Just did some research, looks like the offending config was removed. Testing this now.

Thank you for your efforts with this issue - much appreciated :100::+1:

This seems to be a much bigger issue than originally anticipated.

For some reason upstream decided to stop the VBoxClient with vmsvga from ever executing: https://git.archlinux.org/svntogit/community.git/tree/trunk/018-work-around-black-screen.patch?h=packages/virtualbox

I'll probably just do this "a la fedora", which will take me some time.

That is interesting. Thank you for digging into this!

Demo of my current work: https://imgur.com/a/RbcvXKs

That looks very good. Just let me know if you need somebody to test this.

Ok, I've got a working ISO I can test with now, except it black screens as soon as the vmsvga VBoxClient is started. This only happens when the vmsvga client is started on a system that did not boot with the correct vboxguest kernel module.

Afaik the "official" Oracle recommendation is this silly VMSVGA. However in all but one [Ubuntu LXQt] of my dozens [buntu-based, Arch-based, oS, Fedora, others] of VMs [& a deleted one (Cleanjaro)], that setting is hopeless & they only work correctly with VBoxSVGA.

Onya, Oracle.



12/6/20 Update:

Discovered this anomaly tonight when updating my Fedora VMs.

MUST use VB Display setting "VMSVGA" & not "VBoxSVGA" for Fedora Workstation 32 VM [ie, GNOME].
The latter is still good for KFedora, but causes Fedora Workstation to boot into black screen.
Apparently thus SDDM is compatible with VBoxSVGA, but GDM needs VMSVGA.
:woman_shrugging:

This is how I started this thread. Except for the word "silly".

1 Like

I can't reproduce this on Fedora 32. There was an update to guest utils 2 days ago that should fix this there tho.

I've also found some great news on the linux kernel mailing list: https://lkml.org/lkml/2020/5/20/1301

I will still work on my fix for this, since it will work for the other kernels too.

Done :partying_face: Allow screen resizing in virtualbox using VMSVGA

1 Like

Forum kindly sponsored by