diff --git a/flake.nix b/flake.nix index 6c295db3..8382a8e0 100644 --- a/flake.nix +++ b/flake.nix @@ -310,7 +310,6 @@ dacbert = nixosSystem' { modules = [ - "${inputs.nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix" nixos-hardware.nixosModules.raspberry-pi-4 self.nixosModules.rpi-netboot ./hosts/dacbert diff --git a/hosts/containers/nix-build/rpi-netboot.nix b/hosts/containers/nix-build/rpi-netboot.nix index 2a2daab5..5dca37bd 100644 --- a/hosts/containers/nix-build/rpi-netboot.nix +++ b/hosts/containers/nix-build/rpi-netboot.nix @@ -2,12 +2,13 @@ let tftpRoot = pkgs.runCommand "tftproot" {} '' mkdir $out - cp -sr ${tftproots.rpi-netboot-tftproot} $out/ + cp -sr ${tftproots.rpi-netboot-tftproot}/* $out/ ${lib.concatMapStrings (host: '' - ln -s ${tftproots."${host}-tftproot"} $out/${hostRegistry.${host}.serial} + ln -s ${tftproots."${host}-tftproot"} $out/${hostRegistry.hosts.${host}.serial} '') ( builtins.attrNames ( - lib.filterAttrs (_: { serial ? null, ... }: serial != null) hostRegistry + lib.filterAttrs (_: { serial ? null, ... }: serial != null) + hostRegistry.hosts ) )} ''; diff --git a/hosts/dacbert/default.nix b/hosts/dacbert/default.nix index 888face5..080e4604 100644 --- a/hosts/dacbert/default.nix +++ b/hosts/dacbert/default.nix @@ -1,29 +1,11 @@ -{ config, lib, pkgs, modulesPath, ... }: +{ hostRegistry, config, lib, pkgs, modulesPath, ... }: { - boot.initrd.kernelModules = [ ]; - boot.initrd.includeDefaultModules = false; - boot.initrd.availableKernelModules = lib.mkForce [ "usbhid" ]; - boot.kernelModules = [ ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = { - device = "/dev/disk/by-label/NIXOS_SD"; - fsType = "ext4"; - }; - - fileSystems."/boot/firmware" = { - device = "/dev/disk/by-label/FIRMWARE"; - fsType = "vfat"; - }; - - swapDevices = [ ]; - hardware.enableRedistributableFirmware = true; - hardware.deviceTree = { - enable = true; - kernelPackage = config.boot.kernelPackages.kernel; - }; + # hardware.deviceTree = { + # enable = true; + # kernelPackage = config.boot.kernelPackages.kernel; + # }; powerManagement.cpuFreqGovernor = lib.mkDefault "performance"; nixpkgs.config.packageOverrides = pkgs: { @@ -39,15 +21,13 @@ enable = true; version = 4; firmwareConfig = '' - gpu_mem=192 + gpu_mem=256 dtparam=audio=on ''; }; }; - kernelPackages = pkgs.linuxPackages_latest; + # kernelPackages = lib.mkForce pkgs.linuxPackages_latest; - # No ZFS on latest kernel: - supportedFilesystems = lib.mkForce [ "vfat" "ext4" ]; kernelParams = lib.mkForce [ "snd_bcm2835.enable_headphones=1" # don't let sd-image-aarch64.nix setup serial console as it breaks bluetooth. @@ -56,13 +36,8 @@ tmpOnTmpfs = true; }; - sdImage = { - compressImage = false; - imageBaseName = config.networking.hostName; - firmwareSize = 512; - }; hardware.raspberry-pi."4" = { - # fkms-3d.enable = true; + fkms-3d.enable = true; }; c3d2 = { @@ -72,7 +47,6 @@ hq.statistics.enable = true; audioServer.enable = true; k-ot.enable = true; - autoUpdate = true; }; nix = { diff --git a/modules/rpi-netboot.nix b/modules/rpi-netboot.nix index e03d6921..8d2dc7b7 100644 --- a/modules/rpi-netboot.nix +++ b/modules/rpi-netboot.nix @@ -4,6 +4,9 @@ loader.raspberryPi = { enable = true; version = 4; + firmwareConfig = lib.mkDefault '' + gpu_mem=256 + ''; }; kernelPackages = pkgs.linuxPackages_rpi4; kernelParams = [ @@ -57,7 +60,9 @@ # r/o /nix/store services.nix-daemon.enable = false; sockets.nix-daemon.enable = false; + services.nix-gc.enable = false; }; + nix.gc.automatic = lib.mkForce false; services.journald.extraConfig = '' Storage=volatile ''; @@ -71,9 +76,9 @@ cat << EOF > $out/config.txt kernel=kernel8.img initramfs initrd.img followkernel - gpu_mem=256 arm_64bit=1 + ${toString config.boot.loader.raspberryPi.firmwareConfig} EOF - echo "dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 verbose init=${config.system.build.toplevel}/init" > $out/cmdline.txt + echo "dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 verbose init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams}" > $out/cmdline.txt ''; }