uShare ist ein Audio/Video UPnP Server. Der Dienst stellt Mediensdaten UPnP bzw. DLNA Endgeräte zur Verfügung.
Der Server ist recht einfach zu konfigurieren. Ich habe das Programm aus den Quellen übersetzt da Debian(Raspbian) hier eine ältere Version bereitstellt.
Um die DLNA Unterstützung aktivieren zu können wird die libdlna in der Version >0.2.3 benötigt. Die Bibliothek libupnp und das dev-Package libupnp-dev wird in der Version >1.4.2 benötigt. Ich habe das Paket „libupnp6“ und „libupnp6-dev“ genutzt.
Vorbereitung:
aptitude install libavformat-dev libavformat-extra-53 libupnp6 libupnp6-dev
Anschliessend wird die „libdlna“ gebaut und installiert.
Download:
cd ~ wget http://libdlna.geexbox.org/releases/libdlna-0.2.4.tar.bz2 tar xfj libdlna-0.2.4.tar.bz2
Der berühmte 2-Zeiler:
./configure make && make install
Jetzt wird der eigentlich DLNA/UPnP-Server ushare gebaut:
Download:
cd ~ wget http://ushare.geexbox.org/releases/ushare-1.1a.tar.bz2
Konfiguration und Bau:
tar xfj ushare-1.1a.tar.bz2 cd ushare-1.1a CFLAGS="-Os"; ./configure --enable-dlna --prefix=/usr make
endet mit der Meldung:
ushare.c: In function ‘handle_action_request’:
ushare.c:191:29: error: ‘struct sockaddr_storage’ has no member named ‘s_addr’
make[1]: *** [ushare.o] Error 1
make[1]: Leaving directory `/source/ushare-1.1a/src’
make: *** [all] Error 2
Ändert die Zeile 191 in ushare.c:
ip = ((struct in_addr*)&request->CtrlPtIPAddr)->s_addr;
führe wieder ein „make && make install“ aus und diesmal wird es fehlerfrei übersetzt.
init-Skript:
#!/bin/sh # chkconfig: 345 99 10 # description: Startup/shutdown script for ushare-DLNA daemon # ### BEGIN INIT INFO # Provides: ushare # Required-Start: $network $local_fs $remote_fs # Required-Stop:: $network $local_fs $remote_fs # Should-Start: $all # Should-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: DLNA-Server ### END INIT INFO USHARE=/usr/local/bin/ushare ARGS="-D -f /etc/ushare/ushare.conf" . /lib/lsb/init-functions case "$1" in start) log_daemon_msg "Starting ushare" "ushare" start-stop-daemon --start --quiet --pidfile /var/run/ushare.pid --startas $USHARE -- $ARGS $LSBNAMES log_end_msg $? ;; stop) log_daemon_msg "Stopping ushare" "ushare" start-stop-daemon --stop --quiet --pidfile /var/run/ushare.pid log_end_msg $? ;; restart|reload|force-reload) log_daemon_msg "Restarting ushare" "ushare" start-stop-daemon --stop --retry 5 --quiet --pidfile /var/run/ushare.pid start-stop-daemon --start --quiet --pidfile /var/run/ushare.pid --startas $USHARE -- $ARGS $LSBNAMES log_end_msg $? ;; status) status_of_proc -p /var/run/ushare.pid $USHARE ushare && exit 0 || exit $? ;; *) log_action_msg "Usage: /etc/init.d/ushare {start|stop|restart|reload|force-reload|status}" exit 2 ;; esac exit 0
Konfiguration(/etc/ushare/ushare.conf):
#Name des Servers USHARE_NAME=NAS # Netzwerkschnittstelle, die benutzt werden soll USHARE_IFACE=eth0 # Der Port, auf dem der Server laufen soll USHARE_PORT=49200 # Verzeichnisse, die der Server mit anderen Geräten teilen soll USHARE_DIR=# Webinterface aktivieren (ja/nein)? USHARE_ENABLE_WEB=yes # Xbox360-Support. #USHARE_ENABLE_XBOX=yes # Playstation3-Support. USHARE_ENABLE_DLNA=yes