Other Hardware

Wiki Resources

Sponsored Links

OpenWrt is an open source project to create a free embedded operating system for network devices. Users wanting to use only internal flash memory to install the system should try OpenWrt. It has a large user community and is actively developped. SVN version (November 2008) for example uses linux-2.6.26.7.

OpenWrt Kamikaze supports the NSLU2. It has some advantages over SlugOS or other NSLU OS:

Since at its beginnings it targeted wireless embedded hardware, OpenWrt has full support of wireless hardware and software. For example, it ships the rt73 driver which can be sometimes complicated to install on other OS.

It uses µClibc by default, and the squashfs compressed read-only filesystem, giving a lot of free space on the internal flash. For example, a minimal image, with dropbear, busybox µClibc and wireless tools can take 832kB. Since this image is read-only, OpenWrt uses a JFFS2 for writeable space (still 5632kB in my case), allowing users to install software after the main image configuration.

With SlugOS, you basically spend time to remove what's unneeded, with OpenWrt, you spend time adding what you need.

Configuration and building the image is user-friendly, with make menuconfig. Including software in the firmware image or building it for packages is explicit and easy.

See the KnownProblems page for known problems with the Kamikaze 7.07 release.

To build, follow the OpenWrt BuildInstructions for the Intel XScale IXP4xx [2.6] target system (you can use the "Image configuration" section to set up your initial network configuration), and then flash the openwrt-nslu2-2.6-squashfs.bin 8MB image in the normal way. You can also use the "make openwrt-image" target in the Master Makefile.

After installation, OpenWrt will take a few minutes to initialize the JFFS2 partition. It took about five minutes for me. You should wait at least ten minutes before rebooting. It will have an IP address of 192.168.1.77 (or 192.168.1.1 for version 8.09 and later, some people also encountered a DHCP assigned address) to which you need to telnet to get access for the first time.

Note that the Ready/Status LED may remain dark in Backfire, even if the system is up and running. Change in Administration -> System -> LED Configuration.

For assistance, look in the #nslu2-linux (for nslu2-specific installation problems, be aware there will be very few openwrt users in this channel) or #openwrt (for general OpenWrt questions - this is where all the openwrt users hang out) IRC channels on Freenode.

A tip flashing the Kamikaze 7.09 binary firmware:

DHCP is enabled by default, (this was learned after what appeared several failed attempts to first connect to the NSLU2 at IP address of 192.168.1.77 which had been set using the stock Linksys firmware)

By default, the slug uses 192.168.1.77 as the IP address, but you can change that in the network configuration when building. 8.09 and later use 192.168.1.1 as the default.

By default, both telnet and ssh are installed, but only telnet is enabled. To enable ssh and disable telnet (a very good choice, security-wise), telnet to the slug and then use the 'passwd' command to change your root password. The rest seems to be automatic.

To change the banner that displays when you log in, edit /etc/banner

ipkg.sh is not in the webif/web directory so you have to login to a terminal to update/install packages.

