Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at netboot-syslinux-multiplatform 49 lines 1.4 kB view raw
1{ lib, makeImpureTest, coreutils, amdvlk, vulkan-tools }: 2makeImpureTest { 3 name = "amdvlk"; 4 testedPackage = "amdvlk"; 5 6 sandboxPaths = [ "/sys" "/dev/dri" ]; 7 8 nativeBuildInputs = [ vulkan-tools ]; 9 10 VK_ICD_FILENAMES = "${amdvlk}/share/vulkan/icd.d/amd_icd64.json"; 11 XDG_RUNTIME_DIR = "/tmp"; 12 13 # AMDVLK needs access to /dev/dri/card0 (or another card), but normally it is rw-rw---- 14 # Change the permissions to be rw for everyone 15 prepareRunCommands = '' 16 function reset_perms() 17 { 18 # Reset permissions to previous state 19 for card in /dev/dri/card*; do 20 sudo ${coreutils}/bin/chmod "0''${cardPerms[$card]}" $card 21 done 22 } 23 24 # Save permissions on /dev/dri/card* 25 declare -A cardPerms 26 for card in /dev/dri/card*; do 27 cardPerms[$card]=$(stat -c "%a" $card) 28 done 29 30 sudo ${coreutils}/bin/chmod o+rw /dev/dri/card* 31 trap reset_perms EXIT 32 ''; 33 34 testScript = '' 35 # Check that there is at least one card with write-access 36 if ! ls -l /dev/dri/card* | cut -b8-9 | grep -q rw; then 37 echo 'AMDVLK needs rw access to /dev/dri/card0 or a fitting card, please run `sudo chmod o+rw /dev/dri/card*`' 38 exit 1 39 fi 40 41 vulkaninfo --summary 42 echo "Checking version" 43 vulkaninfo --summary | grep '= ${amdvlk.version}' 44 ''; 45 46 meta = with lib.maintainers; { 47 maintainers = [ Flakebi ]; 48 }; 49}