add acer-wmi-battery kernel driver

This commit is contained in:
2025-08-01 21:57:35 +02:00
parent 59fdb864bc
commit 51ed79611d
3 changed files with 61 additions and 1 deletions
+10 -1
View File
@@ -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. Its perfectly fine and recommended to leave
+3
View File
@@ -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 {};
});
}
+48
View File
@@ -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 <<EOF
obj-m += acer-wmi-battery.o
all:
$(printf '\t')make -C ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build M=\$(PWD) modules
modules_install:
$(printf '\t')make -C ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build M=\$(PWD) modules_install
EOF
'';
buildFlags = [ "all" ];
installTargets = [ "modules_install" ];
meta = {
description = "Acer WMI kernel module for battery charge limit";
homepage = "https://github.com/frederik-h/acer-wmi-battery";
license = lib.licenses.gpl2;
platforms = lib.platforms.linux;
};
}