Problems with HP G2 Z9-mini GPU's

Hello,
I have a HP Z2 G9mini with an integrated GPU and an additional GPU NVIDIA RTX A2000 12 GB.

On the back of the machine, there are:

  • 2 Video ports (I guess associated with the internal GPU)
  • a slot with 4 additional video ports (I guess associated with the NVIDIA)

When using (any of the 4) the NVIDIA port, I have the following problem:

when the monitor’s cable is connected to (any of the 4) NVIDIA ports, everything goes well in the boot and I reach the Qubes GUI asking me the password for LUKS, and after correctly inserting it, then the progress bar advances a bit but ultimately it gets stuck forever without saying anything.

QUESTION 1: can somebody please help in fixing the issue with NVIDIA RTX A2000 12 GB?


To work around this issue, I have disabled in the BIOS the NVIDIA GPU.
With the NVIDIA disabled, and the monitor connected to (any of the 2 ports of) the internal-GPU, I have the following problem:

I can see the boot (and access the Bios), but when Qubes starts, the monitors powers off (signal is lost) before reaching the LUKS prompt. Very weirdly, if I switch the monitor’s cable to the other one of the 2 ports, (sometimes a couple of times, I couldn’t find a deterministic repeatable process), the monitor signal reappears and I can type my LUKS password! After that, Qubes fully loads and I can use it.

Question 2: can you help me find a way to fix the behaviour of my internal GPU?

Running lspci in dom0, I see that the internal GPU is listed as “VGA compatible controller: Intel Corporation AderLake-S GT1 (rev 0c)”. I am not entirely sure if this is a general indication (of the driver used) or the real physical internal GPU.

Question 3: What can I do to find more infos about my internal GPU?

Thank you very much in advance!


Edit: following the suggestions found in this thread, I have tried to boot the machine with NOBARA-Linux, which comes with pre-installed graphics drivers, and it works flawlessly, both with NVIDIA enabled or disabled.

So it is indeed a driver problem.

There is an issue with NVIDIA GPUs using newer kernels:

Thanks, OK for the moment I will keep the NVIDIA disabled (from BIOS).

My n1 priority is (Problem 2), that is, to fix the annoying behaviour of my other integrated GPU which forces me to switch the monitor’s cable a few times before getting a video signal to the LUKS prompts.

Any suggestions regarding that?
I don’t really care too much about the GPU (at the moment at least) so if there is some kind of “safe” setting which reduces performances but enhances stability, that would be good.

Try to boot with nomodeset kernel command line option.

Thanks!
I did it on the fly and it seems to work!

However I am stuck trying to make this permanent.
I have edited the /etc/default/grub/ file, adding the nomodeset parameter, and I am trying to update the Grub with the command sudo update-grub2 or sudo update-grub but both commands are not found!

I tried to google a bit, and I could always install grub2-common in dom0, but I suspect there is another way to do that in Qubes. If you know how to that properly and cleanly, it would be very useful! Thanks!

Add this line to the /etc/default/grub file:

GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX nomodeset"

And regenerate grub by running this command:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

But note, that using nomodeset is not a proper solution, it’s just forcing the usage of a basic graphical mode, so you need to resolve the issue with the GPU driver to make it work properly.

3 Likes

Thank you very much @apparatus, it worked!
Now I can reboot without having to fiddle with cables!

Yes, indeed. I will have to find the drivers. But for the momenti you have greatly improved my situation.

After some research, I have found this thread which explains how to passthrough a secondary GPU.

Currently, I have to disable (in the BIOS) my secondary GPU (NVIDIA RTX A2000 12 GB) because otherwise Qubes crashes after LUKS.

If I understand correctly, my best option for circumventing this and using my NVIDIA RTX A2000 12 GB GPU is:

  1. Activate the GPU in the Bios, but somehow inform QUBES to ignore it.
  2. use it inside some HVM with VM with GPU passthrough.

For the moment my goal is to achieve just (1).

Following the advice in the thread, I am booting with a Manjaro live distro with pre-installed NVIDIA drivers and boot option iommu=1.

This is the (relevant portion of) what I see when I run the command sudo lshd.

*-display
                description: VGA compatible controller
                product: GA106 [RTX A2000 12GB]
                vendor: NVIDIA Corporation
                physical id: 0
                bus info: pci@0000:02:00.0
                logical name: /dev/fb0
                version: a1
                width: 64 bits
                clock: 33MHz
                capabilities: pm msi pciexpress vga_controller bus_master cap_list rom fb
                configuration: depth=32 driver=nouveau latency=0 mode=2560x1440 resolution=2560,1440 visual=truecolor xres=2560 yres=1440
                resources: iomemory:600-5ff iomemory:620-61f irq:183 memory:81000000-81ffffff memory:6000000000-61ffffffff memory:6200000000-6201ffffff ioport:3000(size=128) memory:82080000-820fffff
 

In particular, I can read the information: iomemory:600-5ff iomemory:620-61f

However when I run shopt I see nullglob null.
Consequently (I guess) the suggested script:

#!/bin/bash
shopt -s nullglob
for g in /sys/kernel/iommu_groups/*; do
 echo "IOMMU Group ${g##*/}:"
 for d in $g/devices/*; do
  echo -e "\t$(lspci -nns ${d##*/})"
done
done

prints nothing and I am a bit stuck.

@apparatus , I saw that you took part in that thread as well. Do you have any suggestion?
For the moment my goal is to achieve just (1), namely:

  1. Activate the GPU in the Bios, but somehow inform QUBES to ignore it.

thanks!

Try to boot from some other Live Linux OS, e.g. from Fedora Live, instead of Manjaro. You don’t need to have NVIDIA drivers installed in the OS to be able to check the IOMMU groups.

thanks! I just tried with Fedora Live, but I have the same “issue” I had in Manjaro:

shopt gives nullglob = off.

Am I doing something wrong? I am booting Fedora with the iommu=1 option but no iommu_amd=on, since I have no AMD GPUs in my system.

When you run:

shopt -s nullglob

Do you still have nullglob = off after this in this command output?

shopt nullglob

Also, I think the script should work even without setting nullglob, maybe there will be some junk in the output, but it should show you IOMMU grioups.