1{
2 stdenv,
3 lib,
4 fetchFromGitHub,
5 kernel,
6}:
7
8stdenv.mkDerivation (finalAttrs: {
9 name = "tp_smapi-${finalAttrs.version}-${kernel.version}";
10 version = "0.45";
11
12 src = fetchFromGitHub {
13 owner = "linux-thinkpad";
14 repo = "tp_smapi";
15 tag = "tp-smapi/${finalAttrs.version}";
16 hash = "sha256-rB+DNgWUXd1oQBbDgVEAJVJ16nKCaKDtWGAmpcFsx+A=";
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 runHook preInstall
31
32 install -v -D -m 644 thinkpad_ec.ko "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/firmware/thinkpad_ec.ko"
33 install -v -D -m 644 tp_smapi.ko "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/firmware/tp_smapi.ko"
34 install -v -D -m 644 hdaps.ko "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/firmware/hdapsd.ko"
35
36 runHook postInstall
37 '';
38
39 dontStrip = true;
40
41 enableParallelBuilding = true;
42
43 meta = {
44 description = "IBM ThinkPad hardware functions driver";
45 homepage = "https://github.com/linux-thinkpad/tp_smapi";
46 license = lib.licenses.gpl2Plus;
47 maintainers = [ ];
48 # driver is only meant for linux thinkpads, bellow platforms should cover it.
49 platforms = [
50 "x86_64-linux"
51 "i686-linux"
52 ];
53 };
54})