Files
TheaninovOS/modules/nixos/hardware/hid-fanatecff-pkg.nix
2024-04-23 20:41:23 +02:00

60 lines
1.5 KiB
Nix

{
lib,
stdenv,
kernel,
fetchFromGitHub,
linuxConsoleTools,
bash,
}:
stdenv.mkDerivation rec {
pname = "hid-fanatecff";
version = "0.1.0";
src = fetchFromGitHub {
owner = "gotzl";
repo = "hid-fanatecff";
rev = lib.versions.majorMinor version;
hash = "sha256-1Nm/34Er/qfel9LJp++IWd7cTh2Wi93Kgd28YLMVvWo=";
};
nativeBuildInputs = kernel.moduleBuildDependencies;
makeFlags = kernel.makeFlags ++ [
"KVERSION=${kernel.modDirVersion}"
"KERNEL_SRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
];
patchPhase = ''
runHook prePatch
substituteInPlace fanatec.rules \
--replace-fail "/bin/sh" "${bash}/bin/sh"
substituteInPlace fanatec.rules \
--replace-fail "/usr/bin/evdev-joystick" "${linuxConsoleTools}/bin/evdev-joystick"
runHook postPatch
'';
installPhase = ''
runHook preInstall
mkdir -p $out/etc/udev/rules.d
cp fanatec.rules $out/etc/udev/rules.d/99-fanatec.rules
mkdir -p $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/hid
cp hid-fanatec.ko $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/hid
runHook postInstall
'';
meta = with lib; {
description = "Driver to support FANATEC input devices, in particular ForceFeedback of various wheel-bases";
homepage = "https://github.com/gotzl/hid-fanatecff";
license = licenses.gpl2Only;
maintainers = with maintainers; [ theaninova ];
platforms = platforms.linux;
broken = stdenv.isAarch64;
};
}