Install Roon Bridge on Tiny Core Linux

For first, I want to tell you that I tryed almost all other software solutions based on Raspberry PI and NUC platforms, like DietPI, RoooPie, Volumio, and so on. But after testing the following configuration, I can tell this is the faster, minimal, and best sounding solution for Roon Bridge.

My goal was to use the minimal possible Linux distro, and loading only necessary libraries. This way I was expected the best results in terms of loading speed, optimization and sound quality.

Initially I was using piCorePlayer, but I saw many libraries and modules present in it and they aren’t necessary, so I decide to use the distribution whom piCorePlayer is based, and start everything from scratch.

The only issue left is that Roon Bridge it cannot auto-update from Roon User Interface, and the update must be doing manually.

You will need a SSH client, and some patience.

So, let’s start!

Install Tiny Core Linux (by Cosmin Batica)

  1. Download image file from:
    http://www.tinycorelinux.net/13.x/aarch64/releases/RPi/piCore64-13.1.zip

  2. From your PC, put downloaded image file on a blank microSD with a single FAT32 partition, using balenaEtcher for example.

  3. Put the microSD card into RPI slot, connect a LAN cable to RPI, and power on the RPI.

After the first run (by Tiny Core readme file)

Execute ‘filetool.sh -b’ shell command after the first boot to save
generated unique SSH keys which will be used during next boots. It will
speed up boot and eliminate to bother new keys in SSH client.

SD card partitioning (by Tiny Core readme file)

First partition, mmcblk0p1 is VFAT type; it contains the basic piCore
system and the Raspberry Pi boot loader, firmware and other support
files. Partition is unmounted during operation, system is not using it
after boot and never writes.

Second partition, mmcblk0p2 is a Linux ext4 partion which contains
preinstalled extensions, openssh and mc (Midnight Commander) and
configuration files. It is a small partion with no free space, you must
expand its size to have enough room for additional extensions, updates
and backups. It can be done on the running system locally or remote
via SSH following these steps:

  1. Start fdisk partitioning tool as root:

    sudo fdisk -u /dev/mmcblk0

    Now list partitions with ‘p’ command and write down the starting and
    ending sectors of the second partition.

  2. Delete second partition with ‘d’ than recreate it with ‘n’ command.
    Use the same starting sector as deleted had and provide end
    sectore or size greater than deleted had having enough free space
    for Mounted Mode. When finished, exit fdisk with ‘w’ command. Now
    partition size increased but file system size is not yet changed.

  3. Reboot piCore. It is necessary to make Kernel aware of changes.

  4. After reboot expand file system to the new partition boundaries with
    typing the following command as root:sudo reboot

    resize2fs /dev/mmcblk0p2

Now you are ready to use the bigger partition.

Installing necessary Applications and do the Configurations (by Cosmin Batica)

  1. Download the armv8 version of Roon Bridge from here, and save it locally to your PC:
    https://download.roonlabs.net/builds/RoonBridge_linuxarmv8.tar.bz2

  2. Copy the downloaded file RoonBridge_linuxarmv8.tar.bz2 to rpi folder /opt

  3. Edit the file /opt/bootsync.sh and add the following line at the end, as a new line:
    /opt/RoonBridge/start.sh

  4. Run the following commands in terminal, one by one:

tce-load -wi nano.tcz
tce-load -wi alsa.tcz
tce-load -wi ffmpeg.tcz

tce-load -wi firmware-rpi-wifi.tcz
tce-load -wi wifi.tcz
tce-load -wi wpa_supplicant.tcz
tce-load -wi wireless_tools.tcz

tar xf RoonBridge_linuxarmv8.tar.bz2

rm -f /opt/RoonBridge_linuxarmv8.tar.bz2

  1. Now run in terminal the following command anf then follow the on-screen messages (choose the desired wireless network, then the WiFi password if it’s protected):
    sudo wifi.sh

  2. Run the following commands in terminal, one by one:

filetool.sh -b

sudo reboot

Now wait for rpi to reboot and search for rpi roon bridge in Roon Remote interface.

Enjoy!

1 Like

Updated procedure

Ver. 1.1

  • Resolve issue with access denied for Roon Bridge update command from Roon control interface;
  • Resolve some issues who appears after reboot:
    • not keeping the last audio interface settings made;
    • Roon Interface not keeping the last audio interface selected;
  • Load only necessary TCE libraries.