Binary: Mounting is a little off standard, kernel will mount sda1 as ext2 to /mnt/usbdrive. Other partitions can be mounted by creating /etc/fstab and a script (http://www.pug.org/index.php/OpenWRT - Automount for example) that executes it - but does a "sleep 5" (or so) before, so usb wil be available. I consider this pretty dirty, so replace with a better way, if known.

Make sure you use the ehci driver (kmod-usb2) and not the ohci driver! You can test it with "hdparm -Tt /dev/sda" (or what you have instead of /dev/sda).

The package management program is now called "opkg"

Remember that you require "opkg update" after each restart, because openwrt stores the package descriptions in the /tmp directory and it gets deleted after every restart.

Adding Optware packages to OpenWrt

Optware packages use their own ipkg-opt packaging system that is independent of firmware. This also means that when upgrading OpenWrt theb Optware package list is not erased as it is stored in the /opt partition where also all Optware packages are installed.

Partitioning disk into /opt swap and /home partition can be done with cfdisk /dev/sda or fdisk /dev/sda.
Allocate at least 2GB for /opt and 512MB for swap (AdamB - 512MB seems excessive, I stuck to the unslung size of 120MB).

To ensure partitions are remounted after a reboot you need to add the mount and swapon commands to a startup script, I recommend /etc/init.d/custom-user-startup until new kamikaze builds (after 7.09) supporting /etc/config/fstab are released

For initial installation of Optware package we need to install ipkg-opt package using /usr/bin/ipkg. This can be done
by adding

to /etc/ipkg.conf using vi editor. Then we proceed with ipkg update and ipkg install ipkg-opt.
This will install required /opt/bin/ipkg-opt. I recommend removing the Optware package feed from /etc/ipkg.conf and add the same line to /opt/etc/ipkg.conf.

Some Optware packages rely on libraries that are optional OpenWRT packages. Because these come from different repositories they can't easily be configured as dependencies. Either install the OpenWRT packages libssp, libpthread and libstdc++ now or be ready to install them if something breaks.

Optware also has a few other assumptions that aren't met by OpenWRT, it assumes that users called mail and lp exist in the password file so make sure you create them before installing email or printer spooler software. Another assumption is that /etc/services contains a sensible list of ports - I copied the file from another machine.

It is recommended that default search path is extended to /opt/bin:/opt/bin:$PATH in /etc/profile before
issuing /opt/etc/ipkg-opt update and installing additional Optware packages. Depending upon how you use the slug
you may prefer to include /opt/bin either before or after the default path. If you install packages like coreutils
which replace commands provided by OpenWRT with better ones then you probably want /opt/bin first, otherwise it
is probably best if it is last. If you put it first you will need to give the full path if you need to use the
openWRT version of ipkg /etc/profile line should look like

export PATH=/opt/bin:/opt/sbin:/bin:/sbin:/usr/bin:/usr/sbin

or

export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/opt/bin:/opt/sbin

If you install any packages that include startup scripts then you'll discover that OpenWRT doesn't call them. To
fix this you need to create /etc/init.d/optware that looks like

The current (April 2009) OpenWRT bin image is hard coded to 192.168.1.1 and does not include USB port support by default. After upslugging the new 8.09 image to your NSLU2, you will need to telnet to it and make some minor reconfigurations. The 10.03 image also works the same way.

The following instructions are if you're using a linux system. Adapt to suit other environments.

Reconfigure the IP address of your host system's ethernet port so that its in the same subnet as the freshly imaged NSLU2. ifconfig eth0 192.168.1.254 or sudo ifconfig eth0:1 inet 192.168.1.254 broadcast 192.168.1.255 netmask 255.255.255.0

Telnet to the freshly imaged NSLU2. telnet 192.168.1.1

Disable the dnsmasq and firewall services that are on by default. /etc/init.d/dnsmasq disable and /etc/init.d/firewall disable

If you want to keep eth0 static, you can just add "option gateway xxx.xxx.xxx.xxx" and "option dns xxx.xxx.xxx.xxx" to "option ipaddr xxx.xxx.xxx.xxx", "option netmask xxx.xxx.xxx.xxx", and "option proto static".

You can now reboot your NSLU2 by typing the command reboot. When it comes back up, it will fetch its IP address using your local DHCP server. You can now telnet to it directly from your local subnet without having to reconfigure your host terminal's ethernet port into the 192.168.1.0 subnet. Note that you'll need to query your DHCP server to find out what address its given the NSLU2!

You can also remove packages which may not be useful for your NSLU2 configuration

opkg remove -recursive ppp-mod-pppoe wireless-tools

(as examples)

After booting or rebooting your system and if you want to add a package, do not forget to opkg update, since the package repository list is written to /tmp.

Backfire 10.03 has most of the lights turned off (except for Ethernet) so use the either the web management (Administration->System->LED Configuration) feature (works quite well) or edit the /etc/config/system. GPIO Connections has some information to help with the setup. Sample /etc/config/system entry:

HowTo's for OpenWRT

For system that will interact with Vista and newer Microsoft OS, it might be worth it to install samba3 instead of samba-server. No need to use regedit and less problems in the future. Sample smb.conf for samba3 (please modify to fit your security needs and system requirements):