summaryrefslogtreecommitdiff
path: root/packages/nslu2-binary-only/unslung-rootfs-2.3r25/README
blob: 1c1c9c13852d774665bc4b374a3d24602fb4d8e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
UNSLUNG-3.x family release README

Unslung is a replacement firmware image for the Linksys NSLU2 which is
designed to allow you to make changes to the root filesystem
(including the installation of downloadable packages) while still
providing (almost) all the standard product functionality.

This is intended to be a way of distributing and loading new packages
for the NSLU2, with minimal changes to the standard user interface and
firmware.

Note that you must follow the steps in this README *exactly*.  Do not
skip any steps, and do not skip ahead thinking you know what you are
doing and don't need to follow instructions step by step.

If at any time you have any questions concerning the installation or
operation of Unslung firmware, your first port of call should be the
NSLU2-Linux wiki at:

	http://www.nslu2-linux.org

In partiticular, there is a Frequently Asked Questions page, and also
quite a few Information and HowTo pages.  Read them all before asking
questions on the mailing list or the IRC channel.

The changes in the UNSLUNG 3.x firmware from the standard Linksys
2.3R25 can be found at:

	http://www.nslu2-linux.org/wiki/Unslung/UnslungStandard

For more information about the Unslung firmware, including details on
how to build it from source code yourself, look at:

	http://www.nslu2-linux.org/wiki/Unslung

-------------------------------------------------------------------------------

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) It is strongly recommended that you test telnet Redboot access
   first.  See http://www.nslu2-linux.org/wiki/HowTo/TelnetIntoRedBoot

2) Because you can now make changes to the root filesystem in the
   internal flash storage, you no longer need to have an external
   disk to use the Unslung firmware (except if you want to install
   more than what can fit in the meagre spare space in the internal
   flash storage).

3) If you do want to use an external disk as the target for package
   installation, then it is absolutely required that the disk is (or has
   previously been) formatted by the NSLU2.  It is possible to upgrade
   from Unslung 1.x or Unslung 2.x to Unslung 3.x without reformatting
   your disk.  The unsling script will not touch anything in /unslung
   or /opt on your disk, so make sure all your file modifications are
   in those directories, as you were warned in the README file in
   Unslung 1.x and Unslung 2.x :-)

 
FIRMWARE INSTALLATION DETAILS

0) Please verify that any disks you are going to connect to the NSLU2
   are recognized and working properly *before* updating your
   firmware.  

	- The only exception to this, of course, are those enclosures
          that the stock firmware does not support, but the Unslung 
          firmware does support.

1) Shutdown the NSLU2, and remove any disks that you may have plugged 
   into the NSLU2.  Power back up the NSLU2.

	- Firmware upgrades must always be performed with *no* hard disks
          or flash disks attached.

2) If you are installing Unslung 3.x onto an NSLU2 unit with Linksys 
   standard firmware *or* Unslung 1.x or 2.x, go to step 2-a.  If you
   are installing Unslung 3.x onto an NSLU2 unit with version 3.x already
   installed, go to step 2-b.

	2-a) Flash unslung-standard-3.x.bin as you normally would flash new
             firmware (using the web interface "Upgrade Firmware" page).
   
	2-b) You must put the NSLU2 into maintenance mode before you can 
             use the web interface to flash a new version.  Just click the
            "Enter Maintenance Mode" link on the web interface "Upgrade 
             Firmware" page, wait for the NSLU2 to reboot, and then flash 
             the new firmware in the normal manner.

	- The NSLU2 will reboot after the flashing is complete.

3) Shutdown the NSLU2 (again), attach disk(s), and power it back up.

4) Verify your NSLU2 is working normally again at this point - in the 
   web interface.  In  particular, you should ensure that all your disks are
   still recognized as they were before you updated the firmware.

5) Shutdown the NSLU2 and unplug *ALL* attached disks.
 
	- You must NOT have any disk plugged into the NSLU2 when you reboot
          to perform the next part of installation - the "Unslinging".


