Skip to main content

A Clean Install of Q4OS Desktop on ARM Device

Administrator guide for installing Q4OS on ARM-based devices including Raspberry Pi and other single-board computers.

Overview

Q4OS provides ARM builds optimized for various ARM-based devices, offering the Trinity Desktop experience on low-power, embedded systems. This guide covers clean installation procedures for supported ARM platforms.

Supported ARM Devices

  • Raspberry Pi: Pi 3, Pi 4, Pi 400, Pi 5 (ARMv7/ARMv8)
  • Pine64: Pine A64, Rock64, RockPro64
  • Odroid: C2, C4, N2, XU4
  • Orange Pi: PC, PC Plus, One
  • Generic ARM64: Compatible single-board computers

Prerequisites

Required Hardware

  • Compatible ARM device (see supported devices list)
  • MicroSD card (16GB minimum, Class 10 recommended)
  • Power supply appropriate for your device
  • HDMI cable and display
  • USB keyboard and mouse
  • Ethernet cable or WiFi adapter

Required Software

  • Q4OS ARM image for your device
  • Image writing software (Raspberry Pi Imager, Etcher, dd)
  • Computer with SD card reader

Recommended Specifications

  • RAM: 2GB minimum, 4GB+ recommended
  • Storage: 32GB+ microSD card for better performance
  • Network: Gigabit Ethernet or 802.11ac WiFi

Raspberry Pi Installation

Downloading Q4OS for Raspberry Pi

  1. Visit the Q4OS Downloads page
  2. Select the appropriate Raspberry Pi image:
    • Q4OS ARM for Raspberry Pi 3/4/400 (32-bit)
    • Q4OS ARM64 for Raspberry Pi 4/5 (64-bit)
  3. Download the .img.xz compressed image file
  4. Verify the download checksum if provided

Using Raspberry Pi Imager (Recommended)

  1. Download and install Raspberry Pi Imager
  2. Insert your microSD card into the computer
  3. Launch Raspberry Pi Imager
  4. Click "Choose OS" → "Use custom" → Select your Q4OS image file
  5. Click the gear icon for advanced options:
    • Enable SSH (optional)
    • Set username and password
    • Configure WiFi settings
    • Set locale settings
  6. Select your SD card and click "Write"
  7. Wait for the writing and verification to complete

Using Etcher (Cross-platform)

  1. Download and install Balena Etcher
  2. Extract the Q4OS .img file from the .xz archive
  3. Launch Etcher
  4. Select the Q4OS .img file
  5. Select your SD card (be careful to choose the correct device)
  6. Click "Flash" and wait for completion

Using dd Command (Linux/macOS)

# Extract the image
unxz q4os-3.xx-armhf-rpicm.img.xz

# Find the SD card device
lsblk  # or sudo fdisk -l

# Write the image (replace /dev/sdX with your SD card device)
sudo dd if=q4os-3.xx-armhf-rpicm.img of=/dev/sdX bs=4M status=progress
sudo sync

First Boot Setup

Initial Boot Process

  1. Insert the prepared SD card into your ARM device
  2. Connect HDMI, keyboard, mouse, and network
  3. Connect power supply to boot the device
  4. Wait for the initial boot and file system expansion
  5. The system will reboot automatically after expansion

Q4OS Welcome Screen

On first boot, Q4OS will present a welcome screen for initial configuration:

  1. Select your language and region
  2. Configure keyboard layout
  3. Set up network connection (if not configured during imaging)
  4. Create user account (if not set during imaging)
  5. Configure system settings

Trinity Desktop Setup

After initial setup, Trinity Desktop will load with ARM-optimized settings:

  • Reduced visual effects for better performance
  • Optimized memory usage
  • ARM-specific hardware acceleration where available

Post-Installation Configuration

System Updates

Update the system after first boot:

sudo apt update
sudo apt upgrade -y
sudo apt autoremove

Hardware-Specific Configuration

Raspberry Pi Configuration

Use raspi-config for Pi-specific settings:

sudo raspi-config

Common configurations:

  • Advanced Options → Memory Split: Set to 64MB for desktop use
  • Interface Options: Enable SPI, I2C, Camera as needed
  • Performance Options: Set GPU memory split
  • Localisation Options: Set timezone, WiFi country

GPU Memory Configuration

Edit /boot/config.txt for graphics memory allocation:

sudo nano /boot/config.txt

# Add or modify:
gpu_mem=128
# or for 1GB RAM devices:
gpu_mem=64

Performance Optimization

Swap Configuration

Optimize swap for SD card longevity:

# Reduce swappiness
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf

# Consider disabling swap entirely for read-only systems
sudo systemctl stop dphys-swapfile
sudo systemctl disable dphys-swapfile

File System Optimization

Edit /etc/fstab to reduce SD card wear:

sudo nano /etc/fstab

# Add noatime option to reduce writes:
/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
tmpfs /tmp tmpfs defaults,noatime,nosuid,size=100m 0 0
tmpfs /var/tmp tmpfs defaults,noatime,nosuid,size=30m 0 0

