/RuneOS

"RuneAudio+R" - DIY RuneOS

Primary LanguageShell

RuneAudio+R - DIY RuneOS

Audio player and renderer for Raspberry Pi

guide

  • For all Raspberry Pis: Zero, 1, 2, 3 and 4
  • Create RuneAudio+R from latest releases of Arch Linux Arm
  • Interactive interface by only 2 command lines:
#1
wget -qO create-alarm.sh https://github.com/rern/RuneOS/raw/master/usr/local/bin/create-alarm.sh; chmod +x create-alarm.sh; ./create-alarm.sh
#2
create-rune.sh
  • Options:
    • Run ROOT partition on USB drive
    • Run on USB only - no SD card (boot from USB)
    • Pre-configure Wi-Fi connection (headless mode)
    • Exclude features (can be as light as possible in terms of build time and disk space)
  • More details: Forum

Procedure

  • Prepare partitions
  • Create Arch Linux Arm
    • Verify partitions
    • Optional - pre-configure Wi-Fi (For reliable connection, use wired LAN if possible)
    • Download and verify
    • Write BOOT and ROOT partitions
    • Connect PC to Raspberry Pi
  • Create RuneAudio
    • Select features
    • Upgrade kernel and default packages
    • Install feature packages (from official and RR repo)
    • Install web interface
    • Configure
    • Set default settings
  • Optionals
    • Setup Wi-Fi auto-connect
    • Create image file

dialog1 dialog2

Need

  • PC - Linux - any distro
    • or on USB e.g., Manjaro - Arch Linux
    • or on Raspberry Pi itself (If no GUI, fdisk and mount skills needed.)
    • or on VirtualBox on Windows (with network set as Bridge Adapter) - Slowest
  • Raspberry Pi
  • Network connection to Raspberry Pi
    • Wired LAN
    • Optional: Wi-Fi (if necessary)
  • Media:
    • Option 1: Micro SD card: 4GB+ for BOOT + ROOT partitions
    • Option 2: Micro SD card + USB drive (ROOT partition on USB drive)
      • Micro SD card: 100MB+ for BOOT partition only
      • USB drive: 4GB+ for ROOT partition (or USB hard drive with existing data)
    • Option 3: USB drive only - no SD card (Boot from USB drive)
      • Raspberry Pi 3 and 2 v1.2 only (4 not yet supported)
      • USB drive: 4GB+ for BOOT + ROOT partition
    • Note for USB drive:
      • Suitable for hard drives or faster-than-SD-card thumb drives.
      • It takes less than 20 minutes for the whole process with a decent download speed.
      • Boot from USB drive:
        • Suitable for solid state drives.
        • Normal hard drive needs external power, e.g., powered USB hub, to have it spin up 5+ seconds before boot.
        • Boot takes 10+ seconds longer (detect no sd card > read boot loader into memory > boot)

Prepare partitions

  • On Linux PC
  • Open GParted app (Manjaro root password: manjaro)
  • 3 Alternatives:
    • Micro SD card only
    • Micro SD card + USB drive
    • USB drive only

Alternative 1: Micro SD card only

  • Unmount > Delete all partitions (make sure it's the micro SD card)
  • Create partitions:
No. Size Type Format Label
#1 100MiB primary fat32 BOOT
#2 (the rest) primary ext4 ROOT

Alternative 2: Micro SD card + USB drive

  • Micro SD card
    • Unmount > Delete all partitions (Caution: make sure it's the SD card)
    • Create a partition:
No. Size Type Format Label
#1 100MiB primary fat32 BOOT
  • USB drive - Blank:
    • Unmount > Delete all partitions (Caution: make sure it's the USB drive)
    • Create partitions:
No. Size Type Format Label
#1 3500MiB primary ext4 ROOT
#2 (the rest) primary ext4 (any)
  • or USB drive - with existing data:
    • No need to reformat or change format of existing partition
    • Resize the existing to get 3500MiB unallocated space (anywhere - at the end, middle or start of the disk)
    • Create a partition in the space:
No. Size Type Format Label
(any) (existing) primary (any) (any)
(any) 3500MiB primary ext4 ROOT

Alternative 3: USB drive only

  • Enable boot from USB: Set boot bit (Micro SD card can still be used as usual if inserted.)
  • Create partitions: (Drive with existing data must be resized and rearranged respectively.)
No. Size Type Format Label
#1 100MiB primary fat32 BOOT
#2 3500MiB primary ext4 ROOT
#3 (the rest) primary ext4 (any)

Create Arch Linux Arm

  • Open Files app (File Manager on Manjaro)
  • Click BOOT and ROOT to mount
  • Note each path in location bar or hover mouse over BOOT and ROOT for confirmation
# switch user to root
su

# on Manjaro only - update package list
# specific servers by country (list: grep -i COUNTRY /etc/pacman.d/mirrorlist)
pacman-mirrors -c COUNRTY
# if not listed, rank all servers: pacman-mirrors -f

# get script and run
wget -qO create-alarm.sh https://github.com/rern/RuneOS/raw/master/usr/local/bin/create-alarm.sh; chmod +x create-alarm.sh; ./create-alarm.sh
  • Errors or too slow download: press Ctrl+C and run ./create-alarm.sh again
  • Follow instructions until PC to Raspberry Pi connection is up.

Create RuneAudio

  • UI branch and version number are assigned by this script
# run script
create-rune.sh
  • Errors or too slow download: press Ctrl+C and run create-rune.sh again
  • Notification shows when finished.

Known errors in boot log journalctl -b

  • Error: Driver 'sdhost-bcm2835' already registered - not error just information
  • Error: bcm2708_fb soc:fb: ... - on RPi 4 when no connected screen

Optionals

Setup Wi-Fi auto-connect for headless/no screen (if not set during build)

  • On Linux or Windows
  • Insert micro SD card
  • 3 alternatives:
    1. From existing
      • Backup the profile file from /etc/netctl/PROFILE
      • Rename it to wifi then copy it to BOOT before power on.
    2. Edit template file - name and password
      • Open wifi0 in BOOT with text editor
      • Edit SSID and Key
      • Save as wifi
    3. Generate a complex profile - static IP, hidden SSID
  • Move micro SD card to Raspberry Pi
  • Power on

Create image file

  • Once started RuneAudio+R successfully
  • Reset for image
ssh root@<RPI IP>
wget https://github.com/rern/RuneOS/raw/master/resetforimage.sh -O - | sh
  • Power off

  • Move micro SD card (and the USB drive, if ROOT partition is in USB drive) to PC

  • Resize ROOT partition to smallest size possible with GParted app (smaller the size = smaller image file and less time to flash SD card)

    • menu: GParted > Devices > /dev/sd?
    • right-click ROOT partiton > Unmount
    • right-click ROOT partiton > Resize/Move
    • drag rigth triangle to fit minimum size
    • menu: Edit > Apply all operations
  • Create image - SD card mode

# get device and verify
part=$( df | grep BOOT | awk '{print $1}' )
dev=${part:0:-1}
df | grep BOOT
echo device = $dev

# get partition end and verify
fdisk -u -l $dev
end=$( fdisk -u -l $dev | tail -1 | awk '{print $3}' )
echo end = $end

# create image
dd if=$dev of=RuneAudio+Re2.img count=$(( end + 1 )) status=progress  # remove status=progress if errors
  • Create image - USB drive mode
    • Open Disks app - select drive > select partition > cogs button > Create Partition Image
      • Micro SD card
      • USB drive