Installing a recent OpenWrt
The Linksys NSLU2 is an IXP4xx platform also known as "the slug" is a NAS box which has ethernet and two USB 2.0 plugs to run USB disk enclosures for storage. The simplicity of this platform created a huge hobbyist hacking community in the mid-2000s.
NSLU2 is one of the device that will be resurrected into OpenWrt. I have pre-release images here that makes it possible to use kernel v6.6 from 2024-05-20, with a snapshot of OpenWrt along with LuCI and KSMBD on the NSLU2 booting from an external hard drive or USB stick:
- IXP4xx rootfs - format a hard drive or USB stick with one partition (/dev/sda1) and format that partition with ext4. Then extract this rootfs into that partion. Plug the device into the USB 2.0 port of the NSLU2 (the port closest to the power plug). This rootfs has been processed to not start odhcpd, dnsmasq or firewall.
- openwrt-ixp4xx-generic-linksys_nslu2-squashfs-factory.bin a firmware to be flashed into the flash using the upslug2 tool like this:
- Hold down reset key and turn device on, wait until the LED
turns red, release reset key and the LED starts blinking
red. If you have a console on the device it should say something
like:
have eRcOmM push button Entry to download
If this doesn't work and the LED starts blinking yellow instead, try to just boot the device normally (to userspace) once and then retry. - On your host on the same network:
upslug2 -d enp2s0 -i openwrt-ixp4xx-generic-linksys_nslu2-squashfs-factory.bin
(This command will vary on your ethernet interface, the -d parameter.) - Create a 128MB swapfile on the root device (or whatever size you
like, but swap is good for this memory constrained device):
dd if=/dev/zero bs=1024 count=131072 of=/swapfile mkswap /swapfile swapon /swapfile
You may want to add swapon /swapfile to the /etc/rc.local script for future reboots.
This version of OpenWrt will just grab a IP number from DHCP so you can check your router to see which IP it got.
You can create a local share on the hard drive by getting onto
the NSLU2 with ssh root@192.168.1.n and do something like:
mkdir ksmbd chown nobody ksmbd chgrp nogroup ksmbdThen set up the share using the LuCI Web UI or by logging in to the router and editing /etc/config/ksmbd
Kernel TODO
- Proper support for the beeper: this requires kernel v6.11 or later with the appropriate DTS patch applied and GPIO_PWM and PWM_BEEPER compiled in. Once OpenWrt moves to v6.11+ this can be revisited.
Historical
I first booted this early on from device tree on 2021-11-30 for a test, this is the dmesg!