Merge bk://nslu2-linux@nslu2-linux.bkbits.net/openembedded
authorRod Whitby <rod@whitby.id.au>
Sat, 25 Dec 2004 01:22:09 +0000 (01:22 +0000)
committerRod Whitby <rod@whitby.id.au>
Sat, 25 Dec 2004 01:22:09 +0000 (01:22 +0000)
into home.(none):/home/slug/openembedded

2004/12/25 11:51:29+10:30 (none)!rwhitby
Unslung 3.14-alpha with web control of maintenance mode courtesy of glc

BKrev: 41ccc0c1l52K2v27wIv8njIkGSeejQ

conf/distro/unslung.conf
packages/nslu2-binary-only/nslu2-switchbox-firmware.bb
packages/nslu2-binary-only/unslung-rootfs-2.3r25/README
packages/nslu2-binary-only/unslung-rootfs-2.3r25/maintmode.cgi [new file with mode: 0644]
packages/nslu2-binary-only/unslung-rootfs-2.3r25/rc-diversion.patch
packages/nslu2-binary-only/unslung-rootfs-2.3r25/upgrade-maint.htm [new file with mode: 0644]
packages/nslu2-binary-only/unslung-rootfs-2.3r25/upgrade-nomaint.htm [new file with mode: 0644]
packages/nslu2-binary-only/unslung-standard-rootfs_2.3r25.bb

index a9cb62c..8108b2b 100644 (file)
@@ -17,6 +17,9 @@ EXTRA_IMAGECMD_jffs2 = "--pad --big-endian --eraseblock=0x20000 -D ${UNSLUNG_DEV
 # IMAGE_FSTYPES = "ext2.gz jffs2"
 # EXTRA_IMAGECMD_ext2.gz = "-f ${UNSLUNG_DEVICE_TABLE}"
 
+EXTRA_IMAGEDEPENDS += 'unslung-switchbox-payload'
+NSLU2_SLUGIMAGE_ARGS = -l payload.tar.gz
+
 UNSLUNG_EXTRA_PACKAGES += 
 
 UNSLUNG_EXTRA_DEPENDS += 
index ad213e7..2c333c7 100644 (file)
@@ -2,9 +2,9 @@ SECTION = "base"
 DEPENDS = ""
 PACKAGES = ""
 INHIBIT_DEFAULT_DEPS = "1"
-PR = "r6"
+PR = "r7"
 
