Music

        _,met$$$$$gg.          HP ProDesk 600 G6 Mini PC / 32 GB RAM / 1 TB HD
     ,g$$$$$$$$$$$$$$$P.       ---------------
   ,g$$P""       """Y$$.".     OS: Debian GNU/Linux 13 (trixie) x86_64
  ,$$P'              `$$$.     Host: HP ProDesk 600 G6 Desktop Mini PC (SBKPFV3)
',$$P       ,ggs.     `$$b:    Kernel: Linux 6.12.57+deb13-amd64
`d$$'     ,$P"'   .    $$$     Uptime: 1 min
 $$P      d$'     ,    $$P     Packages: 1600 (dpkg)
 $$:      $$.   -    ,d$$'     Shell: bash 5.2.37
 $$;      Y$b._   _,d$P'       Display (EPSON PJ): 1920x1200 @ 60 Hz [External]
 Y$$.    `.`"Y$$$$P"'          Cursor: Adwaita
 `$$b      "-.__               Terminal: /dev/pts/0
  `Y$$b                        CPU: Intel(R) Core(TM) i5-10600T (12) @ 4.00 GHz
   `Y$$.                       GPU: Intel UHD Graphics 630 @ 1.20 GHz [Integrated]
     `$$b.                     Memory: 928.76 MiB / 30.70 GiB (3%)
       `Y$$b.                  Swap: 0 B / 31.34 GiB (0%)
         `"Y$b._               Disk (/): 5.16 GiB / 884.03 GiB (1%) - ext4
             `""""             Local IP (eno1): 172.30.30.235/24
                               Locale: en_US.UTF-8

Installation

02. Configure BIOS and UEFI settings
Reboot and press F10 → Computer Setup (BIOS)

Main

  • System Information

  • System Diagnostics

  • Update System BIOS

  • Change Date And Time

  • System IDs

  • Replicated Setup

  • Save Custom Defaults

  • Apply Custom Defaults and Exit

  • Apply Factory Defaults and Exit

  • Ignore Changes and Exit

  • Save Changes and Exit

Security

Administrator Tools

  • Create BIOS Administrator Password
  • Create POST Power-On Password
  • Password Policies
  • Security Configuration
    • TPM Embedded Security
    • BIOS SureStart
  • Physical Presence Interface
    • Smart Cover
    • Trusted Execution Technology (TXT)
    • Intel Software Guard Extensions (SGX): Disable

Utilities

  • Hard Drive Utilities
  • Absolute Persistence Module Current State
    • Activation Status: Inactive
    • Absolute Persistence Module Permanent Disable : No
    • System Management Command

Advanced

  • Display Language
  • Scheduled Power-On
  • Boot Options
  • Secure Boot Configuration
  • System Options
  • Built-In Device Options
  • Port Options
  • Option ROM Launch Policy
  • Power Management Options
  • Remote Management Options

UEFI Drivers

This will restart the system into the 3rd Party Option ROM Management application. You can get to this application directly by pressing F3 during startup.

03. Debian OS
  • Download ISO and burn to an USB Key
  • Skip root password
  • Local user: bhdicaire

Install modules:

  • Debian Desktop Environment
  • GNOME
  • SSH server
  • Standard System Utilities
04. Configuration

Confirm that we have all the required commands and install missing packages

which fwupdmgr sudo inxi fastfetch
sudo apt update; sudo apt full-upgrade -y
sudo apt install -y  lm-sensors inxi fastfetch flatpak intel-gpu-tools mesa-vulkan-drivers mesa-utils gamemode

Ensure that all local users are configured for proper hardware access then log out and log back in. For your information, account badicaire is blocked for SSH and sudo.

sudo usermod -aG video bhdicaire
sudo usermod -aG audio bhdicaire
sudo adduser --disabled-password badicaire
sudo passwd -d badicaire
sudo usermod -aG video badicaire
sudo usermod -aG audio badicaire

Sensors / thermals

sudo sensors-detect
sensors

Disable IPv6

