====== NSLU2 ====== I have two [[http://www.google.com/search?q=Linksys+NSLU2|Linksys NSLU2]] //Network Storage Link USB2// devices, one of which I've modified so far to use the [[http://www.nslu2-linux.org/wiki/HowTo/AddASerialPort|internal serial port]] and [[http://www.nslu2-linux.org/wiki/HowTo/OverClockTheSlug|de-underclocked]] to run at 266MHz. I'm using the [[http://www.nslu2-linux.org/wiki/OpenSlug/HomePage|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 [[http://www.xd-picture.com/|xD]] card in a [[http://www.google.com/search?q=%22DPC-UD-1%22|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 ==== [[http://www.nslu2-linux.org/wiki/HowTo/OpenSlugNativeCompileEnvironment]] ==== 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 [[http://www.geocities.com/matsp888/unix/index.html|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.