Moderator Note: (Please read to end of thread before trying to follow this tutorial) I fooled around a bit to see if I could get Serviio to work on Freenas 8.0.1Beta4. As I noticed a lot of people asking for it, but no one that had actually managed to install it I expected it to be rather difficult, but thankfully it wasn't. I followed the steps as given in this thread on the serviio forums http://forum.serviio.org/viewtopic.php?f=14&t=2060 But when I wanted to install the Diablo JRE I noticed there wasn't a FreeBSD 8.x version of it. I then read that the 7.x version could be used if the misc/compat7x port was installed. I haven't tried to install the JRE without this port, so I'm not quite sure if it's needed. But anyway, this is how you install it: (Make sure you are root and you have mounted your file system as read/write) Code (text): su mount -urw / First you'll have to get the ports by using Code (text): portsnap fetch -d <fetch dir> The ports have to be downloaded to you data disks as /var on the usb installation does not have enough space for it, so make sure <fetch dir> is on your data disks. Then you have to extract the ports using: Code (text): portsnap extract -d <fetch dir> -p <ports dir> The ports dir should be on your data disks as wel. now go to <ports dir>/misc/compat7x and run Code (text): make install clean For me, that gave a file not found error that I solved by editing /usr/share/mk/bsd.port.mk Change the PORTSDIR? line to Code (text): PORTSDIR?=<ports dir> then run the make command again. Now you'll need to add a lot of dependencies of serviio, enter the following commands: Code (text): pkg_add -v -r xtrans pkg_add -v -r xproto pkg_add -v -r xextproto pkg_add -v -r javavmwrapper pkg_add -v -r ffmpeg When that's done there's only one more dependency to get: the Java JRE go to this page and download the FreeBSD 7.x JRE for your architecture. In my case the file was called "diablo-jre-freebsd7.amd22.214.171.124.07.02.tbz" You'll need to store that somewhere on your data disks as well. Then go to the place where you stored the file and enter Code (text): pkg_add -v diablo-jre-freebsd7.amd126.96.36.199.07.02 Make sure to change the filename if you got another architecture. This takes a while and will probably generate some warnings about some of your packages being to new, but you can safely ignore those. Ok, now that we've gotten all prerequisites of serviio installed we can now install serviio itself. Go to the serviio site and download the linux tar.gz file. Place this somewhere on your NAS, I put it in a data directory again. Go to the directory containing the file and unzip it: Code (text): tar xvfz serviio-0.5.2-linux.tar.gz Now we have to replace the startup script with an edited version of it. Go to the bin folder and backup your old config file: Code (text): mv serviio.sh serviio.sh.old Then create a new serviio.sh file, using vi or nano or whatever editor you like and paste the following into it: Code (text): #!/bin/sh ### ====================================================================== ### ## ## ## Serviio start Script ## ## ## ### ====================================================================== ### DIRNAME=`dirname $0` PROGNAME=`basename $0` # OS specific support (must be 'true' or 'false'). cygwin=false; darwin=false; linux=false; case "`uname`" in CYGWIN*) cygwin=true ;; Darwin*) darwin=true ;; Linux) linux=true ;; esac # For Cygwin, ensure paths are in UNIX format before anything is touched if $cygwin ; then [ -n "$SERVIIO_HOME" ] && SERVIIO_HOME=`cygpath --unix "$SERVIIO_HOME"` [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` fi # Setup SERVIIO_HOME if [ "x$SERVIIO_HOME" = "x" ]; then # get the full path (without any relative bits) SERVIIO_HOME=`cd $DIRNAME/..; pwd` fi export SERVIIO_HOME # Setup the JVM if [ "x$JAVA" = "x" ]; then if [ "x$JAVA_HOME" != "x" ]; then JAVA="$JAVA_HOME/bin/java" else JAVA="java" fi fi # Setup the classpath SERVIIO_CLASS_PATH="$SERVIIO_HOME/lib/serviio.jar:$SERVIIO_HOME/lib/derby.jar:$SERVIIO_HOME/lib/jcs.jar:$SERVIIO_HOME/lib/concurrent.jar:$SERVIIO_HOME/lib/freemarker.jar:$SERVIIO_HOME/lib/httpcore.jar:$SERVIIO_HOME/lib/jaudiotagger.jar:$SERVIIO_HOME/lib/jul-to-slf4j.jar:$SERVIIO_HOME/lib/jcl-over-slf4j.jar:$SERVIIO_HOME/lib/log4j.jar:$SERVIIO_HOME/lib/sanselan.jar:$SERVIIO_HOME/lib/slf4j-api.jar:$SERVIIO_HOME/lib/slf4j-log4j12.jar:$SERVIIO_HOME/lib/org.restlet.jar:$SERVIIO_HOME/lib/org.restlet.ext.xstream.jar:$SERVIIO_HOME/lib/xstream.jar:$SERVIIO_HOME/config" # Setup Serviio specific properties JAVA_OPTS="-Djava.net.preferIPv4Stack=true -Dderby.system.home=$SERVIIO_HOME/library -Dserviio.home=$SERVIIO_HOME -Dserviio.remoteHost=192.168.0.188" # For Cygwin, switch paths to Windows format before running java if $cygwin; then SERVIIO_HOME=`cygpath --path --windows "$SERVIIO_HOME"` JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` SERVIIO_CLASS_PATH=`cygpath --path --windows "$SERVIIO_CLASS_PATH"` fi # Execute the JVM in the foreground "$JAVA" -Xmx384M $JAVA_OPTS -classpath "$SERVIIO_CLASS_PATH" org.serviio.MediaServer "$@" Make sure to change the ip-address 192.168.0.188 to the ip-address of your NAS. That's it, you can now run Code (text): ./serviio.sh & And serviio will run. Use the console from another pc to connect and set it up, you can find instructions to do so here.