diff options
author | Rod Whitby <rod@whitby.id.au> | 2006-04-11 06:32:39 +0000 |
---|---|---|
committer | OpenEmbedded Project <openembedded-devel@lists.openembedded.org> | 2006-04-11 06:32:39 +0000 |
commit | 4cbd322d0f3861f9186f104d126844c5442f9a25 (patch) | |
tree | 3b537e6ded2db48e3703581d5f52124da355d357 /packages/nslu2-binary-only | |
parent | 3b3f3f4da734d0f86331f1469c6c391dbda1368c (diff) |
unslung-kernel, unslung-image: Now that 6.8-beta is released, moved mainline to R63 and dropped R29 (people can get it from SVN if they want to build old versions)
Diffstat (limited to 'packages/nslu2-binary-only')
29 files changed, 467 insertions, 1828 deletions
diff --git a/packages/nslu2-binary-only/nslu2-linksys-firmware_2.3r29.bb b/packages/nslu2-binary-only/nslu2-linksys-firmware_2.3r29.bb deleted file mode 100644 index dbb4ad2502..0000000000 --- a/packages/nslu2-binary-only/nslu2-linksys-firmware_2.3r29.bb +++ /dev/null @@ -1,24 +0,0 @@ -SECTION = "base" -DEPENDS = "slugimage-native unzip-native" -PACKAGES = "" -LICENSE = "GPL" -INHIBIT_DEFAULT_DEPS = "1" -PR = "r1" - -SRC_URI = "ftp://ftp.linksys.com/pub/network/NSLU2_V23R29.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_V23R29.bin -b RedBoot -s SysConf -r ramdisk.ext2.gz -t Trailer - install -d ${STAGING_LIBDIR}/nslu2-binaries - install -m 0755 RedBoot ${STAGING_LIBDIR}/nslu2-binaries/ - install -m 0755 SysConf ${STAGING_LIBDIR}/nslu2-binaries/ - install -m 0755 ramdisk.ext2.gz ${STAGING_LIBDIR}/nslu2-binaries/ - install -m 0755 Trailer ${STAGING_LIBDIR}/nslu2-binaries/ -} diff --git a/packages/nslu2-binary-only/nslu2-linksys-libs_2.3r29.bb b/packages/nslu2-binary-only/nslu2-linksys-libs_2.3r29.bb deleted file mode 100644 index f8348a615a..0000000000 --- a/packages/nslu2-binary-only/nslu2-linksys-libs_2.3r29.bb +++ /dev/null @@ -1,23 +0,0 @@ -DESCRIPTION = "Linksys NSLU2 Stock Firmware Libraries." -PACKAGE_ARCH = "nslu2" -SECTION = "base" -PRIORITY = "required" -PR = "r2" - -SRC_URI = "http://nslu.sf.net/downloads/nslu2-linksys-ramdisk-2.3r29.tar.bz2" - -S = "${WORKDIR}/nslu2-linksys-ramdisk-2.3r29" - -do_install () { - ( cd ${S} ; rm -rf bin dev 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.3r29.bb b/packages/nslu2-binary-only/nslu2-linksys-ramdisk_2.3r29.bb deleted file mode 100644 index c37c283706..0000000000 --- a/packages/nslu2-binary-only/nslu2-linksys-ramdisk_2.3r29.bb +++ /dev/null @@ -1,20 +0,0 @@ -DESCRIPTION = "Linksys NSLU2 Stock Firmware Ramdisk." -PACKAGE_ARCH = "nslu2" -SECTION = "base" -PRIORITY = "required" -PR = "r1" - -SRC_URI = "http://nslu.sf.net/downloads/nslu2-linksys-ramdisk-2.3r29.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 deleted file mode 100644 index e69de29bb2..0000000000 --- a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/.mtn2git_empty +++ /dev/null diff --git a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/NOTES b/packages/nslu2-binary-only/unslung-rootfs-2.3r63/NOTES deleted file mode 100644 index ae9d7c607c..0000000000 --- a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/NOTES +++ /dev/null @@ -1,489 +0,0 @@ -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. - -OpenSSH is the simplest to install: - - - OpenSSH package details on NSLU2-Linux wiki at: - http://www.nslu2-linux.org/wiki/HowTo/UseOpenSSHForRemoteAccess - -Dropbear is preferred by some: - - - 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. - -6.5: - -Unsling script now prompts for a root password to be used, additional sanity -checks added to minimize the chance of an improper unsling. User feedback -added to indicate the status (running from internal flash or booted up from -an external drive) via /etc/motd, ipkg, as well as the main web page. Improved -diagnostic messages from unsling. Added the Linksys custom code to the "mount" -code in the slingbox version of mount. - -6.6: - -Changed the code that handles the ".ext3flash" functionality so that it can -handle booting from either /dev/sda or /dev/sdb. -Cleanup of the "telnet.htm" management page. -Unsling now creates the wmtp and utmp files. -Unsling now "edits" the .../conf/passwd file instead of replacing it. -Ipkg dependencies fixed so that kernel-modules no longer need "force-install". -Support for loopback mounting ISO images (loop.o and isofs.o are now created). -The keyspan.o USB serial kernel-module is also created at build time. -README file updated to reflect the new unsling script as well as the -change in preferred port for the primary external disk. - -6.7: - -Added original "netconsole" code as a kernel module -Fixed problem with password changing from the GUI and automatic mounting of -drives and flash devices in port 1. -Remove unnecessary directory /lib/modules/2.4.22-xfs/pcmcia. diff --git a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/README b/packages/nslu2-binary-only/unslung-rootfs-2.3r63/README deleted file mode 100644 index 27dddeafbf..0000000000 --- a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/README +++ /dev/null @@ -1,370 +0,0 @@ -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 that therefore you -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 Unslung -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 USB - disk drive or an external USB flash 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 the "ipkg update" operation on an - NSLU2 which does not have an external storage device of some sort attached - will most likely render the NSLU2 unusable due to filling up its internal - flash memory (if this happens then you will need to follow the recovery - instructions in the previous step.) So unless you are an expert, use - an external storage device. The remainder of these instructions assume - that you have a suitable external disk or flash disk that you will be - using for this purpose. - - A few words on selecting which port to use: - - Completely contrary to previous versions of Unslung, the preferred port - for the Unslung external disk as of Unslung 6.x is often port 2. This - will free up the far-more-flexible port number 1 for other uses. - - However, this "feature" (part of the Linksys R63 firmware) may cause some - small consternation for users upgrading from earlier versions of Unslung. - But in general, swapping the drives between the two ports will likely be - the least painful solution. The basic challenge faced by upgraders is - that *something* must change: if the drive remains in port 1, then it will - remain mounted at "/share/hdd/..." but the drive nomenclature will change - from "/dev/sda" to "/dev/sdb". On the other hand, if the drive is moved - to port 2, then it will remain "/dev/sda" but it will then be mounted at - "/share/flash/...". What difference this might make depends on each - individual configuration; check the wiki for possible assistance for your - particular configuration. - - For new users, the following guidelines can help: - - if you have only a single drive that will be formatted by the NSLU2, - use port 2. - - if you have a single drive that will be formatted by the NSLU2, and - all other drives or flash devices will be either FAT or NTFS, use - port 2. - - if you have two drives, and both will be formatted by the NSLU2, then - unsling to the drive in port 1. - - If you unsling to port 2, and later add a drive in port 1 that will - be formatted by the NSLU2, it will work as expected -- however, the - drive to be added MUST be formatted by the unslung NSLU2 in question, - and once formatted, the drive must NOT be removed. (The Linksys code - will move it's "conf" datafiles to the drive in port 1 during the - format operation, and thus will become dependent upon the presence of - both drives for proper operation.) - -3) The external disk that you use as the target for package installation must - be (or have previously been) formatted by the NSLU2. - - Since this point qualifies as a "frequently asked question", it is - worth some clarification here. It is only possible to unsling to - a disk that has been formatted by the NSLU2 - you cannot unsling to a - FAT or NTFS disk. In fact, it is not sufficient to format the disk - using another UNIX system -- in order to be recognized as a "Formatted - (ext3)" disk by the NSLU2, and hence be suitable for unslinging, the - disk must be specifically partitioned, formatted, and the partitions - must contain a specific set of configuration files created by the - NSLU2. So the simple rule is that if the NSLU2 web interface "Disk" - page does not list the disk as "Formatted (ext3)", you will be unable - to unsling to that disk. - - For upgrading users, it is possible to upgrade from all previous Unslung - versions without reformatting your disk -- but not necessarily recommended. - See the wiki article for recommended upgrade strategies: - - http://www.nslu2-linux.org/wiki/Unslung/UpgradingToUnslung6 - - 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, and formatted as above 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 already installed, flash unslung-6.x.bin as you - normally would flash new firmware (using the web interface - "Upgrade Firmware" page). See your NSLU2 user manual for details - if you don't know how to do this. - - - 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. - - 2-b) If you are installing Unslung 6.x onto an NSLU2 unit with an - existing version of nslu2-linux.org firmware already installed, - you must first put the NSLU2 into RedBoot Upgrade Mode. - - - The NSLU2 should still be powered off at this point. If not, - shut it down again before proceeding. - - - Using a paper clip, push and hold in the reset button which is - located on the back of the NSLU2 near the power socket. - - - While holding in the reset button, press and release the power - button. - - - Watch the Ready/Status LED, and as soon as it turns red quickly - release the reset button. - - - You should now be in upgrade mode which is indicated by the - Ready/Status LED alternating between red and green. - - - Use either the Linux UpSlug2 tool or the Windows SerComm Upgrade - tool to upload the new firmware - you can find download links at - http://www.nslu2-linux.org/wiki/HowTo/InstallUnslungFirmware - - - 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 an internal database 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 an 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 an 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. - -NOTE about the NOTE: New in Unslung 6.x is that by default the "unsling" -script will prompt for a new password. This new password will become the -new password used whenever the NSLU2 is booted without it's disk (replacing -the "uNSLUng" password), and it will also be the new root password used when -the NSLU2 boots up with it's disk. If you are upgrading, or wish to preserve -your passwords just the way they are, use the "-nopw" option with the unsling -script. - -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 the NSLU2's web interface and clicking on the - "Manage Telnet" link (right-hand side), then on the "Enable/Disable - NSLU2 telnet Service" page, click on the "Enable" button to turn on - the telnet service. - - (You can browse directly to the enable/disable telnet page in your - browser: "http://192.168.1.77/Management/telnet.cgi".) - - - 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 recognized 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. - - Be patient - it might take several minutes for the NSLU2 to recognize - the hardware, mount the partitions, and verify that the drive is correctly - configured to be considered "Formatted". Do not continue if the drive - is not marked as "Formatted (ext3)" in the NSLU2 web interface. - -5) In the telnet session, run "/sbin/unsling disk2". - (If you've decided to unsling to a device connected to port 1, you'll run - "/sbin/unsling disk1", of course.) - - - 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. - - ***** By default, unsling WILL prompt you for a new root password, and it - will change the password on your disk as well. If this is NOT what - you wish it to do, use the "-nopw" flag with the "unsling" command: - "/sbin/unsling -nopw disk2" for example. - - For more information on changing passwords and all the places where - the NSLU2 stores passwords, please see the following wiki article: - - http://www.nslu2-linux.org/wiki/HowTo/ChangePasswordsFromTheCommandLine - -6) (For those upgrading from Unslung 3.x only) - 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) Confirm that your NSLU2 is unslung: - - You can verify that your NSLU2 is unslung by checking the NSLU2 web admin - GUI - you are unslung if the text at the bottom reads something like: - "uNSLUng status: Unslung to disk2, /dev/sda1" - - Also, when you login to the NSLU2, the login message printed will clearly - indicate if you are unslung, or if something went awry and you are still - running on the internal flash. - - If your NSLU2 does not indicate that it is Unslung, rather it says that it - is running from internal flash, then the first thing to check is: - - Did you miss step 7 above (reboot)? - -9) Verify that you can log into the NSLU2 by going to the web GUI "Manage Telnet" - page, enable the telnet service, then telnet in as the root user, with the - password you entered when you performed the "unsling" operation. - -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. - -http://groups.yahoo.com/group/nslu2-linux/database?method=reportRows&tbl=12 - - -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. - -http://www.nslu2-linux.org/wiki/Unslung/Packages -http://www.nslu2-linux.org/wiki/Unslung/DiversionScripts - -(One of the first packages you should consider installing is the OpenSSH -package, which will provide you a secure and more usable replacement for the -standard telnet service on the NSLU2.) - -Read the NOTES file (normally in /opt/doc/NOTES on your unslung NSLU2) 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 deleted file mode 100755 index d8a0e5d06c..0000000000 --- a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/linuxrc +++ /dev/null @@ -1,70 +0,0 @@ -#!/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 - [ -e /.sda1root -a -f /proc/hdd_sda ] && cnt=0 - [ -e /.sdb1root -a -f /proc/hdd_sdb ] && cnt=0 - cnt=`expr $cnt - 1` -done -echo - -sleep 5 - -mounted= - -for prefroot in sda1 sdb1 ; do - if [ -z "$mounted" -a -e /.${prefroot}root ] ; then - if /bin/mount -rt ext3 /dev/$prefroot /mnt ; then - if [ -e /mnt/.${prefroot}root -a -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 deleted file mode 100644 index fa7532401d..0000000000 --- a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/rc.modules-diversion.patch +++ /dev/null @@ -1,8 +0,0 @@ ---- 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/remount-noatime.patch b/packages/nslu2-binary-only/unslung-rootfs-2.3r63/remount-noatime.patch deleted file mode 100644 index a39dc678b5..0000000000 --- a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/remount-noatime.patch +++ /dev/null @@ -1,51 +0,0 @@ ---- nslu2-linksys-ramdisk-2.3r63/etc/rc.d/rc.1.orig 2006-02-24 20:48:18.000000000 -0600 -+++ nslu2-linksys-ramdisk-2.3r63/etc/rc.d/rc.1 2006-02-24 21:13:01.000000000 -0600 -@@ -3,6 +3,24 @@ - #/sbin/ifconfig ixp0 hw ether 00:C0:02:01:01:04 - /bin/echo "Starting Set CGI_ds.conf:"; /etc/rc.d/rc.bootbin; check_status - -+if ( [ -f /.ext3flash ] ) ; then -+ dsk="nodisk" -+ /bin/grep -q "^/dev/sda1 / ext3" /proc/mounts -+ if ( [ $? -eq 0 ] ) ; then -+ dsk="sda" -+ else -+ /bin/grep -q "^/dev/sdb1 / ext3" /proc/mounts -+ if ( [ $? -eq 0 ] ) ; then -+ dsk="sdb" -+ fi -+ fi -+ /bin/echo "Remounting /dev/${dsk}1 as ext3flash:" -+ /bin/mount -o remount,rw,noatime /dev/${dsk}1 -+ /bin/echo "Remounting /dev/${dsk}2 as ext3flash:" -+ /bin/mount -o remount,rw,sync,noatime /dev/${dsk}2 -+ /bin/echo "Removing swap from ext3flash:" -+ /sbin/swapoff /dev/${dsk}3 -+fi - - /bin/echo "Restore time and timezone:"; /etc/rc.d/rc.rstimezone; check_status - /bin/echo "Restore usrgrpshares:"; /etc/rc.d/rc.reset_usrgrpshare; check_status ---- nslu2-linksys-ramdisk-2.3r63/etc/rc.d/rc.quota.orig 2006-02-24 20:48:31.000000000 -0600 -+++ nslu2-linksys-ramdisk-2.3r63/etc/rc.d/rc.quota 2006-02-24 21:12:46.000000000 -0600 -@@ -8,6 +8,21 @@ - echo "Done." - fi - -+if ( [ -f /.ext3flash ] ) ; then -+ dsk="nodisk" -+ /bin/grep -q "^/dev/sda1 / ext3" /proc/mounts -+ if ( [ $? -eq 0 ] ) ; then -+ dsk="sda" -+ else -+ /bin/grep -q "^/dev/sdb1 / ext3" /proc/mounts -+ if ( [ $? -eq 0 ] ) ; then -+ dsk="sdb" -+ fi -+ fi -+ /bin/echo "Remounting /dev/${dsk}1 as ext3flash:" -+ /bin/mount -o remount,rw,noatime /dev/${dsk}1 -+fi -+ - if [ -x "/usr/bin/quotaon" ] - then - echo "Turning on quota." 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 deleted file mode 100644 index 8517e7d06b..0000000000 --- a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/security-fixes.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- 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 deleted file mode 100755 index c8b3dc8662..0000000000 --- a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/unsling +++ /dev/null @@ -1,233 +0,0 @@ -#!/bin/sh - -usage="Usage: $0 [-nopw] disk1|disk2" - -nopw=0 -if [ $# -gt 1 ] ; then - if [ "$1" = "-nopw" ] ; then - nopw=1 - shift - fi -fi - -# Set target disk - -if [ $# -eq 1 ] ; then - if [ "$1" = "disk1" ] ; then - mtch="/dev/sdb1 /share/hdd/data ext3 rw 0 0" - targ=/share/hdd/data - targconf=/share/hdd/conf - flag=.sdb1root - htmlinfo="disk1, /dev/sdb1" - fixconf=0 - elif [ "$1" = "disk2" ] ; then - mtch="/dev/sda1 /share/flash/data ext3 rw 0 0" - targ=/share/flash/data - targconf=/share/flash/conf - flag=.sda1root - htmlinfo="disk2, /dev/sda1" - fixconf=1 - else - echo $usage - exit 1 - fi -else - echo $usage - exit 1 -fi - -# Check that we can unsling at all! An unsling operation creates a new -# rootfs, but it also marks the flash rootfs (with a flag file such as -# ".sda1root") so that subsequent boots do not create the "var.state" -# and "dev.state" mounts. Without those mounts, though, an attempt to -# unsling will write a new rootfs on the target with an empty /dev -# directory, which doesnt' work really well. So this check is all about -# making sure that we are in a state in which we are capable of -# performing the unsling operation. - -echo "Checking if able to unsling..." -echo -m1="/dev/root /dev.state jffs2 rw 0 0" -m2="/dev/root /var.state jffs2 rw 0 0" -if ! grep "$m1" /proc/mounts >/dev/null 2>&1 || ! grep "$m2" /proc/mounts >/dev/null 2>&1 ; then - echo "Error: This system is unable to properly unsling because certain" - echo "required mounts (dev.state and/or var.state) are not available." - echo "This is most probably because you have already unslung this system." - echo - - if [ -f /.sda1root ] ; then - rm -f /.sda1root - elif [ -f /.sdb1root ] ; then - rm -f /.sdb1root - elif [ -f /.sda2root ] ; then - rm -f /.sda2root - elif [ -f /.sdb2root ] ; then - rm -f /.sdb2root - else - echo "However, in this case, the flags that indicate an already-unslung" - echo "system seem to be missing. Try restarting your NSLU2 to correct," - echo "but if the problem persists, try re-flashing your NSLU2." - exit 1 - fi - echo "The flags that indicate an already-unslung system have now been" - echo "removed and the required mounts should now become present after" - echo "reboot of the NSLU2." - echo - echo "1) Please unplug all drives from the NSLU2," - echo "2) reboot," - echo "3) and retry the unslinging process." - exit 1 -fi - -# Check it's a real mount point - -echo "Waiting for $targ ..." -CNT=120 -while [ $CNT -gt 0 ] -do - if grep "$mtch" /proc/mounts >/dev/null 2>&1 ; then - echo - echo "Target disk is $targ" - CNT=-1 - else - echo -ne "\r$CNT " - sleep 1 - CNT=`expr $CNT - 1` - fi -done -if [ $CNT -eq 0 ] ; then - echo - echo "Error: $targ ($htmlinfo) is not a mounted disk" - exit 1 -fi - -# Do a quick sanity check to make sure we're unslinging to a disk that's been -# formatted by the Linksys code. - -echo "Checking that $targ has been properly formatted..." -if ! [ -d $targ/public ] || ! [ -f $targconf/.dongle ] || ! [ -f $targconf/passwd ] ; then - echo - echo "Error: $targ does not appear to have been formatted by the" - echo "Linksys formatting utility. Please go to the web interface," - echo "and format the drive before unslinging." - exit 1 -fi - -echo "Checking that $targ is clean..." -if [ -f $targ/.unslung ] ; then - echo - echo "Error: $targ appears to have already been unslung to:" - cat $targ/.unslung - echo "Please go to the web interface, and format the drive before" - echo "unslinging." - echo - echo "(Or, if you wish to unsling without removing the current root" - echo "filesystem, simply remove the file $targ/.unslung and retry" - echo "the unsling -- but beware, you enter uncharted territory!)" - exit 1 -fi - -# Change the root password -if [ "$nopw" -eq 0 ] ; then - echo - echo "Please enter the new root password. This will be the new root" - echo "password used when the NSLU2 boots up with or without disks" - echo - passwd - if [ $? -ne 0 ] ; then - echo "Error setting password." - exit 1 - fi - cp /etc/passwd /usr/local/passwd -# cp /etc/passwd $targconf/passwd - grep "^root:" /etc/passwd >$targconf/passwd.new - grep -v "^root:" $targconf/passwd >>$targconf/passwd.new - mv $targconf/passwd $targconf/passwd.save - mv $targconf/passwd.new $targconf/passwd - chmod 644 $targconf/passwd -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 -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 - -echo "Linking /etc/motd to the unslung motd on target disk." -rm -f $targ/etc/motd ; ln -s /etc/motd-un $targ/etc/motd - -echo "Updating /home/httpd/html/home.htm with target disk info." -sedcommand="s#Running.from.Internal.Flash#Unslung to $htmlinfo#" -rm -f $targ/home/httpd/html/home.htm_bak -cp $targ/home/httpd/html/home.htm $targ/home/httpd/html/home.htm_bak -sed "$sedcommand" $targ/home/httpd/html/home.htm_bak > $targ/home/httpd/html/home.htm -chmod 644 $targ/home/httpd/html/home.htm - -# Create a few empty files that are expected to be present -touch $targ/var/log/wtmp -chmod 644 $targ/var/log/wtmp -touch $targ/var/run/utmp -chmod 644 $targ/var/run/utmp - -# The "user password" Linksys utility is hard-coded to /share/hdd; also the -# QuickSet utility seems to have some difficulty as well. Ugly fix is to -# add symlinks if we are unslinging to /share/flash. It might seem more -# reasonable to point to /etc/passwd, for example, but this approach seems to -# be more likely to avoid looping symlinks. - -if [ "$fixconf" -eq 1 ] ; then - ln -s ../../flash/conf/.htpasswd $targ/share/hdd/conf/.htpasswd - ln -s ../../flash/conf/backup_sh.conf $targ/share/hdd/conf/backup_sh.conf - ln -s ../../flash/conf/config $targ/share/hdd/conf/config - ln -s ../../flash/conf/group $targ/share/hdd/conf/group - ln -s ../../flash/conf/passwd $targ/share/hdd/conf/passwd - ln -s ../../flash/conf/server.log $targ/share/hdd/conf/server.log - ln -s ../../flash/conf/share $targ/share/hdd/conf/share - ln -s ../../flash/conf/share.info $targ/share/hdd/conf/share.info - ln -s ../../flash/conf/smb.conf $targ/share/hdd/conf/smb.conf - ln -s ../../flash/conf/smbpasswd $targ/share/hdd/conf/smbpasswd - ln -s ../../flash/conf/tmp $targ/share/hdd/conf/tmp - ln -s ../../flash/conf/upgrade $targ/share/hdd/conf/upgrade - ln -s ../../flash/conf/usrgrp.info $targ/share/hdd/conf/usrgrp.info -fi - -# 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 - -# Done - -echo -echo "Unsling complete." -echo -echo "Leave the device $htmlinfo plugged in, and reboot" -echo "in order to boot this system up into unslung mode." - -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 deleted file mode 100644 index 88644e305e..0000000000 --- a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/upgrade.htm +++ /dev/null @@ -1,129 +0,0 @@ -<!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 deleted file mode 100644 index 71c8e9caec..0000000000 --- a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/wait-for-quotacheck.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- 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/NOTES b/packages/nslu2-binary-only/unslung-rootfs/NOTES index 8d6908c74d..ae9d7c607c 100644 --- a/packages/nslu2-binary-only/unslung-rootfs/NOTES +++ b/packages/nslu2-binary-only/unslung-rootfs/NOTES @@ -168,8 +168,14 @@ 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: +OpenSSH is the simplest to install: + + - OpenSSH package details on NSLU2-Linux wiki at: + http://www.nslu2-linux.org/wiki/HowTo/UseOpenSSHForRemoteAccess + +Dropbear is preferred by some: + - 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 @@ -333,7 +339,8 @@ Split from 3.x stream to allow parallel development. 4.2: -New switchbox implementation with NFS and external USB disk root filesystem support. +New switchbox implementation with NFS and external USB disk root filesystem +support. 4.3: @@ -448,47 +455,35 @@ Added disk auto-wait countdown to /linuxrc (courtesy of glc). First public release of 5.x firmware. -6.1: - -Upgraded to Linksys firmware V2.3R63. - -6.1 to 6.7: - -"Unslung" status (i.e. Unslung to disk, or running from internal -flash) is now displayed on the home page in the Web GUI, as well as -displayed at login. - -Using "ipkg" when running from internal flash now displays a helpful -message indicating why ipkg won't run. - -The unsling script now contains a number of sanity checks, and prints -(hopefully) helpful error messages if the system will be unlikely to -unsling correctly. - -The unsling script now prompts for a new root password, and sets the -password for both booting with as well as without drives attached. (A -new argument "-nopw" can be given to unsling to have it skip prompting -for and setting the root password.) - -The "Enable Telnet" web gui page can now be reached from the home page -in the Linksys Web GUI. - -The new Unslung logo is now featured in the Web GUI. +6.0: -The special handling for unslinging to flash devices now works for -both USB Port 1 and 2. +First alpha release of 6.x Unslung firmware, based on Linksys V2.3R63 firmware. -The utmp and wtmp files are now created by unsling, and will be -"emptied" at each boot. Additionally, the .pid files in /var/run and -/var/log are cleaned out at boot; this avoids a number of strange and -difficult-to-reproduce problems. +6.5: -The following additional kernel modules are provided: loop.o isofs.o -keyspan.o netconsole.o +Unsling script now prompts for a root password to be used, additional sanity +checks added to minimize the chance of an improper unsling. User feedback +added to indicate the status (running from internal flash or booted up from +an external drive) via /etc/motd, ipkg, as well as the main web page. Improved +diagnostic messages from unsling. Added the Linksys custom code to the "mount" +code in the slingbox version of mount. -Sundry bugfixes. +6.6: -6.8: +Changed the code that handles the ".ext3flash" functionality so that it can +handle booting from either /dev/sda or /dev/sdb. +Cleanup of the "telnet.htm" management page. +Unsling now creates the wmtp and utmp files. +Unsling now "edits" the .../conf/passwd file instead of replacing it. +Ipkg dependencies fixed so that kernel-modules no longer need "force-install". +Support for loopback mounting ISO images (loop.o and isofs.o are now created). +The keyspan.o USB serial kernel-module is also created at build time. +README file updated to reflect the new unsling script as well as the +change in preferred port for the primary external disk. -First public release of 6.x firmware. +6.7: +Added original "netconsole" code as a kernel module +Fixed problem with password changing from the GUI and automatic mounting of +drives and flash devices in port 1. +Remove unnecessary directory /lib/modules/2.4.22-xfs/pcmcia. diff --git a/packages/nslu2-binary-only/unslung-rootfs/README b/packages/nslu2-binary-only/unslung-rootfs/README index c750709e5f..27dddeafbf 100644 --- a/packages/nslu2-binary-only/unslung-rootfs/README +++ b/packages/nslu2-binary-only/unslung-rootfs/README @@ -1,8 +1,8 @@ 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. +do not skip ahead thinking you know what you are doing and that therefore you +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: @@ -10,8 +10,8 @@ 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. +script details, or ChangeLog information, please consult the associated Unslung +NOTES file. ------------------------------------------------------------------------------- @@ -38,25 +38,81 @@ PRE-INSTALLATION CONSIDERATIONS 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. +2) If you want to install any packages, then you must have an external USB + disk drive or an external USB flash 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 the "ipkg update" operation on an + NSLU2 which does not have an external storage device of some sort attached + will most likely render the NSLU2 unusable due to filling up its internal + flash memory (if this happens then you will need to follow the recovery + instructions in the previous step.) So unless you are an expert, use + an external storage device. The remainder of these instructions assume + that you have a suitable external disk or flash disk that you will be + using for this purpose. + + A few words on selecting which port to use: + + Completely contrary to previous versions of Unslung, the preferred port + for the Unslung external disk as of Unslung 6.x is often port 2. This + will free up the far-more-flexible port number 1 for other uses. + + However, this "feature" (part of the Linksys R63 firmware) may cause some + small consternation for users upgrading from earlier versions of Unslung. + But in general, swapping the drives between the two ports will likely be + the least painful solution. The basic challenge faced by upgraders is + that *something* must change: if the drive remains in port 1, then it will + remain mounted at "/share/hdd/..." but the drive nomenclature will change + from "/dev/sda" to "/dev/sdb". On the other hand, if the drive is moved + to port 2, then it will remain "/dev/sda" but it will then be mounted at + "/share/flash/...". What difference this might make depends on each + individual configuration; check the wiki for possible assistance for your + particular configuration. + + For new users, the following guidelines can help: + - if you have only a single drive that will be formatted by the NSLU2, + use port 2. + - if you have a single drive that will be formatted by the NSLU2, and + all other drives or flash devices will be either FAT or NTFS, use + port 2. + - if you have two drives, and both will be formatted by the NSLU2, then + unsling to the drive in port 1. + + If you unsling to port 2, and later add a drive in port 1 that will + be formatted by the NSLU2, it will work as expected -- however, the + drive to be added MUST be formatted by the unslung NSLU2 in question, + and once formatted, the drive must NOT be removed. (The Linksys code + will move it's "conf" datafiles to the drive in port 1 during the + format operation, and thus will become dependent upon the presence of + both drives for proper operation.) 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. + be (or have previously been) formatted by the NSLU2. + + Since this point qualifies as a "frequently asked question", it is + worth some clarification here. It is only possible to unsling to + a disk that has been formatted by the NSLU2 - you cannot unsling to a + FAT or NTFS disk. In fact, it is not sufficient to format the disk + using another UNIX system -- in order to be recognized as a "Formatted + (ext3)" disk by the NSLU2, and hence be suitable for unslinging, the + disk must be specifically partitioned, formatted, and the partitions + must contain a specific set of configuration files created by the + NSLU2. So the simple rule is that if the NSLU2 web interface "Disk" + page does not list the disk as "Formatted (ext3)", you will be unable + to unsling to that disk. + + For upgrading users, it is possible to upgrade from all previous Unslung + versions without reformatting your disk -- but not necessarily recommended. + See the wiki article for recommended upgrade strategies: + + http://www.nslu2-linux.org/wiki/Unslung/UpgradingToUnslung6 + 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. + ensure that it is at least 256MB, and formatted as above 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 @@ -80,44 +136,55 @@ PRE-INSTALLATION CONSIDERATIONS FIRMWARE INSTALLATION DETAILS 1) Shutdown the NSLU2, and remove any disks that you may have plugged into the - NSLU2. + 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-a) If you are installing Unslung 6.x onto an NSLU2 unit with Linksys standard - firmware already installed, flash unslung-6.x.bin as you normally would - flash new firmware (using the web interface "Upgrade Firmware" page). - See your NSLU2 user manual for details if you don't know how to do this. +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 already installed, flash unslung-6.x.bin as you + normally would flash new firmware (using the web interface + "Upgrade Firmware" page). See your NSLU2 user manual for details + if you don't know how to do this. + + - 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. + + 2-b) If you are installing Unslung 6.x onto an NSLU2 unit with an + existing version of nslu2-linux.org firmware already installed, + you must first put the NSLU2 into RedBoot Upgrade Mode. - - During firmware flashing, the top LED - Ready/Status - flashes red and - green (approximately 5 minutes, but can be much longer). + - The NSLU2 should still be powered off at this point. If not, + shut it down again before proceeding. - - The NSLU2 will reboot after the flashing is complete. + - Using a paper clip, push and hold in the reset button which is + located on the back of the NSLU2 near the power socket. -2-b) If you are installing Unslung 6.x onto an NSLU2 unit with an existing - version of nslu2-linux.org firmware already installed, you must first put - the NSLU2 into RedBoot Upgrade Mode. + - While holding in the reset button, press and release the power + button. - - The NSLU2 should still be powered off at this point. If not, shut it - down again before proceeding. - - Using a paper clip, push and hold in the reset button which is located - on the back of the NSLU2 near the power socket. - - While holding in the reset button, press and release the power button. - - Watch the Ready/Status LED and as soon as it turns red, then quickly - release the reset button. - - You should now be in upgrade mode which is indicated by the Ready/Status - LED alternating between red and green. - - Use either the Linux UpSlug tool or the Windows SerComm Upgrade tool to - upload the new firmware - you can find download links at + - Watch the Ready/Status LED, and as soon as it turns red quickly + release the reset button. + - You should now be in upgrade mode which is indicated by the + Ready/Status LED alternating between red and green. + + - Use either the Linux UpSlug2 tool or the Windows SerComm Upgrade + tool to upload the new firmware - you can find download links at http://www.nslu2-linux.org/wiki/HowTo/InstallUnslungFirmware - - During firmware flashing, the top LED - Ready/Status - flashes red and - green (approximately 5 minutes, but can be much longer). + - 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. + - The NSLU2 will reboot after the flashing is complete. 3) Shutdown the NSLU2 (again), attach disk(s), and power it back up. @@ -158,15 +225,23 @@ 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 +NOTE: There are two root passwords. One is saved in an internal database 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 an 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 +them. That means: Everytime you boot WITHOUT an 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. +NOTE about the NOTE: New in Unslung 6.x is that by default the "unsling" +script will prompt for a new password. This new password will become the +new password used whenever the NSLU2 is booted without it's disk (replacing +the "uNSLUng" password), and it will also be the new root password used when +the NSLU2 boots up with it's disk. If you are upgrading, or wish to preserve +your passwords just the way they are, use the "-nopw" option with the unsling +script. + 1) Power up the NSLU2 without any disks connected. - This only has to be done when you update the firmware. @@ -175,15 +250,18 @@ you won't have access until you change the file /share/hdd/conf/passwd. 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. +2) Enable telnet by going to the NSLU2's web interface and clicking on the + "Manage Telnet" link (right-hand side), then on the "Enable/Disable + NSLU2 telnet Service" page, click on the "Enable" button to turn on + the telnet service. + + (You can browse directly to the enable/disable telnet page in your + browser: "http://192.168.1.77/Management/telnet.cgi".) - - 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). + - 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 **** @@ -197,54 +275,39 @@ you won't have access until you change the file /share/hdd/conf/passwd. 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. - - If you are upgrading from a previous release of Unslung, please read - - http://www.nslu2-linux.org/wiki/Unslung/UpgradingToUnslung6 - -4) Identify which drive you wish you "unsling", and plug it in. Note that for - Unslung 6.x it is recommended that you plug the target disk into the Disk2 - port so that you can use the Disk1 port for attaching multiple ext3 and/or - NTFS data disks via a USB hub. For more information, see - - http://www.nslu2-linux.org/wiki/Unslung/WhichUSBPortforUnslung6 - - 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. +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 recognized 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). Again, we recommend for Unslung 6.x that - you unsling to disk2. + Be patient - it might take several minutes for the NSLU2 to recognize + the hardware, mount the partitions, and verify that the drive is correctly + configured to be considered "Formatted". Do not continue if the drive + is not marked as "Formatted (ext3)" in the NSLU2 web interface. + +5) In the telnet session, run "/sbin/unsling disk2". + (If you've decided to unsling to a device connected to port 1, you'll run + "/sbin/unsling disk1", of course.) - 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: + ***** By default, unsling WILL prompt you for a new root password, and it + will change the password on your disk as well. If this is NOT what + you wish it to do, use the "-nopw" flag with the "unsling" command: + "/sbin/unsling -nopw disk2" for example. + For more information on changing passwords and all the places where + the NSLU2 stores passwords, please see the following wiki article: + 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 +6) (For those upgrading from Unslung 3.x only) + 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 @@ -266,19 +329,42 @@ you won't have access until you change the file /share/hdd/conf/passwd. 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. +8) Confirm that your NSLU2 is unslung: + + You can verify that your NSLU2 is unslung by checking the NSLU2 web admin + GUI - you are unslung if the text at the bottom reads something like: + "uNSLUng status: Unslung to disk2, /dev/sda1" + + Also, when you login to the NSLU2, the login message printed will clearly + indicate if you are unslung, or if something went awry and you are still + running on the internal flash. -***** Congratulations, you're now Unslung! ***** + If your NSLU2 does not indicate that it is Unslung, rather it says that it + is running from internal flash, then the first thing to check is: + - Did you miss step 7 above (reboot)? + +9) Verify that you can log into the NSLU2 by going to the web GUI "Manage Telnet" + page, enable the telnet service, then telnet in as the root user, with the + password you entered when you performed the "unsling" operation. 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. +http://groups.yahoo.com/group/nslu2-linux/database?method=reportRows&tbl=12 + + 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! +http://www.nslu2-linux.org/wiki/Unslung/Packages +http://www.nslu2-linux.org/wiki/Unslung/DiversionScripts -Enjoy! +(One of the first packages you should consider installing is the OpenSSH +package, which will provide you a secure and more usable replacement for the +standard telnet service on the NSLU2.) + +Read the NOTES file (normally in /opt/doc/NOTES on your unslung NSLU2) to expand +the capabilities of your Unslung NSLU2! +Enjoy! diff --git a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/ipkg-fl b/packages/nslu2-binary-only/unslung-rootfs/ipkg-fl index ade959a759..ade959a759 100755 --- a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/ipkg-fl +++ b/packages/nslu2-binary-only/unslung-rootfs/ipkg-fl diff --git a/packages/nslu2-binary-only/unslung-rootfs/linuxrc b/packages/nslu2-binary-only/unslung-rootfs/linuxrc index af694bc68d..d8a0e5d06c 100755 --- a/packages/nslu2-binary-only/unslung-rootfs/linuxrc +++ b/packages/nslu2-binary-only/unslung-rootfs/linuxrc @@ -4,101 +4,46 @@ # **** UNLESS YOU REALLY KNOW *EXACTLY* WHAT YOU ARE DOING. **** -# Determine the desired rootfs based on user flag files. - -if [ -f /.sda1root ] ; then - /bin/echo "Preferred root device is /dev/sda1 (disk 1)" - mounted=/mnt - prefroot=sda1 -elif [ -f /.sda2root ] ; then - /bin/echo "Preferred root device is /dev/sda2 (disk 1)" - mounted=/mnt - prefroot=sda2 -elif [ -f /.sdb1root ] ; then - /bin/echo "Preferred root device is /dev/sdb1 (disk 2)" - mounted=/mnt - prefroot=sdb1 -elif [ -f /.sdb2root ] ; then - /bin/echo "Preferred root device is /dev/sdb2 (disk 2)" - mounted=/mnt - prefroot=sdb2 -elif [ -f /.nfsroot ] ; then - /bin/echo "Preferred root device is NFS" - mounted=/mnt - prefroot=nfsroot -else - /bin/echo "Preferred root device is jffs2" - mounted= - prefroot=jffs2 -fi - - -# Perform prepatory tasks, and determine whether the desired rootfs is viable. +# Perform prepatory tasks, and determine whether an alternate rootfs is viable. /bin/mount -t proc proc /proc -if [ $prefroot = "sda1" -o $prefroot = "sda2" -o $prefroot = "sdb1" -o $prefroot = "sdb2" ] ; then - /bin/echo "Sleeping while waiting for disk..." - cnt=20 - while [ $cnt -gt 0 ] ; do - echo -ne "\r$cnt " - sleep 1 - [ $prefroot = "sda1" ] && [ -f /proc/hd_conn ] && cnt=0 - [ $prefroot = "sda2" ] && [ -f /proc/hd_conn ] && cnt=0 - [ $prefroot = "sdb1" ] && [ -f /proc/hd2_conn ] && cnt=0 - [ $prefroot = "sdb2" ] && [ -f /proc/hd2_conn ] && cnt=0 - cnt=`expr $cnt - 1` - done - echo - /bin/mount -rt ext3 /dev/$prefroot /mnt - if [ -L /mnt/sbin/init -o -x /mnt/sbin/init -o \ - -L /mnt/bin/init -o -x /mnt/bin/init ] ; then - /bin/echo "Root filesystem will be mounted from /dev/$prefroot ..." - else - /bin/umount /mnt - /bin/echo "Can't find valid rootfs on /dev/$prefroot, using jffs2 ..." - mounted= - prefroot=jffs2 +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 + [ -e /.sda1root -a -f /proc/hdd_sda ] && cnt=0 + [ -e /.sdb1root -a -f /proc/hdd_sdb ] && cnt=0 + cnt=`expr $cnt - 1` +done +echo + +sleep 5 + +mounted= + +for prefroot in sda1 sdb1 ; do + if [ -z "$mounted" -a -e /.${prefroot}root ] ; then + if /bin/mount -rt ext3 /dev/$prefroot /mnt ; then + if [ -e /mnt/.${prefroot}root -a -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 - -if [ $prefroot = "nfsroot" ] ; then - - sysconflen=`/bin/dd if=/dev/mtd1 bs=4 count=1 2>/dev/null | /usr/bin/hexdump -n 6 -e '"%02d"'` - ipaddr=`/bin/dd if=/dev/mtd1 bs=1 count=$sysconflen skip=4 2>/dev/null | grep ip_addr | sed -e s/ip_addr=//` - netmask=`/bin/dd if=/dev/mtd1 bs=1 count=$sysconflen skip=4 2>/dev/null | grep netmask | sed -e s/netmask=//` - gateway=`/bin/dd if=/dev/mtd1 bs=1 count=$sysconflen skip=4 2>/dev/null | grep gateway | sed -e s/gateway=//` - - /sbin/insmod ixp400 - /sbin/insmod ixp425_eth - /sbin/ifconfig ixp0 up $ipaddr netmask $netmask - /sbin/route add default gw $gateway - - /sbin/ifconfig lo up 127.0.0.1 + fi +done - # The nfsrootloc and nfsrootopts vars can be overridden here. - . /.nfsroot - - /bin/mount $nfsrootopts $nfsrootloc /mnt - - if [ -L /mnt/sbin/init -o -x /mnt/sbin/init -o \ - -L /mnt/bin/init -o -x /mnt/bin/init ] ; then - /bin/echo "Root filesystem will be mounted from an NFS root ..." - mounted=/mnt - else - /bin/umount /mnt - /bin/echo "Can't find valid NFS rootfs, using jffs2 ..." - mounted= - prefroot=jffs2 - fi -fi - -if [ $prefroot = "jffs2" ] ; then - /bin/echo "Root filesystem will be mounted from /dev/mtdblock4 ..." - mounted= +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. @@ -107,17 +52,10 @@ if [ -n "$mounted" ] ; then cd $mounted - if [ -x ./sbin/init -o -L ./sbin/init ] ; then - runboot=/sbin/init - elif [ -x ./bin/init -o -L ./bin/init ] ; then - runboot=/bin/init - else - runboot=/bin/sh - fi - + /bin/echo "Pivoting to external rootfs ..." /sbin/pivot_root . initrd - exec /usr/sbin/chroot . $runboot < /dev/console 1> /dev/console 2> /dev/console + exec /usr/sbin/chroot . /bin/init < /dev/console 1> /dev/console 2> /dev/console else @@ -125,7 +63,7 @@ else fi -/bin/echo "Can't chroot to $prefroot, using jffs2 ..." +/bin/echo "Can't pivot to external rootfs, using ramdisk ..." exec /bin/init # Last-resort fall-back - this should never be reached. diff --git a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/motd-fl b/packages/nslu2-binary-only/unslung-rootfs/motd-fl index aafcd21cb5..aafcd21cb5 100644 --- a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/motd-fl +++ b/packages/nslu2-binary-only/unslung-rootfs/motd-fl diff --git a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/motd-un b/packages/nslu2-binary-only/unslung-rootfs/motd-un index 5439b08be6..5439b08be6 100644 --- a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/motd-un +++ b/packages/nslu2-binary-only/unslung-rootfs/motd-un diff --git a/packages/nslu2-binary-only/unslung-rootfs/profile b/packages/nslu2-binary-only/unslung-rootfs/profile deleted file mode 100644 index a8009daf39..0000000000 --- a/packages/nslu2-binary-only/unslung-rootfs/profile +++ /dev/null @@ -1,2 +0,0 @@ -export PATH=$PATH:/opt/bin:/opt/sbin:/opt/usr/bin:/opt/usr/sbin -export LD_LIBRARY_PATH=/opt/lib diff --git a/packages/nslu2-binary-only/unslung-rootfs/rc.modules-diversion.patch b/packages/nslu2-binary-only/unslung-rootfs/rc.modules-diversion.patch index a2bfb1545c..fa7532401d 100644 --- a/packages/nslu2-binary-only/unslung-rootfs/rc.modules-diversion.patch +++ b/packages/nslu2-binary-only/unslung-rootfs/rc.modules-diversion.patch @@ -1,10 +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,4 +1,7 @@ - #!/bin/sh +@@ -1,2 +1,5 @@ + +if ( [ -f /unslung/rc.modules ] && . /unslung/rc.modules ) ; then return 0 ; fi + - insmod pbuttons &>/dev/null insmod rbuttons &>/dev/null insmod x1226-rtc &>/dev/null diff --git a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/rc.sysinit-clean_var.patch b/packages/nslu2-binary-only/unslung-rootfs/rc.sysinit-clean_var.patch index 17e7ebef43..17e7ebef43 100644 --- a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/rc.sysinit-clean_var.patch +++ b/packages/nslu2-binary-only/unslung-rootfs/rc.sysinit-clean_var.patch diff --git a/packages/nslu2-binary-only/unslung-rootfs/remount-noatime.patch b/packages/nslu2-binary-only/unslung-rootfs/remount-noatime.patch index e728657ffa..a39dc678b5 100644 --- a/packages/nslu2-binary-only/unslung-rootfs/remount-noatime.patch +++ b/packages/nslu2-binary-only/unslung-rootfs/remount-noatime.patch @@ -1,29 +1,49 @@ ---- nslu2-linksys-ramdisk-2.3r25/etc/rc.d/rc.1~ 2004-11-09 21:45:52.000000000 +1030 -+++ nslu2-linksys-ramdisk-2.3r25/etc/rc.d/rc.1 2004-11-09 21:44:27.000000000 +1030 -@@ -27,6 +27,14 @@ +--- nslu2-linksys-ramdisk-2.3r63/etc/rc.d/rc.1.orig 2006-02-24 20:48:18.000000000 -0600 ++++ nslu2-linksys-ramdisk-2.3r63/etc/rc.d/rc.1 2006-02-24 21:13:01.000000000 -0600 +@@ -3,6 +3,24 @@ #/sbin/ifconfig ixp0 hw ether 00:C0:02:01:01:04 /bin/echo "Starting Set CGI_ds.conf:"; /etc/rc.d/rc.bootbin; check_status +if ( [ -f /.ext3flash ] ) ; then -+ /bin/echo "Remounting /dev/sda1 as ext3flash:" -+ /bin/mount -o remount,rw,noatime /dev/sda1 -+ /bin/echo "Remounting /dev/sda2 as ext3flash:" -+ /bin/mount -o remount,rw,noatime /dev/sda2 ++ dsk="nodisk" ++ /bin/grep -q "^/dev/sda1 / ext3" /proc/mounts ++ if ( [ $? -eq 0 ] ) ; then ++ dsk="sda" ++ else ++ /bin/grep -q "^/dev/sdb1 / ext3" /proc/mounts ++ if ( [ $? -eq 0 ] ) ; then ++ dsk="sdb" ++ fi ++ fi ++ /bin/echo "Remounting /dev/${dsk}1 as ext3flash:" ++ /bin/mount -o remount,rw,noatime /dev/${dsk}1 ++ /bin/echo "Remounting /dev/${dsk}2 as ext3flash:" ++ /bin/mount -o remount,rw,sync,noatime /dev/${dsk}2 + /bin/echo "Removing swap from ext3flash:" -+ /sbin/swapoff /dev/sda3 ++ /sbin/swapoff /dev/${dsk}3 +fi - + /bin/echo "Restore time and timezone:"; /etc/rc.d/rc.rstimezone; check_status /bin/echo "Restore usrgrpshares:"; /etc/rc.d/rc.reset_usrgrpshare; check_status ---- nslu2-linksys-ramdisk-2.3r25/etc/rc.d/rc.quota~ 2004-11-11 00:05:21.000000000 +1030 -+++ nslu2-linksys-ramdisk-2.3r25/etc/rc.d/rc.quota 2004-11-11 00:04:52.000000000 +1030 -@@ -14,6 +14,11 @@ +--- nslu2-linksys-ramdisk-2.3r63/etc/rc.d/rc.quota.orig 2006-02-24 20:48:31.000000000 -0600 ++++ nslu2-linksys-ramdisk-2.3r63/etc/rc.d/rc.quota 2006-02-24 21:12:46.000000000 -0600 +@@ -8,6 +8,21 @@ echo "Done." fi +if ( [ -f /.ext3flash ] ) ; then -+ /bin/echo "Remounting /dev/sda1 as ext3flash:" -+ /bin/mount -o remount,rw,noatime /dev/sda1 ++ dsk="nodisk" ++ /bin/grep -q "^/dev/sda1 / ext3" /proc/mounts ++ if ( [ $? -eq 0 ] ) ; then ++ dsk="sda" ++ else ++ /bin/grep -q "^/dev/sdb1 / ext3" /proc/mounts ++ if ( [ $? -eq 0 ] ) ; then ++ dsk="sdb" ++ fi ++ fi ++ /bin/echo "Remounting /dev/${dsk}1 as ext3flash:" ++ /bin/mount -o remount,rw,noatime /dev/${dsk}1 +fi + if [ -x "/usr/bin/quotaon" ] diff --git a/packages/nslu2-binary-only/unslung-rootfs/security-fixes.patch b/packages/nslu2-binary-only/unslung-rootfs/security-fixes.patch index aeed5980f8..8517e7d06b 100644 --- a/packages/nslu2-binary-only/unslung-rootfs/security-fixes.patch +++ b/packages/nslu2-binary-only/unslung-rootfs/security-fixes.patch @@ -1,12 +1,7 @@ --- 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 -@@ -16,11 +16,11 @@ - - /bin/echo "Restore time and timezone:"; /etc/rc.d/rc.rstimezone; check_status - /bin/echo "Restore usrgrpshares:"; /etc/rc.d/rc.reset_usrgrpshare; check_status --/bin/echo "Generating telnet password:"; /usr/sbin/TelnetPassword; check_status -+#/bin/echo "Generating telnet password:"; /usr/sbin/TelnetPassword; check_status - #/bin/echo "Restore time and timezone:"; /etc/rc.d/rc.rstimezone; check_status +@@ -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 diff --git a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/telnet.htm b/packages/nslu2-binary-only/unslung-rootfs/telnet.htm index 7807f228a2..7807f228a2 100644 --- a/packages/nslu2-binary-only/unslung-rootfs-2.3r63/telnet.htm +++ b/packages/nslu2-binary-only/unslung-rootfs/telnet.htm diff --git a/packages/nslu2-binary-only/unslung-rootfs/unsling b/packages/nslu2-binary-only/unslung-rootfs/unsling index c78bb7bbfe..c8b3dc8662 100755 --- a/packages/nslu2-binary-only/unslung-rootfs/unsling +++ b/packages/nslu2-binary-only/unslung-rootfs/unsling @@ -1,33 +1,32 @@ #!/bin/sh -usage="Usage: $0 disk1|disk2" - -# Set target disk +usage="Usage: $0 [-nopw] disk1|disk2" +nopw=0 if [ $# -gt 1 ] ; then - echo $usage - exit 1 + if [ "$1" = "-nopw" ] ; then + nopw=1 + shift + fi fi +# Set target disk + if [ $# -eq 1 ] ; then if [ "$1" = "disk1" ] ; then + mtch="/dev/sdb1 /share/hdd/data ext3 rw 0 0" targ=/share/hdd/data + targconf=/share/hdd/conf flag=.sdb1root + htmlinfo="disk1, /dev/sdb1" + fixconf=0 elif [ "$1" = "disk2" ] ; then + mtch="/dev/sda1 /share/flash/data ext3 rw 0 0" targ=/share/flash/data + targconf=/share/flash/conf flag=.sda1root - elif [ "$1" = "hdd-data" ] ; then - targ=/share/hdd/data - flag=.sdb1root - elif [ "$1" = "hdd-conf" ] ; then - targ=/share/hdd/conf - flag=.sdb2root - elif [ "$1" = "flash-data" ] ; then - targ=/share/flash/data - flag=.sda1root - elif [ "$1" = "flash-conf" ] ; then - targ=/share/flash/conf - flag=.sda2root + htmlinfo="disk2, /dev/sda1" + fixconf=1 else echo $usage exit 1 @@ -37,15 +36,117 @@ else exit 1 fi +# Check that we can unsling at all! An unsling operation creates a new +# rootfs, but it also marks the flash rootfs (with a flag file such as +# ".sda1root") so that subsequent boots do not create the "var.state" +# and "dev.state" mounts. Without those mounts, though, an attempt to +# unsling will write a new rootfs on the target with an empty /dev +# directory, which doesnt' work really well. So this check is all about +# making sure that we are in a state in which we are capable of +# performing the unsling operation. + +echo "Checking if able to unsling..." +echo +m1="/dev/root /dev.state jffs2 rw 0 0" +m2="/dev/root /var.state jffs2 rw 0 0" +if ! grep "$m1" /proc/mounts >/dev/null 2>&1 || ! grep "$m2" /proc/mounts >/dev/null 2>&1 ; then + echo "Error: This system is unable to properly unsling because certain" + echo "required mounts (dev.state and/or var.state) are not available." + echo "This is most probably because you have already unslung this system." + echo + + if [ -f /.sda1root ] ; then + rm -f /.sda1root + elif [ -f /.sdb1root ] ; then + rm -f /.sdb1root + elif [ -f /.sda2root ] ; then + rm -f /.sda2root + elif [ -f /.sdb2root ] ; then + rm -f /.sdb2root + else + echo "However, in this case, the flags that indicate an already-unslung" + echo "system seem to be missing. Try restarting your NSLU2 to correct," + echo "but if the problem persists, try re-flashing your NSLU2." + exit 1 + fi + echo "The flags that indicate an already-unslung system have now been" + echo "removed and the required mounts should now become present after" + echo "reboot of the NSLU2." + echo + echo "1) Please unplug all drives from the NSLU2," + echo "2) reboot," + echo "3) and retry the unslinging process." + 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" +echo "Waiting for $targ ..." +CNT=120 +while [ $CNT -gt 0 ] +do + if grep "$mtch" /proc/mounts >/dev/null 2>&1 ; then + echo + echo "Target disk is $targ" + CNT=-1 + else + echo -ne "\r$CNT " + sleep 1 + CNT=`expr $CNT - 1` + fi +done +if [ $CNT -eq 0 ] ; then + echo + echo "Error: $targ ($htmlinfo) is not a mounted disk" + exit 1 +fi + +# Do a quick sanity check to make sure we're unslinging to a disk that's been +# formatted by the Linksys code. + +echo "Checking that $targ has been properly formatted..." +if ! [ -d $targ/public ] || ! [ -f $targconf/.dongle ] || ! [ -f $targconf/passwd ] ; then + echo + echo "Error: $targ does not appear to have been formatted by the" + echo "Linksys formatting utility. Please go to the web interface," + echo "and format the drive before unslinging." exit 1 fi +echo "Checking that $targ is clean..." +if [ -f $targ/.unslung ] ; then + echo + echo "Error: $targ appears to have already been unslung to:" + cat $targ/.unslung + echo "Please go to the web interface, and format the drive before" + echo "unslinging." + echo + echo "(Or, if you wish to unsling without removing the current root" + echo "filesystem, simply remove the file $targ/.unslung and retry" + echo "the unsling -- but beware, you enter uncharted territory!)" + exit 1 +fi + +# Change the root password +if [ "$nopw" -eq 0 ] ; then + echo + echo "Please enter the new root password. This will be the new root" + echo "password used when the NSLU2 boots up with or without disks" + echo + passwd + if [ $? -ne 0 ] ; then + echo "Error setting password." + exit 1 + fi + cp /etc/passwd /usr/local/passwd +# cp /etc/passwd $targconf/passwd + grep "^root:" /etc/passwd >$targconf/passwd.new + grep -v "^root:" $targconf/passwd >>$targconf/passwd.new + mv $targconf/passwd $targconf/passwd.save + mv $targconf/passwd.new $targconf/passwd + chmod 644 $targconf/passwd +fi + # Start at the root directory cd / @@ -59,7 +160,8 @@ fi # Copy the complete rootfs to the target. -echo "Copying the complete rootfs from / to $targ." +echo +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 @@ -74,6 +176,44 @@ 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 +echo "Linking /etc/motd to the unslung motd on target disk." +rm -f $targ/etc/motd ; ln -s /etc/motd-un $targ/etc/motd + +echo "Updating /home/httpd/html/home.htm with target disk info." +sedcommand="s#Running.from.Internal.Flash#Unslung to $htmlinfo#" +rm -f $targ/home/httpd/html/home.htm_bak +cp $targ/home/httpd/html/home.htm $targ/home/httpd/html/home.htm_bak +sed "$sedcommand" $targ/home/httpd/html/home.htm_bak > $targ/home/httpd/html/home.htm +chmod 644 $targ/home/httpd/html/home.htm + +# Create a few empty files that are expected to be present +touch $targ/var/log/wtmp +chmod 644 $targ/var/log/wtmp +touch $targ/var/run/utmp +chmod 644 $targ/var/run/utmp + +# The "user password" Linksys utility is hard-coded to /share/hdd; also the +# QuickSet utility seems to have some difficulty as well. Ugly fix is to +# add symlinks if we are unslinging to /share/flash. It might seem more +# reasonable to point to /etc/passwd, for example, but this approach seems to +# be more likely to avoid looping symlinks. + +if [ "$fixconf" -eq 1 ] ; then + ln -s ../../flash/conf/.htpasswd $targ/share/hdd/conf/.htpasswd + ln -s ../../flash/conf/backup_sh.conf $targ/share/hdd/conf/backup_sh.conf + ln -s ../../flash/conf/config $targ/share/hdd/conf/config + ln -s ../../flash/conf/group $targ/share/hdd/conf/group + ln -s ../../flash/conf/passwd $targ/share/hdd/conf/passwd + ln -s ../../flash/conf/server.log $targ/share/hdd/conf/server.log + ln -s ../../flash/conf/share $targ/share/hdd/conf/share + ln -s ../../flash/conf/share.info $targ/share/hdd/conf/share.info + ln -s ../../flash/conf/smb.conf $targ/share/hdd/conf/smb.conf + ln -s ../../flash/conf/smbpasswd $targ/share/hdd/conf/smbpasswd + ln -s ../../flash/conf/tmp $targ/share/hdd/conf/tmp + ln -s ../../flash/conf/upgrade $targ/share/hdd/conf/upgrade + ln -s ../../flash/conf/usrgrp.info $targ/share/hdd/conf/usrgrp.info +fi + # Create the boot flag file. rm -f /.sd??root $targ/.sd??root @@ -82,4 +222,12 @@ echo "Creating /$flag to direct switchbox to boot from $targ." echo > /$flag echo > $targ/$flag +# Done + +echo +echo "Unsling complete." +echo +echo "Leave the device $htmlinfo plugged in, and reboot" +echo "in order to boot this system up into unslung mode." + exit 0 diff --git a/packages/nslu2-binary-only/unslung-rootfs/upgrade.htm b/packages/nslu2-binary-only/unslung-rootfs/upgrade.htm index cdb611dfd2..88644e305e 100644 --- a/packages/nslu2-binary-only/unslung-rootfs/upgrade.htm +++ b/packages/nslu2-binary-only/unslung-rootfs/upgrade.htm @@ -70,8 +70,8 @@ function checkUpgrade() <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> - <a href="/Management/setup.cgi?next_file=lan.htm" class="submenu">Setup</a> - </td> + <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> @@ -94,11 +94,14 @@ function checkUpgrade() <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> @@ -107,10 +110,9 @@ function checkUpgrade() <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> + <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> diff --git a/packages/nslu2-binary-only/unslung-rootfs/wait-for-quotacheck.patch b/packages/nslu2-binary-only/unslung-rootfs/wait-for-quotacheck.patch index ffdda1b88b..71c8e9caec 100644 --- a/packages/nslu2-binary-only/unslung-rootfs/wait-for-quotacheck.patch +++ b/packages/nslu2-binary-only/unslung-rootfs/wait-for-quotacheck.patch @@ -1,9 +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,5 +14,5 @@ +@@ -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.3r29.bb b/packages/nslu2-binary-only/unslung-rootfs_2.3r29.bb deleted file mode 100644 index af0ad3d15e..0000000000 --- a/packages/nslu2-binary-only/unslung-rootfs_2.3r29.bb +++ /dev/null @@ -1,104 +0,0 @@ -SECTION = "base" - -PR = "r9" - -DEPENDS = "nslu2-linksys-libs" - -SRC_URI = "http://nslu.sf.net/downloads/nslu2-linksys-ramdisk-2.3r29.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.3r29" - -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.3R29-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" |