'UNSLINGING' DETAILS

0) Power up the NSLU2 without any disks connected.

   	- This only has to be done when you update the firmware, and 
          because Unslung 3.x now runs completely from the internal flash
          memory, it is no longer necessary to "unsling" to an external 
          disk unless you wish to store downloadable packages on that disk
          - which you will probably want to do, because the internal flash
          memory only has enough spare room for one or two very small packages.

   ***** To reiterate, you should not have a disk plugged in at this stage.
         If you powered up your NSLU2 with a disk attached, shutdown the NSLU2,
         unplug the disks, and power up again.

1) Enable telnet by going to "http://192.168.1.77/Management/telnet.cgi", 
   and press the enable button.  

	- If you had previously changed the IP address of your NSLU2 from
           192.168.1.77 to something else, then you should use that new IP
          address to enable telnet.  Also note that you should use the 
          username "admin" and password "admin" for the web interface at this
          point (as no disks are attached, the default username and password 
          is the only way to access the Management web pages).

	- Make sure you have **** NO DISKS ATTACHED AT THIS TIME ****

   	- If you plug a disk in before you complete the telnet connection,
          then the NSLU2 will pick up the Linksys password from the disk,
          and you will not be able to telnet into it.  So don't have any
          disks attached at this point.

   ***** Make sure you have **** NO DISKS ATTACHED AT THIS TIME ****

2) OK, now that you don't have any disks attached, you can proceed and
   telnet into the NSLU2 using the username root and password uNSLUng.

3) Identify which drive you wish you "unsling", and plug it in.
   Wait a minute or two while the disk is mounted.  
	
	- If the disk has not been previously formatted on the NSLU2, then 
          now is the time to do that.  Make sure that the drive is recognized
          in the web interface.

4) In the telnet session, run "/sbin/unsling". 

	- Starting with Unslung 3.x, the external disk is no longer used for 
          the root filesystem, so only a few documentation files will be 
          copied to the "conf" partition (not the "data" partition).  

	- Once you "unsling" to an external disk on a particular port (Disk 1
          or Disk 2), it is important that you keep that disk continually
          plugged into that same port whenever the NSLU2 is turned on.

   ***** Unsling will not change the password on your disk, so if you had
         previously changed the password on a disk, then your password will not
         be changed.  Also note that simply editing the /etc/passwd file is not
         enough to permanently change a password.  See the NSLU2 wiki for
         more details.

5) Reboot.

***** Congratulations, you're now Unslung! *****

Make sure you add an entry to the "The Unslung 3.x" table in the Yahoo
group.  Just use the next free integer for your Unslung number.

If you make no further changes, your NSLU2 will continue to operate
normally.  But to customize things, you'll be downloading packages and
adding stuff to the /unslung directory on the external disk (or even
in the internal flash memory) using diversion scripts.

Read further to expand the capabilities of your uNSLUng NSLU2!  Enjoy!

---------------------------------------------------------------------------------

If you "unsling" an external disk, then downloaded packages will be
installed onto that external disk.  The number of packages that you
can install is only limited by the size of the "conf" partition on the
external disk.  And if you run out of room on the "conf" partition,
you can always put symlinks across to the "data" partition too.

If you are experienced with the Linux operating system, then you can
also make changes directly to the root filesystem, and these changes
are persistent across reboots.

You are advised to use diversion scripts (see below) on an external
disk to modify the behaviour of the NSLU2 rather than editing system
files directly (as this will allow you to upgrade the Unslung firmware
in the future without having to make all your changes again).

If you do need to edit system files directly, then you can use the
"resling" script to save and load your modified system files.

DIVERSION SCRIPT DETAILS

Diversion scripts go into /unslung (which is normally a symbolic link
to the unslung directory on the conf partition of an external disk).
You can divert as many or as few scripts as you like.  Simply add the
name of the standard rc script into /unslung and it will be run.

For example, I have a script /unslung/rc.local:

