How to install Qubes Core Agent in linux distros in Qubes 4.3 (for beginners)

Hello. I’m a beginner.
I can’t find documentation or guides on how to properly install Qubes Tools - qubes core agent - in various HVM linux distros: Mint, Ubuntu, Fedora, Arch… I just installed Mint HVM as a template. But I can’t find how to properly add the Qubes repository. I successfully installed Qubes Tools on Windows 11 following the guide from the documentation. And it works well.
I’m afraid to ask for help from AI chats (it could break the HVM).
Please help, write a simple guide for beginners.

Proper way to create qubes templates is by Qubes builder v2 — Qubes OS Documentation

Qube installed from ISO using HVM virt is Standalone Qube.
You can set Windows HVM to function like template by separate user and system space using Qubes Windows Tools (QWT) — Qubes OS Documentation

In the Windows template, everything already works well for me (except disp VMs don’t launch from appVM). I just installed Linux Mint HVM as a template. Do I need to create a Qubes Core Agent package for it in builder v2? Can’t I just add the repository and install the package? (Dependency issues?)

If I install Debian 13 or Fedora 43 HVM in a template and add the repository from the default templates, will it work?

You handle your Qubes as proxmox, but it not how we do things here :slightly_smiling_face:
HVM is less secure then PVH, so where it possible you supposed to use Qube in PVH virt.
Read about it here: Standalones and HVMs — Qubes OS Documentation

In the Windows template, everything already works well for me (except disp VMs don’t launch from appVM).

You can’t use Windows Qube like that, read here what supported:

I just installed Linux Mint HVM as a template.

So you have standalone in HVM virt with Mint inside, without Qubes integration.

You can create a ready for use template using ISO, for example from mint.

No.
Their is more then just qubes-* packages missing, kernel of source image should be replaced by Qubes kernel and another steps builder of template handle.

You have native Debian 13 and Fedora 43 templates, why you may wish to do so? just download exist template with xfce/gnome desktop environment and use it.

You mix 3 things: template, standalone hvm, template of standalone hvm.
When you install any public available ISO as template, it became template of standalone hvm.
When you get template from QubesOS repo, or from another source with full pre-integration of Qubes services only then it can be used as template for Qubes.

1 Like

I just read on the forum that I can work with video graphics and video editors only in HVM. Therefore, I would also like to have a Linux HVM template, in addition to the Windows HVM. That any issues with default Linux appVMs would be resolved in my Linux HVM. But I need help

You can clone native template, base of Fedora, Debian or etc. and base on it create HVM with requested features.

I can try to assist you with plan, but you want to describe full use case and hardware you use? (it important to know how many GPU you have, iGPU/eGPT, RAM, amount of cores)

1 Like

I’m a beginner and therefore don’t quite understand how to create an HVM from default Debian/Fedora templates. I would be grateful for help in the form of a guide. I have an i7 13th gen, 32 GB RAM, NVIDIA 4060.

Navigate in GUI:
Start (Q icon) → Settings → Qubes tools → Create New Qube.

:no_mouth: :no_mouth: :no_mouth:

So, I installed the Debian 13 HVM ISO into a template. Then I tried to add the Qubes repository. I couldn’t find the right key for the repository for a very long time. In the end, I added the repository without a key. Then I installed qubes-core-agent. After rebooting, Debian 13 HVM wouldn’t boot anymore - neither in default mode nor in Xen mode in GRUB.
Therefore, I’m asking for help again: How can I install Linux for video graphics work, just like I did with Windows 11 and QWT? Is this possible, or should I only use isolated Linux without file and clipboard sharing with other VMs? Or how do I properly install qubes-core-agent?

I hope someone from the community will give me a direct answer to this question.

@unman Maybe you could help me with a detailed answer? You answer many people in detail on the forum. How do I add Qubes tools to Linux HVM for moving files and clipboard exchange between other VMs (like with QWT)?

I’ve gone down this rabbit hole, it’s not possible. I don’t understand exactly why, I haven’t looked into it though. But it doesn’t work.

As others have said, if you want a hvm with qubes integration, you need to make it from a template, and change the virtualization mode to hvm.

These tools are created for Windows, but not for Linux. So either I install a Linux ISO and can’t transfer files to other VMs, or I need to somehow configure HVM from the default template, since simply changing the type from PVH to HVM doesn’t change anything. But what to do next so that at least xfce4-screenshot frames appear - this is nowhere written. This means everything is done for graphics work in Windows, but nothing for working with Linux. Maybe it’s not hard to do. But the specific steps aren’t described anywhere. When I created a Windows template with QWT, I fell in love with Qubes. It was incredible for me. But now I realize that some basic and simple operations require a lot of effort. At least for beginners.

