From a2adaa518243c7ca5366ab70b64e0876db7b12e4 Mon Sep 17 00:00:00 2001 From: Infinidoge Date: Sun, 23 Jun 2024 21:33:02 +0000 Subject: [PATCH] WIP: Infini-RASPBERRY: improve config --- hosts/Infini-RASPBERRY/default.nix | 10 ++- hosts/Infini-RASPBERRY/sd-image.nix | 130 ++++++++++++++-------------- modules/modules/boot.nix | 3 +- 3 files changed, 75 insertions(+), 68 deletions(-) diff --git a/hosts/Infini-RASPBERRY/default.nix b/hosts/Infini-RASPBERRY/default.nix index fad24a9..add29e9 100644 --- a/hosts/Infini-RASPBERRY/default.nix +++ b/hosts/Infini-RASPBERRY/default.nix @@ -9,6 +9,7 @@ with lib; system.stateVersion = "23.11"; modules = { hardware.form.raspi = true; + boot.ignore = true; }; nixpkgs.overlays = [ @@ -18,7 +19,7 @@ with lib; }) ]; - nixpkgs.hostPlatform.system = "aarch64-linux"; + nixpkgs.hostPlatform = lib.mkForce "aarch64-linux"; modules.hardware = { wireless.enable = mkDefault true; @@ -46,11 +47,16 @@ with lib; }; }; + fileSystems."/" = { + device = "/dev/nmcblk0p2"; + fsType = "ext4"; + }; + documentation = { enable = false; doc.enable = false; man.enable = false; - man.man-dp.enable = false; + man.man-db.enable = false; man.mandoc.enable = false; nixos.enable = false; }; diff --git a/hosts/Infini-RASPBERRY/sd-image.nix b/hosts/Infini-RASPBERRY/sd-image.nix index b1d1785..8aea489 100644 --- a/hosts/Infini-RASPBERRY/sd-image.nix +++ b/hosts/Infini-RASPBERRY/sd-image.nix @@ -1,15 +1,15 @@ { modulesPath, config, lib, pkgs, ... }: { - formatAttr = "sdImage"; + #formatAttr = "sdImage"; - imports = [ - "${modulesPath}/installer/sd-card/sd-image.nix" - "${modulesPath}/profiles/installation-device.nix" - ]; + #imports = [ + # "${modulesPath}/installer/sd-card/sd-image.nix" + # "${modulesPath}/profiles/installation-device.nix" + #]; # sd-image-aarch64-installer/sd-image-raspberrypi-installer - installer.cloneConfig = false; + #installer.cloneConfig = false; # sd-image-raspberrypi boot.consoleLogLevel = lib.mkDefault 7; @@ -20,68 +20,68 @@ # - ttyAMA0: for QEMU's -machine virt boot.kernelParams = [ "console=ttyS0,115200n8" "console=ttyAMA0,115200n8" "console=tty0" ]; - sdImage = { - populateFirmwareCommands = - let - configTxt = pkgs.writeText "config.txt" '' - [pi3] - kernel=u-boot-rpi3.bin + #sdImage = { + # populateFirmwareCommands = + # let + # configTxt = pkgs.writeText "config.txt" '' + # [pi3] + # kernel=u-boot-rpi3.bin - [pi02] - kernel=u-boot-rpi3.bin + # [pi02] + # kernel=u-boot-rpi3.bin - [pi4] - kernel=u-boot-rpi4.bin - enable_gic=1 - armstub=armstub8-gic.bin + # [pi4] + # kernel=u-boot-rpi4.bin + # enable_gic=1 + # armstub=armstub8-gic.bin + # + # # Otherwise the resolution will be weird in most cases, compared to + # # what the pi3 firmware does by default. + # disable_overscan=1 + # + # # Supported in newer board revisions + # arm_boost=1 + # + # [cm4] + # # Enable host mode on the 2711 built-in XHCI USB controller. + # # This line should be removed if the legacy DWC2 controller is required + # # (e.g. for USB device mode) or if USB support is not required. + # otg_mode=1 + # + # [all] + # # Boot in 64-bit mode. + # arm_64bit=1 + # + # # U-Boot needs this to work, regardless of whether UART is actually used or not. + # # Look in arch/arm/mach-bcm283x/Kconfig in the U-Boot tree to see if this is still + # # a requirement in the future. + # enable_uart=1 + # + # # Prevent the firmware from smashing the framebuffer setup done by the mainline kernel + # # when attempting to show low-voltage or overtemperature warnings. + # avoid_warnings=1 + # ''; + # in + # '' + # (cd ${pkgs.raspberrypifw}/share/raspberrypi/boot && cp bootcode.bin fixup*.dat start*.elf $NIX_BUILD_TOP/firmware/) - # Otherwise the resolution will be weird in most cases, compared to - # what the pi3 firmware does by default. - disable_overscan=1 + # # Add the config + # cp ${configTxt} firmware/config.txt - # Supported in newer board revisions - arm_boost=1 + # # Add pi3 specific files + # cp ${pkgs.ubootRaspberryPi3_64bit}/u-boot.bin firmware/u-boot-rpi3.bin - [cm4] - # Enable host mode on the 2711 built-in XHCI USB controller. - # This line should be removed if the legacy DWC2 controller is required - # (e.g. for USB device mode) or if USB support is not required. - otg_mode=1 - - [all] - # Boot in 64-bit mode. - arm_64bit=1 - - # U-Boot needs this to work, regardless of whether UART is actually used or not. - # Look in arch/arm/mach-bcm283x/Kconfig in the U-Boot tree to see if this is still - # a requirement in the future. - enable_uart=1 - - # Prevent the firmware from smashing the framebuffer setup done by the mainline kernel - # when attempting to show low-voltage or overtemperature warnings. - avoid_warnings=1 - ''; - in - '' - (cd ${pkgs.raspberrypifw}/share/raspberrypi/boot && cp bootcode.bin fixup*.dat start*.elf $NIX_BUILD_TOP/firmware/) - - # Add the config - cp ${configTxt} firmware/config.txt - - # Add pi3 specific files - cp ${pkgs.ubootRaspberryPi3_64bit}/u-boot.bin firmware/u-boot-rpi3.bin - - # Add pi4 specific files - cp ${pkgs.ubootRaspberryPi4_64bit}/u-boot.bin firmware/u-boot-rpi4.bin - cp ${pkgs.raspberrypi-armstubs}/armstub8-gic.bin firmware/armstub8-gic.bin - cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-4-b.dtb firmware/ - cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-400.dtb firmware/ - cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-cm4.dtb firmware/ - cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-cm4s.dtb firmware/ - ''; - populateRootCommands = '' - mkdir -p ./files/boot - ${config.boot.loader.generic-extlinux-compatible.populateCmd} -c ${config.system.build.toplevel} -d ./files/boot - ''; - }; + # # Add pi4 specific files + # cp ${pkgs.ubootRaspberryPi4_64bit}/u-boot.bin firmware/u-boot-rpi4.bin + # cp ${pkgs.raspberrypi-armstubs}/armstub8-gic.bin firmware/armstub8-gic.bin + # cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-4-b.dtb firmware/ + # cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-400.dtb firmware/ + # cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-cm4.dtb firmware/ + # cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-cm4s.dtb firmware/ + # ''; + # populateRootCommands = '' + # mkdir -p ./files/boot + # ${config.boot.loader.generic-extlinux-compatible.populateCmd} -c ${config.system.build.toplevel} -d ./files/boot + # ''; + #}; } diff --git a/modules/modules/boot.nix b/modules/modules/boot.nix index 6fc6418..63115c1 100644 --- a/modules/modules/boot.nix +++ b/modules/modules/boot.nix @@ -14,13 +14,14 @@ in efiSysMountPoint = mkOpt path "/boot/efi"; }; systemd-boot.enable = mkBoolOpt false; + ignore = mkBoolOpt false; }; config = mkMerge [ { assertions = [ { - assertion = (count (v: v) [ cfg.grub.enable cfg.systemd-boot.enable config.wsl.enable ]) == 1; + assertion = (count (v: v) [ cfg.grub.enable cfg.systemd-boot.enable config.wsl.enable cfg.ignore ]) == 1; message = "Must enable one and only one bootloader"; } ];