#! /bin/sh
/opt/bin/do_foo
return 1

That will run at the beginning of the normal /etc/rc.d/rc.local, and then 
the rest of the factory rc.local will be executed.  If I do NOT want to run
the factory rc.local, my script would be

#!/bin/sh
/opt/bin/do_foo
return 0

That is, if the diversion script returns with something other than 0, it will
run the rest of the factory script.  

Note that any variable definitions or function declarations are allowed to
happen before the diversion script is called.  This allows you to use the
variables and functions defined by the factory script.

PACKAGE INSTALLATION 

0) Note that you must have network connectivity to the package
   repository at http://ipkg.nslu2-linux.org before proceeding.
   You must also confirm that your DNS server address is set in the
   web interface, or the NSLU2 will not be able to find the site.
1) Run "ipkg update" on the NSLU2.
2) Run "ipkg list" to see the available packages.
3) Run "ipkg install <package-name>" to install them.

ADDITIONAL INFORMATION:

1) The unsling firmware and associated scripts will never touch any
   files under /unslung or /opt, so please store all your additional
   files there.

2) The diversion of startup scripts is done at the lowest granularity,
   so you can, for instance, just divert the rc.xinetd script if you
   want, and leave all the others unchanged.

3) The diversion mechanism allows you to add to, or replace, the Linksys
   script functionality.

4) Note that telnet is not enabled by default - there is an openssh
   package available to replace telnet access with secure shell
   access.  The rationale behind not enabling it by default is to
   ensure that an NSLU2 with Unslung firmware has the same network
   footprint as the standard firmware.

5) This simple diversion script will enable telnet on boot
   
    [ Store the following in /unslung/rc.xinetd ]

    #!/bin/sh
    echo "telnet  stream  tcp     nowait  root    /usr/sbin/telnetd" > /etc/inetd.conf
    # Additional lines must append (using >>), ie:
    # echo "ftp   stream  tcp     nowait  root    /usr/sbin/ftpd -a=passwd" >> /etc/inetd.conf
    return 1

6) The Unslung firmware will automatically execute any scripts
   which are in /opt/etc/init.d - and this is where any packages
   put their startup scripts so that they execute on each boot.

CHANGELOG:

1.11:

First public release

1.12:

Added a symlink to slingbox for gzip.  Added flashfs (as simple utility for preserving
user files across hard disk formats during beta testing).

1.13:

Added LD_LIBRARY_PATH to /etc/profile (only works for telnet and ssh
access, not for serial or diversion scripts).

1.14:

Added Unslung Doc link to the User Guide page.

2.3:

Moved development to OpenEmbedded.

2.4:

Updated to the latest ipk binary instead of the simple script.

2.5:

Added the real wget (instead of using the busybox version).  This is
so we can support .netrc files for commercial packages.

2.6:

Fixed the unsling script so it removes conflicting files on an upgrade.

2.7:

Began development of the -able variant.

2.8:

Added the patch for genesys enclosures.

2.9:

Reorganised the various variants into a more consistent scheme.

2.10:

Added the ext3flash-on-disk1 functionality.

2.11:

Added the README to /opt/doc.

2.12:

First public release of 2.x firmware.

3.1:

Added jffs2 functionality.

3.2:

Incorporated switchbox functionality.

3.3:

Added ramdisks for /dev and /var to reduce internal flash writes.

3.4:

Replaced flashfs script with new resling script.

3.5:

Added code to reinitialise /etc/mtab on boot.

3.6:

Mounted /dev and /var jffs2 directories as /dev.state and /var.state
so that they can be used for persistent changes which are used to
populate the ramdisks on the next boot.

3.7:

Added "Pluggable Personalities" - now runs diversion scripts from both
the internal jffs2 area and also from an external drive attached at
boot time.

3.8:

Enabled mounting of external drives earlier in the boot process, so
that the rc, rc.sysinit, and rc.1 scripts can be diverted by external
diversion scripts on an attached drive.

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 behaviour 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.