at 21.11-pre 1.6 kB view raw
1# This module provides the proprietary AMDGPU-PRO drivers. 2 3{ config, lib, pkgs, ... }: 4 5with lib; 6 7let 8 9 drivers = config.services.xserver.videoDrivers; 10 11 enabled = elem "amdgpu-pro" drivers; 12 13 package = config.boot.kernelPackages.amdgpu-pro; 14 package32 = pkgs.pkgsi686Linux.linuxPackages.amdgpu-pro.override { libsOnly = true; kernel = null; }; 15 16 opengl = config.hardware.opengl; 17 18 kernel = pkgs.linux_4_9.override { 19 extraConfig = '' 20 KALLSYMS_ALL y 21 ''; 22 }; 23 24in 25 26{ 27 28 config = mkIf enabled { 29 30 nixpkgs.config.xorg.abiCompat = "1.19"; 31 32 services.xserver.drivers = singleton 33 { name = "amdgpu"; modules = [ package ]; display = true; }; 34 35 hardware.opengl.package = package; 36 hardware.opengl.package32 = package32; 37 hardware.opengl.setLdLibraryPath = true; 38 39 boot.extraModulePackages = [ package ]; 40 41 boot.kernelPackages = 42 pkgs.recurseIntoAttrs (pkgs.linuxPackagesFor kernel); 43 44 boot.blacklistedKernelModules = [ "radeon" ]; 45 46 hardware.firmware = [ package ]; 47 48 system.activationScripts.setup-amdgpu-pro = '' 49 mkdir -p /run/lib 50 ln -sfn ${package}/lib ${package.libCompatDir} 51 ln -sfn ${package} /run/amdgpu-pro 52 '' + optionalString opengl.driSupport32Bit '' 53 ln -sfn ${package32}/lib ${package32.libCompatDir} 54 ''; 55 56 system.requiredKernelConfig = with config.lib.kernelConfig; [ 57 (isYes "KALLSYMS_ALL") 58 ]; 59 60 environment.etc = { 61 "amd/amdrc".source = package + "/etc/amd/amdrc"; 62 "amd/amdapfxx.blb".source = package + "/etc/amd/amdapfxx.blb"; 63 "gbm/gbm.conf".source = package + "/etc/gbm/gbm.conf"; 64 }; 65 66 }; 67 68}