7.2 KiB
dev/build TLDRs
-
nix flake show .
-
nix repl
followed by:lf .
to much about in a REPL -
nix build .#nixosConfigurations.asgaut.config.system.build.sdImage
-
nix build .#images.asgaut-sd
to cross build -
TODO
to build via binfmt emulation -
zstd -vdcfT4 result/sd-image/*.img.zst | dd of=/dev/sda2 status=progress; sync
VF2 Overview
- The VisionFive 2
- Shortname:
vf2
- https://www.kickstarter.com/projects/starfive/visionfive-2
- https://wiki.rvspace.org/
- StarFive JH7110 64-bit CPU
- CPU: quad SiFive U74 1.5GHz cores and comes paired with
- GPU: BXE-4-32 GPU from Imagination Technologies.
- OpenGL ES 3.2
- OpenCL 1.2
- Vulkan 1.2
- 2/4/8 GB RAM
- IO
- 1x HMDI (up to 4kp30)
- H.264 decode
- H.265 decode/encode
- 2x Gigabit Ethernet
- 2x USB 2.0
- 2x USB 3.0
- 2x M.2 NVMe
- MIPI CSI
- MIPI DSI
- MIPI LCD
- 4pin GPIO
- power:
- 5v DC via USB-C PD up to 30W
- 5v Dc via GPIO minimum 3A
- PoE (requires separate hardware module?)
- Storage
- SD
- NVMe
- SPI flash
- Their linux tree
- Shortname:
- U-Boot
- used as firmware and bootloader (instead of GRUB like for x86) on ARM and RISCV
- Generic Distro Configuration Concept
- U-Boot is scripted to scan all attached storage devices & partitions and look for a file named /extlinux/extlinux.conf or /boot/extlinux/extlinux.conf
Some VisionFive/RISCV/U-Boot reading
-
https://lobste.rs/s/4gmbhc/hands_on_experience_with_starfive
-
https://doc-en.rvspace.org/VisionFive2/PDF/VisionFive2_QSG.pdf
-
https://github.com/MatthewCroughan/visionfive-nix/tree/master/visionfive2
Nix flakes
I'm new lol
- https://nixos.wiki/wiki/Flakes
- https://zero-to-nix.com/concepts/flakes
- https://github.com/dali99/nix-dotfiles/blob/master/flake.nix
nixos builders
- https://nixos.org/guides/building-bootable-iso-image.html
- https://rbf.dev/blog/2020/05/custom-nixos-build-for-raspberry-pis/
- https://gist.github.com/tarnacious/f9674436fff0efeb4bb6585c79a3b9ff
- https://jade.fyi/blog/nixos-disk-images-m1/
- https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/installer/sd-card/sd-image.nix
- https://github.com/NixOS/nixpkgs/blob/master/nixos/lib/make-ext4-fs.nix
- https://github.com/NixOS/nixpkgs/blob/master/nixos/lib/make-disk-image.nix
github:NickCao/nixos-riscv
- https://github.com/NickCao/u-boot-starfive - likely just rebased on upstream uboot
- https://github.com/starfive-tech/u-boot/tree/JH7110_VisionFive2_devel
- https://github.com/sifive/meta-sifive/tree/master - BSP layer for OpenEmbedded/Yocto
- https://github.com/NickCao/starfive-tools -
spl_tool
anduboot_its
sources of interest:
- https://github.com/NickCao/nixos-riscv/blob/master/common.nix
- https://github.com/NickCao/nixos-riscv/blob/master/visionfive2.nix
$ nix flake show github:NickCao/nixos-riscv
github:NickCao/nixos-riscv/4ebf1f02b169f2bf6103776633e873d7968bdb32
├───hydraJobs
│ ├───bootrom-unmatched: derivation 'bootrom'
│ ├───bootrom-visionfive: derivation 'bootrom-visionfive'
│ ├───firmware-vf2: derivation 'firmware-vf2-riscv64-unknown-linux-gnu'
│ ├───linux-vf2: derivation 'linux-riscv64-unknown-linux-gnu-6.1.0-vf2'
│ ├───opensbi: derivation 'opensbi-riscv64-unknown-linux-gnu-1.2'
│ ├───opensbi-vf2: derivation 'opensbi-riscv64-unknown-linux-gnu-1.2'
│ ├───qemu: derivation 'qemu-riscv64-unknown-linux-gnu-7.2.0'
│ ├───uboot-unmatched: derivation 'uboot-sifive_unmatched_defconfig-riscv64-unknown-linux-gnu-2022.10'
│ ├───uboot-unmatched-ram: derivation 'uboot-sifive_unmatched_defconfig-riscv64-unknown-linux-gnu-2022.10'
│ ├───uboot-vf2: derivation 'uboot-starfive_visionfive2_defconfig-riscv64-unknown-linux-gnu-f1d959f'
│ ├───uboot-visionfive: derivation 'uboot-starfive_jh7100_visionfive_smode_defconfig-riscv64-unknown-linux-gnu-e068256b4ea2d01562317cd47caab971815ba174'
│ ├───unmatched: derivation 'nixos-sd-image-23.05.20230119.c75b147-riscv64-linux.img-riscv64-unknown-linux-gnu'
│ ├───visionfive: derivation 'nixos-sd-image-23.05.20230119.c75b147-riscv64-linux.img-riscv64-unknown-linux-gnu'
│ └───visionfive2: derivation 'nixos-sd-image-23.05.20230119.c75b147-riscv64-linux.img-riscv64-unknown-linux-gnu'
├───nixosConfigurations
│ ├───qemu: NixOS configuration
│ ├───unmatched: NixOS configuration
│ ├───visionfive: NixOS configuration
│ └───visionfive2: NixOS configuration
└───overlay: Nixpkgs overlay
github:zhaofengli/nixos-riscv64
... no visionfive 2?
- https://github.com/NixOS/nixpkgs/issues/101651#issuecomment-852725823
- https://gist.github.com/zhaofengli/275d1a0de14eceba90fd4e399af34b5c
- https://github.com/zhaofengli/nixos-riscv64/issues/3
$ nix flake show github:zhaofengli/nixos-riscv64
github:zhaofengli/nixos-riscv64/def02c67833bf551288c5cbd8ed6652b255d2fe8
├───hydraJobs
│ └───world
│ ├───simpleSystem: derivation 'nixos-system-nixos-23.05pre-git'
│ ├───tier0: derivation 'tier0'
│ ├───tier1: derivation 'tier1'
│ └───tier2: derivation 'tier2'
├───legacyPackages
│ └───riscv64-linux omitted (use '--legacy' to show)
├───nixosModules
│ ├───unmatched: NixOS module
│ └───visionfive: NixOS module
└───overlay: Nixpkgs overlay
BARF
https://www.waveshare.com/wiki/VisionFive2
https://doc-en.rvspace.org/Doc_Center/visionfive_2.html https://github.com/starfive-tech/VisionFive2 https://github.com/starfive-tech/u-boot https://github.com/u-boot/u-boot/blob/master/doc/board/starfive/visionfive2.rst http://forum.rvspace.org/t/usb-serial-needed/897/4 https://reddit.com/r/RISCV/comments/zy30vl/comment/j3zhzkx/ https://forum.rvspace.org/t/nvme-boot-using-visionfive2-software-v2-11-5/2464/1 https://forum.rvspace.org/t/i-tried-the-v3-0-4-sdcard-img-from-sdcard-and-from-nvme/2965 https://u-boot.readthedocs.io/en/latest/board/starfive/visionfive2.html
- base: https://github.com/NixOS/nixos-hardware/blob/master/starfive/visionfive/v2/
- make-sd-image: https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/installer/sd-card/sd-image.nix
- make-disk-image:
- riscv efi: https://github.com/dramforever/nixos-riscv-efi/
- https://github.com/dramforever/nixos-riscv-efi
- gpu?: https://github.com/dramforever/nixos-visionfive
- qemu: https://github.com/NickCao/nixos-riscv
- Distroboot u-boot: https://github.com/NickCao/u-boot-starfive
- ?? https://github.com/zhaofengli/nixos-riscv64