Factsheet
/ 4 August 2025; 10 months ago (2025-08-04)
/ 4 August 2025; 10 months ago (2025-08-04)
Amdgpu vs. modesetting in current 5.10+ kernels (Xorg)
HELP. Issues with gpu drivers (modesetting, amdgpu)
Modesetting driver on nvidia or amd??
AMDGPU DRM modesetting hang on boot
Dear amdgpu users,
which driver do you prefer in Xorg, amdgpu Xorg driver (with possible TearFree) or kernel modesetting driver, why?
So I have an install of Manjaro that I've had for about a month and a half on my new desktop build, which is the first pc I've built myself. I have about 6 months experience on Manjaro, but the rest was on a weak old Toshiba Satellite laptop, and it had an Intel i5-3340m with Intel UHD integrated graphics. This pc has a Ryzen 5 2600x with an rx 580 GPU. While tinkering, I've noticed that I somehow do not have the modesetting driver available. When I run a phoronix benchmark, the "Display Driver" section is left blank, instead of saying "modesetting 1.whatever" or "amdgpu" When I run inxi, it says the graphics driver is amdgpu, and under version it says kernel. I also have xf86-video-amdgpu installed. I have seen benchmarks indicating that perhaps the modesetting driver has a bit better performance than the xorg xf86-video-amdgpu driver, however I don't have it. Every guide I've seen online for how to switch from amdgpu to modesetting says "Just uninstall xf86-video-amdgpu." which for 1, is a huge indicator of something I believe to be a somewhat big issue with the community regarding support, and that's that if there's an easy way to do something even if it doesn't explain anything or help anyone understand more about the issue, then that's what gets suggested. Literally every post on every forum I've seen suggests that course of action. But more importantly, 2, it doesn't work. When I uninstall xf86-video-amdgpu, I can't even get into xorg. The logs show a bunch of errors, and says module amdgpu doesn't exist. What's that about?
I'm currently running mesa-aco-git, but that's not the issue as nothing changes if I switch to regular mesa. I even reinstalled, and noticed that on a fresh installation, if I run inxi before I reinstall all the mesa packages and stuff then inxi does show "modesetting" under the unloaded section. I am overclocking my gpu and therefore have the amdgpu.ppfeaturemask parameter set in GRUB, but when I undo that I still have the issue. I've not installed any other experimental packages or anything other than mesa-aco, and like I said that's not the issue. Regardless of whether I would see better performance with the modesetting driver vs the xorg driver is irrelevant, the main issue is that it absolutely SHOULD be there, and it's not, and that means there is an issue with my system.
Output of inxi -G:
Graphics:
Device-1: AMD Ellesmere [Radeon RX 470/480/570/570X/580/580X/590]
vendor: XFX Pine driver: amdgpu v: kernel bus ID: 07:00.0
chip ID: 1002:67df
Display: x11 server: X.Org 1.20.6 driver: amdgpu unloaded: vesa
compositor: budgie-wm resolution: 1366x768~60Hz
OpenGL: renderer: Radeon RX 580 Series (POLARIS10 DRM 3.35.0
5.4.2-1-MANJARO LLVM 9.0.0)
v: 4.5 Mesa 20.0.0-devel (git-8a8381dd60) direct render: Yes
This is a guide and a testing summary for enabling amdgpu (instead of radeon) on Ubuntu 18.04.1 having a R9 390X installed and trying out various kernels.
After reading this and reading/watching Level1Techs guide and many others I finally managed to get amdgpu loaded instead of radeon. The following steps show how to accomplish that.
Problem
I want to play games on Linux via DXVK using an open source driver (not amdgpu-pro). Since DXVK only works with the amdgpu driver I had to get rid of Ubuntu loading radeon all the time.
My setup
Ubuntu 18.04.1 LTS
i7-5830k
R9 390X (actually 2, but should not matter)
How to
I. Newest drivers
@NOT-TESTED: It should also work with the official drivers delivered with the Ubuntu 18.04.1 installation. If you do not want to run unofficial drivers skip this step.
@NOTE: Download newer unofficial drivers from PPA to get better performance in DXVK. May be unstable.
Install the latest driver from https://launchpad.net/~oibaf/+archive/ubuntu/graphics-drivers:
sudo add-apt-repository ppa:oibaf/graphics-drivers
sudo apt update && sudo apt dist-upgrade
sudo apt install mesa-vulkan-drivers mesa-vulkan-drivers:i386
@ERROR unmet dependencies: install original drivers first:
sudo add-apt-repository --remove ppa:oibaf/graphics-drivers
sudo apt install mesa-vulkan-drivers mesa-vulkan-drivers:i386
@ATTENTION: Ensure you do not have another graphics driver PPA like ppa:paulo-miguel-dias/mesa added. You may check his Mesa drivers out: STABLE or UNSTABLE
@ERROR general error due to PPA: Purge graphic driver PPA(s) to fall back to original drivers and clean up:
sudo apt install ppa-purge && aptitude
sudo ppa-purge ppa:oibaf/graphics-drivers
sudo apt autoremove && sudo apt autoclean
You may start over.
II. Xorg configuration
Create a xorg configuration file that will be loaded automatically on boot:
/usr/share/X11/xorg.conf.d/<nr-name>.conf for example 42-amdgpu.conf
#/usr/share/X11/xorg.conf.d/42-amdgpu.conf
Section "Device"
Identifier "AMDGPU"
Driver "amdgpu"
Option "AccelMethod" "glamor"
Option "DRI" "3"
EndSection
@NOT-TESTED: Add this to the already existing 10-amdgpu.conf file. May gets overwritten by driver installation.
@OPTION: You can also add this to /etc/X11/xorg.conf or /etc/xorg.conf.
III. Blacklist radeon
Create a blacklist file with the module that shall be blacklisted:
/etc/modprobe.d/<name>.conf for example blacklist-radeon.conf
#/etc/modprobe.d/blacklist-radeon.conf
blacklist radeon
@OPTION: It is possible to use already existing blacklist.conf files by just appending blacklist radeon somewhere.
IV. GRUB configuration
Add or change these parameters in the grub configuration /etc/default/grub:
#/etc/default/grub
...
GRUB_GFXMODE=1920x1080x32
GRUB_CMDLINE_LINUX_DEFAULT="radeon.si_support=0 radeon.cik_support=0 amdgpu.si_support=1 amdgpu.cik_support=1 amdgpu.dc=1 amdgpu.dpm=1 amdgpu.modeset=1"
...
@DID-NOT-WORK: I made a copy of the 40_custom file in /etc/grub.d/. It did not work when I placed it in 40_amdgpu instead of /etc/default/grub. (see the /etc/grub.d/README for more info)
V. Update GRUB and the initial ramdisk
Let the changes above take affect:
sudo update-grub2 && sudo update-initramfs -u -k all
and
reboot
VI. Verify
To verify that the amdgpu driver has loaded and is in use, execute one or more of the following commands:
lsmod | egrep 'Used|amdgpu'
sudo lspci -v | grep amdgpu -B 19
sudo lshw -c video | grep amdgpu -B 10 -A 1
Run a Vulkan test application:
sudo apt install vulkan-utils
and
vulkan-smoketest
VII.I Testing with newer kernels (as of 2018-11-19)
I tried to boot various kernels after the steps above.
To install other kernels I used the Ubuntu Kernel Update Utility:
sudo apt-add-repository -y ppa:teejee2008/ppa
sudo apt update
sudo apt install ukuu
Here is the summary of my testing:
4.15.0 WORKING! Ubuntu 18.04.1 LTS default kernel
4.17.5 WORKING! kernel used in this video
4.18.0 WORKAROUND! current default kernel of Ubuntu 19.10 Disco (2018-11-19)
4.18.15 WORKAROUND! latest 4.18.x kernel with changes to amdgpu
4.18.19 WORKAROUND! latest 4.18.x kernel
4.19 FAILURE! blackscreen or dmesg:
[drm:dm_pp_get_static_clocks [amdgpu]] *ERROR* DM_PPLIB: invalid powerlevel state: 0!
4.19.1 FAILURE! blackscreen or dmesg:
drm:dm_pp_get_static_clocks [amdgpu]] *ERROR* DM_PPLIB: invalid powerlevel state: 0!
drm:amdgpu_vce_ring_test_ring [amdgpu]] *ERROR* amdgpu: ring 12 test failed
drm:amdgpu_device_init.cold.28 [amdgpu]] *ERROR* hw_init of IP block <vce_v2_0> failed -110
amdgpu 0000:05:00.0: amdgpu_device_ip_init failed
amdgpu 0000:05:00.0: Fatal error during GPU init
4.19.2 FAILURE! dmesg:
Direct firmware load for amdgpu/hawaii_mc.bin failed with error -2
@NOTE: I did not investigate more on the errors of the 4.19.x kernels yet.
VII.II Workaround
4.18-4.18.19
To get 4.18 kernels working:
Backup your current firmware files:
sudo cp -r /lib/firmware /lib/firmware-$(uname -r)Download the linux-firmware of Ubuntu 19.10 Disco (current Disco version uses kernel 4.18.0 as default) from https://packages.ubuntu.com/en/disco/linux-firmware or:
wget http://archive.ubuntu.com/ubuntu/pool/main/l/linux-firmware/linux-firmware_1.176.tar.gzExtract files:
tar -xvzf linux-firmware_1.76.tar.gzGo into the new firmware direcotry:
cd linux-firmwareInstall the firmware:
sudo make installReboot
reboot
VII.II Testing with newer kernels (as of 2020-01-01)
Here is a summary of my testing:
4.18.16 WORKING! Mint 19.1 with all mentioned kernel parameters and Radeon blacklisted
4.18.17 - 4.18.20 BLACKSCREEN! Firmware update did not fix the issue
4.18.17 - 4.18.20 NOT TESTED! omit the dpm kernel parameter
4.20.12 WORKING! dpm kernel parameter omitted
5.00.00 WORKING! dpm kernel parameter omitted
5.2.21 RECOMMENDED! WORKING! amdgpu.dpm=1 is fixed and works
VIII Write a fan control service to fix stutter issues & for silent gaming
warning: many gpus have a maximum temperature of 95°C / 203°F
exceeding that can damage your gpu, look at your config twice!
write a service with file name: amdgpu-fancontrol.service
[Unit] Description=amdgpu-fancontrol [Service] Type=simple ExecStart=/usr/bin/amdgpu-fancontrol [Install] WantedBy=multi-user.targetput the service into
/etc/systemd/systemtake the script from github: link
change the parameters of script if you want to
4.1. change all numbers from zero to one if you also have integrated graphic.
/sys/class/drm/card1/device/hwmon/hwmon1/
4.2. change the temp/revolutions mapping. The change of fan speed does interfere with the rendering. Therefore the values should be held constant such that no interpolation takes place in between. The last value will be chosen as maximum fan speed for overheating protection.
TEMPS=( 60000 65000 80000 95000 96000 )
PWMS=( 170 170 170 170 255 )
4.3 check the directory to be sure that it exists
put the script into /usr/bin/amdgpu-fancontrol
activate the service
sudo systemctl daemon-reload sudo systemctl enable amdgpu-fancontrol.service sudo systemctl start amdgpu-fancontrol.service
Curious because it's supposed to be a generic driver, will it work with nvidia or amd? Is it better than nouveau?
I'm trying to install FreeBSD 14 on a laptop featuring an AMD APU (Temash, HD 8250), the install went fine but I've been stuck on loading the amdgpu driver module for hours.
I've installed the drm-kmod package and tried to load the driver either by :
-
kldload amdgpu
-
kldload /boot/modules/amdgpu.ko
-
add a kld_list="amggpu" in rc.conf
In all cases, following the module loading, I get stuck at the line "[drm] add ip block number 8 <vce_v2_0>". I have some more information in /var/log/messages but no obvious error messages.
Do you have any advice or previous experience with the problem ? let me know if you need me to run commands
Apr 25 16:01:09 roubaix kernel: [drm] amdgpu kernel modesetting enabled. Apr 25 16:01:09 roubaix kernel: drmn0: <drmn> on vgapci0 Apr 25 16:01:09 roubaix kernel: vgapci0: child drmn0 requested pci_enable_io Apr 25 16:01:09 roubaix syslogd: last message repeated 1 times Apr 25 16:01:09 roubaix kernel: [drm] initializing kernel modesetting (KABINI 0x1002:0x983D 0x144D:0xC730 0x00). Apr 25 16:01:09 roubaix kernel: drmn0: Trusted Memory Zone (TMZ) feature not supported Apr 25 16:01:09 roubaix kernel: [drm] register mmio base: 0xFEB00000 Apr 25 16:01:09 roubaix kernel: [drm] register mmio size: 262144 Apr 25 16:01:09 roubaix kernel: [drm] add ip block number 0 <cik_common> Apr 25 16:01:09 roubaix kernel: [drm] add ip block number 1 <gmc_v7_0> Apr 25 16:01:09 roubaix kernel: [drm] add ip block number 2 <cik_ih> Apr 25 16:01:09 roubaix kernel: [drm] add ip block number 3 <gfx_v7_0> Apr 25 16:01:09 roubaix kernel: [drm] add ip block number 4 <cik_sdma> Apr 25 16:01:09 roubaix kernel: [drm] add ip block number 5 <kv_dpm> Apr 25 16:01:09 roubaix kernel: [drm] add ip block number 6 <dce_v8_0> Apr 25 16:01:09 roubaix kernel: [drm] add ip block number 7 <uvd_v4_2> Apr 25 16:01:09 roubaix kernel: [drm] add ip block number 8 <vce_v2_0> Apr 25 16:01:09 roubaix kernel: [drm] BIOS signature incorrect 0 0 Apr 25 16:01:09 roubaix kernel: drmn0: Fetched VBIOS from ROM BAR Apr 25 16:01:09 roubaix kernel: amdgpu: ATOM BIOS: 113-C53500-103 Apr 25 16:01:09 roubaix kernel: lkpi_iicbb0: <LinuxKPI I2CBB> on drmn0 Apr 25 16:01:09 roubaix kernel: iicbb0: <I2C bit-banging driver> on lkpi_iicbb0 Apr 25 16:01:09 roubaix kernel: iicbus0: <Philips I2C bus> on iicbb0 addr 0xff Apr 25 16:01:09 roubaix kernel: iic0: <I2C generic I/O> on iicbus0 Apr 25 16:01:09 roubaix kernel: lkpi_iicbb1: <LinuxKPI I2CBB> on drmn0 Apr 25 16:01:09 roubaix kernel: iicbb1: <I2C bit-banging driver> on lkpi_iicbb1 Apr 25 16:01:09 roubaix kernel: iicbus1: <Philips I2C bus> on iicbb1 addr 0xff Apr 25 16:01:09 roubaix kernel: iic1: <I2C generic I/O> on iicbus1 Apr 25 16:01:09 roubaix kernel: lkpi_iicbb2: <LinuxKPI I2CBB> on drmn0 Apr 25 16:01:09 roubaix kernel: iicbb2: <I2C bit-banging driver> on lkpi_iicbb2 Apr 25 16:01:09 roubaix kernel: iicbus2: <Philips I2C bus> on iicbb2 addr 0xff Apr 25 16:01:09 roubaix kernel: iic2: <I2C generic I/O> on iicbus2 Apr 25 16:01:09 roubaix kernel: lkpi_iicbb3: <LinuxKPI I2CBB> on drmn0 Apr 25 16:01:09 roubaix kernel: iicbb3: <I2C bit-banging driver> on lkpi_iicbb3 Apr 25 16:01:09 roubaix kernel: iicbus3: <Philips I2C bus> on iicbb3 addr 0xff Apr 25 16:01:09 roubaix kernel: iic3: <I2C generic I/O> on iicbus3 Apr 25 16:01:09 roubaix kernel: lkpi_iicbb4: <LinuxKPI I2CBB> on drmn0 Apr 25 16:01:09 roubaix kernel: iicbb4: <I2C bit-banging driver> on lkpi_iicbb4 Apr 25 16:01:09 roubaix kernel: iicbus4: <Philips I2C bus> on iicbb4 addr 0xff Apr 25 16:01:09 roubaix kernel: iic4: <I2C generic I/O> on iicbus4 Apr 25 16:01:09 roubaix kernel: lkpi_iicbb5: <LinuxKPI I2CBB> on drmn0 Apr 25 16:01:09 roubaix kernel: iicbb5: <I2C bit-banging driver> on lkpi_iicbb5 Apr 25 16:01:09 roubaix kernel: iicbus5: <Philips I2C bus> on iicbb5 addr 0xff Apr 25 16:01:09 roubaix kernel: iic5: <I2C generic I/O> on iicbus5 Apr 25 16:01:09 roubaix kernel: lkpi_iicbb6: <LinuxKPI I2CBB> on drmn0 Apr 25 16:01:09 roubaix kernel: iicbb6: <I2C bit-banging driver> on lkpi_iicbb6 Apr 25 16:01:09 roubaix kernel: iicbus6: <Philips I2C bus> on iicbb6 addr 0xff Apr 25 16:01:09 roubaix kernel: iic6: <I2C generic I/O> on iicbus6 Apr 25 16:01:09 roubaix kernel: lkpi_iicbb7: <LinuxKPI I2CBB> on drmn0 Apr 25 16:01:09 roubaix kernel: iicbb7: <I2C bit-banging driver> on lkpi_iicbb7 Apr 25 16:01:09 roubaix kernel: iicbus7: <Philips I2C bus> on iicbb7 addr 0xff Apr 25 16:01:09 roubaix kernel: iic7: <I2C generic I/O> on iicbus7 Apr 25 16:01:09 roubaix kernel: [drm] vm size is 64 GB, 2 levels, block size is 10-bit, fragment size is 9-bit Apr 25 16:01:09 roubaix kernel: drmn0: VRAM: 512M 0x0000000F00000000 - 0x0000000F1FFFFFFF (512M used) Apr 25 16:01:09 roubaix kernel: drmn0: GART: 1024M 0x0000000000000000 - 0x000000003FFFFFFF Apr 25 16:01:09 roubaix kernel: [drm] Detected VRAM RAM=512M, BAR=512M Apr 25 16:01:09 roubaix kernel: [drm] RAM width 64bits UNKNOWN Apr 25 16:01:09 roubaix kernel: [drm] amdgpu: 512M of VRAM memory ready Apr 25 16:01:09 roubaix kernel: [drm] amdgpu: 2621M of GTT memory ready. Apr 25 16:01:09 roubaix kernel: [drm] GART: num cpu pages 262144, num gpu pages 262144 Apr 25 16:01:09 roubaix kernel: [drm] PCIE GART of 1024M enabled (table at 0x0000000F0012C000).
I do not know anymore, I tried multiple distros and I always ran into issues with GPU drivers, be it something "trivial" such as sound over HDMI, or more severe, when Steam had problems running anything at all. It is an RX470 8Gb card. I have seen reviews of people who were able to use the Steam Play/Proton to run games which I can not. They said I have to install mesa drivers, which I think I did, but nothing showed in the driver manager and my terminal said that mesa is up to date. When I tried installing mesa on Mint 19, something went horribly wrong and my sysem refused to even post until I removed the CMOS batterry. I am now running Solus as a friend recommended it saying it has good support of both AMB cards and Steam
You shouldn't "install Mesa", as it's already pre-installed with whatever distro you're using. What is possible is that it's an outdated version, in which case there are often ways of updating it for your respective distro, but almost always recommended against because of stability and such.
Honestly, Ubuntu (idk about Mint) should be up-to-date enough (as long as you don't stay on the LTS releases) so that you don't have to worry about the version you're running.
Note that sound over HDMI is quite new, and requires both a recent kernel and a recent Mesa version, but it should be in at least Ubuntu 18.04 nowadays.
I'm not sure whether it's the same in Mint as in Ubuntu, but to update Mesa3d on Ubuntu to the latest dev version (considered more stable than "testing") you just add another ppa; sudo add-apt-repository ppa:ubuntu-x-swat/updates
And then just do a dist-upgrade: sudo apt dist-upgrade.
The actual drivers are in the kernel, for which you'd need to update the kernel with ukuu or the like, to say 4.17.xx which reportedly improved stability on Vega (Polaris, your card, should work already on 4.14 though).
Trying to use an RX580, but it only boots to black. When I use nomodeset I can see this error. With nomodeset it boots but it's super low res. Anyone know anything about this?