diff options
Diffstat (limited to 'pkgs/os-specific/linux/mstflint_access')
-rw-r--r-- | pkgs/os-specific/linux/mstflint_access/default.nix | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/mstflint_access/default.nix b/pkgs/os-specific/linux/mstflint_access/default.nix new file mode 100644 index 00000000000..6e29e27ccbf --- /dev/null +++ b/pkgs/os-specific/linux/mstflint_access/default.nix @@ -0,0 +1,40 @@ +{ lib, stdenv, fetchurl, kernel, kmod, mstflint }: + +stdenv.mkDerivation rec { + pname = "mstflint_access"; + inherit (mstflint) version; + + src = fetchurl { + url = "https://github.com/Mellanox/mstflint/releases/download/v${version}/kernel-mstflint-${version}.tar.gz"; + hash = "sha256-rfZts0m8x6clVazpbAa2xK+dYgRU9Us5rbcWa0uHJ1M="; + }; + + nativeBuildInputs = [ kmod ] ++ kernel.moduleBuildDependencies; + + makeFlags = kernel.makeFlags ++ [ + "KVER=${kernel.modDirVersion}" + "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" + ]; + + enableParallelBuilding = true; + + preConfigure = lib.optionals (lib.versionAtLeast kernel.version "6.4") '' + sed -i "s/class_create(THIS_MODULE, dev->name)/class_create(dev->name)/g" mst_main.c + ''; + + installPhase = '' + runHook preInstall + + install -D ${pname}.ko $out/lib/modules/${kernel.modDirVersion}/extra/${pname}.ko + + runHook postInstall + ''; + + meta = with lib; { + description = "A kernel module for Nvidia NIC firmware update"; + homepage = "https://github.com/Mellanox/mstflint"; + license = [ licenses.gpl2Only ]; + maintainers = with maintainers; [ thillux ]; + platforms = platforms.linux; + }; +} |