Linksys NSLU2
The Linksys NSLU2 (a.k.a. SLUG) was a network attached storage device based on the IXP42x processor clocked at 133/266MHz. Is provided with a 2.0A 5V power supply.
NOTE: the boardfile support for NSLU2 was deleted along with the rest of IXP4xx from OpenWrt, but was brought back on 2023-05-25 using kernel v6.1 and purely device tree and some rewritten and modernized device drivers. OpenWrt support is under development. You can find preview images of kernel v6.1 and a working OpenWrt snapshot rootfs with LuCI and KSMBD on this webpage. NSLU2 supports only external hard disk or USB boot media as the internal flash is just 8 MB and the flash image will just contain the kernel.
Supported Versions
Version/Model | Launch Date | S/N | OpenWrt Version Supported | Model Specific Notes |
---|---|---|---|---|
vx | 2006-07 | - | Kamikaze 7.06 | 133MHz; can be easily “de-underclocked” |
vy | 2006-07 | - | Kamikaze 7.06 | 266MHz |
Hardware Highlights
Installation
Flash Layout
Please check out the article flash.layout. It contains an example and a couple of explanations.
Alternative firmware
The NSLU2 at one point had an active user community around it at http://www.nslu2-linux.org. It was based upon Debian. Debian has since discontinued support for the NSLU2 in Debian 9 (Stretch) in June 2017. The developers at NSLU2Linux used to “bless” OpenWrt as the firmware of choice for people who want to run all their applications from the internal flash memory only (i.e. with no external storage at all). At one point there were several distributions available for the NSLU2; most contrast OpenWrt's minimalist philosophy. OpenWrt is for people who would rather spend their time adding the wanted features than deleting unwanted ones.
As of writing (2023) OpenWrt is probably the only distribution still actively supporting NSLU2.
Status of the Port
The new device tree-based port is under construction and available as snapshot builds.
In case of problems, things to look out for are:
- The default IP is the one that is set in the NVRAM, so OpenWrt will boot up with the IP it had under the former firmware. This is not the default for other Kamikaze platforms! Note: This is not true for Kamikaze SVN (tested with r8003). Note2: On upslugging the default IP of NSLU2 is 192.168.1.77 (the same as the factory, Unslung and SlugOS behaviour) as of 08-2007. As of 8.09 RC1 the default IP is 192.168.1.1.
- After initial installation with the squashfs firmware, it can take up to five minutes to initialize the jffs2 payload partition. I would wait at least this time before you reboot it forcefully (although unplugging it while it is initializing didn't harm it in my tests)
- The status LED indication differs from openslug. This might confuse users migrating from openslug.
Installing
Set the NSLU2 into upgrade mode. To do this, make sure the NSLU2 is turned off. Then press the reset button with a paper clip or small screwdriver and keep it pressed. Turn the NSLU2 on. The “Ready/Status” led will be yellow. When it changes to a reddish amber shade, immediately release the reset button. If it flashes an alternating amber and green, you have succeded (if not, unplug and try again).
Then install the upslug2 utility. Many distributions already include it in their package management (Fedora still ship it as of 2023).
Now upslug2 should find the nslu2 over the LAN and display the information.
Install the image with upslug2 -d interface -i filename, for example:
upslug2 -d enp7s0 -i openwrt-ixp4xx-linksys_nslu2-squashfs-factory.bin
It will flash and verify the upload and then reboot automatically. Example:
Reported success
You can download the image from the OpenWrt 'Kamikaze' 7.06 dir http://downloads.openwrt.org/kamikaze/7.06/ixp4xx-2.6/openwrt-nslu2-2.6-squashfs.bin. Then install the upslug2 utility. Many distributions already include it in their package management (Fedora still ship it as of 2022). You will find more information on the topic on the excellect NSLU2-Linux wiki http://www.nslu2-linux.org/, specific information on upslug2 is at http://www.nslu2-linux.org/wiki/Main/UpSlug.
The NSLU2 will take a few minutes to initialize the JFFS2 partition, don't reboot if you cannot access it immediately. It will start up using the network parameters that are stored in the NVRAM partition, so it will default to DHCP (I think) if not setup differently. If you have set a fixed IP address under the original firmware or a previous Linux distribution, OpenWrt will retain this. Try telnet and ping to access it. Then follow the standard Kamikaze installation procedures.
- I successfully installed OpenWrt 'Kamikaze' 8.09.2 using this image: http://downloads.openwrt.org/kamikaze/8.09.2/ixp4xx/openwrt-nslu2-squashfs.bin. The above “Installation Instructions” are still valid. As i used a Windows PC to flash the NSLU2, i used the Sercomm Flash Utility form here: http://www.nslu2-linux.org/wiki/Main/SercommFirmwareUpdater .
After flashing the device was reachable under 192.168.1.1.
- Installed OpenWrt 'Backfire' 10.03 on stock NSLU2 without any problems and works great. Added “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” and kept the static setup with actual desired IP address. --- OddballHero 2011/01/31 12:57
- I installed OpenWrt 'Backfire' 10.03.1-RC on my NSLU2, and it works just fine. --- Georg Sorst 2011/01/18 00:18
- Installed OpenWrt 'Attitude Adjustment' 12.09, r36088 on my NSLU2. Worked like a charm ! --- MascH 2014/01/07 23:37
- Installed OpenWrt Barrier Breaker 14.07 on my NSLU2. Works fine ! r0mulux 2014/10/30 20:53
- Installed OpenWrt Chaos Calmer 15.05 on my NSLU2. Works OK ! xpact 2016/03/07 08:43
Basic configuration
Since this part is identical for all devices, see Basic configuration.
Connect stuff to the USB port
To connect stuff to the USB port, please see USB overview.
Set Up as NAS
A basic configuration as an OpenWrt NAS is very simple and straight forward, for this memory-constrained device it is recommended to use ksmbd as SMB server if you desire to use the SMB protocol to access your NAS (such as with Windows and many media players). The most common SMB server samba4 is unfortunately too memory hungry and can make the device thrash and hang, and connections and transfers time out as a result.
Enable hdparm in your build by:
make menuconfig
From the top menu: Base system → Customize busybox options → Miscellaneous utilities → hdparm
This tool is used to instruct the harddrive to spin down when unused. Not doing that will be annoying since the drive will always be spinning.
If you rebuild the firmware image from scratch to get ksmbd you can do like this:
scripts/feeds update scripts/feeds install ksmbd-server make menuconfig
From the top menu, select Network → Filesystem → ksmbd-server
, then select as 'y' (star) for both ksmbd-server
and ksmbd-utils
to get into default install and rebuild OpenWrt. I usually also install the utils, but they are only needed if you want to create individual users. After you put the resulting ext4 filesystem on the drive, rebooted and made basic set-up like above /dev/sda
should exist and you can proceed to set up a samba share:
mkdir /ksmbd chown nobody /ksmbd chgrp nogroup /ksmbd
Edit /etc/config/ksmbd
to contain something like this:
config globals option 'workgroup' 'WORKGROUP' option 'description' 'ksmbd on NSLU2'
config share option path '/ksmbd' option name 'NSLU2' option create_mask '0666' option dir_mask '0777' option read_only 'no' option guest_ok 'yes'
Reboot and you can browse to the IP number (etc) of your NAS, use the NSLU2
share and upload and download files that will appear in /ksmbd
, of course you can set up whatever partition etc you like.
Leds and Beeps
Backfire 10.03 has most of the lights turned off (except for Ethernet) so use either the Luci web management (Administration→System→LED Configuration) feature (works quite well) or edit the /etc/config/system. GPIO Connections: http://www.nslu2-linux.org/wiki/Info/GPIOConnections has some information to help with the setup. Sample /etc/config/system entry:
config 'led' option 'name' 'GPIO2' option 'sysfs' 'nslu2:green:disk-2' option 'default' '1' option 'trigger' 'default-on'
Where additional choices for sysfs are 'nslu2:green:disk-1', 'nslu2:green:ready', and 'nslu2:red:status'.
Failsafe mode
- Unplug the router's power cord.
- Connect the router's LAN1 port directly to your PC.
- Configure your PC with a static IP address:
192.168.1.x/24
- Plug the power on and wait for the DMZ LED to light up.
- While the DMZ LED is on immediately repeatedly press one of the buttons (Reset button or Secure Easy Setup button) until the DMZ LED will quickly flash 3 times every second.
- You should be able to telnet to the router at 192.168.1.1 now (no username and password)
Buttons
The Linksys NSLU2 has one button. See nslu2.hardware.button for some options with that. - shut down via power button ( https://forum.openwrt.org/viewtopic.php?id=25253 )