How to fix a black screen when installing Qubes 4.1.1, due to an AMD 6800 XT (or similar) GPU

I was getting a black screen during install. The GRUB menu loaded fine, but after selecting an install option I got a black screen (with a cursor in upper right) and never reached the installer.

I spent hours trying the following:

  • Official troubleshooting pages were out of date and didn’t apply to 4.1.1.
  • I tried all the UEFI + legacy mode configs in BIOS
  • Bought a new USB

It turns out none of that was needed though! All you need is to add an option while in the GRUB menu.

How to fix:

Add nomodeset=0 to the grub entry after booting, and it works. After install, you’ll also need to do this permanently, or else each time you boot.

  1. Boot from USB
  2. When GRUB menu opens, navigate to the boot option you want and hit e
  3. Find the line with vmlinuz in it, and add nomodeset=0 at the end
  4. Hit CTRL + X which will run your edited command, and you should make it to the installer!

P.S. After editing the grub config, the line containing vmlinuz should look something like this:

    module2 /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=QUBES-R4-1-1-X86-64 plymouth.ignore-serial-consoles quiet nomodeset=0

After install:

You’ll need to permanently edit the GRUB config with this option after install, but you can also follow the steps above each time you boot too. I haven’t edited the GRUB config yet, but I’ve seen some discussions here about how to do so.

Without the nomodeset=0 option after installing, you’ll get to the disk encryption screen, but get a black screen after entering the password. I tried updating the kernel using sudo qubes-dom0-update kernel-latest in case that fixed it, but I still needed nomodeset=0 to boot.

What is nomodeset?

Not sure, but it appears to be a common flag for fixing GPU issues.

I found the following definition here [SOLVED] How to set NOMODESET and other kernel boot options in grub2

**nomodeset**

The newest kernels have moved the video mode setting into the kernel. So 
all the programming of the hardware specific clock rates and registers on 
the video card happen in the kernel rather than in the X driver when the X 
server starts.. This makes it possible to have high resolution nice 
looking splash (boot) screens and flicker free transitions from boot 
splash to login screen. Unfortunately, on some cards this doesnt work 
properly and you end up with a black screen. Adding the nomodeset parameter
instructs the kernel to not load video drivers and use BIOS modes instead 
until X is loaded.

Credits:

This topic mentioned the nomodeset option in relation to fixing 6800 XT issues. However, being new, it still took me many hours to figure out where to put it and that I needed to set it to nomodeset=0 :slight_smile:

Hope this helps someone!

3 Likes

Huh, I was very confused when I got an email with my username on it a year after posting on the Qubes Forum.

It should be noted that this guide is outdated as of Qubes 4.2, as the newer Xorg drivers support the RX 6800 XT. Any users with this and similar AMD cards should install 4.2 instead of 4.1.

Also, a note for OP: nomodeset simply tells the graphical stack to not switch drivers from the basic framebuffer (BIOS-provided) ones, so systems running with nomodeset are essentially running with basic graphics, which means no hardware acceleration.

Thanks for the heads up! I had same black screen issue with my 6900 XT. For me I had to move the cursor over to the older kernel selection before pressing ‘e’ to then add nomodeset=0. All booted well after hitting ctrl-x.

Your post really pulled my butt from the fire! Thanks again! :cowboy_hat_face:

Adding this gets me a bit further but some errors pertaining to /lib/dracut/initqueue

Any idea what is going on?

You can try to install Qubes OS with kernel-latest.

Already tried that.

Remove quiet from the kernel options in GRUB, maybe you’ll see more log info.

I just disconnected the GPU same way I do to boot 4.1 and still get the same error. Same when completely removing it from PCI slot. So must be the integrated graphic?

What’s your CPU?

Is there some Bios setting I’m missing?

Are you able to boot into Qubes OS 4.1.2 installer?
You only have this issue with Qubes OS 4.2.2 installer?

I’ve not tried the 4.1.2 installer.
This issue is with 4.2.2 installer indeed.

Can you try to boot the Qubes OS 4.1.2 installer for a test?
If it’ll boot without an error then I guess you can report this issue as a regression.

It seems that the boot has failed. Possible cause include missing init.stage2 or inst.repo boot parameters on the kernel cmdline. Please verify that you have specified inst.stage2 or inst.repo.
Please also note that the ‘inst’ prefix is now mandatory.

This is also part of the error message.
Ok I will download 4.1.2. Thank you for all your help @apparatus

How did you create the installation media?
Did you test the media before install?

I kept getting a grub error with linux dd command. Than I tried balenaEtcher. Also grub error. Ended up using rufus. The iso was verified. Also tried the test install media and install option which did not result in a warning.

Maybe you disconnected the USB disk before it ended syncing.
Did you write it using this command with conv=fsync as suggested in the docs?

sudo dd if=Qubes-RX-x86_64.iso of=/dev/sdY status=progress bs=1048576 conv=fsync

Did you write it in DD mode?

You got me, I used iso mode. Thanks for pointing this out. Will try again and report back.

Now written with DD mode. Selecting test install media: Screen connected to GPU shows a few lines before showing no signal. Screen connected to integrated graphic shows no signal the entire time. Dis and reconnecting either screen doesn’t help.

Edit. Now in the installer after disconnecting second screen and removing quiet from boot option. Thank you for all your help.

Now during installation I get:

The following error occurred while installing the payload/ This is a fatal error and installation will be aborted.
An error occurred during the transaction: Error in POSTIN scriptlet in rpm package kernel-qubes-vm