view · edit · print · history

SlugOS/BE (formerly OpenSlug)

SlugOS/BE is a replacement firmware image for the Linksys NSLU2. It is produced using OpenEmbedded, which is itself a way of building and distributing a complete highly configurable and highly extendable Linux distribution. OpenSlug is one of the derived distributions from SlugOS.

The SlugOS/BE firmware image is minimal - enough to start the hardware and allow the download of additional packages. OpenEmbedded contains a very large number of add on packages together with an environment which makes it easy to build new packages based on existing software. Well written software typically just works in OpenEmbedded.

If you are new to Linux, you are better off trying to use the Unslung firmware before attempting to use OpenSlug.

There's also SlugOS/LE, which is essentially the same as SlugOS/BE except for the endianness. Installation is very similar to the procedure for SlugOS/BE described here.

Getting started

There are three different ways of getting started with SlugOS/BE

  1. Download and flash the binary image from http://www.slug-firmware.net.
  2. Download the source tarball from http://www.slug-firmware.net to a machine with disk space, a reasonably powerful CPU and a native development environment (a C compiler and tools). Build OpenSlug.
  3. Download or build monotone and appropriate tools, download the nslu2-linux master Makefile and build OpenSlug from the live source. This will give you the latest HEAD version. In this case you'll need to use the MasterMakefile.

Note that the last two ways assume that you set up a cross compile environment. Building the kernel on the slug itself is uncharted territory. If you feel that you still want to try to compile natively, be sure to have a look at OpenSlugNativeCompileEnvironment.

These three different approaches give the same end-result - an SlugOS/BE binary - but the different routes allow you to do different things.

  1. UsingTheBinary is quickest, most reliable and easiest to understand, however it limits you to installing pre-built packages. If you want a small quiet server and the available packages offer the services you need then it just works, there's no need for anything else. In this respect it's like the stock Linksys NSLU2 and Unslung, but it's much more minimal (i.e. it does next to nothing unless you install extra stuff!) Please note: Make sure you configure your Slug's IP address BEFORE you load in the firmware. I have confirmed on two separate instances that replacing the default firmware on an NSLU2 right out of the box without FIRST configuring it using the Linksys tools will cause the NSLU2 to hang on reboot. (Specifically, it keeps looping on the Redboot sequence every 10 seconds. I have not had a chance to hack in a serial port to find the specific reason why yet. This is confirmed using the OpenSlug-3.10-beta.bin binary --ptan). If you do end up accidentally flashing the openslug-3.10-beta.bin firmware without first configuring the nslu2, you will have to reflash the unslung-6.8-beta.bin firmware using the Redboot process. This will recover your nslu2.

EDIT: I could not login to the NSLU2 after flashing SlugOSBE 4.8 when using the default static ip address (no response on the network) so I had to reflash to unslung firmware and set a static IP address other than the default address via the web interface and then after flashing slugOS firmware I could login with ssh with the new ip address. So for me it did not work to use linksys configuration tools first without changing the ip address to something else than default (by ronnylov 2008-10-08).

  1. BuildingTheTarball gives the binary (identical to the release binary) from the source. Consequently it provides a full cross-build environment. If you need to add your own programs this gets you up and running in a few hours (the length of time it takes to build from the source.) Pre-built packages install fine from the OpenSlug feed but you can write and add your own.
  2. An OpenEmbedded build gives the latest, unstable, untested version of OpenSlug. It may well not work. Attempting to install packages from the feed is probably a bad idea. Possibly the only reasons for doing this are if there is a bug in the current released source which prevents you doing something or if you are regularly contributing stuff to the OpenSlug development. If you are considering this option WhenAndWhereOpenSlugReleasesAreMade goes into more detail about how the source database and source releases differ.

If you choose either of the source build methods the firmware image can be modified and new packages built. The way to do this is the same whether you use the source tarball or monotone, CustomisingTheBuild gives more details.

Regardless of the chosen installation method, you have to initialize the system after installation. This is quite easy and it is described in InitialisingOpenSlug.

Installing packages

The OpenSlug binary comes with only few packages installed. In order to actually use your slug for something you have to install some more.
This section mentions some packages that you might install.

Watch out: ipkg update unpacks the list of available packages to /var/lib/ipkg/ and consumes a lot of precious space. As this list is generated on every update run, you can savely put it on tmpfs and save a lot of space:

 rm -Rf /var/lib/ipkg; ln -s /tmp/ /var/lib/ipkg; ipkg update

Now install or upgrade, you have lot of space left.

  • Native development system
    If you want to natively compile on the slug you need openslug-native. Install through ipkg install openslug-native

( seems it is ipkg install slugos-native now? also for SlugOS/BE 4.8 this package does not exist (yet) )

The OpenSlug package repository contains many packages, but you will find out that it is not "complete". If you want the power of OpenSlug combined with a great package repository, consider upgrading your OpenSlug to OpenDebianSlug. Now you will have access to the vast number of debian packages compiled for the NSLU2 (armeb).

Adding packages

Refer to AddingPackages

Latest Version : OpenSlug 3.10

The OpenSlug 3.10 (derived from the SlugOS series) firmware is now in beta testing. Source and binaries can be found at http://www.slug-firmware.net/. The release notes for this version can be found on the OpenSlug-3.10-beta release notes? page.

The previous versions of OpenSlug may be upgraded to 3.10 simply by following the reflash procedure described in "upgrading OpenSlug to a new release".

OpenSlug Features

OpenSlug is a completely customizable Linux kernel and root file system built from scratch. This means that some of the restrictions found with Unslung firmware do not exist.

  1. Number of drives attached to slug can be greater than 2.
  2. Bluetooth support? can be added.
  3. More RAM can be supported.
  4. RunApex and use a different bootloader with cool features.
  5. OpenSlugNativeCompileEnvironment Compile natively on OpenSlug.

With this freedom, you consequentially lose the ability to maintain compatibility with the Linksys firmware. It's up to you to decide if this is good or bad. :-)


Please report any problems with the firmware or packages in SlugBug.

Problems with OpenEmbedded packages can be reported to OpenEmbedded BugZilla.

How To Get Involved

See GettingStarted for details of how to build OpenSlug if you want to assist in its development.

Alternatives to OpenSlug

OpenSlug is not for the inexperienced Linux user. If you're unsure about how to use Linux properly, start learning on the Unslung firmware before attempting to use OpenSlug.

More information

This wiki contains much more information about OpenSlug, Unslung and the NSLU2. The main HomePage is here!

The OpenEmbedded build system wiki is at http://www.openembedded.org/.

The DevelopmentNotes page contains notes about work in progress.

See PackageStatus for information on available packages.

See the HowTo Recipes area for more tips and techniques.

OpenSlug specific howtos

The list of OpenSlug specific HowTos? move to its own page. See HowTo

view · edit · print · history · Last edited by ronnylov.
Based on work by cnczane, anonymous, Nikolaus Klepp, endecotp, and dolphs.
Originally by anonymous.
Page last modified on October 08, 2008, at 12:23 AM