New media server
I have used mt-daapd
, together with my SoundBridge devices, for several years now. It works well except that is disconnects after about one hour. Also it is discontinued. Therefore I'll try some new options in OpenBSD to see if I can find a replacement.
Coherence UPnP server
Before succeding with coherence setup I tried PlayBack on MacOS X to test UPnP capability of the SoundBridge.
Because coherence is based on UPnP networking which in turn uses multicast IP networking it is neccesary to setup a static route to a virtual multicast network.
route -nv add -interface 224/4 192.168.0.1
Rather you need to activate MULTICAST_HOST in rc.conf ...
This means setup a static route to 224/4
network, i.e. addresses 224.0.0.1-239.255.255.255
which is a reserved IP class for specifically for multicasting. 224/4
is stated to be directly reachable (without any gateway hopping) via -interface
modifier. Stating 192.168.0.1
is just a way to say that the network is reachable via re0. Check routing with netstat
.
# netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Mtu Prio Iface
default 192.168.0.1 UGS 3 4637 - 8 re0
127/8 127.0.0.1 UGRS 0 0 33200 8 lo0
127.0.0.1 127.0.0.1 UH 1 75 33200 4 lo0
192.168.0/24 link#1 UC 2 0 - 4 re0
192.168.0.1 00:40:63:ed:a0:dc UHLc 1 0 - 4 re0
192.168.0.102 00:16:cb:ab:fd:fb UHLc 1 2158 - 4 re0
224/4 link#1 UCS 0 0 - 8 re0
Test multicast by ping
and tcpdump
.
tcpdump -ni en0 host 228.0.0.4 # on the server
ping -t 1 -c 2 228.0.0.4 # on any client
ping -c 2 224.0.0.1 # actually works
Coherence complains about inotify support. I suspect that this has something to do with fam or gamin in OpenBSD 4.7. See background in Inotify, FAM and Gamin.
Audio format transcoding. TBD. AAC/m4p doesn't seem to be supported.
PF configuration. TBD.
Does multicast routing have to be enabled. No routing within one single subnet??
net.inet.ip.mforwarding=1 # 1=Permit forwarding (routing) of IPv4 multicast packets
Enabling transcoding
From OpenBSD 4.8 coherence is part of ports. So installation is a simple. Transcoding is supported by py-gstreamer
. I also install dbus support to remove one warning at start up. I create a config file under /etc/coherence.conf
.
pkg_add coherence
pkg_add py-gstreamer
pkg_add dbus-python
coherence -c /etc/coherence.conf
SqueezeCenter
Squeezecenter is not allowed to be included as FTP or CD-ROM so it must be installed from ports. Assuming that you have ports source installed.
cd /usr/ports/audio/squeezecenter
make print-run-depends
pkg_add <all dependent packages> # This will save a lot of time
make package # optional, just to check
make install
Start slimserver and configure via web interface, http://localhost:9000
.
slimserver.pl
It shows up on SoundBridge but when I try to connect nothing happens.
MediaTomb
MediaTomb is ported to OpenBSD and will be part of OpenBSD 4.9.
miniDLNA
MiniDLNA MiniDLNA is the DLNA server used in Netgear NAS servers. It is available in OpenBSD is and is very easy to use.
References
- UPnP-IGD on FreeBSD with PF
- Multicast over TCP/IP HOWTO
- Enabling Multicast on your MacOS and xUnix
- Running MiniDLNA on Mac