Like every other website on the planet, SmallNetBuilder uses cookies. Our cookies track login status, but we only allow admins to log in anyway, so those don't apply to you. Any other cookies you pick up during your visit come from advertisers, which we don't control.
If you continue to use the site, you agree to tolerate our use of cookies. Thank you!

Wi-Fi Router Charts

Click for Wi-Fi Router Charts

Mesh System Charts

Click for Wi-Fi Mesh System Charts


In my previous article, I showed how to get a command prompt on the NSLU2 by using a hidden option and editing the password file in an external system. In this article, we'll continue exploring the box with the goal of adding new functions to make it even more useful.

Since the box runs a version of Linux, there are a whole host of software packages that one could install on the system. One could envision expanding the web server on the box for custom applications, or perhaps installing a ftp server or a secure shell server to replace the telnet server. My first goal was to install a different network file system.

As delivered by Linksys, the only support provided is for SMB - the network file system protocol that is native to Microsoft Windows. Since my home network is mostly composed of UNIX-based machines such as Apple's Mac OS X and Linux, a natural extension for me is NFS, the network file system native to most UNIX systems.

But before we can start installing new packages, there are a few difficulties to overcome. The first thing we'll have to do is set up a development environment, since we'll be building the required packages. The rest of this article assumes that you have followed the previous article and have enabled telnet on your NSLU2.

NOTE!Disclaimer: It goes without saying, but I'll say it anyway. Exploring the NSLU2 by looking at its internal file structures using any method that doesn't modify its code should leave your warranty intact. But modifying the NSLU2 in any way will void your warranty.

SmallNetBuilder, Pudai LLC and I are not responsible for any damage that the information in this article may cause to your NSLU2 or any data it manages.

So download a copy of the current firmware before you start, and don't go trying to get help from Linksys if you break it.

Determining the Target Processor

Linux is the most natural environment for developing software for another Linux system so I'll do this from my Mandrake development box. Unlike most Linux development systems, the NSLU2 is not x86 based, so we'll have to install a cross-compilation toolchain.

The first step in setting up a cross-compilation toolchain is determining the target processor. Reviews I had read indicated that the processor was an Intel IXP420 Network Processor. But to tell you the truth, that didn't mean much to me, since it sounded more like a marketing term.

Since we can now log into the box, we can poke around and see what Linux thinks the processor is. The /proc filesytem is invaluable for this. One file of interest is /proc/cpuinfo. Reading it is easy :

# cat /proc/cpuinfo Processor : XScale-IXP425/IXC1100 rev 1 (v5b) BogoMIPS : 131.48 Features : swp half thumb fastmult edsp Hardware : Intel IXDP425 Development Platform Revision : 0000 Serial : 0000000000000000

That didn't tell us much more than we already knew, but it does validate previous reports regarding the IXP425. To get further, we'll have to take a different tack. A handy utility on most UNIX systems is file, which examines a file and tells you what kind of file it is based on the initial data in the file.

The NSLU2 doesn't include the file program, but it does include ftp. So using ftp, we can move an executable over to our development platform. Try moving over our favorite little program, telnet.cgi from the directory /home/httpd/html/Management. Once this is on your development system run file on it to see what it thinks:

# file telnet.cgi telnet.cgi: ELF 32-bit MSB executable, ARM, version 1 (ARM), for GNU/Linux 2.0.0, dynamically linked (uses shared libs), stripped

That's better. Now we know we're dealing with an ARM CPU so we'll have to install an ARM cross compilation toolchain.

Support Us!

If you like what we do and want to thank us, just buy something on Amazon. We'll get a small commission on anything you buy. Thanks!

Don't Miss These

  • 1
  • 2