.: fmt, push inputs.nixpkgs as "channel", slim down akamanto, initial verification of klipper host mcu
parent
c3fa8be13a
commit
d0df3a55f0
|
@ -11,6 +11,8 @@ in {
|
||||||
self.nixosModules.boot
|
self.nixosModules.boot
|
||||||
];
|
];
|
||||||
|
|
||||||
|
nix.nixPath = [ "nixpkgs=${inputs.nixpkgs}" ];
|
||||||
|
|
||||||
deployment = {
|
deployment = {
|
||||||
allowLocalDeployment = true;
|
allowLocalDeployment = true;
|
||||||
buildOnTarget = true;
|
buildOnTarget = true;
|
||||||
|
|
|
@ -12,23 +12,26 @@ let
|
||||||
${pkgs.wlr-randr}/bin/wlr-randr --output HDMI-A-1 --transform 180
|
${pkgs.wlr-randr}/bin/wlr-randr --output HDMI-A-1 --transform 180
|
||||||
${pkgs.klipperscreen}/bin/KlipperScreen --configfile ${klipperScreenConfig}
|
${pkgs.klipperscreen}/bin/KlipperScreen --configfile ${klipperScreenConfig}
|
||||||
'';
|
'';
|
||||||
|
klipperHostMcu = "${pkgs.klipper-firmware.override {
|
||||||
|
firmwareConfig = ./klipper-rpi.cfg;
|
||||||
|
}}/klipper.elf";
|
||||||
in {
|
in {
|
||||||
# https://en.wikipedia.org/wiki/Aka_Manto
|
# https://en.wikipedia.org/wiki/Aka_Manto
|
||||||
networking.hostName = "akamanto";
|
networking.hostName = "akamanto";
|
||||||
deployment.targetHost = "akamanto.local";
|
deployment.targetHost = "akamanto.local";
|
||||||
deployment.buildOnTarget = lib.mkForce false;
|
deployment.buildOnTarget = lib.mkForce false;
|
||||||
|
|
||||||
imports = with inputs.self.nixosModules;
|
imports = with inputs.self.nixosModules; [
|
||||||
[
|
"${inputs.nixpkgs}/nixos/modules/installer/sd-card/sd-image.nix"
|
||||||
"${inputs.nixpkgs}/nixos/modules/installer/sd-card/sd-image.nix"
|
common
|
||||||
common
|
# inputs.impermanence.nixosModule
|
||||||
# inputs.impermanence.nixosModule
|
];
|
||||||
];
|
|
||||||
|
|
||||||
# don't want to pull in all of installer stuff, so we need to copy some things from sd-image-aarch64.nix:
|
# don't want to pull in all of installer stuff, so we need to copy some things from sd-image-aarch64.nix:
|
||||||
sdImage = {
|
sdImage = {
|
||||||
compressImage = false;
|
compressImage = false;
|
||||||
imageName = "${config.sdImage.imageBaseName}-${pkgs.stdenv.hostPlatform.system}-${config.networking.hostName}.img";
|
imageName =
|
||||||
|
"${config.sdImage.imageBaseName}-${pkgs.stdenv.hostPlatform.system}-${config.networking.hostName}.img";
|
||||||
populateFirmwareCommands = let
|
populateFirmwareCommands = let
|
||||||
configTxt = pkgs.writeText "config.txt" ''
|
configTxt = pkgs.writeText "config.txt" ''
|
||||||
[pi3]
|
[pi3]
|
||||||
|
@ -47,15 +50,15 @@ in {
|
||||||
# when attempting to show low-voltage or overtemperature warnings.
|
# when attempting to show low-voltage or overtemperature warnings.
|
||||||
avoid_warnings=1
|
avoid_warnings=1
|
||||||
'';
|
'';
|
||||||
in ''
|
in ''
|
||||||
(cd ${pkgs.raspberrypifw}/share/raspberrypi/boot && cp bootcode.bin fixup*.dat start*.elf $NIX_BUILD_TOP/firmware/)
|
(cd ${pkgs.raspberrypifw}/share/raspberrypi/boot && cp bootcode.bin fixup*.dat start*.elf $NIX_BUILD_TOP/firmware/)
|
||||||
|
|
||||||
# Add the config
|
# Add the config
|
||||||
cp ${configTxt} firmware/config.txt
|
cp ${configTxt} firmware/config.txt
|
||||||
|
|
||||||
# Add pi3 specific files
|
# Add pi3 specific files
|
||||||
cp ${pkgs.ubootRaspberryPi3_64bit}/u-boot.bin firmware/u-boot-rpi3.bin
|
cp ${pkgs.ubootRaspberryPi3_64bit}/u-boot.bin firmware/u-boot-rpi3.bin
|
||||||
'';
|
'';
|
||||||
populateRootCommands = ''
|
populateRootCommands = ''
|
||||||
mkdir -p ./files/boot
|
mkdir -p ./files/boot
|
||||||
${config.boot.loader.generic-extlinux-compatible.populateCmd} -c ${config.system.build.toplevel} -d ./files/boot
|
${config.boot.loader.generic-extlinux-compatible.populateCmd} -c ${config.system.build.toplevel} -d ./files/boot
|
||||||
|
@ -122,12 +125,21 @@ in {
|
||||||
|
|
||||||
# diet
|
# diet
|
||||||
boot.binfmt.emulatedSystems = lib.mkForce [ ];
|
boot.binfmt.emulatedSystems = lib.mkForce [ ];
|
||||||
environment.systemPackages = with pkgs; lib.mkForce [ coreutils zsh bashInteractive nix systemd gnugrep
|
environment.systemPackages = with pkgs;
|
||||||
(glibcLocales.override {
|
lib.mkForce [
|
||||||
allLocales = false;
|
coreutils
|
||||||
locales = [ "en_US.UTF-8/UTF-8" "en_CA.UTF-8/UTF-8" "en_DK.UTF-8/UTF-8" ];
|
zsh
|
||||||
})
|
bashInteractive
|
||||||
];
|
nix
|
||||||
|
systemd
|
||||||
|
gnugrep
|
||||||
|
openssh
|
||||||
|
(glibcLocales.override {
|
||||||
|
allLocales = false;
|
||||||
|
locales =
|
||||||
|
[ "en_US.UTF-8/UTF-8" "en_CA.UTF-8/UTF-8" "en_DK.UTF-8/UTF-8" ];
|
||||||
|
})
|
||||||
|
];
|
||||||
programs.nix-index.enable = lib.mkForce false;
|
programs.nix-index.enable = lib.mkForce false;
|
||||||
services.journald.extraConfig = ''
|
services.journald.extraConfig = ''
|
||||||
Storage=volatile
|
Storage=volatile
|
||||||
|
@ -135,6 +147,25 @@ in {
|
||||||
systemd.coredump.enable = false;
|
systemd.coredump.enable = false;
|
||||||
services.lvm.enable = lib.mkForce false;
|
services.lvm.enable = lib.mkForce false;
|
||||||
# strictly printer stuff below
|
# strictly printer stuff below
|
||||||
|
|
||||||
|
systemd.services.klipper-mcu-rpi = {
|
||||||
|
serviceConfig = {
|
||||||
|
DynamicUser = true;
|
||||||
|
User = "klipper";
|
||||||
|
RuntimeDirectory = "klipper";
|
||||||
|
StateDirectory = "klipper";
|
||||||
|
SupplementaryGroups = [ "dialout" ];
|
||||||
|
OOMScoreAdjust = "-999";
|
||||||
|
CPUSchedulingPolicy = "rr";
|
||||||
|
CPUSchedulingPriority = 99;
|
||||||
|
IOSchedulingClass = "realtime";
|
||||||
|
IOSchedulingPriority = 0;
|
||||||
|
ExecStart = "${klipperHostMcu} -r -I /run/klipper/mcu-rpi";
|
||||||
|
};
|
||||||
|
unitConfig = {
|
||||||
|
Before = [ "klipper.service" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
## uncomment if you need manual config changes
|
## uncomment if you need manual config changes
|
||||||
#systemd.services.klipper.serviceConfig = {
|
#systemd.services.klipper.serviceConfig = {
|
||||||
# ExecStart = lib.mkForce [
|
# ExecStart = lib.mkForce [
|
||||||
|
@ -184,7 +215,7 @@ in {
|
||||||
max_z_velocity = "5";
|
max_z_velocity = "5";
|
||||||
};
|
};
|
||||||
mcu = { serial = "/dev/ttyACM0"; };
|
mcu = { serial = "/dev/ttyACM0"; };
|
||||||
# "mcu rpi" = { serial = "/run/klipper/host-mcu"; };
|
"mcu rpi" = { serial = "/run/klipper/mcu-rpi"; };
|
||||||
virtual_sdcard = { path = "/var/lib/moonraker/gcodes"; };
|
virtual_sdcard = { path = "/var/lib/moonraker/gcodes"; };
|
||||||
|
|
||||||
pause_resume = { };
|
pause_resume = { };
|
||||||
|
@ -356,11 +387,10 @@ in {
|
||||||
};
|
};
|
||||||
machine = { provider = "systemd_cli"; };
|
machine = { provider = "systemd_cli"; };
|
||||||
};
|
};
|
||||||
package = (pkgs.moonraker.overrideAttrs (old: {
|
package = pkgs.moonraker.overrideAttrs (old: {
|
||||||
patches = (old.patches or []) ++ [
|
patches = (old.patches or [ ])
|
||||||
./moonraker-remove-config-path-warning.patch
|
++ [ ./moonraker-remove-config-path-warning.patch ];
|
||||||
];
|
});
|
||||||
}));
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services.fluidd = {
|
services.fluidd = {
|
||||||
|
|
Loading…
Reference in New Issue