2006-10-08

Hacking into the Linksys NSLU2

Introduction

The Linksys NSLU2 is a very nice piece of hardware which seems to be designed to be hacked from the ground. First, it costs less than 100 euros. This is important because you won't fear to fry it. Second, it features an Intel IXP420 (StrongARM) system on chip at 133 or 266 MHz, 8 MB of flash, 32 MB of RAM, a very efficient FastEthernet controller with one 10/100 Mbps RJ45 port (unfortunately, the second one is not connected), and two USB-2.0 host ports.

The system on chip also hosts a second fast-ethernet port which is not connected at all. When sold, the CPU runs at 133 MHz, but setting it back to 266 is very easy. Connecting the first serial port is easy too. The second one may only be used to receive (eg for a sensor, a GPS, keyboard, etc...). There are some I2C signals available on the board, and a JTAG interface is also usable. 4 leds are individually controlled by 4 bits so that you can use those signals to control an LCD for instance. The power and reset buttons are purely software, so you can program them to do something completely different.

This page explains how to :
  • Open the NSLU2 (easy +++);
  • Switch it from 133 to 266 MHz (easy ++);
  • Add an RS232 serial port to it so that it can be connected to a PC's serial port (easy +);
  • Make it automatically power on without losing the push button's usage. Absolutely needed for a server ! (easy +)
  • Add an USB 1.1, device mode port (harder)
  • Take the power from the USB port(harder)

Unfortunately, I don't have much spare time to comment all photos, so I hope they're self explanatory. For more information about putting Linux on the NSLU2, please consult http://www.nslu2-linux.org/.

Tests

Once restored on the 266 MHz setting, I've been able to route 100 Mbps on a single Ethernet interface, which represented 68000 small packets/s. I've ported haproxy on it, and it reached a very decent 600 hits/s and 50 Mbps.

Photos

Here are all the photos. You can click on them to zoom in.

Opening the box
First look inside
Motherboard with serial port

Upgrading to 266 MHz

Zoom on serial connector
MAX3233 serial converter

Serial seen from top
Serial seen from front
Connecting everything

Successful Linux boot
Revoving R130 & R131
Soldering USB plug to RJ45

Soldering USB plug to quartz
USB rear view
USB top view

Adding a 3v3 pull-up
Connect wires to R130 & R131
Connect wires to USB 2&3

Auto power-on
USB-powered: input diode
USB-powered: connection


Various links