mirror of
				https://github.com/NixOS/nixos-hardware.git
				synced 2025-11-04 17:27:14 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			139 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			139 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# Creating a SD-Image
 | 
						|
 | 
						|
Create and configure the `flake.nix` file:
 | 
						|
 | 
						|
``` nix
 | 
						|
{
 | 
						|
  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.
 | 
						|
 | 
						|
``` sh
 | 
						|
nix build .#
 | 
						|
```
 | 
						|
 | 
						|
## Additional configuration
 | 
						|
 | 
						|
### 8GB memory
 | 
						|
 | 
						|
If your board has 8GB of RAM add the following to your config:
 | 
						|
 | 
						|
``` nix
 | 
						|
hardware.deviceTree.overlays = [{
 | 
						|
  name = "8GB-patch";
 | 
						|
  dtsFile =
 | 
						|
    "${nixos-hardware}/pine64/star64/star64-8GB.dts";
 | 
						|
}];
 | 
						|
```
 | 
						|
 | 
						|
# Updating the bootloader
 | 
						|
 | 
						|
## eMMC
 | 
						|
 | 
						|
Install the firmware update script
 | 
						|
 | 
						|
``` nix
 | 
						|
environment.systemPackages = [
 | 
						|
  (pkgs.callPackage
 | 
						|
    "${nixos-hardware}/pine64/star64/firmware.nix"
 | 
						|
    { }).updater-mmc
 | 
						|
];
 | 
						|
```
 | 
						|
 | 
						|
Then run as root
 | 
						|
 | 
						|
``` sh
 | 
						|
star64-firmware-update-mmc
 | 
						|
```
 | 
						|
 | 
						|
## SD-Card
 | 
						|
 | 
						|
Install the firmware update script
 | 
						|
 | 
						|
``` nix
 | 
						|
environment.systemPackages = [
 | 
						|
  (pkgs.callPackage
 | 
						|
    "${nixos-hardware}/pine64/star64/firmware.nix"
 | 
						|
    { }).updater-sd
 | 
						|
];
 | 
						|
```
 | 
						|
 | 
						|
Then run as root
 | 
						|
 | 
						|
``` sh
 | 
						|
star64-firmware-update-sd
 | 
						|
```
 | 
						|
 | 
						|
## SPI Flash
 | 
						|
 | 
						|
Install the firmware update script
 | 
						|
 | 
						|
``` nix
 | 
						|
environment.systemPackages = [
 | 
						|
  (pkgs.callPackage
 | 
						|
    "${nixos-hardware}/pine64/star64/firmware.nix"
 | 
						|
    { }).updater-flash
 | 
						|
];
 | 
						|
```
 | 
						|
 | 
						|
Then run as root
 | 
						|
 | 
						|
``` sh
 | 
						|
star64-firmware-update-flash
 | 
						|
```
 |