nixos-hardware/pine64/star64
Francesco Gazzetta 6d05cccc80 star64: set governor to schedutil
By default it's "performance"
2023-10-05 06:44:00 +00:00
..
default.nix star64: set governor to schedutil 2023-10-05 06:44:00 +00:00
firmware.nix star64: add mmc firmware updater 2023-09-14 10:57:44 +02:00
irq-desc-to-data.patch star64: init 2023-07-07 21:54:40 +02:00
linux-5.15.nix star64: linux: 5.15.128 -> 5.15.131 2023-10-05 05:29:34 +00:00
opensbi.nix star64: use stable opensbi release 2023-09-14 10:57:53 +02:00
README.md star64: add mmc firmware updater 2023-09-14 10:57:44 +02:00
sd-image-installer.nix star64: init 2023-07-07 21:54:40 +02:00
sd-image.nix star64: init 2023-07-07 21:54:40 +02:00
spl-tool.nix star64: init 2023-07-07 21:54:40 +02:00
star64-8GB.dts star64: init 2023-07-07 21:54:40 +02:00
uboot.nix star64: init 2023-07-07 21:54:40 +02:00

Creating a SD-Image

Create and configure the flake.nix file:

{
  inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
  inputs.nixos-hardware.url = "github:nixos/nixos-hardware";


  outputs = { self, nixpkgs, nixos-hardware, ... }:
    let
      supportedSystems = [
        "x86_64-linux"
        "aarch64-linux"
        "riscv64-linux"
        "x86_64-darwin"
        "aarch64-darwin"
      ];
      forAllSupportedSystems = nixpkgs.lib.genAttrs supportedSystems;
    in {
      packages = forAllSupportedSystems (system: rec {
        default = sd-image;
        sd-image = (import "${nixpkgs}/nixos" {
          configuration =
            { config, ... }: {
              imports = [
                "${nixos-hardware}/pine64/star64/sd-image.nix"
                # or, for a system like an installation media:
                #"${nixos-hardware}/pine64/star64/sd-image-installer.nix"
              ];

              system.stateVersion = "23.05";
              networking.useDHCP = true;
              services.openssh.enable = true;

              users.users.nixos = {
                isNormalUser = true;
                extraGroups = [ "wheel" ];
              };
              security.sudo.wheelNeedsPassword = false;
              # Set a password
              users.users.nixos.initialPassword = "nixos";
              # OR add your public ssh key
              #users.users.nixos.openssh.authorizedKeys.keys = [ "ssh-rsa ..." ];

              sdImage.compressImage = false;

              # Set if cross compiling
              #nixpkgs.crossSystem = {
              #  config = "riscv64-unknown-linux-gnu";
              #  system = "riscv64-linux";
              #};

              # Additional configuration goes here
            };
          inherit system;
        }).config.system.build.sdImage;
      });
    };
}

Build the sd image.

nix build .#

Additional configuration

8GB memory

If your board has 8GB of RAM add the following to your config:

hardware.deviceTree.overlays = [{
  name = "8GB-patch";
  dtsFile =
    "${nixos-hardware}/pine64/star64/star64-8GB.dts";
}];

Updating the bootloader

eMMC

Install the firmware update script

environment.systemPackages = [
  (pkgs.callPackage
    "${nixos-hardware}/pine64/star64/firmware.nix"
    { }).updater-mmc
];

Then run as root

star64-firmware-update-mmc

SD-Card

Install the firmware update script

environment.systemPackages = [
  (pkgs.callPackage
    "${nixos-hardware}/pine64/star64/firmware.nix"
    { }).updater-sd
];

Then run as root

star64-firmware-update-sd

SPI Flash

Install the firmware update script

environment.systemPackages = [
  (pkgs.callPackage
    "${nixos-hardware}/pine64/star64/firmware.nix"
    { }).updater-flash
];

Then run as root

star64-firmware-update-flash