Fb0: switching to amdgpudrmfb from EFI VGA

As a reminder to myself and maybe anyone else encountering this problem, here are the steps I took to get to my currently running and stable system:

  • install suitable linux (tested with kubuntu 19.04 and kde neon user edition 20200102-1116)
  • update the system before proceeding
  • set grub timeout to 10 in the grub file in /etc/default/grub
  • set timeout time to menu in the grub file in /etc/default/grub
  • update grub with the command sudo update-grub
  • reboot the system
  • if system doesn’t boot correctly, try changing the boot options in grub to include nomodeset (press ‘e’ in the grub boot selection screen to edit)
  • download the latest kernel from kernel.ubuntu.com (generic, not lowlatency and only for amd64)
  • install the kernel by using sudo dpkg -i ./*.deb in the folder where you downloaded them (only if there are no other .deb files in it!)
  • update the initramfs even if it ran automatically with sudo update-initramfs
  • manually add the navi14 firmware to /lib/firmware/amdgpu
  • fix the file permissions with sudo chown root:root <file> and sudo chmod 644 <file> if necessary (use ls -l in console to check)
  • set the boot-option pci=noats in the grub file in /etc/default/grub
  • update grub with the command sudo update-grub
  • reboot the system
  • install ppa-purge in case a ppa needs to be removed later on
  • add oibaf ppa for latest MESA versions with sudo apt-add-repository ppa:oibaf/graphics-drivers
  • update the system
  • install inxi

The issue was solved with a hint from user ‘theboomboomcars’ on reddit is further explained in a reply here. Apparently this is known and going to be fixed in kernel release 5.5.0-rc6. User ‘agd5f’, a X.Org ATI Driver Developer, on the phoronix board explained the problem like this:

Does pci=noats fix the issue? If so you are seeing an issue with some early vbioses that did not set up ATS. It was supposedly fixed before vbios went to partners. The problem stems from the fact the on Linux the IOMMU drivers enable ATS before the device drivers have loaded so there is no way for drivers to set it up properly before ATS is enabled. If you were to load the GPU driver before the IOMMU driver you wouldn’t see this because the driver would have set up ATS properly. Windows doesn’t use ATS so it’s not an issue there.