In Qube create windows, choose on left side Standalone.
Set name and color.
Select “Launch qube settings after creation”.
In Clone from existing, select “Template of standalone” and scroll to Debian-13-xfce or Debian-13 (template provided by Qubes, not ISO or what you have installed).
Follow gui to set another settings as needed.

You good to go from here by yourself? :slightly_smiling_face:

From my understanding, the windows tools were created to be installed after windows is installed, as it is not legal to distribute modified windows. The linux tools were not designed this way, they were designed to be built into the release.

HVM is just a virtualization mode, it does not change anything about the qube from a standard user’s point of view, other than allowing pci devices to be attached.

Unless you have a specific reason to need a linux distro that is not provided as a template, it is advised to use the template as they have qubes integration.

I am a little unclear on what exactly you are trying to do, and please correct me if I am wrong, but I think that you are trying to make a standalone hvm?

If that is the case, you just need to create a new qube, selecting standalone and choose the template to clone from.

I see your note on xfce4-screenshot frames not appearing, I am not sure what exactly you mean by that.

It is also possible to remove gui integration from a qube:

The stuff you saw about graphics and video editors almost certainly mentions hvm as a requirement for gpu passthrough, which is pretty much required for graphics heavy activities like video editing.

@random1 Right now I have 2 questions: Can I transfer a file from HVM Linux (ISO in Standalone or Template) to other VMs? Can I make the default Linux appVM suitable for graphics work (I provided an example with an xfce4-screenshot to show the graphics issues in the default Linux - these problems don’t exist in the HVM ISO Linux)? The first option would be the best, but it seems impossible - it only works in Windows.

So that’s why I’m writing - it turns out that currently in Qubes, Windows works best, not Linux: you can create a template, you can transfer files and clipboard to other VMs, you work with graphics.
In Linux: or you work with graphics in HVM (with ISO), but can’t transfer files and clipboard to other VMs, or you transfer files and clipboard to other VMs, but can’t work with graphics.

Is correct? If not, then how do I fix it?

No. You cannot transfer files from a standalone made from an iso. You need to make the standalone from a template. You can make a linux appvm suitable for graphics work, you just need to pass through a gpu is you want good performance.

For the screenshot example, you would want to disable the gui integration. You can still copy files, you just can’t copy and paste to thay qube.

Windows does not work best, there are numerous forum threads about the problems with it. Linux definitely works better, you just need to set it up correctly. Which in your case is making a standalone hvm from a template, not an ISO and disabling gui integration.

@random1

Could you please write out how to do it? I don’t quite understand how it works and there’s no documentation. My goal: Linux with working graphics (even in the most basic form, like when I see the selection frame for xfce4-screenshot) and the ability to transfer files to another appVM. I’m very confused right now. So far, everything works perfectly only with Windows: template, appVM with working graphics applications, file transfer and clipboard to other appVMs - perfect. With Linux, or excellent graphics but no file/clipboard transfer, or file/clipboard transfer but no working graphics. I’ve already spent 2 days on this problem. I broke several VMs during tests with Linux.

Create a new qube, select standalone from the types on the left. Select the template to clone from. Debian or fedora xfce. Click create.

Open the qube settings. Go to advanced and change virtualization mode to hvm. Set the minimum RAM to be at least 1000.

You now have a standalone that is integrated.

You need to set a user password to login, run this command in the qube you just created:

sudo passwd user

then type in whatever password you want.

qube_name in the commands refers to the name of the standalone qube that was just created

To disable the gui integration, you need to run these commands in dom0:

qvm-features qube_name gui_emulated 1

qvm-features qube_name no-nomodset 1

qvm-prefs qube_name kernelopts "systemd.unit=graphical.target"

qvm-service qube_name lightdm on

This will present a full desktop environment (xfce) with a login manager when you start the qube. You will be able to copy files to and from the qube. Unfortunately, clipboard will not work as that depends on the gui integration.

Edit: added note about using hvm.
Edit 2: added note about changing minimum ram. You may need to change the kernel to provided by qube in the qube’s advanced settings tab, and if you need to do that, you will also need to uncheck include in memory balancing

1 Like

@random1 big thanks! Finally it works! I even tried it with a template and appvm. You helped me a lot!
How do I fix the double cursor? It really interferes with my work.