melodypond/platforms/melodypond.nix

68 lines
1.6 KiB
Nix

{pkgs, lib, modulesPath, config, ...}:
{
imports = [
"${modulesPath}/installer/sd-card/sd-image-aarch64.nix"
];
services.mmelodies.midiDevice = "MPKmini2";
services.mmelodies.audioDevice = "Device";
nixpkgs.hostPlatform.system = "aarch64-linux";
sdImage.imageName = "${config.networking.hostName}.img";
boot.loader.raspberryPi.version = 4;
boot.supportedFilesystems = lib.mkForce [ "btrfs" "cifs" "f2fs" "jfs" "ntfs" "reiserfs" "vfat" "xfs" ];
hardware.raspberry-pi."4" = {
fkms-3d.enable = true;
apply-overlays-dtmerge.enable = true;
audio.enable = false;
};
boot.blacklistedKernelModules = [ "snd_bcm2835" ];
console.enable = false;
environment.systemPackages = with pkgs; [
libraspberrypi
raspberrypi-eeprom
];
networking.hostName = "melodypond";
networking.interfaces.wlan0 = {
useDHCP = false;
ipv4.addresses = [{
address = "192.168.24.1";
prefixLength = 24;
}];
};
services.hostapd = {
enable = true;
interface = "wlan0";
ssid = "mmelodies";
wpaPassphrase = "myPhyzzySounds";
extraConfig = ''
ignore_broadcast_ssid=0
'';
};
services.dnsmasq = {
enable = true;
resolveLocalQueries = false;
settings = {
bind-interfaces = true;
expand-hosts = true;
no-hosts = true;
local = "/lan/";
domain = "lan";
interface = [ "wlan0" ];
dhcp-range = [ "192.168.24.100,192.168.24.200" ];
dhcp-option= "6,0.0.0.0";
host-record = "melodypond,melodypond.lan,192.168.24.1";
};
};
networking.firewall.allowedUDPPorts = [ 53 67 ];
}