Kvm + whonix 11 slowness

Its more of a settings tweak to make xorg inside guests play nice with the limited virtual qxl driver that doesn’t support all xorg features (and it shouldn’t).

Its more a problem with X being a large and complicated protocol. Its going to be around for some time before its replaced and maybe getting around this rendering problem is worth it.

Made pull request.

Doesn’t work. Please test beforehand.

Are the package dependencies OK? I made it depend on the metapackage that includes qxl and xorg but I don’t see the actual package as part of the existing Whonix packages.

Should I add the package name to
Whonix/.gitmodules to fix this?

Why a separate package, why not add to GitHub - Kicksecure/libvirt-dist: Libvirt XML Files for Derivative Linux Distributions KVM - https:/www.kicksecure.com/wiki/KVM / https://www.whonix.org/wiki/KVM? Hm, well, after looking at the who knows when package whonix-host-qemu-kvm (anon-meta-packages/control at d4ddc3d532d156687dc26fda7c66577593fb47c2 · Whonix/anon-meta-packages · GitHub), it may indeed not be the best place.

Adding to Whonix/.gitmodules is not enough. You also need to commit the actual submodule to git. But nevermind that at this point. No upstream git package (compareable to https://github.com/Whonix/kde-privacy) exists yet. So there is nothing that could be added to https://github.com/Whonix/Whonix.

Dependency of anon-shared-desktop… Not sure… Would this interact with non-KVM Whonix platforms?

I didn’t add it to whonix-libvirt because I think that package should only include files that have to do with configuration files for libvirt only.

Also libvirt is hypervisor agnostic and may be extended in the future to support other hypervisors besides KVM so I don’t want to lump KVM files with the package.

Would this interact with non-KVM Whonix platforms?

It shouldn’t. By making the dependencies rely on xorg-qxl in anon-desktop-shared I thought my package wouldn’t be installed unless the system detected the hypervisor (with virt-what) and prepared the VM for a KVM only environment.

If you are installing everything in all platforms then this would affect other platforms (even so, not negatively).

Package anon-shared-desktop is installed on all platforms.
(https://github.com/Whonix/Whonix/blob/78a88884b2635144522de3679136fa53d6c2bfb5/build-steps.d/1700_install-packages#L386)

There is no hypervisor detection in the build script. Not in that sense.

FYI: Redistributable KVM and VirtualBox images are created in one run.
–target qcow2 --target virtualbox
Not two. Non-ideal, but in the absence of more help, the only way not causing too much maintenance overhead.

Build switch --target qcow2 sets variable WHONIX_BUILD_QCOW2 to true and --target virtualbox sets variable WHONIX_BUILD_VIRTUALBOX to true. These variables influence Whonix’s build script.

Example, the spice-vdagent is only installed when using --target qcow2, so builds using only --target root or --target qubes are spared from it.
(https://github.com/Whonix/Whonix/blob/78a88884b2635144522de3679136fa53d6c2bfb5/build-steps.d/1700_install-packages#L363-L365)

Excellent work done by ‘who me?’!

This HUGE bug, and the correct fix he suggested, RADICALLY improve the user’s KVM experience.

There is also another valuable lesson here: Do not be shy, and don’t back down, when you know you’re right, even when others tell you that your solution won’t work, is flawed, etc. 8)

CCP

Created “KVM: document qxl slowness fix”:
https://phabricator.whonix.org/T412

still happening in whonix 12

Yes I saw it too and reported it but found it was KVM only. Its another problem with the graphics stack like I said.

this is have to be fixed with whonix 12 or it is very difficult to browse, c this:- (the menu even shrinks).

I finished creating and testing the package and can report a great improvement performance when browsing. The tearing of the logo and TBB menus are now gone.

The package should be available in Whonix 13.

@who_me Thanks for finding this fix.

1 Like

Yes! that file 50-qxl.conf solve the useless kvm whonix! After i try everything nothing works ,
but with that file for disable SURFACES the whonix become super fast , i thing its faster than virtualbox ! before it was useless because of the very very slow performance !
this is my confirmation , should put that defiantly on kvm whonix documentation !

I am new to linux, and so far experimenting with whonix in virtualbox mostly in windows.

Just installed debian, kvm and whonix gateway and workstation. Also experience slowness, can you explain
how to apply that 50-qxl.conf fix, what is command line?

I tried this that 50-qxl.conf fix, reboot and debian wont boot. any help?
that is all I changed, it is fresh os install.
after I cleared the file, I boot again.
but now I cant fix this slowness, kvm is unusable.

You closed those threads, so people cant share their problems :frowning:

@anon556 That thread was meant as a sticky not for bug reports so I closed it. Can you be clear about what you find hard about the instructions so I can improve them?

As per QXL Slowness Fix you need to add the text block after running nano - a simple text editor:

sudo nano /usr/share/X11/xorg.conf.d/50-qxl.conf

Then CTRL+X to exit. Y to confirm saving and CTRL+M to finally append the changes.

I execute that command :
sudo nano /usr/share/X11/xorg.conf.d/50-qxl.conf
empty file opens and I put this text:

Section "Device"
Identifier "qxl"
Driver "qxl"
Option “ENABLE_SURFACES” "False"
EndSection
saved file. restart.

After that system wont boot.
after I cleared the file, I boot again.

I think these instructions would make more sense in the wiki using
template Template:Open with root rights - Whonix as
nano is clearly overwhelming linux first time users.

I and others have it working for months now with this exact configuration. Are you sure you haven’t changed the videocard to a model different than qxl?

@Patrick I would have documented it in the wiki but with Whonix 13 being close there is no point.

I didnt change anything, I used exact commands.
Will Whonix 13 solve this issue?

Yes.