60 lines
1.3 KiB
Nix
60 lines
1.3 KiB
Nix
{ pkgs, kernel }:
|
|
|
|
let
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "tenstorrent";
|
|
repo = "tt-kmd";
|
|
rev = "455b948";
|
|
hash = "sha256-oJzAPd85Cyd1hcuFPJNyHA/YXX89fTUK5o4a+M4Nu00=";
|
|
};
|
|
version = "main-01-31-24";
|
|
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;
|
|
|
|
patches = [ ./missing_header.patch ];
|
|
|
|
nativeBuildInputs = [ pkgs.gnumake ];
|
|
|
|
buildPhase = ''
|
|
make -C test
|
|
'';
|
|
|
|
installPhase = ''
|
|
mkdir -p $out/bin
|
|
cp test/ttkmd_test $out/bin/tt-kmd-test
|
|
'';
|
|
};
|
|
}
|