tt-flake/pkgs/kmd/default.nix

58 lines
1.3 KiB
Nix
Raw Normal View History

2024-01-31 05:20:40 +00:00
{ pkgs, kernel }:
let
src = pkgs.fetchFromGitHub {
owner = "tenstorrent";
repo = "tt-kmd";
2024-10-01 19:11:34 +00:00
rev = "715a5d76e5dbb6d8972d4aa92e8cbe3434986b9f";
hash = "sha256-OCnGhvIDIqkQJXlIpOVnP0O9cA9J7/bz1JPAOpeDNYQ=";
2024-01-31 05:20:40 +00:00
};
2024-10-01 19:11:34 +00:00
version = "unstable-2024-09-06";
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";
inherit src version;
nativeBuildInputs = [ pkgs.gnumake ];
buildPhase = ''
make -C test
'';
installPhase = ''
mkdir -p $out/bin
cp test/ttkmd_test $out/bin/tt-kmd-test
'';
};
}