Martin Michlmayr

A NSLU2 from the front

Upgrading Debian on the Linksys NSLU2

If you have installed Debian on your NSLU2 using debian-installer beta2 of Debian etch (version 4.0) you need to follow the manual upgrade described below. Please note that debian-installer beta2 of Debian etch was released several years ago and it's unlikely that you have to follow these steps. So first of all, you should check whether you actually need to do this upgrade process because most users don't. If the output of the command uname -r contains the string ixp4xx and the file /proc/mtd has a line ending with "Loader" you don't have to follow the instructions here. In this case, you can simply upgrade your Debian system with these two commands:

apt-get update
apt-get dist-upgrade

On the other hand, if uname -r contains the string nslu2 and your /proc/mtd doesn't include the string "Loader", you have to proceed with the following instructions. Please make sure that you and perform the commands as user root.

  1. Edit /etc/apt/sources.list and make sure that APT is pointed at etch. Then run:

    apt-get update

    If you get errors from APT saying that it couldn't stat source package list, then you have to switch to a mirror that carries ARM binaries:

  2. Edit /etc/kernel-img.conf and remove the line starting with postinst_hook (if there is one) and make sure there is a line

    do_initrd = yes
  3. If /lib/firmware/NPE-B doesn't exist on your machine yet, please download Intel's proprietary NPE-B microcode and put save it in /lib/firmware.

  4. Install the new kernel:

    apt-get install linux-image-2.6-ixp4xx
  5. Edit /etc/network/interface and remove all pre-up lines that mention ixp400.
  6. Turn your NSLU2 off, and put it into upgrade mode.

  7. On another Linux PC, install upslug2.

  8. Download

  9. Flash this new image:

    upslug2 -i sda1-2.6.18-6.bin
  10. Once upslug2 has flashed the new image, it will reboot and have the new layout.

  11. Install the 2nd boot loader and a new package to flash the kernel:

    apt-get install flash-kernel apex-nslu2 nslu2-utils
  12. Edit /etc/kernel-img.conf and add the following line:

    postinst_hook = flash-kernel
  13. You can now remove the old nslu2 kernel:

    apt-get remove linux-image-2.6-nslu2