GPU changed from Nvidia to AMD, caused black screen

Welp, here’s a true noob q from a true noob. Seems like there’s likely a straightforward solution, but my noobishness is holding me back a bit.

Issue:

  • My Nvidia GPU died, and I replaced it with an AMD. After Systemd-boot and unlocking LUKS, screen goes black.

Assumed cause:

  • My autorandr setting that I have to set my dual-monitor setup properly
    and/or
  • X11 is trying to do Nvidia things upon boot due to its .conf

Research:

Attempted troubleshooting:

  • Tried booting with nomodeset kernel option, simply put me into a black screen with a white underscore that wouldn’t accept any keyboard input
  • Tried booting from the Cassini iso I installed from recently using several different options, the closest thing I got to a live boot environment or even a terminal was using the ‘compatibility mode’ (or similar name), which gave me the following result, and did allow input but didn’t appear to be the TTY I was expecting:
photo of the closest i got to accessing anything

System details:

  • btrfs
  • luks encrypted
  • KDE Plasma
  • Systemd-boot
  • X11 (configured for Nvidia)
  • 6xxx series AMD GPU
  • No access to old Nvidia GPU (damaged)

So that’s where I’m at. Been loving Linux for the most part, but here I am, stuck posting from the Windows side of the machine.

Should I try the arch live-iso instead of the eos one to access the filesystem and make the requisite changes, or is it possible to do so from within Windows (eg. WSL)? Is there a simple way to force a fresh autoconfig of x11 upon booting in? Is there some other way to solve the issue I’m not considering? Am I way off base in my assumption of the root problem?

The more explicit any directions can be made, the better - I’m capable of following instructions exactly but am still quite new to Linux.

If you are loading the driver in the X11 conf specifically, this would cause that issue.

Another reason would be if the nvidia drivers are being loaded into your initrd.

I would boot off the live ISO and arch-chroot into the system per the wiki.

From there, check your X11 config. Clean it up if needed.

Then run reinstall-kernels from the chroot.

Exit the chroot and reboot.

I would boot off the live ISO and arch-chroot into the system per the wiki.

The EOS or Arch wiki/live-iso? I tried running the same iso I used to install the system (cassini_22_12) and have not been able to get into a live environment.

https://discovery.endeavouros.com/system-rescue/arch-chroot/2022/12/

What is the specific GPU?

It’s an RX6800

As mentioned, I’ve attempted many different ways to boot from the very same iso I used to install EOS, but have never reached the same live environment I did back then.

What happens when you try?

See above. After giving me the purple background selector screen, it usually launched me into a black screen with a white underscore that didn’t accept keyboard inputs for most selections, with the exception being the image I posted.


The most common result after “Welcome to EndeavourOS!”. The underscore is blinking. This was from booting in grub2 mode, with nomodeset.

I suggest you edit kernel parameters at boot menu, if possible, and set the nvidia related param to 0. Maybe also add the equivalent for amdgpu with value 1.
I am out of PC access, so can’t give better names from memory. I am sure Archwiki and man pages would help.

Or (better?) add number 3 to the kernel to land in TTY and fix it more easily. :wink:

that is the most likely issue.

Try that:

it has to be done in your boot loader (you get into edit mode with pressing “e” on the entry you want to boot, just like you would do in grub), you need to manually edit the boot parameters - you should be able to login in TTY then.
Try to remove the nvidia drivers, and also do sudo mv /etc/X11/xorg.conf ~/xorg.conf_backup
That moves the last remaining bit of the nvidia driver out of the way (if that file is the last remaining bit of the Nvidia driver, it still causes black screen on boot)

Didn’t know that was a thing - huge! Pressed random stuff on the boot selector and apparently f1 allows manual control over the kernel launch params. Can now login and tty to ensure amdgpu and related are installed.

Am going through and nuking the xorg conf, as well as any traces of nvidia drivers hanging about.

Was snooping around the https://wiki.archlinux.org/title/Xorg and the related kernel parameters and amdgpu pages, but didnt see the exact format I need for amdgpu. Is it amdgpu or amdgpu=1 or amdgpu.modeset or amdgpu.modeset=1 or some other syntax entirely? Or, once I nuke all this nvidia stuff will it be irrelevant and autoconfigure?

Amdgpu should automatically load. You don’t normally need to do anything for amd although you can under certain circumstances.

https://wiki.archlinux.org/title/AMDGPU#Xorg_configuration

Hmm. Progress, but not quite there somehow.

Removed nvidia.dkms
Removed xorg.conf, xorg.conf_backup
Created 20-amdgpu.conf exactly as laid out in https://wiki.archlinux.org/title/AMDGPU#Xorg_configuration
Ensured all various bits and bobs of amdgpu are installed
Reinstalled kernel

Still no dice on launching without a modeset or with amdgpu.modeset=1. Can only get in by going nomodeset and accessing tty.

Remove that, you don’t need it. AMD works out of the box.

check with pacman -Qs nvidia if there are still remains on your system
Also check in /etc/X11/xorg.conf.d/ if there is still another nvidia config

you don’t need kernel boot parameters with a RX6800XT. However, if there are still Nvidia ones, remove them.

Also, check in /etc/dracut.conf.d/ if you still add nvidia stuff to the initramfs somewhere in there. If yes, remove that, and rebuild your initramfs with reinstall-kernels.

Only created 20-amdgpu.conf after it didn’t work without it, but I’ll get rid of it. (Amdgpu wasn’t even installed on my system prior to all this btw). Only thing left in there is 00-keyboard.conf, nothing nvidia related.

Only nvidia-adjacent package left on my system is libvdpau (breaks ffmpeg dependency if I remove), all other ~14 or so packages are gone.

In dracut.conf. d there are only 3 files, calamares-luks.conf eos-defaults.conf and ostree.conf, the contents of which have no reference to anything gpu/window/server related.

(Neither here nor there, but it’s a 6800 not 6800xt.)

(Sorry for the early unfinished response, typing this on phone).

My kernel parameters still include nvidia-drm.modeset=1 by default, where would I find where to edit that out so I don’t have to keep disabling it each boot?

And to be clear, issue still unresolved.

the last straw would be that this is still causing issues. But I have no experience with that, you should try to undo those changes but make backups of that.

that would be in /etc/kernel/cmdline and has to be followed by a sudo reinstall-kernels

just to be on the save side: Does cat /etc/X11/xorg.conf produce any output? If yes, the file is still there.

I’ll try and go find where randr files are stored and take a peek, very possible. Unfortunately even the cli configurators don’t work in tty. -_-

Ty for the kernal parameter location.

Definitely nothing in xorg.conf. Would it be worthwhile to regenerate a fresh one as per 3.2 Using xorg.conf ? https://wiki.archlinux.org/title/Xorg

Dracut detects nvidia and adds support automatically I believe.

Did you try running sudo reinstall-kernels?