16b8c06fd3
And make the sd one actually write to the sd |
||
---|---|---|
.. | ||
default.nix | ||
firmware.nix | ||
irq-desc-to-data.patch | ||
linux-5.15.nix | ||
opensbi.nix | ||
README.md | ||
sd-image-installer.nix | ||
sd-image.nix | ||
spl-tool.nix | ||
star64-8GB.dts | ||
uboot.nix |
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