dotfiles/packages/i915-sriov/default.nix
2024-11-07 16:25:41 -07:00

52 lines
1.2 KiB
Nix

#
# Kernel module for i915 sr-iov support.
#
# vim: et:ts=2:sw=2:
#
{
stdenv,
lib,
nukeReferences,
fetchFromGitHub,
linuxPackages,
}:
let
kernel = linuxPackages.kernel;
in
stdenv.mkDerivation rec {
name = "i915-sriov-${version}-${kernel.version}";
version = "2024-05-07";
src = fetchFromGitHub {
owner = "strongtz";
repo = "i915-sriov-dkms";
rev = "3d7a1b3fa4706d8da316d8e794d54db96856a2b9";
hash = "sha256-TJk0zmXA2sUhbDu0jsA/1kFeIba8ZIZ0a4joPK4v8Ck=";
};
kernelVersion = kernel.version;
nativeBuildInputs = kernel.moduleBuildDependencies ++ [ nukeReferences ];
postUnpack = ''
cp -r $src/drivers/gpu/drm/i915/* .
ls -lah
'';
buildPhase = ''
make -j$(nproc) -C ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build M=$(pwd) KVER=${kernel.modDirVersion}
'';
installPhase = ''
mkdir -p $out/lib/modules/$kernelVersion/misc
for x in $(find . -name '*.ko'); do
nuke-refs $x
cp $x $out/lib/modules/$kernelVersion/misc/
done
'';
meta = with lib; {
description = "A kernel module to enable SR-IOV on modern intel devices";
license = licenses.gpl2;
platforms = platforms.linux;
};
}