Screen Scaling issue in VM

hello everyone.

So I am having this issue running EndeavourOS in my Virtualbox.
Everything worked fine in the xfce -live mode before installation. After booting into the installed system (KDE) for the first time, the resolution was way too small. When I try to rescale (both KDE system settings and xrandr in terminal), it scales correctly for about half a second and goes back to the small scale immediately after. (I tried to upload a gif, but the file is too big…)

The command I used:
xrandr --output Virtual1 --mode 1920x1080

I also tried rebooting, having the VM in both window mode and full screen, and forcing a resolution via the VM settings - the OS does not seem to care.

Any suggestions to fix this? I am a total newbie to both VirtualBox and Endeavour, so noob-friendly answers will be appreciated :slight_smile:

What are you using for the graphics settings on virtualbox?

Edit: I will give you an exact way to use virtual-box for the resolution set up.

On host you need packages:

  • virtualbox
  • virtualbox-ext-oracle
  • virtualbox-host-dkms
  • linux-headers
  • (if linux-lts, then also linux-lts-headers)

On guest you need:

  • virtualbox-guest-utils
  • enable the vboxservice systemd service

There are numerous settings for the graphics controller under display. I used to use VBoxSVGA with 3D checked. Now mostly i use VMSVGA with 3D checked. It never used to work properly before but now does for most installs. The trick is with virtualbox normally is to set the resolution the same as your monitor and it will auto adjust when it loads to the proper sizing to fit the window leaving your Host task bar viewable. I don’t normally run virtualbox in full screen mode. So I have KDE installed in virtual-box and I’m running it on EndeavourOS KDE as the host.

So as you can see here by the picture i have kde running in vm on v-box on kde as the host and the resolution i set the same as my monitor which is 1680x1050. V-box will auto adjust to the size needed which is slightly smaller to fit in the window allowing my host task bar to be accessible. So the actual resolution is 1680x932 as shown by the tool in the welcome screen. The problem with trying to set the resolution after the fact is that sometimes it just reverts back whether you set it in the installed system from display or the welcome app. So here is the way i do it most of the time. Once you get used to how this works you won’t do it any other way because this works the best 99.9% of the time.

Then if you want to put it in full screen you can. Click view and set full screen mode. Then at the botttom below your taskbar in the middle it hides the virtual task bar for switching settings.

So the trick is know your resolution of your monitor. When you first start a virtual-box install maximize that window. Then as the ISO starts to load click on view and virtual screen and resize to the setting that you monitor is. You have to wait until the ISO is loaded so far before the greyed out settings show in the list. Then click on the resolution you want to set. When the iso loads all the way it should automatically adjust to the size needed. Sometimes when you set the resolution it will go to that size but have scroll on the Window but if you do it right and time it correctly it should auto adjust when it is fully loaded. The trick is to set the resolution as soon as you see the greyed out resolutions settings appear. My advice is to try a few installs with the Endeavour ISO and you’ll get the hang of it. I’ve been doing it this way for a long time and it works. Some other vms don’t set the resolutions as well so i have to go slightly smaller than my monitors resolution such as virt-manager i use 1440x900 on the same monitor as compared to v-box because i myself don’t run the vms in full screen mode as i want access to the host controls quickly and easily.

I keep forgetting about this virtualbox-guest-utils. I didn’t have it installed. So when i installed it and it asked for reboot it came up on the screen to enable it on the welcome app in after installs. Does this enable the vboxservice systemd service?

I’m trying to check the status if it’s running?

systemctl status ???

Can’t seem to find the right command.

Edit: I also don’t see this on the wiki? Do we need to update that?

Edit@: I found it but failed?

Unit vnoxservice.service could not be found.
[ricklinux@eos-kde ~]$ systemctl status vboxservice.service
○ vboxservice.service - VirtualBox Guest Service
     Loaded: loaded (/usr/lib/systemd/system/vboxservice.service; enabled; vendor preset: disabled)
     Active: inactive (dead)
  Condition: start condition failed at Fri 2021-08-20 17:51:16 EDT; 10min ago
             └─ ConditionVirtualization=oracle was not met

Aug 20 17:51:16 eos-kde systemd[1]: Condition check resulted in VirtualBox Guest Service being skipped.
[ricklinux@eos-kde ~]$ 

Edit2: I enabled and started it but it say’s failed.

Edit3: Is this a different service that is not under systemctl?

The welcome yad box keeps telling me to enable the guest-utilities.

1 Like

Had another brain stall. No wonder is not working as i installed it on the host. :man_facepalming: :rofl:

Edit: I just realized it is already installed with the install of virtualbox from the wiki. I was thinking i was missing something here.

1 Like

Unless it was fixed recently there is a bug in plasma under X11 that doesn’t manual resolution setting in a VM.

There are two things I have done to work around this:

  • Auto-fitting to window works as long as you have the guest agent installed and running.
  • You can run in wayland instead of X. Ironically, there is a bug with plasma under Wayland in a VM that only manual resolution setting works and it won’t automatically fit to window.

I usually do the first thing because fitting the window is generally ideal for me.

1 Like

So now you have the service working as expected?

i see that virtualbox will do the scaling/fitting after using fullscreen mode or scaled mode and switch back to normal window mode here (first boot fresh install no extra packages installed)

this did the job for me, thanks!


This was where I was confused. The service should be running in the guest correct. I got it!

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.