nixos-hardware/starfive/visionfive/v2/README.md

104 lines
2.7 KiB
Markdown
Raw Permalink Normal View History

2023-04-16 22:53:29 +02:00
# Creating a SD-Image
2023-04-16 22:43:32 +02:00
2023-04-16 22:53:29 +02:00
Create and configure the `flake.nix` file:
2023-04-16 22:43:32 +02:00
``` nix
2023-04-16 22:53:29 +02:00
{
inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
2023-04-16 22:53:29 +02:00
inputs.nixos-hardware.url = "github:nixos/nixos-hardware";
2023-04-23 18:43:25 +02:00
# Some dependencies of this flake are not yet available on non linux systems
inputs.systems.url = "github:nix-systems/x86_64-linux";
2023-04-16 22:53:29 +02:00
inputs.flake-utils.url = "github:numtide/flake-utils";
2023-04-23 18:43:25 +02:00
inputs.flake-utils.inputs.systems.follows = "systems";
outputs = { self, nixpkgs, nixos-hardware, flake-utils, ... }:
2023-04-16 22:53:29 +02:00
flake-utils.lib.eachDefaultSystem (system:
rec {
packages.default = packages.sd-image;
packages.sd-image = (import "${nixpkgs}/nixos" {
configuration =
{ config, ... }: {
imports = [
"${nixos-hardware}/starfive/visionfive/v2/sd-image-installer.nix"
];
2023-04-16 22:43:32 +02:00
2023-04-16 22:53:29 +02:00
# If you want to use ssh set a password
# users.users.nixos.password = "super secure password";
# OR add your public ssh key
# users.users.nixos.openssh.authorizedKeys.keys = [ "ssh-rsa ..." ];
# AND configure networking
# networking.interfaces.end0.useDHCP = true;
# networking.interfaces.end1.useDHCP = true;
# Additional configuration goes here
sdImage.compressImage = false;
nixpkgs.crossSystem = {
config = "riscv64-unknown-linux-gnu";
system = "riscv64-linux";
};
system.stateVersion = "23.05";
};
inherit system;
}).config.system.build.sdImage;
});
}
```
Build the sd image.
``` sh
nix build .#
2023-04-16 22:43:32 +02:00
```
## Additional configuration
Additional configuration may be needed depending on your specific hardware configuration.
### Board rev 1.2A
If you have the 1.2A board revision add the following to your config:
``` nix
hardware.deviceTree.name =
lib.mkDefault "starfive/jh7110-starfive-visionfive-2-v1.2a.dtb";
```
### 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}/starfive/visionfive/v2/8gb-patch.dts";
}];
```
# Updating the bootloader
## SD-Card
Install the firmware update script
``` nix
environment.systemPackages = [
(pkgs.callPackage
"${nixos-hardware}/starfive/visionfive/v2/firmware.nix"
{ }).updater-sd
];
```
Then run as root
``` sh
visionfive2-firmware-update-sd
```
## SPI Flash
Install the firmware update script
``` nix
environment.systemPackages = [
(pkgs.callPackage
"${nixos-hardware}/starfive/visionfive/v2/firmware.nix"
{ }).updater-flash
];
```
Then run as root
``` sh
visionfive2-firmware-update-flash
```