diff options
23 files changed, 1350 insertions, 14 deletions
diff --git a/classes/nslu2_flashimg.bbclass b/classes/nslu2-jffs2-image.bbclass index 56ad0f0659..56ad0f0659 100644 --- a/classes/nslu2_flashimg.bbclass +++ b/classes/nslu2-jffs2-image.bbclass diff --git a/classes/nslu2-ramdisk-image.bbclass b/classes/nslu2-ramdisk-image.bbclass new file mode 100644 index 0000000000..0b545854fd --- /dev/null +++ b/classes/nslu2-ramdisk-image.bbclass @@ -0,0 +1,18 @@ +NSLU2_SLUGIMAGE_ARGS ?= "" + +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 \ + ${DEPLOY_DIR_IMAGE}/slug/ + install -m 0644 ${DEPLOY_DIR_IMAGE}/zImage-${IMAGE_BASENAME} ${DEPLOY_DIR_IMAGE}/slug/vmlinuz + install -m 0644 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext2.gz ${DEPLOY_DIR_IMAGE}/slug/ramdisk.ext2.gz + cd ${DEPLOY_DIR_IMAGE}/slug + slugimage -p -b RedBoot -s SysConf -r Ramdisk:ramdisk.ext2.gz -t Trailer \ + -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.ramdisk.img ${NSLU2_SLUGIMAGE_ARGS} + rm -rf ${DEPLOY_DIR_IMAGE}/slug +} + +EXTRA_IMAGEDEPENDS += 'slugimage-native nslu2-linksys-firmware' +IMAGE_POSTPROCESS_COMMAND += "nslu2_pack_image; " diff --git a/conf/distro/openslug.conf b/conf/distro/openslug.conf index 78e3cc0378..b5a580d97b 100644 --- a/conf/distro/openslug.conf +++ b/conf/distro/openslug.conf @@ -15,7 +15,7 @@ TARGET_OS = "linux" USE_NLS ?= "no" USE_NLS_glib-2.0 = "yes" -INHERIT += " package_ipk debian nslu2_flashimg" +INHERIT += " package_ipk debian nslu2-jffs2-image" # NOTE: to build new packages set OPENSLUG_EXTRA_BBFILES to the full path name to # the .bb files for the packages to build - see openslug-packages.conf in this diff --git a/conf/distro/ucslugc.conf b/conf/distro/ucslugc.conf index 0376eadd00..39251c5375 100644 --- a/conf/distro/ucslugc.conf +++ b/conf/distro/ucslugc.conf @@ -19,7 +19,7 @@ ARM_INTERWORK = ":thumb-interwork" USE_NLS ?= "no" USE_NLS_glib-2.0 = "yes" -INHERIT += " package_ipk debian nslu2_flashimg" +INHERIT += " package_ipk debian nslu2-jffs2-image" # The OVERRIDES are modified here so that 'openslug' overrides are picked up if # present (ucslugc overrides take precedence). diff --git a/conf/distro/unslung-binary-kernel.conf b/conf/distro/unslung-binary-kernel.conf new file mode 100644 index 0000000000..9394ba4475 --- /dev/null +++ b/conf/distro/unslung-binary-kernel.conf @@ -0,0 +1,52 @@ +#@TYPE: Distribution +#@NAME: Unslung +#@DESCRIPTION: Unslung Linux Distribution for the NSLU2 + +FEED_URIS = "cross##http://ipkg.nslu2-linux.org/feeds/unslung/cross" +FEED_URIS += "native##http://ipkg.nslu2-linux.org/feeds/unslung/native" +FEED_URIS += "oe##http://ipkg.nslu2-linux.org/feeds/unslung/oe" + +DISTRO_NAME = "Unslung" +DISTRO_VERSION = "6.0-beta" +DISTRO_TYPE = "beta" + +# pull in the frozen list of bbfiles +UNSLUNG_EXTRA_BBFILES ?= "" +include conf/distro/freeze.conf + +TARGET_FPU = "soft" +TARGET_OS = "linux" + +FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2" + +INHERIT += " package_ipk nslu2-ramdisk-image" + +IMAGE_FSTYPE = "ext2.gz" +UNSLUNG_DEVICE_TABLE = "${@bb.which(bb.data.getVar('BBPATH', d, 1), 'files/device_table-unslung.txt')}" +EXTRA_IMAGECMD_ext2.gz = "-D ${UNSLUNG_DEVICE_TABLE}" +IMAGE_ROOTFS_SIZE_ext2.gz = "14000" + +UNSLUNG_EXTRA_DEPENDS ?= "" +UNSLUNG_EXTRA_RDEPENDS ?= "\ +kernel-module-usbnet \ +kernel-module-pegasus kernel-module-kaweth \ +kernel-module-usbserial \ +kernel-module-pl2303 kernel-module-ftdi-sio" + +UNSLUNG_EXTRA_INSTALL ?= "${UNSLUNG_EXTRA_RDEPENDS}" + +# Select between multiple alternative providers, if more than one is eligible. +PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial" +PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross" +PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross" + +PREFERRED_VERSION_glibc ?= "2.2.5" +PREFERRED_VERSION_glibc-initial ?= "2.2.5" +PREFERRED_VERSION_binutils ?= "2.15.94.0.1" +PREFERRED_VERSION_binutils-cross ?= "2.15.94.0.1" + +PREFERRED_VERSION_unslung-kernel ?= "2.4.22.l2.3r63" +PREFERRED_VERSION_unslung-rootfs ?= "2.3r63" +PREFERRED_VERSION_nslu2-linksys-firmware ?= "2.3r63" +PREFERRED_VERSION_nslu2-linksys-libs ?= "2.3r63" +PREFERRED_VERSION_nslu2-linksys-ramdisk ?= "2.3r63" diff --git a/conf/distro/unslung-packages.conf b/conf/distro/unslung-packages.conf index 1f41b1e846..3e9059fae8 100644 --- a/conf/distro/unslung-packages.conf +++ b/conf/distro/unslung-packages.conf @@ -12,6 +12,7 @@ ${PKGDIR}/packages/findutils/*.bb \ ${PKGDIR}/packages/flex/*.bb \ ${PKGDIR}/packages/freeze/*.bb \ ${PKGDIR}/packages/gcc/*.bb \ +${PKGDIR}/packages/genext2fs/*.bb \ ${PKGDIR}/packages/gettext/*.bb \ ${PKGDIR}/packages/glibc/*.bb \ ${PKGDIR}/packages/gnu-config/*.bb \ diff --git a/conf/distro/unslung.conf b/conf/distro/unslung.conf index 75c251f220..06331707fc 100644 --- a/conf/distro/unslung.conf +++ b/conf/distro/unslung.conf @@ -7,7 +7,7 @@ FEED_URIS += "native##http://ipkg.nslu2-linux.org/feeds/unslung/native" FEED_URIS += "oe##http://ipkg.nslu2-linux.org/feeds/unslung/oe" DISTRO_NAME = "Unslung" -DISTRO_VERSION = "5.5-beta" +DISTRO_VERSION = "5.6-alpha" DISTRO_TYPE = "beta" # pull in the frozen list of bbfiles @@ -19,7 +19,7 @@ TARGET_OS = "linux" FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2" -INHERIT += " package_ipk nslu2_flashimg" +INHERIT += " package_ipk nslu2-jffs2-image" IMAGE_FSTYPE = "jffs2" UNSLUNG_DEVICE_TABLE = "${@bb.which(bb.data.getVar('BBPATH', d, 1), 'files/device_table-unslung.txt')}" @@ -43,3 +43,9 @@ PREFERRED_VERSION_glibc ?= "2.2.5" PREFERRED_VERSION_glibc-initial ?= "2.2.5" PREFERRED_VERSION_binutils ?= "2.15.94.0.1" PREFERRED_VERSION_binutils-cross ?= "2.15.94.0.1" + +PREFERRED_VERSION_unslung-kernel ?= "2.4.22.l2.3r29" +PREFERRED_VERSION_unslung-rootfs ?= "2.3r29" +PREFERRED_VERSION_nslu2-linksys-firmware ?= "2.3r29" +PREFERRED_VERSION_nslu2-linksys-libs ?= "2.3r29" +PREFERRED_VERSION_nslu2-linksys-ramdisk ?= "2.3r29" diff --git a/conf/machine/nslu2.conf b/conf/machine/nslu2.conf index 3a9a9d9730..1616299ae9 100644 --- a/conf/machine/nslu2.conf +++ b/conf/machine/nslu2.conf @@ -120,11 +120,6 @@ NSLU2_PACKAGE_ARCH = "${@['thumbv5tb', 'armv5teb'][bb.data.getVar('ARM_INSTRUCTI #------------------------------------------------------------------------------- # Miscellany #------------------------------------------------------------------------------- -# JBowler(20050811): I don't think any of the following are required (now). -PREFERRED_PROVIDER_xserver ?= "xserver-kdrive" -IMAGE_ROOTFS_SIZE_ext2 = "10240" -IMAGE_ROOTFS_SIZE_ext2.gz = "10240" - SERIAL_CONSOLE = "115200 ttyS0" KERNEL_CONSOLE = "ttyS0,115200n8" USE_VT = "0" diff --git a/files/device_table-unslung.txt b/files/device_table-unslung.txt index 1639acadaf..7fdd4df68b 100644 --- a/files/device_table-unslung.txt +++ b/files/device_table-unslung.txt @@ -30,15 +30,15 @@ /dev/rtc c 644 0 0 10 135 - - - /dev/scd b 664 0 0 11 0 0 1 4 /dev/sda b 664 0 0 8 0 - - - -/dev/sda b 664 0 0 8 1 1 1 5 +/dev/sda b 664 0 0 8 1 1 1 16 /dev/sdb b 664 0 0 8 16 - - - -/dev/sdb b 664 0 0 8 17 1 1 5 +/dev/sdb b 664 0 0 8 17 1 1 16 /dev/sdc b 664 0 0 8 32 - - - -/dev/sdc b 664 0 0 8 33 1 1 5 +/dev/sdc b 664 0 0 8 33 1 1 16 /dev/sdd b 664 0 0 8 48 - - - -/dev/sdd b 664 0 0 8 49 1 1 5 +/dev/sdd b 664 0 0 8 49 1 1 16 /dev/sde b 664 0 0 8 64 - - - -/dev/sde b 664 0 0 8 65 1 1 5 +/dev/sde b 664 0 0 8 65 1 1 16 /dev/st c 664 0 0 9 0 0 1 4 /dev/tty c 666 0 0 5 0 - - - /dev/tty c 644 0 0 4 0 0 1 10 diff --git a/packages/linux/unslung-kernel_2.4.22.l2.3r63.bb b/packages/linux/unslung-kernel_2.4.22.l2.3r63.bb new file mode 100644 index 0000000000..858af69eb0 --- /dev/null +++ b/packages/linux/unslung-kernel_2.4.22.l2.3r63.bb @@ -0,0 +1,46 @@ +DEFAULT_PREFERENCE_unslung = "-1" + +SECTION = "kernel" +DESCRIPTION = "Unslung kernel for the Linksys NSLU2 device" +LICENSE = "GPL" +MAINTAINER = "NSLU2 Linux <www.nlsu2-linux.org>" +PR = "r0" + +S = "${WORKDIR}/linux-2.4.22" + +KERNEL_IMAGETYPE = "zImage" +KERNEL_SUFFIX = "unslung" + +DEPENDS += "nslu2-linksys-firmware" + +python () { + # Don't build unslung kernel unless we're targeting an nslu2 + mach = bb.data.getVar("MACHINE", d, 1) + dist = bb.data.getVar("DISTRO", d, 1) + if mach != 'nslu2' or dist != 'unslung': + raise bb.parse.SkipPackage("Unslung only builds for the Linksys NSLU2") +} + + +do_deploy() { + cp ${STAGING_LIBDIR}/nslu2-binaries/vmlinuz vmlinuz + dd if=vmlinuz bs=1 count=11732 > vmlinuh + dd if=vmlinuz bs=1 skip=11732 count=975109 | gzip -dc > vmlinux + dd if=vmlinuz bs=1 skip=986841 > vmlinut + cat vmlinux | sed \ + -e 's/ram0/slug/' \ + -e 's/\x01\x31\x2c\xff/\x00\x1e\x84\x7f/' \ + -e 's/flash_sda\x00/hdd_sda\x00\x00\x00/' \ + -e 's/flash_\x00/hdd_\x00\x00\x00/' \ + -e 's/flash_sd%c\x00/hdd_sd%c\x00\x00\x00/' \ + | gzip -9 -c > vmlinux.gz +# cat vmlinuh vmlinux.gz vmlinut > vmlinuz + dd if=/dev/zero of=padding bs=1 count=9 + cat vmlinuh vmlinux.gz padding vmlinut > vmlinuz + install -d ${DEPLOY_DIR}/images + install -m 0644 vmlinuz ${DEPLOY_DIR}/images/${KERNEL_IMAGETYPE}-${KERNEL_SUFFIX} +} + +do_deploy[dirs] = "${S}" + +addtask deploy before do_build after do_compile diff --git a/packages/nslu2-binary-only/nslu2-linksys-firmware_2.3r63.bb b/packages/nslu2-binary-only/nslu2-linksys-firmware_2.3r63.bb new file mode 100644 index 0000000000..c90bcd6fe3 --- /dev/null +++ b/packages/nslu2-binary-only/nslu2-linksys-firmware_2.3r63.bb @@ -0,0 +1,27 @@ +DEFAULT_PREFERENCE_unslung = "-1" + +SECTION = "base" +DEPENDS = "slugimage-native unzip-native" +PACKAGES = "" +LICENSE = "GPL" +INHIBIT_DEFAULT_DEPS = "1" +PR = "r0" + +SRC_URI = "http://www.you-need-to-get-this-one-yourself.com/NSLU2_V23R63.zip" +S = "${WORKDIR}" + +python () { + # Don't build unless we're targeting an nslu2 + if bb.data.getVar("MACHINE", d, 1) != "nslu2": + raise bb.parse.SkipPackage("NSLU2 firmware only builds for the Linksys NSLU2") +} + +do_compile () { + slugimage -u -i NSLU2_V23R63.bin -k vmlinuz -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 vmlinuz ${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/packages/nslu2-binary-only/nslu2-linksys-libs_2.3r63.bb b/packages/nslu2-binary-only/nslu2-linksys-libs_2.3r63.bb new file mode 100644 index 0000000000..299286c2ac --- /dev/null +++ b/packages/nslu2-binary-only/nslu2-linksys-libs_2.3r63.bb @@ -0,0 +1,25 @@ +DEFAULT_PREFERENCE_unslung = "-1" + +DESCRIPTION = "Linksys NSLU2 Stock Firmware Libraries." +PACKAGE_ARCH = "nslu2" +SECTION = "base" +PRIORITY = "required" +PR = "r0" + +SRC_URI = "http://www.you-need-to-create-this-yourself.com/nslu2-linksys-ramdisk-2.3r63.tar.bz2" + +S = "${WORKDIR}/nslu2-linksys-ramdisk-2.3r63" + +do_install () { + ( cd ${S} ; rm -rf bin dev etc home mnt proc sbin share tmp upload usr var ) + ( cd ${S} ; tar cvf - . ) | ( cd ${D} ; tar xvf - ) +} + +PACKAGES = "${PN}" +FILES_${PN} = "/lib" + +python () { + # Don't build unless we're targeting an nslu2 + if bb.data.getVar("MACHINE", d, 1) != "nslu2": + raise bb.parse.SkipPackage("NSLU2 stock firmware libraries only builds for the Linksys NSLU2") +} diff --git a/packages/nslu2-binary-only/nslu2-linksys-ramdisk_2.3r63.bb b/packages/nslu2-binary-only/nslu2-linksys-ramdisk_2.3r63.bb new file mode 100644 index 0000000000..af5a2dabbd --- /dev/null +++ b/packages/nslu2-binary-only/nslu2-linksys-ramdisk_2.3r63.bb @@ -0,0 +1,22 @@ +DEFAULT_PREFERENCE_unslung = "-1" + +DESCRIPTION = "Linksys NSLU2 Stock Firmware Ramdisk." +PACKAGE_ARCH = "nslu2" +SECTION = "base" +PRIORITY = "required" +PR = "r0" + +SRC_URI = "http://www.you-need-to-create-this-yourself.com/nslu2-linksys-ramdisk-2.3r63.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 bb.data.getVar("MACHINE", d, 1) != "nslu2": + raise bb.parse.SkipPackage("NSLU2 ramdisk only builds for the Linksys NSLU2") +} diff --git a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/.mtn2git_empty b/packages/nslu2-binary-only/unslung-rootfs-2.3r63/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/nslu2-binary-only/unslung-rootfs-2.3r63/.mtn2git_empty diff --git a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/NOTES b/packages/nslu2-binary-only/unslung-rootfs-2.3r63/NOTES new file mode 100644 index 0000000000..4e09b459c2 --- /dev/null +++ b/packages/nslu2-binary-only/unslung-rootfs-2.3r63/NOTES @@ -0,0 +1,453 @@ +Unslung-6.x Family Release Notes + +Unslung is a replacement firmware image for the Linksys NSLU2 which is designed +to allow you to make changes to the root filesystem (including the installation +of downloadable packages) while still providing all the standard product +functionality. + +If, at any time, you have any questions concerning the installation or +operation of Unslung firmware, your first port of call should be the +NSLU2-Linux wiki at: + + http://www.nslu2-linux.org + +Specifically, check the HowTos and the Frequently Asked Questions before +posting to the mailing list or asking a question in the IRC channel +[#nslu2-general @ irc.freenode.net]. + +OK! Now that that's out of the way... + +This file is provided to give general information and usage notes for the +Unslung 6.x firmware. If you are looking for installation instructions, please +stop now and go to the README file. Follow the README instructions WORD for +WORD to keep from turning your NSLU2 into a brick. The information contained +in this file will make more sense if you have already "unslung" your NSLU2. + +-------------------------------------------------------------------------------- + +These "Notes" are divided into four sections: + + 1 - GENERAL INFORMATION + 2 - IPKG PACKAGES + 3 - DIVERSION SCRIPTS + 4 - CHANGELOG + + +GENERAL INFORMATION + +As stated above, Unslung firmware is a replacement firmware image for the +Linksys NSLU2. The Unslung firmware is intended to be used for loading new +packages (giving enhanced or additional functionality) with minimal changes +to the standard user interface and firmware. The differences in the Unslung 6.x +firmware from the standard Linksys 2.3R63 firmware can be found at: + + http://www.nslu2-linux.org/wiki/Unslung/UnslungFeatures + +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 + +There are several assumptions made in this Notes. One, you've successfully +unslung your NSLU2, and can verify the basic Linksys functionality (samba +users, groups, and shares setup with the Linksys interface). Two, that you can +get telnet or ssh shell access to your NSLU2 from any computer on the same +network as the NSLU2. Three, that you have read and understand the NSLU2-linux +community rules at: + + http://www.nslu2-linux.org/wiki/Main/HomePage + +If you understand the third assumption, then you also understand that there is +an emphasis on using and developing the NSLU2-Linux wiki. Clarifications and +further documentation is always welcomed on the wiki. + +If you are experienced with the Linux operating system, then you can make +changes directly to the root filesystem - changes which are persistent across +reboot. If you want to get involved, then check the NSLU2-linux wiki at: + + http://www.nslu2-linux.org/wiki/Main/HowToGetInvolved + + +IPKG PACKAGES + +Packages require you to be running Unslung firmware (as you may have already +guessed!) In general, ipkg packages are commonly available software packages +that have been ported to the NSLU2 - giving enhanced or additional +functionality. If you run into problems or have specific question with a +certain package, you should look on the Internet for the general documentation +about the package first. If your problem is specific to the NSLU2 port, then +check for further documentation for the corresponding package on the +NSLU2-Linux wiki at: + + http://www.nslu2-linux.org/wiki/Unslung/Packages + +When you "unsling" an external disk (check the README for instructions), +downloaded packages will be installed onto that external disk. The number of +packages that you can install is only limited by the size of the "data" +partition on the external disk. Note that you *must* *not* install any +packages before you have booted with an external "Unslung" disk. To do so will +almost certainly cause your internal jffs2 flash memory become full, and cause +you to have to reflash your NSLU2. + +Package Installation Details + + 1) Check for network connectivity to the package repository from the NSLU2 + first: "ping ipkg.nslu2-linux.org" + + - If this does not work, then please check the NSLU2 DNS settings in + the web interface (under "Administration", "LAN"). + + 3) Update the list of available packages from new feeds: "ipkg update" + + 4) Check the list of available packages for ones that you want on your + NSLU2: "ipkg list" + + 5) Install the packages: "ipkg install <package-name>" + +Most packages put their startup scripts into /opt/etc/init.d - which the +Unslung firmware automatically runs at boot. Some other packages are run from +the cron or xinetd daemons. + +You can also check the ipkg command arguments simply by typing "ipkg" at the +prompt. + + +DIVERSION SCRIPTS + +Diversion scripts are used to start packages, set variables or function +definitions at the time of the NSLU2 boot. The diversion mechanism allows you +to add to, or even replace the Linksys script functionality. They "divert" the +normal boot scripts to perform the needed action(s) and then can either "return +1" to continue normal factory script progress or "return 0" to abort the +diverted factory script. The diversion of startup scripts is done at the +lowest granularity, so you can just divert the rc.xinetd script and leave all +others unchanged. You are advised to use diversion scripts rather than editing +system files directly (as this will allow you to upgrade the Unslung firmware +in the future without having to make all of your changes again). + + - Note: If you do need to edit the system files directly, you can use the + "resling" script to save and load your modified system files. See + the NSLU2-Linux wiki at: + + http://www.nslu2-linux.org/wiki/Unslung/ReSling + +Diversion scripts go in the /unslung directory (you may have to create that +directory first). Note that after you have unslung to an external disk, then +the diversion scripts will be stored on that external disk (along with the rest +of the root filesystem). This means that recovering from an incorrect +diversion script is as simple as powering off, unplugging the disk, powering +on, hot-plugging the disk (note that the diversion scripts will only run if the +disk is attached at boot), and fix or remove the diversion script. + +You may divert as many or as few scripts as you like. Simply add the name of +the standard rc script into the appropriate /unslung directory 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. + +Also not that telnet is not enabled by default - there is an openssh package +and a dropbear package that either can replace telnet access with secure shell +access. + + - Dropbear package details on NSLU2-Linux wiki at: + + http://www.nslu2-linux.org/wiki/HowTo/UseDropBearForRemoteAccess + +The rationale behind not enabling telnet by default is ensure that an Unslung +NSLU2 has the same network footprint as a stock NSLU2 with Linksys firmware. +That said, if you want to enable telnet on boot, then install the xinetd +package (which enables telnet by default). + + +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: + +Reorganized 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. + +3.4: + +Replaced flashfs script with new resling script. + +3.5: + +Added code to reinitialize /etc/mtab on boot. + +3.6: + +Mounted /dev and /var jffs2 directories as /dev.state and /var.state so that +they can be used for persistent changes which are used to populate the ramdisks +on the next boot. + +3.7: + +Added "Pluggable Personalities" - now runs diversion scripts from both the +internal jffs2 area and also from an external drive attached at boot time. + +3.8: + +Enabled mounting of external drives earlier in the boot process, so that the +rc, rc.sysinit, and rc.1 scripts can be diverted by external diversion scripts +on an attached drive. + +3.9: + +Moved a number of -able kernel features (such as USB devfs support) into +-standard. + +3.10: + +Added support for unslung-start and unslung-stop diversion scripts, and package +shutdown scripts (K??foo). + +3.11: + +Added NFS kernel support (both client and server, and both V2 and V3 +protocols). + +3.12: + +Added basic maintenance mode support. If /.ramdisk exists in the jffs2 +filesystem, then the jffs2 filesystem is copied into a ramdisk on boot, and run +from there. This allows for updating firmware using the web interface. + +3.13: + +Added recovery mode support. If a viable root filesystem cannot be found, then +switchbox drops into a basic recovery shell, with a telnet daemon running as +192.168.1.77 with no password. This behavior can also be forced with a +/.recovery file in the jffs2 filesystem. + +3.14: + +Added web control of maintenance mode. You have to enable maintenance mode and +reboot before the firmware upgrade page allows you to enter a filename for the +new firmware. + +3.15: + +Added confirmation dialog boxes to the maintenance mode web control. + +3.16: + +First public release of 3.x firmware. + +3.17: + +Fixed syslog issue. Added FP patches. + +3.18: + +Fixed a number of minor issues regarding file permissions. +Added support for unslinging to the data partition. + +4.1: + +Split from 3.x stream to allow parallel development. + +4.2: + +New switchbox implementation with NFS and external USB disk root filesystem support. + +4.3: + +Enabled devfs. + +4.4: + +Changed slingbox program locations to match those of OpenSlug so that +we can use the same switchbox for both. + +4.5: + +Enabled RAID support modules and USB camera support modules. + +4.6: + +Merged unslung-standard and unslung-able, and created the oe feed for +downloadable kernel modules. Updated the unsling script to support +external rootfs. + +4.7: + +Enabled lots of traffic shaping modules. Enabled support for external +disks on sda1, sda2, sdb1 and sdb2. + +4.8: + +Made Unslung *not* create ramdisk for /var and /dev when you've +unslung to an external disk. Fixed nsswitch.conf. Updated the feed +locations. Added /dev/st devices for tape drive support. + +4.9: + +Updated the unslung script to give feedback on the rootfs transfer, +and to preserve an existing upkg database on the target disk. Added +more device nodes to support the new downloadable kernel modules. + +4.10: + +Made Unslung wait until quota checking is complete before running +package startup scripts. Simplified unsling to support disk1 and +disk2 (data partitions) only. + +4.11: + +Removed /tmp ramdisk if unslung to an external disk. Now clears /tmp +and /mnt/backup on each boot. + +4.12: + +Updated to the latest ipkg version. + +4.13: + +Added /dev/sdd and /dev/sde device nodes. +Added support for alternate rootfs under expert user control. + +4.14: + +Added audio support to the kernel. Increased the USB disk startup +wait to 10 seconds, and added the ability to divert rc.bootbin to the +startup scripts. + +4.15: + +Added /dev/dsp and updated the README and NOTES files. + +4.16: + +Added the /sbin/slingover script for migrating packages from the 3.x locations. + +4.17: + +Developer-only release booting straight from jffs2 instead of using switchbox. + +4.18: + +A number of /linuxrc fixes. Removed support for alternate rootfs under expert +user control (expert users can now just edit the /linuxrc in jffs2 directly). + +4.19: + +Removed all trace of switchbox from the firmware. This saves 128Kb of flash, +and about 1MB of RAM. + +4.20: + +First public release of 4.x firmware. + +5.1: + +Upgraded to Linksys firmware V2.3R29, but kept telnetd. + +5.2: + +Removed the ipkg link, and made unsling put it back on an external disk. + +5.3: + +Replaced maintenance mode with code to allow entry into RedBoot Upgrade Mode. + +5.4: + +Removed all maintenance mode support, and also removed support for rootfs on +jffs2 but packages on external disk (it's either all or nothing). +Removed unused /mnt/sda1, /mnt/sda2, /mnt/sdb1, and /mnt/sdb2. +Disabled the download process (superceded by upgrade mode). +Disabled the generation of the "ourtelnetrescue" user (too insecure). +Added disk auto-wait countdown to /linuxrc (courtesy of glc). + +5.5: + +First public release of 5.x firmware. + +6.0: + +First alpha release of 6.x Unslung firmware, based on Linksys V2.3R63 firmware. diff --git a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/README b/packages/nslu2-binary-only/unslung-rootfs-2.3r63/README new file mode 100644 index 0000000000..f4ffe4d29b --- /dev/null +++ b/packages/nslu2-binary-only/unslung-rootfs-2.3r63/README @@ -0,0 +1,284 @@ +Unslung-6.x Family Release README INSTALLATION + +You must follow the steps in this README *exactly*. Do not skip any steps, and +do not skip ahead thinking you know what you are doing and don't need to follow +instructions step by step. + +If at any time you have any questions concerning the installation or operation +of Unslung firmware, your first port of call should be the NSLU2-Linux wiki at: + + http://www.nslu2-linux.org + +If you are looking for further Unslung notes - including ipkg usage, diversion +script details, or ChangeLog information, please consult the associated NOTES +file. + +------------------------------------------------------------------------------- + +There are three parts to completing the installation of the Unslung firmware: + + 1 - PRE-INSTALLATION CONSIDERATIONS + 2 - FIRMWARE INSTALLATION DETAILS + 3 - UNSLINGING DETAILS + + +PRE-INSTALLATION CONSIDERATIONS + +1) You *must* test telnet Redboot access first before you flash the Unslung + firmware. Failure to do so will mean you get no sympathy at all if you + can't access Redboot when you need to recover from a bad flash. See + + http://www.nslu2-linux.org/wiki/HowTo/TelnetIntoRedBoot + + - Redboot is the bootloader that runs when the device is first started, + loading things into memory and starting Linux. By testing your + ability to telnet into Redboot, you are ensuring that if you injure + your NSLU2 with a bad flash you should be able to follow the "How + To Recover From A Bad Flash" instructions at + + http://www.nslu2-linux.org/wiki/HowTo/RecoverFromABadFlash + +2) If you want to install any packages, then you must have an external disk. + It is possible to make changes to the root filesystem in the internal + flash storage, but the space is very limited. In fact, just running + "ipkg update" on an NSLU2 which does not have an external disk attached + will most likely render the NSLU2 unusable due to filling up the flash (if + this happens then you will need to follow the recovery instructions in + the previous step). So unless you are an expert, then use an external + disk. + +3) The external disk that you use as the target for package installation must + be (or have previously been) formatted by the NSLU2. It is possible to + upgrade from all previous Unslung versions without reformatting your disk. + The unsling script will not touch anything in /unslung or /opt on your + disk, so make sure all your file modifications are in those directories, + as you were warned in the README file in all previous Unslung versions :-) + +4) If you want to use a flash disk as the target for package installation, + ensure that it is at least 256MB, plugged into port 1, and formatted + via the Linksys web interface. + +5) Please verify that any disks you are going to connect to the NSLU2 are + recognized and working properly *before* updating your firmware (including + any shares and data you had previously stored.) If not, DO NOT CONTINUE. + You may want to check out "How To Troubleshoot A Drive Missing Condition" + at: + + http://www.nslu2-linux.org/wiki/HowTo/TroubleshootADriveMissingCondition + + - The only exception to this, of course, are those enclosures that the + stock firmware does not support, but the Unslung firmware does + support. + +6) If you are upgrading your firmware, you should make a configuration backup + via the Linksys web interface. The configuration backup can be found + under "Administration", "Advanced", and then "Backup." The top section of + that webpage is titled "Config Backup" and "Download" should be used to + save your NSLU2 Users, Groups and Shares setup to a disk file. + + +FIRMWARE INSTALLATION DETAILS + +1) Shutdown the NSLU2, and remove any disks that you may have plugged into the + NSLU2. Power back up the NSLU2. + + - Firmware upgrades must always be performed with *no* hard disks or flash + disks attached. This CANNOT be emphasized enough. Are you sure you + unplugged the disks before powering up? If so, you may continue. + +2) Access the Web interface. Note that you should use the username "admin" and + password "admin" for the web interface at this point (as no disks are + attached, the default username and password is the only way to access the + Management web pages). + + 2-a) If you are installing Unslung 6.x onto an NSLU2 unit with Linksys + standard firmware *or* Unslung version 1.x or version 2.x already + installed, flash unslung-6.x.bin as you normally would flash new + firmware (using the web interface "Upgrade Firmware" page). + + 2-b) If you are installing Unslung 6.x onto an NSLU2 unit with Unslung + version 3.x already installed, you must put the NSLU2 into + maintenance mode before you can use the web interface to flash a new + version. Just click the "Enter Maintenance Mode" link on the web + interface "Upgrade Firmware" page, wait for the NSLU2 to reboot, and + then flash the new firmware in the normal manner (using the web + interface "Upgrade Firmware" page). + + 2-c) If you are installing Unslung 6.x onto an NSLU2 unit with Unslung + version 4.x already installed, you must put the NSLU2 into RedBoot + Upgrade Mode before you can upload new firmware. Note that Unslung + version 4.x has an "Enter Maintenance Mode" link on the web interface + "Upgrade Firmware" page, but it does not work, so you will need to + use the instructions at + + http://www.nslu2-linux.org/wiki/HowTo/TelnetIntoRedBoot + + to access the RedBoot command line, and then type "upgrade" to put + the NSLU2 into RedBoot Upgrade Mode. Then you will need to use the + Linux UpSlug tool or the Windows SerComm Upgrade tool to upload the + new firmware. + + 2-d) If you are installing Unslung 6.x onto an NSLU2 unit with version 5.x + or version 6.x already installed, you must first put the NSLU2 into + RedBoot Upgrade Mode. Just click the "Enter Upgrade Mode" link on the + web interface "Upgrade Firmware" page, wait for the NSLU2 to reboot, + and for the Ready/Status LED to begin flashing red and green, and then + use either the Linux UpSlug tool or the Windows SerComm Upgrade tool + to upload the new firmware. + + - During firmware flashing, the top LED - Ready/Status - flashes red and + green (approximately 5 minutes, but can be much longer). + + - The NSLU2 will reboot after the flashing is complete. + +3) Shutdown the NSLU2 (again), attach disk(s), and power it back up. + +4) Verify your NSLU2 is working normally again at this point in the web + interface. In particular, you should ensure that all your disks are still + recognized as they were before you updated the firmware (including any + shares and data you had previously stored.) If not, DO NOT CONTINUE. + You may want to check out "How To Troubleshoot A Drive Missing Condition" + at: + + http://www.nslu2-linux.org/wiki/HowTo/TroubleshootADriveMissingCondition + + - If you are not "unslinging", you can stop at this point. *HOWEVER!*, + the only reason for not unslinging would be in the case of a re-flash + of the SAME firmware. Even if this is a point firmware upgrade, you + will need to unsling. + + ***** If you do not choose to do the unslinging procedure described below, + DO NOT install packages unless you are SURE you know what you are + doing! "Bricking" your NSLU2 by not unslinging and then running ipkg + is not just a possibility, it is a certainty. + +5) Shutdown the NSLU2 and unplug *ALL* attached disks. + + - You must NOT have any disk plugged into the NSLU2 when you reboot to + perform the next part of installation - the "Unslinging". + + +'UNSLINGING' DETAILS + +"Unslinging" is the process of copying the root filesystem of your NSLU2 onto +an external disk, and configuring that external disk for installation of +packages. Basically it's a script (stored in /sbin/unsling) which copies all +the files from the internal jffs2 filesystem onto the external disk and tells +the internal firmware to load the root filesystem from the external disk when +booting in the future. + +To run the unsling-script you have to be logged in as root (with a telnet +session). + +NOTE: There are two root-passwords. One is saved in a internal file called +/usr/local/passwd (we know this one - it's "uNSLUng" and used when you boot +without a attached harddisk) the other is stored in a external file called +/share/hdd/conf/passwd (we don't know this one - it's used when you boot with a +external harddisk attached). Later in the process you can change both of +them. That means: Everytime you boot WITHOUT a attached harddisk you gain +root-access with the "uNSLUng" password. If you boot WITH an attached harddisk, +you won't have access until you change the file /share/hdd/conf/passwd. + +1) Power up the NSLU2 without any disks connected. + + - This only has to be done when you update the firmware. + + ***** To reiterate, you should not have a disk plugged in at this stage. + If you powered up your NSLU2 with a disk attached, shutdown the + NSLU2, unplug the disks, and power up again. + +2) Enable telnet by going to "http://192.168.1.77/Management/telnet.cgi", and + press the enable button. + + - If you had previously changed the IP address of your NSLU2 from + 192.168.1.77 to something else, then you should use that new IP + address to enable telnet. Again note that you should use the username + "admin" and password "admin" for the web interface at this point (as + no disks are attached, the default username and password is the only + way to access the Management web pages). + + - Make sure you have **** NO DISKS ATTACHED AT THIS TIME **** + + - If you plug a disk in before you complete the telnet connection, then + the NSLU2 will pick up the Linksys password from the disk, and you + will not be able to telnet into it. So don't have any disks attached + at this point. + + - Make sure you have **** NO DISKS ATTACHED AT THIS TIME **** + +3) OK, now that you don't have any disks attached, you can proceed and telnet + into the NSLU2 using the username root and password uNSLUng. + +4) Identify which drive you wish you "unsling", and plug it in. Wait a minute + or two while the disk is mounted. Check the web interface to make sure + that the disk has been recognised by the Linksys software. + + - 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 recognized in the + web interface. + +5) In the telnet session, run "/sbin/unsling disk1" or "/sbin/unsling disk2" + (depending upon whether you want to unsling to a disk connected to the + Disk1 port or the Disk2 port). + + - Once you "unsling" to an external disk on a particular port (Disk 1 or + Disk 2), it is important that you keep that disk continually plugged + into that same port whenever the NSLU2 is turned on. + + ***** 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. Also note that simply editing the /etc/passwd file + is not enough to permanently change a password. See: + + http://www.nslu2-linux.org/wiki/HowTo/ChangePasswordsFromTheCommandLine + + NOTE: There are two root-passwords. One is saved in a internal + file called /usr/local/passwd (we know this one - it's "uNSLUng" + and used when you boot without a attached harddisk) the other is + stored in a external file called /share/hdd/conf/passwd (we don't + know this one - it's used when you boot with a external harddisk + attached). That means: Everytime you boot WITHOUT a attached harddisk + you gain root-access with the "uNSLUng" password. If you boot + WITH an attached harddisk, you won't have access until you change + the file /share/hdd/conf/passwd. So you should change this file + as soon as you unsling to an external disk, before you exit the + telnet session that you are using to unsling to the disk. + +6) If you wish to migrate your packages from the old Unslung 3.x location in + the /share/hdd/conf (disk1) or /share/flash/conf (disk2) partitions to the + new Unslung 4.x, 5.x and 6.x location on the data partition, then run: + "/sbin/slingover disk1" (if your packages were previously on disk1 and you + ran "/sbin/unsling disk1" in step 5) or "/sbin/slingover disk2" (if your + packages were previously on disk2 and you ran "/sbin/unsling disk2" in + step 5). + + - If your packages were not stored in /share/hdd/conf or /share/flash/conf + (e.g. you had previously moved your packages from the conf partition + to the data partition), then all bets are off and you will need to + read the /sbin/slingover script and perform the appropriate steps + manually. + +7) Reboot. + + ***** DO NOT RUN ipkg BEFORE YOU REBOOT AND CONFIRM EXTERNAL ROOTFS ***** + + - If you were to run ipkg when the root filesystem is loaded from the + internal jffs2 filesystem, then you would fill the flash and cause + your NSLU2 to no longer boot and require reflashing to recover. + +8) Wait for the NSLU2 to boot, telnet in, and confirm that the root filesystem + is being loaded from the external disk. + +***** Congratulations, you're now Unslung! ***** + +Make sure you add an entry to the "The Unslung 6.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 using diversion scripts. + +Read the NOTES file to expand the capabilities of your Unslung NSLU2! + +Enjoy! + diff --git a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/linuxrc b/packages/nslu2-binary-only/unslung-rootfs-2.3r63/linuxrc new file mode 100755 index 0000000000..cc53d447c3 --- /dev/null +++ b/packages/nslu2-binary-only/unslung-rootfs-2.3r63/linuxrc @@ -0,0 +1,70 @@ +#!/bin/sh + +# **** DO NOT EVEN THINK OF EDITING OR REMOVING THIS FILE **** +# **** UNLESS YOU REALLY KNOW *EXACTLY* WHAT YOU ARE DOING. **** + + +# Perform prepatory tasks, and determine whether an alternate rootfs is viable. + +/bin/mount -t proc proc /proc + +echo "1" > /proc/sys/kernel/panic + +/bin/echo "Sleeping while waiting for disk..." +cnt=20 +while [ $cnt -gt 0 ] ; do + echo -ne "\r$cnt " + sleep 1 + [ -f /proc/hdd_sdb ] && cnt=0 + [ -f /proc/hdd_sda ] && cnt=0 + cnt=`expr $cnt - 1` +done +echo + +sleep 5 + +mounted= + +for prefroot in sdb1 sda1 ; do + if [ -z "$mounted" ] ; then + if /bin/mount -rt ext3 /dev/$prefroot /mnt ; then + if [ -x /mnt/bin/init ] ; then + /bin/echo "Root filesystem will be mounted from /dev/$prefroot ..." + mounted=/mnt + else + /bin/umount /mnt + /bin/echo "Can't find valid rootfs on /dev/$prefroot ..." + fi + fi + fi +done + +if [ -z "$mounted" ] ; then + /bin/echo "Can't find valid rootfs, using ramdisk ..." + mounted= +fi + +/bin/umount /proc + +# Pivot to the desired rootfs and run the initial executable. + +if [ -n "$mounted" ] ; then + + cd $mounted + + /bin/echo "Pivoting to external rootfs ..." + /sbin/pivot_root . initrd + + exec /usr/sbin/chroot . /bin/init < /dev/console 1> /dev/console 2> /dev/console + +else + + exec /bin/init + +fi + +/bin/echo "Can't pivot to external rootfs, using ramdisk ..." +exec /bin/init + +# Last-resort fall-back - this should never be reached. +/bin/sh diff --git a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/rc.modules-diversion.patch b/packages/nslu2-binary-only/unslung-rootfs-2.3r63/rc.modules-diversion.patch new file mode 100644 index 0000000000..fa7532401d --- /dev/null +++ b/packages/nslu2-binary-only/unslung-rootfs-2.3r63/rc.modules-diversion.patch @@ -0,0 +1,8 @@ +--- nslu2-linksys-ramdisk-2.3r25/etc/rc.d/rc.modules.orig 2004-07-27 23:37:55.000000000 -0400 ++++ nslu2-linksys-ramdisk-2.3r25/etc/rc.d/rc.modules 2004-09-01 21:57:34.000000000 -0400 +@@ -1,2 +1,5 @@ ++ ++if ( [ -f /unslung/rc.modules ] && . /unslung/rc.modules ) ; then return 0 ; fi ++ + insmod rbuttons &>/dev/null + insmod x1226-rtc &>/dev/null diff --git a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/security-fixes.patch b/packages/nslu2-binary-only/unslung-rootfs-2.3r63/security-fixes.patch new file mode 100644 index 0000000000..8517e7d06b --- /dev/null +++ b/packages/nslu2-binary-only/unslung-rootfs-2.3r63/security-fixes.patch @@ -0,0 +1,11 @@ +--- nslu2-linksys-ramdisk-2.3r29/etc/rc.d/rc.1.orig 2005-06-12 21:43:26.940523728 +0930 ++++ nslu2-linksys-ramdisk-2.3r29/etc/rc.d/rc.1 2005-06-12 21:43:36.910008136 +0930 +@@ -19,7 +19,7 @@ + #/bin/echo "Generating telnet password:"; /usr/sbin/TelnetPassword; check_status + /bin/echo "Starting WEB Server:"; . /etc/rc.d/rc.thttpd;check_status + /bin/echo "Starting samba:"; . /etc/rc.d/rc.samba +-/bin/echo "Starting download:"; /usr/sbin/download ++#/bin/echo "Starting download:"; /usr/sbin/download + /bin/echo "Starting INET Server:"; . /etc/rc.d/rc.xinetd; check_status + if ( [ ! -f /.sda1root ] && [ ! -f /.sda2root ] && [ ! -f /.sdb1root ] && [ ! -f /.sdb2root ] ) ; then + /bin/echo "Creating ramfs for /tmp:"; mount -t ramfs none /tmp -o maxsize=512 diff --git a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/unsling b/packages/nslu2-binary-only/unslung-rootfs-2.3r63/unsling new file mode 100755 index 0000000000..ce2e528c92 --- /dev/null +++ b/packages/nslu2-binary-only/unslung-rootfs-2.3r63/unsling @@ -0,0 +1,73 @@ +#!/bin/sh + +usage="Usage: $0 disk1|disk2" + +# Set target disk + +if [ $# -gt 1 ] ; then + echo $usage + exit 1 +fi + +if [ $# -eq 1 ] ; then + if [ "$1" = "disk1" ] ; then + targ=/share/hdd/data + flag=.sda1root + elif [ "$1" = "disk2" ] ; then + targ=/share/flash/data + flag=.sdb1root + else + echo $usage + exit 1 + fi +else + echo $usage + exit 1 +fi + +# Check it's a real mount point + +if grep $targ /proc/mounts >/dev/null 2>&1 ; then + echo "Target disk is $targ" +else + echo "Error: $targ is not a mounted disk" + exit 1 +fi + +# Start at the root directory + +cd / + +# Save the existing ipkg database. + +rm -rf $targ/usr/lib/ipkg.old +if [ -f $targ/usr/lib/ipkg/status ] ; then + mv $targ/usr/lib/ipkg $targ/usr/lib/ipkg.old +fi + +# Copy the complete rootfs to the target. + +echo "Copying the complete rootfs from / to $targ." +/usr/bin/find / -print0 -mount | /usr/bin/cpio -p -0 -d -m -u $targ +rm -rf $targ/dev ; mv $targ/dev.state $targ/dev +rm -rf $targ/var ; mv $targ/var.state $targ/var + +# Copy over the existing ipkg database. + +if [ -f $targ/usr/lib/ipkg.old/status ] ; then + echo "Preserving existing ipkg database on target disk." + ( cd $targ/usr/lib/ipkg.old ; tar cf - . ) | ( cd $targ/usr/lib/ipkg ; tar xf - ) +fi + +echo "Linking /usr/bin/ipkg executable on target disk." +rm -f $targ/usr/bin/ipkg ; ln -s /usr/bin/ipkg-cl $targ/usr/bin/ipkg + +# Create the boot flag file. + +rm -f /.sd??root $targ/.sd??root + +echo "Creating /$flag to direct switchbox to boot from $targ." +echo > /$flag +echo > $targ/$flag + +exit 0 diff --git a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/upgrade.htm b/packages/nslu2-binary-only/unslung-rootfs-2.3r63/upgrade.htm new file mode 100644 index 0000000000..88644e305e --- /dev/null +++ b/packages/nslu2-binary-only/unslung-rootfs-2.3r63/upgrade.htm @@ -0,0 +1,129 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html><head><title>Upgrade Firmware</title> +<LINK REL="stylesheet" TYPE="text/css" HREF="../ig_n.css"> +<meta HTTP-EQUIV="Expires" CONTENT="Mon, 06 Jan 1990 00:00:01 GMT"> +<script language="JavaScript" type="text/javascript" src="../stdlib.js"></script> +<script language="JavaScript" type="text/javascript" src="../message.js"></script> +<script language="JavaScript" type="text/javascript"> +<!-- Start Script + +function checkUpgrade() +{ + var cf=document.upgrade; + + if(!confirm("Your NSLU2 will now enter RedBoot Upgrade Mode\n(Ready/Status LED will be flashing red and green).\nYou will require either the Linux UpSlug tool or the\nWindows SerComm Upgrade tool to upload firmware.\nNote that you will not be able to access your NSLU2\nuntil you have successfully uploaded new firmware.\nClick OK to continue, Cancel to abort.")) + return; + cf.submit(); + return; +} + +// end script --> +</script> +</head> + +<body bgcolor="white" onLoad="showMsg()" marginheight="0" marginwidth="0" leftmargin="0" topmargin="0"> +<FORM name="upgrade" method="post" action="upgrade.cgi" ENCTYPE="multipart/form-data"> +<DIV align="center"> +<table border="0" cellpadding="0" cellspacing="0" width="750" align="center"> +<tr> + <td width="165"><img border="0" src="../linksys.gif" width="165" height="57"></td> + <td width="585" colspan="2" bgcolor="#6666CC" valign="bottom" align="right"><span class="fwversion">Firmware + Version: @ds_sw_version#</span> </td> +</tr> + +<tr> + <td colspan="3" height="11" bgcolor="black"><img src="../tborder.gif" width="750" height="11" alt="" border="0"></td> +</tr> + +<TR> + <TD width="165" bgcolor="black" align="center"><h3>Upgrade</h3></td> + <td width="585" colspan="2" bgcolor="#6666cc" valign="top"> + <table border="0" cellspacing="0" cellpadding="0" width="100%"> + <tr> + <td align="right" class="pname" height="25" colspan="5">Network Storage Link for USB 2.0 Disks </td> + <td align="center" width="100" class="mname">NSLU2</td> + </tr> + <tr bgcolor="black"> + <td colspan="6" height="3"><img src="TRANSPAR.GIF" width="1" height="3" alt="" border="0"></td> + </tr> + <tr> + <td align="center" height="1" background="../UI_06.gif"><img src="TRANSPAR.GIF" width="1" height="8" alt="" border="0"></td> + <td align="center" height="1" background="../UI_06.gif"><img src="TRANSPAR.GIF" width="1" height="1" alt="" border="0"></td> + <td align="center" height="1"><img src="TRANSPAR.GIF" width="1" height="1" alt="" border="0"></td> + <td align="center" height="1" background="../UI_06.gif"><img src="TRANSPAR.GIF" width="1" height="1" alt="" border="0"></td> + <td align="center" height="1" background="../UI_06.gif"><img src="TRANSPAR.GIF" width="1" height="1" alt="" border="0"></td> + <td align="center" height="1" background="../UI_06.gif"><img src="TRANSPAR.GIF" width="1" height="1" alt="" border="0"></td> + </tr> + + <tr> + <td align="center" height="25" bgcolor="black" width="100"><a href="/index.cgi" class="mainmenu">Home</a></td> + <td align="center" height="25" bgcolor="black" width="100"><a href="/user_pass.cgi" class="mainmenu">User<br> password</a></td> + <td align="center" height="25" width="100"><span class="mainmenu">Administration</span></td> + <td align="center" height="25" bgcolor="black" width="100"><a href="/userman_fs.htm" class="mainmenu">User Guide</a></td> + <td align="center" height="25" bgcolor="black" width="120"><a href="http://www.linksys.com" class="mainmenu" target="new_win">Linksys Web</a></td> + <td align="center" height="25" bgcolor="black"> </td> + </tr> + <tr> + <td height="25" width="130"> </td> + <td height="25" colspan="5"> + <a href="/Management/file_sharing.cgi?next_file=groups.htm" class="submenu">Groups</a> <span class="divider"> | </span> + <a href="/Management/file_sharing.cgi?next_file=shares.htm" class="submenu">Shares</a> <span class="divider"> | </span> + <a href="/Management/sh_backup.cgi?next_file=backup.htm" class="submenu">Backup</a> <span class="divider"> | </span> + <a href="/Management/disk_fs.htm" class="submenu">Disk</a> <span class="divider"> | </span> + <span class="tabtitle">Upgrade</span> <span class="divider"> | </span> + <a href="/Management/setup.cgi?next_file=lan.htm" class="submenu">Setup</a></td> + </tr> + </table> + + </td> +</tr> + +<tr> + <td colspan="3" bgcolor="#e7e7e7" height="6"><img src="TRANSPAR.GIF" width="1" height="6" alt="" border="0"></td> +</tr> + + +<tr> + <th width="165" height="24">Current Firmware </th> + <td width="409"><img src="TRANSPAR.GIF" width="409" height="6" alt="" border="0"></td> + <td width="176" bgcolor="#6666cc"><img border="0" src="../UI_05.gif" height="24" width="15"></td> +</tr> +<tr> + <td bgcolor="#e7e7e7" align="right"><img border="0" src="../UI_04.gif" width="8" hspace="0" vspace="0" height="80"></td> + <td width="409"><div class="std"><table border=0 cellspacing=0 cellpadding=4> + <tr> + <td nowrap>Current Firmware Version:</td> + <td nowrap>@ds_sw_version# </td></tr> + <tr><td> + <div align="left"><a href="http://www.linksys.com" target="new_win"><img src="button_checkupdate.jpg" width="107" height="20" alt="" border="0"></a></div> + </td> + </tr> + </table></div> </td> + <td width="176" bgcolor="#6666cc"><img border="0" src="../UI_05.gif" height="80" width="15"></td> +</tr> + +<tr> + <td bgcolor="#e7e7e7" height="30" align="right"><img border="0" src="../UI_04.gif" width="8" hspace="0" vspace="0" height="30"></td> + <td height="30"> </td> + <td rowspan="2" valign="bottom" bgcolor="#6666cc" height="64"><img src="../cisco.gif" hspace="0" vspace="0"></td> +</tr> + +<tr> + <td bgcolor="black" height="34"> </td> + <td bgcolor="#6666cc" align="right" height="33" valign="middle"><a class="textbutton" href="javascript:checkUpgrade();" style="{padding:3px}"> + Enter Upgrade Mode </a> <a class="textbutton" href="javascript:openHelpWin('help/util_upg.htm')" style="{padding:3px}"> + Help </a> </td> +</tr> + + +</table> +</div> +<input type="Hidden" name="message" value="@message#"> +<input type="Hidden" name="this_file" value="upgrade.htm"> +<input type="Hidden" name="todo" value="@todo#"> +<input type="Hidden" name="finish" value="@finish#"> +</form> + +</body> + +</html> diff --git a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/wait-for-quotacheck.patch b/packages/nslu2-binary-only/unslung-rootfs-2.3r63/wait-for-quotacheck.patch new file mode 100644 index 0000000000..71c8e9caec --- /dev/null +++ b/packages/nslu2-binary-only/unslung-rootfs-2.3r63/wait-for-quotacheck.patch @@ -0,0 +1,10 @@ +--- nslu2-linksys-ramdisk-2.3r25/etc/rc.d/rc.local~ 2005-04-03 10:14:51.000000000 +0930 ++++ nslu2-linksys-ramdisk-2.3r25/etc/rc.d/rc.local 2005-04-03 10:14:59.000000000 +0930 +@@ -14,6 +14,6 @@ + /bin/chmod 775 /share 2>/dev/null + /bin/chown admin.everyone /share/hdd/ 2>/dev/null + /bin/chown admin.everyone /share 2>/dev/null +-/etc/rc.d/rc.quota &>/dev/null ++/etc/rc.d/rc.quota 2>/dev/null + /usr/sbin/init_media 2>/dev/null + /bin/echo "$HOSTNAME: boot complete!"; check_status diff --git a/packages/nslu2-binary-only/unslung-rootfs_2.3r63.bb b/packages/nslu2-binary-only/unslung-rootfs_2.3r63.bb new file mode 100644 index 0000000000..5b22e3cbd3 --- /dev/null +++ b/packages/nslu2-binary-only/unslung-rootfs_2.3r63.bb @@ -0,0 +1,106 @@ +DEFAULT_PREFERENCE_unslung = "-1" + +SECTION = "base" + +PR = "r0" + +DEPENDS = "nslu2-linksys-libs" + +SRC_URI = "http://www.you-need-to-create-this-yourself.com/nslu2-linksys-ramdisk-2.3r63.tar.bz2 \ + file://README \ + file://NOTES \ + file://unsling \ + file://resling \ + file://slingover \ + file://linuxrc \ + file://nsswitch.conf \ + file://rc.unslung-start \ + file://rc.unslung-stop \ + file://rc-diversion.patch;patch=1 \ + file://rc.1-diversion.patch;patch=1 \ + file://rc.crond-diversion.patch;patch=1 \ + file://rc.halt-diversion.patch;patch=1 \ + file://rc.local-diversion.patch;patch=1 \ + file://rc.modules-diversion.patch;patch=1 \ + file://rc.network-diversion.patch;patch=1 \ + file://rc.quickset-diversion.patch;patch=1 \ + file://rc.quota-diversion.patch;patch=1 \ + file://rc.reboot-diversion.patch;patch=1 \ + file://rc.reset_usrgrpshare-diversion.patch;patch=1 \ + file://rc.rstimezone-diversion.patch;patch=1 \ + file://rc.samba-diversion.patch;patch=1 \ + file://rc.sysinit-diversion.patch;patch=1 \ + file://rc.thttpd-diversion.patch;patch=1 \ + file://rc.xinetd-diversion.patch;patch=1 \ + file://root-passwd.patch;patch=1 \ + file://tmp-handling.patch;patch=1 \ + file://create-ramdisks.patch;patch=1 \ + file://remount-noatime.patch;patch=1 \ + file://initialise-mtab.patch;patch=1 \ + file://wait-for-quotacheck.patch;patch=1 \ + file://mount_usbdevfs.patch;patch=1 \ + file://security-fixes.patch;patch=1 \ + file://upgrade.htm file://upgrade.cgi \ + file://rc.bootbin \ + " + +S = "${WORKDIR}/nslu2-linksys-ramdisk-2.3r63" + +python () { + # Don't build unslung images unless we're targeting an nslu2 + mach = bb.data.getVar("MACHINE", d, 1) + dist = bb.data.getVar("DISTRO", d, 1) + if mach != 'nslu2' or dist != 'unslung': + raise bb.parse.SkipPackage("Unslung only builds for the Linksys NSLU2") +} + +do_compile () { + echo "V2.3R63-uNSLUng-${DISTRO_VERSION}" > ${S}/.unslung + + sed -i -e s/@version#/@version#-uNSLUng-${DISTRO_VERSION}/ ${S}/home/httpd/html/home.htm + sed -i -e 's|> <|><a href="Unslung" class="mainmenu" target="_top">Unslung Doco</a><|' \ + ${S}/home/httpd/html/manhead.htm + + install -m 755 ${WORKDIR}/linuxrc ${S}/linuxrc + + # Allow rc.bootbin to be diverted. + mv ${S}/etc/rc.d/rc.bootbin ${S}/sbin/rc.bootbin + install -m 755 ${WORKDIR}/rc.bootbin ${S}/etc/rc.d/rc.bootbin + + install -d ${S}/initrd + + install -m 755 ${WORKDIR}/unsling ${S}/sbin/unsling + install -m 755 ${WORKDIR}/resling ${S}/sbin/resling + install -m 755 ${WORKDIR}/slingover ${S}/sbin/slingover + install -m 755 ${WORKDIR}/rc.unslung-start ${S}/etc/rc.d/rc.unslung-start + install -m 755 ${WORKDIR}/rc.unslung-stop ${S}/etc/rc.d/rc.unslung-stop + + install -m 644 ${WORKDIR}/nsswitch.conf ${S}/etc/nsswitch.conf + + install -d ${S}/opt/doc + install -m 755 ${WORKDIR}/README ${S}/opt/doc/README + install -m 755 ${WORKDIR}/NOTES ${S}/opt/doc/NOTES + ln -s /opt/doc ${S}/home/httpd/html/Unslung + + # Add the diversion script directory + install -d ${S}/unslung + + # Remove the libraries, because they are in nslu2-linksys-libs now + rm -rf ${S}/lib + + # Install upgrade mode files + mv ${S}/home/httpd/html/Management/upgrade.htm ${S}/home/httpd/html/Management/upgrade-old.htm + mv ${S}/home/httpd/html/Management/upgrade.cgi ${S}/home/httpd/html/Management/upgrade-old.cgi + install -m 644 ${WORKDIR}/upgrade.htm ${S}/home/httpd/html/Management + install -m 755 ${WORKDIR}/upgrade.cgi ${S}/home/httpd/html/Management + sed -i -e s/@ds_sw_version#/@ds_sw_version#-uNSLUng-${DISTRO_VERSION}/ \ + ${S}/home/httpd/html/Management/upgrade.htm +} + +do_install () { + ( cd ${S} ; tar -c -v -f - --exclude '.pc' . ) | ( cd ${D} ; tar xvf - ) +} + +PACKAGES = "${PN}" +FILES_${PN} = "/" +RDEPENDS_${PN} = "nslu2-linksys-libs" |