merge of 8ac4847056fba1c5b2b9ba03a8b6cb16c799aa19
[vuplus_openembedded] / packages / nslu2-binary-only / unslung-rootfs / NOTES
1 Unslung-6.x Family Release Notes
2
3 Unslung is a replacement firmware image for the Linksys NSLU2 which is designed
4 to allow you to make changes to the root filesystem (including the installation
5 of downloadable packages) while still providing all the standard product
6 functionality.
7
8 If, at any time, you have any questions concerning the installation or
9 operation of Unslung firmware, your first port of call should be the
10 NSLU2-Linux wiki at:
11
12         http://www.nslu2-linux.org
13
14 Specifically, check the HowTos and the Frequently Asked Questions before
15 posting to the mailing list or asking a question in the IRC channel
16 [#nslu2-general @ irc.freenode.net].
17
18 OK! Now that that's out of the way...
19
20 This file is provided to give general information and usage notes for the
21 Unslung 6.x firmware.  If you are looking for installation instructions, please
22 stop now and go to the README file.  Follow the README instructions WORD for
23 WORD to keep from turning your NSLU2 into a brick.  The information contained
24 in this file will make more sense if you have already "unslung" your NSLU2.
25
26 --------------------------------------------------------------------------------
27
28 These "Notes" are divided into four sections:
29
30      1 - GENERAL INFORMATION
31      2 - IPKG PACKAGES
32      3 - DIVERSION SCRIPTS
33      4 - CHANGELOG
34
35
36 GENERAL INFORMATION
37
38 As stated above, Unslung firmware is a replacement firmware image for the
39 Linksys NSLU2.  The Unslung firmware is intended to be used for loading new
40 packages (giving enhanced or additional functionality) with minimal changes
41 to the standard user interface and firmware.  The differences in the Unslung 6.x
42 firmware from the standard Linksys 2.3R63 firmware can be found at:
43
44         http://www.nslu2-linux.org/wiki/Unslung/UnslungFeatures
45
46 For more information about the Unslung firmware, including details on how to
47 build it from source code yourself, look at:
48
49         http://www.nslu2-linux.org/wiki/Unslung
50
51 There are several assumptions made in this Notes.  One, you've successfully
52 unslung your NSLU2, and can verify the basic Linksys functionality (samba
53 users, groups, and shares setup with the Linksys interface).  Two, that you can
54 get telnet or ssh shell access to your NSLU2 from any computer on the same
55 network as the NSLU2.  Three, that you have read and understand the NSLU2-linux
56 community rules at:
57
58      http://www.nslu2-linux.org/wiki/Main/HomePage
59
60 If you understand the third assumption, then you also understand that there is
61 an emphasis on using and developing the NSLU2-Linux wiki.  Clarifications and
62 further documentation is always welcomed on the wiki.
63
64 If you are experienced with the Linux operating system, then you can make
65 changes directly to the root filesystem - changes which are persistent across
66 reboot.  If you want to get involved, then check the NSLU2-linux wiki at:
67
68      http://www.nslu2-linux.org/wiki/Main/HowToGetInvolved
69
70
71 IPKG PACKAGES
72
73 Packages require you to be running Unslung firmware (as you may have already
74 guessed!)  In general, ipkg packages are commonly available software packages
75 that have been ported to the NSLU2 - giving enhanced or additional
76 functionality.  If you run into problems or have specific question with a
77 certain package, you should look on the Internet for the general documentation
78 about the package first.  If your problem is specific to the NSLU2 port, then
79 check for further documentation for the corresponding package on the
80 NSLU2-Linux wiki at:
81
82      http://www.nslu2-linux.org/wiki/Unslung/Packages
83
84 When you "unsling" an external disk (check the README for instructions),
85 downloaded packages will be installed onto that external disk.  The number of
86 packages that you can install is only limited by the size of the "data"
87 partition on the external disk.  Note that you *must* *not* install any
88 packages before you have booted with an external "Unslung" disk.  To do so will
89 almost certainly cause your internal jffs2 flash memory become full, and cause
90 you to have to reflash your NSLU2.
91
92 Package Installation Details
93
94      1) Check for network connectivity to the package repository from the NSLU2
95           first:  "ping ipkg.nslu2-linux.org"
96
97           - If this does not work, then please check the NSLU2 DNS settings in
98                the web interface (under "Administration", "LAN").
99
100      3) Update the list of available packages from new feeds:  "ipkg update"
101
102      4) Check the list of available packages for ones that you want on your
103           NSLU2:  "ipkg list"
104
105      5) Install the packages:  "ipkg install <package-name>"
106
107 Most packages put their startup scripts into /opt/etc/init.d - which the
108 Unslung firmware automatically runs at boot.  Some other packages are run from
109 the cron or xinetd daemons.
110
111 You can also check the ipkg command arguments simply by typing "ipkg" at the
112 prompt.
113
114
115 DIVERSION SCRIPTS
116
117 Diversion scripts are used to start packages, set variables or function
118 definitions at the time of the NSLU2 boot.  The diversion mechanism allows you
119 to add to, or even replace the Linksys script functionality.  They "divert" the
120 normal boot scripts to perform the needed action(s) and then can either "return
121 1" to continue normal factory script progress or "return 0" to abort the
122 diverted factory script.  The diversion of startup scripts is done at the
123 lowest granularity, so you can just divert the rc.xinetd script and leave all
124 others unchanged.  You are advised to use diversion scripts rather than editing
125 system files directly (as this will allow you to upgrade the Unslung firmware
126 in the future without having to make all of your changes again).
127
128      - Note:  If you do need to edit the system files directly, you can use the
129           "resling" script to save and load your modified system files.  See
130           the NSLU2-Linux wiki at:
131
132           http://www.nslu2-linux.org/wiki/Unslung/ReSling
133
134 Diversion scripts go in the /unslung directory (you may have to create that
135 directory first).  Note that after you have unslung to an external disk, then
136 the diversion scripts will be stored on that external disk (along with the rest
137 of the root filesystem).  This means that recovering from an incorrect
138 diversion script is as simple as powering off, unplugging the disk, powering
139 on, hot-plugging the disk (note that the diversion scripts will only run if the
140 disk is attached at boot), and fix or remove the diversion script.
141
142 You may divert as many or as few scripts as you like. Simply add the name of
143 the standard rc script into the appropriate /unslung directory and it will be
144 run.
145
146 For example, I have a script /unslung/rc.local:
147
148 #! /bin/sh
149 /opt/bin/do_foo
150 return 1
151
152 That will run at the beginning of the normal /etc/rc.d/rc.local, and then
153 the rest of the factory rc.local will be executed.  If I do NOT want to run
154 the factory rc.local, my script would be:
155
156 #!/bin/sh
157 /opt/bin/do_foo
158 return 0
159
160 That is, if the diversion script returns with something other than 0, it will
161 run the rest of the factory script.
162
163 Note that any variable definitions or function declarations are allowed to
164 happen before the diversion script is called.  This allows you to use the
165 variables and functions defined by the factory script.
166
167 Also not that telnet is not enabled by default - there is an openssh package
168 and a dropbear package that either can replace telnet access with secure shell
169 access.
170
171 OpenSSH is the simplest to install:
172
173      - OpenSSH package details on NSLU2-Linux wiki at:
174           http://www.nslu2-linux.org/wiki/HowTo/UseOpenSSHForRemoteAccess
175
176 Dropbear is preferred by some:
177
178      - Dropbear package details on NSLU2-Linux wiki at:
179           http://www.nslu2-linux.org/wiki/HowTo/UseDropBearForRemoteAccess
180
181 The rationale behind not enabling telnet by default is ensure that an Unslung
182 NSLU2 has the same network footprint as a stock NSLU2 with Linksys firmware.
183 That said, if you want to enable telnet on boot, then install the xinetd
184 package (which enables telnet by default).
185
186
187 CHANGELOG
188
189 1.11:
190
191 First public release
192
193 1.12:
194
195 Added a symlink to slingbox for gzip.  Added flashfs (as simple utility for
196 preserving user files across hard disk formats during beta testing).
197
198 1.13:
199
200 Added LD_LIBRARY_PATH to /etc/profile (only works for telnet and ssh access,
201 not for serial or diversion scripts).
202
203 1.14:
204
205 Added Unslung Doc link to the User Guide page.
206
207 2.3:
208
209 Moved development to OpenEmbedded.
210
211 2.4:
212
213 Updated to the latest ipk binary instead of the simple script.
214
215 2.5:
216
217 Added the real wget (instead of using the busybox version).  This is so we can
218 support .netrc files for commercial packages.
219
220 2.6:
221
222 Fixed the unsling script so it removes conflicting files on an upgrade.
223
224 2.7:
225
226 Began development of the -able variant.
227
228 2.8:
229
230 Added the patch for genesys enclosures.
231
232 2.9:
233
234 Reorganized the various variants into a more consistent scheme.
235
236 2.10:
237
238 Added the ext3flash-on-disk1 functionality.
239
240 2.11:
241
242 Added the README to /opt/doc.
243
244 2.12:
245
246 First public release of 2.x firmware.
247
248 3.1:
249
250 Added jffs2 functionality.
251
252 3.2:
253
254 Incorporated switchbox functionality.
255
256 3.3:
257
258 Added ramdisks for /dev and /var to reduce internal flash writes.
259
260 3.4:
261
262 Replaced flashfs script with new resling script.
263
264 3.5:
265
266 Added code to reinitialize /etc/mtab on boot.
267
268 3.6:
269
270 Mounted /dev and /var jffs2 directories as /dev.state and /var.state so that
271 they can be used for persistent changes which are used to populate the ramdisks
272 on the next boot.
273
274 3.7:
275
276 Added "Pluggable Personalities" - now runs diversion scripts from both the
277 internal jffs2 area and also from an external drive attached at boot time.
278
279 3.8:
280
281 Enabled mounting of external drives earlier in the boot process, so that the
282 rc, rc.sysinit, and rc.1 scripts can be diverted by external diversion scripts
283 on an attached drive.
284
285 3.9:
286
287 Moved a number of -able kernel features (such as USB devfs support) into
288 -standard.
289
290 3.10:
291
292 Added support for unslung-start and unslung-stop diversion scripts, and package
293 shutdown scripts (K??foo).
294
295 3.11:
296
297 Added NFS kernel support (both client and server, and both V2 and V3
298 protocols).
299
300 3.12:
301
302 Added basic maintenance mode support.  If /.ramdisk exists in the jffs2
303 filesystem, then the jffs2 filesystem is copied into a ramdisk on boot, and run
304 from there.  This allows for updating firmware using the web interface.
305
306 3.13:
307
308 Added recovery mode support.  If a viable root filesystem cannot be found, then
309 switchbox drops into a basic recovery shell, with a telnet daemon running as
310 192.168.1.77 with no password.  This behavior can also be forced with a
311 /.recovery file in the jffs2 filesystem.
312
313 3.14:
314
315 Added web control of maintenance mode.  You have to enable maintenance mode and
316 reboot before the firmware upgrade page allows you to enter a filename for the
317 new firmware.
318
319 3.15:
320
321 Added confirmation dialog boxes to the maintenance mode web control.
322
323 3.16:
324
325 First public release of 3.x firmware.
326
327 3.17:
328
329 Fixed syslog issue.  Added FP patches.
330
331 3.18:
332
333 Fixed a number of minor issues regarding file permissions.
334 Added support for unslinging to the data partition.
335
336 4.1:
337
338 Split from 3.x stream to allow parallel development.
339
340 4.2:
341
342 New switchbox implementation with NFS and external USB disk root filesystem
343 support.
344
345 4.3:
346
347 Enabled devfs.
348
349 4.4:
350
351 Changed slingbox program locations to match those of OpenSlug so that
352 we can use the same switchbox for both.
353
354 4.5:
355
356 Enabled RAID support modules and USB camera support modules.
357
358 4.6:
359
360 Merged unslung-standard and unslung-able, and created the oe feed for
361 downloadable kernel modules. Updated the unsling script to support
362 external rootfs.
363
364 4.7:
365
366 Enabled lots of traffic shaping modules.  Enabled support for external
367 disks on sda1, sda2, sdb1 and sdb2.
368
369 4.8:
370
371 Made Unslung *not* create ramdisk for /var and /dev when you've
372 unslung to an external disk.  Fixed nsswitch.conf.  Updated the feed
373 locations.  Added /dev/st devices for tape drive support.
374
375 4.9:
376
377 Updated the unslung script to give feedback on the rootfs transfer,
378 and to preserve an existing upkg database on the target disk.  Added
379 more device nodes to support the new downloadable kernel modules.
380
381 4.10:
382
383 Made Unslung wait until quota checking is complete before running
384 package startup scripts.  Simplified unsling to support disk1 and
385 disk2 (data partitions) only.
386
387 4.11:
388
389 Removed /tmp ramdisk if unslung to an external disk.  Now clears /tmp
390 and /mnt/backup on each boot.
391
392 4.12:
393
394 Updated to the latest ipkg version.
395
396 4.13:
397
398 Added /dev/sdd and /dev/sde device nodes.
399 Added support for alternate rootfs under expert user control.
400
401 4.14:
402
403 Added audio support to the kernel.  Increased the USB disk startup
404 wait to 10 seconds, and added the ability to divert rc.bootbin to the
405 startup scripts.
406
407 4.15:
408
409 Added /dev/dsp and updated the README and NOTES files.
410
411 4.16:
412
413 Added the /sbin/slingover script for migrating packages from the 3.x locations.
414
415 4.17:
416
417 Developer-only release booting straight from jffs2 instead of using switchbox.
418
419 4.18:
420
421 A number of /linuxrc fixes.  Removed support for alternate rootfs under expert
422 user control (expert users can now just edit the /linuxrc in jffs2 directly).
423
424 4.19:
425
426 Removed all trace of switchbox from the firmware.  This saves 128Kb of flash,
427 and about 1MB of RAM.
428
429 4.20:
430
431 First public release of 4.x firmware.
432
433 5.1:
434
435 Upgraded to Linksys firmware V2.3R29, but kept telnetd.
436
437 5.2:
438
439 Removed the ipkg link, and made unsling put it back on an external disk.
440
441 5.3:
442
443 Replaced maintenance mode with code to allow entry into RedBoot Upgrade Mode.
444
445 5.4:
446
447 Removed all maintenance mode support, and also removed support for rootfs on
448 jffs2 but packages on external disk (it's either all or nothing).
449 Removed unused /mnt/sda1, /mnt/sda2, /mnt/sdb1, and /mnt/sdb2.
450 Disabled the download process (superceded by upgrade mode).
451 Disabled the generation of the "ourtelnetrescue" user (too insecure).
452 Added disk auto-wait countdown to /linuxrc (courtesy of glc).
453
454 5.5:
455
456 First public release of 5.x firmware.
457
458 6.0:
459
460 First alpha release of 6.x Unslung firmware, based on Linksys V2.3R63 firmware.
461
462 6.5:
463
464 Unsling script now prompts for a root password to be used, additional sanity
465 checks added to minimize the chance of an improper unsling.  User feedback
466 added to indicate the status (running from internal flash or booted up from
467 an external drive) via /etc/motd, ipkg, as well as the main web page.  Improved
468 diagnostic messages from unsling.  Added the Linksys custom code to the "mount"
469 code in the slingbox version of mount.
470
471 6.6:
472
473 Changed the code that handles the ".ext3flash" functionality so that it can
474 handle booting from either /dev/sda or /dev/sdb.
475 Cleanup of the "telnet.htm" management page.
476 Unsling now creates the wmtp and utmp files.
477 Unsling now "edits" the .../conf/passwd file instead of replacing it.
478 Ipkg dependencies fixed so that kernel-modules no longer need "force-install".
479 Support for loopback mounting ISO images (loop.o and isofs.o are now created).
480 The keyspan.o USB serial kernel-module is also created at build time.
481 README file updated to reflect the new unsling script as well as the
482 change in preferred port for the primary external disk.
483
484 6.7:
485
486 Added original "netconsole" code as a kernel module
487 Fixed problem with password changing from the GUI and automatic mounting of
488 drives and flash devices in port 1.
489 Remove unnecessary directory /lib/modules/2.4.22-xfs/pcmcia.
490
491 6.8:
492
493 First beta release.
494
495 6.9:
496
497 Modified /etc/rc.d/rc.modules to "insmod" any nls code page modules present.
498
499 Code Page 850 is now compiled into the kernel instead of a kernel module,
500 and added Code Page 949 (as a module).
501
502 Updated the upgrade.htm file to reflect redboot as the upgrade means.
503
504 Remove the upgrade.cgi, upgrade_ui.htm, and upgrade_ui.cgi files from the
505 root image as they are no longer used, and we can always use free space.
506
507 Rearranged portions of the build procedure to remove the samba code pages in
508 the rootfs bb, create a new package with the removed code pages in a new
509 nslu2-linksys-sambacodepages.bb file (to restore the code pages, use ipkg to
510 install package "nslu2-linksys-sambacodepages".  Note that the rootfs and the
511 sambacodepages bb files must be kept in sync regarding the samba code pages
512 that are left in the image and the ones that are added to the package (and it
513 is also a good idea if the kernel defconfig reflects the inclusion of NLS
514 support for the code pages that are left in the image, of course).
515
516 Fixed ppp-mppe.c to remove unresolved symbols when loading module.
517
518 Disable the ourtelnetrescueuser account in the passwd file entirely since
519 Unslung doesn't need it anymore.
520
521 Include losetup with slingbox (so we have losetup in the firmware).
522
523 Fix extraneous boot messages from jffs2 filesystem driver (change options
524 used when building the flash jffs image).
525
526 Added pl2303.c patch for TIOCMGET/MSET/MBIS/MBIC.
527 Syntax fixes in prep for newer busybox:
528  - comments in rc.samba, "cp" in rc.sysinit
529
530 Flash filesystem cleanup (regained space):
531  - replaced dupl 'date' utility with symlink, corrected 'killall' symlink
532  - removed 'mt', 'libexec', 'locate', 'xargs', 'updatedb' from flash
533    (TODO: strip ipkg database entries out for 'findutils' and 'cpio')
534  - adjusted 'unsling' to use common 'find' options (hope to replace soon)
535
536 Upgraded slingbox to v1.1.3 busybox base; enabled 'more' command
537 (note: upgrade added 3KB in size, 'more' added 4KB in size)