Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

Opalix 2006:Opalix erstellen

(Weitergeleitet von Opalix erstellen)

Diese Anleitung basiert zu großen Teilen auf der Anleitung aus dem Vorjahr, wurde aber etwas erweitert. Die alte Version ist teilweise umfangreicher kommentiert, ich dokumentiere hier nur, wie die Opalix 2006-CD erstellt wurde. Falls du das selber machen willst, geht es in deinem Fall vielleicht einfacher :-)

Voraussetzungen

  • Eine vorhandene Linuxinstallation.
  • 1 GB RAM (echter Speicher + Swap) vorhanden
  • 8 GB freier Festplattenspeicher auf einer Linux-Partition (Ext2/3, XFS, JFS, Reiser, o.ä., aber nicht FAT/NTFS).
  • optional externe Festplatte und virtuelle Maschine (VMWare o.ä.)
  • Möglichst schneller Prozessor, auf einem AMD Athlon 1100 dauert das Komprimieren des CD-Images ca. 30-40 Minuten, auf einem Athlon 2500+ dauerte es etwa 15 Minuten.

Knoppix installieren und auf Festplatte speichern

  • Aktuelle Knoppix Version von http://www.knoppix.net/get.php herunterladen.
    • WICHTIG: Mit dem Programm md5sum die Korrektheit des ISOs sicherstellen.
    • Für Opalix 2006 wurde KNOPPIX_V5.0.1CD-2006-06-01-DE.iso verwendet.
  • Knoppix-CD brennen (siehe alten Artikel) oder in einer virtuellen Maschine starten. Im Weiteren wird die Variante in der virtuellen Maschine verwendet.
  • Knoppix in der VMWare starten: Dafür einfach eine neue Maschine anlegen oder in einer bestehenden Maschine das ISO-Image als CD-Rom-Laufwerk einstellen und von der CD booten.
  • Wenn das Knoppix gestartet ist, die externe Festplatte anschließen und über das VMWare-Menü für die CD freigeben. Wichtig: Die Platte nicht im eigentlichen Linux mounten!
  • Im Beispiel wurde die Patition in /media/sda1 eingehängt.
