Working amdgpu Configurations?


Would someone be kind and share their working amdgpu configuration.nix? I mean everything related to getting an xserver running: kernel drivers, opengl set up, display manager, desktop manager, and whatever else is actually required to get to a working configuration. I’ve been banging my head against this keyboard for four days (not kidding) and cannot get a working xserver on this old, 2009 iMac… I’ve learned a lot along the way, but reading old posts on the internets is not getting it done. Need real, working examples to chew through this, as there are just too many variations and not enough explanation for why anyone is doing anything. Thanks in advance.


For me it worked without any configuration (modesetting X driver). Later I added videoDriver = "amdgpu";

Are you sure that old machine should use amdgpu and not an older AMD driver?


I really am not sure that I should be using amdgpu. However, I’ve tried ati, ati_unfree, etc… Most of them either won’t compile or are no longer available, or just plain don’t seem to work. amdgpu was the first one that at least loaded and didn’t require me to tack nomodeset to the kernel to get it to the console. It’s an old ATI Radeon HD 4850 in a 2009 iMac. I tried to confirm which package would support it and all I could find was a Catalyst driver from AMD that I could try, but it was designed for a 2.6 kernel… I’d give up on this old box but I kind of wanted to prove Apple wrong. They completely stopped providing updates for this computer about three years ago and as such, it’s no longer safe to run Mac OS on it, even though it’s still a serviceable Minecraft/Roblox/Spotify box for the kiddos. :wink:

Really could use some example configs that people have of working amdgpu setups, since it would help a lot with troubleshooting the problem to be able to isolate, “Indeed, this is/is not a driver issue” because it could very well be a problem with the display manager that isn’t providing any useful logs…


Compilation issues should be solved by choosing an older kernel branch, if I understand you right. 4.4 and 4.9 should be supported upstream for a few more years.


Made a few revelations last night… lspci tells me exactly which kernel module is required to operate the video card: radeon. I’ve configured it as best I can figure out how to configure it. If I disable mode setting, I can get to a local prompt, but the radeon driver apparently is disabled when setting this, as it requires mode setting. If I allow mode setting, I get a black screen. I can log on via ssh and see that everything is operating as expected, including the display manager, but that doesn’t do any good if it can’t be used locally. For the moment, I’ve disabled mode setting and thus disabled the radeon driver and have enabled the frame buffer, so the machine is actually usable at the moment. It’s not great and I’d love to figure out how to get past the black screen that occurs when mode settings is permitted for the radeon driver. Any ideas for troubleshooting the black screen? Thanks so much for your input, I’ve noticed your name on literally every thread I’ve read on the forums that relates to video drivers. :smiley:


I’d try searching Linux-wide information for your HW, as usually you can configure it in a similar way.

I might’ve gotten my name on lots of places over the years, but I’m afraid my GPU driver knowledge is very superficial. And I’ve been lucky that I’ve had almost zero GPU Linux problems in the last several years. (Maybe I’ve been a bit careful when choosing HW.)


I’ve done a lot of work on this and a lot of reading. Lots of things feel like they’re going right, then just a blank screen. This is using the Radeon and associated drivers. It feels as if I’m not getting a lot further. I’m including my kernel boot log, in case anyone would care to take a look. I think I’ve hit a wall.


Can’t see a means for sharing a file with this interface. Is there a way?


I have a Lenovo E585 laptop with Radeon Vega 10 Mobile Graphics and I use these settings:

  boot.kernelPackages = pkgs.linuxPackages_latest;                                                                                                                                                                 
  boot.kernelParams = [ "amd_iommu=pt" "ivrs_ioapic[32]=00:14.0" "iommu=soft" ];                                                                                                                                   
  services.xserver.videoDrivers = [ "amdgpu" ];  
  hardware.cpu.amd.updateMicrocode = true;                                                                                                                                                                         
  hardware.enableRedistributableFirmware = true;                                                                                                                                                                   
  hardware.opengl.enable = true;                                                                                                                                                                                   
  hardware.opengl.driSupport = true;   

My issue was the screen froze after GRUB. I found the ivrs_ioapic settings in the ArchWiki.

I think you just drag and drop the file.


I think I’m destined to put in my ten thousand hours to master the X-Server skill on this one.