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
|
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
PRE-INSTALLATION CONSIDERATIONS
1) It is strongly recommended that you test telnet Redboot access
first. See http://www.nslu2-linux.org/wiki/HowTo/TelnetIntoRedBoot
2) Because you can now make changes to the root filesystem in the
internal flash storage, you no longer need to have an external
disk to use the Unslung firmware (except if you want to install
more than what can fit in the meagre spare space in the internal
flash storage).
3) If you do want to use an external disk as the target for package
installation, then it is absolutely required that the disk is (or has
previously been) formatted by the NSLU2. It is possible to upgrade
from Unslung 1.x or Unslung 2.x to Unslung 3.x without reformatting
your disk. The unsling script will not touch anything in /unslung
or /opt on your disk, so make sure all your file modifications are
in those directories, as you were warned in the README file in
Unslung 1.x and Unslung 2.x :-)
INSTALLATION DETAILS
0) Please verify that any disks you are going to connect to the NSLU2
are recognised 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) Make sure your NSLU2 is working properly, and remove any disks that
you may have plugged into the NSLU2 (upgrades must always be
performed with *no* hard disks or flash disks attached).
2) If you are installing Unslung 3.x onto an NSLU2 unit which has the
standard Linksys firmware or Unslung versions 1.x or 2.x installed,
then just flash unslung-standard-3.x.img as you normally would
flash new firmware (using the web interface Upgrade Firmware page).
3) If you are installing Unslung 3.x onto an NSLU2 unit which already
has Unslung version 3.x installed, then you must put the NSLU2 into
maintenance mode before you can use the web interface to flash a new
version. Just click the "Enter Maintenance Mode" link on the web
interface Upgrade Firmware page, wait for the NSLU2 to reboot, and
then flash the new firmware in the normal manner. The NSLU2 will
reboot after the flashing is complete.
4) Verify your NSLU2 is working normally again at this point. In
particular, you should ensure that all your disks are still
recognised as they were before you updated the firmware. Once you
have confirmed normal operation, make sure you unplug all disks
before the next step.
5) Make sure that you do *not* have a disk plugged in when you reboot to
perform the next part of the installation.
'UNSLINGING' DETAILS
0) Note that this only has to be done when you update the firmware,
and because Unslung 3.x now runs completely from the internal flash
memory, it is no longer necessary to "unsling" to an external disk
unless you wish to store downloadable packages on that disk - which
you will probably want to do, because the internal flash memory
only has enough spare room to one or two very small packages.
Also note that you should not have a disk plugged in at this stage.
1) Enable telnet by going to http://192.168.1.77/Management/telnet.cgi,
and press the enable button. Note that if you had previously changed
the IP address of your NSLU2 from 192.168.1.77 to something else, then
you should use that new IP address to enable telnet. Also note that
you should use the username "admin" and password "admin" for the web
interface at this point (as no disks are attached, the default
username and password is the only way to access the Management web
pages).
2) Make sure you have **** NO DISKS ATTACHED AT THIS TIME ****
If you plug a disk in before you complete the telnet connection,
then the NSLU2 will pick up the Linksys password from the disk,
and you will not be able to telnet into it. So don't have any
disks attached at this point.
Make sure you have **** NO DISKS ATTACHED AT THIS TIME ****
(Sorry for the capitals, this step seems to trip up some people.)
OK, now that you don't have any disks attached, you can proceed and
telnet into the NSLU2 using the username root and password uNSLUng.
3) Identify which drive you wish you "unsling", and plug it in.
Wait a minute or two while the disk is mounted. If the disk has not
been previously formatted on the NSLU2, then now is the time to do
that. Make sure that the drive is recognised in the web interface.
4) In the telnet session, run "/sbin/unsling". Note that starting with
Unslung 3.x, the external disk is no longer used for the root
filesystem, so only a few documentation files will be copied to
the "conf" partition (not the "data" partition). Once you
"unsling" to an external disk on a particular port (Disk 1 or
Disk 2), it is important that you keep that disk continually
plugged into that same port whenever the NSLU2 is turned on.
5) Note that unsling will not change the password on your disk, so if
you had previously changed the password on a disk, then your password
will not be changed. Also note that simply editing the /etc/passwd
file is not enough to permanently change a password. See the NSLU2
wiki for more details.
6) Reboot.
Congratulations, you're now Unslung!
Make sure you add an entry to the "The Unslung 3.x" table in the Yahoo
group. Just use the next free integer for your Unslung number.
If you make no further changes, your NSLU2 will continue to operate
normally. But to customize things, you'll be downloading packages and
adding stuff to the /unslung directory on the external disk (or even
in the internal flash memory) using diversion scripts.
If you "unsling" an external disk, then downloaded packages will be
installed onto that external disk. The number of packages that you
can install is only limited by the size of the "conf" partition on the
external disk. 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.
POST-INSTALLATION DETAILS
Diversion scripts go into /unslung (which is normally a symbolic link
to the unslung directory on the conf partition of an external disk).
You can divert as many or as few scripts as you like. Simply add the
name of the standard rc script into /unslung and it will be run.
For example, I have a script /unslung/rc.local:
#! /bin/sh
/opt/bin/do_foo
return 1
That will run at the beginning of the normal /etc/rc.d/rc.local, and then
the rest of the factory rc.local will be executed. If I do NOT want to run
the factory rc.local, my script would be
#!/bin/sh
/opt/bin/do_foo
return 0
That is, if the diversion script returns with something other than 0, it will
run the rest of the factory script.
Note that any variable definitions or function declarations are allowed to
happen before the diversion script is called. This allows you to use the
variables and functions defined by the factory script.
PACKAGE INSTALLATION
0) Note that you must have network connectivity to the package
repository at http://ipkg.nslu2-linux.org before proceeding.
You must also confirm that your DNS server address is set in the
web interface, or the NSLU2 will not be able to find the site.
1) Run "ipkg update" on the NSLU2.
2) Run "ipkg list" to see the available packages.
3) Run "ipkg install <package-name>" to install them.
ADDITIONAL INFORMATION:
1) The unsling firmware and associated scripts will never touch any
files under /unslung or /opt, so please store all your additional
files there.
2) The diversion of startup scripts is done at the lowest granularity,
so you can, for instance, just divert the rc.xinetd script if you
want, and leave all the others unchanged.
3) The diversion mechanism allows you to add to, or replace, the Linksys
script functionality.
4) Note that telnet is not enabled by default - there is an openssh
package available to replace telnet access with secure shell
access. The rationale behind not enabling it by default is to
ensure that an NSLU2 with Unslung firmware has the same network
footprint as the standard firmware.
5) This simple diversion script will enable telnet on boot
[ Store the following in /unslung/rc.xinetd ]
#!/bin/sh
echo "telnet stream tcp nowait root /usr/sbin/telnetd" > /etc/inetd.conf
# Additional lines must append (using >>), ie:
# echo "ftp stream tcp nowait root /usr/sbin/ftpd -a=passwd" >> /etc/inetd.conf
return 1
6) The Unslung firmware will automatically execute any scripts
which are in /opt/etc/init.d - and this is where any packages
put their startup scripts so that they execute on each boot.
CHANGELOG:
1.11:
First public release
1.12:
Added a symlink to slingbox for gzip. Added flashfs (as simple utility for preserving
user files across hard disk formats during beta testing).
1.13:
Added LD_LIBRARY_PATH to /etc/profile (only works for telnet and ssh
access, not for serial or diversion scripts).
1.14:
Added Unslung Doc link to the User Guide page.
2.3:
Moved development to OpenEmbedded.
2.4:
Updated to the latest ipk binary instead of the simple script.
2.5:
Added the real wget (instead of using the busybox version). This is
so we can support .netrc files for commercial packages.
2.6:
Fixed the unsling script so it removes conflicting files on an upgrade.
2.7:
Began development of the -able variant.
2.8:
Added the patch for genesys enclosures.
2.9:
Reorganised the various variants into a more consistent scheme.
2.10:
Added the ext3flash-on-disk1 functionality.
2.11:
Added the README to /opt/doc.
2.12:
First public release of 2.x firmware.
3.1:
Added jffs2 functionality.
3.2:
Incorporated switchbox functionality.
3.3:
Added ramdisks for /dev and /var to reduce internal flash writes.
3.4:
Replaced flashfs script with new resling script.
3.5:
Added code to reinitialise /etc/mtab on boot.
3.6:
Mounted /dev and /var jffs2 directories as /dev.state and /var.state
so that they can be used for persistent changes which are used to
populate the ramdisks on the next boot.
3.7:
Added "Pluggable Personalities" - now runs diversion scripts from both
the internal jffs2 area and also from an external drive attached at
boot time.
3.8:
Enabled mounting of external drives earlier in the boot process, so
that the rc, rc.sysinit, and rc.1 scripts can be diverted by external
diversion scripts on an attached drive.
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.
|