From 51ed79611de509927bd6e74dd9792e287e3c5dc2 Mon Sep 17 00:00:00 2001 From: Lumpiasty Date: Fri, 1 Aug 2025 21:57:35 +0200 Subject: [PATCH] add acer-wmi-battery kernel driver --- hosts/acer.nix | 11 ++++++- overlays/pkgs.nix | 3 ++ pkgs/acer-wmi-battery/default.nix | 48 +++++++++++++++++++++++++++++++ 3 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 pkgs/acer-wmi-battery/default.nix diff --git a/hosts/acer.nix b/hosts/acer.nix index 011ef03..a6d31f3 100644 --- a/hosts/acer.nix +++ b/hosts/acer.nix @@ -1,6 +1,6 @@ { lib, pkgs, ... }: -{ +rec { # Identity networking.hostName = "acer"; # Define your hostname. networking.hostId = "fc9583ce"; @@ -90,6 +90,15 @@ # For dev vm stuff networking.firewall.trustedInterfaces = [ "br0" ]; + # Battery driver + boot.extraModulePackages = [ + # Super ugly hack, for some reason it's not included in pkgs.linuxKernel.packages.linux_6_12 + # Despite being in overlays, something's not working + (pkgs.linuxPackages.acer-wmi-battery.override { + kernel = boot.kernelPackages.kernel; + }) + ]; + # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave diff --git a/overlays/pkgs.nix b/overlays/pkgs.nix index 917d919..b3152b1 100644 --- a/overlays/pkgs.nix +++ b/overlays/pkgs.nix @@ -11,4 +11,7 @@ self: super: # version = "6.3.1"; # }); # }); + linuxPackages = super.linuxPackages.extend (lpself: lpsuper: { + acer-wmi-battery = lpsuper.callPackage ../pkgs/acer-wmi-battery {}; + }); } \ No newline at end of file diff --git a/pkgs/acer-wmi-battery/default.nix b/pkgs/acer-wmi-battery/default.nix new file mode 100644 index 0000000..8252b40 --- /dev/null +++ b/pkgs/acer-wmi-battery/default.nix @@ -0,0 +1,48 @@ +# Custom module for Acer WMI features, like battery charge limit +{ + lib, + stdenv, + fetchFromGitHub, + kernel +}: + +stdenv.mkDerivation { + pname = "acer-wmi-battery"; + version = "0.0.0"; + + src = fetchFromGitHub { + owner = "frederik-h"; + repo = "acer-wmi-battery"; + rev = "0889d3ea54655eaa88de552b334911ce7375952f"; + sha256 = "sha256-mI6Ob9BmNfwqT3nndWf3jkz8f7tV10odkTnfApsNo+A="; + }; + + nativeBuildInputs = [ kernel.moduleBuildDependencies ]; + + makeFlags = kernel.makeFlags ++ [ + "INSTALL_MOD_PATH=$(out)" + ]; + + # Makefile provided in repo is useless, hardcoded paths, overwriting it + patchPhase = '' + cat > Makefile <