sudo su # Root-Shell aufmachen
cd /media/sda1
mkdir -p ./opalix/knx-master # Hierhin wird die echte CD kopiert
mkdir -p ./opalix/knx-source # Hierhin kommt das entpackte komprimierte Dateisystem der CD.
cp -pR /KNOPPIX knx-source/ # Geduld! Dauert eine ganze Weile
# Artwork und Autostart-Krams kopieren. Die große (ca. 700Mb) KNOPPIX Datei können wir uns sparen.
cd ./master
cp -p /cdrom/* .
cp -pr /cdrom/boot .
mkdir KNOPPIX
cd KNOPPIX
cp -pr /cdrom/KNOPPIX/*[^X] . 
  • Knoppix und VMWare beenden.
  • externe Platte unter dem eigentlichen Linux mounten und Daten auf die freie Partition (im Beispiel /home/robert/opalix) kopieren:
sudo su # Root-Shell aufmachen
cd /home/robert
cp -pR /media/sda1/opalix . # Dauert wieder... 

Knoppix-Pakete bearbeiten

Im folgenden werden wir das OPAL Compilation System installieren und andere Applikationen entfernen, so dass am Ende alles wieder auf eine CD passt.

Chroot

  • weiter in der root-Shell
cd /home/robert/opalix/knx-source
cp -b /etc/resolv.conf ./etc/dhcpc/resolv.conf # Nameserver-Konfiguration aus dem akt. Linux zum Knoppix kopieren
chroot knx-source
mount -t proc /proc proc # Für Internet-Zugang

OCS installieren

nano /etc/apt/sources.list
  • sources.list ist nun in nano geöffnet. Ans Ende gehen und folgende Zeilen eintragen:
# Opalix-Repository der Freitagsrunde
deb http://opalix.freitagsrunde.org/debian-rep ./
deb-src http://opalix.freitagsrunde.org/debian-rep ./

  • Datei speichern, nano beenden.
apt-get update # Laden der hinzugefügten Pakete
apt-get install ocs
  • Dokumentation kopieren. Aktuelle Doku findet man gepackt auf der OPAL-Seite - also wget-Link aktualisieren!
cd /usr/local/share/
wget http://uebb.cs.tu-berlin.de/~opal/ocs-2.3j-doc.tar.bz2
tar xjvf ocs-2.3j-doc.tar.bz2
mv ocs-2.3j ocs

LaTeX, Kile, Kdvi und Subversion installieren

  • Für das LaTeX-Paket und den KDE-TeX-Editor Kile braucht man nur eine Zeile:
apt-get install kile tetex-extra kdvi subversion

Opal-Style für Latex einstellen

ln -s /usr/local/share/ocs/doc/opal2x /usr/share/texmf-tetex/tex/latex/
texhash

Andere Programme entfernen

  • Da wir nun viel neues installiert haben, müssen wir andere Dinge deinstallieren.
  • Alle Programme können deinstalliert werden mittels
apt-get remove --purge <Pakete>
  • wobei <Pakete> durch die Pakete in der Spalte "Deinstallierte Pakete" ersetzt werden muss.
Programm Deinstallierte Pakete Gewonnener Speicher
Apache apache2 apache2-common apache2-mpm-prefork apache2-utils libapache2-mod-php4 libzzip-0-12 7,2 MB
Audacity audacity libwxgtk2.4-1 9,3 MB
KDE Internationalisierung kde-i18n-es kde-i18n-fr kde-i18n-it kde-i18n-ja kde-i18n-nl kde-i18n-pl kde-i18n-ru kde-i18n-tr 217 MB
MySQL mysql-client mysql-common mysql-server php4-mysql libmysqlclient15off libdbd-mysql-perl 67,5 MB
Wine wine winetools 50,4 MB
Nessus1 startnessus-knoppix nessusd nessus-plugins nessus libnessus2 libnasl2 libgdchart-gd2-noxpm libgd2-xpm 17,6 MB
NX1 freenx nxagent nxclient nxtunnel-server libnxcomp0
libnxcompext0 nxdesktop nxlibs nxproxy nxsetup-knoppix nxssh nxtunnel-client nxviewer
14,7 MB

1 Dieses Programm wurde auf der Opalix-2006-CD nicht entfernt, wird aber zur zukünftigen Entfernung empfohlen, falls nötig.

  • Am Ende empfiehlt sich der Aufruf von deborphan, um zu prüfen, ob es nicht benötigte Abhängigkeiten gibt.

OPALIX-Branding

Die folgenden Befehle beziehen sich auf das Opalix-Verzeichnis. Darin sollte ein Ordner 'branding' enthalten sein, den man hier bekommt.

cd /home/robert/opalix

HTML-Dateien auf der CD ersetzen

Diese Dateien sind verfügbar, wenn man die CD nicht bootet, sondern in Windows oder Linux als Laufwerk einbindet.

mv knx-master/index{.html,_knoppix.html} 
cp -r branding/html-content/* knx-master/
cp branding/gfx_export/opalix_2006_splash.png knx-master/

Dokumentation

Es gibt eine Anleitung mit ersten Schritten und Beispiele, die man auf die CD kopieren kann und die vom Desktop aus verlinkt sind.

cp -r branding/beispiele knx-source/etc/skel/
cp -r branding/doc knx-source/var/local/
ln -s /usr/lib/ocs/ocs/examples /etc/skel/beispiele/ # Verlinken der von OCS mitgelieferten Beispiele

Damit die Beispiele und der VIM-Highlighter auch wirklich kopiert werden, muss noch die Datei knx-source/etc/X11/Xsession.d/45xsession angepasst werden. In Zeile 64 hinzufügen:

rsync -Ha --ignore-existing /etc/skel/{.acrorc,.Xdefaults,.gimp*,.gconf*,.bashrc,.nessus*,.links,.local,.lynx*,.qt,.vim,.xine,.xmms,tmp,beispiele} $HOME/ 2>/dev/null

KDE-Branding

Wir ersetzen den KDE Splash-Screen und das Desktop-Hintergrundbild. Außerdem werden Links für die Doku angelegt.

cp branding/gfx_export/opalix_2006_splash_framed.png knx-source/usr/share/apps/ksplash/Themes/Default/splash_top.png
cp branding/gfx_export/opalix_2006_background.jpg knx-source/usr/local/lib/knoppix.jpg
cp branding/gfx_export/opalix_2006_background.jpg knx-master/KNOPPIX/background.jpg

Anpassung der Desktop-Links

mkdir knx-source/var/local/gfx knx-source/etc/skel/.kde/share/apps/kdesktop
cp -r branding/gfx_orig/* knx-source/var/local/gfx
cp branding/desktop/*.desktop knx-source/etc/skel/Desktop/
cp branding/desktop/IconPositions knx-source/etc/skel/.kde/share/apps/kdesktop/

Bookmarks

Ersetzen der bookmark-files für Firefox und Konqueror

cp branding/bookmarks/firefox/* knx-source/etc/skel/.mozilla/firefox/3d4ef4xp.default/
cp branding/bookmarks/konqueror/* knx-source/etc/skel/.kde/share/apps/konqueror/

Syntax-Highlighting

Installation von Dateien zum Opal Syntax-Highlighting für kate, nano und vim.

cat branding/highlighter/nanorc_pt >> knx-source/etc/nanorc
cp branding/highlighter/opal_kate.xml knx-source/usr/share/apps/katepart/syntax/
mkdir -p knx-source/etc/skel/.vim/syntax
cp branding/highlighter/filetype.vim knx-source/etc/skel/.vim/
cp knx-source/usr/lib/ocs/ocs/lib/vim/opal.vim knx-source/etc/skel/.vim/syntax/

ISOLINUX Bootloader

Anpassen der Datei knx-master/boot/isolinux/boot.msg

OPALIX 2006          http://www.freitagsrunde.org/         RELEASE: 2006-09-20 

Die Boot-Grafik kann man ersetzen, indem man ein BMP erzeugt mit folgenden Dimensionen:

  • 640x400px
  • 16 Farben (gimp:Image->Mode->Indexed)

Mit den Tools aus dem Paket syslinux macht man dann:

bmptoppm < opalix_2006_boot.bmp | ppmtolss16 > logo.16

Kopieren mit:

cp branding/gfx_export/logo.16 knx-master/boot/isolinux/

Aufräumen und Spuren verwischen

  • Bevor man das Opalix-Image erstellt, sollte man folgende Schritte ausführen:
apt-get clean # Download-Cache leeren
umount /proc # Sonst gibts Probleme beim ISO-Erstellen
for i in /var/lib/apt/lists/*_{Release,Packages,Sources}; do >$i; touch -t 198103190000.00 $i; done # Paket-Cache aufs Minimum reduzieren, siehe hier
apt-get check 
updatedb --prunepaths="/KNOPPIX.build /mnt /mnt/hd /mnt/cdrom /tmp /usr/tmp /var/tmp"
exit # aus der chroot rausgehen
rm -f root/.bash_history root/.lesshst
mv etc/dhcpc/resolv.conf{~,} # originale resolv.conf wiederherstellen

Image erstellen

Führt man folgendes Skript im ${PROJECTDIR} aus, so wird eine "opalix.iso" gebacken, die das fertige Image enthält. Dafür braucht man das Linux-Paket cloop und enstsprechenden Support für komprimierte Dateisysteme im Kernel (CONFIG_ZLIB_INFLATE=y).

#!/bin/bash

PROJECTDIR="/home/robert/opalix"
ROOT="/home/robert/opalix/knx-source"
MASTER="/home/robert/opalix/knx-master"
TMPFILE="/mnt/testing/knoppix-uncompressed.iso"
PREPARER="Robert Buchholz <rbu@freitagsrunde.org>"
SORT=""

CREATE_CFS=/usr/bin/create_compressed_fs

cd $PROJECTDIR
echo "Creating uncompressed ISO"
mkisofs $SORT -iso-level 4 -R -U -V "OPALIX filesystem" -publisher "freitagsrunde.org" \
    -hide-rr-moved -cache-inodes -no-bak -pad "$ROOT" > $TMPFILE

echo "Finished creating uncompressed ISO:"
du -sh "$TMPFILE"

nice -5 $CREATE_CFS -L 9 -B 655360 -v "$TMPFILE" "$MASTER/KNOPPIX/KNOPPIX"
echo "Finished compressing ISO:"
du -sh "$MASTER/KNOPPIX/KNOPPIX"

cd "$MASTER"
rm -f KNOPPIX/md5sums
find -type f -not -name md5sums -not -name boot.cat -exec md5sum {} \; >> KNOPPIX/md5sums

cd $PROJECTDIR
# use this one to lose one sector: -untranslated-filenames

mkisofs -volid "OPALIX 2006 Beta"  -appid "mkisofs stinks" -publisher "freitagsrunde.org" -preparer "$PREPARER" \
        -rational-rock -joliet -full-iso9660-filenames -eltorito-boot boot/isolinux/isolinux.bin -no-emul-boot \
        -boot-load-size 4  -boot-info-table  -eltorito-catalog boot/isolinux/boot.cat  -o opalix.iso \
        -untranslated-filenames \
        -pad  -v -hide-rr-moved $MASTER


# k3b-command
# mkisofs -volid "OPALIX 2006" -volset ""   -appid ""  -publisher freitagsrunde.org  -preparer "$PREPARER"  \
#       -sysid LINUX  -volset-size 1  -volset-seqno 1  -rock   -joliet  -joliet-long  -untranslated-filenames  \
#       -max-iso9660-filenames  -iso-level 2   -eltorito-boot boot/isolinux/isolinux.bin  -no-emul-boot  \
#       -boot-load-size 4  -boot-info-table  -eltorito-catalog boot/isolinux/boot.cat  -o opalix.iso \
#       -gui -graft-points $MASTER

Probleme beim Booten

In jedem Jahr taucht das Problem wieder auf, dass die CD nicht bootet in einigen Computern. Das Problem wird verursacht von fehlerhaften BIOS-Versionen von Award/Phoenix. Das Problem ist nicht Opalix-spezifisch, sondern passiert auch hin und wieder in anderen LiveCDs (siehe Gentoo). Das Problem ist auch den Autoren von Isolinux/Syslinux und mkisofs bekannt, aber leider gibt es keine Lösung dafür :-(

This is a known and documented problem with a lot of BIOSes.  It's not really known what causes it.

(H. Peter Anvin)

Das Bios überspringt einfach das Booten von der CD, wenn der Boot-Catalog in einem falschen Sektor auf der CD liegt. Leider weiß niemand so richtig, welche Sektoren funktionieren und welche nicht. Windows-CDs nutzen Sektoren zwischen 17 und 40 für den Katalog (NT-CDs immer 18), aber es gibt auch CDs mit dem Katalog in Sektor 1000+. Bei Opalix 2006 ging Sektor 47 nicht, während Sektor 46 geht. In welchem Sektor der Boot-Catalog liegt, findet man raus mit

isoinfo -d -i opalix.iso

Wie man den Katalog in einen anderen Sektor verschieben kann, kann ich nicht genau sagen: Manchmal hilft es, lange Dateinamen oder Joliet ein- oder auszuschalten, da die Liste mit Dateinamen VOR dem Boot-Katalog gespeichert wird. Genau genommen kann man auch Dummy-Dateien erstellen, um den Boot-Sektor nach hinten zu schieben.

Viel Spaß beim Trial-and-Error!