machine(Tytonidae): Add udev rule and systemd service to load backlight module
This commit is contained in:
parent
ee4fe74676
commit
73b25d9798
1 changed files with 42 additions and 6 deletions
|
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
nixpkgs.config.cudaSupport = true;
|
nixpkgs.config.cudaSupport = true;
|
||||||
|
|
@ -33,11 +34,46 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
boot.binfmt = {
|
boot = {
|
||||||
|
extraModulePackages = with config.boot.kernelPackages; [ddcci-driver];
|
||||||
|
kernelModules = ["ddcci" "ddcci-backlight" "i2c-dev"];
|
||||||
|
binfmt = {
|
||||||
emulatedSystems = [
|
emulatedSystems = [
|
||||||
"aarch64-linux"
|
"aarch64-linux"
|
||||||
"x86_64-windows"
|
"x86_64-windows"
|
||||||
"wasm64-wasi"
|
"wasm64-wasi"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
systemd.services."ddcci@" = {
|
||||||
|
description = "ddcci handler";
|
||||||
|
after = ["graphical.target"];
|
||||||
|
before = ["shutdown.target"];
|
||||||
|
conflicts = ["shutdown.target"];
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
ExecStart = let
|
||||||
|
script = pkgs.writeShellApplication {
|
||||||
|
name = "ddcci-handler";
|
||||||
|
runtimeInputs = with pkgs; [coreutils ddcutil];
|
||||||
|
text = ''
|
||||||
|
echo Trying to attach ddcci to "$1"
|
||||||
|
success=0
|
||||||
|
i=0
|
||||||
|
id=$(echo "$1" | cut -d "-" -f 2)
|
||||||
|
while ((success < 1)) && ((i++ < 5)); do
|
||||||
|
if ddcutil getvcp 10 -b "$id"; then
|
||||||
|
success=1
|
||||||
|
echo ddcci 0x37 | tee "/sys/bus/i2c/devices/$1/new_device"
|
||||||
|
echo ddcci attached to "$1"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in "${lib.getExe' script "ddcci-handler"} %i";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
services.udev.extraRules = ''
|
||||||
|
SUBSYSTEM=="i2c-dev", ACTION=="add", ATTR{name}=="NVIDIA i2c adapter*", TAG+="ddcci", TAG+="systemd", ENV{SYSTEMD_WANTS}+="ddcci@$kernel.service"
|
||||||
|
'';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue