Michael Still Google Inc. October, 2006 Linux on the Linksys NSLU2 Solving all your problems with little NAS boxes Michael Still Google, Inc. October, 2006 2 Who is this guy and what does he do at Google? 3 Linksys NSLU2 NAS boxes Consumer grade network attached storage • 2 USB 2.0 ports • 100 Mbit Wired Ethernet • 133 Mhz processor • 32 MB of RAM • Cheap ($60 USD+) • Linux 4 Agenda I want to cover: • How to run your own Linux • How to rescue yourself from a bad flash attempt • Some ideas for projects involving NSLU2s 5 How to run your own Linux The process • Download new firmware and upslug2 (the uploader) – http://www.slug-firmware.net/s-dls.php – http://sourceforge.net/project/showfiles.php?group_id=116564&pack age_id=164337 • Build upslug2 • Use the upgrade button pressing process – http://www.nslu2-linux.org/wiki/SlugOS/UsingTheBinary – You'll need a third arm here • Run upslug2 with the new image, and watch it download – sudo ./upslug2 -i path to firmware image from before 6 Demo 7 What did that give us? DebianSlug • A Debian install based on OpenSlug – ipkg for package management – Very small – More limited package options • Use turnup to bless a new root file system – That can be a USB thumb drive or a USB hard disk 8 Debian Unstable The next step is Debian Unstable • Use the bootstrap process defined at: – http://www.nslu2-linux.org/wiki/DebianSlug/Bootstrap – Very slow • Use turnup to bless the new root file system 9 Demo 10 Kernel modules There don't appear to be any Debian ARM kernel modules • You need to use the pre-compiled ones from: – http://www.student-zw.fh-kl.de/~pasc0010/debianslug/kernelmodules/kernel-2.6.16_preempt/ – Extract the package, grab the kernel module, and install it wget URL to download ar -x download.ipk tar xvzf data.tar.gz cd lib/modules/2.6.16/kernel/... • Copy that to the slug, and don't forget to run depmod -a 11 Recovering from a bad flash My first attempt at flashing resulted in a brick • It's really easy to recover though • Download the Linksys firmware, and put it on a web server sudo arping -f 192.168.0.1; telnet 192.168.0.1 9000 • Now power cycle the slug • You have two seconds to hit control-c to stop a normal boot • You end up in RedBoot – A network aware boot loader 12 Recovering from a bad flash continued My first attempt at flashing resulted in a brick • Now download the firmware from the web server ip_address -h 192.168.1.100 load -r -v -b 0x01000000 -h 192.168.0.100 -m http /NSLU2_V23R25.bin fis write -f 0x50060000 -b 0x01060000 -l 0x7a0000 reset • The slug will power cycle • You're back at the Linksys firmware, and ready to try again 13 Demo 14 Over clocking The slug's CPU is intended to run at 266MHz • Remove a single resistor to over clock the device 15 Completely un-scientific testing I am mainly interested in slugs as ATA over Ethernet NAS devices • Compare performance of various firmware options • Methodology – Use postmark set size 1000 9000 set number 2000 set transactions 50000 set location /mnt set report verbose run 16 Postmark results postmark will give you back results like this: Time: 149 seconds total 148 seconds of transactions (337 per second) Files: 27170 created (182 per second) Creation alone: 2000 files (2000 per second) Mixed with transactions: 25170 files (170 per second) 24986 read (168 per second) 24697 appended (166 per second) 27170 deleted (182 per second) Deletion alone: 2340 files (2340 per second) Mixed with transactions: 24830 files (167 per second) Data: 149.53 megabytes read (1.00 megabytes per second) 161.85 megabytes written (1.09 megabytes per second) 17 Permutations tested USB2 connection to desktop PC SMB using the Linksys firmware SMB using DebianSlug SMB using Debian Unstable ATA over Ethernet using Debian Unstable USB2 using Debian Unstable USB2 using Debian Unstable on an over clocked device SMB using Debian Unstable on an over clocked device ATA over Ethernet using Debian Unstable on an over clocked device 18 Results: Total time for bench mark run (seconds) 19 Results: Operations per second 20 Results: Operations per second 21 Results: Throughput (megabytes per second) 22 Using a NSLU2 for storage It would seem that the fastest option is ATA over Ethernet on an over clocked NSLU2 • Even running Samba on your own version of the firmware is going to give significant performance improvements 23 Other project ideas There are lots of things you can do with low powered Linux machines with USB • Car computing (with a USB wireless card) • GPS data logging (USB GPS) • Small sound player (with USB sound card and USB remote control) • Many other things you can think of... 24 Questions? Any questions? 25 One final note Google is hiring, both domestically within Australia, and Internationally. Talk to me or one of the other Googlers we have at the conference if you want to know more. 26 Oh yeah, another final note I don't really want to take all these NSLUs back to the US, so I should negotiate with the conference organizers the best way to give two of them away... 27 Michael Still Google, Inc. michaelstill@google.com