Subsonic on Raspberry Pi 3

Written by pmd - - 8 comments

Install java:

sudo apt-get install openjdk-8-jre

Download the Subsonic .deb package and install it:

sudo dpkg -i subsonic-x.x.deb

Change user (i have set pi instead of root) :

sudo nano /etc/default/subsonic

For troubleshooting interesting files are here: /var/subsonic

It was interesting because it allowed me to understand why Subsonic web interface was OK but impossible to play a file :

cat /var/subsonic/subsonic.log
[2018-01-14 10:59:44,539] INFO TranscodeInputStream - Starting transcoder: /var/subsonic/transcode/ffmpeg -i /home/pi/Music/Paul Kalkbrenner - Berlin Calling/07_Paul_Kalkbrenner_-_Torted_Original Mix.mp3 -map 0:0 -b:a 128k -v 0 -f mp3 -
[2018-01-14 10:59:44,551] INFO InputStreamReaderThread - (/var/subsonic/transcode/ffmpeg) /var/subsonic/transcode/ffmpeg: 1: /var/subsonic/transcode/ffmpeg: Syntax error: "(" unexpected

It was a problem linked with ffmpeg. I think the problem comes from the fact that ffmpeg given in deb is made for ubuntu/debian but probably not ARM processor. THis is why I install ffmpeg from repository and then linked Subsonic folder to this ffmpeg freshly installed:

sudo apt-get install ffmpeg
sudo rm /var/subsonic/transcode/ffmpeg
sudo ln -s /usr/bin/ffmpeg /var/subsonic/transcode/ffmpeg

Restart Subsonic:

sudo service subsonic restart

Configure Subsonic using web interface and admin account.

It worked! I could play my music from Astana, Kazakhstan while it was actually stocked in my Raspberry in Paris!

In my opinion it works quiet nice! Not laggy I mean.

Samba on Raspberry Pi 3

Written by pmd - - no comments

Install samba:

sudo apt-get install samba

Edit configuration file:

sudo nano /etc/samba/smb.conf
# The specific set of interfaces / networks to bind to
# This can be either the interface name or an IP address/netmask;
# interface names are normally preferred
interfaces = wlan0
bind interfaces only = yes
comment = Samba sharing on Raspberry Pi
path = /home/pi/Downloads
writable = yes
guest ok = yes
guest only = yes
create mode = 0777
directory mode = 0777
share modes = yes

Let everyone read and write on /home/pi/Downloads:

sudo chmod -R 777 /home/pi/Downloads

Restart samba:

$ sudo systemctl stop smbd
$ sudo systemctl start smbd

It should be visible in windows Networks.

ddclient on Raspberry Pi 3

Written by pmd - - no comments


sudo apt-get install ddclient

Configure for for two different service with two different website to check IP adress:

sudo nano /etc/ddclient.conf

# /etc/ddclient.conf
use=web,, web-skip='Current IP Address: '

## FreeDNS (


To run ddclient as a daemon, set run_daemon to 'true' in /etc/default/ddclient.

Once it is configured as daemon, restart it:

sudo /etc/init.d/ddclient restart

To debug :

sudo ddclient -daemon=0 -debug -verbose -noquiet (-force)

Route with raspian (debian)

Written by pmd - - no comments

I only want to have some process owned by specific users to use the VPN. This means two route table, or more.


Create a new table "42" for marked packet:

sudo ip rule add fwmark 42 table 42

List all route table:

ip rule list
0:      from all lookup local
32765:  from all fwmark 0x2a lookup 42
32766:  from all lookup main
32767:  from all lookup default

Delete table 42:

sudo ip rule del fwmark 42 table 42

Show "main" table route:

ip route show table main
default via dev wlan0 src metric 303 dev tun0 proto kernel scope link src dev wlan0 proto kernel scope link src metric 303

Add a default route in table 42:

sudo ip route add via dev tun0 table 42

Delete the default route in table 42:

sudo ip route del via dev tun0 table 42

You can delete all routes of a specific table:

sudo ip route flush table 42

Copy all route from table main to table 42:

ip route show table main | while read LINE; do sudo ip route add $LINE table 42; done

Transmission on Raspberry Pi 3

Written by pmd - - no comments

Install transmission:

sudo apt-get install transmission-daemon

Start and stop transmission daemon:

sudo /etc/init.d/transmission-daemon start
sudo /etc/init.d/transmission-daemon stop

Edit configuration of transmission (stop transmission first):

sudo nano /etc/transmission-daemon/settings.json
"incomplete-dir": "/home/pi/Downloads/torrents/.incomplete",
"incomplete-dir-enabled": true,
"rpc-password": "write_it_here",
"rpc-whitelist": ",192.168.1.*",
"umask": 2,

Check your transmission's IP:

To avoid permission issues:

sudo adduser pi debian-transmission
sudo adduser debian-transmission pi
sudo chmod -R 777 /home/pi/Downloads/torrents
sudo chmod -R 777 /home/pi/Downloads/torrents/.incomplete

Transmission How To

OpenVPN on Raspberry Pi 3

Written by pmd - - no comments

Know your IP address:


Install OpenVPN:

sudo apt-get install openvpn

Know your route before OpenVPN is connected:


Copy all necessary conf files in:


Interesting settings:

script-security 2
up /etc/openvpn/
down /etc/openvpn/

Start openvpn from command line to test if tun0 mounts:

sudo openvpn --config /etc/openvpn/server.conf

To connect to VPN at startup, put conf file in /etc/openvpn. Example: openvpn will connect at startup to VPN1 and VPN2:


To begin with Raspberry Pi 3

Written by pmd - - no comments

Start raspberry on SSD instead of microSD Card

Raspberry Pi 3B+ MicroSD / SSD Speed Benchmarks
Raspberry Pi Cheap SSD Upgrade Guide

Once started

  • Virtual Keyboard:
    • sudo apt-get install matchbox-keyboard
    • sudo apt-get install florence at-spi2-core [link]
  • Configure remote access for SSH and VNC: sudo raspi-config
  • Change pi password: sudo raspi-config
  • "Install" SFTP server: actually already done when activating SSH

Display basic stuff

$ while true; do uptime; vcgencmd get_throttled; vcgencmd measure_temp; vcgencmd measure_clock arm; free -h; echo '-----'; sleep 10; done
              total        used        free      shared  buff/cache   available
Mem:          731Mi       297Mi       118Mi        27Mi       316Mi       345Mi
Swap:         2.0Gi       346Mi       1.6Gi

Disable IPv6

$ sudo nano /boot/cmdline.txt

You have to add this at the end of the line :


Example, from this...

console=serial0,115200 console=tty1 root=PARTUUID=fe481079-02 rootfstype=ext4 rootwait quiet splash plymouth.ignore-serial-consoles

... to this :

console=serial0,115200 console=tty1 root=PARTUUID=fe481079-02 rootfstype=ext4 rootwait quiet splash plymouth.ignore-serial-consoles ipv6.disable=1

And then, reboot the pi and verify with ifconfig command.


How to set headless VNC resolution

Problem illustration I had with following Raspberry Pi OS:

$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)"
NAME="Raspbian GNU/Linux"
VERSION="11 (bullseye)"

In /boot/config.txt:

$ sudo nano /boot/config.txt

I had to edit following line (added in bold):

# Enable DRM VC4 V3D driver

Source 1 2

Rss feed of the category