Ver. 1.0
Initial version

A. Install Tiny Core Linux (by Cosmin Batica)

  1. Download image file from:
    http://www.tinycorelinux.net/13.x/aarch64/releases/RPi/piCore64-13.1.zip

  2. From your PC, put downloaded image file on a blank microSD with a single FAT32 partition, using balenaEtcher for example.

  3. Put the microSD card into RPI slot, connect a LAN cable to RPI, and power on the RPI.

B. After the first run (by Tiny Core readme file)

Execute ‘filetool.sh -b’ shell command after the first boot to save
generated unique SSH keys which will be used during next boots. It will
speed up boot and eliminate to bother new keys in SSH client.

C. SD card partitioning (by Tiny Core readme file)

First partition, mmcblk0p1 is VFAT type; it contains the basic piCore
system and the Raspberry Pi boot loader, firmware and other support
files. Partition is unmounted during operation, system is not using it
after boot and never writes.

Second partition, mmcblk0p2 is a Linux ext4 partion which contains
preinstalled extensions, openssh and mc (Midnight Commander) and
configuration files. It is a small partion with no free space, you must
expand its size to have enough room for additional extensions, updates
and backups. It can be done on the running system locally or remote
via SSH following these steps:

  1. Start fdisk partitioning tool as root:

    sudo fdisk -u /dev/mmcblk0

    Now list partitions with ‘p’ command and write down the starting and
    ending sectors of the second partition.

  2. Delete second partition with ‘d’ than recreate it with ‘n’ command.
    Use the same starting sector as deleted had and provide end
    sectore or size greater than deleted had having enough free space
    for Mounted Mode. When finished, exit fdisk with ‘w’ command. Now
    partition size increased but file system size is not yet changed.

  3. Reboot piCore. It is necessary to make Kernel aware of changes.

  4. After reboot expand file system to the new partition boundaries with
    typing the following command as root:sudo reboot

    sudo resize2fs /dev/mmcblk0p2

Now you are ready to use the bigger partition.

D. Installing necessary Applications and do the Configurations (by Cosmin Batica)

  1. Download the armv8 version of Roon Bridge from here, and save it locally to your PC:
    https://download.roonlabs.net/builds/RoonBridge_linuxarmv8.tar.bz2

  2. Copy the downloaded file RoonBridge_linuxarmv8.tar.bz2 to rpi folder /opt

  3. Edit the file /opt/bootsync.sh and add the following new line at the end:
    /opt/RoonBridge/start.sh

Edit the file /opt/bootlocal.sh and add the following new line at the end:
/usr/local/bin/wifi.sh -a 2>&1 > /tmp/wifi.log

Edit the file /opt/.filetools and add the following new lines at the end:
.RAATServer
.RoonBridge

  1. Run the following commands in terminal, one by one:

tce-load -wi nano.tcz
tce-load -wi alsa.tcz
tce-load -wi rpi-vc.tcz
tce-load -wi firmware-rpi-wifi.tcz
tce-load -wi wifi.tcz
tce-load -wi ffmpeg.tcz

cd /opt
tar xf RoonBridge_linuxarmv8.tar.bz2
rm -f /opt/RoonBridge_linuxarmv8.tar.bz2

filetool.sh -b

sudo reboot

  1. Now run in terminal the following command and then follow the on-screen messages (choose the desired wireless network, then the WiFi password if it’s password protected):
    sudo wifi.sh

  2. Run the following commands in terminal, one by one:

filetool.sh -b

sudo reboot

  1. Now wait for rpi to reboot and search for rpi roon bridge in Roon Remote interface.

  2. Remember, after each configuration changes you’ll made, it’s necessary to run the following backup command, before reboot/shutdown the RPI:
    filetool.sh -b

Enjoy!

Update

Ver. 1.2

  • disable on-board audio
  • disable HDMI
  • disable leds

Ver. 1.1

  • Resolve issue with access denied for Roon Bridge update command from Roon control interface;
  • Resolve some issues who appears after reboot:
    • not keeping the last audio interface settings made;
    • Roon Interface not keeping the last audio interface selected;
  • Load only necessary TCE libraries.

Ver. 1.0
Initial version

