pianonix: try getting piano-led-visualizer to run
Still did not work, using raspberrypi os
This commit is contained in:
@@ -26,6 +26,26 @@
|
|||||||
../common/optional/avahi.nix
|
../common/optional/avahi.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
environment.systemPackages = [
|
||||||
|
(pkgs.python3.withPackages (p:
|
||||||
|
with p; [
|
||||||
|
numpy
|
||||||
|
pillow
|
||||||
|
flask
|
||||||
|
rpi-gpio
|
||||||
|
webcolors
|
||||||
|
psutil
|
||||||
|
mido
|
||||||
|
rtmidi-python
|
||||||
|
spidev
|
||||||
|
waitress
|
||||||
|
websockets
|
||||||
|
werkzeug
|
||||||
|
|
||||||
|
pkgs.frajul.rpi-ws281x-python
|
||||||
|
]))
|
||||||
|
];
|
||||||
|
|
||||||
# disko.devices.disk.main.device = "/dev/mmcblk1";
|
# disko.devices.disk.main.device = "/dev/mmcblk1";
|
||||||
|
|
||||||
# enabled by fish, disabling speeds up builds
|
# enabled by fish, disabling speeds up builds
|
||||||
@@ -169,7 +189,7 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.firewall.enable = true;
|
networking.firewall.enable = false;
|
||||||
networking.firewall.allowedTCPPorts = [
|
networking.firewall.allowedTCPPorts = [
|
||||||
5900 # for vnc
|
5900 # for vnc
|
||||||
];
|
];
|
||||||
@@ -201,7 +221,7 @@
|
|||||||
hardware.raspberry-pi."4".apply-overlays-dtmerge.enable = true;
|
hardware.raspberry-pi."4".apply-overlays-dtmerge.enable = true;
|
||||||
hardware.deviceTree = {
|
hardware.deviceTree = {
|
||||||
enable = true;
|
enable = true;
|
||||||
filter = lib.mkForce "*-rpi-*.dtb";
|
filter = lib.mkForce "*-rpi-4*.dtb";
|
||||||
overlays = [
|
overlays = [
|
||||||
{
|
{
|
||||||
name = "spi";
|
name = "spi";
|
||||||
@@ -234,4 +254,23 @@
|
|||||||
|
|
||||||
## My own Piano LED Visualizer
|
## My own Piano LED Visualizer
|
||||||
services.piano-led-visualizer.enable = true;
|
services.piano-led-visualizer.enable = true;
|
||||||
|
|
||||||
|
## Crude fix for avahi
|
||||||
|
systemd.timers.avahiRestart = {
|
||||||
|
description = "Restart avahi-daemon every 5 minutes";
|
||||||
|
wantedBy = ["timers.target"];
|
||||||
|
timerConfig = {
|
||||||
|
OnBootSec = "5min";
|
||||||
|
OnUnitActiveSec = "5min";
|
||||||
|
Unit = "avahiRestart.service";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.avahiRestart = {
|
||||||
|
description = "Restart avahi-daemon service";
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
ExecStart = "${pkgs.systemd}/bin/systemctl restart avahi-daemon.service";
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
boot.kernelModules = [];
|
boot.kernelModules = [];
|
||||||
boot.extraModulePackages = [];
|
boot.extraModulePackages = [];
|
||||||
boot.kernelPackages = pkgs.linuxKernel.packages.linux_rpi4;
|
boot.kernelPackages = pkgs.linuxKernel.packages.linux_rpi4;
|
||||||
|
boot.blacklistedKernelModules = ["snd_bcm2835"]; # Disables sound, required for ws281x to work
|
||||||
# boot.supportedFilesystems = lib.mkForce [
|
# boot.supportedFilesystems = lib.mkForce [
|
||||||
# # remove zfs, since its incompatible with latest kernel
|
# # remove zfs, since its incompatible with latest kernel
|
||||||
# "vfat"
|
# "vfat"
|
||||||
|
|||||||
@@ -26,6 +26,9 @@ in {
|
|||||||
users.users.${cfg.user} = {
|
users.users.${cfg.user} = {
|
||||||
isSystemUser = true;
|
isSystemUser = true;
|
||||||
group = cfg.group;
|
group = cfg.group;
|
||||||
|
createHome = true;
|
||||||
|
home = "/home/${cfg.user}";
|
||||||
|
extraGroups = ["wheel" "gpio"];
|
||||||
};
|
};
|
||||||
users.groups.${cfg.group} = {};
|
users.groups.${cfg.group} = {};
|
||||||
|
|
||||||
@@ -36,11 +39,12 @@ in {
|
|||||||
wantedBy = ["multi-user.target"];
|
wantedBy = ["multi-user.target"];
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
|
WorkingDirectory = "/home/${cfg.user}/Piano-LED-Visualizer";
|
||||||
ExecStart = "${pkgs.frajul.piano-led-visualizer}/bin/piano-led-visualizer";
|
ExecStart = "${pkgs.frajul.piano-led-visualizer}/bin/piano-led-visualizer";
|
||||||
Restart = "always";
|
Restart = "always";
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
User = cfg.user;
|
# User = cfg.user;
|
||||||
Group = cfg.group;
|
# Group = cfg.group;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
python3,
|
python3,
|
||||||
|
callPackage,
|
||||||
fetchFromGitHub,
|
fetchFromGitHub,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
pythonPackages = python3.pkgs;
|
pythonPackages = python3.pkgs;
|
||||||
|
rpi-ws281x-python = callPackage ../rpi-ws281x-python {inherit python3;};
|
||||||
in
|
in
|
||||||
pythonPackages.buildPythonApplication rec {
|
pythonPackages.buildPythonApplication rec {
|
||||||
pname = "piano-led-visualizer";
|
pname = "piano-led-visualizer";
|
||||||
@@ -36,7 +38,8 @@ in
|
|||||||
waitress
|
waitress
|
||||||
websockets
|
websockets
|
||||||
werkzeug
|
werkzeug
|
||||||
# rpi_ws281x
|
|
||||||
|
rpi-ws281x-python
|
||||||
];
|
];
|
||||||
|
|
||||||
format = "setuptools";
|
format = "setuptools";
|
||||||
|
|||||||
@@ -10,15 +10,12 @@ python3.pkgs.buildPythonPackage rec {
|
|||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "rpi-ws281x";
|
owner = "rpi-ws281x";
|
||||||
repo = "rpi-ws281x-pytho";
|
repo = "rpi-ws281x-python";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-tnjvFDBa+sNX6dK6/I1/rRt62k15kTP+9J8eyFRFs/I=";
|
sha256 = "sha256-CVPibDs1QLeXhtoEBw3JplKIIUpzahjgJKy8GVy99Wk=";
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
deepClone = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# sourceRoot = "${src}/library";
|
|
||||||
|
|
||||||
format = "setuptools";
|
format = "setuptools";
|
||||||
|
|
||||||
propagatedBuildInputs = with python3.pkgs; [
|
propagatedBuildInputs = with python3.pkgs; [
|
||||||
@@ -30,9 +27,6 @@ python3.pkgs.buildPythonPackage rec {
|
|||||||
sourceRoot="$sourceRoot/library"
|
sourceRoot="$sourceRoot/library"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Some of the bindings compile C code, so you may need these
|
|
||||||
nativeBuildInputs = [python3.pkgs.setuptools pkgs.scons];
|
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Python bindings for the rpi_ws281x C library";
|
description = "Python bindings for the rpi_ws281x C library";
|
||||||
homepage = "https://github.com/rpi-ws281x/rpi-ws281x-python";
|
homepage = "https://github.com/rpi-ws281x/rpi-ws281x-python";
|
||||||
|
|||||||
Reference in New Issue
Block a user