diff options
Diffstat (limited to 'packages/nslu2-binary-only/unslung-rootfs-2.3r25')
3 files changed, 228 insertions, 355 deletions
diff --git a/packages/nslu2-binary-only/unslung-rootfs-2.3r25/NOTES b/packages/nslu2-binary-only/unslung-rootfs-2.3r25/NOTES new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/nslu2-binary-only/unslung-rootfs-2.3r25/NOTES diff --git a/packages/nslu2-binary-only/unslung-rootfs-2.3r25/README b/packages/nslu2-binary-only/unslung-rootfs-2.3r25/README index 1c1c9c1385..15b4acb970 100644 --- a/packages/nslu2-binary-only/unslung-rootfs-2.3r25/README +++ b/packages/nslu2-binary-only/unslung-rootfs-2.3r25/README @@ -1,41 +1,21 @@ -UNSLUNG-3.x family release README +UNLUNG-3.x Family Release README INSTALLATION -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. +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. -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. +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: -Note that 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. + http://www.nslu2-linux.org -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 - -In partiticular, there is a Frequently Asked Questions page, and also -quite a few Information and HowTo pages. Read them all before asking -questions on the mailing list or the IRC channel. - -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 +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: +There are three parts to completing the installation of the Unslung firmware: 1 - PRE-INSTALLATION CONSIDERATIONS 2 - FIRMWARE INSTALLATION DETAILS @@ -44,377 +24,184 @@ There are three parts to completing the installation of the UNSLUNG firmware: 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 :-) - - -FIRMWARE INSTALLATION DETAILS - -0) Please verify that any disks you are going to connect to the NSLU2 - are recognized and working properly *before* updating your - firmware. - - - The only exception to this, of course, are those enclosures - that the stock firmware does not support, but the Unslung - firmware does support. - -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. - -2) If you are installing Unslung 3.x onto an NSLU2 unit with Linksys - standard firmware *or* Unslung 1.x or 2.x, go to step 2-a. If you - are installing Unslung 3.x onto an NSLU2 unit with version 3.x already - installed, go to step 2-b. - - 2-a) Flash unslung-standard-3.x.bin as you normally would flash new - firmware (using the web interface "Upgrade Firmware" page). - - 2-b) 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. - - - 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. - -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 - -0) Power up the NSLU2 without any disks connected. - - - 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 for one or two very small packages. - - ***** 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. - -1) 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. 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). - - - 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 **** - -2) 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 recognized - in the web interface. - -4) In the telnet session, run "/sbin/unsling". - - - 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. - - ***** 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 the NSLU2 wiki for - more details. - -5) 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. +1) It is strongly recommended that you test telnet Redboot access first. See + http://www.nslu2-linux.org/wiki/HowTo/TelnetIntoRedBoot -Read further to expand the capabilities of your uNSLUng NSLU2! Enjoy! + - 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 (or with a bad diversion script) you + should be able to follow the "How To Recover From A Bad Flash" + instructions at ---------------------------------------------------------------------------------- + http://www.nslu2-linux.org/wiki/HowTo/RecoverFromABadFlash -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. And if you run out of room on the "conf" partition, -you can always put symlinks across to the "data" partition too. +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). -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. - -DIVERSION SCRIPT 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: +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, 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 :-) -Began development of the -able variant. +4) If you want to use a flash disk as the target for package installation, + ensure that it is larger than 256mb, plugged into port 1, and formatted + via the Linksys web interface. -2.8: +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: -Added the patch for genesys enclosures. + http://www.nslu2-linux.org/wiki/HowTo/TroubleshootADriveMissingCondition -2.9: + - The only exception to this, of course, are those enclosures that the + stock firmware does not support, but the Unslung firmware does + support. -Reorganised the various variants into a more consistent scheme. +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. -2.10: -Added the ext3flash-on-disk1 functionality. +FIRMWARE INSTALLATION DETAILS -2.11: +1) Shutdown the NSLU2, and remove any disks that you may have plugged into the + NSLU2. Power back up the NSLU2. -Added the README to /opt/doc. + - 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.12: +2) If you are installing UNSLUNG 3.x onto an NSLU2 unit with Linksys standard + firmware *or* UNSLUNG 1.x or 2.x, go to step 2-a. If you are installing + Unslung 3.x onto an NSLU2 unit with version 3.x already installed, go to + step 2-b. -First public release of 2.x firmware. + 2-a) Flash unslung-standard-3.x.bin as you normally would flash new + firmware (using the web interface "Upgrade Firmware" page). -3.1: + 2-b) 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. -Added jffs2 functionality. + - During firmware flashing, the top LED - Ready/Status - flashes red and + green (approximately 5 minutes), and you should receive a Javascript + message that indicates that the flash of the firmware was successful. -3.2: + - The NSLU2 will reboot after the flashing is complete. -Incorporated switchbox functionality. +3) Shutdown the NSLU2 (again), attach disk(s), and power it back up. -3.3: +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: -Added ramdisks for /dev and /var to reduce internal flash writes. + http://www.nslu2-linux.org/wiki/HowTo/TroubleshootADriveMissingCondition -3.4: + - If you are not "unslinging", you can stop at this point. 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. -Replaced flashfs script with new resling script. + ***** 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 is not just a + possibility, it is a probability. -3.5: +5) Shutdown the NSLU2 and unplug *ALL* attached disks. -Added code to reinitialise /etc/mtab on boot. + - You must NOT have any disk plugged into the NSLU2 when you reboot to + perform the next part of installation - the "Unslinging". -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. +'UNSLINGING' DETAILS -3.7: +1) Power up the NSLU2 without any disks connected. -Added "Pluggable Personalities" - now runs diversion scripts from both -the internal jffs2 area and also from an external drive attached at -boot time. + - 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 for one or two very small packages. -3.8: + ***** 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. -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. +2) Enable telnet by going to "http://192.168.1.77/Management/telnet.cgi", and + press the enable button. -3.9: + - 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). -Moved a number of -able kernel features (such as USB devfs support) -into -standard. + - Make sure you have **** NO DISKS ATTACHED AT THIS TIME **** -3.10: + - 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. -Added support for unslung-start and unslung-stop diversion scripts, -and package shutdown scripts (K??foo). + - Make sure you have **** NO DISKS ATTACHED AT THIS TIME **** -3.11: +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. -Added NFS kernel support (both client and server, and both V2 and V3 -protocols). +4) Identify which drive you wish you "unsling", and plug it in. Wait a minute + or two while the disk is mounted. -3.12: + - 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. -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. +5) In the telnet session, run "/sbin/unsling". -3.13: + - 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). -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 behaviour can -also be forced with a /.recovery file in the jffs2 filesystem. + - 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. -3.14: + ***** 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 -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. + http://www.nslu2-linux.org/wiki/HowTo/ChangePasswordsFromTheCommandLine -3.15: +6) Reboot. -Added confirmation dialog boxes to the maintenance mode web control. +***** Congratulations, you're now Unslung! ***** -3.16: +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. -First public release of 3.x firmware. +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. -3.17: +Read the NOTES file to expand the capabilities of your uNSLUng NSLU2! -Fixed syslog issue. Added FP patches. +Enjoy! diff --git a/packages/nslu2-binary-only/unslung-rootfs-2.3r25/unsling b/packages/nslu2-binary-only/unslung-rootfs-2.3r25/unsling index e69de29bb2..c38774cd7d 100644 --- a/packages/nslu2-binary-only/unslung-rootfs-2.3r25/unsling +++ b/packages/nslu2-binary-only/unslung-rootfs-2.3r25/unsling @@ -0,0 +1,86 @@ +#!/bin/sh + +# Set or seach for target disk + +if [ $# -gt 1 ] ; then + echo "Usage: $0 [flash|hdd|flash-data|hdd-data]" + exit 1 +fi + +if [ $# -eq 1 ] ; then + if [ "$1" = "flash-data" ] ; then + targ=/share/flash/data + elif [ "$1" = "hdd-data" ] ; then + targ=/share/hdd/data + elif [ "$1" = "flash" ] ; then + targ=/share/flash/conf + elif [ "$1" = "hdd" ] ; then + targ=/share/hdd/conf + else + echo "Usage: $0 [flash|hdd|flash-data|hdd-data]" + exit 1 + fi +elif [ -d /share/hdd/conf/lost+found ] ; then + targ=/share/hdd/conf +elif [ -d /share/flash/conf/lost+found ] ; then + targ=/share/flash/conf +else + echo "Cannot locate target disk" + 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 / + +# Ensure /opt is there. + +if [ ! -d $targ/opt ] ; then + echo "Creating new /opt directory on target disk." + mkdir -p $targ/opt +else + echo "Preserving existing /opt directory on target disk." +fi + +if [ -d /opt -a ! -h /opt ] ; then + echo "Copying existing /opt directory from root disk to target disk." + tar cf - opt | ( cd $targ ; tar xf - ) + mv /opt /opt.old +fi + +echo "Linking /opt directory from target disk to root disk." +rm -f /opt ; ln -s $targ/opt /opt + +# Ensure /usr/lib/ipkg is there. + +if [ ! -d $targ/usr/lib/ipkg ] ; then + echo "Creating new /usr/lib/ipkg directory on target disk." + mkdir -p $targ/usr/lib/ipkg +fi + +if [ ! -f $targ/usr/lib/ipkg/status -a -d /usr/lib/ipkg -a ! -h /usr/lib/ipkg ] ; then + echo "Copying existing /usr/lib/ipkg directory from root disk to target disk." + tar cf - usr/lib/ipkg | ( cd $targ ; tar xf - ) +else + echo "Preserving existing ipkg database on target disk." +fi + +if [ -d /usr/lib/ipkg -a ! -h /usr/lib/ipkg ] ; then + echo "Saving /usr/lib/ipkg directory on root disk in /usr/lib/ipkg.old" + rm -rf /usr/lib/ipkg.old + mv /usr/lib/ipkg /usr/lib/ipkg.old +fi + +echo "Linking /usr/lib/ipkg directory from target disk to root disk." +rm -f /usr/lib/ipkg ; ln -s $targ/usr/lib/ipkg /usr/lib/ipkg + +exit 0 |