# IMPORTANT FOR RASPBERRY PI OWNERS:
# It’s strongly recommended to create your audio server on Raspberry PI 4 2Go
# The raspberry pi 3 share the same controller with USB and Ethernet which is not good for an audiophile server
# do not expect to use native DSD with RPI 3 using an usb dac…
# ALL INFORMATION BELOW ARE FOR RPI 3B + ONLY, does not apply to other devices
# Apply patch one by one in this order, reboot and check before
# TS1
# APPLY IF NEEDED ONLY (sound drop/loss)
# Ethernet drops Fix (Recommended for Raspberry PI 3B+ only do not apply to RPI 4)
# identify the name of your Ethernet connection (usually eth0 or enp3s0)
$ ip a
# edit rc.local to run a cmd at startup
$ sudo nano /etc/rc.local
# enter this cmd below to optimize your ethernet connection
# see the Tips & Tricks section to install ethtool (sudo apt-get install ethtool) if needed
# add this line at end of rc.local
$ sudo ethtool -s eth0 speed 100 duplex full
# CTRL+O to save
# CTRL+X to exit
$ sudo reboot
# TS2
# APPLY IF NEEDED ONLY
# optimize perf for Raspberry PI 3B+ – cpu gouvernor (not recommended for PI4)
# check cpu governor
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
# set to “performance” at startup
$ sudo mv /etc/init.d/raspi-config /etc/init.d/raspi-config.bak
$ sudo nano /etc/init.d/raspi-config
# copy/paste this script
#!/bin/sh ### BEGIN INIT INFO # Provides: raspi-config # Required-Start: udev mountkernfs $remote_fs # Required-Stop: # Default-Start: S 2 3 4 5 # Default-Stop: # Short-Description: Switch to performance/ondemand cpu governor based on shift key pressed. # Description: ### END INIT INFO # . /lib/lsb/init-functions case "$1" in start) log_daemon_msg "Checking if shift key is held down..." SYS_CPUFREQ_GOVERNOR=/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor if [ -x /usr/sbin/thd ] && timeout 1 thd --dump /dev/input/event* | grep -q "LEFTSHIFT\|RIGHTSHIFT"; then printf "Yes. Switching to ondemand scaling governor." if [ -e $SYS_CPUFREQ_GOVERNOR ]; then echo "ondemand" > $SYS_CPUFREQ_GOVERNOR echo 50 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold echo 100000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate echo 50 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor fi log_end_msg 0 else printf "No. Switching to performance scaling governor." if [ -e $SYS_CPUFREQ_GOVERNOR ]; then echo "performance" > $SYS_CPUFREQ_GOVERNOR fi log_end_msg 0 fi ;; stop) ;; restart) ;; force-reload) ;; *) echo "Usage: $0 start" >&2 exit 3 ;; esac
# CTRL+O to save
# CTRL+X to exit
# set permission to exec
$ sudo chmod 755 /etc/init.d/raspi-config
$ sudo reboot
# type to check:
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
# result must be:
# performance
# TS3
# APPLY IF NEEDED ONLY
# USB dropped frames Fix (not recommended for PI 4)
$ sudo nano /etc/rc.local
# # USB fix
$ sudo sed -i "s/console=serial0,115200/net.ifnames=0 dwc_otg.fiq_enable=1 dwc_otg.fiq_fsm_enable=1 dwc_otg.fiq_fsm_mask=0xF dwc_otg.nak_holdoff=1 console=serial0,115200/" /boot/cmdline.txt
# # revert value
$ sudo sed -i "s/net.ifnames=0 dwc_otg.fiq_enable=1 dwc_otg.fiq_fsm_enable=1 dwc_otg.fiq_fsm_mask=0xF dwc_otg.nak_holdoff=1 //" /boot/cmdline.txt
# CTRL+O to save
# CTRL+X to exit
$ sudo reboot