A. Install Tiny Core Linux (by Cosmin Batica)

  1. Download image file from:
    http://www.tinycorelinux.net/13.x/aarch64/releases/RPi/piCore64-13.1.zip

  2. From your PC, put downloaded image file on a blank microSD with a single FAT32 partition, using balenaEtcher for example.

  3. Put the microSD card into RPI slot, connect a LAN cable to RPI, and power on the RPI.

B. After the first run (by Tiny Core readme file)

Execute ‘filetool.sh -b’ shell command after the first boot to save
generated unique SSH keys which will be used during next boots. It will
speed up boot and eliminate to bother new keys in SSH client.

C. SD card partitioning (by Tiny Core readme file)

First partition, mmcblk0p1 is VFAT type; it contains the basic piCore
system and the Raspberry Pi boot loader, firmware and other support
files. Partition is unmounted during operation, system is not using it
after boot and never writes.

Second partition, mmcblk0p2 is a Linux ext4 partion which contains
preinstalled extensions, openssh and mc (Midnight Commander) and
configuration files. It is a small partion with no free space, you must
expand its size to have enough room for additional extensions, updates
and backups. It can be done on the running system locally or remote
via SSH following these steps:

  1. Start fdisk partitioning tool as root:

    sudo fdisk -u /dev/mmcblk0

    Now list partitions with ‘p’ command and write down the starting and
    ending sectors of the second partition.

  2. Delete second partition with ‘d’ than recreate it with ‘n’ command.
    Use the same starting sector as deleted had and provide end
    sectore or size greater than deleted had having enough free space
    for Mounted Mode. When finished, exit fdisk with ‘w’ command. Now
    partition size increased but file system size is not yet changed.

  3. Reboot piCore. It is necessary to make Kernel aware of changes.

  4. After reboot expand file system to the new partition boundaries with
    typing the following command as root:sudo reboot

    sudo resize2fs /dev/mmcblk0p2

Now you are ready to use the bigger partition.

D. Installing necessary Applications and do the Configurations (by Cosmin Batica)

  1. Download the armv8 version of Roon Bridge from here, and save it locally to your PC:
    https://download.roonlabs.net/builds/RoonBridge_linuxarmv8.tar.bz2

  2. Copy the downloaded file RoonBridge_linuxarmv8.tar.bz2 to rpi folder /opt

  3. Edit the file /opt/bootsync.sh and add the following new lines at the end:
    tvservice -o
    /opt/RoonBridge/start.sh

Edit the file /opt/bootlocal.sh and add the following new line at the end:
/usr/local/bin/wifi.sh -a 2>&1 > /tmp/wifi.log

Edit the file /opt/.filetool and add the following new lines at the end:
.RAATServer
.RoonBridge

  1. Run the following commands in terminal, one by one:

tce-load -wi nano.tcz
tce-load -wi alsa.tcz
tce-load -wi rpi-vc.tcz
tce-load -wi firmware-rpi-wifi.tcz
tce-load -wi wifi.tcz
tce-load -wi ffmpeg.tcz

cd /opt
tar xf RoonBridge_linuxarmv8.tar.bz2
rm -f /opt/RoonBridge_linuxarmv8.tar.bz2

filetool.sh -b

sudo reboot

  1. Now run in terminal the following command and then follow the on-screen messages (choose the desired wireless network, then the WiFi password if it’s password protected):
    sudo wifi.sh

  2. Run the following command in terminal:

mount /mnt/mmcblk0p1/

  1. Edit the file /mnt/mmcblk0p1/config.txt:
    7.1. comment with # the following lines:
    #dtparam=audio=on
    #dtoverlay=vc4-kms-v3d-pi4
    #max_framebuffers=2
    7.2. add the following lines at the end:

disable leds

dtparam=act_led_trigger=none
dtparam=act_led_activelow=off
dtparam=pwr_led_trigger=none
dtparam=pwr_led_activelow=off

  1. Run the following commands in terminal, one by one:

filetool.sh -b

sudo reboot

  1. Now wait for rpi to reboot and search for rpi roon bridge in Roon Remote interface.

  2. Remember, after each configuration changes you’ll made, it’s necessary to run the following backup command, before reboot/shutdown the RPI:
    filetool.sh -b

Enjoy!

1 Like