Sunday Oct 09, 2011

Slimp3 server with Voyage

With two SLIMP3 players in the bottom drawer (if I remember correctly, each around sixty bucks on eBay), it got time to make some better use of them. Now I've always had a SlimpServer / SqueezeBox running on the same box that's doing my MythTV, but I needed a setup independant from that. A small server, running Linux and Slimp, making no noise and preferably being cheap. That was the goal.


I started my research for Single Board Computers (SBC) again, checking out the latest status on Fit-PC and SheevaPlug. But then I found this little gem: the "alix3d3" from PC Engines. A Swiss company that makes SBC's in a form factor smaller than micro ITX. The board I got is 10x16 cm, powered by an AMD Geode processor and includes VGA, network port, 2x USB, RS232. And if you add a mini-PCI you can even do wireless.


For my Slimp3 server, I added a 512 MB CompactFlash to boot from and a 16 GB USB stick for the music library. I could order all of that for less than 200 bucks including a pretty cool aluminum enclosure. The total size is smaller than an external 3.5" harddisk. Now the thing I'm still most amaized about is that little Kingston thumbnail on the right that is storing 300 CDs. I need quite a couple of bookshelves to store the physical CDs these MP3's came from.


Now the fun part was of course the software install. Did a bit of research and with this reduced hardware, a full blown Fedora or Ubuntu is not the way to go ..... but who needs X-Windows on a media server. The answer is a distro called Voyage. Based on Debian, but targetted at this type of SBC controllers. By itself it fits in roughly 100 MB, but when you include the squeezebox software and then the various dependant packages, it just fits in the 1/2 GB I had at hand.

Here follows my little HOWTO on installing it. The first step is to install Voyage on your CompactFlash, while it is still hooked up to your dekstop:

# fdisk -l /dev/sda
Disk /dev/sda: 512 MB, 512483328 bytes
16 heads, 63 sectors/track, 993 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Device      Boot   Start   End   Blocks    Id   System
/dev/sda1   *      1       993   500440+   83   Linux
# mkfs.ext2 /dev/sda1
# tune2fs -c 0 /dev/sda1

# bunzip2 -k ./Voyage-0.7.5.tar.bz2
# tar xvf ./Voyage-0.7.5.tar
# cd ./Voyage-0.7.5
# more ./README
# more ./README.live-cd
# ./usr/local/sbin/voyage.update
What would you like to do? [Create new Voyage Linux disk] 
What would you like to do? [Select Target Profile]
Please select Voyage profile: [ALIX]
What would you like to do? [Select Target Disk] 
Which device accesses the target disk [/dev/sda]? 
Which partition should I use on /dev/sda for the Voyage system [1]?  
Where can I mount the target disk [/mnt/cf]? 
What would you like to do? [Select Target Bootstrap Loader]
Which loader do you want (grub or lilo) [grub]? 
Which partition is used for bootstrap [1]? 
What would you like to do? [Configure Target Console]
Select terminal type: [Console]
What would you like to do? [Partition and Create Filesystem]
What shall I do with your Flash Media? [Use Flash Media as-is]
What would you like to do? [Copy Distribution to Target]
OK to continue (y/n)? y
What would you like to do? [Exit]

Next step is to move the CF card to your ALIX computer and boot that one. Then you've to install the SlimpServer / SqueezeBox packages. One of the problems is that the name of these packages has changed a couple of times, while Logitech took over Slimp. Based on this WiKi page, here is what finally worded for me:

# cat /etc/apt/sources.list
deb http://debian.slimdevices.com stable main
deb http://ftp.hk.debian.org/debian/ squeeze main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free
# apt-get remove --purge slimserver
# apt-get remove --purge squeezecenter
# apt-get remove --purge squeezeboxserver
# apt-get update
# apt-get install squeezeboxserver 

With that, your Slimp3 should work, but only when it is in "remountrw" mode. That's because SqueezeBox writes a cache to /var/lib, which is on Voyage a 'read-only' protected filesystem. To run your whole system, including the squeezebox software, in "remountro" mode, the trick is to modify your /etc/init.d/squeezeboxserver so that it copies the contents of /var/lib/squeezeboxserver to a new directory you create as /tmp/lib/squeezeboxserver. Next you've to change couple of environment variables in the squeezeboxserver setup to point to that directory instead of using /var/lib.

Enjoy the music!! The audio quality will be noticably better than what your typical computer can produce.

Sunday Jul 24, 2011

UCSand - You See Sand

UCSand is an Android application I recently developed to monitor a Cisco UCS blade system. The UCS Manager running on the Fabric Interconnects is based on an API using XML over HTTP. It is relatively easy to write shell or Perl scripts to collect data from the UCS system. Or to control it, like booting blades or turning the blue locator LED on or off.

A while back someone else developed a client GUI for the iPhone/iPad. With the Cius being released, a similar app for the Android platform is needed. Being a proud owner of an original "Google Developer Phone", it was time to get to work. Android code has to be developed in Java, so "talking XML over HTTP" isn't that difficult. It all comes down to old style socket programming.

UCSand 1    UCSand 2    UCSand 3

I opted for keeping the app relatively simple. It's mainly a monitoring tool that allows you to check on the status of your system when you're remote. It shows the configuration of your blades and you can go through the alarms and warnings for the various components in your system. On purpose I didn't include more complex actions like (dis)associating a service profile. Those things are better done from the fully featured UCS Manager.

Get the UCSand app by searching the Android Market / Google Play for "Cisco UCS". Update July 2012: The version you will find there is a little different from the one described here, because I migrated the app to a cross-platform development environment based on jQueryMobile. The original app was renamed to "UCSone" and can be downloaded by right-clicking here. The new UCSand is more suitable for tablets, while UCSone is great for older phones. However, I won't do any updates anymore on UCSone.

UCSand / UCSone will show more or less information about the blades depending on the size of the screen. On a phone, you've to click on a blade to see details, on a tablet you see some details and the status of the blade next to the image.

UCSand on a Tablet

Finally, if you want to see the app in full action, check out the Mobility in the Datacenter blog of one of our customers at the City of Melrose.

Thursday Dec 28, 2006


A while back I attended Immersion Week in St Charles near Chicago, which is a Sun internal conference / training session "for the techies" to learn about the latest products and technologies. After a morning session on Thumper (now officially Sun Fire X4500) and Honeycomb (StorageTek 5800), I decided to skip lunch and get some fresh air instead.

I walked into town, which is pretty small, and after a brisk walk, my eye suddenly fell on this truck. Not so much because of the shape or color, but of course because of the phone number. What kind of coincidence was this? The truck seemed to belong to some kind of utility repair company. And I guess the ladder will come in handy if you need to replace a disk in a "top of the rack" Thumper system. :-)


Thumper, a server/storage combination with 24TB of disk and dual AMD Opteron processors, got its code-name from John Fowler. Which was last July C|Net's "Quote of the Day" with the phrase "and from now on I'm not allowed to name anything". The summary and details of that story are still online. If it is completely true, I don't know. But it's as funny as this 1-888-THUMPER telephone number.