-SRC_URI = "http://nslu.sf.net/downloads/switchbox-3.5.tar.gz"
+SRC_URI = "http://nslu.sf.net/downloads/switchbox-3.6.tar.gz"
 S = "${WORKDIR}"
 
 python () {
index e69de29..0e42d54 100644 (file)
@@ -0,0 +1,312 @@
+UNSLUNG-3.x family release README
+
+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 (almost) all 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 3.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) Because you can now make changes to the root filesystem in the
+   internal flash storage, you no longer need to have an external
+   disk to use the Unslung firmware (except if you want to install
+   more than what can fit in the meagre spare space in the internal
+   flash storage).
+
+3) If you do want to use an external disk as the target for package
+   installation, then 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 or Unslung 2.x to Unslung 3.x 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
+   Unslung 1.x and Unslung 2.x :-)
+INSTALLATION DETAILS
+
+1) Make sure your NSLU2 is working properly, and remove any disks that
+   you may have plugged into the NSLU2 (upgrades must always be
+   performed with *no* hard disks or flash disks attached).
+
+2) If you are installing Unslung 3.x onto an NSLU2 unit which has the
+   standard Linksys firmware or Unslung versions 1.x or 2.x installed,
+   then just flash unslung-standard-3.x.img as you normally would
+   flash new firmware (using the web interface Upgrade Firmware page).
+
+3) If you are installing Unslung 3.x onto an NSLU2 unit which already
+   has Unslung version 3.x installed, then 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 you can flash the new firmware in the normal manner.
+
+4) Verify your NSLU2 is working normally at this point.
+
+5) 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,
+   and because Unslung 3.x now runs completely from the internal flash
+   memory, it is no longer necessary to "unsling" to an external disk
+   unless you wish to store downloadable packages on that disk - which
+   you will probably want to do, because the internal flash memory
+   only has enough spare room to one or two very small packages.
+
+   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.  Note that 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.  Also 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) 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 ****
+   (Sorry for the capitals, this step seems to trip up some people.)
+
+   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.
+
+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". Note that starting with
+   Unslung 3.x, the external disk is no longer used for the root
+   filesystem, so only a few documentation files will be copied to
+   the "conf" partition (not the "data" partition).  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.
+
+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!
+
+Make sure you add an entry to the "The Unslung 3.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 external disk (or even
+in the internal flash memory) using diversion scripts.
+
+If you "unsling" an external disk, then 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 "conf" partition on the
+external disk.
+
+If you are experienced with the Linux operating system, then you can
+also make changes directly to the root filesystem, and these changes
+are persistent across reboots.
+
+You are advised to use diversion scripts (see below) on an external
+disk to modify the behaviour of the NSLU2 rather than editing system
+files directly (as this will allow you to upgrade the Unslung firmware
+in the future without having to make all your changes again).
+
+If you do need to edit system files directly, then you can use the
+"resling" script to save and load your modified system files.
+
+POST-INSTALLATION DETAILS
+
+Diversion scripts go into /unslung (which is normally a symbolic link
+to the unslung directory on the conf partition of an external disk).
+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 
+
+0) Note that you must have network connectivity to the package
+   repository at http://ipkg.nslu2-linux.org before proceeding.
+   You must also confirm that your DNS server address is set in the
+   web interface, or the NSLU2 will not be able to find the site.
+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.
+
+ADDITIONAL INFORMATION:
+
+1) The unsling firmware and associated scripts will never touch any
+   files under /unslung or /opt, so please store all your additional
+   files there.
+
+2) 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.
+
+3) The diversion mechanism allows you to add to, or replace, the Linksys
+   script functionality.
+
+4) 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 NSLU2 with Unslung firmware has the same network
+   footprint as the standard firmware.
+
+5) This simple diversion script will enable telnet on boot
+   
+    [ Store the following in /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
+
+6) 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.
+
+3.4:
+
+Replaced flashfs script with new resling script.
+
+3.5:
+
+Added code to reinitialise /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.
diff --git a/packages/nslu2-binary-only/unslung-rootfs-2.3r25/maintmode.cgi b/packages/nslu2-binary-only/unslung-rootfs-2.3r25/maintmode.cgi
new file mode 100644 (file)
index 0000000..e69de29
index e69de29..7ab6bbf 100644 (file)
@@ -0,0 +1,29 @@
+--- nslu2-linksys-ramdisk-2.3r25/etc/rc~       2004-07-27 23:37:55.000000000 -0400
++++ nslu2-linksys-ramdisk-2.3r25/etc/rc        2004-09-01 21:47:47.000000000 -0400
+@@ -1,4 +1,26 @@
+ ## 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 /
++
++if [ -f /.ramdisk ] ; then
++   echo "Root filesystem is running in maintenance mode ..."
++   ( cd /home/httpd/html/Management ; mv upgrade-maint.htm upgrade.htm )
++fi
++
++# Wait for the USB disks to be recognised.
++sleep 5
++
++if ( [ -f /proc/hd_conn ] ) ; then
++  /bin/mount -t ext3 /dev/sda2 /share/hdd/conf
++  /bin/rm -rf /mnt/sda2 ; /bin/ln -s /share/hdd/conf /mnt/sda2
++fi
++
++if ( [ -f /proc/hd2_conn ] ) ; then
++  /bin/mount -t ext3 /dev/sdb2 /share/flash/conf
++  /bin/rm -rf /mnt/sdb2 ; /bin/ln -s /share/flash/conf /mnt/sdb2
++fi
++
diff --git a/packages/nslu2-binary-only/unslung-rootfs-2.3r25/upgrade-maint.htm b/packages/nslu2-binary-only/unslung-rootfs-2.3r25/upgrade-maint.htm
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/nslu2-binary-only/unslung-rootfs-2.3r25/upgrade-nomaint.htm b/packages/nslu2-binary-only/unslung-rootfs-2.3r25/upgrade-nomaint.htm
new file mode 100644 (file)
index 0000000..e69de29
index 66bb81f..8934501 100644 (file)
@@ -1,8 +1,8 @@
 SECTION = "base"
 
-PR = "r34"
+PR = "r35"
 
-UNSLUNG_VERSION = "3.13-alpha"
+UNSLUNG_VERSION = "3.14-alpha"
 UNSLUNG_VARIANT ?= "standard"
 
 DEPENDS = "nslu2-linksys-libs"
@@ -37,6 +37,7 @@ SRC_URI = "http://nslu.sf.net/downloads/nslu2-linksys-ramdisk-2.3r25.tar.bz2 \
           file://remount-noatime.patch;patch=1 \
           file://initialise-mtab.patch;patch=1 \
           file://mount_usbdevfs.patch;patch=1 \
+          file://maintmode.cgi file://upgrade-maint.htm file://upgrade-nomaint.htm \
           "
 
 S = "${WORKDIR}/nslu2-linksys-ramdisk-2.3r25"
@@ -72,6 +73,19 @@ do_compile () {
 
        # Remove the libraries, because they are in nslu2-linksys-libs now
        rm -rf ${S}/lib
+
+       # Install maintenance mode files
+       install -m 755 ${WORKDIR}/maintmode.cgi ${S}/home/httpd/html/Management
+       install -m 644 ${WORKDIR}/upgrade-maint.htm ${S}/home/httpd/html/Management/upgrade-maint.htm
+       install -m 644 ${WORKDIR}/upgrade-nomaint.htm ${S}/home/httpd/html/Management/upgrade-nomaint.htm
+       install -m 644 ${WORKDIR}/upgrade-nomaint.htm ${S}/home/httpd/html/Management/upgrade.htm
+       sed -i -e s/@ds_sw_version#/@ds_sw_version#-uNSLUng-${UNSLUNG_VARIANT}-${UNSLUNG_VERSION}/ \
+               ${S}/home/httpd/html/Management/upgrade-maint.htm
+       sed -i -e s/@ds_sw_version#/@ds_sw_version#-uNSLUng-${UNSLUNG_VARIANT}-${UNSLUNG_VERSION}/ \
+               ${S}/home/httpd/html/Management/upgrade-nomaint.htm
+       sed -i -e s/@ds_sw_version#/@ds_sw_version#-uNSLUng-${UNSLUNG_VARIANT}-${UNSLUNG_VERSION}/ \
+               ${S}/home/httpd/html/Management/upgrade.htm
+
 }
 
 do_install () {