sudo vi /etc/default/grub
sudo update-grub

Find this line GRUB_CMDLINE_LINUX_DEFAULT="quiet" and replace with : GRUB_CMDLINE_LINUX_DEFAULT="quiet ipv6.disable=1 intel_idle.max_cstate=1"

Performance

Prevents all forms of sleep for an arcade or a media center.1: sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target.

Disable Gnome UI animations: gsettings set org.gnome.desktop.interface enable-animations false

Reboot sudo shutdown -r now

04. Verify that all hardware is detected and working
  • sudo inxi -Fz
  • fastfetch1
Component bash command Description
CPU & virtualization lscpu | grep Virtualization Expected: Virtualization: VT-x
Graphics
Intel iGPU
lspci | grep -i vga
lsmod | grep i915
Check driver
Wi-Fi systemctl status NetworkManager
nmcli radio
ip link
NetworkManager is installed & running
Check if wifi is enabled
Identify the Wi-Fi interface
Bluetooth lsusb | grep -i bluetooth
systemctl status bluetooth
sudo systemctl enable --now bluetooth
bluetoothctl

Check service status
If not running, try …
Test
Audio aplay -l
Storage Controller lspci | grep -i sata Expected: SATA controller [AHCI mode].
Optane mode is enabled (bad), If you see RST / RAID / VMD

Confirm that storage is properly configured

lsblk --discard

Column Description Expected Value
DISC-ALN Discard alignment offset 0
DISC-GRAN Smallest TRIM unit 512B or larger
DISC-MAX Largest TRIM size Non-zero (e.g., 2G)
DISC-ZERO Zero-fill on discard 0

Based on the expected value above, the SSD accepts TRIM:

  • Linux can issue discard commands
  • The controller passes them correctly
  • Partitions inherit TRIM capability

For your information, sdc (e.g., USB device or a Card Reader) and sr0 (e.g., Optical Drive) are not expected to support trim.

Online TRIM vs periodic TRIM

Enable periodic TRIM : sudo systemctl enable fstrim.timer to discard unused filesystem blocks once a week.

  • No runtime stutter (e.g., no I/O spikes during gameplay)
  • SSD longevity preserved

You can check the current status: sudo systemctl --no-pager status fstrim.timer

Make sure BIOS is the latest version

sudo dmidecode -s bios-version
sudo dmidecode -s bios-release-date

Roon

    Hostname: music.d5e.dev
   Icon name: computer-desktop
     Chassis: desktop 🖥️
  Machine ID: b0c26d90a9f04f029957bba217628dc4
     Boot ID: 04dee03dd38741fe89f2cac13169bd31
          OS: Debian GNU/Linux 12 (bookworm)  
      Kernel: Linux 6.1.0-28-amd64
