NSLU2

I have two Linksys NSLU2 Network Storage Link USB2 devices, one of which I’ve modified so far to use the internal serial port and de-underclocked to run at 266MHz.

I’m using the OpenSlug firmware, which is a clean install of a bare-bones linux system on the slug. No part of the original Linksys code remains except for the bootloader.

Peripherals

External disks

I’ve tried a 512Mb xD card in a FujiFilm xD-to-USB adapter, which works well.

For development, I’m running the operating system on an external 10Gb USB2 laptop hard disk. The slug can’t power the disk itself, so I have a splitter cable from the 5V power source going to both devices.

USB-Audio

Yoga AD-100 USB Audio adapter

Native build environment

Setup

aclocal

Adding all the perl modules for aclocal was a very long process of running make, having it fail due to a missing Perl module, installing the module, and re-running make.

For the curious, the packages are:

perl-module-warnings perl-module-carp perl-module-exporter perl-module-data-dumper perl-module-armeb-linux-xsloader perl-module-bytes perl-module-overload perl-module-warnings-register perl-module-strict perl-module-vars perl-module-file-basename perl-module-constant perl-module-exporter-heavy perl-module-file-stat perl-module-class-struct perl-module-armeb-linux-io-file perl-module-symbol perl-module-selectsaver perl-module-armeb-linux-io-seekable perl-module-armeb-linux-io-handle perl-module-fcntl perl-module-file-spec perl-module-file-spec-unix perl-module-file-compare perl-module-file-copy perl-module-armeb-linux-config perl-module-posix perl-module-autoloader perl-module-file-glob perl-module-getopt-long perl-module-armeb-linux-errno perl-module-dynaloader perl-module-text-parsewords perl-module-re

MP3 jukebox

The first thing I wanted to try was to use the slug as an MP3 playback device. There’s not yet any MP3 players in the standard OE feed, so I downloaded a couple.

The first one I tried was XiMP3. It had the advantage that it was small, simple and had no dependancies. It compiled and ran, but since it uses floating-point math it pegged the CPU at 100% and still couldn’t decode in real time. For every six seconds of sound there is four seconds of silence as the output buffers are being filled.

The second was MAD. It is a little more complex, consisting of libmad for MPEG decoding, libid3tag, and a player application, madplay. The advantage it has over all the other decoders I saw is that it uses integer math, and does it with hand-coded ARM assembler.

Again, the build was fairly painless, though sed took a long time to manipulate some files, and aclocal(a perl script) needs lots of perl modules installed.

Though madplay works well, I wanted a player demon. libmad makes writing one easy, so fortunately someone has already done it. mpd is a music player demon with playlist support, and is controlled through a network socket.

 
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki