cleanup
This commit is contained in:
72
flake.nix
72
flake.nix
@@ -386,8 +386,10 @@
|
|||||||
# Pi5
|
# Pi5
|
||||||
"pi5" = nixos-raspberrypi.lib.nixosSystem {
|
"pi5" = nixos-raspberrypi.lib.nixosSystem {
|
||||||
specialArgs = inputs;
|
specialArgs = inputs;
|
||||||
|
system = "aarch64-linux";
|
||||||
modules = [
|
modules = [
|
||||||
Pi5-impermanence.nixosModules.impermanence
|
Pi5-impermanence.nixosModules.impermanence
|
||||||
|
Pi5-sops-nix.nixosModules.sops
|
||||||
./hosts/pi5/configuration.nix
|
./hosts/pi5/configuration.nix
|
||||||
{
|
{
|
||||||
# Hardware specific configuration, see section below for a more complete
|
# Hardware specific configuration, see section below for a more complete
|
||||||
@@ -398,65 +400,21 @@
|
|||||||
raspberry-pi-5.bluetooth
|
raspberry-pi-5.bluetooth
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
Pi5-home-manager.nixosModules.home-manager
|
||||||
({ config, pkgs, lib, ... }:
|
{
|
||||||
let
|
home-manager.useGlobalPkgs = true;
|
||||||
kernelBundle = pkgs.linuxAndFirmware.v6_6_31;
|
home-manager.useUserPackages = true;
|
||||||
in {
|
home-manager.users.matt =
|
||||||
boot = {
|
{ ... }:
|
||||||
loader.raspberryPi.firmwarePackage = kernelBundle.raspberrypifw;
|
{
|
||||||
kernelPackages = kernelBundle.linuxPackages_rpi5;
|
imports = [
|
||||||
};
|
./hosts/pi5/home.nix
|
||||||
nixpkgs.overlays = lib.mkAfter [
|
Pi5-sops-nix.homeManagerModules.sops
|
||||||
(self: super: {
|
];
|
||||||
# This is used in (modulesPath + "/hardware/all-firmware.nix") when at least
|
};
|
||||||
# enableRedistributableFirmware is enabled
|
}
|
||||||
# I know no easier way to override this package
|
|
||||||
inherit (kernelBundle) raspberrypiWirelessFirmware;
|
|
||||||
# Some derivations want to use it as an input,
|
|
||||||
# e.g. raspberrypi-dtbs, omxplayer, sd-image-* modules
|
|
||||||
inherit (kernelBundle) raspberrypifw;
|
|
||||||
})
|
|
||||||
];
|
|
||||||
networking.hostName = "pi5";
|
|
||||||
|
|
||||||
system.nixos.tags = let
|
|
||||||
cfg = config.boot.loader.raspberryPi;
|
|
||||||
in [
|
|
||||||
"raspberry-pi-${cfg.variant}"
|
|
||||||
cfg.bootloader
|
|
||||||
config.boot.kernelPackages.kernel.version
|
|
||||||
];
|
|
||||||
})
|
|
||||||
|
|
||||||
# ...
|
|
||||||
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
# "pi5" = Pi5-nixpkgs.lib.nixosSystem {
|
|
||||||
# system = "aarch64-linux";
|
|
||||||
# modules = [
|
|
||||||
# Pi5-nixos-hardware.nixosModules.raspberry-pi-4
|
|
||||||
# Pi5-impermanence.nixosModules.impermanence
|
|
||||||
# ./hosts/pi5/configuration.nix
|
|
||||||
# Pi5-sops-nix.nixosModules.sops
|
|
||||||
|
|
||||||
|
|
||||||
# Pi5-home-manager.nixosModules.home-manager
|
|
||||||
# {
|
|
||||||
# home-manager.useGlobalPkgs = true;
|
|
||||||
# home-manager.useUserPackages = true;
|
|
||||||
# home-manager.users.matt =
|
|
||||||
# { ... }:
|
|
||||||
# {
|
|
||||||
# imports = [
|
|
||||||
# ./hosts/pi5/home.nix
|
|
||||||
# Pi5-sops-nix.homeManagerModules.sops
|
|
||||||
# ];
|
|
||||||
# };
|
|
||||||
# }
|
|
||||||
# ];
|
|
||||||
# };
|
|
||||||
|
|
||||||
"steamdeck" = steamdeck-nixpkgs.lib.nixosSystem {
|
"steamdeck" = steamdeck-nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
|
|||||||
@@ -1,18 +1,52 @@
|
|||||||
{ pkgs, lib, ... }:
|
{ pkgs, lib, ... }:
|
||||||
|
let
|
||||||
|
kernelBundle = pkgs.linuxAndFirmware.v6_6_31;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
boot = {
|
boot = {
|
||||||
kernelPackages = lib.mkDefault pkgs.linuxKernel.packages.linux_rpi4;
|
loader.raspberryPi.firmwarePackage = kernelBundle.raspberrypifw;
|
||||||
initrd.availableKernelModules = [
|
kernelPackages = kernelBundle.linuxPackages_rpi5;
|
||||||
"usbhid"
|
};
|
||||||
"usb_storage"
|
|
||||||
"vc4"
|
hardware.raspberry-pi.config = {
|
||||||
"pcie_brcmstb" # required for the pcie bus to work
|
all = { # [all] conditional filter, https://www.raspberrypi.com/documentation/computers/config_txt.html#conditional-filters
|
||||||
"reset-raspberrypi" # required for vl805 firmware to load
|
|
||||||
];
|
options = {
|
||||||
|
# https://www.raspberrypi.com/documentation/computers/config_txt.html#enable_uart
|
||||||
|
# in conjunction with `console=serial0,115200` in kernel command line (`cmdline.txt`)
|
||||||
|
# creates a serial console, accessible using GPIOs 14 and 15 (pins
|
||||||
|
# 8 and 10 on the 40-pin header)
|
||||||
|
enable_uart = {
|
||||||
|
enable = true;
|
||||||
|
value = true;
|
||||||
|
};
|
||||||
|
# https://www.raspberrypi.com/documentation/computers/config_txt.html#uart_2ndstage
|
||||||
|
# enable debug logging to the UART, also automatically enables
|
||||||
|
# UART logging in `start.elf`
|
||||||
|
uart_2ndstage = {
|
||||||
|
enable = true;
|
||||||
|
value = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Base DTB parameters
|
||||||
|
# https://github.com/raspberrypi/linux/blob/a1d3defcca200077e1e382fe049ca613d16efd2b/arch/arm/boot/dts/overlays/README#L132
|
||||||
|
base-dt-params = {
|
||||||
|
|
||||||
|
# https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#enable-pcie
|
||||||
|
pciex1 = {
|
||||||
|
enable = true;
|
||||||
|
value = "on";
|
||||||
|
};
|
||||||
|
# PCIe Gen 3.0
|
||||||
|
# https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#pcie-gen-3-0
|
||||||
|
pciex1_gen = {
|
||||||
|
enable = true;
|
||||||
|
value = "3";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
loader = {
|
|
||||||
grub.enable = lib.mkDefault false;
|
|
||||||
generic-extlinux-compatible.enable = lib.mkForce true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,45 +0,0 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
hardware.raspberry-pi.config = {
|
|
||||||
all = { # [all] conditional filter, https://www.raspberrypi.com/documentation/computers/config_txt.html#conditional-filters
|
|
||||||
|
|
||||||
options = {
|
|
||||||
# https://www.raspberrypi.com/documentation/computers/config_txt.html#enable_uart
|
|
||||||
# in conjunction with `console=serial0,115200` in kernel command line (`cmdline.txt`)
|
|
||||||
# creates a serial console, accessible using GPIOs 14 and 15 (pins
|
|
||||||
# 8 and 10 on the 40-pin header)
|
|
||||||
enable_uart = {
|
|
||||||
enable = true;
|
|
||||||
value = true;
|
|
||||||
};
|
|
||||||
# https://www.raspberrypi.com/documentation/computers/config_txt.html#uart_2ndstage
|
|
||||||
# enable debug logging to the UART, also automatically enables
|
|
||||||
# UART logging in `start.elf`
|
|
||||||
uart_2ndstage = {
|
|
||||||
enable = true;
|
|
||||||
value = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Base DTB parameters
|
|
||||||
# https://github.com/raspberrypi/linux/blob/a1d3defcca200077e1e382fe049ca613d16efd2b/arch/arm/boot/dts/overlays/README#L132
|
|
||||||
base-dt-params = {
|
|
||||||
|
|
||||||
# https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#enable-pcie
|
|
||||||
pciex1 = {
|
|
||||||
enable = true;
|
|
||||||
value = "on";
|
|
||||||
};
|
|
||||||
# PCIe Gen 3.0
|
|
||||||
# https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#pcie-gen-3-0
|
|
||||||
pciex1_gen = {
|
|
||||||
enable = true;
|
|
||||||
value = "3";
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -15,16 +15,14 @@ let
|
|||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
# ./boot.nix
|
./boot.nix
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
./impermanence.nix
|
./impermanence.nix
|
||||||
./bootconfig.nix
|
./networking.nix
|
||||||
# ./sops.nix
|
./sops.nix
|
||||||
# ../default.nix
|
|
||||||
];
|
];
|
||||||
networking.networkmanager.enable = true;
|
networking.networkmanager.enable = true;
|
||||||
programs.zsh.enable = true;
|
programs.zsh.enable = true;
|
||||||
# raspberry-pi-nix.board = lib.mkForce "bcm2712";
|
|
||||||
|
|
||||||
# Enable nix flakes and nix-command tools
|
# Enable nix flakes and nix-command tools
|
||||||
nix = {
|
nix = {
|
||||||
@@ -52,9 +50,32 @@ in
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Configure nixpkgs
|
# Configure nixpkgs
|
||||||
# Enable non free
|
nixpkgs = {
|
||||||
nixpkgs.config.allowUnfree = lib.mkForce true;
|
# Enable non free
|
||||||
|
config.allowUnfree = lib.mkForce true;
|
||||||
|
overlays = lib.mkAfter [
|
||||||
|
(self: super: {
|
||||||
|
# This is used in (modulesPath + "/hardware/all-firmware.nix") when at least
|
||||||
|
# enableRedistributableFirmware is enabled
|
||||||
|
# I know no easier way to override this package
|
||||||
|
inherit (kernelBundle) raspberrypiWirelessFirmware;
|
||||||
|
# Some derivations want to use it as an input,
|
||||||
|
# e.g. raspberrypi-dtbs, omxplayer, sd-image-* modules
|
||||||
|
inherit (kernelBundle) raspberrypifw;
|
||||||
|
})
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
system.nixos.tags = let
|
||||||
|
cfg = config.boot.loader.raspberryPi;
|
||||||
|
in [
|
||||||
|
"raspberry-pi-${cfg.variant}"
|
||||||
|
cfg.bootloader
|
||||||
|
config.boot.kernelPackages.kernel.version
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
# Hardware configs
|
# Hardware configs
|
||||||
hardware = {
|
hardware = {
|
||||||
@@ -75,30 +96,9 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# hardware = {
|
|
||||||
# raspberry-pi."4".fkms-3d.enable = false;
|
|
||||||
# raspberry-pi."4".apply-overlays-dtmerge.enable = false;
|
|
||||||
# raspberry-pi."4".audio.enable = false;
|
|
||||||
# raspberry-pi."4".bluetooth.enable = false;
|
|
||||||
# raspberry-pi."4".dwc2.enable = false;
|
|
||||||
# raspberry-pi."4".xhci.enable = false;
|
|
||||||
# };
|
|
||||||
|
|
||||||
# Set your time zone.
|
# Set your time zone.
|
||||||
time.timeZone = timezone;
|
time.timeZone = timezone;
|
||||||
|
|
||||||
networking = {
|
|
||||||
hostName = hostname;
|
|
||||||
|
|
||||||
defaultGateway.address = "10.0.1.1";
|
|
||||||
nameservers = [ "10.0.1.1" ];
|
|
||||||
|
|
||||||
firewall = {
|
|
||||||
enable = true;
|
|
||||||
allowPing = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.services.btattach = {
|
systemd.services.btattach = {
|
||||||
before = [ "bluetooth.service" ];
|
before = [ "bluetooth.service" ];
|
||||||
after = [ "dev-ttyAMA0.device" ];
|
after = [ "dev-ttyAMA0.device" ];
|
||||||
|
|||||||
@@ -7,6 +7,14 @@ in
|
|||||||
networking = {
|
networking = {
|
||||||
hostName = hostname;
|
hostName = hostname;
|
||||||
|
|
||||||
|
defaultGateway.address = "10.0.1.1";
|
||||||
|
nameservers = [ "10.0.1.1" ];
|
||||||
|
|
||||||
|
firewall = {
|
||||||
|
enable = true;
|
||||||
|
allowPing = true;
|
||||||
|
};
|
||||||
|
|
||||||
# Enable Network Manager
|
# Enable Network Manager
|
||||||
networkmanager = {
|
networkmanager = {
|
||||||
enable = lib.mkDefault true;
|
enable = lib.mkDefault true;
|
||||||
|
|||||||
Reference in New Issue
Block a user