tt-flake/pkgs/kmd/default.nix

61 lines
1.3 KiB
Nix
Raw Permalink Normal View History

2024-01-31 05:20:40 +00:00
{ pkgs, kernel }:
let
src = pkgs.fetchFromGitHub {
owner = "tenstorrent";
repo = "tt-kmd";
2025-01-29 01:53:16 +00:00
rev = "refs/tags/ttkmd-${version}";
hash = "sha256-TTd+SXUQ/RwsZB7YIc0QsE9zHBCYO3NRrCub7/K1rP4=";
2024-01-31 05:20:40 +00:00
};
2025-01-29 01:53:16 +00:00
version = "1.31";
2024-01-31 05:20:40 +00:00
in
{
kmd = pkgs.stdenv.mkDerivation {
pname = "tt-kmd";
inherit src version;
nativeBuildInputs = kernel.moduleBuildDependencies;
hardeningDisable = [ "all" ];
buildPhase = ''
make modules -C ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build M=$(pwd -P)
'';
installPhase = ''
mkdir -p $out/lib/modules/${kernel.modDirVersion}/extra
cp tenstorrent.ko $out/lib/modules/${kernel.modDirVersion}/extra/
'';
};
udev-rules = pkgs.stdenv.mkDerivation rec {
pname = "tenstorrent-udev-rules";
inherit src version;
dontUnpack = true;
installPhase = ''
install -Dpm644 $src/udev-50-tenstorrent.rules $out/lib/udev/rules.d/50-tenstorrent.rules
'';
};
test = pkgs.stdenv.mkDerivation {
pname = "tt-kmd-test";
2025-01-29 01:53:16 +00:00
# https://github.com/tenstorrent/tt-kmd/pull/37
patches = ./limits.patch;
2024-01-31 05:20:40 +00:00
inherit src version;
nativeBuildInputs = [ pkgs.gnumake ];
buildPhase = ''
make -C test
'';
installPhase = ''
mkdir -p $out/bin
cp test/ttkmd_test $out/bin/tt-kmd-test
'';
};
}