Armbian custom builds for different SOCs, using docker
I am impressed with how well armbian works with SOCs, and since I could not get my hands on a Raspberry PI lately, I tried my hand at a “LePotato”. It’s a great little board, and it’s been great. The only issue I have is there is no way to do a headless install of armbian and without a fat partition for /boot, there’s no way to “configure the OS” before installation on a PC/Mac.
I looked for a way to add /boot to a current image, and it wasn’t going well. I did see a blurb about how you can compile armbian with a revised lepotato.conf file where you add BOOTFS_TYPE=”fat” so I figured I would at least attempt to compile a version with that flag.
Normally to compile an OS build it takes the same HW, all the right compilers, libraries, etc., and it’s usually a painful experience. with Armbian, they’re focused on the DIY community, and the build process was surprisingly easy. I even used a docker option, so my main OS didn’t get plastered with a bunch of packages it doesn’t normally need. Very cool indeed!
From the docker host:
# apt-get -y -qq install git # git clone --depth 1 https://github.com/armbian/build # cd build # ./compile.sh docker-shell
You’ll end up in the docker container. Now run compile.sh again. Notice you are in the container now…
root@09c6235bb6ee:~/armbian# ./compile.sh BOARD=lepotato RELEASE=bullseye BRANCH=current KERNEL_CONFIGURE=yes
I also tried adding BOOTFS_TYPE=”fat” to the conf file so I could see the boot files on a PC beforehand:
root@09c6235bb6ee:~/armbian/build/config/boards# more nanopineoplus2.conf #Allwinner H5 quad core 1GB RAM SoC headless GBE eMMC WiFi/BTBOARD_NAME="NanoPi Neo Plus 2" BOARDFAMILY="sun50iw2" BOOTCONFIG="nanopi_neo_plus2_defconfig" MODULES="g_serial" MODULES_BLACKLIST="lima" DEFAULT_OVERLAYS="usbhost1 usbhost2" DEFAULT_CONSOLE="serial" SERIALCON="ttyS0,ttyGS0" HAS_VIDEO_OUTPUT="no" KERNEL_TARGET="legacy,current,edge" BOOTFS_TYPE="fat" root@09c6235bb6ee:~/armbian# ./compile.sh BOARD=nanopineoplus2 RELEASE=bullseye BRANCH=current KERNEL_CONFIGURE=yes