From 4ab38212b3e39e518674baf14a6338fa2fdd1b6b Mon Sep 17 00:00:00 2001 From: Rodrigo Arias Mallo Date: Thu, 20 Feb 2025 12:49:33 +0100 Subject: [PATCH] Add Xilinx xocl derivation Need to move to raccoon to access "config" attribute. --- m/raccoon/configuration.nix | 10 +++++++ m/raccoon/xilinx-xocl-depmod.patch | 27 ++++++++++++++++++ m/raccoon/xilinx-xocl.nix | 28 +++++++++++++++++++ .../raccoon/xilinx-xrt-aiebu.patch | 0 {pkgs => m/raccoon}/xilinx-xrt-icd.patch | 0 {pkgs => m/raccoon}/xilinx-xrt.nix | 22 ++------------- pkgs/overlay.nix | 1 - 7 files changed, 68 insertions(+), 20 deletions(-) create mode 100644 m/raccoon/xilinx-xocl-depmod.patch create mode 100644 m/raccoon/xilinx-xocl.nix rename pkgs/aiebu.patch => m/raccoon/xilinx-xrt-aiebu.patch (100%) rename {pkgs => m/raccoon}/xilinx-xrt-icd.patch (100%) rename {pkgs => m/raccoon}/xilinx-xrt.nix (79%) diff --git a/m/raccoon/configuration.nix b/m/raccoon/configuration.nix index bf1cb65..d0e2fab 100644 --- a/m/raccoon/configuration.nix +++ b/m/raccoon/configuration.nix @@ -34,6 +34,16 @@ services.openssh.settings.X11Forwarding = true; + nixpkgs.overlays = [ + (final: prev: { + xilinx-xrt = prev.callPackage ./xilinx-xrt.nix { }; + xilinx-xocl = prev.callPackage ./xilinx-xocl.nix { + kernel = config.boot.kernelPackages.kernel; + }; + }) + ]; + + users.motd = '' ⠀⠀⠀⠀⠀⠀⠀⣀⣀⣄⣠⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⢰⠇⡀⠀⠙⠻⡿⣦⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀ diff --git a/m/raccoon/xilinx-xocl-depmod.patch b/m/raccoon/xilinx-xocl-depmod.patch new file mode 100644 index 0000000..6f9fe07 --- /dev/null +++ b/m/raccoon/xilinx-xocl-depmod.patch @@ -0,0 +1,27 @@ +--- a/driver/xocl/mgmtpf/Makefile 2025-02-20 15:59:28.379826176 +0100 ++++ b/driver/xocl/mgmtpf/Makefile 2025-02-20 15:59:42.366892140 +0100 +@@ -119,10 +119,6 @@ all: + + install: all + $(MAKE) -C $(KERNEL_SRC) M=$(PWD) modules_install +- depmod -a +- install -m 644 99-xclmgmt.rules /etc/udev/rules.d +- -rmmod -s xclmgmt || true +- -modprobe xclmgmt + + clean: + rm -rf *.o *.o.d *.o.cmd *~ core .depend .*.cmd *.ko *.ko.unsigned \ +--- a/driver/xocl/userpf/Makefile 2025-02-20 16:03:20.751922522 +0100 ++++ b/driver/xocl/userpf/Makefile 2025-02-20 16:03:35.377991553 +0100 +@@ -138,11 +138,6 @@ all: + + install: all + $(MAKE) -C $(KERNEL_SRC) M=$(PWD) modules_install +- depmod -a +- install -m 644 99-xocl.rules /etc/udev/rules.d +- -rmmod -s xocl || true +- -rmmod -s xdma || true +- -modprobe xocl + + clean: + rm -rf *.o *.o.d *~ core .depend .*.cmd *.ko *.ko.unsigned *.mod.c \ diff --git a/m/raccoon/xilinx-xocl.nix b/m/raccoon/xilinx-xocl.nix new file mode 100644 index 0000000..891648c --- /dev/null +++ b/m/raccoon/xilinx-xocl.nix @@ -0,0 +1,28 @@ +{ + stdenv +, lib +, kernel +, xilinx-xrt +}: + +with lib; + +stdenv.mkDerivation rec { + pname = "xilinx-xocl"; + version = "2.19.0"; + src = "${xilinx-xrt}/src/xrt-${version}"; + dontStrip = true; + preBuild = '' + cd driver/xocl + ''; + patches = [ + ./xilinx-xocl-depmod.patch + ]; + buildFlags = [ "KERNEL_SRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ]; + installFlags = [ + "KERNEL_SRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" + "INSTALL_MOD_PATH=${placeholder "out"}" + ]; + nativeBuildInputs = kernel.moduleBuildDependencies; + hardeningDisable = [ "all" ]; +} diff --git a/pkgs/aiebu.patch b/m/raccoon/xilinx-xrt-aiebu.patch similarity index 100% rename from pkgs/aiebu.patch rename to m/raccoon/xilinx-xrt-aiebu.patch diff --git a/pkgs/xilinx-xrt-icd.patch b/m/raccoon/xilinx-xrt-icd.patch similarity index 100% rename from pkgs/xilinx-xrt-icd.patch rename to m/raccoon/xilinx-xrt-icd.patch diff --git a/pkgs/xilinx-xrt.nix b/m/raccoon/xilinx-xrt.nix similarity index 79% rename from pkgs/xilinx-xrt.nix rename to m/raccoon/xilinx-xrt.nix index 8a74ec9..532b392 100644 --- a/pkgs/xilinx-xrt.nix +++ b/m/raccoon/xilinx-xrt.nix @@ -21,7 +21,6 @@ , libsystemtap , libxcrypt , udev -#, glibc }: with lib; @@ -38,12 +37,10 @@ stdenv.mkDerivation rec { }; dontStrip = true; patches = [ - ./aiebu.patch + ./xilinx-xrt-aiebu.patch ./xilinx-xrt-icd.patch ]; cmakeFlags = [ - #"--trace-expand" - #"--debug-find-pkg=OpenCL" "-DXRT_INSTALL_PREFIX=${placeholder "out"}" "-DXRT_INSTALL_DIR=${placeholder "out"}" "-DXRT_NATIVE_BUILD=yes" @@ -62,23 +59,10 @@ stdenv.mkDerivation rec { mv "$fn.tmp" "$fn" done ''; -# preBuild = '' -# set -x -# cat CMakeCache.txt -# echo -------------------------------------- -# grep -R '/var/empty' . -# echo -------------------------------------- -# set +x -# exit 1 -# ''; - buildFlags = [ - #"VERBOSE=1" - ]; nativeBuildInputs = [ cmake pkg-config git ]; buildInputs = [ libdrm.dev opencl-headers ocl-icd boost.dev ncurses - openssl.dev rapidjson protobuf python3 libelf libuuid.dev curl.dev libsystemtap - libxcrypt udev.out udev.dev - #glibc.static + openssl.dev rapidjson protobuf python3 libelf libuuid.dev curl.dev + libsystemtap libxcrypt udev.out udev.dev ]; hardeningDisable = [ "all" ]; } diff --git a/pkgs/overlay.nix b/pkgs/overlay.nix index 80e706f..a36961b 100644 --- a/pkgs/overlay.nix +++ b/pkgs/overlay.nix @@ -42,5 +42,4 @@ final: prev: }); prometheus-slurm-exporter = prev.callPackage ./slurm-exporter.nix { }; - xilinx-xrt = prev.callPackage ./xilinx-xrt.nix { }; }