Building the Armbian base image
The goal of building the Armbian operating system from source is to create a highly configurable base image, with granular control over kernel features, that can be written on an eMMC or SD card and boots directly into an operational state.
The process to build the Armbian image for the RockPro64 board is mostly automated and follows Armbian best practices.
It makes use of the Docker containers to perform the build process:
The following build instructions have been tested both on Debian-based Linux systems and within Windows PowerShell.
Requirements
- Regular computer with x86/x64 architecture, 4GB+ memory, 4+ cores
- minimum of 25 GB free space on a fast drive, preferrably SSD
- any operating system that can run Docker containers is supported
Prepare build environment
To set up and run the build environment in the virtual machine, the following software needs to be installed:
All sources and build scripts are contained in this repository, which needs to be cloned locally. The following commands are executed in the command line, either the Linux terminal or Windows PowerShell.
Note: you might need use sudo
for all make
commands, depending on your Docker configuration.
- Clone the BitBoxBase repository to a local directory.
git clone https://github.com/digitalbitbox/bitbox-base.git cd bitbox-base
- Compile custom Go applications
make docker-build-go
(see “Custom applications / Building Go binaries” for additional information)
Initial configuration on build
The initial system configuration is set on build and can be altered by setting build options in the file armbian/base/build.conf
.
Available options are described directly in the file and are set to default values. A few examples of build options you can set:
BASE_BITCOIN_NETWORK
: set tomainnet
ortestnet
BASE_HOSTNAME
: set it toalice
and your BitBoxBase will be visible asalice.local
within your networkBASE_AUTOSETUP_SSD
: set totrue
to automatically initialize the SSD on first bootBASE_OVERLAYROOT
: set totrue
to make the root filesystem read-only- …and many more.
To preserve a local configuration, you can copy the file to build-local.conf
in the same directory. This file is excluded from Git source control and overwrites options from build.conf
.
Include SSH keys
It is recommended to use SSH keys to access the Base image. You can include your own keys in the file armbian/base/config/authorized_keys
, which is excluded from Git versioning. To include them on build, set BASE_ADD_SSH_KEYS="true"
in armbian/base/build.conf
. Please refer to this article on how to create your own set of new keys.
Compile Armbian from source
Now the operating system image can be built. The whole BitBoxBase configuration is contained in customize-armbian-rockpro64.sh
and executed in a chroot
environment at the end of the build process.
In Linux you can directly run make
, while in Windows PowerShell you need to run the build script directly with sh
. In the following instructions, Windows users just replace make
with sh .\build.sh
.
- Start the initial build process.
cd armbian make
- The resulting image is available in a version subdirectory of
bin/img-armbian/
and can be written to eMMC or SD card using a program like Etcher. On the Linux command line you can usedd
: once the target medium is connected to your computer, get the device name (e.g./dev/sdb
). Check it carefully, all data on this device will be lost!lsblk sudo dd if=bin/img-armbian/0.1.0/BitBoxBase-v0.1.0-RockPro64.img of=/dev/sdb bs=64K conv=sync status=progress sync
- After initial build, you can update the image with an adjusted system configuration script, without building Armbian from scratch:
make update
- To clean up and remove the build environment, run
make clean
.