1{
2 lib,
3 stdenv,
4 kernel,
5 kernelModuleMakeFlags,
6 fetchFromGitHub,
7 unstableGitUpdater,
8}:
9
10stdenv.mkDerivation {
11 pname = "framework-laptop-kmod";
12 version = "0-unstable-2024-09-15";
13
14 src = fetchFromGitHub {
15 owner = "DHowett";
16 repo = "framework-laptop-kmod";
17 rev = "6164bc3dec24b6bb2806eedd269df6a170bcc930";
18 hash = "sha256-OwtXQR0H4GNlYjVZ5UU5MEM6ZOjlV3B0x2auYawbS2U=";
19 };
20
21 nativeBuildInputs = kernel.moduleBuildDependencies;
22
23 makeFlags = kernelModuleMakeFlags ++ [
24 "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
25 ];
26
27 installPhase = ''
28 runHook preInstall
29 install -D framework_laptop.ko -t $out/lib/modules/${kernel.modDirVersion}/extra
30 runHook postInstall
31 '';
32
33 passthru.updateScript = unstableGitUpdater { };
34
35 meta = with lib; {
36 description = "Kernel module that exposes the Framework Laptop (13, 16)'s battery charge limit and LEDs to userspace";
37 homepage = "https://github.com/DHowett/framework-laptop-kmod";
38 license = licenses.gpl2Only;
39 maintainers = with maintainers; [ gaykitty ];
40 platforms = platforms.linux;
41 broken = lib.versionOlder kernel.version "6.1";
42 };
43}