1{
2 stdenv,
3 lib,
4 fetchFromGitHub,
5 kernel,
6}:
7
8stdenv.mkDerivation rec {
9 name = "tp_smapi-${version}-${kernel.version}";
10 version = "0.44-unstable-2025-05-26";
11
12 src = fetchFromGitHub {
13 owner = "linux-thinkpad";
14 repo = "tp_smapi";
15 rev = "a6122c0840c36bf232250afd1da30aaedaf24910";
16 hash = "sha256-4bVyhTVj29ni9hduN20+VEl5/N0BAoMNMBw+k4yl8Y0=";
17 };
18
19 nativeBuildInputs = kernel.moduleBuildDependencies;
20
21 hardeningDisable = [ "pic" ];
22
23 makeFlags = [
24 "KBASE=${kernel.dev}/lib/modules/${kernel.modDirVersion}"
25 "SHELL=${stdenv.shell}"
26 "HDAPS=1"
27 ];
28
29 installPhase = ''
30 install -v -D -m 644 thinkpad_ec.ko "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/firmware/thinkpad_ec.ko"
31 install -v -D -m 644 tp_smapi.ko "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/firmware/tp_smapi.ko"
32 install -v -D -m 644 hdaps.ko "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/firmware/hdapsd.ko"
33 '';
34
35 dontStrip = true;
36
37 enableParallelBuilding = true;
38
39 meta = {
40 description = "IBM ThinkPad hardware functions driver";
41 homepage = "https://github.com/linux-thinkpad/tp_smapi";
42 license = lib.licenses.gpl2Plus;
43 maintainers = [ ];
44 # driver is only meant for linux thinkpads i think bellow platforms should cover it.
45 platforms = [
46 "x86_64-linux"
47 "i686-linux"
48 ];
49 };
50}