Kvm + whonix 11 slowness

I’ve been having a look around the Whonix Github site for the last hour or so, but am afraid I just can’t make any sense of the whole Git system or how it works. I managed to create a fork and create/propose the new file “50-qxl.conf” with the lines of code specified earlier in this thread, but can’t find any way to specify where in the “tree” (/usr/share/X11/xorg.conf.d/) this file should be “placed”, as I can’t find any such tree to browse in the main/master project.

I can’t even find different project folders for Gateway and Workstation.

Other people’s forks seem to have many more folders and files than mine, or even than the master branch does (example /whonix_gateway/usr/share) but I can’t find a way to clone or duplicate these folders into my fork.

Sorry, I tried. Hopefully HulaHoop can take care of this in the correct way.

git, development is not something to be learned over night.

Not auto setting this… Isn’t this also a bug or missing feature in some upstream software / package?

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.