##-----------------------------------------------------------------------------
## doc/deutsch/opt/e2compr.txt
##
## Creation:     24.03.2004
## Last Update:  09.05.2004
##
## Copyright (c) 2004 Ruediger Otte <ruediger dot otte at gmx dot net>
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.
##-----------------------------------------------------------------------------

Package E2COMPR - Komprimierte Ramdisks für FLI4L
-------------------------------------------------

Inhalt:

1. Kurzbeschreibung
2. Funktionsumfang
3. Kernel und Rootfs
4. Konfiguration
5. Komprimierungsalgorithmen


1. Kurzbeschreibung
-------------------

OPT_E2COMPR erstellt komprimierte Ramdisks und komprimiert die "/opt"-Ramdisk
auf dem FLI4L. Als Dateisystem wird ext2fs + e2compr verwendet.


2. Funktionsumfang
------------------
Mit einem angepassten Rootfs kann die "/opt"-Ramdisk bei der Erstellung
komprimiert werden. Bei mir konnte ich den Speicherbedarf von "/opt" erheblich
reduzieren. Das ist vor allem bei vielen installierten Erweiterungen sinnvoll.

Eine weitere Option ist das Anlegen von komprimierten Ramdisks, die dann
von anderen Opts genutzt werden (z.B. ein komprimiertes Spoolverzeichnis
für samba_lpd).

Das Komprimieren von Verzeichnissen wird in OPT_E2COMPR für FLI4L 2.1.x
nicht unterstützt, da für andere Ramdisks das tmpfs benutzt wird.

3. Kernel und Rootfs
--------------------
Es ist ein angepasster Kernel für die Komprimierung nötig. Für die
Komprimierung der "/opt"-Ramdisk ist zusätzlich noch ein angepasstes Rootfs
nötig. Der angepasste Kernel und das Rootfs sind im Package enthalten. Sie
liegen unter "<fli4l-base>/img/".

Der Kernel heißt "kernel-e2compr" und muß nur nach "kernel" umbenannt
werden. Der angepasste Kernel ist für die Komprimierung unentbehrlich.

Das Root-Dateisystem heißt "rootfs-e2compr.tgz" und muß nur nach "rootfs.tgz"
umbenannt werden. Das Rootfs ist nur für die "/opt"-Komprimierung erforderlich.

Kernel und Rootfs sollten auch ohne das Package problemlos laufen, dann
allerdings ohne Komprimierung.


4. Konfiguration
----------------

OPT_E2COMPR: yes|no

Installiert die Userspace-Tools für Ext2-Komprimierung und ermöglicht
die Auswahl verschiedener Komprimierungsoptionen.

--

E2COMPR_OPT: yes|no

Wenn das angepasste Rootfs benutzt wird, bewirkt diese Option eine
Komprimierung der "/opt"-Ramdisk. Wenn das normale Rootfs benutzt wird,
oder wenn "/opt" auf einer Festplatte liegt, ist diese Option wirkungslos.

--

E2COMPR_OPT_SIZE

Die Größe der "/opt"-Ramdisk in Kb. Seit FLI4L 2.1.7 wird für "/opt" das
tmpfs benutzt, daß je nach belegtem Platz seine Größe dynamisch ändern kann.
Die Größe der "/opt"-Ramdisk wird daher nicht mehr in der Base-Konfiguration
eingestellt sondern muß hier festgelegt werden.

--

E2COMPR_OPT_ALGO: gzip1|gzip2|...|gzip9

Gibt den Algorithmus für die Komprimierung der "/opt"-Ramdisk an. Hier sind
nur gzip1-gzip9 möglich.

--

E2COMPR_RD_N

Anzahl der komprimierten Ramdisks, die erstellt werden sollen.

--

E2COMPR_RD_x_SIZE
E2COMPR_RD_x_PATH

Größe (in Kilobyte) und Mountpoint der x'ten komprimierten Ramdisk.

--

2COMPR_RD_x_ALGO: gzip1|gzip2|...|gzip9|bzip2|lzo1x1|lzv1

Der Algorithmus für die Komprimierung der x'ten komprimierten Ramdisk.
Im angepassten Kernel ist die Unterstützung für gzip fest eingebaut. Daher
sollte als Einstellung gzip1 bis gzip9 verwendet werden. Es sind noch andere
Algorithmen möglich, die nur bei Bedarf installiert werden.
Ist hier ein nicht vorhandener Algorithmus angegeben, wird als Standard gzip5
benutzt.

--

OPT_E2COMPR_HTTPD_STATUS: yes|no

Erzeugt eine Zusammenfassung der Komprimierung, die ueber den mini-httpd
abgerufen werden kann. Der Benutzer muß auf dem mini-httpd ueber das Recht
status:view verfuegen. Weitere Dokumentation bitte dem httpd-Package
entnehmen.

--

OPT_E2COMPR_EXTRA_E2FSCK:   yes|no
OPT_E2COMPR_EXTRA_DUMPE2FS: yes|no
OPT_E2COMPR_EXTRA_TUNE2FS:  yes|no

Diese Tools aus e2fsprogs-1.25 werden normalerweise nicht gebraucht. Wer sie
trotzdem installieren moechte, kann das hier auswaehlen.

5. KOMPRIMIERUNGS-ALGORITHMEN
-----------------------------
Zu den Algorithmen schreiben die Entwickler der Ext2-Komprimierung:

LZO:

  Enable this if you want the Lempel-Ziv-Oberhumer (LZO) algorithm
  to be available for compression or decompression.  (It is actually
  the lzo1x_1 algorithm.)  If it is not enabled, you will not be able
  to read any file already stored in this format.
  This algorithm is the fastest at decompressing, but is slower than
  LZV1 at compressing.  LZO compresses smaller than LZV1.

LZV:
 
  Enable this if you want the Lempel-Ziv-Vogt (LZV) algorithm to be
  available for compression or decompression.  If it is not enabled,
  you will not be able to read any file already stored in this format.
  This algorithm tends to be the fastest of the available algorithms
  (except that LZO is faster at decompressing), but tends not to
  compress as well as the others.

GZIP:

  Enable this if you want the GZIP algorithm to be available for
  compression or decompression.  If it is not enabled, you will not be
  able to read any file already stored in this format.  This is a
  "good value" compression algorithm, because the 1..9 parameter allows
  a wide range of compression speeds and compression amounts.

BZIP2:

  Enable this if you want the BZIP2 algorithm to be available for
  compression or decompression.  If it is not enabled, you will not be
  able to read any file already stored in this format.
  This algorithm is related to, but is not the same as, the algorithm
  used by the `bzip2' program.  Compared to gzip9, it tends to compress
  10-15% smaller for text files, but to about the same as gzip9 for
  binaries.  It is 5 times slower at compressing than gzip9, and 50%
  slower at decompressing.  Enabling this will enlarge your kernel by
  about 33kB.

LZV und GZIP sind in Assembler implementiert:

  For x86 kernels there are some assembler language versions of the
  compression routines for the lzv1, lzrw3a, and gzip algorithms.
  These apparently run "much faster" than the C ones.  There isn't any
  reason to say N here unless you've found a problem with them (which
  you should of course report).

