[Guide] 🖥️ Arch Linux for Single-Board Computers!

image Arch Linux Installers for the Radxa Boards image


adasdasd Arch Linuxx1 Mini Archbredos1 BredOS
:point_right:t3: Deep Guide for Arch Linux image by @boogiepop


linux_usb Linux UEFI

12 EDK2 UEFIForum
image Arch Linux Generic UEFI


1us 1usOS (Maybe) by @kwankiu
d7og0t1swue81 EndeavourOS ARM (Maybe) by @Pudge
image Manjaro (Maybe) by @Spikerguy

  • Flash an microSD with Arch Linux Installer
  • Go into the Advance Options -> Select to install it on the EMMC
    (This way you avoid having to reflash the board emmc or the sd all the dam time and all you need to do is to put the SD CARD and repeat the process).
  • For BredOS just flash the image you want its more hassle free.

🔥Alarm Major Problems:▼

:electric_plug: Keep in Mind - Arch Linux does not officially support ARM.

Alarm servers are unreliable, forcing you to constantly switch between mirrors.

rate-mirrors arch
#sudo nano /etc/pacman.d/mirrorlist

Installer 1st Reboot - Wifi wont reconnect

The installation starts quickly reboots after that for some reason the wifi usb cant auto-reconnect.

The solution: Hot replug the board - it will auto reconnet and proceed the installation.



🖱️Pacman Help Commands:▼

Check your baseline repos: sudo nano /etc/pacman.conf

sudo pacman-key --init
sudo pacman-key --populate
sudo pacman-key --refresh-keys
sudo pacman -S archlinux-keyring
sudo rm /var/lib/pacman/db.lck

pacman -Q | grep linux-firmware

Set SoC to Performance: acu soc performance
Desktop Environments without Icons fix: sudo pacman -S librsvg
Fix your system completly: sudo pacman -S --overwrite "*" $(pacman -Qqn)


Chromium Browser stuff
sudo nano /etc/chromium.d/default-flags
export CHROMIUM_FLAGS="$CHROMIUM_FLAGS --gtk-version=4"



