Blank screen on new kernels

I use Qubes OS 4.2.4 with kernel 6.6. Any newer kernel results in a blank screen after GRUB. I read of a problem with nvidia GPU drivers, is it still the problem? I thought it was merged? nomodeset does not fix this issue, how can I provide logs?

1 Like

I’ve updated qubes os today with the newer kernel 6.15. This issue still is here, can you help me?

Updated today, still the same issue. I’m stuck on the old kernel

1 Like

I can’t install Qubes OS 4.3 because it uses a newer kernel and I still have the same issue. I’m stuck since one year

When at a black screen after boot can you get an console by pressing CTRL+ALT+F2 or CTRL+ALT+F3? If so login and look at journalctl and dmesg for logs.

Kind regards, Bloged

Can I paste the logs to look together at them?
I managed to install qubes 4.3: nomodeset=0 inst.text plus a configuration file in an external USB. It boots fine, the LUKS passphrase is GUI, then it breaks. I have to do the post install using the text version, and that breaks with a Python exception. I can’t install templates manually offline from the RPMs. I have the Nvidia firmware.
I tried startx and it’s not working complaining that nv, vesa, fbdev modules don’t exist, card0 not found, no screens are detected. This is all on my laptop. Nvidia 1060. I tried to set a manual configuration for Xorg.

All that the same with my working Qubes OS 4.2 and a new install Qubes OS 4.3. The latest working combo is Qubes OS 4.2 + kernel 6.6.77-1

Do you use your Nvidia dGPU in dom0 for anything except rendering the desktop? If you have an iGPU, you can switch your config to just use that for dom0, you shouldn’t notice much of a difference unless your CPU is very old.

In general, you can just “hide” the Nvidia GPU from dom0, which also, helpfully, gets you closer to GPU passthrough if you ever wanted to do it. You can do it by following the first steps of this guide, that is:


GRUB modification

You must hide your secondary GPU from dom0. To do that, you have to modify the GRUB. In a dom0 Terminal, type:

qvm-pci

Then find the devices id for your secondary GPU. In my case, it is dom0:0a_00.0. Edit /etc/default/grub, and add the PCI hiding.

GRUB_CMDLINE_LINUX="... rd.qubes.hide_pci=0a:00.0 "

then regenerate the grub

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

If you are using UEFI and Qubes OS 4.2.0 or earlier, the file to override with grub2-mkconfig is /boot/efi/EFI/qubes/grub.cfg.

Note: if after this step when you reboot the computer you get stuck in the QubesOS startup that means you are trying to use the GPU you just hid. Check your BIOS options. Also check the cables, BIOS have some GPU priority based on the type of cable. For example, DisplayPort can be favoured over HDMI.

Once you have rebooted, in dom0, type sudo lspci -vvn, you should see “Kernel driver in use: pciback” for the GPU you just hid.


WARNING: you may want to first test out the qubes.hide_pci parameters by editing the commandline without changing your grub config file, by pressing ESC when in the GRUB menu when booting and editing the kernel commandline there, it will only apply for one boot. When generating that new grub config with grub2-mkconfig, I also recommend backing up your old grub.cfg file, in case something goes wrong.

I added the hide_pci to the EFI configuration. The errors are

[ 149.279] (EE) Failed to load module “nv” (module does not exist, 0)
[ 150.041] (EE) [drm] Failed to open DRM device for pci:0000:01:00.0: -19
[ 150.041] (EE) open /dev/dri/card0: No such file or directory
[ 150.041] (EE) open /dev/dri/card0: No such file or directory
[ 150.049] (EE) Unable to find a valid framebuffer device
[ 150.050] (EE) open /dev/fb0: No such file or directory
[ 150.050] (EE) Screen 0 deleted because of no matching config section.
[ 150.050] (EE) Screen 0 deleted because of no matching config section.
[ 150.050] (EE) Screen 0 deleted because of no matching config section.
[ 150.050] (EE) Device(s) detected, but none match those in the config file.
[ 150.050] (EE)
[ 150.050] (EE) no screens found(EE)

The BIOS has no related setting, and this is a laptop, I would not know which cable to check

also I tried: rd.driver.blacklist=nouveau modprobe.blacklist=nouveau (with and without nomodeset=0), only nomodeset=0, rd.driver.blacklist=xen_acpi_processor modprobe.blacklist=xen_acpi_processor (with and without nomodeset=0). I tried some simpler buffers.
whenever I can get a tty, I check journalctl for Xorg errors: “no screen found”. I found the same error in its coredump
keep in mind everything was working until kernel 6.6.77 included

dom0:00_01.0  PCI bridge: Intel Corporation 6th-10th Gen Core Processor PCIe Controller (x16)                                      
dom0:00_04.0  Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem  
dom0:00_14.0  USB controller: Intel Corporation 100 Series/C230 Series Chipset Family USB 3.0 xHCI Controller                      
dom0:00_14.2  Signal processing controller: Intel Corporation 100 Series/C230 Series Chipset Family Thermal Subsystem              
dom0:00_15.0  Signal processing controller: Intel Corporation 100 Series/C230 Series Chipset Family Serial IO I2C Controller #0    
dom0:00_15.1  Signal processing controller: Intel Corporation 100 Series/C230 Series Chipset Family Serial IO I2C Controller #1    
dom0:00_16.0  Communication controller: Intel Corporation 100 Series/C230 Series Chipset Family MEI Controller #1                  
dom0:00_17.0  SATA controller: Intel Corporation HM170/QM170 Chipset SATA Controller [AHCI Mode]                                   
dom0:00_1c.0  PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #3                         
dom0:00_1c.3  PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #4                         
dom0:00_1c.4  PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #5                         
dom0:00_1f.0  ISA bridge: Intel Corporation HM170 Chipset LPC/eSPI Controller                                                      
dom0:00_1f.2  Memory controller: Intel Corporation 100 Series/C230 Series Chipset Family Power Management Controller               
dom0:00_1f.3  Audio device: Intel Corporation 100 Series/C230 Series Chipset Family HD Audio Controller                            
dom0:00_1f.4  SMBus: Intel Corporation 100 Series/C230 Series Chipset Family SMBus                                                 
dom0:01_00.0  VGA compatible controller: NVIDIA Corporation GP106BM [GeForce GTX 1060 Mobile 6GB]                                  
dom0:01_00.1  Audio device: NVIDIA Corporation GP106 High Definition Audio Controller