[ Just to be clear, the posts after this first post only explain how the internals work, for using the tool it is not necessary to apply all the posts below. ]
This section is about installing a nand image that contains:
U-Boot that scans emmc/nvme/nand for (/boot)/extlinux/extlinux.conf and boots it. The partition that contains this file needs to have the boot flag set.
If it fails on emmc and nvme, it boots the linux initramdisk on nand. It contains all basic utilities needed to setup an internet connection and install any distro.
There are some basic utilities on the initrd, but perhaps it is still missing some tools and/or kernel modules. It contains my bpi router scripts bpir-build bpir-toolbox, but also: debootstrap wget curl nano parted mkfs-btrfs tar xz gzip zstd, etc, etc.
Note: All images (sdmms/emmc/nvme/uart) all have the same initramdisk. You can interrupt normal boot by keeping ‘x’ pressed during early linux booting. You will then enter a bash shell from initramdisk.
Setup my archlinuxarm image on sd-card, via my script or prebuild image. Another possibility is to use my uartboot image.
https://github.com/ericwoud/buildR64arch
https://ftp.woudstra.mywire.org/images/
[BPI-R3-Mini] [BPI-R3] [BPI-R4] Recovery uart boot to a linux rescue image
After booting from uartboot, first make internet connection with:
bpir-dhcpc <interfacename>
bpir-toolbox needs to download some files needed to build the image, only when booting from uart. SD image has all included.
When running archlinuxarm from sd-card or the initrd from uartboot on the BPI-R3/R3M/R4, you can:
bpir-toolbox --nand-format
This will format and install the image.
I need to add more documentation about ‘bpir-toolbox’, but you can look into the file to see which options to use.
‘bpir-build’ to install archlinuxarm (or experimental ubuntu) on nvme is added pretty recently also, so also needs documentation and testing. Basically the steps are:
bpir-build
can be run from the sd-card image, but it can also be run when booted the initrd on nand. When booted from nand, first use bpir-dhcpd
to connect to the internet again. Once connected to the internet you can use:
bpir-build -F
and go through the menu.
But of course you can just manually use parted and debootstrap to install any other distro. Add extlinux.conf and set the bootflag. You will need to find a suitable linux kernel then also.
If you have used bpir-build to build the nvme/emmc rootfs, you can also use the same tool when running from the initramdisk to enter it via chroot. Just run the command without arguments.
This all needs more testing…
Note: Use archlinuxarm (not ubuntu) for now to build and write the image to nand. There is still a small issue in ubuntu, which is missing the bpi-r3m airoha firmware files in the standard linux-firmware package.