From a992c7c560ae5ae3f3a9142619b5c56820fa8da1 Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Mon, 25 Apr 2022 22:18:41 -0500 Subject: [PATCH] Move Raspberry Pi 4 support to a module --- hosts/2maccabees/default.nix | 2 +- hosts/2maccabees/hardware-configuration.nix | 38 +++++++++--------- modules/default.nix | 1 + modules/rpi4.nix | 43 +++++++++++++++++++++ profiles/rpi4.nix | 33 ---------------- 5 files changed, 64 insertions(+), 53 deletions(-) create mode 100644 modules/rpi4.nix delete mode 100755 profiles/rpi4.nix diff --git a/hosts/2maccabees/default.nix b/hosts/2maccabees/default.nix index 951b96f..3a44a36 100644 --- a/hosts/2maccabees/default.nix +++ b/hosts/2maccabees/default.nix @@ -7,8 +7,8 @@ ./home-assistant.nix ./networking.nix ./vhosts.nix - ../../profiles/rpi4.nix ../../profiles/home.nix ]; networking.hostName = "2maccabees"; + greg.rpi4.enable = true; } diff --git a/hosts/2maccabees/hardware-configuration.nix b/hosts/2maccabees/hardware-configuration.nix index 50db628..242c146 100755 --- a/hosts/2maccabees/hardware-configuration.nix +++ b/hosts/2maccabees/hardware-configuration.nix @@ -4,28 +4,28 @@ { config, lib, pkgs, modulesPath, ... }: { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = [ "xhci_pci" "usbhid" "usb_storage" "uas" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ ]; - boot.extraModulePackages = [ ]; + boot.initrd.availableKernelModules = [ "xhci_pci" "usbhid" "usb_storage" "uas" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ ]; + boot.extraModulePackages = [ ]; - fileSystems."/" = - { device = "/dev/disk/by-uuid/35f9a49a-b557-4eb3-a013-2afca7a990e4"; - fsType = "btrfs"; - }; + fileSystems."/" ={ + device = "/dev/disk/by-uuid/35f9a49a-b557-4eb3-a013-2afca7a990e4"; + fsType = "btrfs"; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/A982-C8A3"; - fsType = "vfat"; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/A982-C8A3"; + fsType = "vfat"; + }; - swapDevices = - [ { device = "/dev/disk/by-uuid/4b6f2dc4-d845-4ec4-81f2-4f61bb3f282d"; } - ]; + swapDevices = [ { + device = "/dev/disk/by-uuid/4b6f2dc4-d845-4ec4-81f2-4f61bb3f282d"; + } ]; - powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand"; + powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand"; } diff --git a/modules/default.nix b/modules/default.nix index 0259dc0..b002205 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -3,5 +3,6 @@ { imports = [ ./proxy.nix + ./rpi4.nix ]; } diff --git a/modules/rpi4.nix b/modules/rpi4.nix new file mode 100644 index 0000000..fd77bb8 --- /dev/null +++ b/modules/rpi4.nix @@ -0,0 +1,43 @@ +{ config, lib, pkgs, ... }: + +let + cfg = config.greg.rpi4; + +in with lib; { + options = { + greg.rpi4 = { + enable = mkEnableOption "Enable support for Raspberry Pi 4s"; + }; + }; + + config = mkIf cfg.enable { + boot = { + # This prevents us from having to compile our own kernel + kernelPackages = pkgs.linuxPackages_rpi4; + kernelParams = [ + "8250.nr_uarts=1" + "console=ttyAMA0,115200" + "console=tty1" + "cma=128M" + ]; + + loader = { + raspberryPi = { + enable = true; + version = 4; + }; + + # Use the extlinux boot loader. (NixOS wants to enable GRUB by default) + grub.enable = false; + + # Enables the generation of /boot/extlinux/extlinux.conf + #generic-extlinux-compatible.enable = true; + }; + }; + + environment.systemPackages = with pkgs; [ + raspberrypifw + usbutils + ]; + }; +} diff --git a/profiles/rpi4.nix b/profiles/rpi4.nix deleted file mode 100755 index e3e97dc..0000000 --- a/profiles/rpi4.nix +++ /dev/null @@ -1,33 +0,0 @@ -# Base configurations for Raspberry Pi 4s -{ config, pkgs, ... }: - -{ - boot = { - # This prevents us from having to compile our own kernel - kernelPackages = pkgs.linuxPackages_rpi4; - kernelParams = [ - "8250.nr_uarts=1" - "console=ttyAMA0,115200" - "console=tty1" - "cma=128M" - ]; - - loader = { - raspberryPi = { - enable = true; - version = 4; - }; - - # Use the extlinux boot loader. (NixOS wants to enable GRUB by default) - grub.enable = false; - - # Enables the generation of /boot/extlinux/extlinux.conf - #generic-extlinux-compatible.enable = true; - }; - }; - - environment.systemPackages = with pkgs; [ - raspberrypifw - usbutils - ]; -}