131 lines
2.7 KiB
Nix
131 lines
2.7 KiB
Nix
/*
|
|
{
|
|
outputs,
|
|
flakeLib,
|
|
vars,
|
|
...
|
|
}: {
|
|
imports = [
|
|
outputs.nixosModules.base
|
|
outputs.nixosModules.home-manager
|
|
./hardware-configuration.nix
|
|
];
|
|
|
|
networking = {
|
|
inherit (vars) hostName domain;
|
|
};
|
|
|
|
home-manager.users = flakeLib.mkNixosHomeConfiguration {inherit vars;};
|
|
}
|
|
*/
|
|
|
|
{ inputs
|
|
, pkgs
|
|
, outputs
|
|
, vars
|
|
, ...
|
|
}: {
|
|
imports = [
|
|
inputs.nixos-hardware.nixosModules.raspberry-pi-4
|
|
outputs.nixosModules.base
|
|
outputs.nixosModules.home-manager
|
|
outputs.nixosModules.mediacenter
|
|
];
|
|
|
|
networking = {
|
|
inherit (vars) hostName domain;
|
|
};
|
|
|
|
boot = {
|
|
kernelPackages = pkgs.linuxPackages_rpi4;
|
|
kernelParams = [ "snd_bcm2835.enable_headphones=1" "snd_bcm2835.enable_hdmi=1" ];
|
|
initrd.availableKernelModules = [
|
|
# Allows early (earlier) modesetting for the Raspberry Pi
|
|
"vc4"
|
|
"bcm2835_dma"
|
|
"i2c_bcm2835"
|
|
"xhci_pci"
|
|
"usbhid"
|
|
"usb_storage"
|
|
];
|
|
};
|
|
|
|
fileSystems = {
|
|
"/" = {
|
|
device = "/dev/disk/by-label/NIXOS_SD";
|
|
fsType = "ext4";
|
|
options = [ "noatime" ];
|
|
};
|
|
"/media/net/hel_Public" = {
|
|
device = "hel.odie.home.arpa:/nfs/Public";
|
|
fsType = "nfs";
|
|
};
|
|
"/media/net/hel_USB" = {
|
|
device = "hel.odie.home.arpa:/nfs/USB_Video";
|
|
fsType = "nfs";
|
|
};
|
|
"/media/net/svartalbenheim_Video" = {
|
|
device = "svartalbenheim.odie.home.arpa:/volume1/media/Video";
|
|
fsType = "nfs";
|
|
};
|
|
};
|
|
|
|
swapDevices = [{
|
|
device = "/var/lib/swapfile";
|
|
size = 4 * 1024;
|
|
}];
|
|
|
|
hardware = {
|
|
raspberry-pi."4" = {
|
|
apply-overlays-dtmerge.enable = true;
|
|
fkms-3d.enable = true;
|
|
};
|
|
enableRedistributableFirmware = true;
|
|
};
|
|
|
|
home-manager = {
|
|
extraSpecialArgs = {
|
|
inherit inputs outputs;
|
|
};
|
|
useGlobalPkgs = true;
|
|
useUserPackages = true;
|
|
users = {
|
|
kodi = import ../../home-manager/kodi/pi0;
|
|
odie = import ../../home-manager/odie/pi0;
|
|
};
|
|
};
|
|
|
|
security.rtkit.enable = true;
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
libraspberrypi
|
|
raspberrypi-eeprom
|
|
libcec
|
|
kitty
|
|
nfs-utils
|
|
];
|
|
|
|
programs.zsh.enable = true;
|
|
|
|
services.udev.extraRules = ''
|
|
# allow access to raspi cec device for video group (and optionally register it as a systemd device, used below)
|
|
KERNEL=="vchiq", GROUP="video", MODE="0660", TAG+="systemd", ENV{SYSTEMD_ALIAS}="/dev/vchiq"
|
|
'';
|
|
|
|
system = {
|
|
stateVersion = "23.05";
|
|
};
|
|
|
|
nixpkgs = {
|
|
hostPlatform.system = "aarch64-linux";
|
|
# Fix missing modules
|
|
# https://github.com/NixOS/nixpkgs/issues/154163
|
|
overlays = [
|
|
(final: prev: {
|
|
makeModulesClosure = x: prev.makeModulesClosure (x // { allowMissing = true; });
|
|
libcec = prev.libcec.override { withLibraspberrypi = true; };
|
|
})
|
|
];
|
|
};
|
|
}
|