chore: Add hid-fanatecff pkg
This commit is contained in:
parent
894eed214b
commit
fe9b420f30
2 changed files with 112 additions and 49 deletions
57
pkgs/hid-fanatecff.nix
Normal file
57
pkgs/hid-fanatecff.nix
Normal 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;
|
||||||
|
};
|
||||||
|
}
|
|
@ -27,61 +27,67 @@
|
||||||
./disko.nix
|
./disko.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
config = {
|
config =
|
||||||
system.stateVersion = "23.05";
|
let
|
||||||
|
hid-fanatecff = pkgs.callPackage ../../pkgs/hid-fanatecff.nix { kernelPackages = config.boot.kernelPackages; };
|
||||||
|
in
|
||||||
|
{
|
||||||
|
system.stateVersion = "23.05";
|
||||||
|
|
||||||
nix.settings.system-features = [
|
nix.settings.system-features = [
|
||||||
"benchmark"
|
"benchmark"
|
||||||
"big-parallel"
|
"big-parallel"
|
||||||
"kvm"
|
"kvm"
|
||||||
"nixos-test"
|
"nixos-test"
|
||||||
"gccarch-x86-64-v3"
|
"gccarch-x86-64-v3"
|
||||||
"gccarch-znver2"
|
"gccarch-znver3"
|
||||||
];
|
];
|
||||||
boot = {
|
boot = {
|
||||||
kernelPackages = pkgs.pkgsx86_64_v3.linuxPackages_cachyos;
|
kernelPackages = pkgs.pkgsx86_64_v3.linuxPackages_cachyos;
|
||||||
loader = {
|
# extraModulePackages = [ hid-fanatecff ];
|
||||||
systemd-boot = {
|
loader = {
|
||||||
enable = lib.mkForce false; #lanzaboote
|
systemd-boot = {
|
||||||
configurationLimit = 16;
|
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
|
programs.fuse.userAllowOther = true;
|
||||||
lanzaboote = {
|
environment.systemPackages = with pkgs; [
|
||||||
enable = true;
|
lm_sensors
|
||||||
configurationLimit = 16;
|
sshfs
|
||||||
pkiBundle = "/etc/secureboot";
|
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 = {
|
zramSwap.enable = true;
|
||||||
availableKernelModules = [ "ahci" "nvme" "xhci_pci" "uas" "usbhid" "usb_storage" "sd_mod" ];
|
|
||||||
kernelModules = [ ];
|
|
||||||
systemd.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
extraModulePackages = [ ];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
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;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue