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? 3 What does he do at Google? 4 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 5 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 6 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 7 How to run your own Linux Demo of running UpSlug 8 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 9 What did that give us? Demo of DebianSlug 10 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 11 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 12 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 13 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 14 Recovering from a bad flash continued Demo of RedBoot 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 Direct attached USB2 SMB using the Linksys firmware SMB using DebianSlug SMB using Debian Unstable ATA over Ethernet using Debian Unstable 18 Results 2400 2200 2000 1800 1600 1400 Direct Attached USB2 1200 SMB Linksys SMB DebianSlug 1000 SMB Debian Unstable ATA over Ethernet 800 600 400 200 0 Create Create Alone Create Mixed Read Append Delete 19 Delete Alone Delete Mixed Results 150 140 130 120 110 100 90 Direct Attached USB2 80 SMB Linksys 70 SMB DebianSlug SMB Debian Unstable 60 ATA over Ethernet 50 40 30 20 10 0 Total time (seconds) Transactions sections 20 Results 6000 5500 5000 4500 4000 3500 Direct Attached USB2 SMB Linksys 3000 SMB DebianSlug SMB Debian Unstable 2500 ATA over Ethernet 2000 1500 1000 500 0 Data Read Rate Data Write Rate 21 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) • Lots of other things 22 Questions? Any questions? I'll be putting these slides up online at http://www.stillhq.com when I get back to Canberra tomorrow morning. 23 One final note Google is hiring, both domestically within Australia, and Internationally. Talk to me if you want to know more. 24 Michael Still Google, Inc. michaelstill@google.com