Architecture: x86-64

    Hardware: [HP PROMO 260 G2 Mini](https://support.hp.com/id-en/drivers/hp-260-g2-desktop-mini-pc/10049306)
    Firmware: 02.05
Ethernet GBe: 192.168.1.200

**SSD 4TB**
Model Number: CT4000BX500SSD1

Serial Number: 2441E98EEE01 Firmware: M6CR082

**RAM 32GB** / **Max ram: 32 GB**
 RAM Bank #1: TEAMGROUP-SD4-3200 16 GB / DDR4 Synchronous 2133 MHz
 RAM Bank #2: TEAMGROUP-SD4-3200 16 GB / DDR4 Synchronous 2133 MHz

**Network interfaces**
Realtek RTL8111/8168/8411 PCI Gigabit Ethernet Controller (rev 10) / enp1s0 192.168.1.200
Realtek RTL8723BE Wireless Network Adapter

**HDMI + DVI connector**

ssh [email protected]

Configuration

  • Computer name:
    • uname -a
  • HDD Specification:
    • sudo /usr/bin/lshw -short -C disk
    • sudo /sbin/hdparm -I /dev/sda
    • sudo /usr/bin/lshw -class disk -class storage
  • RAM
    • sudo /usr/bin/lshw -class memory
    • free -m # show current memory use in megabytes
  • USB
    • lsusb
  • PCI buses and devices
    • lspci
  • Network interfaces, default gateway and routing tables
    • ip route | column -t

Initial configuration

sudo apt update -y;sudo apt upgrade -y sudo apt full-upgrade -y sudo apt list –installed sudo apt-get install nfs-common curl nano vim gnupg2 htop ffmpeg libasound2 cifs-utils -y

sudo groupadd roon adduser bhdicaire;adduser roon add sudo add shh key

sudo usermod -a -G roon roon bhdicaire

adduser bhdicaire adduser roon

apt-get install nfs-common gpg https://reintech.io/blog/setting-up-plex-media-server-on-debian-12

smbpasswd -a bhdicaire

vi /etc/samba/smb.conf // Samba testparm /etc/samba/smb.conf chmod 777 /mnt/files systemctl restart smbd.service sudo chmod -R 777 ./c

Roon Server x86_64 installation

1 Installation in /opt/RoonServer 2 Data is stored in /var/roon/RoonServer 3. Music is stored in /media/c, j, and r 4. The app will run as root  5. The app is launched immediately, and will relaunch automatically at boot Source: Roon Documentation

curl -O -L https://download.roonlabs.com/builds/roonserver-installer-linuxx64.sh chmod +x roonserver-installer-linuxx64.sh sudo ./roonserver-installer-linuxx64.sh

Copy music locally

sudo mount -t nfs f.d5e.dev:/var/nfs/shared/Music /mnt/unas sudo rsync –chown=roon:roon –delete-before -vrP /mnt/unas/C/ /media/c/ sudo rsync –chown=roon:roon –delete-before -vrP /mnt/unas/J/ /media/j/ sudo rsync –chown=roon:roon –delete-before -vrP /mnt/unas/R/ /media/r/

Maintenance

Roonserver for Linux runs as a service: it’s loaded automatically at boot To stop and start manually:

  • sudo systemctl stop roonserver
  • sudo systemctl start roonserver

shutdown -r now

Copy music locally

uNAS Music is available as read only for device Music.D5E.dev

sudo mount -t nfs f.d5e.dev:/var/nfs/shared/Music /mnt/unas sudo mkdir /mnt/bck;sudo chmod 777 /mnt/bck sudo mount -t nfs f.d5e.dev:/var/nfs/shared/bckRoon /mnt/bck sudo rsync –chown=roon:roon -avzh /mnt/unas/C/ /media/c/ –delete sudo rsync –chown=roon:roon -avzh /mnt/unas/J/ /media/j/ –delete sudo rsync –chown=roon:roon -avzh /mnt/unas/R/ /media/r/ –delete

sudo rsync –chown=bhdicaire:staff -avzh /Volumes/Music/ /Volumes/MusicBck

cat /etc/mtab copy stuff /etc/fstab

================================================= Static hostname: music.d5e.dev Icon name: computer-desktop Chassis: desktop 🖥️ Machine ID: b0c26d90a9f04f029957bba217628dc4 Boot ID: 04dee03dd38741fe89f2cac13169bd31 Operating System: Debian GNU/Linux 12 (bookworm)
Kernel: Linux 6.1.0-28-amd64 Architecture: x86-64 Hardware Vendor: HP Hardware Model: PROMO 260 G2 Mini Firmware Version: 02.05

192.168.1.200 Ethernet 1G

bhdicaire

Roon Core Machine Include your operating system and machine info (Model, CPU, RAM) Networking Gear & Setup Details Your network gear (model of routers/switches) and if on WiFi/Ethernet Connected Audio Devices Specify what devices you’re using and their connection types, like USB/HDMI/Chromecast, etc. Number of Tracks in Library Tell us how large your music library is, eg. “30,000 tracks”

https://help.roonlabs.com/portal/en/kb/articles/faq-what-are-the-minimum-requirements

thought I just needed ports 9003 (UDP), 9100-9200 (TCP) but it looks like Roon is trying to talk to clients on some other port(s) and UniFi’s firewall logging isn’t detailed enough to tell me what that port is.

https://community.roonlabs.com/t/roon-and-music-devices-on-a-unifi-vlan/249139/9

ARC Setup

Roon Core with open ports for Arc must number in the 10s or 100s of thousands at most. Not a very attractive target and unlikely any hacker is going to spend time trying to find a way in as the gain for the effort would be miniscule. I use a UDM Pro as well and have seen a few attempts at the ARC port - nothing to worry about - just open ports being scanned as mentioned by Martin a few posts up. If you’re concerned - easy to do on the UDM Pro - block all traffic from a few countries like Russia, Bulgaria, Belarus, China… unless of course you need them. It won’t stop all scans, but should stop a fair few

RIP

DBPoweramp for cd ripping

And the handful of my +200 CD’s that DBPoweramp didn’t want to read, I’ve ripped with XLD. Everything is now stored as uncompressed FLAC.

Dbpoweramp comes with a companion app called Perfecttunes which is a very good tagger.

Music Downlaoder ??

Soulseek & Forum

Not sure it’s working

alacleaker/apple-music-alac-downloader: Apple Music ALAC Downloader

Something you can consider also if you want to get music but not using streaming services is to use qBittorent and a site like rutracker.org 5 and use the mini just for that. You can extend it as a media server if you want in the future by simply connecting it to your TV and download movies or TV shows.

References

Roon hardware Setup

https://help.roonlabs.com/portal/en/kb/articles/roon-optimized-core-kit#ROCK_For_Small_to_Medium-Sized_Libraries https://help.roonlabs.com/portal/en/kb/articles/migrating-to-rock#Storage https://help.roonlabs.com/portal/en/kb/articles/rock-install-guide#2BConfiguring_the_BIOS

Roon Install

https://hub.docker.com/repository/docker/elgeeko/roon-server

https://github.com/elgeeko1/roon-server-docker

https://github.com/elgeeko1/elgeeko1-roon-server-ansible

https://hub.docker.com/r/steefdebruijn/docker-roonserver

database backup to your new Core. If you look at the Roon Faq pages there are a number of them on Migration. See: Roon Labs Help Center Moving Roon to a new Server 16 Your Roon database contains your edits, playlists, favorites, play history, login information, and settings. When setting up a new dedicated server (like a Nucleus), or just moving between Roon and Roon Server, you may want to transfer the database…

and Roon Labs Help Center FAQ: How do I move my collection to a new folder, hard drive or NAS, Will I… 10 If you’re going to move all or part of your music library, please follow the strategy below to ensure Roon can accurately track your files to their new location. If you are adding new files that Roon has never seen, then you can skip this whole …

and Don’t forget to turn off the old core, install a different OS. Lifted from the Migration page to highlight

=======

Setup Roon Core

[email protected] & [email protected] https://roonlabs.com/

  1. Install Debian via USB
  • No desktop, SSH & System Utility
  • create root & bhdicaire user account

sudo apt update -y;sudo apt upgrade -y // sudo apt full-upgrade -y if required

  1. Install and configure SUDO as root apt-get install sudo -y sudo usermod -aG sudo bhdicaire sudo adduser roon sudo usermod -aG sudo roon ?? Verify: groups bhdicaire

  2. Samba sudo apt-get install samba samba-client -y sudo vi /etc/samba/smb.conf sudo systemctl restart smbd.service Samba documentation Samba man pages – smb.conf testparm /etc/samba/smb.conf

  3. Install minimal packages

sudo apt-get install curl nano vim gnupg2 htop -y sudo apt list –installed

  1. Roon

1 Installation in /opt/RoonBridge or /opt/RoonServer 2 Data is stored in /var/roon/RoonBridge or /var/roon/RoonServer 3 The app will run as root  4 The app is launched immediately, and will relaunch automatically at boot

sudo apt-get install ffmpeg libasound2 cifs-utils -y


  1. To undo all forms of sleep: sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target ↩︎ ↩︎