Other ARM Device Installation

Pine64 Devices

For Pine64 boards (Rock64, RockPro64):

  1. Download the Pine64-specific Q4OS image
  2. Write to SD card or eMMC module using dd or Etcher
  3. Boot and follow the setup wizard
  4. Configure device-specific features through device tree overlays

Odroid Devices

For Odroid single-board computers:

  1. Use the appropriate Odroid Q4OS image
  2. Flash to microSD card or eMMC
  3. Configure boot parameters in boot.ini if available
  4. Set up cooling and fan control as needed

Generic ARM64 Installation

For other ARM64 devices:

  1. Try the generic ARM64 Q4OS image
  2. Boot from USB or SD card
  3. Install using the standard Debian installer
  4. Configure hardware-specific drivers post-installation

Networking Setup

WiFi Configuration

Configure WiFi using NetworkManager GUI or command line:

Using GUI

  1. Click the network icon in the system tray
  2. Select your WiFi network
  3. Enter the password
  4. Click Connect

Using Command Line

# Scan for networks
sudo iwlist wlan0 scan | grep ESSID

# Connect to network
sudo wpa_passphrase "YourNetworkName" "YourPassword" >> /etc/wpa_supplicant/wpa_supplicant.conf

# Restart networking
sudo systemctl restart networking

Static IP Configuration

Configure static IP through NetworkManager or /etc/network/interfaces:

sudo nano /etc/network/interfaces

# Add static configuration:
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4

SSH Access

Enable SSH for remote administration:

sudo systemctl enable ssh
sudo systemctl start ssh

# Change default password for security
passwd

Software Installation and Management

ARM-Optimized Software

Install ARM-optimized applications:

# Essential applications
sudo apt install firefox-esr libreoffice
sudo apt install vlc gimp
sudo apt install code-oss  # ARM-compatible VS Code

# Development tools
sudo apt install build-essential python3-dev
sudo apt install nodejs npm
sudo apt install git cmake

Pi-specific Software

For Raspberry Pi devices:

# Pi-specific tools
sudo apt install rpi-update
sudo apt install wiringpi
sudo apt install python3-rpi.gpio

# Camera support
sudo apt install raspicam
sudo apt install python3-picamera

Performance Monitoring

Install monitoring tools:

sudo apt install htop iotop
sudo apt install lm-sensors
sudo apt install stress-ng  # for testing

Troubleshooting

Boot Issues

  • Red LED only: Check power supply and SD card
  • Rainbow screen: Corrupted boot partition, re-flash SD card
  • Kernel panic: Hardware compatibility issue, try different image
  • No HDMI output: Check HDMI cable and display compatibility

Performance Issues

  • Slow boot: Use faster SD card (Class 10, U3)
  • System lag: Increase GPU memory, disable unnecessary services
  • Overheating: Improve cooling, reduce CPU frequency
  • Memory errors: Test RAM, check power supply stability

Network Problems

  • WiFi not working: Check country code settings
  • Ethernet issues: Check cable and network configuration
  • DNS problems: Verify DNS server settings

Log Analysis

Check system logs for issues:

# Boot messages
dmesg | less

# System logs
journalctl -b

# Hardware info
lscpu
lsusb
lspci  # if available

Advanced Configuration

Overclocking (Raspberry Pi)

Safely overclock for better performance:

sudo nano /boot/config.txt

# Conservative overclock for Pi 4:
over_voltage=2
arm_freq=1750
gpu_freq=500

# Ensure adequate cooling before overclocking

Boot from USB/SSD

Configure boot from USB storage for better performance:

  1. Update Pi firmware to latest version
  2. Enable USB boot in Pi configuration
  3. Clone SD card to USB drive
  4. Modify boot configuration for USB priority

Headless Setup

Configure for headless operation:

# Disable unnecessary services
sudo systemctl disable lightdm  # Disable GUI
sudo systemctl set-default multi-user.target

# Enable serial console
sudo raspi-config  # Interface Options → Serial Port

Custom Boot Splash

Customize boot splash screen:

sudo apt install plymouth plymouth-themes
sudo update-initramfs -u

# Edit /boot/cmdline.txt to add:
# splash quiet plymouth.ignore-serial-consoles

System Maintenance

Regular Updates

Keep the system updated:

# Weekly update routine
sudo apt update && sudo apt upgrade -y
sudo apt autoremove --purge
sudo apt autoclean

# Update Pi firmware (Raspberry Pi only)
sudo rpi-update

SD Card Health

Monitor SD card health:

# Check file system
sudo fsck /dev/mmcblk0p2

# Monitor I/O stats
iostat -x 1

# Backup critical data regularly

System Backup

Create system backups:

# Create disk image backup
sudo dd if=/dev/mmcblk0 of=/path/to/backup.img bs=4M status=progress

# Compress backup
gzip /path/to/backup.img