Tuesday, July 12, 2011

Linux OS choices for the Shuttle xs35GT v2 fanless htpc

PART 2: The Software
  • Part 1: the hardware
  • Part 2: the software choices
By far, the hardest part of building a system around the Shuttle X35GT V2 "barebones" case was deciding what version of linux to install because I couldn't decide how many purposes I wanted this little server to serve. If I use it solely as a living room media computer, I'd go with a very stripped down, small footprint linux distribution that would be used to run xbmc and nothing else. However, I've been thinking to setup both a VPN server, through which I'd route all my phone traffic, and a PBX server for a homebrew VoIP solution, which would require a standard server install.

I ended up trying out three different distros, two of which Nicholas and I fully configured for use with xbmc.
In following posts, I'll provide step by step instructions of how we installed and configured each of these.  For now, I'll just discuss what I liked and didn't like on each one.


Like many linux distros these day, XBMC has a live CD that can be used to boot your computer and try it out. It can also be used as an installer. I tried this first, and completely configured it and had everything that I needed working. The live CD installed with no problems and I didn't need to download and install anything else to get the the network up and running. This is sure to change, but right now the live CD is based on Ubuntu 10.04 LTS. This is good because this version will be getting updates until 4/2015 (server version). This is bad because it contains an older kernel that doesn't support TRIM commands, which are needed to solid state drives (SSDs) running fast over time.

While I had absolutely no trouble updating the kernel to 2.6.35, which does support TRIM commands, configuring HDMI sound, and lowering swappiness, I wasn't happy with boot times. It took just over 40 seconds from pushing the power button until XBMC was ready for use. This included some time spent sitting on the bios screen before the OS boots. (Unfortunately, the bios has no option to decrease this.) I was hoping for something faster. So, I used clonezilla to copy the system and then and tried something else.

Ubuntu 10.10

So I next tried Ubuntu 10.10. (Ubuntu 11 isn't compatible with the current version of xbmc.) 10.10 is supposed to have a faster boot time than 10.04. I had all sorts of problems getting the wired ethernet to work. I first tried installing from the minimal installation CD, which downloads extra components from the internet, but because the network couldn't be configured during installation, I had to use the full installer. Even after using the full installer, I still couldn't get the network up. Interestingly, Nicholas has 10.10 installed on his xs35gt (first revision) and had no problems at all. I can't imagine that the 10.10 full installer lacks the proper driver.

At this point I pretty much realized that running a 24/7 server with PBX and VPN services was something that I realistically wasn't going to do. Rather than spend more time with it, I aborted any further work with 10.10.


Finally, I tried out something completely different, OpenELEC, Open Embedded Linux Entertainment Center. This is a stripped down Debian based distro that is designed to do nothing more than run xbmc. There are different builds for different chipsets, each with only the commonly used drivers. I installed the 64bit ION version.

OpenELEC is a bit of a pain to work with because it is absolutely gutted. Installing it was even a pain because it can only be installed from a USB stick, and the USB stick can only be made from a Windows machine or a linux machine. I live booted my MBP with a random linux CD to make the USB stick, but for unknown reasons this completely failed. (I ended up getting a a premade stick from Nicholas.)

Making matters worse is that documentation is virtually nonexistent (which is to be expected). So you either have to figure out things by trial and error or search through the forum. OpenELEC doesn't even include a terminal, so the only way to get a command line is with ssh, though once in, you'll find few commands actually work because they've been removed.

But OpenELEC provides what it advertises: fast boot time, about 20 seconds from pushing the power button on the case to xbmc being fully responsive. My TV nearly takes as long to turn on and display terrestrial broadcasts. Shutting down is mind boggling fast (less than one second) and is done by pressing the power button. (It is so fast I had to convince myself that it was actually shutting down properly, as opposed to just killing the power.)

The system is primarily configured from within xbmc though an add-on. Network settings, etc. are configured here. In fact, I haven't figured out any other way to configure the network. I can't even find where the network settings are actually stored because /etc/network/interfaces doesn't exist.

After using OpenELEC for a few weeks now and getting used to its quirks, I like it. For now, I'm going to leave it installed and see how thing go.

In Part 3, I'll present the exact steps that Nicholas and I did to set up a system using the xbmc 10.04 install disk. Part 4 will be for OpenELEC.

1 comment:

  1. Hi !
    Personally I am using XBMC live (with installation) at home with my Atom330+ION1 combo for more than a year, and I am perfectly happy with it !
    But sure that if you also want to run it 24/7 with some server services it may not be the best distribution. But I also got another small computer with AtomD525 but no ION graphic chipset for web/vpn/music streaming/ftp/backup and other services, as I am not sure that it is really a good idea to have lot of services running while you are watching 1080p movies...
    If I were you I would also give a shot to Boxee, which look pretty fun ! I did not tried it because my XBMC is perfect for playing everything at correct refresh rates, even for 24p, and I am not sure that I want to loose time into tuning a new system for something that I already got...
    Happy testing ! :)