60 lines
1.6 KiB
Nix
60 lines
1.6 KiB
Nix
{ stdenv, pkgs, lib, kernel }:
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "redragon_m811_battery";
|
|
version = "0.1";
|
|
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
|
|
'';
|
|
|
|
buildPhase = ''
|
|
make -C ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build M=$(pwd)
|
|
'';
|
|
|
|
installPhase = ''
|
|
mkdir -p $out/lib/modules/${kernel.modDirVersion}/extra
|
|
cp -v *.ko $out/lib/modules/${kernel.modDirVersion}/extra/
|
|
'';
|
|
|
|
meta = with lib; {
|
|
description = "A kernel module for the Redragon M811 Mouse battery status";
|
|
license = licenses.gpl3;
|
|
maintainers = [ ];
|
|
platforms = platforms.linux;
|
|
};
|
|
}
|