SlimNAS8Pro: Downloading and Installing.

Basic step-by-step instructions for setting up SlimNAS8Pro on FreeNAS 8.0.1 RC1.

Here be dragons.

These instructions are very much subject to change as FreeNAS 8 develops. Right now, most of the information here is about fixing up your FreeNAS 8 firmware before you can start installing SlimNAS8Pro. This is why things you may need to do in the first step of the installation may be explained better in the last part of the instructions. Please read all of this document before you begin.

Here's the biggest problem: FreeNAS 8.0.1 RC1 has a broken perl. You'll need to fix it before you can install SlimNAS8Pro. I don't know the right way to do this, so I've included the instructions which worked for me. It's complicated, but you only have to do it once. Hopefully the FreeNAS folks will fix it for the official release of 8.0.1, and you won't have to do it at all. Read all about it here.

Preparing your FreeNAS for installation.

You'll need at least one ZFS pool already set up, with free space. SlimNAS8Pro installs into a separate dataset called "sbs" somewhere in your ZFS, which will be created as part of the installation procedure. If you have more than one pool, the installer will ask you to choose, so you can (e.g.) place Squeezebox Server into an SSD pool for faster database access, or into a pool set up on a USB stick if you just want to play with it.

There's plenty of information available on how to set up ZFS storage. Or you could always use the FreeNAS GUI.

Let's assume you've called your pool "thepool". It will be mounted as "/mnt/thepool".

Fixing perl.

You should be logged in to your FreeNAS 8 box as root, using ssh (or PuTTY for Windows), or you can type at the console (option 9, "Shell"). If you're running a version of FreeNAS 8 which is later than 8.0.1 RC1, you may not need to fix up the installed version of perl. To find out, type:

perl -v

If the output from this command mentions Larry Wall when you run it, you're OK: skip to the section about setting up the Squeezebox Server account. If it whines about a missing library called "libperl.so", it's broken and you need to fix it.

FreeNAS 8 out-of-the-box doesn't give you much temporary space, so you'll need to create some. You'll re-use this space later when installing SlimNAS8Pro, and then you can wipe it.

You're about to update the firmware in your FreeNAS. It needs to be connected to the internet.

Substitute your ZFS pool name for "thepool" in the following commands:

mkdir /mnt/thepool/tmp
cd /mnt/thepool/tmp
wget http://www.xenopsyche.com/ip/tmp/perl-5.12.4_1-amd64.tbz

You've just downloaded a complete new perl for your FreeNAS 8.

Now to install it. Again, substitute your ZFS pool name for "thepool" when giving the following commands:

setenv PKG_TMPDIR /mnt/thepool/tmp
mount -uw /
pkg_add -f perl-5.12.4_1-amd64.tbz
mount -ur /
rm perl-5.12.4_1-amd64.tbz

That's the most complicated thing you'll need to do when you're installing SlimNAS8Pro. You shouldn't really need to do it. There's probably a simpler way. It'll be fixed eventually.

And you just got a basic tutorial on how to install any FreeBSD package onto your FreeNAS 8.

Setting up the Squeezebox Server account.

Your Squeezebox Server needs its own account, which you must set up before you install it.

Really, this should be done for you from the installation script, but I wasn't able to find out how it's done on FreeNAS 8 without writing some SQL. The installation script first checks if the Squeezebox Server account is already set up, and creates it for you if it doesn't find it. When you reboot your NAS, the account information disappears. If you create the account using the GUI before you install SlimNAS8Pro, it stays created after a reboot, and the installation script doesn't bother to create it, because you already created it using the GUI. Got that?

Disappearing account information is another annoyance with FreeNAS 8.0.1 RC1, but it isn't likely to be fixed for the official release of 8.0.1, and we'll have to wait for FreeNAS 8.1.X.

Right, let's do this.

From the GUI, go to Account -> Groups -> Add Group. Enter the Group ID number 104, and the Group Name slimserv. Click OK. You should now see a new group slimserv listed.

Now navigate the GUI to Account -> Users -> Add User. Enter the User ID number 75, and the Username slimserv. Use the pulldown Primary Group menu to select the group you just created, slimserv, from the bottom of the list. Set the Shell to sh, the Full Name to Squeezebox Server, and the Password to *. Click OK. You should now also see a new user slimserv listed.

Actually, you can use any numbers you like for the Group ID (gid) and User ID (uid). The FreeNAS GUI will allocate default numbers starting at 1001 for each user and group you create, and you can use these numbers just fine. Once set up, it's the user and group name (slimserv) which matters, not the numbers.

You've just finished your pre-installation work, and you're ready to install SlimNAS8Pro itself.

At last! Installing the real SlimNAS8Pro.

Everything else on this page should really be unnecessary, and maybe one day I'll be able to remove it all except for this section. If you needed to fix perl earlier, you've already done some of this work, so it should be pretty simple.

Reminder: you're about to update the firmware in your FreeNAS. It needs to be connected to the internet, and you need to be logged in as root, either from the console or remotely using ssh (PuTTY on Windows).

Where you see shell commands below (usually rendered in small mono font) you must substitute the name of your ZFS pool instead of the name "thepool". For example, if the ZFS pool where you plan to install Squeezebox Server is called "myssd", then when you see:

ls /mnt/thepool/sbs

what you need to type is:

ls /mnt/myssd/sbs

Not all of the commands you'll type will need this substitution.

You'll need to create some temporary space to download and unpack the SlimNAS8Pro distribution. Remembering to substitute the name of your target ZFS pool for "thepool", enter:

mkdir /mnt/thepool/tmp

If you already created this directory when you reinstalled perl earlier, you'll get a "File exists" error. Don't worry about it.

Now download the SlimNAS8Pro distribution into your temporary space. Enter:

cd /mnt/thepool/tmp
wget http://www.xenopsyche.com/ip/squeezeboxserver/SlimNAS8Pro-CURRENT.tgz

The compressed SlimNAS8Pro distribution is only 20MB, so download should be fairly quick.

Now you need to unpack the distribution. Enter:

tar zxf SlimNAS8Pro-CURRENT.tgz

This will uncompress the distribution into a directory called "SlimNAS8Pro". Set your current directory to that:

cd SlimNAS8Pro

You'll find a handful of files in there including README and INSTALL which say more-or-less the same thing as this page does, but written in Geek rather than English.

The file you really want is called "install.sh". Take a deep breath and enter:

./install.sh

You'll be asked several questions; hopefully the answers will be clear after you've read this document.

If you have more than one ZFS pool, the installer will ask you which one you want to install Squeezebox Server into. If the installer can't access the pool you specify because your thick, inflexible fingers hit the wrong key, it will abort and you'll need to re-run it. If you only have one pool, the installer will merely ask you if it's OK to use it.

Once the pool name is ascertained, the installer looks for a dataset within that pool called "sbs". If it finds one, it prepares for a re-installation or upgrade by offering you the option to take a ZFS snapshot, so that you can easily revert to an older version of Squeezebox Server if things go horribly wrong for you. The installer then confirms that it's OK to overwrite your current version.

The Squeezebox Server software is then installed to the ZFS dataset "thepool/sbs" (or, rather, "whatever-you-called-your-pool/sbs"). Care is taken to preserve the log files, database and preferences during an upgrade or re-installation: if you want to get clever, you can replace the Logs, Cache and prefs directories with symbolic links or even with more ZFS datasets, giving you the ability to tailor your storage requirements. For example, you could keep everything except the Cache in slow storage, but run the Cache on an SSD by creating a dataset for it.

We're nearly done. The installer will ask you if you want Squeezebox Server started up automatically when you reboot your FreeNAS (usually, you do). It also asks if you want Squeezebox Server started up immediately (that's really up to you).

You can wipe your temporary space now:

cd
rm -r /mnt/thepool/tmp

And that's it. Once you've started Squeezebox Server (either immediately following installation or after a reboot) you access it from a web browser on port 9000, to configure your settings, library pathname and other preferences.

Here's those commands again, all together:

mkdir /mnt/thepool/tmp
cd /mnt/thepool/tmp
wget http://www.xenopsyche.com/ip/squeezeboxserver/SlimNAS8Pro-CURRENT.tgz
tar zxf SlimNAS8Pro-CURRENT.tgz
cd SlimNAS8Pro
./install.sh
cd
rm -r /mnt/thepool/tmp

Have fun!

Back to the main page.

Authors: Ian Pallfreeman & Mortimer Hebblethwaite: ip@xenopsyche.com