Skip to content

Instantly share code, notes, and snippets.

@tatara-eth
Forked from Overemployed/install.sh
Created December 6, 2023 18:40
Show Gist options
  • Save tatara-eth/e81b6aa50e72d6d14049b091fd267d23 to your computer and use it in GitHub Desktop.
Save tatara-eth/e81b6aa50e72d6d14049b091fd267d23 to your computer and use it in GitHub Desktop.
Jacktrip running on PiKVM / Raspberry Pi with arch distro
#!/bin/bash
# Check if script is running as root
if [ "$EUID" -ne 0 ]
then echo "Please run as root"
exit
fi
# your personal machine running jacktrip
REMOTE_JACK_SERVER=nat.local
# change to any name to identify this jacktrip client
JOB_NAME=J1
BUFFER_SIZE=1024
# -d hw:1,0 for pikvm v3 hat
# -d hw:0,0 for others
AUDIO_DEVICE=-d hw:1,0
pacman -Syu
pacman -S --needed jack2 jacktrip njconnect jack-example-tools
# Checking if user 'jacktrip' already exists
if id "jacktrip" &>/dev/null; then
echo "User 'jacktrip' already exists. Skipping user creation."
else
useradd -M -r jacktrip -G audio
fi
cat > /etc/systemd/system/jack.conf <<EOF
JACK_NO_AUDIO_RESERVATION=1
JACK_OPTS=-d alsa $AUDIO_DEVICE -r 44100 -p $BUFFER_SIZE
JACKTRIP_OPTS=-C $REMOTE_JACK_SERVER -n 1 --remotename $JOB_NAME
EOF
cat > /etc/systemd/system/jackd.service <<EOF
[Unit]
Description=jackd
After=sound.target
[Service]
User=jacktrip
Type=simple
LimitRTPRIO=infinity
LimitMEMLOCK=infinity
LimitRTTIME=infinity
EnvironmentFile=/etc/systemd/system/jack.conf
ExecStart=/usr/bin/jackd \$JACK_OPTS
Restart=always
RestartSec=2s
[Install]
WantedBy=multi-user.target
EOF
cat > /etc/systemd/system/jacktrip.service <<EOF
[Unit]
Description=jacktrip
Requires=jackd.service
After=network.target jackd.service
[Service]
User=jacktrip
Type=simple
LimitRTPRIO=infinity
LimitMEMLOCK=infinity
LimitRTTIME=infinity
EnvironmentFile=/etc/systemd/system/jack.conf
ExecStartPre=jack_wait -w -t 5
ExecStart=/usr/bin/jacktrip \$JACKTRIP_OPTS
Restart=always
RestartSec=2s
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable jackd.service
systemctl enable jacktrip.service
systemctl start jackd.service
systemctl start jacktrip.service
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment