From 7b6754cc39fe2671d24db9e26f2f32c7b65f5b1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thea=20Sch=C3=B6bl?= Date: Fri, 12 Jan 2024 12:18:54 +0100 Subject: [PATCH] feat: update fanatecff --- : w | 42 +++++++++++++++++++ modules/nixos/hid-fanatecff/default.nix | 5 ++- .../nixos/hid-fanatecff/hid-fanatec-fix.patch | 26 ------------ .../hid-fanatecff/hid-fanatec-makefile.patch | 38 ----------------- .../hid-fanatecff/hid-fanatecff-module.nix | 23 ++++++---- 5 files changed, 59 insertions(+), 75 deletions(-) create mode 100644 : w delete mode 100644 modules/nixos/hid-fanatecff/hid-fanatec-fix.patch delete mode 100644 modules/nixos/hid-fanatecff/hid-fanatec-makefile.patch diff --git a/: w b/: w new file mode 100644 index 0000000..9614d06 --- /dev/null +++ b/: w @@ -0,0 +1,42 @@ +{ + lib, + stdenv, + kernel, + fetchFromGitHub, +}: +stdenv.mkDerivation rec { + pname = "hid-fanatecff"; + version = "0.1.0"; + + src = fetchFromGitHub { + owner = "gotzl"; + repo = "hid-fanatecff"; + rev = "ce894fb7bcae486978f8165e9f521e480120f98a"; + hash = "sha256-/106K52Zi4/6aWh2EwojRm370poaBHyX3Ke2j52ytdo="; + }; + + nativeBuildInputs = kernel.moduleBuildDependencies; + + makeFlags = + kernel.makeFlags + ++ [ + "KVERSION=${kernel.modDirVersion}" + "KERNEL_SRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" + ]; + + installFlags = [ + "-C" + "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" + "M=${src}" + "INSTALL_MOD_PATH=${placeholder "out"}" + ]; + installTargets = ["modules_install"]; + + meta = with lib; { + description = "Linux kernel driver that aims to add support for FANATEC devices"; + homepage = "https://github.com/gotzl/hid-fanatecff"; + license = licenses.gpl2Only; + platforms = platforms.linux; + broken = stdenv.isAarch64; + }; +} diff --git a/modules/nixos/hid-fanatecff/default.nix b/modules/nixos/hid-fanatecff/default.nix index be01912..6cbc07e 100644 --- a/modules/nixos/hid-fanatecff/default.nix +++ b/modules/nixos/hid-fanatecff/default.nix @@ -15,8 +15,9 @@ in { default = false; description = lib.mkDoc '' Enables the Linux module drivers for Fanatec wheel bases. - Works with the CSL Elite, and has experimental support - for the ClubSport V2/V2.5, Podium DD1/DD2, CSR Elite and the CSL DD. + Works with the CSL Elite and CSL/ClubSport DD/DD Pro, + and has experimental support for the ClubSport V2/V2.5, + Podium DD1/DD2 and CSR Elite. ''; }; }; diff --git a/modules/nixos/hid-fanatecff/hid-fanatec-fix.patch b/modules/nixos/hid-fanatecff/hid-fanatec-fix.patch deleted file mode 100644 index e4368cd..0000000 --- a/modules/nixos/hid-fanatecff/hid-fanatec-fix.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 83e8196515ed420bbbb619e015a49a504c56d6bf Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Thea=20Sch=C3=B6bl?= -Date: Mon, 18 Sep 2023 17:18:35 +0200 -Subject: [PATCH 1/1] workaround: led compile error - ---- - hid-ftec.h | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/hid-ftec.h b/hid-ftec.h -index afce2c3..3ddd514 100644 ---- a/hid-ftec.h -+++ b/hid-ftec.h -@@ -1,6 +1,9 @@ - #ifndef __HID_FTEC_H - #define __HID_FTEC_H - -+// TODO: remove -+#define CONFIG_LEDS_CLASS -+ - #define FANATEC_VENDOR_ID 0x0eb7 - - #define CLUBSPORT_V2_WHEELBASE_DEVICE_ID 0x0001 --- -2.41.0 - diff --git a/modules/nixos/hid-fanatecff/hid-fanatec-makefile.patch b/modules/nixos/hid-fanatecff/hid-fanatec-makefile.patch deleted file mode 100644 index 32a0f39..0000000 --- a/modules/nixos/hid-fanatecff/hid-fanatec-makefile.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 4a1395857cc00fd287926bc281ecd36fde9f45fc Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Thea=20Sch=C3=B6bl?= -Date: Mon, 18 Sep 2023 17:30:11 +0200 -Subject: [PATCH 1/1] fix: nix makefile adjustments - ---- - Makefile | 7 ++----- - 1 file changed, 2 insertions(+), 5 deletions(-) - -diff --git a/Makefile b/Makefile -index 0165e72..74b113c 100644 ---- a/Makefile -+++ b/Makefile -@@ -1,6 +1,5 @@ - KVERSION ?= `uname -r` - KDIR ?= /lib/modules/${KVERSION}/build --MODULEDIR ?= /lib/modules/${KVERSION}/kernel/drivers/hid - - default: - @echo -e "\n::\033[32m Compiling Fanatec kernel module\033[0m" -@@ -12,12 +11,10 @@ clean: - @echo "========================================" - $(MAKE) -C $(KDIR) M=$$PWD clean - --install: -+install: default - @echo -e "\n::\033[34m Installing Fanatec kernel module/udev rule\033[0m" - @echo "=====================================================" -- @cp -v hid-fanatec.ko ${MODULEDIR} -- @cp -v fanatec.rules /etc/udev/rules.d/99-fanatec.rules -- depmod -+ $(MAKE) -C $(KDIR) M=$$PWD INSTALL_MOD_PATH=$$out modules_install - - uninstall: - @echo -e "\n::\033[34m Uninstalling Fanatec kernel module/udev rule\033[0m" --- -2.41.0 - diff --git a/modules/nixos/hid-fanatecff/hid-fanatecff-module.nix b/modules/nixos/hid-fanatecff/hid-fanatecff-module.nix index 0a5bd2b..9614d06 100644 --- a/modules/nixos/hid-fanatecff/hid-fanatecff-module.nix +++ b/modules/nixos/hid-fanatecff/hid-fanatecff-module.nix @@ -11,21 +11,26 @@ stdenv.mkDerivation rec { src = fetchFromGitHub { owner = "gotzl"; repo = "hid-fanatecff"; - rev = "9c186b51ab7c6da9abef15c73b1d9eababc302a5"; - sha256 = "14rsj4qx8vim0hx8b7a823gqbmzfginq6kpkxjfay0n1693p2895"; + rev = "ce894fb7bcae486978f8165e9f521e480120f98a"; + hash = "sha256-/106K52Zi4/6aWh2EwojRm370poaBHyX3Ke2j52ytdo="; }; nativeBuildInputs = kernel.moduleBuildDependencies; - makeFlags = [ - "KVERSION=${kernel.modDirVersion}" - "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; + makeFlags = + kernel.makeFlags + ++ [ + "KVERSION=${kernel.modDirVersion}" + "KERNEL_SRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" + ]; - patches = [ - ./hid-fanatec-fix.patch - ./hid-fanatec-makefile.patch + installFlags = [ + "-C" + "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" + "M=${src}" + "INSTALL_MOD_PATH=${placeholder "out"}" ]; + installTargets = ["modules_install"]; meta = with lib; { description = "Linux kernel driver that aims to add support for FANATEC devices";