infrastructure

This commit is contained in:
Grimmauld 2024-01-27 14:22:51 +01:00
parent 88b92f49b9
commit 06847c6f6f
4 changed files with 68 additions and 7 deletions

View File

@ -1,8 +1,6 @@
{ stable, config, pkgs, lib, ... }: { hardware, stable, config, pkgs, lib, ... }:
let let
SSID = "mywifi";
SSIDpassword = "mypassword";
interface = "wlan0"; interface = "wlan0";
hostname = "nixpi"; hostname = "nixpi";
in { in {
@ -23,6 +21,47 @@ in {
LC_TIME = "de_DE.UTF-8"; LC_TIME = "de_DE.UTF-8";
}; };
services.xserver = {
enable = true;
# displayManager.lightdm.enable = true;
# desktopManager.gnome.enable = true;
videoDrivers = [ "fbdev" ];
};
sound.enable = true;
hardware.pulseaudio.enable = true;
# Create gpio group
users.groups.gpio = {};
# Change permissions gpio devices
services.udev.extraRules = ''
SUBSYSTEM=="bcm2835-gpiomem", KERNEL=="gpiomem", GROUP="gpio",MODE="0660"
SUBSYSTEM=="gpio", KERNEL=="gpiochip*", ACTION=="add", RUN+="${pkgs.bash}/bin/bash -c 'chown root:gpio /sys/class/gpio/export /sys/class/gpio/unexport ; chmod 220 /sys/class/gpio/export /sys/class/gpio/unexport'"
SUBSYSTEM=="gpio", KERNEL=="gpio*", ACTION=="add",RUN+="${pkgs.bash}/bin/bash -c 'chown root:gpio /sys%p/active_low /sys%p/direction /sys%p/edge /sys%p/value ; chmod 660 /sys%p/active_low /sys%p/direction /sys%p/edge /sys%p/value'"
SUBSYSTEM=="spidev", KERNEL=="spidev0.0", GROUP="spi", MODE="0660"
'';
hardware = {
raspberry-pi."4" = {
# audio.enable = true;
apply-overlays-dtmerge.enable = true;
};
deviceTree = {
enable = true;
filter = "*rpi-4-*.dtb";
overlays = [
{
name = "spi";
dtboFile = ./spi0-0cs.dtbo;
}
];
};
};
users.groups.spi = {};
console.keyMap = "de"; console.keyMap = "de";
services.xserver = { services.xserver = {
@ -52,7 +91,8 @@ in {
hostName = hostname; hostName = hostname;
wireless = { wireless = {
enable = true; enable = true;
# networks."${SSID}".psk = SSIDpassword; userControlled.enable = false;
networks = (import ./networks.nix);
interfaces = [ interface ]; interfaces = [ interface ];
}; };
}; };
@ -66,7 +106,8 @@ in {
shell = pkgs.xonsh; shell = pkgs.xonsh;
isNormalUser = true; isNormalUser = true;
hashedPassword = "$y$j9T$ODBtPwWjIx50Bjhctw9kW/$jhfsHaAyh8zOXBV7cCK9l2M0yWyE3VLiL0h55XXV5J2"; hashedPassword = "$y$j9T$ODBtPwWjIx50Bjhctw9kW/$jhfsHaAyh8zOXBV7cCK9l2M0yWyE3VLiL0h55XXV5J2";
extraGroups = [ "wheel" ]; extraGroups = [ "wheel" "gpio" "spi" "dialout" ];
openssh.authorizedKeys.keys = (import ./authorizedKeys.nix);
}; };
}; };
@ -83,7 +124,9 @@ in {
git-lfs git-lfs
lm_sensors lm_sensors
file file
(writeShellScriptBin "silent-add" "git add --intent-to-add $@ ; git update-index --assume-unchanged $@")
raspberrypi-eeprom raspberrypi-eeprom
libraspberrypi
]; ];
nix.settings.experimental-features = [ "nix-command" "flakes" ]; nix.settings.experimental-features = [ "nix-command" "flakes" ];

View File

@ -64,6 +64,22 @@
"type": "github" "type": "github"
} }
}, },
"nixos-hardware": {
"locked": {
"lastModified": 1706182238,
"narHash": "sha256-Ti7CerGydU7xyrP/ow85lHsOpf+XMx98kQnPoQCSi1g=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "f84eaffc35d1a655e84749228cde19922fcf55f1",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "master",
"repo": "nixos-hardware",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1703013332, "lastModified": 1703013332,
@ -115,6 +131,7 @@
"root": { "root": {
"inputs": { "inputs": {
"agenix": "agenix", "agenix": "agenix",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_2",
"nixpkgs-stable": "nixpkgs-stable" "nixpkgs-stable": "nixpkgs-stable"
} }

View File

@ -1,4 +1,3 @@
# /etc/nixos/flake.nix
{ {
description = "flake for a remote display on a raspi"; description = "flake for a remote display on a raspi";
@ -6,9 +5,10 @@
nixpkgs.url = "github:nixos/nixpkgs?ref=nixpkgs-unstable"; nixpkgs.url = "github:nixos/nixpkgs?ref=nixpkgs-unstable";
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-23.11"; nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-23.11";
agenix.url = "github:ryantm/agenix"; agenix.url = "github:ryantm/agenix";
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
}; };
outputs = {nixpkgs, nixpkgs-stable, agenix, ...} @ inputs: let outputs = {nixpkgs, nixpkgs-stable, agenix, nixos-hardware, ...} @ inputs: let
system = "aarch64-linux"; system = "aarch64-linux";
stable = import nixpkgs-stable { inherit system; config.allowUnfree = true; }; stable = import nixpkgs-stable { inherit system; config.allowUnfree = true; };
in { in {
@ -17,6 +17,7 @@
specialArgs = { inherit inputs stable; }; specialArgs = { inherit inputs stable; };
modules = [ modules = [
./configuration.nix ./configuration.nix
nixos-hardware.nixosModules.raspberry-pi-4
agenix.nixosModules.default agenix.nixosModules.default
]; ];
}; };

BIN
spi0-0cs.dtbo Normal file

Binary file not shown.