forked from denis/a811
61 lines
1.7 KiB
Nix
61 lines
1.7 KiB
Nix
{
|
|
description = "A flake to build a kernel module";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
};
|
|
|
|
outputs = { self, nixpkgs }: let
|
|
pkgs = import nixpkgs {
|
|
system = "x86_64-linux";
|
|
};
|
|
in {
|
|
packages.x86_64-linux = {
|
|
default = pkgs.stdenv.mkDerivation rec {
|
|
pname = "redragon_m811_battery";
|
|
version = "0.1";
|
|
kernel = pkgs.linuxPackages_zen.kernel;
|
|
|
|
src = ./.;
|
|
|
|
|
|
hardeningDisable = [ "pic" "format" ]; # 1
|
|
nativeBuildInputs = kernel.moduleBuildDependencies; # 2
|
|
|
|
makeFlags = [
|
|
"KERNELRELEASE=${kernel.modDirVersion}" # 3
|
|
"KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" # 4
|
|
"INSTALL_MOD_PATH=$(out)" # 5
|
|
];
|
|
|
|
configurePhase =
|
|
let makefile = pkgs.writeTextFile { name = ''Makefile''; text = ''
|
|
KERNELRELEASE ?= $(shell uname -r)
|
|
KERNEL_DIR ?= /lib/modules/$(KERNELRELEASE)/build
|
|
PWD := $(shell pwd)
|
|
|
|
obj-m += redragon_m811_battery.o
|
|
|
|
all:
|
|
${"\t"}$(MAKE) -C $(KERNEL_DIR) M=$(PWD) modules
|
|
|
|
install:
|
|
${"\t"}$(MAKE) -C $(KERNEL_DIR) M=$(PWD) modules_install
|
|
|
|
clean:
|
|
${"\t"}$(MAKE) -C $(KERNEL_DIR) M=$(PWD) clean
|
|
|
|
insmod:
|
|
${"\t"}sudo insmod redragon_m811_battery.ko
|
|
|
|
rmmod:
|
|
${"\t"}sudo rmmod redragon_m811_battery.ko
|
|
''; };
|
|
in ''
|
|
cp "${makefile}" Makefile
|
|
'';
|
|
};
|
|
};
|
|
};
|
|
}
|