Raspberry Pi Installation Guide - TheAppgineer/roon-entrypoints GitHub Wiki

This page describes how to setup Entrypoints on a Raspberry Pi. DietPi is the OS of choice, from which the Roon Extension Manager is installed, that is then used to install the Entrypoints. Let's get right to it.

Required Parts
Step 1: Install DietPi
Step 2: Connect to the Pi
Step 3: Install the Extension Manager and Docker
Step 4: Install the Entrypoint Gateway extension
Step 5: Select the audio input HAT in DietPi
Step 6: Install the Audio Entrypoint extension
Step 7: Enable Bluetooth in DietPi
Step 8: Install the BT Entrypoint extension
Step 9: Connect the optical drive to the Raspberry Pi
Step 10: Install the CD Entrypoint extension
Step 11: Install the Librespot Entrypoint extension

Required Parts

General

  • Raspberry Pi 2, 3, 4 or Zero 2 W. The original Pi 1 and Zero W are not supported!
  • Micro SD card (4 GB or greater)

For Audio Entrypoint

  • Analog or digital input HAT, having ALSA drivers (e.g. HiFiBerry Digi+ I/O for digital or HiFiBerry DAC+ ADC for analog)

For BT Entrypoint

  • Raspberry Pi with onboard Bluetooth (3B or later)

ℹ️ A USB Bluetooth dongle might work but this hasn't been tested

For CD Entrypoint

  • CD-ROM, DVD-ROM or BD-ROM drive, can be a USB, IDE or SATA type (hereafter called optical drive)
  • IDE/SATA to USB converter (only if the drive isn’t USB)

For Librespot Entrypoint

There are no additional parts required for the Librespot Entrypoint

Step 1: Install DietPi

  • Download and Install Balena Etcher, it is available for Windows, Mac and Linux
  • Download the DietPi for Raspberry Pi image and extract the DietPi_vx.xx.img file
  • Start Etcher, select the DietPi image file, select your SD card as target, and Flash!
  • Plug the SD card into your Raspberry Pi and turn it on

ℹ️ The official DietPi installation guide can be found here

Step 2: Connect to the Pi

  • Download and Install PuTTY, it is available for Windows and Linux
  • Get the IP address of the Raspberry Pi via your router or other tool
  • Setup an ssh connection in PuTTY, use the IP address you found in the previous step, set other settings as in screenshot and select Open
PuTTY setup
  • Wait till the scrolling messages stop and you are asked to log in

Step 3: Install the Extension Manager and Docker

  • Login with the username root and the password dietpi
  • Follow further instructions till you reach the software menu
  • Select the 'Software Optimized' category, move down the list and select the Extension Manager (86) in the 'Media Systems' group (select by pressing space-bar), move down further and also select Docker (162) in the 'System Security' group'.
  • Press Tab to highlight OK and press Enter to go back to the previous menu
  • Move down to the Install option and press Enter
  • After the installation is finished you select OK to reboot

ℹ️ After the reboot the Extension Manager should be accessible from the hamburger menu of your Roon Remote: ☰→Settings→Extensions

ℹ️ Entrypoints are installed from the Entrypoints category of the Extension Manager

Step 4: Install the Entrypoint Gateway extension

  • Open the Settings dialog of the Extension Manager
  • Select the Entrypoint Gateway from the Entrypoints category
  • Open the Docker Install Options and set the Time Zone, get your time zone from the TZ database name column in this list
  • Perform the Install action

ℹ️ There is only one Entrypoint Gateway required in the local network


ℹ️ Step 5 and 6 are only required if you want to use the Audio Entrypoint

Step 5: Select the audio input HAT in DietPi

  • Run the dietpi-config application via the PuTTY console
  • Select Audio Options
  • Select Soundcard
  • Select your soundcard (input HAT) from the list
  • Press Tab and select the <Back> option
  • Press Tab and select the <Exit> option and confirm with <Ok>

Step 6: Install the Audio Entrypoint extension

  • Open the Settings dialog of the Extension Manager
  • Select the Audio Entrypoint from the Entrypoints category
  • Perform the Install action

ℹ️ Step 7 and 8 are only required if you want to use the BT Entrypoint

Step 7: Enable Bluetooth in DietPi

  • Run the dietpi-config application via the PuTTY console
  • Select Advanced Options
  • Select Bluetooth if it is marked [off]
  • Press Tab and select the <Back> option
  • Press Tab and select the <Exit> option and confirm with <Ok>
  • Back at the PuTTY console enter the command: systemctl mask bluetooth
  • To reboot the Pi enter the command: reboot

Step 8: Install the BT Entrypoint extension

  • Open the Settings dialog of the Extension Manager
  • Select the BT Entrypoint from the Entrypoints category
  • Perform the Install action

ℹ️ Step 9 and 10 are only required if you want to use the CD Entrypoint

Step 9: Connect the optical drive to the Raspberry Pi

Now we have to determine some drive properties that are required during the installation of the extension (step 8). Login to DietPi and connect the USB lead (using any optional adapter) of the optical drive to a USB port of the Raspberry Pi.

Get the Optical Drive Path

ℹ️ If there is only one optical drive available in the system then the default /dev/cdrom device is probably right

Enter the command dmesg and search for the drive identifier somewhere at the end of the command output. There should be a line that contains "Attached scsi CD-ROM" followed by the identifier we are looking fore. Below is some example output and for this case the identifier is sr0.

Example output:

[ 536.436467] usb-storage 1-1.5:2.0: USB Mass Storage device detected
[ 536.446432] scsi host0: usb-storage 1-1.5:2.0
[ 537.594871] scsi 0:0:0:0: Attached scsi generic sg0 type 5
[ 537.616164] sr 0:0:0:0: [sr0] scsi3-mmc drive: 32x/32x writer cd/rw xa/form2 cdda tray
[ 537.616173] cdrom: Uniform CD-ROM driver Revision: 3.20
[ 537.616506] sr 0:0:0:0: Attached scsi CD-ROM sr0

Now write down your Optical Drive Path, this is constructed as follows:

/dev/<identifier>

Replace the <identifier> part with the identifier you found in the dmesg output. So the drive path for the example output is /dev/sr0.

Get the cdrom group ID

Next step is to get the cdrom group ID on the Raspberry Pi, you get this by entering the getent group cdrom command.
Write down the number that is at the end of the output line between the colons (probably 24).

Step 10: Install the CD Entrypoint extension

  • Open the Settings dialog of the Extension Manager
  • Select the CD Entrypoint from the Entrypoints category
  • Open the Docker Install Options and set the cdrom group ID and Optical Drive Path as determined in Step 7 (defaults are probably correct)
  • Perform the Install action

ℹ️ Step 11 is only required if you want to use the Librespot Entrypoint

Step 11: Install the Librespot Entrypoint extension

  • Open the Settings dialog of the Extension Manager
  • Select the Librespot Entrypoint from the Entrypoints category
  • Perform the Install action
⚠️ **GitHub.com Fallback** ⚠️