at 18.09-beta 1.6 kB view raw
1# This module provides the proprietary AMDGPU-PRO drivers. 2 3{ config, lib, pkgs, pkgs_i686, ... }: 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_i686.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 ]; libPath = [ package ]; }; 34 35 hardware.opengl.package = package; 36 hardware.opengl.package32 = package32; 37 38 boot.extraModulePackages = [ package ]; 39 40 boot.kernelPackages = 41 pkgs.recurseIntoAttrs (pkgs.linuxPackagesFor kernel); 42 43 boot.blacklistedKernelModules = [ "radeon" ]; 44 45 hardware.firmware = [ package ]; 46 47 system.activationScripts.setup-amdgpu-pro = '' 48 mkdir -p /run/lib 49 ln -sfn ${package}/lib ${package.libCompatDir} 50 ln -sfn ${package} /run/amdgpu-pro 51 '' + optionalString opengl.driSupport32Bit '' 52 ln -sfn ${package32}/lib ${package32.libCompatDir} 53 ''; 54 55 system.requiredKernelConfig = with config.lib.kernelConfig; [ 56 (isYes "KALLSYMS_ALL") 57 ]; 58 59 environment.etc = { 60 "amd/amdrc".source = package + "/etc/amd/amdrc"; 61 "amd/amdapfxx.blb".source = package + "/etc/amd/amdapfxx.blb"; 62 "gbm/gbm.conf".source = package + "/etc/gbm/gbm.conf"; 63 }; 64 65 }; 66 67}