From d11eeae7664006a07b0b9e8dbd6ea500c8b3dbdb Mon Sep 17 00:00:00 2001 From: pinage404 Date: Tue, 25 Jun 2024 01:07:34 +0200 Subject: [PATCH] Raspberry Pi 3: init --- README.md | 1 + flake.nix | 1 + raspberry-pi/3/default.nix | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 raspberry-pi/3/default.nix diff --git a/README.md b/README.md index c0f6dc5..8fe19dd 100644 --- a/README.md +++ b/README.md @@ -302,6 +302,7 @@ See code for all available configurations. | [Purism Librem 15v3](purism/librem/13v3) | `` | | [Purism Librem 5r4](purism/librem/5r4) | `` | | [Raspberry Pi 2](raspberry-pi/2) | `` | +| [Raspberry Pi 3](raspberry-pi/3) | `` | | [Raspberry Pi 4](raspberry-pi/4) | `` | | [Raspberry Pi 5](raspberry-pi/5) | `` | | [Samsung Series 9 NP900X3C](samsung/np900x3c) | `` | diff --git a/flake.nix b/flake.nix index 159e2d1..63c03f8 100644 --- a/flake.nix +++ b/flake.nix @@ -239,6 +239,7 @@ purism-librem-15v3 = import ./purism/librem/15v3; purism-librem-5r4 = import ./purism/librem/5r4; raspberry-pi-2 = import ./raspberry-pi/2; + raspberry-pi-3 = import ./raspberry-pi/3; raspberry-pi-4 = import ./raspberry-pi/4; raspberry-pi-5 = import ./raspberry-pi/5; kobol-helios4 = import ./kobol/helios4; diff --git a/raspberry-pi/3/default.nix b/raspberry-pi/3/default.nix new file mode 100644 index 0000000..d4eba12 --- /dev/null +++ b/raspberry-pi/3/default.nix @@ -0,0 +1,38 @@ +{ lib +, pkgs +, ... +}: + +{ + boot.kernelPackages = lib.mkDefault pkgs.linuxKernel.packages.linux_rpi3; + + # fix the following error : + # modprobe: FATAL: Module ahci not found in directory + # https://github.com/NixOS/nixpkgs/issues/154163#issuecomment-1350599022 + nixpkgs.overlays = [ + (_final: super: { + makeModulesClosure = x: + super.makeModulesClosure (x // { allowMissing = true; }); + }) + ]; + + # https://github.com/NixOS/nixpkgs/blob/b72bde7c4a1f9c9bf1a161f0c267186ce3c6483c/nixos/modules/installer/sd-card/sd-image-aarch64.nix#L12 + # Use the extlinux boot loader. (NixOS wants to enable GRUB by default) + boot.loader.grub.enable = lib.mkDefault false; + # Enables the generation of /boot/extlinux/extlinux.conf + boot.loader.generic-extlinux-compatible.enable = lib.mkDefault true; + + # The serial ports listed here are: + # - ttyS0: for Tegra (Jetson TX1) + # - ttyAMA0: for QEMU's -machine virt + # https://github.com/NixOS/nixpkgs/blob/b72bde7c4a1f9c9bf1a161f0c267186ce3c6483c/nixos/modules/installer/sd-card/sd-image-aarch64.nix#L19 + boot.kernelParams = [ + "console=ttyS0,115200n8" + "console=ttyAMA0,115200n8" + "console=tty0" + ]; + + environment.systemPackages = with pkgs; [ + libraspberrypi + ]; +}