After attempting to install the Armbian 6.12 image on the Orange Pi 5B, there seemed to be compatibility issues that caused the image to drop into initramfs console.
From a little bit of analysis, it appeared to be an issue with some of the initial setup scripts. However, multiple attempts with multiple images rendered the same results.
The simplest solution was to build the Armbian image from the source code to see if it was something that could be identified during the build process.
Preparing the Environment
While not explicitly stated anywhere that I could find on Armbian documentation; I thought that Ubuntu Server would be the best virtual machine to build the image in. Using Unraid as the bare-metal server; I created a virtual machine that would be able to make quick work of the build process for Armbian.
Virtual Machine Configuration:
vCPUs | 16 |
---|---|
Memory | 32768 MB |
Machine | Q35-9.2 |
BIOS | OVMF |
USB Controller (not important) | 2.0 (EHCI) |
Primary vDisk Bus | VirtIO |
vDisk size | 2 TiB |
Graphics | Virtual |
Console Protocol | VNC |
Console Video Driver | QXL |
CPU count and memory were the most important for this project, followed by disk size. With 16 cores and 32 GiB of dedicated memory, the entire build process took approximately 30-45 minutes.
For building Ubuntu Server, the default values for everything were perfect. No additional packages needed to be added from the installer. I did enable ssh and ensured that the user was created with administrator permissions as well.
When searching for the best way to configure the build environment, it seemed like Armbian fell short on this explanation as well. There are a few packages that need to be installed for the build process to be successful. Of note, I did NOT apply the latest updates to this build. There are many reasons, but the primary is the stability of the LTS server image. Since the Armbian image is being built with docker, the host OS (or in this case, the virtual machine) does not need to have the bleeding edge. Stability is key for success!
(root)_# apt update
(root)_# apt install ca-certificates curl gnupg
(root)_# install -m 0755 -d /etc/apt/keyrings
(root)_# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
(root)_# chmod a+r /etc/apt/keyrings/docker.gpg
(root)_# echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
(root)_# apt update && apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin screen git qemu-user-static binfmt-support
(root)_# groupadd docker
(root)_# gpasswd -a [YOURUSER] docker
(root)_# newgrp docker
(root)_# systemctl enable --now docker
This would be a good time to reboot the container so that everything just resolves. Sure, there are other ways to make sure that services are started and things work, but sometimes, a reboot just works!
Reboot
Ensure the docker service has started successfully. (systemctl status docker
).
Log in as the user that was created at the installation. (I created the user 'build' for simplicity).
From the user's home directory, clone the repo:
git clone https://github.com/armbian/build
Navigate to the build directory:
cd ~/build
Compile the image with the following command:
./compile.sh BOARD=orangepi5b BRANCH=current RELEASE=noble BUILD_DESKTOP=yes DESKTOP_ENVIRONMENT=gnome DESKTOP_ENVIRONMENT_CONFIG_NAME=config_default
Download
Update
There appears to be some issues with the graphics regarding the use of Gnome/GDM/GTK. Xfce seems to work find, but when GDM is started with Wayland, the graphics service becomes unresponsive. This might have something to do with Mesa, Libmali, or Panfrost. More to follow.
As of now, the image works in a minimal configuration.