chore: Add hid-fanatecff pkg

This commit is contained in:
Tristan D. 2024-10-11 02:11:34 +02:00
parent 894eed214b
commit fe9b420f30
Signed by: tristan
SSH key fingerprint: SHA256:3RU4RLOoM8oAjFU19f1W6t8uouZbA7GWkaSW6rjp1k8
2 changed files with 112 additions and 49 deletions

57
pkgs/hid-fanatecff.nix Normal file
View file

@ -0,0 +1,57 @@
{ stdenv
, pkgs
, lib
, fetchFromGitHub
, kmod
, kernelPackages
, breakpointHook
,
}:
let
kernel = kernelPackages.kernel;
in
stdenv.mkDerivation rec {
name = "hid-fanatecff-${version}-${kernel.version}";
version = "0.1.2";
src = fetchFromGitHub {
owner = "gotzl";
repo = "hid-fanatecff";
rev = version;
sha256 = "sha256-twDbjX0p/A18L2x7eS2hyneuQq7rLMxTBT/GfTdweAE=";
};
sourceRoot = "source";
hardeningDisable = [ "pic" "format" ];
nativeBuildInputs =
kernel.moduleBuildDependencies
++ [
pkgs.linuxConsoleTools
];
makeFlags = [
"KVERSION=${kernel.modDirVersion}"
"KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
"MODULEDIR=$(out)/lib/modules/${kernel.modDirVersion}"
];
preInstallPhase = ''
sed -i '/fanatec.rules/d' Makefile
sed -i '/depmod/d' Makefile
mkdir -p $out/lib/modules/${kernel.modDirVersion}
'';
postPhase = ''
substituteInPlace fanatec.rules --replace /usr/bin/evdev-joystick ${pkgs.linuxConsoleTools}/bin/evdev-joystick
mkdir -p $out/lib/udev/rules.d
cp fanatec.rules $out/lib/udev/rules.d/99-fanatec.rules
'';
preInstallPhases = [ "preInstallPhase" ];
postPhases = [ "postPhase" ];
meta = with lib; {
description = "A kernel module that provides support for fanatec wheels and pedals";
homepage = "https://github.com/gotzl/hid-fanatecff";
license = licenses.gpl2;
platforms = platforms.linux;
};
}

View file

@ -27,61 +27,67 @@
./disko.nix
];
config = {
system.stateVersion = "23.05";
config =
let
hid-fanatecff = pkgs.callPackage ../../pkgs/hid-fanatecff.nix { kernelPackages = config.boot.kernelPackages; };
in
{
system.stateVersion = "23.05";
nix.settings.system-features = [
"benchmark"
"big-parallel"
"kvm"
"nixos-test"
"gccarch-x86-64-v3"
"gccarch-znver2"
];
boot = {
kernelPackages = pkgs.pkgsx86_64_v3.linuxPackages_cachyos;
loader = {
systemd-boot = {
enable = lib.mkForce false; #lanzaboote
configurationLimit = 16;
nix.settings.system-features = [
"benchmark"
"big-parallel"
"kvm"
"nixos-test"
"gccarch-x86-64-v3"
"gccarch-znver3"
];
boot = {
kernelPackages = pkgs.pkgsx86_64_v3.linuxPackages_cachyos;
# extraModulePackages = [ hid-fanatecff ];
loader = {
systemd-boot = {
enable = lib.mkForce false; #lanzaboote
configurationLimit = 16;
};
efi.canTouchEfiVariables = true;
};
efi.canTouchEfiVariables = true;
# TODO Extract secureboot module
lanzaboote = {
enable = true;
configurationLimit = 16;
pkiBundle = "/etc/secureboot";
};
initrd = {
availableKernelModules = [ "ahci" "nvme" "xhci_pci" "uas" "usbhid" "usb_storage" "sd_mod" ];
kernelModules = [ ];
systemd.enable = true;
};
};
# TODO Extract secureboot module
lanzaboote = {
enable = true;
configurationLimit = 16;
pkiBundle = "/etc/secureboot";
programs.fuse.userAllowOther = true;
environment.systemPackages = with pkgs; [
lm_sensors
sshfs
coreutils-full
cpu-x
sbctl # secureboot debugging/config/mgmt
];
services.btrfs.autoScrub.enable = true;
# services.udev.packages = [ hid-fanatecff ];
networking = {
hostName = "nixos-desk";
useDHCP = lib.mkDefault true;
};
hardware = {
enableRedistributableFirmware = true;
};
initrd = {
availableKernelModules = [ "ahci" "nvme" "xhci_pci" "uas" "usbhid" "usb_storage" "sd_mod" ];
kernelModules = [ ];
systemd.enable = true;
};
extraModulePackages = [ ];
zramSwap.enable = true;
};
environment.systemPackages = with pkgs; [
lm_sensors
coreutils-full
cpu-x
sbctl # secureboot debugging/config/mgmt
];
services.btrfs.autoScrub.enable = true;
networking = {
hostName = "nixos-desk";
useDHCP = lib.mkDefault true;
};
hardware = {
enableRedistributableFirmware = true;
};
zramSwap.enable = true;
};
}