:point_right:t3: Use Arch Configuraton Utility aka ACU

  • ACU is a community-built tool designed for managing configurations and packages on Arch Linux ARM (Aarch64)
    Type - 'acu' - acu install app -y # -y will work as expected ex: acu -y install chromium
    Try acu --update=dev for the dev branch. Try acu -u and acu update for that updated status.
  • For everyone: bash <(curl -fsSL https://raw.githubusercontent.com/kwankiu/acu/main/acu) -u

Web Browser

This guide shows how to install the Chromium browser with or without Rockchip MPP support, including Flatpak alternatives.

:rocket: Chromium with Rockchip MPP Support

Install the version optimized for Rockchip hardware acceleration :

acu install chromium -y

:package: Arch Linux Official Chromium

Install the latest official Chromium from the Arch Linux repositories:

acu -y install extra/chromium

:package: Chromium via Flatpak (Cross-Distro)

Set up Chromium using Flatpak :

acu install flatpak -y
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
sudo flatpak install flathub org.chromium.Chromium -y
sudo flatpak update -y

:white_check_mark: Flatpak ensures a sandboxed, up-to-date Chromium experience across most Linux distributions.


🪁 Fan options

:hammer_and_wrench: Non-GPIO Fan Fix for Arch Linux

:point_right: Note: The current kernel already includes this fix, but I’m leaving the instructions here for future reference.

:package: Clone and Set Up the Fan Control Script

git clone https://github.com/XZhouQD/Rock5B_Naive_Pwm_Fan
cd Rock5B_Naive_Pwm_Fan/
cp fan_pwm /usr/local/bin/
chmod +x /usr/local/bin/fan_pwm
cp fan_pwm.service /etc/systemd/system/
systemctl daemon-reload
systemctl start fan_pwm
systemctl enable fan_pwm

:white_check_mark: This will install and enable the custom fan controller.

:wind_face: Manual Fan Management

Prevent the system from automatically controlling the fan:

sudo pacman -S i2c-tools --noconfirm
echo user_space | sudo tee /sys/class/thermal/thermal_zone0/policy
sudo i2cset -y -f 2 0x18 0x8A 0x20

Fan Speed Reference:

  • 0x41 = 50%
  • 0x64 = 100%

Wifi and BT Tricks

:signal_strength: Wi-Fi & Bluetooth Setup for Intel AX210 (Firmware Installation Example)

:warning: Note: An Ethernet connection is required to install the necessary firmware for AX210 Wi-Fi and Bluetooth functionality.

:satellite: Wi-Fi Firmware Installation

Download and install the Wi-Fi firmware:

# Download AX210 Wi-Fi firmware
sudo wget -P /lib/firmware https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/iwlwifi-ty-a0-gf-a0-59.ucode

# Backup existing PNVM firmware file (if present)
sudo mv /lib/firmware/iwlwifi-ty-a0-gf-a0.pnvm /lib/firmware/iwlwifi-ty-a0-gf-a0.pnvm.bak

:large_blue_circle: Bluetooth Firmware Installation

Download the Bluetooth firmware files:

# Download Intel Bluetooth firmware files
sudo wget -P /lib/firmware/intel https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/intel/ibt-0041-0041.sfi
sudo wget -P /lib/firmware/intel https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/intel/ibt-0041-0041.ddc

:hammer_and_wrench: Bluetooth Module Fix for Intel Wi-Fi/BT

  1. Open the blacklist configuration file:
sudo nano /etc/modprobe.d/blacklist.conf
  1. Add the following lines (you can place them at the bottom of the file):
blacklist pgdrv
blacklist btusb
blacklist btrtl
blacklist btbcm
#blacklist btintel
  1. Save and exit:
  • Press Ctrl + X , then Y , and hit Enter .

:white_check_mark: Final Bluetooth Setup

:package: Note: Installing bluez or bluetooth is not required on the latest versions of Arch Linux.

# Check Bluetooth service status
systemctl status bluetooth

# Start Bluetooth service
systemctl start bluetooth

:repeat: Reboot your system to apply all changes.


📢 Audio options

:loud_sound: Bluetooth Audio Setup Tutorial (Optional)

:warning: Note: This is generally not required on newer kernels, but can be helpful if you’re experiencing issues with Bluetooth audio.

:point_right: The following steps offer useful information for troubleshooting or improving Bluetooth audio support.

:headphones: Install Required Audio Packages

acu install pulseaudio pulseaudio-alsa pavucontrol pulseaudio-bluetooth pulseaudio-equalizer paprefs

:arrow_forward: Start PulseAudio

pulseaudio --start

:repeat: Switch from PulseAudio to PipeWire

# Reload user services
systemctl --user daemon-reload

# Disable PulseAudio services
systemctl --user --now disable pulseaudio.service pulseaudio.socket

# Enable PipeWire and PipeWire-Pulse
systemctl --user --now enable pipewire pipewire-pulse

:information_source: Verify Audio Server

pactl info

:repeat: Final Step

Reboot your system:

reboot

💽 Flashing Software

:floppy_disk: Flashing Images via Rockchip Dev Tools (Windows)

image

Use the Rockchip Dev Tools ( rkdevtools ) application on Windows to flash firmware images.

:toolbox: Step 1: Image Preparation

:point_right: Decompress the image files properly:

  • Use WinRAR to extract .img.xz files.
  • Do NOT use the built-in Windows “Extract All” option — it may fail or corrupt the image.

:framed_picture: Step 2: Image Flashing Settings

In rkdevtools , set the following options:

  • :white_check_mark: Tick “Write by Address” .

:wrench: Step 3: Bootloader File

Use the appropriate Rockchip bootloader SPL file for your device:

  • :page_facing_up: File Name: rk3588_spl_loader_v1.15.113.bin
  • :white_check_mark: This applies to RK3588 / RK3588S / RK356x / RK35xx / RK3328 / RK3399 / RK3582 / RK3566 / RK3568 / RK3588S / RK3528 / RK3576 , etc.

Download it from official sources or refer to the Radxa Docs for the latest version and usage guide.



🥛 App Manager Hubs

:shopping: App Management on Linux

:package: FlatHub: Access Hundreds of Linux Apps and Games

Set up Flatpak and add the FlatHub repository:

acu -y install flatpak
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
sudo flatpak update -y

:white_check_mark: This gives you access to a wide selection of apps and games available on FlatHub.

:toolbox: Bauh: Manage Apps from Multiple Sources

Install Bauh , a graphical package manager that supports Flatpak, AppImage, Snap, AUR, and more:

acu -y install bauh

:desktop_computer: Bauh provides a unified interface to manage packages from different ecosystems.


🎢 Package Managers Builders ⌨️
🐧 Universal Package Management (UPT)▼

"One command to manage all the packages on all the distributions."

:wrench: Install Dependencies

sudo pacman -S gcc make rustup

:rocket: Install UPT

rustup default stable
cargo install upt

:hammer_and_wrench: Add Cargo to PATH

Edit your bash profile:

nano ~/.bash_profile

Add this line:

export PATH="$PATH:$HOME/.cargo/bin"

Then reboot your system:

sudo reboot

:white_check_mark: You can now use commands like sudo upt update , sudo upt upgrade , and more.


🥤YaY - Yet another Yogurt:▼

An AUR helper written in Go.
Unlike pacman , Yay installs packages from both the official repos and the AUR.

:package: Install Yay

sudo pacman -Syu
sudo pacman -S --needed base-devel git
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
yay --version

🏝️ Paru – Minimal AUR Helper ▼

A modern, user-friendly AUR helper with low interaction and many features.

:package: Install Paru

sudo pacman -S --needed base-devel
git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -si

👊🏼 AGR - Arch Git Repositories:▼

🧠 ARB – Package/Repo Builder by 7Ji:▼

ARB is a package builder - repo builder


Graphics Acceleration / Performance

:desktop_computer: Panfrost Graphics Tuning (Wayland) with LiuJianFeng & PPA Fork

This section covers performance tuning for CPU, GPU, NPU, and DDR on systems using Panfrost graphics and Wayland , including the OpenCL runtime ( libmali ).

:gear: Manually Set Performance Governors

Edit or manually apply performance settings to optimize system responsiveness:

# Optional: View current DDR governor
sudo nano /sys/class/devfreq/dmc/governor

# Set performance mode for CPU, GPU, DDR, and NPU
echo performance | sudo tee /sys/devices/system/cpu/cpufreq/policy6/scaling_governor
echo performance | sudo tee /sys/class/devfreq/fb000000.gpu/governor
echo performance | sudo tee /sys/class/devfreq/dmc/governor
echo performance | sudo tee /sys/class/devfreq/fdab0000.npu/governor

:rocket: Apply SoC-Wide Performance Mode

Use the acu tool to enforce performance mode across the system-on-chip:

acu soc set performance

:white_check_mark: This ensures all subsystems (CPU, GPU, DDR, NPU) operate under the performance governor.


Android Linux
Android with Screen Copy (scrcpy)

Only works with old Panfrost Kernel 5.10

image

Android Emulator to your ARM system (ReDroid with Scrcpy and Docker):

sudo apt install docker.io scrcpy android-tools-adb -y
sudo docker run -d -p 5555:5555 -v ~/redroid-data:/data --restart unless-stopped --name redroid --privileged cnflysky/redroid-rk3588:13.0.0-latest androidboot.redroid_height=1920 androidboot.redroid_width=1080

adb disconnect localhost:5555 ; adb connect localhost:5555 ; scrcpy -s localhost:5555

Just add this alias in nano .bash_aliases and run it as malior each time:

alias malior="malior-droid stop ; adb disconnect localhost:5555 ; malior-droid start ; adb connect localhost:5555 ; scrcpy -s localhost:5555 ; malior-droid resize 720x1280"

image

Change it to english this way. Just drag and drop your .apk file into the android window it will auto install it .


🧑🏻‍🔬 Kernel modules required▼
CONFIG_STAGING=y
CONFIG_ASHMEM=y
CONFIG_ANDROID_BINDER_IPC=y
# CONFIG_ANDROID_BINDERFS is not set
CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder"
# CONFIG_ANDROID_BINDER_IPC_SELFTEST is not set
CONFIG_ESD_FS=y
Waydroid for Panthor

acu install waydroid -y
# Waydroid reset to Full Screen
waydroid prop set persist.waydroid.multi_windows false
waydroid prop set persist.waydroid.width ""
waydroid prop set persist.waydroid.height ""
waydroid session stop
# Waydroid set fixed Screen Size
#for example landscape 500x1000

waydroid prop set persist.waydroid.multi_windows false
waydroid prop set persist.waydroid.width 500
waydroid prop set persist.waydroid.height 1000
waydroid session stop
# Waydroid set Seamless Mode
waydroid prop set persist.waydroid.multi_windows true
waydroid prop set persist.waydroid.width ""
waydroid prop set persist.waydroid.height ""
waydroid session stop

Other commands

waydroid app install com.app.apk
waydroid app launch com.app
waydroid app list
🧑🏻‍🔧 Fix the google play store by doing this:▼

To become certified with access to the play store you have to:
1 - Install a device ID apk to get this Device ID and register it on your google account.
2 - Register it here: https://www.google.com/android/uncertified/
3 - Restart Malior-Droid again and add your google account manually on settings.
4 - Send apkpure the emulator window and start installing apps like a boss !

image


🎮 Steam

:video_game: Steam Setup on BredOS (Multilib Support)

Install Steam and configure it for your specific GPU setup by BredOS using the acu tool.

:toolbox: Step 1: Add BredOS Multilib Repository

acu rem set BredOS-multilib https://repo.bredos.org/repo/$repo/$arch pacman
acu update

:video_game: Step 2: Install Steam

acu install BredOS-multilib/steam

:gear: Step 3: Library Selection (Choose Based on Your GPU)

During installation, you’ll be prompted to select a Vulkan/Steam runtime library:

  • :1234: Option 5: lib32-vulkan-swrast
    (For general compatibility or fallback software rendering)
  • :leopard: Option 1: steam-libs-any
    (Recommended for Panthor users)
  • :panda_face: Option 2: steam-libs-rk3588
    (Recommended for Panfork or RK3588 devices)

:rocket: Step 4: Run Games with Improved Compatibility

In Steam Settings → Game Launch Options , use the following flag to improve compatibility:

-force-opengl

:white_check_mark: Also make sure you’re running games with the latest non-experimental Proton version.


:desktop_computer: Desktop Ricing #Unixporn


🛠️ Tweaks and Shell Extensions 🔧

:hammer_and_wrench: Install GNOME Tweaks and Extension Tools

acu install gnome-tweaks gnome-shell-extensions gnome-browser-connector fakeroot git dpkg --noconfirm

:wrench: Open GNOME Tweaks

Launch Tweaks , and under the “Titlebar” section:
image

  • :white_check_mark: Enable Titlebar Buttons (e.g., minimize/maximize)

:roll_eyes: (Why is this even disabled by default…)

:jigsaw: Install and Manage Extensions

Visit extensions.gnome.org to browse and install GNOME Shell extensions.

You can now install popular extensions like:

image
image


Rice your Desktop

:art: Rice Your Desktop – Themes, Icons, and Shell Style

Customize the look and feel of your Linux desktop using themes, icon packs, and wallpapers.

:package: Step 1: Download Customization Files

Save them to your Downloads directory.

:file_folder: Step 2: Extract Themes and Icons

cd Downloads

# Extract theme
sudo tar -xf Graphite-teal-nord-rimless.tar.xz -C /usr/share/themes

# Extract icon pack
sudo tar -xf Zafiro-Nord-Black.tar.xz -C /usr/share/icons

# Optional: Use another theme
sudo tar -xf Cold-Metal-No-Logo-GTK.tar.xz -C /usr/share/themes

:open_file_folder: Step 3: Create User Theme & Icon Folders (If Needed)

mkdir -p ~/.themes ~/.icons

:closed_lock_with_key: You can also change ownership/permissions if needed for easier access:

sudo chown -R $USER:$USER ~/.themes ~/.icons

:jigsaw: Step 4: Enable User Themes Extension

Use GNOME Tweaks and GNOME Shell Extensions to enable the User Themes extension.
image

:control_knobs: Step 5: Apply Themes in GNOME Tweaks

  1. Open the Tweaks application
  2. Go to the “Appearance” section
  3. Select your desired:
  • Applications theme
  • Shell theme
  • Icon pack
  • Cursor

image

:tada: Your desktop is now riced and stylish!


Your Login Manager

:closed_lock_with_key: Your Login Manager – SDDM Setup & Theming

Set up and personalize your Linux login experience using SDDM , the Simple Desktop Display Manager.

:hammer_and_wrench: Install SDDM with Qt6 Features

acu -y install sddm qt6-svg qt6-virtualkeyboard qt6-multimedia-ffmpeg

:arrows_counterclockwise: Enable SDDM and Disable Other Display Managers

Make sure only SDDM is active to ensure proper functionality:

sudo systemctl disable display-manager.service
sudo systemctl enable sddm

:art: Test Your SDDM Themes (Before Applying)

Preview how themes will look with the greeter:

sddm-greeter --test-mode --theme /usr/share/sddm/themes/maya
sddm-greeter-qt6 --test-mode --theme /usr/share/sddm/themes/sddm-astronaut-theme

:rocket: Install the Astronaut Theme by KeyitDev

The Astronaut Theme is one of the best and most polished SDDM themes available.

sh -c "$(curl -fsSL https://raw.githubusercontent.com/keyitdev/sddm-astronaut-theme/master/setup.sh)"

:bulb: KeyitDev’s work delivers an elegant, modern login experience.

sudo git clone https://github.com/JaKooLit/simple-sddm-2.git /usr/share/sddm/themes/simple-sddm-2
echo "[Theme]
Current=simple-sddm-2" | sudo tee /etc/sddm.conf
sddm-greeter --test-mode --theme /usr/share/sddm/themes/simple-sddm-2

sudo git clone https://github.com/RadRussianRus/sddm-slice.git /usr/share/sddm/themes/sddm-slice
echo "[Theme]
Current=sddm-slice" | sudo tee /etc/sddm.conf
sddm-greeter --test-mode --theme /usr/share/sddm/themes/sddm-slice

SteamOS Theme

sudo git clone https://github.com/JiayuanWen/sddm-sugar-steamOS.git /usr/share/sddm/themes/sddm-sugar-steamOS
echo "[Theme]
Current=sddm-sugar-steamOS" | sudo tee /etc/sddm.conf
sddm-greeter --test-mode --theme /usr/share/sddm/themes/sddm-sugar-steamOS

sudo git clone https://github.com/AlfredoRamos/urbanlifestyle-sddm-theme.git /usr/share/sddm/themes/urbanlifestyle-sddm-theme
echo "[Theme]
Current=urbanlifestyle-sddm-theme" | sudo tee /etc/sddm.conf
sddm-greeter --test-mode --theme /usr/share/sddm/themes/urbanlifestyle-sddm-theme

Source KDE themes
Source KDE themes
Github for SDDM themes


Your Linux Terminal

Installing Zsh and Oh My Zsh

image

Install Zsh by writing :point_down:

acu install zsh nano -y ; chsh -s $(which zsh)
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" 

Type ‘Y’ to set your Oh My Zsh as your default bash. This command always creates a ~/.zshrc file on your home directory, which we’ll alter soon. For now, your terminal should already look like this:


Type Exit on ‘Oh my zsh’, try using the following command to make it the default:

echo 'exec /usr/bin/zsh' >>~/.bashrc

Install Powerlevel10k

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc

To change zsh themes:
Hit nano ./zshrc and change the ZSH_THEME line to the following :point_right:ZSH_THEME="powerlevel10k/powerlevel10k" . Hit Ctrl + X and ‘Y’ to save and exit.

Press Ctrl + T to open a new terminal window and type zsh .


In the end, you should end up with something like this :point_down:

image

To enter P10K configuration type:

p10k configure

To update P10K type:

git -C ~/powerlevel10k pull

To uninstall the whole thing:

# Remove installations + configurations
sudo rm -f ~/.p10k.zsh
sudo rm -rf -- ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
sudo sh ~/.oh-my-zsh/tools/uninstall.sh -y
sudo apt remove zsh -y
sudo apt autoremove -y
sudo rm -Rf ~/.zsh*

Other Desktop Environments for ARM

Explore alternative desktop environments tailored for ARM devices. For full documentation, visit:
:open_book: Archcraft ARM Wiki

:star2: Archcraft ARM – Minimal & Elegant

acu -y install yay
curl -LO https://github.com/archcraft-os/archcraft-arm/releases/download/1.0/archcraft-arm.tar.gz
tar -xzvf archcraft-arm.tar.gz
cd archcraft-arm

# Optional: customize install script
nano customize.sh

# Default user/pass: archcraft
sudo ./install.sh

:art: Extra Openbox Themes

git clone https://github.com/addy-dclxvi/openbox-theme-collections
sudo cp -r $HOME/openbox-theme-collections/* $HOME/.config/openbox/themes

:hammer_and_wrench: Fix Polybar Modules in Themes

For example, in the “default” Openbox theme:

  1. Open the Polybar config file:
nano ~/.config/openbox/themes/default/polybar/config.ini
  1. Find the line:
modules-right = battery dot ...
  1. Replace it with:
modules-right = temperature dot volume dot network dot LD sysmenu RD

:test_tube: Pixarch (Experimental)

:package: A still-in-development desktop environment.
:construction: May contain bugs – use with caution.

acu -y install yay
git clone https://github.com/heisenburgh/pixarch.git
cd pixarch/installation_scripts
./install.sh

:milky_way: JaKooLit – Arch Hyprland Setup

A Hyprland-based Arch experience with custom styling.

acu -y install yay
git clone --depth=1 https://github.com/JaKooLit/Arch-Hyprland.git ~/Arch-Hyprland
cd ~/Arch-Hyprland
chmod +x install.sh
./install.sh

:memo: Keybinding Note:
Hyprland environments often require changing the modifier key:

# Look for:
nano ~/.config/hypr/hyprland.conf
nano ~/.config/hypr/configs/Keybinds.conf

# Change from:
$mainMod = SUPER

# To:
$mainMod = FN+SUPER


cx1 Cloud Gaming is perfect for SBC’s: imagegbxbsc


radxalogo Radxa Discord 1


3 Likes

Sorry to steal the thread.
But can we sooner or later get an installer for orion ?
Thanks in advance
Uli

Steal? mate ! Thank you for replying ! Finally one person who cares! For that support you would need to convince @kwankiu who I believe that doesnt own one Orion so you would have to test for him.

1 Like

With pleasure, but I am an amateur.
His work with my Rock5 B convinced me to change to arch linux

1 Like

The o6 seems to come with a UEFI BIOS, what’s the current status of the mainline / ACPI support?

I have opensuse tumbleweed plasma installed with kernel 6.13-5. Lan works wlan from radxa not.

You guys gotta try this login manager script its really awesome.

After 16 edits… Ive maxed out the post lenght. Hope its perfect for everyone to reach every area they need.

1 Like