summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--BitKeeper/etc/logging_ok1
-rw-r--r--busybox/busybox-1.00/openslug/defconfig1
-rw-r--r--busybox/busybox-1.00/readlink.patch (renamed from nslu2-binary-only/unslung-ramdisk-2.3r25/flashfs)0
-rw-r--r--busybox/busybox_1.00.bb76
-rw-r--r--busybox/slingbox-1.00/defconfig4
-rw-r--r--busybox/slingbox_1.00.bb45
-rw-r--r--busybox/switchbox-1.00/defconfig36
-rw-r--r--busybox/switchbox-1.00/linuxrc15
-rw-r--r--busybox/switchbox-1.00/telnetd-autologin.patch (renamed from nslu2-binary-only/unslung-ramdisk-2.3r25/ipkg.conf)0
-rw-r--r--busybox/switchbox_1.00.bb51
-rw-r--r--classes/nslu2_flashimg.bbclass24
-rw-r--r--conf/distro/openslug.conf11
-rw-r--r--conf/distro/switchbox.conf6
-rw-r--r--conf/distro/unslung.conf6
-rw-r--r--conf/machine/nslu2.conf4
-rw-r--r--linux/nslu2-linksys-kernel_2.4.22.bb50
-rw-r--r--linux/openslug-kernel-2.6.9/nslu2-io.c263
-rw-r--r--linux/openslug-kernel_2.6.9.bb58
-rw-r--r--linux/unslung-kernel-2.3r25/able/defconfig7
-rw-r--r--linux/unslung-standard-kernel_2.3r25.bb8
-rw-r--r--meta/openslug-image.bb33
-rw-r--r--meta/unslung-packages.oe (renamed from nslu2-binary-only/unslung-ramdisk-2.3r25/rc.unslung)0
-rw-r--r--meta/unslung-standard-image.bb40
-rw-r--r--module-init-tools/module-init-tools_3.1-pre5.bb46
-rw-r--r--nslu2-binary-only/nslu2-linksys-firmware_2.3r25.bb23
-rw-r--r--nslu2-binary-only/nslu2-linksys-libs_2.3r25.bb22
-rw-r--r--nslu2-binary-only/nslu2-linksys-ramdisk_2.3r25.bb20
-rw-r--r--nslu2-binary-only/nslu2-switchbox-firmware.bb20
-rw-r--r--nslu2-binary-only/unslung-able-ramdisk_2.3r25.bb7
-rw-r--r--nslu2-binary-only/unslung-able-rootfs_2.3r25.oe (renamed from nslu2-binary-only/unslung-ramdisk-2.3r25/unsling)0
-rw-r--r--nslu2-binary-only/unslung-ramdisk-2.3r25/README249
-rw-r--r--nslu2-binary-only/unslung-ramdisk-2.3r25/able/mount_usbdevfs.patch10
-rw-r--r--nslu2-binary-only/unslung-ramdisk-2.3r25/linuxrc46
-rw-r--r--nslu2-binary-only/unslung-ramdisk-2.3r25/unslung.patch278
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/README (renamed from nslu2-binary-only/unslung-standard-ramdisk_2.3r25.bb)0
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/able/mount_usbdevfs.patch0
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/create-ramdisks.patch0
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/initialise-mtab.patch0
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/ipkg-link0
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/ipkg.conf0
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/linuxrc0
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/profile0
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/rc-diversion.patch0
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/rc.1-diversion.patch0
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/rc.crond-diversion.patch0
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/rc.halt-diversion.patch0
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/rc.local-diversion.patch0
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/rc.modules-diversion.patch0
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/rc.network-diversion.patch0
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/rc.quickset-diversion.patch0
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/rc.quota-diversion.patch0
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/rc.reboot-diversion.patch0
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/rc.reset_usrgrpshare-diversion.patch0
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/rc.rstimezone-diversion.patch0
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/rc.samba-diversion.patch0
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/rc.sysinit-diversion.patch0
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/rc.thttpd-diversion.patch0
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/rc.unslung0
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/rc.xinetd-diversion.patch0
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/remount-noatime.patch0
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/resling0
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/root-passwd.patch0
-rw-r--r--nslu2-binary-only/unslung-rootfs-2.3r25/unsling0
-rw-r--r--nslu2-binary-only/unslung-standard-rootfs_2.3r25.oe0
-rw-r--r--slugimage/slugimage.bb17
65 files changed, 774 insertions, 703 deletions
diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok
index 154b3f90b9..30cafff7db 100644
--- a/BitKeeper/etc/logging_ok
+++ b/BitKeeper/etc/logging_ok
@@ -12,6 +12,7 @@ cwiiis@chris.(none)
cwiiis@chrislaptop.(none)
cwiiis@cwiiisdesktop.(none)
dereky@builder.(none)
+dyoung@builder.(none)
emte@t.(none)
erich@erichl.mine.nu
erich@erichv.mine.nu
diff --git a/busybox/busybox-1.00/openslug/defconfig b/busybox/busybox-1.00/openslug/defconfig
index 881184593b..750d67f6aa 100644
--- a/busybox/busybox-1.00/openslug/defconfig
+++ b/busybox/busybox-1.00/openslug/defconfig
@@ -193,6 +193,7 @@ CONFIG_RESET=y
CONFIG_MKTEMP=y
# CONFIG_PIPE_PROGRESS is not set
CONFIG_READLINK=y
+CONFIG_FEATURE_READLINK_FOLLOW=y
CONFIG_RUN_PARTS=y
CONFIG_START_STOP_DAEMON=y
CONFIG_WHICH=y
diff --git a/nslu2-binary-only/unslung-ramdisk-2.3r25/flashfs b/busybox/busybox-1.00/readlink.patch
index e69de29bb2..e69de29bb2 100644
--- a/nslu2-binary-only/unslung-ramdisk-2.3r25/flashfs
+++ b/busybox/busybox-1.00/readlink.patch
diff --git a/busybox/busybox_1.00.bb b/busybox/busybox_1.00.bb
index e69de29bb2..e13aa6b8ad 100644
--- a/busybox/busybox_1.00.bb
+++ b/busybox/busybox_1.00.bb
@@ -0,0 +1,76 @@
+DESCRIPTION = "BusyBox version ${PV}. \
+BusyBox combines tiny versions of many common UNIX utilities into a single \
+small executable. It provides minimalist replacements for most of the \
+utilities you usually find in GNU fileutils, shellutils, etc. The utilities \
+in BusyBox generally have fewer options than their full-featured GNU \
+cousins; however, the options that are included provide the expected \
+functionality and behave very much like their GNU counterparts. BusyBox \
+provides a fairly complete POSIX environment for any small or embedded \
+system."
+HOMEPAGE = "http://www.busybox.net"
+LICENSE = "GPL"
+SECTION = "base"
+PRIORITY = "required"
+PR = "r10"
+
+SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.gz \
+ file://add-getkey-applet.patch;patch=1 \
+ file://udhcpscript.patch;patch=1 \
+ file://dhcpretrytime.patch;patch=1 \
+ file://hdparm_M.patch;patch=1 \
+ file://udhcppidfile.patch;patch=1 \
+ file://udhcppidfile-breakage.patch;patch=1 \
+ file://readlink.patch;patch=1 \
+ file://iproute-flush-cache.patch;patch=1;pnum=0 \
+ file://defconfig \
+ file://busybox-cron \
+ file://busybox-httpd \
+ file://busybox-udhcpd \
+ file://syslog \
+ file://hwclock.sh \
+ file://default.script"
+
+S = "${WORKDIR}/busybox-${PV}"
+
+export EXTRA_CFLAGS = "${CFLAGS}"
+EXTRA_OEMAKE_append = " CROSS=${HOST_PREFIX}"
+FILES_${PN} += " ${datadir}/udhcpc"
+
+inherit cml1 update-rc.d
+
+INITSCRIPT_NAME = "syslog"
+INITSCRIPT_PARAMS = "defaults"
+
+do_configure () {
+ install -m 0644 ${WORKDIR}/defconfig ${S}/.config
+ cml1_do_configure
+}
+
+do_compile () {
+ unset CFLAGS
+ base_do_compile
+}
+
+do_install () {
+ install -d ${D}/etc/init.d
+ oe_runmake 'PREFIX=${D}' install
+ install -m 0755 ${WORKDIR}/syslog ${D}/etc/init.d/
+ if grep "CONFIG_CROND=y" ${WORKDIR}/defconfig; then
+ install -m 0755 ${WORKDIR}/busybox-cron ${D}/etc/init.d/
+ fi
+ if grep "CONFIG_HTTPD=y" ${WORKDIR}/defconfig; then
+ install -m 0755 ${WORKDIR}/busybox-httpd ${D}/etc/init.d/
+ fi
+ if grep "CONFIG_UDHCPD=y" ${WORKDIR}/defconfig; then
+ install -m 0755 ${WORKDIR}/busybox-udhcpd ${D}/etc/init.d/
+ fi
+ if grep "CONFIG_HWCLOCK=y" ${WORKDIR}/defconfig; then
+ install -m 0755 ${WORKDIR}/hwclock.sh ${D}/etc/init.d/hwclock.sh
+ fi
+ if grep "CONFIG_UDHCPC=y" ${WORKDIR}/defconfig; then
+ install -d ${D}/etc/udhcpc.d
+ install -d ${D}${datadir}/udhcpc
+ install -m 0755 ${S}/examples/udhcp/simple.script ${D}/etc/udhcpc.d/50default
+ install -m 0755 ${WORKDIR}/default.script ${D}${datadir}/udhcpc/default.script
+ fi
+}
diff --git a/busybox/slingbox-1.00/defconfig b/busybox/slingbox-1.00/defconfig
index 62adadad6a..04a88327b7 100644
--- a/busybox/slingbox-1.00/defconfig
+++ b/busybox/slingbox-1.00/defconfig
@@ -80,7 +80,7 @@ CONFIG_CHROOT=y
# CONFIG_DATE is not set
# CONFIG_DD is not set
# CONFIG_DF is not set
-# CONFIG_DIRNAME is not set
+CONFIG_DIRNAME=y
# CONFIG_DOS2UNIX is not set
# CONFIG_DU is not set
# CONFIG_ECHO is not set
@@ -164,7 +164,7 @@ CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
#
# Editors
#
-# CONFIG_AWK is not set
+CONFIG_AWK=y
# CONFIG_PATCH is not set
CONFIG_SED=y
# CONFIG_VI is not set
diff --git a/busybox/slingbox_1.00.bb b/busybox/slingbox_1.00.bb
index e69de29bb2..d9849b59d5 100644
--- a/busybox/slingbox_1.00.bb
+++ b/busybox/slingbox_1.00.bb
@@ -0,0 +1,45 @@
+DESCRIPTION = "SlingBox version ${PV}. \
+SlingBox is a minimal version of BusyBox with just enough functionality \
+to enable ipkg to run on an Unslung NSLU2 device."
+HOMEPAGE = "http://www.busybox.net"
+LICENSE = "GPL"
+SECTION = "base"
+PRIORITY = "required"
+PR = "r3"
+
+SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.gz \
+ file://defconfig \
+ file://slingbox.patch;patch=1"
+
+S = "${WORKDIR}/busybox-${PV}"
+
+python () {
+ # Don't build slingbox unless we're targeting an nslu2
+ if oe.data.getVar("MACHINE", d, 1) != "nslu2":
+ raise oe.parse.SkipPackage("switchbox only builds for the Linksys NSLU2")
+}
+
+export EXTRA_CFLAGS = "${CFLAGS}"
+EXTRA_OEMAKE_append = " CROSS=${HOST_PREFIX}"
+
+PACKAGES = "${PN}"
+FILES_${PN} = "/bin /sbin"
+FILES_${PN}-doc = ""
+FILES_${PN}-dev = ""
+FILES_${PN}-locale = ""
+
+inherit cml1
+
+do_configure () {
+ install -m 0644 ${WORKDIR}/defconfig ${S}/.config
+ cml1_do_configure
+}
+
+do_compile () {
+ unset CFLAGS
+ base_do_compile
+}
+
+do_install () {
+ oe_runmake 'PREFIX=${D}' install
+}
diff --git a/busybox/switchbox-1.00/defconfig b/busybox/switchbox-1.00/defconfig
index 5a702fea5f..5a101e7d62 100644
--- a/busybox/switchbox-1.00/defconfig
+++ b/busybox/switchbox-1.00/defconfig
@@ -46,7 +46,8 @@ PREFIX="/"
# CONFIG_GZIP is not set
# CONFIG_RPM2CPIO is not set
# CONFIG_RPM is not set
-# CONFIG_TAR is not set
+CONFIG_TAR=y
+CONFIG_FEATURE_TAR_GZIP=y
# CONFIG_UNCOMPRESS is not set
# CONFIG_UNZIP is not set
@@ -90,7 +91,7 @@ CONFIG_FEATURE_LS_TIMESTAMPS=y
CONFIG_FEATURE_LS_USERNAME=y
CONFIG_FEATURE_LS_COLOR=y
CONFIG_MD5SUM=y
-# CONFIG_MKDIR is not set
+CONFIG_MKDIR=y
# CONFIG_MKFIFO is not set
# CONFIG_MKNOD is not set
# CONFIG_MV is not set
@@ -157,8 +158,10 @@ CONFIG_TEST=y
#
# CONFIG_AWK is not set
# CONFIG_PATCH is not set
-# CONFIG_SED is not set
-# CONFIG_VI is not set
+CONFIG_SED=y
+CONFIG_VI=y
+CONFIG_FEATURE_VI_COLON=y
+CONFIG_FEATURE_VI_YANKMARK=y
#
# Finding Utilities
@@ -207,7 +210,7 @@ CONFIG_REBOOT=y
# CONFIG_HDPARM is not set
# CONFIG_MAKEDEVS is not set
# CONFIG_MT is not set
-# CONFIG_RX is not set
+CONFIG_RX=y
# CONFIG_STRINGS is not set
# CONFIG_TIME is not set
# CONFIG_WATCHDOG is not set
@@ -215,7 +218,9 @@ CONFIG_REBOOT=y
#
# Linux Module Utilities
#
-# CONFIG_INSMOD is not set
+CONFIG_INSMOD=y
+CONFIG_FEATURE_2_4_MODULES=y
+CONFIG_FEATURE_2_6_MODULES=y
# CONFIG_LSMOD is not set
# CONFIG_MODPROBE is not set
# CONFIG_RMMOD is not set
@@ -229,7 +234,9 @@ CONFIG_REBOOT=y
# CONFIG_FTPPUT is not set
# CONFIG_HOSTNAME is not set
# CONFIG_HTTPD is not set
-# CONFIG_IFCONFIG is not set
+CONFIG_IFCONFIG=y
+CONFIG_FEATURE_IFCONFIG_STATUS=y
+CONFIG_FEATURE_IFCONFIG_HW=y
# CONFIG_IFUPDOWN is not set
# CONFIG_INETD is not set
# CONFIG_IP is not set
@@ -242,11 +249,12 @@ CONFIG_REBOOT=y
# CONFIG_NC is not set
# CONFIG_NETSTAT is not set
# CONFIG_NSLOOKUP is not set
-# CONFIG_PING is not set
-# CONFIG_ROUTE is not set
+CONFIG_PING=y
+CONFIG_ROUTE=y
# CONFIG_TELNET is not set
-# CONFIG_TELNETD is not set
-# CONFIG_TFTP is not set
+CONFIG_TELNETD=y
+CONFIG_TFTP=y
+CONFIG_FEATURE_TFTP_GET=y
# CONFIG_TRACEROUTE is not set
# CONFIG_VCONFIG is not set
CONFIG_WGET=y
@@ -300,7 +308,9 @@ CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
#
# CONFIG_FEATURE_SH_EXTRA_QUIET is not set
# CONFIG_FEATURE_SH_STANDALONE_SHELL is not set
-# CONFIG_FEATURE_COMMAND_EDITING is not set
+CONFIG_FEATURE_COMMAND_EDITING=y
+CONFIG_FEATURE_COMMAND_HISTORY=63
+CONFIG_FEATURE_COMMAND_TAB_COMPLETION=y
#
# System Logging Utilities
@@ -321,7 +331,7 @@ CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
# CONFIG_FSCK_MINIX is not set
# CONFIG_MKFS_MINIX is not set
# CONFIG_GETOPT is not set
-# CONFIG_HEXDUMP is not set
+CONFIG_HEXDUMP=y
# CONFIG_HWCLOCK is not set
# CONFIG_LOSETUP is not set
# CONFIG_MKSWAP is not set
diff --git a/busybox/switchbox-1.00/linuxrc b/busybox/switchbox-1.00/linuxrc
index 858bac7258..746b988d13 100644
--- a/busybox/switchbox-1.00/linuxrc
+++ b/busybox/switchbox-1.00/linuxrc
@@ -27,7 +27,20 @@ fi
if [ -z "$mounted" ] ; then
/bin/echo "Root filesystem cannot be found - dropping into shell ..."
- echo "5" > /proc/sys/kernel/panic
+
+ /bin/echo "5" > /proc/sys/kernel/panic
+
+ device=/dev/`/bin/sed -n -e 's/^\(mtd[0-9]*\): .* "FIS directory"/\1/p' /proc/mtd`
+ length=`/bin/dd if=$device bs=2 skip=2048 | /bin/hexdump -n 4 -e '4/1 "%02X"' $device`
+
+ if ( [ "$length" != "FFFFFFFF" ] ); then
+ /bin/dd if=$device bs=2 skip=2056 | /bin/tar zxvf -
+ /sbin/insmod ixp400
+ /sbin/insmod ixp425_eth
+ /sbin/ifconfig ixp0 up 192.168.1.77 netmask 255.255.0.0
+ /sbin/telnetd
+ fi
+
exec /bin/sh
fi
diff --git a/nslu2-binary-only/unslung-ramdisk-2.3r25/ipkg.conf b/busybox/switchbox-1.00/telnetd-autologin.patch
index e69de29bb2..e69de29bb2 100644
--- a/nslu2-binary-only/unslung-ramdisk-2.3r25/ipkg.conf
+++ b/busybox/switchbox-1.00/telnetd-autologin.patch
diff --git a/busybox/switchbox_1.00.bb b/busybox/switchbox_1.00.bb
index e69de29bb2..b9e4fb0648 100644
--- a/busybox/switchbox_1.00.bb
+++ b/busybox/switchbox_1.00.bb
@@ -0,0 +1,51 @@
+DESCRIPTION = "SwitchBox version ${PV}. \
+SwitchBox is a minimal version of BusyBox with just enough functionality \
+to switch between different root filesystem options on an Unslung NSLU2 device."
+HOMEPAGE = "http://www.busybox.net"
+LICENSE = "GPL"
+SECTION = "base"
+PRIORITY = "required"
+PR = "r2"
+
+SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.gz \
+ file://defconfig \
+ file://linuxrc \
+ file://switchbox.patch;patch=1 \
+ file://telnetd-autologin.patch;patch=1"
+
+S = "${WORKDIR}/busybox-${PV}"
+
+python () {
+ # Don't build switchbox unless we're targeting an nslu2
+ if oe.data.getVar("MACHINE", d, 1) != "nslu2":
+ raise oe.parse.SkipPackage("switchbox only builds for the Linksys NSLU2")
+}
+
+LDFLAGS =+ "-static"
+
+export EXTRA_CFLAGS = "${CFLAGS}"
+EXTRA_OEMAKE_append = " CROSS=${HOST_PREFIX}"
+
+PACKAGES = "${PN}"
+FILES_${PN} = "/"
+FILES_${PN}-doc = ""
+FILES_${PN}-dev = ""
+FILES_${PN}-locale = ""
+
+inherit cml1
+
+do_configure () {
+ install -m 0644 ${WORKDIR}/defconfig ${S}/.config
+ cml1_do_configure
+}
+
+do_compile () {
+ unset CFLAGS
+ base_do_compile
+}
+
+do_install () {
+ oe_runmake 'PREFIX=${D}' install
+ install -m 0755 ${WORKDIR}/linuxrc ${D}/
+ mkdir -p ${D}/proc ${D}/mnt/tmpmnt
+}
diff --git a/classes/nslu2_flashimg.bbclass b/classes/nslu2_flashimg.bbclass
index e69de29bb2..dacf6e66d5 100644
--- a/classes/nslu2_flashimg.bbclass
+++ b/classes/nslu2_flashimg.bbclass
@@ -0,0 +1,24 @@
+nslu2_pack_image () {
+ install -d ${DEPLOY_DIR_IMAGE}/slug
+ install -m 0644 ${STAGING_LIBDIR}/nslu2-binaries/RedBoot \
+ ${STAGING_LIBDIR}/nslu2-binaries/Trailer \
+ ${STAGING_LIBDIR}/nslu2-binaries/SysConf \
+ ${STAGING_LIBDIR}/nslu2-binaries/switchbox.ext2.gz \
+ ${DEPLOY_DIR_IMAGE}/slug/
+ install -m 0644 ${DEPLOY_DIR_IMAGE}/zImage-${IMAGE_BASENAME} ${DEPLOY_DIR_IMAGE}/slug/vmlinuz
+ if [ "${NSLU2_BUILD_RAMDISK_FIRMWARE}" == "1" ] ; then
+ install -m 0644 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext2.gz ${DEPLOY_DIR_IMAGE}/slug/ramdisk.ext2.gz
+ fi
+ install -m 0644 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 ${DEPLOY_DIR_IMAGE}/slug/flashdisk.jffs2
+ cd ${DEPLOY_DIR_IMAGE}/slug
+ if [ "${NSLU2_BUILD_RAMDISK_FIRMWARE}" == "1" ] ; then
+ slugimage -p -b RedBoot -s SysConf -r Ramdisk:ramdisk.ext2.gz -t Trailer \
+ -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.ramdisk.img
+ fi
+ slugimage -p -b RedBoot -s SysConf -r Ramdisk:switchbox.ext2.gz,Flashdisk:flashdisk.jffs2 -t Trailer \
+ -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.flashdisk.img
+ rm -rf ${DEPLOY_DIR_IMAGE}/slug
+}
+
+EXTRA_IMAGEDEPENDS += 'slugimage-native nslu2-linksys-firmware nslu2-switchbox-firmware'
+IMAGE_POSTPROCESS_COMMAND += "nslu2_pack_image; "
diff --git a/conf/distro/openslug.conf b/conf/distro/openslug.conf
index b063a528e2..57abf79f94 100644
--- a/conf/distro/openslug.conf
+++ b/conf/distro/openslug.conf
@@ -3,7 +3,9 @@
#@DESCRIPTION: OpenSlug Linux Distribution for the NSLU2
TARGET_FPU ?= "soft"
-TARGET_OS = "linux-uclibc"
+TARGET_OS ?= "linux"
+
+USE_NLS ?= "no"
INHERIT += " package_ipk debian nslu2_flashimg"
@@ -20,12 +22,7 @@ kernel-module-ehci-hcd \
kernel-module-scsi-mod kernel-module-sd-mod kernel-module-ext3 kernel-module-jbd \
module-init-tools"
-OPENSLUG_EXTRA_INSTALL += "kernel-module-usbnet kernel-module-usbserial \
-kernel-module-usbcore kernel-module-usb-storage kernel-module-ohci-hcd \
-kernel-module-pegasus kernel-module-p8022 kernel-module-kaweth \
-kernel-module-ehci-hcd \
-kernel-module-scsi-mod kernel-module-sd-mod kernel-module-ext3 kernel-module-jbd \
-module-init-tools"
+OPENSLUG_EXTRA_INSTALL += "${OPENSLUG_EXTRA_RDEPENDS}"
BOOTSTRAP_EXTRA_DEPENDS += "${OPENSLUG_EXTRA_DEPENDS}"
BOOTSTRAP_EXTRA_RDEPENDS += "${OPENSLUG_EXTRA_RDEPENDS}"
diff --git a/conf/distro/switchbox.conf b/conf/distro/switchbox.conf
index 3b29502143..d9bdd061f3 100644
--- a/conf/distro/switchbox.conf
+++ b/conf/distro/switchbox.conf
@@ -8,10 +8,10 @@ TARGET_OS = "linux-uclibc"
INHERIT += " package_ipk debian"
IMAGE_FSTYPE = "ext2.gz"
-IMAGE_ROOTFS_SIZE_ext2 = "1024"
-IMAGE_ROOTFS_SIZE_ext2.gz = "1024"
+IMAGE_ROOTFS_SIZE_ext2 = "2048"
+IMAGE_ROOTFS_SIZE_ext2.gz = "2048"
SWITCHBOX_DEVICE_TABLE = "${@bb.which(bb.data.getVar('BBPATH', d, 1), 'files/device_table-unslung.txt')}"
-EXTRA_IMAGECMD_ext2.gz = "-f ${SWITCHBOX_DEVICE_TABLE}"
+EXTRA_IMAGECMD_ext2.gz = "-r 0 -f ${SWITCHBOX_DEVICE_TABLE}"
USE_NLS = "no"
diff --git a/conf/distro/unslung.conf b/conf/distro/unslung.conf
index b16df4a831..bf56e116c9 100644
--- a/conf/distro/unslung.conf
+++ b/conf/distro/unslung.conf
@@ -2,13 +2,15 @@
#@NAME: Unslung
#@DESCRIPTION: Unslung Linux Distribution for the NSLU2
+FEED_URIS_unslung = "unslung##http://ipkg.nslu2-linux.org/feeds/unslung/unstable"
+
TARGET_FPU = "soft"
TARGET_OS = "linux"
INHERIT += " package_ipk nslu2_flashimg"
IMAGE_FSTYPES = "ext2.gz jffs2"
-NSLU2_BUILD_RAMDISK_FIRMWARE = 1
+# NSLU2_BUILD_RAMDISK_FIRMWARE = 1
UNSLUNG_DEVICE_TABLE = "${@bb.which(bb.data.getVar('BBPATH', d, 1), 'files/device_table-unslung.txt')}"
EXTRA_IMAGECMD_ext2.gz = "-f ${UNSLUNG_DEVICE_TABLE}"
EXTRA_IMAGECMD_jffs2 = "--pad --big-endian --eraseblock=0x20000 -D ${UNSLUNG_DEVICE_TABLE}"
@@ -21,7 +23,7 @@ UNSLUNG_EXTRA_RDEPENDS += "kernel-module-ax8817x kernel-module-catc \
kernel-module-cdcether kernel-module-kaweth kernel-module-pegasus \
kernel-module-rtl8150 kernel-module-usbnet kernel-module-mii \
kernel-module-md kernel-module-raid0 kernel-module-raid1 kernel-module-raid5 \
-kernel-module-usb-serial"
+kernel-module-usb-serial kernel-module-appletalk kernel-module-ipddp"
UNSLUNG_EXTRA_RRECOMMENDS +=
diff --git a/conf/machine/nslu2.conf b/conf/machine/nslu2.conf
index 4d3bd326de..b18b57c554 100644
--- a/conf/machine/nslu2.conf
+++ b/conf/machine/nslu2.conf
@@ -14,3 +14,7 @@ include tune-xscale.conf
SERIAL_CONSOLE = "115200 ttyS0"
KERNEL_CONSOLE = "ttyS0,115200n8"
USE_VT = "0"
+
+CVSDATE_gnu-config-native ?= "20041130"
+CVSDATE_ipkg-utils-native ?= "20041130"
+CVSDATE_ipkg-link ?= "20041130"
diff --git a/linux/nslu2-linksys-kernel_2.4.22.bb b/linux/nslu2-linksys-kernel_2.4.22.bb
index e69de29bb2..f7c41a4a11 100644
--- a/linux/nslu2-linksys-kernel_2.4.22.bb
+++ b/linux/nslu2-linksys-kernel_2.4.22.bb
@@ -0,0 +1,50 @@
+SECTION = "kernel"
+DESCRIPTION = "Linux kernel for the Linksys NSLU2 device"
+LICENSE = "GPL"
+MAINTAINER = "Chris Larson <kergoth@handhelds.org>"
+PR = "r2"
+
+SRC_URI = "ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.22.tar.bz2 \
+ ftp://oss.sgi.com/projects/xfs/patches/2.4.22/xfs-2.4.22-all-i386.bz2;patch=1 \
+ http://openembedded.org/dl/2.4.22-xfs-nslu2.patch.bz2;patch=1 \
+ file://config-fixes.patch;patch=1 \
+ file://nofpu.patch;patch=1 \
+ file://short_loadbytes.patch;patch=1 \
+ file://gcc3-userfuncs.patch;patch=1 \
+ file://gcc-registerparanoia.patch;patch=1 \
+ file://linux-2.4.24-attribute-used.patch;patch=1 \
+ file://defconfig"
+S = "${WORKDIR}/linux-2.4.22"
+
+python () {
+ # Don't build unless we're targeting an nslu2
+ if oe.data.getVar("MACHINE", d, 1) != "nslu2":
+ raise oe.parse.SkipPackage("NSLU2 kernel only builds for the Linksys NSLU2")
+}
+
+COMPATIBLE_HOST = 'arm.*-linux'
+
+inherit kernel
+
+ARCH = "arm"
+KERNEL_IMAGETYPE = "zImage"
+KERNEL_SUFFIX ?= "nslu2-linksys"
+CMDLINE_CONSOLE ?= "ttyS0,115200"
+CMDLINE_ROOT = "root=/dev/ram0 initrd=0x01000000,10M mem=32M@0x00000000"
+CMDLINE = "${CMDLINE_CONSOLE} ${CMDLINE_ROOT}"
+
+do_configure_prepend() {
+ install -m 0644 ${WORKDIR}/defconfig ${S}/.config
+ echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config
+ rm -rf ${S}/include/asm-arm/arch ${S}/include/asm-arm/proc \
+ ${S}/include/asm-arm/.proc ${S}/include/asm-arm/.arch
+}
+
+do_deploy() {
+ install -d ${DEPLOY_DIR}/images
+ install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR}/images/${KERNEL_IMAGETYPE}-${KERNEL_SUFFIX}
+}
+
+do_deploy[dirs] = "${S}"
+
+addtask deploy before do_build after do_compile
diff --git a/linux/openslug-kernel-2.6.9/nslu2-io.c b/linux/openslug-kernel-2.6.9/nslu2-io.c
index ad5bdc221d..53a3df7638 100644
--- a/linux/openslug-kernel-2.6.9/nslu2-io.c
+++ b/linux/openslug-kernel-2.6.9/nslu2-io.c
@@ -1,13 +1,16 @@
//=============================================================================
//
-// nslu2-io.c version 0.1.0
+// n2-io.c version 0.1.7
// Author: Karen Spearel <kas11 at tampabay.rr.com>
// please report problems/bugs directly to the address above
//
+// Boilerplate to be added "real soon now"...it is and has always been GPL'ed per
+// MODULE_LICENSE but is offered without warrantee of any sort..use at your own risk
+//
// NOTE: THIS IS INCOMPLETE. INCLUDED ONLY TO KEEP FROM BREAKING THE BUILD,
// IT BEEPS AND SENDS A MESSAGE TO /proc/poweroff. EVENTUALLY IT
-// WILL TALK TO THE n2_pbuttond DAEMON. EVENTUALLY THE LED DRIVER
-// WILL TALK TO SOME USERLAND APP BUT ***NOT*** THE NASTY SETLEDS.
+// WILL TALK TO THE n2_pbd DAEMON. EVENTUALLY THE LED DRIVER
+// WILL TALK TO SOME USERLAND APP BUT ***NOT*** SET_LEDS.
//
//=============================================================================
// GPIO Function State
@@ -22,12 +25,9 @@
//=============================================================================
// this driver is N2 specific and is purposely designed to do the minimum
// necessary to provide the necessary services given the limited memory resources
-// of the N2. As OpenSlug develops, addition features will be added as
-// suggested by community leadership.
+// of the N2. As OpenN2 develops, addition features will be added as
+// suggested by the community.
//
-// The Userland apps such as SetLeds are just to crufty to bother with.
-// This driver makes no attempt to do so...one day a Userland app will appear
-// ...until then, this does very little.
//=============================================================================
#include <linux/config.h>
@@ -53,39 +53,10 @@
#include <asm/hardware.h>
#include <asm-arm/irq.h>
#include <asm-arm/delay.h>
+#include <asm-arm/signal.h>
+
-// Print kernel error
-#define P_ERROR(args...) \
- printk(KERN_ERR DRV_NAME ": " args)
-// Print kernel warning
-#define P_WARN(args...) \
- printk(KERN_WARNING DRV_NAME ": " args)
-// Print kernel notice
-#define P_NOTICE(args...) \
- printk(KERN_NOTICE DRV_NAME ": " args)
-// Print kernel info
-#define P_INFO(args...) \
- printk(KERN_INFO DRV_NAME ": " args)
-// Print verbose message. Enabled/disabled by 'log_level' param
-#define P_VERBOSE(args...) \
- if (log_level >= 1) printk(DRV_NAME ": " args)
-// Print debug message. Enabled/disabled by 'log_level' param
-#define P_DEBUG(args...) \
- if (log_level >= 2) { \
- printk("%s: %s()\n", DRV_NAME, __FUNCTION__); \
- printk(args); }
-
-#ifdef DEBUG
-// Print trace message
-#define TRACE \
- if (log_level >= 2) printk("%s: %s(): line %d\n", \
- DRV_NAME, __FUNCTION__, __LINE__)
-#else
-// no trace
-#define TRACE
-#endif
-
-#define VERSION "0.1.1"
+#define VERSION "0.1.7"
#define N2RB_MAJOR 60
#define N2PB_MAJOR 61
@@ -121,22 +92,27 @@
#define PWR_OFF_STR "poweroff"
-// ioctls -- THESE NEED TO BE PROPERLY DEFINED
+// ioctls -- 'M" is used for sound cards...we don't got one so it seems safe
-#define N2LM_ON 0
-#define N2LM_OFF 1
-#define N2LM_BLINK 2
-#define N2LM_ALT 3
-#define N2LM_ALL_ON 4
-#define N2LM_ALL_OFF 5
+#define N2BZ_BEEP_STOP _IO('M',0) //stop multi-beep at end of audible
+#define N2BZ_BEEP _IO('M',1) //one beep at current defaults
+#define N2BZ_BEEPS _IOW('M',3,long) //param beeps at current defaults
+#define N2BZ_TONESET _IOW('M',4,long) //set tone: range is high=250 to low=2000
+#define N2BZ_ONTIME _IOW('M',5,long) //ontime for multi-beeps in jiffies
+#define N2BZ_SILENTTIME _IOW('M',6,long) //offtime for multi-beeps in jiffies
+#define N2BZ_REPEATCNT _IOW('M',7,long) //number of repeats for multi-beeps 0 = forever
+#define N2BZ_COMBINED _IOW('M',8,long) //combine all params in a long
+
+#define N2LM_OFF _IOW('M',32,long)
+#define N2LM_ON _IOW('M',33,long)
+#define N2LM_BLINK _IOW('M',34,long)
+#define N2LM_ALT _IOW('M',35,long)
+#define N2LM_ALL_ON _IO('M',36)
+#define N2LM_ALL_OFF _IO('M',37)
#define PHYS_LEDS 4
#define BLINK_DELAY 25
-static int n2lm_ioctl(struct inode * inode, struct file * file, unsigned int cmd, unsigned long arg);
-
-
-
// OR Masks to turn these LEDs ON
#define RS_RED_ON 0x00000001 //0b0000 0000 0000 0010
@@ -175,8 +151,12 @@ static int n2lm_ioctl(struct inode * inode, struct file * file, unsigned int cm
#define LED_DISK2 3
#define LED_ALL 4
-static long init_jiffy = 0; //jiffies at init time
-static int rb_presses = 0; //number of reset button presses
+static unsigned long init_jiffy = 0; //jiffies at init time
+static unsigned long rb_presses = 0; //number of reset button presses
+static unsigned long ontime = 50;
+static unsigned long offtime = 450;
+static unsigned long bz_repeatcnt = 10;
+static unsigned long tone = 1000;
DECLARE_WAIT_QUEUE_HEAD(n2rb_waitq);
DECLARE_WAIT_QUEUE_HEAD(n2pb_waitq);
@@ -187,7 +167,7 @@ static struct timer_list n2lm_d1_timer; //drive 1
static struct timer_list n2lm_d2_timer; //drive 2
static struct timer_list n2rb_timer;
static struct timer_list n2pb_timer;
-
+static struct timer_list n2bz_timer; //beeper
//==================================================================================================
//
@@ -240,25 +220,21 @@ static void n2lm_timer_start(unsigned long led)
switch(led) {
case LED_RS_RED:
n2lm_rsr_timer.expires = jiffies + BLINK_DELAY;
- n2lm_rsr_timer.function = n2lm_rsr_handler;
add_timer(&n2lm_rsr_timer);
break;
case LED_RS_GRN:
n2lm_rsg_timer.expires = jiffies + BLINK_DELAY;
- n2lm_rsg_timer.function = n2lm_rsg_handler;
add_timer(&n2lm_rsg_timer);
break;
case LED_DISK1:
n2lm_d1_timer.expires = jiffies + BLINK_DELAY;
- n2lm_d1_timer.function = n2lm_d1_handler;
add_timer(&n2lm_d1_timer);
break;
case LED_DISK2:
- n2lm_d2_timer.expires = jiffies + BLINK_DELAY;
- n2lm_d2_timer.function = n2lm_d2_handler;
+ n2lm_d2_timer.expires = jiffies + BLINK_DELAY;
add_timer(&n2lm_d2_timer);
break;
@@ -306,7 +282,7 @@ static void n2lm_timer_stop_all(void)
static void n2lm_ledon(unsigned long led)
{
- printk("ledon: %ld\n", led);
+ printk(KERN_DEBUG "ledon: %ld\n", led);
switch (led) {
case LED_RS_RED:
@@ -421,7 +397,7 @@ static struct file_operations n2lm_fops = {
// important should be haprepening.
//==================================================================================================
-static void n2_beep(int tone_delay, int duration)
+static void n2_buzz(int tone_delay, int duration)
{
int i;
@@ -437,6 +413,82 @@ static void n2_beep(int tone_delay, int duration)
return;
}
+//=================================================================================================
+
+// this handles the buzzer duty cycle
+static void n2bz_handler(unsigned long data)
+{
+ if (--bz_repeatcnt > 0) { //if just one beep left to do
+ n2bz_timer.expires = jiffies + ontime + offtime; //next timeout
+ add_timer(&n2bz_timer); //reinit timer
+ }
+ n2_buzz(tone/2, ontime);
+ printk(KERN_DEBUG "Count = %d\tOntime = %d\n", bz_repeatcnt, ontime);
+ return;
+}
+
+//==================================================================================================
+
+static int n2bz_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long param)
+{
+ switch (cmd) {
+ case N2BZ_BEEP:
+ n2_buzz(tone/2, ontime);
+ break;
+
+ case N2BZ_BEEP_STOP:
+ del_timer(&n2bz_timer);
+ break;
+
+ case N2BZ_BEEPS:
+ if (param == 0)
+ bz_repeatcnt = 0xffffffff;
+ else
+ bz_repeatcnt = param;
+ n2bz_handler(0);
+ break;
+
+ case N2BZ_TONESET:
+ if (param >= 250 && param <= 2000)
+ tone = param;
+ break;
+
+ case N2BZ_ONTIME:
+ if (param > 4 && param < 201)
+ ontime = param;
+ break;
+
+ case N2BZ_SILENTTIME:
+ if (param > ontime) //enforce a reasonable duty cycle
+ offtime = param;
+ else
+ offtime = ontime;
+ break;
+
+ case N2BZ_REPEATCNT:
+ if (param == 0)
+ bz_repeatcnt = 0xffffffff;
+ else
+ bz_repeatcnt = param;
+ break;
+
+ case N2BZ_COMBINED:
+ bz_repeatcnt = (param & 0xF0000000) >> 28; //repeat 1 - 16
+ ontime = (param & 0x0FF00000) >> 20; //ontime 1 - 256 jiffies
+ offtime = (param & 0x000FFF00) >> 8; //offtime 1 - 4095 jiffies
+ tone = (param & 0x000000FF) << 4; //tone (1 - 255) * 16
+ break;
+
+ default:
+ break;
+ }
+ return NOERR;
+}
+
+static struct file_operations n2bz_fops = {
+ .owner = THIS_MODULE,
+ .ioctl = n2bz_ioctl,
+};
//==================================================================================================
@@ -446,11 +498,12 @@ static irqreturn_t n2pb_handler (int irq, void *dev_id, struct pt_regs *regs)
wake_up(&n2pb_waitq);
remove_proc_entry(PWR_OFF_STR, NULL); //no parent
- n2_beep(N2_BEEP_PITCH_MED, N2_BEEP_DUR_MED);
+ n2_buzz(N2_BEEP_PITCH_MED, N2_BEEP_DUR_MED);
ret = create_proc_entry(PWR_OFF_STR, 0, NULL);
+ printk(KERN_DEBUG "cpe ret = %p\n", ret);
-// WARNING: This is RUDE...it unconditionally pulls the power plug
-// your data will be at risk...since this is just a test system
+// WARNING: This is RUDE...it unconditionally pulls the power plug.
+// Your data will be at risk...since this is just a test system
// I am leaving it enabled...eventually userland needs to get the
// message, do an orderly shutdown and use an ioctl or something in
// /proc/powerdowm to actually have us pull the plug.
@@ -458,7 +511,6 @@ static irqreturn_t n2pb_handler (int irq, void *dev_id, struct pt_regs *regs)
*IXP4XX_GPIO_GPOER &= ~GPIO_PO_BM; // enable the pwr cntl gpio
*IXP4XX_GPIO_GPOUTR |= GPIO_PO_BM; // do the deed
- printk(KERN_DEBUG "cpe ret = %p\n", ret);
return IRQ_HANDLED;
}
@@ -469,7 +521,7 @@ static irqreturn_t n2pb_handler (int irq, void *dev_id, struct pt_regs *regs)
// int i;
//
// for (i = 0; i < rb_presses; i++)
-// n2_beep(N2_BEEP_PITCH_MED,N2_BEEP_DUR_SHORT);
+// n2_buzz(N2_BEEP_PITCH_MED,N2_BEEP_DUR_SHORT);
// return;
//}
//
@@ -477,23 +529,55 @@ static irqreturn_t n2pb_handler (int irq, void *dev_id, struct pt_regs *regs)
// does nothing -- waiting for userland to define
// This thing is sorta braindead...edge triggered IRQs aren't available in the drivers yet...so
// we hang in a loop until the button is no longer pressed
+
+struct testr {
+ int ctl;
+ long param;
+};
+
static irqreturn_t n2rb_handler (int irq, void *dev_id, struct pt_regs *regs)
{
- unsigned long test[] = { 5,0, 0,0, 1,0, 0,1, 1,1, 0,2, 1,2, 0,3, 1,3, 2,0, 1,0, 2,1, 1,1, 2,2, 1,2, 2,3, 1,3, 5,0, 3,1, 5,0, 4,0 };
-
- printk(KERN_DEBUG "Reset Entry IRQ=%d Presses= %d Jiffies= %08lx\n", irq, rb_presses, jiffies);
+ static struct testr test[] = {
+ N2LM_ALL_OFF,0,
+ N2LM_ON,0,
+ N2LM_OFF,0,
+ N2LM_ON,1,
+ N2LM_ALL_OFF,1,
+ N2LM_ON,2,
+ N2LM_OFF,2,
+ N2LM_ON,3,
+ N2LM_OFF,3,
+ N2LM_BLINK,0,
+ N2LM_OFF,0,
+ N2LM_BLINK,1,
+ N2LM_OFF,1,
+ N2LM_BLINK,2,
+ N2LM_OFF,2,
+ N2LM_BLINK,3,
+ N2LM_OFF,3,
+ N2LM_ALL_OFF,0,
+ N2LM_ALT,1,
+ N2LM_OFF,1,
+ N2LM_ALL_ON,0
+ };
+
+ printk("Reset Entry IRQ =%d Presses = %d Jiffies = %08lx\tIO = %x\tIOW = %x\n", irq, rb_presses, jiffies, (int)_IO('M',rb_presses), (int)_IOW('M',rb_presses,long));
wake_up(&n2rb_waitq);
while ((*IXP4XX_GPIO_GPINR & GPIO_RB_BM) == 0)
; //wait for button release
- if (rb_presses == 21) {
+ if (rb_presses > 20)
rb_presses = 0;
- }
- n2lm_ioctl(NULL,NULL,test[rb_presses*2], test[rb_presses*2+1]);
- rb_presses++;
-
+ tone = (rb_presses * 50) + 200;
+ ontime = (rb_presses*10) + 100;
+ offtime = 500 - (rb_presses*20);
+ printk("Ontime = %d\tOfftime = %d\tTone = %d\n",ontime,offtime,tone);
+ rb_presses++;
+
+ n2bz_ioctl(NULL,NULL, N2BZ_BEEPS, rb_presses);
+ n2lm_ioctl(NULL,NULL, test[rb_presses].ctl, test[rb_presses].param);
// if (rb_presses == 0) {
// init_jiffy = jiffies;
// init_timer (&n2rb_timer);
@@ -518,6 +602,7 @@ static irqreturn_t n2rb_handler (int irq, void *dev_id, struct pt_regs *regs)
printk(KERN_DEBUG "Reset Exit IRQ=%d Presses= %d Jiffies= %08lx\n", irq, rb_presses, jiffies);
return IRQ_HANDLED;
+
}
//==================================================================================================
@@ -572,14 +657,21 @@ static void n2iom_initarch(void)
init_timer(&n2lm_rsr_timer);
init_timer(&n2lm_d1_timer);
init_timer(&n2lm_d2_timer);
- init_timer(&n2rb_timer);
- init_timer(&n2pb_timer);
+// init_timer(&n2rb_timer);
+// init_timer(&n2pb_timer);
+ init_timer(&n2bz_timer);
+ n2lm_rsr_timer.function = n2lm_rsr_handler;
+ n2lm_rsg_timer.function = n2lm_rsg_handler;
+ n2lm_d2_timer.function = n2lm_d2_handler;
+ n2lm_d1_timer.function = n2lm_d1_handler;
+ n2bz_timer.function = n2bz_handler;
+ n2lm_rsr_timer.data = n2lm_rsg_timer.data = n2lm_d1_timer.data = n2lm_d2_timer.data = n2bz_timer.data = 0;
*IXP4XX_GPIO_GPOER &= 0xfffffff0; //enable gpio 0-3
*IXP4XX_GPIO_GPOUTR |= 0x00000003; //turn off the leds
*IXP4XX_GPIO_GPOUTR &= 0xfffffffc;
n2lm_ledon(LED_ALL);
- n2_beep(N2_BEEP_PITCH_MED, N2_BEEP_DUR_SHORT);
+ n2_buzz(N2_BEEP_PITCH_MED, N2_BEEP_DUR_SHORT);
n2lm_ledoff(LED_ALL);
return;
@@ -589,24 +681,29 @@ static void n2iom_initarch(void)
static int __init n2iom_init(void)
{
- printk(KERN_INFO "NSLU2 Misc I/O Driver Version %s (C) Karen Spearel\n", VERSION);
+ printk(KERN_INFO "OpenN2 Misc I/O Driver Version %s\n", VERSION);
init_jiffy = jiffies;
printk(KERN_DEBUG "init_jiffy=%ld\n",init_jiffy);
n2iom_initarch();
- if (register_chrdev(N2RB_MAJOR, "n2_rb", &n2pb_fops) < NOERR) {
+ if (register_chrdev(N2RB_MAJOR, "n2_rbm", &n2pb_fops) < NOERR) {
printk(KERN_DEBUG "Reset Button Major %d not available\n", N2RB_MAJOR);
return -EBUSY;
}
- if (register_chrdev(N2PB_MAJOR, "n2_pb", &n2rb_fops) < NOERR) {
+ if (register_chrdev(N2PB_MAJOR, "n2_pbm", &n2rb_fops) < NOERR) {
printk(KERN_DEBUG "Power Button Major %d not available\n", N2PB_MAJOR);
return -EBUSY;
}
- if (register_chrdev(N2LM_MAJOR, "n2_leds", &n2lm_fops) < NOERR) {
+ if (register_chrdev(N2LM_MAJOR, "n2_ledm", &n2lm_fops) < NOERR) {
printk(KERN_DEBUG "Led Manager Major %d not available\n", N2LM_MAJOR);
return -EBUSY;
}
+ if (register_chrdev(N2BZ_MAJOR, "n2_bzm", &n2bz_fops) < NOERR) {
+ printk(KERN_DEBUG "Buzzer Major %d not available\n", N2BZ_MAJOR);
+ return -EBUSY;
+ }
+
if (request_irq(N2RB_IRQ, &n2rb_handler, SA_INTERRUPT, "n2_rb", NULL) < NOERR) {
printk(KERN_DEBUG "Reset Button IRQ %d not available\n", N2RB_IRQ);
return -EIO;
@@ -643,9 +740,9 @@ module_init (n2iom_init);
module_exit (n2iom_exit);
MODULE_AUTHOR("Karen Spearel <kas11@tampabay.rr.com>");
-MODULE_DESCRIPTION("NSLU2 Buttons/LEDs IO Driver");
+MODULE_DESCRIPTION("OpenN2 Buttons/LEDs IO Driver");
MODULE_LICENSE("GPL");
static int debug = 7;
module_param(debug, int, 0644);
-MODULE_PARM_DESC(debug, "Debugging enabled = 1");
+MODULE_PARM_DESC(debug, "Debugging enabled = 8");
diff --git a/linux/openslug-kernel_2.6.9.bb b/linux/openslug-kernel_2.6.9.bb
index e69de29bb2..3e94b29e81 100644
--- a/linux/openslug-kernel_2.6.9.bb
+++ b/linux/openslug-kernel_2.6.9.bb
@@ -0,0 +1,58 @@
+SECTION = "kernel"
+DESCRIPTION = "Linux kernel for the Linksys NSLU2 device"
+LICENSE = "GPL"
+MAINTAINER = "Chris Larson <kergoth@handhelds.org>"
+PR = "r1"
+
+KERNEL_SUFFIX = "openslug"
+
+SRC_URI = "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.9.tar.bz2 \
+ file://nslu2_2.6.9.patch;patch=1 \
+ file://defconfig \
+ file://x1205-rtc.c \
+ file://nslu2-io.c \
+ file://nslu2-setup.c \
+ file://nslu2-pci.c \
+ file://nslu2-part.c \
+ file://nslu2.h"
+S = "${WORKDIR}/linux-2.6.9"
+
+COMPATIBLE_HOST = 'arm.*-linux'
+
+inherit kernel
+
+ARCH = "arm"
+KERNEL_IMAGETYPE = "zImage"
+CMDLINE_CONSOLE ?= "ttyS0,115200n8"
+CMDLINE_ROOT = "root=/dev/slug rootfstype=ext2,jffs2 initrd=0x01000000,10M mem=32M@0x00000000"
+CMDLINE = "${CMDLINE_ROOT} ${CMDLINE_CONSOLE}"
+
+do_configure_prepend() {
+ install -m 0644 ${WORKDIR}/defconfig ${S}/.config
+ install -m 0644 ${WORKDIR}/x1205-rtc.c ${S}/drivers/i2c/chips/x1205-rtc.c
+ install -m 0644 ${WORKDIR}/nslu2-io.c ${S}/arch/arm/mach-ixp4xx/nslu2-io.c
+ install -m 0644 ${WORKDIR}/nslu2-setup.c ${S}/arch/arm/mach-ixp4xx/nslu2-setup.c
+ install -m 0644 ${WORKDIR}/nslu2-pci.c ${S}/arch/arm/mach-ixp4xx/nslu2-pci.c
+ install -m 0644 ${WORKDIR}/nslu2-part.c ${S}/arch/arm/mach-ixp4xx/nslu2-part.c
+ install -m 0644 ${WORKDIR}/nslu2.h ${S}/include/asm-arm/arch-ixp4xx/nslu2.h
+ echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config
+ rm -rf ${S}/include/asm-arm/arch ${S}/include/asm-arm/proc \
+ ${S}/include/asm-arm/.proc ${S}/include/asm-arm/.arch
+}
+
+do_deploy() {
+ install -d ${DEPLOY_DIR}/images
+ install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR}/images/${KERNEL_IMAGETYPE}-${KERNEL_SUFFIX}
+}
+
+do_deploy[dirs] = "${S}"
+
+addtask deploy before do_build after do_compile
+
+python () {
+ # Don't build openslug kernel unless we're targeting an nslu2
+ mach = oe.data.getVar("MACHINE", d, 1)
+ dist = oe.data.getVar("DISTRO", d, 1)
+ if mach != 'nslu2' or dist != 'openslug':
+ raise oe.parse.SkipPackage("OpenSlug only builds for the Linksys NSLU2")
+}
diff --git a/linux/unslung-kernel-2.3r25/able/defconfig b/linux/unslung-kernel-2.3r25/able/defconfig
index 83720e8181..b9248b999b 100644
--- a/linux/unslung-kernel-2.3r25/able/defconfig
+++ b/linux/unslung-kernel-2.3r25/able/defconfig
@@ -371,12 +371,15 @@ CONFIG_IP_PNP_BOOTP=y
# CONFIG_ATM is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
+CONFIG_ATALK=y
#
# Appletalk devices
#
-# CONFIG_DEV_APPLETALK is not set
+CONFIG_DEV_APPLETALK=m
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
+CONFIG_IPDDP_DECAP=y
# CONFIG_DECNET is not set
# CONFIG_BRIDGE is not set
# CONFIG_X25 is not set
diff --git a/linux/unslung-standard-kernel_2.3r25.bb b/linux/unslung-standard-kernel_2.3r25.bb
index e65cabd968..53a23d5a81 100644
--- a/linux/unslung-standard-kernel_2.3r25.bb
+++ b/linux/unslung-standard-kernel_2.3r25.bb
@@ -19,3 +19,11 @@ SRC_URI += "file://limit1gb.patch;patch=1 \
${UNSLUNG_KERNEL_EXTRA_SRC_URI}"
FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/unslung-kernel-${PV}/${UNSLUNG_VARIANT}', '${FILE_DIRNAME}/unslung-kernel-${PV}', '${FILE_DIRNAME}/nslu2-linksys-kernel-2.4.22', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
+
+python () {
+ # Don't build unslung kernel unless we're targeting an nslu2
+ mach = oe.data.getVar("MACHINE", d, 1)
+ dist = oe.data.getVar("DISTRO", d, 1)
+ if mach != 'nslu2' or dist != 'unslung':
+ raise oe.parse.SkipPackage("Unslung only builds for the Linksys NSLU2")
+}
diff --git a/meta/openslug-image.bb b/meta/openslug-image.bb
index e69de29bb2..94f91963da 100644
--- a/meta/openslug-image.bb
+++ b/meta/openslug-image.bb
@@ -0,0 +1,33 @@
+PR = "r1"
+
+IMAGE_BASENAME = "openslug"
+
+IMAGE_LINGUAS = ""
+USE_DEVFS = "1"
+
+OPENSLUG_HIDDEN_PACKAGES = "ipkg-native ipkg-utils-native fakeroot-native patcher-native virtual/armeb-linux-uclibc-gcc \
+ virtual/libc makedevs-native mtd-native slugimage-native nslu2-linksys-firmware nslu2-switchbox-firmware "
+
+DEPENDS = "base-files base-passwd-3.5.7 \
+ busybox dropbear hotplug initscripts netbase \
+ sysvinit tinylogin lrzsz portmap \
+ ixp4xx-csr ixp425-eth \
+ ipkg-collateral ipkg ipkg-link \
+ ${OPENSLUG_EXTRA_DEPENDS}"
+
+IPKG_INSTALL = "base-files base-passwd \
+ busybox dropbear hotplug initscripts netbase \
+ update-modules sysvinit tinylogin lrzsz portmap \
+ ixp4xx-csr ixp425-eth \
+ ipkg-collateral ipkg ipkg-link \
+ ${OPENSLUG_EXTRA_INSTALL}"
+
+inherit image_ipk
+
+python () {
+ # Don't build openslug images unless we're targeting an nslu2
+ mach = oe.data.getVar("MACHINE", d, 1)
+ dist = oe.data.getVar("DISTRO", d, 1)
+ if mach != 'nslu2' or dist != 'openslug':
+ raise oe.parse.SkipPackage("OpenSlug only builds for the Linksys NSLU2")
+}
diff --git a/nslu2-binary-only/unslung-ramdisk-2.3r25/rc.unslung b/meta/unslung-packages.oe
index e69de29bb2..e69de29bb2 100644
--- a/nslu2-binary-only/unslung-ramdisk-2.3r25/rc.unslung
+++ b/meta/unslung-packages.oe
diff --git a/meta/unslung-standard-image.bb b/meta/unslung-standard-image.bb
index e69de29bb2..9104c7ef38 100644
--- a/meta/unslung-standard-image.bb
+++ b/meta/unslung-standard-image.bb
@@ -0,0 +1,40 @@
+PR = "r1"
+
+IMAGE_LINGUAS = ""
+USE_DEVFS = "1"
+
+UNSLUNG_BASE_DEPENDS = "slingbox ipkg wget"
+UNSLUNG_BASE_PACKAGES = "slingbox ipkg wget"
+
+IMAGE_VARIANT ?= "standard"
+
+export IMAGE_BASENAME = "unslung-${IMAGE_VARIANT}"
+
+IPKG_INSTALL = "unslung-${IMAGE_VARIANT}-rootfs \
+ ${UNSLUNG_BASE_PACKAGES} ${UNSLUNG_EXTRA_PACKAGES}"
+
+DEPENDS = "unslung-${IMAGE_VARIANT}-kernel unslung-${IMAGE_VARIANT}-rootfs \
+ ${UNSLUNG_BASE_DEPENDS} ${UNSLUNG_EXTRA_DEPENDS}"
+
+RDEPENDS = "${UNSLUNG_BASE_PACKAGES} ${UNSLUNG_EXTRA_RDEPENDS}"
+
+RRECOMMENDS = "${UNSLUNG_EXTRA_RRECOMMENDS}"
+
+IMAGE_PREPROCESS_COMMAND += "unslung_clean_image; "
+
+inherit image_ipk
+
+# Note that anything in this function must be repeatable without having to rebuild the rootfs
+unslung_clean_image () {
+ # Remove info from the local feed used to build the image
+ rm -f ${IMAGE_ROOTFS}/usr/lib/ipkg/lists/*
+ rm -f ${IMAGE_ROOTFS}/${sysconfdir}/version
+}
+
+python () {
+ # Don't build unslung images unless we're targeting an nslu2
+ mach = oe.data.getVar("MACHINE", d, 1)
+ dist = oe.data.getVar("DISTRO", d, 1)
+ if mach != 'nslu2' or dist != 'unslung':
+ raise oe.parse.SkipPackage("Unslung only builds for the Linksys NSLU2")
+}
diff --git a/module-init-tools/module-init-tools_3.1-pre5.bb b/module-init-tools/module-init-tools_3.1-pre5.bb
index e69de29bb2..1938d5f8bc 100644
--- a/module-init-tools/module-init-tools_3.1-pre5.bb
+++ b/module-init-tools/module-init-tools_3.1-pre5.bb
@@ -0,0 +1,46 @@
+licenSE = GPL
+SECTION = "base"
+DESCRIPTION = "This package contains a set of programs for loading, inserting, and \
+removing kernel modules for Linux (versions 2.5.48 and above). It serves \
+the same function that the modutils package serves for Linux 2.4."
+PR = "r1"
+
+PACKAGES =+ "module-init-tools-insmod-static module-init-tools-depmod"
+RDEPENDS_${PN} += "module-init-tools-depmod"
+
+FILES_module-init-tools-depmod = "${sbindir}/depmod"
+FILES_module-init-tools-insmod-static = "${sbindir}/insmod.static"
+
+SRC_URI = "ftp://ftp.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-${PV}.tar.bz2"
+S = "${WORKDIR}/module-init-tools-${PV}"
+
+bindir = "/bin"
+sbindir = "/sbin"
+
+inherit autotools
+
+do_install() {
+ autotools_do_install
+ for f in bin/lsmod sbin/insmod sbin/rmmod sbin/modprobe sbin/modinfo; do
+ mv ${D}/$f ${D}/$f.26
+ done
+ install -d ${D}${mandir}
+ mv ${D}${prefix}/man/* ${D}${mandir}/
+}
+
+pkg_postinst_module-init-tools() {
+#!/bin/sh
+for f in sbin/insmod sbin/modprobe sbin/rmmod sbin/depmod sbin/modinfo bin/lsmod; do
+bn=`basename $f`
+ update-alternatives --install /$f $bn /$f.26 20
+done
+}
+
+pkg_prerm_module-init-tools() {
+#!/bin/sh
+for f in sbin/insmod sbin/modprobe sbin/rmmod sbin/depmod sbin/modinfo bin/lsmod; do
+bn=`basename $f`
+ update-alternatives --remove $bn /$f.26
+done
+}
+
diff --git a/nslu2-binary-only/nslu2-linksys-firmware_2.3r25.bb b/nslu2-binary-only/nslu2-linksys-firmware_2.3r25.bb
index e69de29bb2..9630ecf2bf 100644
--- a/nslu2-binary-only/nslu2-linksys-firmware_2.3r25.bb
+++ b/nslu2-binary-only/nslu2-linksys-firmware_2.3r25.bb
@@ -0,0 +1,23 @@
+SECTION = "base"
+DEPENDS = "slugimage-native unzip-native"
+PACKAGES = ""
+INHIBIT_DEFAULT_DEPS = "1"
+PR = "r3"
+
+SRC_URI = "ftp://ftp.linksys.com/pub/network/nslu2-fw-2.3r25.zip"
+S = "${WORKDIR}"
+
+python () {
+ # Don't build unless we're targeting an nslu2
+ if oe.data.getVar("MACHINE", d, 1) != "nslu2":
+ raise oe.parse.SkipPackage("NSLU2 firmware only builds for the Linksys NSLU2")
+}
+
+do_compile () {
+ slugimage -u -i NSLU2_V23R25.bin -b RedBoot -s SysConf -r ramdisk.ext2.gz -t Trailer
+ install -d ${STAGING_LIBDIR}/nslu2-binaries
+ install -m 0755 RedBoot ${STAGING_LIBDIR}/nslu2-binaries/
+ install -m 0755 SysConf ${STAGING_LIBDIR}/nslu2-binaries/
+ install -m 0755 ramdisk.ext2.gz ${STAGING_LIBDIR}/nslu2-binaries/
+ install -m 0755 Trailer ${STAGING_LIBDIR}/nslu2-binaries/
+}
diff --git a/nslu2-binary-only/nslu2-linksys-libs_2.3r25.bb b/nslu2-binary-only/nslu2-linksys-libs_2.3r25.bb
index e69de29bb2..7b6b963b6b 100644
--- a/nslu2-binary-only/nslu2-linksys-libs_2.3r25.bb
+++ b/nslu2-binary-only/nslu2-linksys-libs_2.3r25.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "Linksys NSLU2 Stock Firmware Libraries."
+PACKAGE_ARCH = "nslu2"
+SECTION = "base"
+PRIORITY = "required"
+PR = "r1"
+
+SRC_URI = "http://nslu.sf.net/downloads/nslu2-linksys-ramdisk-2.3r25.tar.bz2"
+
+S = "${WORKDIR}/nslu2-linksys-ramdisk-2.3r25"
+
+do_install () {
+ ( cd ${S} ; tar cvf - . ) | ( cd ${D} ; tar xvf - )
+}
+
+PACKAGES = "${PN}"
+FILES_${PN} = "/lib"
+
+python () {
+ # Don't build unless we're targeting an nslu2
+ if oe.data.getVar("MACHINE", d, 1) != "nslu2":
+ raise oe.parse.SkipPackage("NSLU2 stock firmware libraries only builds for the Linksys NSLU2")
+}
diff --git a/nslu2-binary-only/nslu2-linksys-ramdisk_2.3r25.bb b/nslu2-binary-only/nslu2-linksys-ramdisk_2.3r25.bb
index e69de29bb2..d7748912a6 100644
--- a/nslu2-binary-only/nslu2-linksys-ramdisk_2.3r25.bb
+++ b/nslu2-binary-only/nslu2-linksys-ramdisk_2.3r25.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "Linksys NSLU2 Stock Firmware Ramdisk."
+PACKAGE_ARCH = "nslu2"
+SECTION = "base"
+PRIORITY = "required"
+PR = "r1"
+
+SRC_URI = "http://nslu.sf.net/downloads/nslu2-linksys-ramdisk-2.3r25.tar.bz2"
+
+do_install () {
+ ( cd ${S} ; tar cvf - . ) | ( cd ${D} ; tar xvf - )
+}
+
+PACKAGES = "${PN}"
+FILES_${PN} = "/"
+
+python () {
+ # Don't build unless we're targeting an nslu2
+ if oe.data.getVar("MACHINE", d, 1) != "nslu2":
+ raise oe.parse.SkipPackage("NSLU2 ramdisk only builds for the Linksys NSLU2")
+}
diff --git a/nslu2-binary-only/nslu2-switchbox-firmware.bb b/nslu2-binary-only/nslu2-switchbox-firmware.bb
index e69de29bb2..0f86d88dec 100644
--- a/nslu2-binary-only/nslu2-switchbox-firmware.bb
+++ b/nslu2-binary-only/nslu2-switchbox-firmware.bb
@@ -0,0 +1,20 @@
+SECTION = "base"
+DEPENDS = ""
+PACKAGES = ""
+INHIBIT_DEFAULT_DEPS = "1"
+PR = "r4"
+
+SRC_URI = "http://nslu.sf.net/downloads/switchbox-3.3.tar.gz"
+S = "${WORKDIR}"
+
+python () {
+ # Don't build switchbox firmware unless we're targeting an nslu2
+ mach = oe.data.getVar("MACHINE", d, 1)
+ if mach != 'nslu2':
+ raise oe.parse.SkipPackage("Switchbox is only relevant for the Linksys NSLU2")
+}
+
+do_compile () {
+ install -d ${STAGING_LIBDIR}/nslu2-binaries
+ install -m 0755 switchbox.ext2.gz ${STAGING_LIBDIR}/nslu2-binaries/switchbox.ext2.gz
+}
diff --git a/nslu2-binary-only/unslung-able-ramdisk_2.3r25.bb b/nslu2-binary-only/unslung-able-ramdisk_2.3r25.bb
deleted file mode 100644
index 03481223ea..0000000000
--- a/nslu2-binary-only/unslung-able-ramdisk_2.3r25.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-UNSLUNG_VARIANT = "able"
-
-include unslung-standard-ramdisk_2.3r25.bb
-
-# Add overlays and patches to the standard ramdisk here
-SRC_URI += "file://mount_usbdevfs.patch;patch=1"
-
diff --git a/nslu2-binary-only/unslung-ramdisk-2.3r25/unsling b/nslu2-binary-only/unslung-able-rootfs_2.3r25.oe
index e69de29bb2..e69de29bb2 100644
--- a/nslu2-binary-only/unslung-ramdisk-2.3r25/unsling
+++ b/nslu2-binary-only/unslung-able-rootfs_2.3r25.oe
diff --git a/nslu2-binary-only/unslung-ramdisk-2.3r25/README b/nslu2-binary-only/unslung-ramdisk-2.3r25/README
deleted file mode 100644
index 9ed4211cf4..0000000000
--- a/nslu2-binary-only/unslung-ramdisk-2.3r25/README
+++ /dev/null
@@ -1,249 +0,0 @@
-UNSLUNG-2.x family release README
-
-Unslung is a replacement firmware image for the NSLU2 which is designed
-to allow you to mount the root filesystem from an external disk,
-without changing the standard product functionality.
-
-This is intended to be a way of distributing and loading new packages
-for the NSLU2, with minimal changes to the standard user interface and
-firmware.
-
-The changes in the UNSLUNG 2.x firmware from the standard Linksys
-2.3R25 can be found at:
-
- http://www.nslu2-linux.org/wiki/Unslung/UnslungStandard
-
-For more information about the Unslung firmware, including details on
-how to build it from source code yourself, look at:
-
- http://www.nslu2-linux.org/wiki/Unslung
-
-PRE-INSTALLATION CONSIDERATIONS
-
-1) It is strongly recommended that you test telnet Redboot access first.
- See http://www.nslu2-linux.org/wiki/HowTo/TelnetIntoRedBoot
-2) It is strongly recommended you select a 'virgin' disk for unslinging;
- that is a disk that empty; or that can be reformatted. It is
- absolutely required that the disk is (or has previously been)
- formatted by the NSLU2. It is possible to upgrade from Unslung 1.x
- to Unslung 2.x without reformatting your disk. The unsling script
- will not touch anything in /unslung or /opt, so make sure all your
- file modifications are in those directories, as you were warned
- in the README for Unslung 1.x :-)
-
-INSTALLATION DETAILS
-
-1) Make sure your NSLU2 is working properly.
-2) Flash unslung-standard-2.x.img as you normally would flash new firmware.
-3) Verify your NSLU2 is working normally at this point.
-4) Make sure that you do *not* have a disk plugged in when you reboot to
- perform the next part of the installation.
-
-'UNSLINGING' DETAILS
-
-0) Note that this only has to be done when you update the firmware.
- Also note that you should not have a disk plugged in at this stage.
-1) Enable telnet by going to http://192.168.1.77/Management/telnet.cgi,
- and press the enable button.
-2) Telnet into the NSLU2 using the username root and password uNSLUng.
-3) Identify which drive you wish you "unsling", and plug it in.
- Wait a minute or two while the disk is mounted. If the disk has not
- been previously formatted on the NSLU2, then now is the time to do
- that. Make sure that the drive is recognised in the web interface.
-4) In the telnet session, run "/sbin/unsling" and watch the ramdisk files
- be copied to your disk. The files from the ramdisk will be copied to
- the "conf" partition, not the "data" partition.
-5) Note that unsling will not change the password on your disk, so if
- you had previously changed the password on a disk, then your password
- will not be changed.
-6) Reboot.
-
-Congratulations, you're now Unslung! You should have an extra 10M of free
-memory to use for other things.
-
-Make sure you add an entry to the "The Unslung 2.x" table in the Yahoo
-group. Just use the next free integer for your Unslung number.
-
-If you make no further changes, your NSLU2 will continue to operate
-normally. But to customize things, you'll be downloading packages and
-adding stuff to the /unslung directory on the new hard drive root
-using diversion scripts.
-
-POST-INSTALLATION DETAILS
-
-Diversion scripts go into /unslung. You can divert as many or as few
-scripts as you like. Simply add the name of the standard rc script
-into /unslung and it will be run.
-
-For example, I have a script /unslung/rc.local:
-
-#! /bin/sh
-/opt/bin/do_foo
-return 1
-
-That will run at the beginning of the normal /etc/rc.d/rc.local, and then
-the rest of the factory rc.local will be executed. If I do NOT want to run
-the factory rc.local, my script would be
-
-#!/bin/sh
-/opt/bin/do_foo
-return 0
-
-That is, if the diversion script returns with something other than 0, it will
-run the rest of the factory script.
-
-Note that any variable definitions or function declarations are allowed to
-happen before the diversion script is called. This allows you to use the
-variables and functions defined by the factory script.
-
-PACKAGE INSTALLATION
-
-1) Run "ipkg update" on the NSLU2.
-2) Run "ipkg list" to see the available packages.
-3) Run "ipkg install <package-name>" to install them.
-4) Note that if you upgrade an existing 1.11-beta disk, all your
- downloaded packages will still be on your hard disk and should work as
- before, but the ipkg system will probably have forgotten what you have
- downloaded. You can re-install any you need to by typing
- "ipk install -force-overwrite <package>".
-
-ADDITIONAL INFORMATION:
-
-1) If you wish to see the contents of the ramdisk, temporarily make a
- directory called /initrd in your new hard drive /, then the ramdisk
- will not be dismounted. You will not see a RAM benefit if you do this,
- so use with caution. After you're done looking at the contents of the
- ramdisk, unmount it and remove the initrd directory for RAM savings on
- the next reboot.
-
-2) The linuxrc is written in such a way that if a known good unslung disk
- is NOT attached, it will revert to failsafe booting from ramdisk.
-
-3) There is a version check mechanism which tags your unslung hard disk
- at a certain firmware version (including the unslung version) and
- will not boot from it if the versions do not match. When you flash a
- new version of unslung, then you must re-run unsling to update the
- root disk (and that's when you check your diversion scripts to make
- sure they are still compatible with the new firmware version).
-
-4) The unsling script will never touch any files under /unslung or /opt,
- so please store all your additional files there. However, any existing
- files that you modify in any other of the standard directories will
- be overwritten when you next update the firmware and unsling the disk.
- If you need to modify a file in /etc for example, then write a
- diversion script which does it on each boot (perhaps by symlinking
- it to a file in /opt/etc which will not be touched by unsling).
-
-5) The diversion of startup scripts is done at the lowest granularity,
- so you can, for instance, just divert the rc.xinetd script if you
- want, and leave all the others unchanged.
-
-6) The diversion mechanism allows you to add to, or replace, the Linksys
- script functionality.
-
-7) The /sbin/unsling script can take a new version of the Linksys
- ramdisk, and update your unslung hard disk root filesystem from
- that. This makes sure that unslung can take advantage of any new
- Linksys features. As noted in item #4, if you have modified any
- of the files from the Linksys ramdisk, then they will be overwritten.
- Keep your modifications in /unslung and /opt and they will be safe.
-
-8) Note that telnet is not enabled by default - there is an openssh
- package available to replace telnet access with secure shell
- access. The rationale behind not enabling it by default is to
- ensure that an unslung NSLU2 without a hard disk attached has the
- same network footprint as the standard firmware.
-
-9) This simple diversion script will enable telnet on boot
-
- # /unslung/rc.xinetd
- #! /bin/sh
- echo "telnet stream tcp nowait root /usr/sbin/telnetd" > /etc/inetd.conf
- # Additional lines must append (using >>), ie:
- # echo "ftp stream tcp nowait root /usr/sbin/ftpd -a=passwd" >> /etc/inetd.conf
- return 1
-
-10) Note that the PATH is set so that downloadable packages do not
- override the factory executables. This is so that a package
- can't break the standard functionality. You can use a diversion
- script or a .profile in the /root directory to change the PATH
- if you would prefer to take the chance and get a different
- behaviour.
-
-11) The Unslung firmware will automatically execute any scripts
- which are in /opt/etc/init.d - and this is where any packages
- put their startup scripts so that they execute on each boot.
-
-CHANGELOG:
-
-1.11:
-
-First public release
-
-1.12:
-
-Added a symlink to slingbox for gzip. Added flashfs (as simple utility for preserving
-user files across hard disk formats during beta testing).
-
-1.13:
-
-Added LD_LIBRARY_PATH to /etc/profile (only works for telnet and ssh
-access, not for serial or diversion scripts).
-
-1.14:
-
-Added Unslung Doc link to the User Guide page.
-
-2.3:
-
-Moved development to OpenEmbedded.
-
-2.4:
-
-Updated to the latest ipk binary instead of the simple script.
-
-2.5:
-
-Added the real wget (instead of using the busybox version). This is
-so we can support .netrc files for commercial packages.
-
-2.6:
-
-Fixed the unsling script so it removes conflicting files on an upgrade.
-
-2.7:
-
-Began development of the -able variant.
-
-2.8:
-
-Added the patch for genesys enclosures.
-
-2.9:
-
-Reorganised the various variants into a more consistent scheme.
-
-2.10:
-
-Added the ext3flash-on-disk1 functionality.
-
-2.11:
-
-Added the README to /opt/doc.
-
-2.12:
-
-First public release of 2.x firmware.
-
-3.1:
-
-Added jffs2 functionality.
-
-3.2:
-
-Incorporated switchbox functionality.
-
-3.3:
-
-Added ramdisks for /dev and /var to reduce internal flash writes.
-
diff --git a/nslu2-binary-only/unslung-ramdisk-2.3r25/able/mount_usbdevfs.patch b/nslu2-binary-only/unslung-ramdisk-2.3r25/able/mount_usbdevfs.patch
deleted file mode 100644
index 744636d0d9..0000000000
--- a/nslu2-binary-only/unslung-ramdisk-2.3r25/able/mount_usbdevfs.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- nslu2-linksys-ramdisk-2.3r25/etc/rc.orig 2004-11-03 14:38:45.838082343 +1100
-+++ nslu2-linksys-ramdisk-2.3r25/etc/rc 2004-11-03 16:27:08.572763797 +1100
-@@ -4,6 +4,7 @@
-
- /usr/bin/Set_Led r_blinking &
- mount -t proc proc /proc
-+mount -t usbdevfs usbdevfs /proc/bus/usb
- mount -o remount,rw /dev/root /
- ifconfig lo 127.0.0.1
- route add -net 127.0.0.0 netmask 255.255.255.0 lo
diff --git a/nslu2-binary-only/unslung-ramdisk-2.3r25/linuxrc b/nslu2-binary-only/unslung-ramdisk-2.3r25/linuxrc
deleted file mode 100644
index 7e7e477e04..0000000000
--- a/nslu2-binary-only/unslung-ramdisk-2.3r25/linuxrc
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/bin/sh
-
-/bin/echo "Firmware Version: `/bin/cat /.unslung`"
-
-mounted=
-
-/bin/mount -t proc proc /proc
-/bin/echo "0x0100" > /proc/sys/kernel/real-root-dev
-
-/bin/sleep 10
-
-if [ -z "$mounted" ] && /bin/mount -rt ext3 /dev/sda2 /mnt/tmpmnt ; then
-
- if [ -x /mnt/tmpmnt/bin/init ] &&
- [ -d /mnt/tmpmnt/unslung ] && [ -r /mnt/tmpmnt/.unslung ] &&
- [ "`/bin/cat /.unslung`" = "`/bin/cat /mnt/tmpmnt/.unslung`" ] ; then
- /bin/echo "Root filesystem will be mounted from /dev/sda2 ..."
- mounted=/mnt/tmpmnt
- /bin/echo "0x0802" > /proc/sys/kernel/real-root-dev
- [ -r $mounted/unslung/rc.linuxrc ] && . $mounted/unslung/rc.linuxrc
- fi
-
- /bin/umount /mnt/tmpmnt
-fi
-
-if [ -z "$mounted" ] && /bin/mount -rt ext3 /dev/sdb2 /mnt/tmpmnt ; then
-
- if [ -x /mnt/tmpmnt/bin/init ] &&
- [ -d /mnt/tmpmnt/unslung ] && [ -r /mnt/tmpmnt/.unslung ] &&
- [ "`/bin/cat /.unslung`" = "`/bin/cat /mnt/tmpmnt/.unslung`" ] ; then
- /bin/echo "Root filesystem will be mounted from /dev/sdb2 ..."
- mounted=/mnt/tmpmnt
- /bin/echo "0x0812" > /proc/sys/kernel/real-root-dev
- [ -r $mounted/unslung/rc.linuxrc ] && . $mounted/unslung/rc.linuxrc
- fi
-
- /bin/umount /mnt/tmpmnt
-fi
-
-if [ -z "$mounted" ] ; then
- /bin/echo "Root filesystem will be mounted from /dev/ram0 ..."
-fi
-
-/bin/umount /proc
-
-exit 0
diff --git a/nslu2-binary-only/unslung-ramdisk-2.3r25/unslung.patch b/nslu2-binary-only/unslung-ramdisk-2.3r25/unslung.patch
deleted file mode 100644
index 2dedb1ac46..0000000000
--- a/nslu2-binary-only/unslung-ramdisk-2.3r25/unslung.patch
+++ /dev/null
@@ -1,278 +0,0 @@
-diff -BurN /dev/null/nslu/.unslung /mnt/nslu/.unslung
---- /dev/null/nslu/.unslung 1970-01-01 09:30:00.000000000 +0930
-+++ /mnt/nslu/.unslung 2004-08-30 21:46:35.000000000 +0930
-@@ -0,0 +1 @@
-+V2.3R25-uNSLUng-X.Y
-\ No newline at end of file
-diff -BurN /dev/null/nslu/etc/passwd /mnt/nslu/etc/passwd
---- /dev/null/nslu/etc/passwd 2004-07-27 23:37:55.000000000 -0400
-+++ /mnt/nslu/etc/passwd 2004-08-30 09:02:51.000000000 -0400
-@@ -1,4 +1,4 @@
--root:WeeOvKUvbQ6nI:0:0:root:/root:/bin/sh
-+root:t1PLUeOinN/eI:0:0:root:/root:/bin/sh
- bin:x:1:1:bin:/bin:
- lp:x:4:7:lp:/share/spool:
- mail:x:8:12:mail:/var/spool/mail:
-diff -BurN /dev/null/nslu/etc/profile /mnt/nslu/etc/profile
---- /dev/null/nslu/etc/profile 1969-12-31 19:00:00.000000000 -0500
-+++ /mnt/nslu/etc/profile 2004-08-30 09:02:51.000000000 -0400
-@@ -0,0 +1,2 @@
-+export PATH=$PATH:/opt/bin:/opt/sbin:/opt/usr/bin:/opt/usr/sbin
-+export LD_LIBRARY_PATH=/opt/lib
-diff -BurN /dev/null/nslu/etc/rc /mnt/nslu/etc/rc
---- /dev/null/nslu/etc/rc 2004-07-27 23:37:55.000000000 -0400
-+++ /mnt/nslu/etc/rc 2004-09-01 21:47:47.000000000 -0400
-@@ -1,4 +1,7 @@
- ## Simple beta script to verify csr
-+
-+if ( [ -f /unslung/rc ] && . /unslung/rc ) ; then return 0 ; fi
-+
- /usr/bin/Set_Led r_blinking &
- mount -t proc proc /proc
- mount -o remount,rw /dev/root /
-diff -BurN /dev/null/nslu/etc/rc.d/rc.1 /mnt/nslu/etc/rc.d/rc.1
---- /dev/null/nslu/etc/rc.d/rc.1 2004-07-27 23:37:55.000000000 -0400
-+++ /mnt/nslu/etc/rc.d/rc.1 2004-09-01 21:56:17.000000000 -0400
-@@ -1,5 +1,7 @@
- #!/bin/sh
-
-+if ( [ -f /unslung/rc.1 ] && . /unslung/rc.1 ) ; then return 0 ; fi
-+
- #/sbin/ifconfig ixp0 hw ether 00:C0:02:01:01:04
- /bin/echo "Starting Set CGI_ds.conf:"; /etc/rc.d/rc.bootbin; check_status
-
-@@ -17,6 +19,10 @@
- /bin/echo "Starting Crond :"; . /etc/rc.d/rc.crond
- /bin/echo "Starting Rest Task :"; . /etc/rc.d/rc.local
-
-+if [ -f /.unslung ] ; then
-+ /bin/echo "Starting UNSLUNG Packages:"; ( . /etc/rc.d/rc.unslung )
-+fi
-+
- /usr/bin/Set_Led ready
- /usr/bin/Set_Led beep1
- /bin/echo "Checking disk status :"; /usr/sbin/CheckDiskFull 2 >/dev/null
-diff -BurN /dev/null/nslu/etc/rc.d/rc.crond /mnt/nslu/etc/rc.d/rc.crond
---- /dev/null/nslu/etc/rc.d/rc.crond 2004-07-27 23:37:55.000000000 -0400
-+++ /mnt/nslu/etc/rc.d/rc.crond 2004-09-01 21:56:37.000000000 -0400
-@@ -1,5 +1,7 @@
- #!/bin/sh
-
-+if ( [ -r /unslung/rc.crond ] && . /unslung/rc.crond ) ; then return 0 ; fi
-+
- if [ -n "`pidof crond`" ] ;then
- /bin/killall crond 2>/dev/null
- fi
-diff -BurN /dev/null/nslu/etc/rc.d/rc.halt /mnt/nslu/etc/rc.d/rc.halt
---- /dev/null/nslu/etc/rc.d/rc.halt 2004-07-27 23:37:55.000000000 -0400
-+++ /mnt/nslu/etc/rc.d/rc.halt 2004-09-01 21:57:01.000000000 -0400
-@@ -1,4 +1,7 @@
- #!/bin/sh
-+
-+if ( [ -r /unslung/rc.halt ] && . /unslung/rc.halt ) ; then return 0 ; fi
-+
- /bin/killall -2 upnpd &>/dev/null
- /bin/killall nmbd &>/dev/null
- /bin/killall smbd &>/dev/null
-diff -BurN /dev/null/nslu/etc/rc.d/rc.local /mnt/nslu/etc/rc.d/rc.local
---- /dev/null/nslu/etc/rc.d/rc.local 2004-07-27 23:37:55.000000000 -0400
-+++ /mnt/nslu/etc/rc.d/rc.local 2004-09-01 21:57:17.000000000 -0400
-@@ -1,5 +1,9 @@
- #!/bin/sh
-+
- HOSTNAME=`hostname`
-+
-+if ( [ -r /unslung/rc.local ] && . /unslung/rc.local ) ; then return 0 ; fi
-+
- /usr/sbin/CheckResetButton 2>/dev/null
- /usr/sbin/CheckPowerButton 2>/dev/null
- /usr/sbin/do_umount 2>/dev/null
-diff -BurN /dev/null/nslu/etc/rc.d/rc.modules /mnt/nslu/etc/rc.d/rc.modules
---- /dev/null/nslu/etc/rc.d/rc.modules 2004-07-27 23:37:55.000000000 -0400
-+++ /mnt/nslu/etc/rc.d/rc.modules 2004-09-01 21:57:34.000000000 -0400
-@@ -1,4 +1,7 @@
- #!/bin/sh
-+
-+if ( [ -f /unslung/rc.modules ] && . /unslung/rc.modules ) ; then return 0 ; fi
-+
- insmod pbuttons &>/dev/null
- insmod rbuttons &>/dev/null
- insmod x1226-rtc &>/dev/null
-diff -BurN /dev/null/nslu/etc/rc.d/rc.network /mnt/nslu/etc/rc.d/rc.network
---- /dev/null/nslu/etc/rc.d/rc.network 2004-07-27 23:37:55.000000000 -0400
-+++ /mnt/nslu/etc/rc.d/rc.network 2004-09-01 21:57:46.000000000 -0400
-@@ -1,3 +1,6 @@
- #!/bin/sh
-+
-+if ( [ -f /unslung/rc.network ] && . /unslung/rc.network ) ; then return 0 ; fi
-+
- /sbin/ifup; #check_status
- /bin/echo "call rc.network!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
-diff -BurN /dev/null/nslu/etc/rc.d/rc.quickset /mnt/nslu/etc/rc.d/rc.quickset
---- /dev/null/nslu/etc/rc.d/rc.quickset 2004-07-27 23:37:55.000000000 -0400
-+++ /mnt/nslu/etc/rc.d/rc.quickset 2004-09-01 21:57:57.000000000 -0400
-@@ -1,3 +1,6 @@
- #!/bin/sh
-+
-+if ( [ -f /unslung/rc.quickset ] && . /unslung/rc.quickset ) ; then return 0 ; fi
-+
- /usr/sbin/QuickSet; check_status
- /usr/sbin/USB_Detect; check_status
-diff -BurN /dev/null/nslu/etc/rc.d/rc.quota /mnt/nslu/etc/rc.d/rc.quota
---- /dev/null/nslu/etc/rc.d/rc.quota 2004-07-27 23:37:55.000000000 -0400
-+++ /mnt/nslu/etc/rc.d/rc.quota 2004-09-01 21:58:08.000000000 -0400
-@@ -1,5 +1,7 @@
- #!/bin/sh
-
-+if ( [ -f /unslung/rc.quota ] && . /unslung/rc.quota ) ; then return 0 ; fi
-+
- # Check and turn on disk quota.
- if [ -x "/usr/bin/quotacheck" ]
- then
-diff -BurN /dev/null/nslu/etc/rc.d/rc.reboot /mnt/nslu/etc/rc.d/rc.reboot
---- /dev/null/nslu/etc/rc.d/rc.reboot 2004-07-27 23:37:55.000000000 -0400
-+++ /mnt/nslu/etc/rc.d/rc.reboot 2004-09-01 21:58:19.000000000 -0400
-@@ -1,4 +1,7 @@
- #!/bin/sh
-+
-+if ( [ -r /unslung/rc.reboot ] && . /unslung/rc.reboot ) ; then return 0 ; fi
-+
- /bin/killall -2 upnpd 2>/dev/null
- sleep 4
- /sbin/ifdown ixp0
-diff -BurN /dev/null/nslu/etc/rc.d/rc.reset_usrgrpshare /mnt/nslu/etc/rc.d/rc.reset_usrgrpshare
---- /dev/null/nslu/etc/rc.d/rc.reset_usrgrpshare 2004-07-27 23:37:55.000000000 -0400
-+++ /mnt/nslu/etc/rc.d/rc.reset_usrgrpshare 2004-09-01 21:58:36.000000000 -0400
-@@ -1,2 +1,5 @@
- #!/bin/sh
-+
-+if ( [ -f /unslung/rc.reset_usrgrpshare ] && . /unslung/rc.reset_usrgrpshare ) ; then return 0 ; fi
-+
- /usr/sbin/reset_ugs;
-diff -BurN /dev/null/nslu/etc/rc.d/rc.rstimezone /mnt/nslu/etc/rc.d/rc.rstimezone
---- /dev/null/nslu/etc/rc.d/rc.rstimezone 2004-07-27 23:37:55.000000000 -0400
-+++ /mnt/nslu/etc/rc.d/rc.rstimezone 2004-09-01 21:58:47.000000000 -0400
-@@ -1,4 +1,7 @@
- #!/bin/sh
-+
-+if ( [ -f /unslung/rc.rstimezone ] && . /unslung/rc.rstimezone ) ; then return 0 ; fi
-+
- #TIME=`/usr/sbin/hwclock`
- /usr/sbin/Set_TimeZone >/dev/null
- #/bin/date -s "$TIME"
-diff -BurN /dev/null/nslu/etc/rc.d/rc.samba /mnt/nslu/etc/rc.d/rc.samba
---- /dev/null/nslu/etc/rc.d/rc.samba 2004-07-27 23:37:55.000000000 -0400
-+++ /mnt/nslu/etc/rc.d/rc.samba 2004-09-01 21:58:57.000000000 -0400
-@@ -1,4 +1,7 @@
- #!/bin/sh
-+
-+if ( [ -f /unslung/rc.samba ] && . /unslung/rc.samba ) ; then return 0 ; fi
-+
- if [ -n "`pidof smbd`" ] ; then
- killall smbd 2>/dev/null
- fi
-diff -BurN /dev/null/nslu/etc/rc.d/rc.sysinit /mnt/nslu/etc/rc.d/rc.sysinit
---- /dev/null/nslu/etc/rc.d/rc.sysinit 2004-07-27 23:37:55.000000000 -0400
-+++ /mnt/nslu/etc/rc.d/rc.sysinit 2004-09-01 21:59:04.000000000 -0400
-@@ -1,7 +1,16 @@
- #!/bin/sh
-+
- export PATH=/bin:/sbin:/usr/bin:/usr/sbin
-+
-+if [ -f /.unslung ] ; then
-+ export PATH=${PATH}:/opt/bin:/opt/sbin:/opt/usr/bin:/opt/usr/sbin
-+fi
-+
- . /etc/rc.d/rc.functions
- . /etc/sysconfig/network
-+
-+if ( [ -f /unslung/rc.sysinit ] && . /unslung/rc.sysinit ) ; then return 0 ; fi
-+
- mkdir -p /var/lock/samba >/dev/null
- /bin/echo "Creating ramfs for /var/lock/samba:"; mount -t ramfs none /var/lock/samba -o maxsize=64
- /bin/echo "Limit the space of log folder:"; mount -t ramfs none /var/log -o maxsize=128
-diff -BurN /dev/null/nslu/etc/rc.d/rc.thttpd /mnt/nslu/etc/rc.d/rc.thttpd
---- /dev/null/nslu/etc/rc.d/rc.thttpd 2004-07-27 23:37:55.000000000 -0400
-+++ /mnt/nslu/etc/rc.d/rc.thttpd 2004-09-01 21:59:13.000000000 -0400
-@@ -1,4 +1,7 @@
- #!/bin/sh
-+
-+if ( [ -f /unslung/rc.thttpd ] && . /unslung/rc.thttpd ) ; then return 0 ; fi
-+
- if [ -n "`pidof thttpd`" ] ;then
- /bin/killall thttpd 2>/dev/null
- fi
-diff -BurN /dev/null/nslu/etc/rc.d/rc.xinetd /mnt/nslu/etc/rc.d/rc.xinetd
---- /dev/null/nslu/etc/rc.d/rc.xinetd 2004-07-27 23:37:55.000000000 -0400
-+++ /mnt/nslu/etc/rc.d/rc.xinetd 2004-09-01 21:59:34.000000000 -0400
-@@ -1,4 +1,7 @@
- #!/bin/sh
-+
-+if ( [ -f /unslung/rc.xinetd ] && . /unslung/rc.xinetd ) ; then return 0 ; fi
-+
- if [ -n "`pidof inetd`" ] ;then
- killall inetd 2>/dev/null
- # killall -9 inetd &>/dev/null
-diff -BurN /dev/null/nslu/usr/local/passwd /mnt/nslu/usr/local/passwd
---- /dev/null/nslu/usr/local/passwd 2004-07-27 23:37:56.000000000 -0400
-+++ /mnt/nslu/usr/local/passwd 2004-08-30 09:02:51.000000000 -0400
-@@ -1,4 +1,4 @@
--root:WeeOvKUvbQ6nI:0:0:root:/root:/bin/sh
-+root:t1PLUeOinN/eI:0:0:root:/root:/bin/sh
- bin:x:1:1:bin:/bin:
- lp:x:4:7:lp:/share/spool:
- mail:x:8:12:mail:/var/spool/mail:
---- /dev/null/nslu/etc/rc.d/rc.sysinit 2004-11-09 21:45:46.000000000 +1030
-+++ /mnt/nslu/etc/rc.d/rc.sysinit 2004-11-09 21:41:47.000000000 +1030
-@@ -12,8 +12,18 @@
- if ( [ -f /unslung/rc.sysinit ] && . /unslung/rc.sysinit ) ; then return 0 ; fi
-
- mkdir -p /var/lock/samba >/dev/null
--/bin/echo "Creating ramfs for /var/lock/samba:"; mount -t ramfs none /var/lock/samba -o maxsize=64
--/bin/echo "Limit the space of log folder:"; mount -t ramfs none /var/log -o maxsize=128
-+
-+/bin/echo "Creating ramfs for /dev:"
-+/bin/mount -t ramfs none /mnt/tmpmnt
-+/bin/cp -r /dev/* /mnt/tmpmnt/
-+/bin/mount -o bind /mnt/tmpmnt /dev
-+/bin/umount /mnt/tmpmnt
-+/bin/echo "Creating ramfs for /var:"
-+/bin/mount -t ramfs none /mnt/tmpmnt
-+/bin/cp -r /var/* /mnt/tmpmnt/
-+/bin/mount -o bind /mnt/tmpmnt /var
-+/bin/umount /mnt/tmpmnt
-+
- mkdir -p /var/log/samba >/dev/null
- touch /var/log/server.log >/dev/null
- chmod 755 /var/log/samba >/dev/null
---- /dev/null/nslu/etc/rc.d/rc.1.orig 2004-11-09 21:45:52.000000000 +1030
-+++ /mnt/nslu/etc/rc.d/rc.1 2004-11-09 21:44:27.000000000 +1030
-@@ -5,6 +5,14 @@
- #/sbin/ifconfig ixp0 hw ether 00:C0:02:01:01:04
- /bin/echo "Starting Set CGI_ds.conf:"; /etc/rc.d/rc.bootbin; check_status
-
-+if ( [ -f /share/hdd/conf/.ext3flash ] ) ; then
-+ /bin/echo "Remounting /dev/sda1 as ext3flash:"
-+ /bin/mount -o remount,rw,noatime /dev/sda1
-+ /bin/echo "Remounting /dev/sda2 as ext3flash:"
-+ /bin/mount -o remount,rw,noatime /dev/sda2
-+ /bin/echo "Removing swap from ext3flash:"
-+ /sbin/swapoff /dev/sda3
-+fi
-
- /bin/echo "Restore time and timezone:"; /etc/rc.d/rc.rstimezone; check_status
- /bin/echo "Restore usrgrpshares:"; /etc/rc.d/rc.reset_usrgrpshare; check_status
---- /dev/null/nslu/etc/rc.d/rc.quota 2004-11-11 00:05:21.000000000 +1030
-+++ /mnt/nslu/etc/rc.d/rc.quota 2004-11-11 00:04:52.000000000 +1030
-@@ -10,6 +10,11 @@
- echo "Done."
- fi
-
-+if ( [ -f /share/hdd/conf/.ext3flash ] ) ; then
-+ /bin/echo "Remounting /dev/sda1 as ext3flash:"
-+ /bin/mount -o remount,rw,noatime /dev/sda1
-+fi
-+
- if [ -x "/usr/bin/quotaon" ]
- then
- echo "Turning on quota."
diff --git a/nslu2-binary-only/unslung-standard-ramdisk_2.3r25.bb b/nslu2-binary-only/unslung-rootfs-2.3r25/README
index e69de29bb2..e69de29bb2 100644
--- a/nslu2-binary-only/unslung-standard-ramdisk_2.3r25.bb
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/README
diff --git a/nslu2-binary-only/unslung-rootfs-2.3r25/able/mount_usbdevfs.patch b/nslu2-binary-only/unslung-rootfs-2.3r25/able/mount_usbdevfs.patch
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/able/mount_usbdevfs.patch
diff --git a/nslu2-binary-only/unslung-rootfs-2.3r25/create-ramdisks.patch b/nslu2-binary-only/unslung-rootfs-2.3r25/create-ramdisks.patch
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/create-ramdisks.patch
diff --git a/nslu2-binary-only/unslung-rootfs-2.3r25/initialise-mtab.patch b/nslu2-binary-only/unslung-rootfs-2.3r25/initialise-mtab.patch
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/initialise-mtab.patch
diff --git a/nslu2-binary-only/unslung-rootfs-2.3r25/ipkg-link b/nslu2-binary-only/unslung-rootfs-2.3r25/ipkg-link
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/ipkg-link
diff --git a/nslu2-binary-only/unslung-rootfs-2.3r25/ipkg.conf b/nslu2-binary-only/unslung-rootfs-2.3r25/ipkg.conf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/ipkg.conf
diff --git a/nslu2-binary-only/unslung-rootfs-2.3r25/linuxrc b/nslu2-binary-only/unslung-rootfs-2.3r25/linuxrc
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/linuxrc
diff --git a/nslu2-binary-only/unslung-rootfs-2.3r25/profile b/nslu2-binary-only/unslung-rootfs-2.3r25/profile
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/profile
diff --git a/nslu2-binary-only/unslung-rootfs-2.3r25/rc-diversion.patch b/nslu2-binary-only/unslung-rootfs-2.3r25/rc-diversion.patch
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/rc-diversion.patch
diff --git a/nslu2-binary-only/unslung-rootfs-2.3r25/rc.1-diversion.patch b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.1-diversion.patch
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.1-diversion.patch
diff --git a/nslu2-binary-only/unslung-rootfs-2.3r25/rc.crond-diversion.patch b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.crond-diversion.patch
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.crond-diversion.patch
diff --git a/nslu2-binary-only/unslung-rootfs-2.3r25/rc.halt-diversion.patch b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.halt-diversion.patch
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.halt-diversion.patch
diff --git a/nslu2-binary-only/unslung-rootfs-2.3r25/rc.local-diversion.patch b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.local-diversion.patch
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.local-diversion.patch
diff --git a/nslu2-binary-only/unslung-rootfs-2.3r25/rc.modules-diversion.patch b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.modules-diversion.patch
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.modules-diversion.patch
diff --git a/nslu2-binary-only/unslung-rootfs-2.3r25/rc.network-diversion.patch b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.network-diversion.patch
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.network-diversion.patch
diff --git a/nslu2-binary-only/unslung-rootfs-2.3r25/rc.quickset-diversion.patch b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.quickset-diversion.patch
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.quickset-diversion.patch
diff --git a/nslu2-binary-only/unslung-rootfs-2.3r25/rc.quota-diversion.patch b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.quota-diversion.patch
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.quota-diversion.patch
diff --git a/nslu2-binary-only/unslung-rootfs-2.3r25/rc.reboot-diversion.patch b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.reboot-diversion.patch
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.reboot-diversion.patch
diff --git a/nslu2-binary-only/unslung-rootfs-2.3r25/rc.reset_usrgrpshare-diversion.patch b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.reset_usrgrpshare-diversion.patch
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.reset_usrgrpshare-diversion.patch
diff --git a/nslu2-binary-only/unslung-rootfs-2.3r25/rc.rstimezone-diversion.patch b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.rstimezone-diversion.patch
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.rstimezone-diversion.patch
diff --git a/nslu2-binary-only/unslung-rootfs-2.3r25/rc.samba-diversion.patch b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.samba-diversion.patch
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.samba-diversion.patch
diff --git a/nslu2-binary-only/unslung-rootfs-2.3r25/rc.sysinit-diversion.patch b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.sysinit-diversion.patch
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.sysinit-diversion.patch
diff --git a/nslu2-binary-only/unslung-rootfs-2.3r25/rc.thttpd-diversion.patch b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.thttpd-diversion.patch
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.thttpd-diversion.patch
diff --git a/nslu2-binary-only/unslung-rootfs-2.3r25/rc.unslung b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.unslung
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.unslung
diff --git a/nslu2-binary-only/unslung-rootfs-2.3r25/rc.xinetd-diversion.patch b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.xinetd-diversion.patch
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/rc.xinetd-diversion.patch
diff --git a/nslu2-binary-only/unslung-rootfs-2.3r25/remount-noatime.patch b/nslu2-binary-only/unslung-rootfs-2.3r25/remount-noatime.patch
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/remount-noatime.patch
diff --git a/nslu2-binary-only/unslung-rootfs-2.3r25/resling b/nslu2-binary-only/unslung-rootfs-2.3r25/resling
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/resling
diff --git a/nslu2-binary-only/unslung-rootfs-2.3r25/root-passwd.patch b/nslu2-binary-only/unslung-rootfs-2.3r25/root-passwd.patch
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/root-passwd.patch
diff --git a/nslu2-binary-only/unslung-rootfs-2.3r25/unsling b/nslu2-binary-only/unslung-rootfs-2.3r25/unsling
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-rootfs-2.3r25/unsling
diff --git a/nslu2-binary-only/unslung-standard-rootfs_2.3r25.oe b/nslu2-binary-only/unslung-standard-rootfs_2.3r25.oe
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/nslu2-binary-only/unslung-standard-rootfs_2.3r25.oe
diff --git a/slugimage/slugimage.bb b/slugimage/slugimage.bb
index e69de29bb2..fdddd538a6 100644
--- a/slugimage/slugimage.bb
+++ b/slugimage/slugimage.bb
@@ -0,0 +1,17 @@
+SECTION = "unknown"
+LICENSE = "BSD"
+DESCRIPTION = "Slugimage is a small app to disassemble and reassemble \
+flash images for the Linksys NSLU2 device. It also has jffs2 support"
+MAINTAINER = "Chris Larson <kergoth@handhelds.org>"
+PR = "r1"
+
+RDEPENDS = "perl-native"
+
+SRC_URI = "cvs://anonymous@cvs.sourceforge.net/cvsroot/nslu;module=slugimage;tag=SLUGIMAGE_1_0"
+S = "${WORKDIR}"
+
+
+do_install () {
+ install -d ${D}/${bindir}
+ install -m 0755 slugimage/slugimage ${D}/${bindir}/
+}