Merge remote-tracking branch 'murex/master'
This commit is contained in:
commit
1ea122b6d9
93
murex.nix
93
murex.nix
@ -13,10 +13,9 @@
|
|||||||
uboot.enable = true;
|
uboot.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# boot.kernelPackages = pkgs.linuxPackages_latest;
|
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
# boot.kernelPackages = pkgs.linuxPackages_4_18;
|
# boot.kernelPackages = pkgs.linuxPackages_4_18;
|
||||||
# boot.kernelPackages = pkgs.linuxPackages_latest;
|
# boot.kernelPackages = pkgs.linuxPackages_rpi;
|
||||||
boot.kernelPackages = pkgs.linuxPackages_rpi;
|
|
||||||
|
|
||||||
boot.kernelParams = [
|
boot.kernelParams = [
|
||||||
"cma=32M" # for virtual console, see https://nixos.wiki/wiki/NixOS_on_ARM
|
"cma=32M" # for virtual console, see https://nixos.wiki/wiki/NixOS_on_ARM
|
||||||
@ -40,7 +39,7 @@
|
|||||||
# ];
|
# ];
|
||||||
# networking.wireless.enable = true;
|
# networking.wireless.enable = true;
|
||||||
# networking.networkmanager.enable = true;
|
# networking.networkmanager.enable = true;
|
||||||
# networking.wireless.iwd.enable = true;
|
networking.wireless.iwd.enable = true;
|
||||||
|
|
||||||
fileSystems = {
|
fileSystems = {
|
||||||
# "/boot" = {
|
# "/boot" = {
|
||||||
@ -78,62 +77,7 @@
|
|||||||
|
|
||||||
services.octoprint = {
|
services.octoprint = {
|
||||||
enable = true;
|
enable = true;
|
||||||
plugins = plugins: with pkgs; with python2Packages;
|
plugins = ps: with ps; [ printtimegenius touchui psucontrol ];
|
||||||
let rpi-gpio = buildPythonPackage rec {
|
|
||||||
pname = "RPi.GPIO";
|
|
||||||
version = "0.6.5";
|
|
||||||
src = fetchPypi {
|
|
||||||
inherit pname version;
|
|
||||||
sha256 = "a4210ad63bfe844e43995286de0d3950dfacfa0f3799bb9392770ac54a7d2e47";
|
|
||||||
};
|
|
||||||
}; in
|
|
||||||
[
|
|
||||||
# bundles binary which is not built for aarch64 :-(
|
|
||||||
# (buildPythonPackage rec {
|
|
||||||
# pname = "OctoPrint-PrintTimeGenius";
|
|
||||||
# version = "1.3";
|
|
||||||
# src = fetchFromGitHub {
|
|
||||||
# owner = "eyal0";
|
|
||||||
# repo = pname;
|
|
||||||
# rev = version;
|
|
||||||
# sha256 = "1jfiih8vpd1x5yk2yq9sgi0rbjh2ipasj39vs2dmfm3va2fhy75l";
|
|
||||||
# };
|
|
||||||
# propagatedBuildInputs = [ octoprint ];
|
|
||||||
# })
|
|
||||||
(buildPythonPackage rec {
|
|
||||||
pname = "OctoPrint-TouchUI";
|
|
||||||
version = "0.3.13";
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "BillyBlaze";
|
|
||||||
repo = pname;
|
|
||||||
rev = version;
|
|
||||||
sha256 = "0qk12ysabdzy6cna3l4f8v3qcnppppwxxsjx2i0xn1nd0cv6yzwh";
|
|
||||||
};
|
|
||||||
propagatedBuildInputs = [ octoprint ];
|
|
||||||
})
|
|
||||||
(buildPythonPackage rec {
|
|
||||||
pname = "OctoPrint-Cost";
|
|
||||||
version = "master";
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "jasiek";
|
|
||||||
repo = pname;
|
|
||||||
rev = "d1dc75aa64df332d54a237864a116c63cb9e6cf5";
|
|
||||||
sha256 = "0xkz1ygb5jspl1iy841lrv3fwm92ay09m6rw9g4vchwldqbgpjf3";
|
|
||||||
};
|
|
||||||
propagatedBuildInputs = [ octoprint ];
|
|
||||||
})
|
|
||||||
(buildPythonPackage rec {
|
|
||||||
pname = "OctoPrint-PSUControl";
|
|
||||||
version = "0.1.8";
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "kantlivelong";
|
|
||||||
repo = pname;
|
|
||||||
rev = version;
|
|
||||||
sha256 = "0aj38d7b7d5pzmzq841pip18cpg18wy2vrxq2nd13875597y54b8";
|
|
||||||
};
|
|
||||||
propagatedBuildInputs = [ octoprint rpi-gpio ];
|
|
||||||
})
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
systemd.services.setupGpioForRelais = rec {
|
systemd.services.setupGpioForRelais = rec {
|
||||||
wantedBy = [ "octoprint.service" ];
|
wantedBy = [ "octoprint.service" ];
|
||||||
@ -141,18 +85,33 @@
|
|||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
RemainAfterExit = "yes";
|
RemainAfterExit = "yes";
|
||||||
};
|
};
|
||||||
script = ''
|
script = let gpio = toString (458 + 17); in ''
|
||||||
if echo 17 > /sys/class/gpio/export; then
|
if echo ${gpio} > /sys/class/gpio/export; then
|
||||||
echo high > /sys/class/gpio/gpio17/direction
|
echo high > /sys/class/gpio/gpio${gpio}/direction
|
||||||
fi
|
fi
|
||||||
chown octoprint:dialout /sys/class/gpio/gpio17/value
|
chown octoprint:dialout /sys/class/gpio/gpio${gpio}/value
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
users.users.${config.services.octoprint.user}.extraGroups = [
|
users.users.${config.services.octoprint.user}.extraGroups = [
|
||||||
"dialout" # ttyUSB access
|
"dialout" # ttyUSB access
|
||||||
];
|
];
|
||||||
|
|
||||||
services.mjpg-streamer.enable = true;
|
systemd.services.ethKernelPanicFix = rec {
|
||||||
|
wantedBy = [ "networking.target" ];
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
RemainAfterExit = "yes";
|
||||||
|
};
|
||||||
|
# https://github.com/raspberrypi/linux/issues/2449
|
||||||
|
script = ''
|
||||||
|
${pkgs.ethtool}/bin/ethtool -K eth0 tx-tcp-segmentation off tx-tcp6-segmentation off
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
services.mjpg-streamer = {
|
||||||
|
enable = true;
|
||||||
|
# inputPlugin = "input_uvc.so -r 1920x1080";
|
||||||
|
};
|
||||||
|
|
||||||
networking.firewall = {
|
networking.firewall = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@ -174,6 +133,10 @@
|
|||||||
locations."/" = {
|
locations."/" = {
|
||||||
proxyPass = "http://localhost:${toString config.services.octoprint.port}";
|
proxyPass = "http://localhost:${toString config.services.octoprint.port}";
|
||||||
proxyWebsockets = true;
|
proxyWebsockets = true;
|
||||||
|
# do not cache that octoprint is inaccessible on startup
|
||||||
|
extraConfig = ''
|
||||||
|
proxy_cache off;
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
locations."/webcam/".proxyPass = "http://localhost:5050/?action=stream";
|
locations."/webcam/".proxyPass = "http://localhost:5050/?action=stream";
|
||||||
locations."/webcampic/".proxyPass = "http://localhost:5050/?action=snapshot";
|
locations."/webcampic/".proxyPass = "http://localhost:5050/?action=snapshot";
|
||||||
|
Loading…
Reference in New Issue
Block a user