Download pdf - Linux Live Derivat

Transcript
Page 1: Linux Live Derivat

FachrichtungWirtschaftsinformatik

Erste Projektarbeit(Bearbeitungszeitraum: 01.07.2009 bis 21.08.2009)

Erstellung eines Linux-Derivates fürPublic-Browsing-PCs

Clemens RieseKurs: WWI08D

(Studiengangsleiter: Prof. Dr. Jörg Baumgart)

Ausbildungsbetrieb:

SAS Institute GmbHAbteilung: Rechenzentrum

Firmenbetreuer:

Konstantinos Karpouzos06221 415-1345

[email protected]

Page 2: Linux Live Derivat

AdobeR©, ReaderR© und FlashR© sind entweder geschützte Warenzeichen oder eingetrageneWarenzeichen von Adobe Systems Incorporated in den USA und/oder anderen Ländern.MicrosoftR© und WindowsR© sind entweder geschützte Warenzeichen oder eingetrageneWarenzeichen der Microsoft Corporation in den USA und/oder anderen Ländern.

Page 3: Linux Live Derivat

Inhaltsverzeichnis

Abkürzungsverzeichnis III

Listingsverzeichnis V

Abbildungsverzeichnis VII

1 Einleitung 1

2 Anforderungsspezifikation 32.1 Der IST-Zustand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.2 Der SOLL-Zustand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.2.1 Anforderungen Derivat . . . . . . . . . . . . . . . . . . . . . . . 32.2.2 Anforderungen Entwicklungsumgebung . . . . . . . . . . . . . . 4

2.3 Durchführbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.4 Abschließende Worte . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3 Entwurf 53.1 Als Grundlage dient Ubuntu 9.04 . . . . . . . . . . . . . . . . . . . . . 53.2 Alternative zum Desktopmanager Gnome . . . . . . . . . . . . . . . . . 63.3 Firefox - Zugriffskontrolle und Modifikation . . . . . . . . . . . . . . . . 6

3.3.1 Kiosk-Oberfläche für Firefox . . . . . . . . . . . . . . . . . . . . 63.3.2 Korrekte Darstellung von Internetinhalten . . . . . . . . . . . . 7

3.4 Modifikation von Boot-Splash und USplash . . . . . . . . . . . . . . . . 73.5 Bildschirmschoner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73.6 Abschließende Worte . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

4 Implementierung und Test 94.1 Entwicklungsumgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . 94.2 Reconstructor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104.3 Beta-Phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

4.3.1 Ersetzung von Gnome Desktop Manager durch Openbox . . . . 114.3.2 Modifikation von Firefox . . . . . . . . . . . . . . . . . . . . . . 114.3.3 Anpassung Boot-Splash und USplash . . . . . . . . . . . . . . . 154.3.4 Derivatgröße unter 700 MB . . . . . . . . . . . . . . . . . . . . 194.3.5 Bildschirmschoner . . . . . . . . . . . . . . . . . . . . . . . . . . 194.3.6 Abschluss der Beta-Phase . . . . . . . . . . . . . . . . . . . . . 20

4.4 RC-Phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204.4.1 xmodmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

I

Page 4: Linux Live Derivat

II INHALTSVERZEICHNIS

4.4.2 SQUID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.5 Abschließende Worte . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

5 Zusammenfassung und Ausblick 23

A Listings IX

B Pakete Entwicklungsumgebung XIII

C Pakete Derivat XV

D Anleitungen XVIID.1 Erstellung einer „Minimal“-CD . . . . . . . . . . . . . . . . . . . . . . . XVIID.2 Anpassung Boot-Splash . . . . . . . . . . . . . . . . . . . . . . . . . . . XXD.3 Anpassung USplash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXID.4 Startscript für Firefox . . . . . . . . . . . . . . . . . . . . . . . . . . . XXIIID.5 xmodmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXIVD.6 Kiosk-Oberfläche für Firefox . . . . . . . . . . . . . . . . . . . . . . . . XXIVD.7 Installation von Software . . . . . . . . . . . . . . . . . . . . . . . . . . XXV

D.7.1 Adobe Flash und Adobe Reader . . . . . . . . . . . . . . . . . . XXVD.7.2 Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXV

D.8 Veränderte bzw. neuerstellte Dateien . . . . . . . . . . . . . . . . . . . XXVI

Glossar XXXI

Literaturverzeichnis XXXIII

Page 5: Linux Live Derivat

Abkürzungsverzeichnis

apt . . . . . . . . . . . . . . Advanced Packaging Toolbash . . . . . . . . . . . . . Bourne Again ShellGDM . . . . . . . . . . . . Gnome Desktop ManagerGUI . . . . . . . . . . . . . Graphical User InterfaceInitRD . . . . . . . . . . . initial ramdiskMB . . . . . . . . . . . . . . Megabytepng . . . . . . . . . . . . . . Portable Network Graphicspx . . . . . . . . . . . . . . . PixelRC . . . . . . . . . . . . . . Release CandidateXML . . . . . . . . . . . . Extensible Markup Language

III

Page 6: Linux Live Derivat

IV ABKÜRZUNGSVERZEICHNIS

Page 7: Linux Live Derivat

Listingsverzeichnis

4.1 Inhalt /etc/skel/.xinitrc . . . . . . . . . . . . . . . . . . . . . . . . . . 114.2 Inhalt /etc/skel/.bash_profile . . . . . . . . . . . . . . . . . . . . . . . 114.3 Inhalt /usr/share/applications/sas_custom/ff_start.sh . . . . . . . . . 134.4 Ergänzung von /etc/xdg/openbox/autostart.sh . . . . . . . . . . . . . . 134.5 Änderung an /etc/firefox-3.0/profile/localstore.rdf . . . . . . . . . . . . 144.6 Änderung an /etc/firefox-3.0/profile/prefs.js . . . . . . . . . . . . . . . 144.7 Geänderte isolinux.cfg . . . . . . . . . . . . . . . . . . . . . . . . . . . 154.8 Inhalt /isolinux/lang . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154.9 Auszug geänderte panel.inc . . . . . . . . . . . . . . . . . . . . . . . . 164.10 Auszug geänderte de.po . . . . . . . . . . . . . . . . . . . . . . . . . . 164.11 Geänderte text.cfg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174.12 Zu löschende Fragmente aus xubuntu-usplash-theme.c . . . . . . . . . . 184.13 Ergänzung von /etc/xdg/openbox/autostart.sh . . . . . . . . . . . . . . 204.14 Geänderte Zeile 33 von /etc/skel/.xscreensaver . . . . . . . . . . . . . . 204.15 Ergänzung von /etc/xdg/openbox/autostart.sh . . . . . . . . . . . . . . 21A.1 Inhalt /etc/xdg/openbox/autostart.sh . . . . . . . . . . . . . . . . . . IXA.2 Inhalt /etc/firefox-3.0/profile/localstore.rdf . . . . . . . . . . . . . . . . XA.3 Inhalt /etc/skel/.xscreensaver . . . . . . . . . . . . . . . . . . . . . . . XID.1 /etc/skel/.bash_profile . . . . . . . . . . . . . . . . . . . . . . . . . . . XXVID.2 /etc/skel/.xinitrc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXVID.3 /etc/skel/.xscreensaver . . . . . . . . . . . . . . . . . . . . . . . . . . . XXVID.4 /etc/firefox-3.0/profile/localstore.rdf . . . . . . . . . . . . . . . . . . . XXVIID.5 /etc/firefox-3.0/profile/prefs.js . . . . . . . . . . . . . . . . . . . . . . . XXIXD.6 /etc/xdg/openbox/autostart.sh . . . . . . . . . . . . . . . . . . . . . . XXIXD.7 /etc/xdg/openbox/menu.xml . . . . . . . . . . . . . . . . . . . . . . . XXX

V

Page 8: Linux Live Derivat

VI LISTINGSVERZEICHNIS

Page 9: Linux Live Derivat

Abbildungsverzeichnis

4.1 Ubuntu 9.04 Boot-Splash . . . . . . . . . . . . . . . . . . . . . . . . . . 164.2 Veränderter Boot-Splash . . . . . . . . . . . . . . . . . . . . . . . . . . 174.3 Veränderter USplash . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

VII

Page 10: Linux Live Derivat

VIII ABBILDUNGSVERZEICHNIS

Page 11: Linux Live Derivat

Kapitel 1

Einleitung

Durch den Umstand, dass das SAS Institute ein großer Anbieter von Business-Intelligence-Lösungen ist, werden in unserem Hause regelmäßig Schulung für unsere Kunden abgehal-ten. Natürlich sollen unsere Kunden dabei nicht den Komfort missen, ihre eMails abfragenzu können und ggf. auch an diese eMails angehängte Dokumente öffnen zu können.Aber nicht nur wegen des Komforts unserer Kunden ist eine solche Möglichkeit empfeh-lenswert – sie trägt auch zu einem positiven Gesamteindruck des Schulungteilnehmersüber das Unternehmen bei.Die Möglichkeit des freien Zugangs zu dem jeweilen eMail-Postfach war zwar bisher mög-lich und drohte aber auf Grund des hohen Wartungsaufwand zu scheitern. Mit der Er-stellung eines eigenen Linux-Derivates, welches ein reines Live-System ist, wird versuchtdiese Möglichkeit weiterhin aufrecht zu erhalten. Dabei wird mit der parallelen Erstellungeiner Entwicklungsumgebung außerdem noch dem Umstand Rechnung getragen, dass esmöglich sein muss, das Derivat zu warten und ggf. entsprechenden Neuerungen anzupas-sen.

1

Page 12: Linux Live Derivat

2 KAPITEL 1 - EINLEITUNG

Page 13: Linux Live Derivat

Kapitel 2

Anforderungsspezifikation

Dieses Kapitel befasst sich sowohl mit der Analyse der gegenwärtigen Situation als auchder angestrebten Situation. Es wird auf wichtige Kriterien eingegangen, die durch diebisherige Umsetzung nicht oder nur teilweise realsiert werden können und bei der neuenLösung essenziell sind.

2.1 Der IST-Zustand

Zum gegenwärtigen Zeitpunkt ist unseren Kunden die Möglichkeit des freien Zugangszum Internet bzw. zu den jeweiligen eMail-Postfächern durch öffentliche Computer mitMicrosoftR© WindowsR© gegeben.Dabei ist das Betriebssystem auf der Festplatte installiert, was ein hohes Sicherheitsrisi-ko darstellt. Um diesem Risiko entsprechend entgegenzuwirken wurden Maßnahmen undRichtlinien implementiert, die es auf ein vertretbares Level senken. Allerdings müssendiese Vorkehrungen ständig gewartet werden, was zu einem hohen Aufwand führt. Diesererhöht sich zusätzlich noch dadurch, dass bei etwaigen Updates die Sicherheitsmaßnahmenund -richtlinien erst außer Kraft gesetzt werden müssen um eine Installation durchführenzu können und danach wieder entsprechend hergestellt werden müssen.

2.2 Der SOLL-Zustand

Mit Hilfe des Projekts „Erstellung eines Linux-Derivates für Public-Browsing-PCs“ soll einSAS-eigenes Linux-Derivat erstellt werden, wodurch der Wartungsaufwand bei gleicherSicherheit wie der bisherigen minimiert wird. Als Ergänzung dazu soll eine Entwicklungs-umgebung geschaffen werden, die es ermöglicht spätere Wartungs- und Integrationsar-beiten durchzuführen. Über beides soll zudem eine entsprechende Dokumentation erstelltwerden.

2.2.1 Anforderungen Derivat

Das Derivat sollte folgende Kriterien erfüllen:

• als Grundlage des Derivates soll die Linux-Destribution „Ubuntu“ (Version 9.04)dienen

3

Page 14: Linux Live Derivat

4 KAPITEL 2 - ANFORDERUNGSSPEZIFIKATION

• es soll nur der Zugriff auf den Browser „Firefox“ möglich sein (falls dieser geschlossenwird, soll er automatisch wieder ausgeführt werden)

• die korrekte Darstellung von Inhalten im Internet soll sichergestellt sein

• sowohl der Boot-Splash als auch der USplash sollen modifiziert werden

• die Privatsphäre des Nutzer soll geschützt werden

• nach elf Minuten Inaktivität soll sich ein Bildschirmschoner einschalten

Zusätzlich soll ggf. der Proxy-Server SQUID eingebunden werden und mittels eines Content-Filters der Zugriff auf bestimmte Websites beschränkt bzw. unterbunden werden.

2.2.2 Anforderungen Entwicklungsumgebung

Diese Entwicklungsumgebung sollte folgende Spezifikationen einhalten:

• Ubuntu (Version 9.04, Desktop) als Betriebssystem

– 80 GB als Root-Partition

– 4 GB als Swap-Partition

– Rest als Backup-Partition

• zu installierende Software

– Reconstructor

– AdobeR© FlashR©

– AdobeR© ReaderR©

Entgegen einiger oben genannter Spezifikationen ist alternativ auch darüber zu entschei-den, ob die Entwicklungsumgebung selber als Live-System umgesetzt werden kann/soll.

2.3 DurchführbarkeitDie Durchführung dieses Projekts ist möglich, da es einerseits bereits bestehende Lösungen(z. B. Mophix1) gibt, die dem Ziel des Projekts sehr ähnlich sind, und andererseits die hoheFlexibilität und Anpassbarkeit von Linux eine passende Grundlage zur Realisierung desProjekts bilden.

2.4 Abschließende WorteDurch die genannten Kriterien wurde Umfang des Projekts grob festgelegt und durch dieDurchführbarkeitsanalyse ein entsprechender Zeitraum definiert, in dem die Umsetzungdes Projekts stattfinden soll. Im folgenden Kapitel werden die Kriterien des Projektsweiter verfeinert und die Entwicklungsumgebung entsprechend theoretisch konzipiert.

1http://www.morphix.org/

Page 15: Linux Live Derivat

Kapitel 3

Entwurf

Um das Projekt erfolgreich abschließen zu können ist einerseits eine genaue Analyse derProblemstellung bzw. der Vergleich zwischen IST- und SOLL-Zustand (siehe Seite 3, Ka-pitel 2) wichtig, anderseits ist aber auch ein gründlicher Entwurf des Gesamtkonzeptsnotwendig. Die bei diesem Projekt zu klärenden Elemente sind in der Analysephase erör-tert worden und sollen nun in einem Entwurf konkretisiert werden.

3.1 Als Grundlage dient Ubuntu 9.04

Die Entscheidung die Linux-Destribution Ubuntu als Grundlage des zu erstellenden De-rivats heranzuziehen wurde auf Grund der hohen Kompatibilität und Benutzerfreund-lichkeit gefällt. Die aktuelle Version von Ubuntu ist 9.04 Codename „Jaunty Jackalope“.Diese ist bereits in der Lage die unterschiedlichen Hardware-Komponenten eines Compu-ters weitestgehend selber zu konfigurieren und dies auch auf einem breiten Spektrum vonunterstützter Hardware. Durch diesen Umstand ist es möglich sich nur noch auf die eigent-liche Aufgabenstellung – also die Erstellung eines eigenen Derviates – zu konzentrieren,da grundlegende bzw. zum Funktionieren des Derivates vorauszusetzende Eigenschaftenals funktionierend angesehen werden können. Ein weiteres Argument für die VerwendungUbuntu ist, dass es sich einfach warten und updaten lässt, was für spätere Aufgaben einengroßen Vorteil gegenüber anderen Distributionen darstellt. Des Weiteren wird Ubuntu 9.04verwendet, da es sich hierbei um eine der großen Linux-Distributionen handelt und somitauch der nachhaltige Support von der Entwicklerseite gewährleistet ist. Dies ist nicht zu-letzt dadurch möglich, dass Ubuntu von der Firma Canonical Ltd. gesponsort wird. Auchhat Ubuntu eine große Community, die sich bei der Beantwortung von Fragen als sehrhilfreich erweisen kann.Im Rahmen des Projekts soll die Ubuntu-Installations-CD (welche selber schon als Live-System eingesetzt werden kann) auf die festgesetzten Kriterien beschränkt werden. Einwichtiger Punkt, der in diesem Zusammenhang nicht aus den Augen verloren werdendarf, ist, dass es sich bei dem Live-System-Medium um eine CD handeln soll und somitein Speicherverbrauch von 700 Megabyte (kurz: MB) die Obergrenze darstellt.

5

Page 16: Linux Live Derivat

6 KAPITEL 3 - ENTWURF

3.2 Alternative zum Desktopmanager GnomeIn Linux (und somit auch in Ubuntu) wird zwischen zwei Graphical-User-Interface-Typen(kurz: GUI-Typen) unterschieden - dem Desktopmanager oder dem Fenstermanager. EinDesktopmanager übernimmt die Verwaltung der Fenster und stellt außerdem noch eineTaskbar und den Desktop, auf dem Dokumente und ähnliches abgelegt werden können,bereit. Im Gegensatz dazu bietet ein Fenstermanager nur die Funktionalität der Fens-terverwalung und ggf. eines einfachen Menüs. Zum Teil gibt es auch Kombinationen derbeiden GUI-Typen, wie es z. B. bei Gnome der Fall ist - dort enthält der DesktopmanagerGnome den Fenstermanager Metacity.Allein aus dem unterschiedlichen Funktionsumfang ist zu erkennen, dass ein Fensterma-nager ressourcensparender (sowohl bei der Speicherbelegung als auch bei der Performan-ce) agiert als ein Desktopmanager. Deshalb wird in dem Derivat eine Alternative zumDesktopmanager Gnome verwendet. Bei einem Vergleichstest zwischen den Fensterma-nagern FluxBox, IceVM und Openbox setzte sich letztere durch. Die Entscheidung fürOpenbox wurde an Hand folgender Gründe getroffen:

• die Arbeitsspeicher und Prozessorbelastung ist sehr gering,

• der Desktop verfügt über keine Taskbar (diese würde ein Sicherheitsrisiko darstellen)und

• die Konfiguration erfolgt über leicht verständliche Shell- bzw. XML-Scripte.

3.3 Firefox - Zugriffskontrolle und ModifikationDie Aufgabe des Linux-Derivates ist klar definiert - es soll sich um ein Live-System han-deln, mit welchem im Internet gesurft werden kann und eMails abfragt werden können.Auf Grund dieser Aufgabenstellung ist es nicht notwendig und nicht erwünscht den Zu-griff auf ein anderes Programm anstatt des Browsers Firefox zuzulassen.Die Realisierung dieser Forderdung wird mit Hilfe eines Shell-Scirpts gelöst. Dieses Scriptsoll zusätzlich auch noch dafür sorgen, dass sich Firefox automatisch wieder startet sollteer geschlossen werden.Als weiterer Punkt, um dieser Forderung nachzukommen, wird das Kontext-Menü vonOpenbox dahingehend überarbeitet, dass lediglich die Auswahl von Firefox möglich ist.

3.3.1 Kiosk-Oberfläche für Firefox

Dadurch, dass dem Benutzer das Surfen im Internet ermöglicht werden, aber der Zugriffauf weitere Funktionen des Computer untersagt werden soll, ist es notwendig die Mög-lichkeiten des Benutzers entsprechend zu beschränken. Dies wird u. a. durch die Firefox-Erweiterung BMA Kiosk1 erreicht.Diese Erweiterung verändert die GUI von Firefox dahingehend, dass

• die Titelleiste ausgeblendet wird,

• das Fenster im Vollbildmodus ausgeführt wird,1https://www.mozdevgroup.com/clients/bm/xpi/bmakiosk_current-ff-generic_signed.xpi

Page 17: Linux Live Derivat

3.4 - MODIFIKATION VON BOOT-SPLASH UND USPLASH 7

• die Menus von Firefox verborgen werden und

• nur noch Buttons zur Navigation vorhanden sind.

Weiterhin dient diese Erweiterung auch dem Schutz der Privatsphäre des Benutzers, indem einerseits in der GUI ein Button integriert ist, der das Beenden der aktuellen Firefox-Session ermöglicht und andererseits ein Timeout bei Inaktivität eingestellt werden kann,der ebenfalls die aktuelle Firefox-Session beendet. Mit dem Beenden der Session werdenalle Dateien im Cache, alle Cookies und der Verlauf gelöscht. Die Löschung von Passwör-tern muss nicht vollzogen werden, da die Erweiterung keine Passwörter speichert.

3.3.2 Korrekte Darstellung von Internetinhalten

Um die meisten Inhalte im Internet korrekt darstellen zu können müssen zusätzlich zuFirefox noch die Plugins AdobeR© FlashR© und Sun Java in das Derivat integriert werden.Da die hauptsächliche Nutzung des Derivats sich auf die Abfrage von eMails beschränkenwird, wird zusätzlich noch das Programm AdobeR© ReaderR© integriert um eventuelle eMail-Anhänge korrekt im Browser anzeigen zu können.

3.4 Modifikation von Boot-Splash und USplashZwar basiert das erstellte Derivat auf Ubuntu, dennoch soll es entsprechend den Preferen-zen des Unternehmens im Erscheinungsbild angespasst werden. Weiterhin ist es notwendigden Boot-Splash dahingehend anzupassen, dass

1. ein unverzüglicher Bootvorgang initialisiert wird,

2. die korrekte Sprache (und somit das korrekte Tastaturlayout) verwendet wird und

3. dem Benutzer keine Möglichkeiten durch ein eventuell vorhandenes Bootmenu ge-geben werden.

Um den Boot-Splash entsprechend anpassen zu können müssen in der Entwicklungsumge-bung die Pakete gfxboot und dpkg-dev installiert werden. Mit Hilfe dieser Pakete könnenmodifizierte Designdateien erstellt werden, die dann wiederum in das Derivat integriertwerden können.Die Veränderung des USplashs erfolgt auf rein grafischer Ebene. Um dies zu realisierenwerden in der Entwicklungsumgebung die Pakete cdbs, debhelper, dpkg-dev, fakeroot,devscripts, autotools-dev und die Grafiksoftware GIMP benötigt.

3.5 BildschirmschonerDie Einbindung eines Bildschirmschoners sollte mit den bereits auf der Ubuntu-Installations-CD, den vorhandenen Paketen und Programmen realisierbar sein. Allerdings muss beidieser Aussage berücksichtigt werden, dass der Großteil dieser Pakete speziell für denDesktopmanager Gnome entwickelt wurde und somit eventuell auf Openbox nicht mehrfunktionsfähig ist.Des Weiteren soll auch das Erscheinungsbild des Bildschirmschoner an die Preferenzendes Unternehmens angepasst werden.

Page 18: Linux Live Derivat

8 KAPITEL 3 - ENTWURF

3.6 Abschließende WorteDie in Kapitel 2 festgelegten Kriterien wurden in diesem Kapitel weiter verfeinert undmit konkreten Realisierungsmöglichkeiten hinterlegt. Dadurch, dass eine grobe Übersichtüber die benötigten Pakete und Programme des Derivats und der Entwicklungsumgebungerstellt wurde, ist es im folgenden Kaptiel nun möglich die konkrete Realisierung des Pro-jekts zu beginnen. Eine Übersicht über die benötigten Pakete der Entwicklungsumgebungist auf Seite XIII zu finden – die Übersicht der Pakete für das Derivat befindet sich aufSeite XV.

Page 19: Linux Live Derivat

Kapitel 4

Implementierung und Test

Nach der Anforderungsspezifikation und dem Entwurf folgt gemäß dem Software-Entwick-lungszyklus die Implementierung, auf die wiederum im nächsten Schritt die Tests aufset-zen. Bei der Entwicklung des Derivates wurden die beiden letzten Entwicklungsschrittezu einem iterativen Schritt zusammengefasst. Somit kann die schrittweise Anpassung derUbuntu-Installations-CD erfolgen, indem nach den entsprechenden Veränderungen einTest vollzogen wird um die Funktionalität zu prüfen. Da die Implementierung sich an denKriterien aus der Anforderungsspezifikation und dem Entwurf orientiert, wird dieser Testdann dahingehend ausgewertet, dass entschieden wird, ob und inwieweit die Kriterienerfüllt wurden. Ist die Auswertung nicht entsprechend positiv, muss ggf. eine alternativeLösung eingesetzt werden.Allerdings werden in der Implementierung auch Mechanismen zur Einschränkung des Be-nutzers berücksichtigt um zu gewährleisten, dass das Derivat nur für den eigentlichenZweck verwendet werden kann.Als abschließender Test der gesamten Phase muss geprüft werden, ob alle Kriterien erfülltwerden konnten bzw. warum nicht.

4.1 Entwicklungsumgebung

Da bei der Erstellung des Derivates auch die Entwicklungsumgebung als ein Kriteriumangeführt wurde, muss diese entsprechend eingerichtet und konfiguriert werden. Die Ent-wicklungsumgebung basiert, wie das Derivat auch, auf der Linux-Destribution Ubuntu inder aktuellen Version 9.04 „Jaunty Jackalope“.Zusätzliche Software-Erweiterungen, die einerseits zur Erstellung eines Derivates notwen-dig und anderseits auch als Kriterien in der Anforderungsspezifikation festgelegt wurden,sind:

• Reconstructor1 und

• AdobeR© FlashR© und AdobeR© ReaderR©.

Dabei dient die Software „Reconstructor“ der Erstellung des Derivates und die AdobeR©-Produkte werden zur konkreten Darstellung von Internetinhalten für Rechercheaktivitätengenutzt.

1http://www.reconstructor.org/

9

Page 20: Linux Live Derivat

10 KAPITEL 4 - IMPLEMENTIERUNG UND TEST

Durch den iterativen Prozess von Implemetierung und Test müsste von einem hohen Ver-brauch an CD-Rohlingen ausgegangen werden. Da dies aber vermieden werden sollte, wirddie Virtualisierungssoftware Virtualbox2 eingesetzt. Diese Software macht es möglich dasDerivat zu testen ohne es auf CD brennen zu müssen.Bei der Implementierung der Kriterien werden noch weitere Pakete in der Entwicklungs-umgebung von Nöten sein. Auf diese wird an entsprechender Stelle eingegangen. DesWeiteren findet sich im Anhang (siehe Seite XIII)eine Zusammenfassung mit allen benö-tigten Paketen.Als Ergänzung von Reconstructor bei der Erstellung des Derivates wird der Funktions-umfang der Shell, genauer der Bourne Again Shell (kurz: bash), genutzt.

4.2 Reconstructor

Zur Bearbeitung und Veränderung der Ubuntu-Installations-CD wird die Software „Re-constructor“ verwendet, da sie folgende Merkmale aufweist:

• größter Funktionsumfang im Vergleich zu anderen Customization- bzw. Authoring-Tools

• einfache Integration/Entfernung von Pakteten und Software mittels vorgefertigterModule3

• Möglichkeit der erweiterten Bearbeitung via chroot-Umgebung (sogar grafische Un-terstützung mittels chrootx – chroot mit aktivem X-Window-System)

• einfache Erstellung des CD-Images (automatische Erstellung des SquashFS und derInitial Ramdisk (kurz: InitRD))

• Möglichkeit der ständigen Überwachung der Speicherbelegung auf der CD

• integrierte Funktionalität zur Änderung des Boot-Splashs und des USplashs

• Festlegung der Repositories des Derivates

4.3 Beta-Phase

In der Beta-Phase werden verschiedene Alternativen implementiert, getestet und bewertet.Dadurch wird versucht die optimale Kombination der Alternativen zu ermitteln bzw. dieAlternativen auszuschließen, die nicht zu dem gewünschten Ergebnis führen.Die Implementierung in den folgenden Kapiteln findet in der chroot-Umgebung (falls nichtanders gekennzeichnet) statt.

2http://www.virtualbox.org/3http://www.reconstructor.org/index.php?option=com_remository&Itemid=33&func=select&id=4

Page 21: Linux Live Derivat

4.3 - BETA-PHASE 11

4.3.1 Ersetzung von Gnome Desktop Manager durch Openbox

Bereits im Entwurf wurde festgelegt, dass der Gnome Desktop Manager (kurz: GDM)durch Openbox ersetzt werden soll. Um dies umzusetzen muss zuerst Openbox mit Hilfedes Advanced Packaging Tools (kurz: apt) installiert werden, welches mit dem Befehl

apt-get install openbox

geschieht. Allerdings wird Openbox durch diesen Befehl lediglich installiert und ist so-mit noch nicht die Standartanwendung zur Fensterverwaltung. Somit muss das Problemgeklärt werden, wie Openbox

1. die Standartanwendung und

2. automatisch gestartet wird.

Die Lösung dazu befindet sich im Verzeichnis /etc/skel. Dieses beinhaltet alle Dateien,die bei der Anlegung neuer Nutzer automatisch in deren /home-Verzeichnis kopiert werden.Diese Vorgehensweise muss gewählt werden, da bei dem Derivat der User erst zur Laufzeitangelegt wird und somit das entsprechende /home-Verzeichnis auch nicht im SquashFSexistiert. In Verzeichnis /etc/skel werden zwei neue Dateien angelegt. Zum einen dieDatei .xinitrc und zum anderen die Datei .bash_profile. Der Inhalt dieser beidenDateien wird in den folgenden zwei Listings dargestellt:

Listing 4.1: Inhalt /etc/skel/.xinitrc

1 exec openbox -session

Listing 4.2: Inhalt /etc/skel/.bash_profile

1 startx

Die Anweisungen in der .xinitrc bewirken, dass Openbox als Standartfenstermanagerfestgelegt wird [McC09] und der Inhalt der .bash_profile sorgt schließlich dafür, dassnach einer (erfolgreichen) Anmeldung sofort der X-Window-System gestartet wird [Nat09].

4.3.2 Modifikation von Firefox

Die Anpassung von Firefox an die geforderten Spezifikationen beinhaltet im Wesentlichendie folgenden drei Aspekte:

• Integration von Software zur korrekten Darstellung von Internetinhalten

• Veränderung der GUI

• Integration in Openbox

Page 22: Linux Live Derivat

12 KAPITEL 4 - IMPLEMENTIERUNG UND TEST

Integration von Software

Die Integration von AdobeR© FlashR© und AdobeR© ReaderR© erfolgt mit Hilfe des DebianPackage Managers „dpkg“. Dazu werden die jeweiligen Installationspakete (Dateiendung:.deb) von den Websites der Hersteller heruntergeladen und mittels

dpkg -i *.deb

installiert (wobei *.deb für das jeweilige Paket steht). Diese Vorgehensweise wurde ge-wählt, da in den Repositories von Ubuntu nicht die aktuellen Versionen der beiden Paketevorhanden sind.Im Gegensatz dazu ist die aktuelle Version von Sun Java bereits in den Ubuntu-Repositriesvorhanden und kann somit mittels apt installiert werden. Dazu muss lediglich folgenderBefehl ausgeführt werden:

apt-get install sun-java6-plugin.

Veränderung der GUI

Um die GUI von Firefox entsprechend verändern zu können wird die Erweiterung BMAKiosk genutzt. Diese Erweiterung benötigt die Erweiterung jsLib4 um korrekt zu funktio-nieren.Die Installation der Erweiterungen erfolgt mittels folgenden Kommandos [Wym09]:

firefox -install-global-extension *.xpi

Dabei steht *.xpi wiederum stellvertretend für die zu installierenden Erweiterungen steht.Die nach der Installation notwendige Konfiguration der BMA Kiosk-Erweiterung wirdüber das Admin-Menü vollzogen, welches mit dem Befehl

firefox -kiosk admin

aufgerufen werden kann [Col09]. Dieses Menü bietet bereits eine Möglichkeit die Pri-vatsphäre des Benutzers zu schützen, indem ein Session-Timeout bei Inaktivität einge-stellt werden kann, nachdem sämtliche Cookies, Cache usw. der aktuellen Session ge-löscht werden. Des Weiteren kann mittels dieses Menüs die Anzahl der zur Verfügungstehenden Schaltflächen bestimmt werden (so wurde u. a. der „Drucken“-Button ent-fernt). Auch wurde mit Hilfe des Menüs Firefox so konfiguriert, dass die Startseite stets„http://www.sas.de“ ist und dass standartmäßig auf diese Startseite nach dem Session-Timeout zurückgekehrt wird.

Autostart in Openbox

Einer der Gründe für die Wahl von Openbox war die einfache Konfiguration Shell- bzw.XML-Scripte. Das Shell-Script autostart.sh in Verzeichnis /etc/xdg/openbox ist einesdieser Scripte und steuert die Autostarteinträge von Openbox. Diese Datei kann einfachum die entsprechenden Einträge erweitert werden [Jan09].Durch den Umstand, dass, falls Firefox geschlossen wird, er sich automatisch wieder star-ten soll, ist es sinnvoll die Ausführung der Firefox-Anwendung in eine Endlosschleife

4https://www.mozdevgroup.com/dropbox/jslib/signed/jslib_current_signed.xpi

Page 23: Linux Live Derivat

4.3 - BETA-PHASE 13

zu integrieren. Da die Implementierung des Codes direkt in die autostart.sh nichtsinnvoll wäre, wird die entsprechende Datei mit dem Namen ff_start.sh im Ordner/usr/share/applications/sas_custom angelegt. Ihr Inhalt ist folgender:

Listing 4.3: Inhalt /usr/share/applications/sas_custom/ff_start.sh

1 #!/bin/bash2

3 while true; do4 firefox -kiosk --display =:05 done6

7 exit 0

Der Eintrag firefox -kiosk startet Firefox im Kiosk-Modus [Col09]. Die autostart.shwird entsprechend um den Eintrag

Listing 4.4: Ergänzung von /etc/xdg/openbox/autostart.sh

/usr/share/applications/sas_custom/ff_start.sh&

ergänzt, wobei das „&“-Zeichen eine Ausführung als Hintergrundprozess bezweckt. Dies istnotwendig, da sonst das autostart.sh-Script nicht fertig abgearbeitet werden kann undsomit Openbox nicht ordnungsgemäß startet. Die vollständige Datei autostart.sh kannim Anhang auf Seite IX gefunden werden.

Test und weitere Modifikationen

Durch die Integration neuer Software und Erweiterungen muss das Derivat getestet werdenum die Funktionalität sicherzustellen. Die durch diese Tests gewonnenen Erkenntnisse sindfolgende:

• Das Firefox-Fenster füllt den Bildschirm nicht aus,

• die Adressleiste von Firefox enthält bereits Links von besuchten Seiten und

• Warnungen z. B. bei https-Verbindungen lassen sich nicht wegklicken.

Diese Störungen der Funktionaliät lassen sich durch die Modifikation bzw. Löschung ge-zielter Dateien beheben.So kann das Problem des nicht voll ausgefüllten Bildschrims mittels einer Veränderungder localstore.rdf im Verzeichnis /etc/firefox-3.0/profile/ behoben werden. Da-zu müssen die Koordinaten und die Größe des Fensters der BMA Kiosk-GUI festgelegtwerden. Dadurch verändert sich die Datei folgendermaßen:

Page 24: Linux Live Derivat

14 KAPITEL 4 - IMPLEMENTIERUNG UND TEST

Listing 4.5: Änderung an /etc/firefox-3.0/profile/localstore.rdf

<RDF:Description RDF:about="chrome: // bmakiosk/content/bmakiosk.xul#main -window"

screenX="0"screenY="0"width="2000"height="2000"sizemode="normal" />

Es wurden mit dieser Modifikation die Koordinaten des Fensters auf die obere linkeEcke des Bildschirms festgelegt und das Fenster auf 2000 Pixel (kurz: px) Breite und2000 px Höhe skaliert. Diese hohe Skalierung wurde gewählt, da das Fenster automa-tisch auf die maximale Bildschirmgröße zurückskaliert wird und somit der Einsatz selbstauf hochauflösenden Bildschirmen keine Probleme bereiten sollte. Die vollständige Dateilocalstore.rdf kann im Anhang auf Seite X eingesehen werden.Die bereits vorhandenen Links in der Adressleiste von Firefox sind nicht, wie zuerst vermu-tet, bereits besuchte Websites, sondern die Lesezeichen, die Firefox bereits bei der Instal-lation integriert hatte. Um diese zu entfernen muss lediglich die Datei bookmarks.htmlim Verzeichnis /etc/firefox-3.0/profile/ gelöscht werden.Da in der BMA Kiosk-Umgebung die Warnmeldungen bei z. B. https-Verbindungen nichtweggeklickt werden können, erfolgt eine generelle Deaktivierung dieser Warnmeldungen.Dazu muss die bereits vorhandene Datei prefs.js im Verzeichnis /etc/firefox-3.0/profile/ um folgende Einträge ergänzt werden:

Listing 4.6: Änderung an /etc/firefox-3.0/profile/prefs.js

user_pref (" security.warn_entering_weak", false);user_pref (" security.warn_entering_weak.show_once

", false);user_pref (" security.warn_viewing_mixed", false);user_pref (" security.warn_viewing_mixed.show_once

", false);user_pref (" browser.urlbar.clickSelectsAll", true)

;user_pref (" browser.urlbar.doubleClickSelectsAll",

false);

Die letzten beiden Einträge dienen nicht der Deaktivierung der Sicherheitswarnungen,sondern der Veränderung des Verhaltens der Adresszeile. Diese Veränderungen wurdenvorgenommen, da die meisten Nutzer des Derivates WindowsR©-Nutzer sein werden unddiese gewohnt sind, dass die gesamte Adresszeile beim einfachen Anklicken markiert wird.

Page 25: Linux Live Derivat

4.3 - BETA-PHASE 15

4.3.3 Anpassung Boot-Splash und USplash

Da durch die Anforderungsspezifikation bzw. den Entwurf die Anforderungen an denBoot-Splash und den USplash bereits festgelegt wurden, erfolgt in diesem Abschnitt dietechnische Umsetzung. Durch die Komplexität der Umsetzung sind die Funktionen vonReconstructor nicht ausreichend und es muss auf andere Alternativen ausgewichen werden.

Boot-Splash: unverzüglicher Start

Um einen unverzüglichen Start des Derivates zu erreichen wird der Eintrag timeout in derDatei isolinux.cfg in Ordner /isolinux/ im Root-Verzeichnis des Derivats verändert.Die veränderte Datei hat folgenden Inhalt:

Listing 4.7: Geänderte isolinux.cfg

1 include menu.cfg2 default vesamenu.c323 prompt 04 timeout 15 gfxboot bootlogo

Diese Option legt fest, wie lange der Boot-Splash angezeigt wird bzw. für Eingaben zu-gänglich ist, wobei dies in 1

10Sekunden gemessen wird. Die Veränderung führt somit dazu,

dass der Boot-Splash nur für 110

Sekunde auf Eingaben reagiert.

Boot-Splash: korrekte Sprache (deutsch)

Um die default-Sprache auf Deutsch zu setzen muss eine neue Datei namens lang [Eas09]im /isolinux/-Verzeichnis angelegt werden, deren Inhalt lautet:

Listing 4.8: Inhalt /isolinux/lang

1 de

Boot-Splash: Veränderung Menü

Um den Boot-Splash entsprechend bearbeiten zu können müssen in der Entwicklungsum-gebung die Pakete gfxboot und dpkg-dev installiert werden. Außerdem werden noch dieSource-Dateien der Pakete gfxboot-theme-ubuntu und gfxboot benötigt [Eas09]. Durchdie Veränderung der panel.inc im Verzeichnis /gfxboot-theme-ubuntu/ wird die Dar-stellung der Optionen modifiziert. So werden bei der Ubuntu-Installations-CD z.B. imunteren Bildschirmbereich Optionen bereitgestellt, auf die mittels der F-Tasten zugegrif-fen werden kann. Die Abbildung 4.1 verdeutlicht dies.Mittels der Modifikation der panel.inc werden die Hinweise auf die F-Tasten ausgeblen-det. Allerdings bleibt deren Funktionsumfang weiterhin bestehen, was aber ein tolerierba-res Risiko darstellt, da die Interaktionsmöglichkeiten des Benutzers mit dem Boot-Splashin einem der nächsten Schritte drastisch eingeschränkt werden. Ein Auszug aus der abge-änderten panel.inc würde folgendermaßen aussehen:

Page 26: Linux Live Derivat

16 KAPITEL 4 - IMPLEMENTIERUNG UND TEST

Abbildung 4.1: Ubuntu 9.04 Boot-Splash

Listing 4.9: Auszug geänderte panel.inc

44 [ .panel.both [ keyF2 0 "" /panel.lang /panel.lang.width /panel.lang.update /lang.init ] ]

Die weiteren, auf dem originalen Ubuntu Boot-Splash erscheinenden Einträge könnengrößtenteils durch die Änderung der Datei de.po im Verzeichnis /gfxboot-theme-ubuntu/po/eliminiert bzw. verändert werden. Diese Datei dient der Übersetzung der englischen default-Menüeinträge. Zur Modifikation werden die deutschen Übersetzungen entweder durch einLeerzeichen oder durch den entsprechenden Text ersetzt. Die Veränderung des Textes „F1Hilfe“ zeigt das Listing 4.10.

Listing 4.10: Auszug geänderte de.po

58 #. txt_help59 msgid "Help"60 msgstr " "

Nachdem die Veränderung der beiden Dateien abgeschlossen ist können sie mittels derBefehle make und make install kompiliert werden. Durch diese Prozedur wird u. a.ein neuer Ordner mit der Bezeichnung install erstellt, in dem die Dateien de.tr undbootlogo zu finden sind. Diese Dateien sind die kompilierten Varianten der zuvor geän-derten Dateien.Da der Boot-Splash-Hintergrund auch an das Erscheinungsbild der Firma angepasst wer-den soll, muss ein entsprechendes Bild erstellt werden. Dieses Bild muss dabei folgendenKriterien entsprechen:

• Auflösung: 640px × 480px

Page 27: Linux Live Derivat

4.3 - BETA-PHASE 17

• Farben: indiziert auf 16 Farben

• Format: Zsoft-PCX-Bild

• Dateiname: splash.pcx

Die erstellten Dateien (de.tr, bootlogo und splash.pcx) werden in den Ordner /isolinux/im Root-Verzeichnis des Derivates verschoben. In diesen Verzeichnis muss weiterhin dieDatei text.cfg entsprechend den Präferenzen verändert werden, sodass ausschließlichdie Option zum Booten als Live-System zur Verfügung steht. Folgendes Listing zeigt denInhalt der modifizierten text.cfg:

Listing 4.11: Geänderte text.cfg

1 default live2 label live3 menu label ^Try Ubuntu without any change to

your computer4 kernel /casper/vmlinuz5 append file=/cdrom/preseed/ubuntu.seed boot=

casper initrd =/ casper/initrd.gz quiet splash--

Die Option in Zeile 3 (menu label) wurde mit Hilfe der Übersetzungsdatei (de.po bzw.de.tr) modifiziert um so den entsprechenden (deutschen) Eintrag anzuzeigen.

Boot-Splash: Finales Ergebnis

Die Abbildung 4.2 stellt das Aussehen des geänderten Boot-Splash dar.

Abbildung 4.2: Veränderter Boot-Splash

Page 28: Linux Live Derivat

18 KAPITEL 4 - IMPLEMENTIERUNG UND TEST

USplash: Veränderung Design

Um eine Veränderung am USplash vornehmen zu können müssen die Pakete cdbs, debhelper, dpkg-dev, fakeroot, devscripts und autotools-dev in der Entwicklungsumge-bung installiert werden. Des Weiteren wird noch die Source eines USplashs benötigt (hier:XUbuntu-USplash). Die entsprechende Source heißt xubuntu-artwork-usplash [Gar09].Diese wird im Folgenden in der Entwicklungsumgebung an Hand der entsprechenden Kri-terien angepasst.Als ersten Punkt der grafischen Anpassung des USplashs wird ein alternativer Hintergrunderstellt, der dem Hintergrund des Boot-Splash ähnelt. Dieser Hintergrund muss in mehre-ren Auflösungen erstellt werden, da USplash für die verschiedenen Standard-Auflösungenverschiedene Hintergrundbilddateien verwendet. Diese Auflösungen wären 640px × 400px,640px × 480px, 800px × 600px, 1024px × 768px und 1365px × 768px. Weitere Kriterienfür die Bilder sind:

• Farben: indiziert auf 256 Fraben

• Format: Portable Network Graphics (kurz: png)

• Dateiname: usplash_[Breite] _[Höhe].png

Die so erstellten Bilder ersetzen die Bilder im usplash/-Verzeichnis der Source.Da der USplash standardmäßig eine Textbox besitzt, in der Nachrichten während desBootvorgangs ausgegeben werden können, muss dieses entfernt werden, da es nicht denGestaltungskriterien entspricht. Dazu müssen die folgenden Code-Bestandteile aus derxubuntu-usplash-theme.c im usplash/-Verzeichnis der Source gelöscht werden:

Listing 4.12: Zu löschende Fragmente aus xubuntu-usplash-theme.c

/* Text box position and size in pixels */.text_x = 96,.text_y = 246,.text_width = 360,.text_height = 100,

/* Text details */.line_height = 15,.line_length = 32,.status_width = 35,

Diese Code-Bestandteile kommen in der Datei mehrmals vor und müssen somit mehrmalsgelöscht werden. Dadurch ist die Modifikation der Source „xubuntu-artwork-usplash“abgeschlossen und es kann ein Paket aus der Source erstellt werden. Durch diese Erstel-lung wird eine Datei namens usplash-theme-xubuntu.so im usplash/-Verzeichnis derSource erstellt, welche nach /usr/lib/usplash in der chroot-Umgebung kopiert wird.Die chroot-Umgebung wird nun so konfiguriert, dass der modifizierte USplash als Stan-dard verwendet wird. Da dadurch die InitRD verändert wird, muss diese ggf. neu erstelltund integriert werden.

Page 29: Linux Live Derivat

4.3 - BETA-PHASE 19

USplash: Finales Ergebnis

Die Abbildung 4.3 stellt das Aussehen des geänderten USplash dar.

Abbildung 4.3: Veränderter USplash

4.3.4 Derivatgröße unter 700 MB

Durch die Integration der Software benötigt das Derivat mehr als 700 MB Speicher. Da die-ser Zustand nicht akzeptabel ist, wurde, anstatt als Grundlage die Ubuntu-Installations-CD zu nutzen eine eigene, speicherschonendere „Minimal“-CD mittels der Anleitung „Live-CDFromScratch“ [Zaj09] erstellt. In diese CD wurden bereits die Pakete openbox, xinit,xserverxorg-core, firefox und usplash integriert, wobei die Modifikation des USplas-hs bereits während der Erstellung der CD erfolgt, was eine spätere Erstellung und Inte-gration der InitRD überflüssig macht. Die anderen Modifikationen können unverändertangewendet werden.

4.3.5 Bildschirmschoner

Auf Grund der veränderten Voraussetzungen (Minimal- anstatt Standart-CD) sind vieleAnwendungen nicht mehr vorhanden. So sind u. a. GDM und alle damit verbundenenPakete nicht mehr installiert, was den Gnome-Screensaver mit einschließt. Um trotz diesesUmstandes über einen Bildschirmschoner zu verfügen müssen die Pakete xscreensaverund xscreensaver-gl-extra installiert werden. Somit wird nun anstatt des Gnome-Screensavers der XScreensaver verwendet.Um diesen zu konfigurieren muss die Datei .xscreensaver im Verzeichnis /etc/skel/erstellt werden. Die in dem Derivat verwendete Konfiguration ist im Anhang auf Seite XIzu finden. Des Weiteren muss die autostart.sh im Verzeichnis /etc/xdg/openbox/ umfolgende Zeile ergänzt werden [Zaw09] (ein vollständiges Beispiel der autostart.sh istim Anhang auf Seite IX zu finden):

Page 30: Linux Live Derivat

20 KAPITEL 4 - IMPLEMENTIERUNG UND TEST

Listing 4.13: Ergänzung von /etc/xdg/openbox/autostart.sh

xscreensaver -nosplash&

Da der Bildschirmschoner eine Diashow zeigen soll, wurde in der .xscreensaver derPfade zu den entsprechenden Bildern auf

Listing 4.14: Geänderte Zeile 33 von /etc/skel/.xscreensaver

33 /usr/share/applications/sas_custom/slideshow/

geändert.

4.3.6 Abschluss der Beta-Phase

Die vorangegangen Modifikationen haben das Derivat an die geforderten Kriterien an-gepasst und somit muss nun lediglich noch die Suche nach Fehlern und/oder Verbes-serungen erfolgen. Dies ist aber nicht mehr Teil der Beta-Phase, sondern gehört zumRelease-Candidate-Testing (kurz: RC-Testing).

4.4 RC-Phase

Die folgenden Abschnitte befassen sich mit den Tests des Derivates um eventuelle Fehler zufinden und diese zu korrigieren. Weiterhin werden geringfügigere Anpassungen vorgenom-men und es wird versucht die optionalen Forderungen aus der Anforderungsspezifikation(Integration des Proxy-Servers SQUID) umzusetzen.

4.4.1 xmodmap

Während der Tests ist aufgefallen, dass der Benutzer mittels der TastenkombinationenStrg + Alt + F1 . . . F6 Zugriff auf die sog. Hintergrundkonsolen erlangen könnteund somit die Möglichkeit zur Manipulation hätte.Mittels des Pakets x11-xserver-utils kann das Programm xmodmap installiert werden,welches die Tastaturbelegung des Derivates entsprechend verändern kann. Es wird al-lerdings nicht eine generelle Deaktivierung der Tastenkombinationen angestrebt, da einZugriff auf die Hintergrundkonsole ggf. notwendig sein könnte. Somit wird die Tasten-kombination für die erste Hintergrundkonsole auf AltGr + Shift + Ö umgelegt. Dierestlichen Hintergrundkonsolen sind nicht weiter von Belang und somit wird der Zugriffauf sie deaktiviert. Des Weiteren werden alle F-Tasten deaktiviert, da die Funktionsweisedes Derivats keine funktionierenden F-Tasten voraussetzt. Als Abschluss wird noch dieTastenkombination Strg + Alt + Backspace deaktiviert, da durch diese Tastenkom-bination der aktuell laufende Fenstermanager beendet werden kann.An den Inhalt der Datei autostart.sh im Verzeichnis /etc/xdg/openbox/ müssen fol-gende Zeilen angehängt werden:

Page 31: Linux Live Derivat

4.5 - ABSCHLIEßENDE WORTE 21

Listing 4.15: Ergänzung von /etc/xdg/openbox/autostart.sh

(sleep 5 && xmodmap /usr/share/applications/sas_custom/xmodmap)&

(sleep 30 && xmodmap /usr/share/applications/sas_custom/xmodmap)&

Das Progamm xmodmap muss mit einer zeitlichen Verzögerung ausgeführt werden, da-mit Openbox vor dieser Ausführung starten und somit die Tastaturlayoutänderungenauf Openbox angewendet werden können. Die Datei xmodmap im Verzeichnis /usr/share/applications/sas_custom/ enthält das geänderte Tastaturlayout [Lin09]. Die doppelteAusführung des Kommandos (nach 5 Sekunden und nach 30 Sekunden) ist eine Sicher-heitsmaßnahme, da es ggf. zu Startverzögerungen von Openbox durch die physikalischenEigenschaften der CD bzw. des Laufwerks kommen kann.

4.4.2 SQUID

Um den Zugriff auf bestimmte Seiten bzw. Bereiche im Internet zu restriktivieren soll derProxy-Server SQUID mit einem zusätzlichen Content-Filter eingesetzt werden.Nach der Installation startet sich SQUID automatisch und läuft als Daemon weiter. Aller-dings ist SQUID nicht für den Einsatz auf einem Computer konzipiert, der eine dynamischzugewiesene Internet-Protokoll-Adresse (kurz: IP-Adresse) besitzt. Auch durch entspre-chende Modifikationen ist ein Einsatz von SQUID nicht auf dem Derivat möglich, wasdazu führt, dass das Release über keinen Proxy-Server bzw. Content-Filter verfügt.

4.5 Abschließende WorteDurch die Integration der verschiedenen Pakete in das Derivat wurden die Kriterien ausder Anforderungsspezifikation (siehe Seite 3, Kapitel 2) größtenteils umgesetzt. Lediglichdie optionale Integration des Proxy-Servers scheiterte.Da Entwicklungsumgebung parallel konfiguriert wurde, wird sichergestellt, dass auchnachfolgende Veränderungen an dem Derivat vorgenommen werden können. Die Erstel-lung der Entwicklungsumgebung als Live-System wurde allerdings nicht realisiert, da even-tuelle Updates nicht persistent wären.

Page 32: Linux Live Derivat

22 KAPITEL 4 - IMPLEMENTIERUNG UND TEST

Page 33: Linux Live Derivat

Kapitel 5

Zusammenfassung und Ausblick

Durch das Projekt „Erstellung eines Linux-Derivates für Public-Browsing-PCs“ war esmöglich die primär geforderten Kriterien umzusetzen und ein lauffähiges Derivat zu er-stellen. Die Integration der optionalen Kriterien konnte im Rahmen dieses Projekts nichtrealisiert werden. Diese können aber eventuell bei der weiteren Entwicklung des Derivatsimplementiert werden.Des Weiteren wurde eine entsprechende Entwicklungsumgebung zur Weiterentwicklungdes Derivats geschaffen und durch diese Projektarbeit eine Dokumentation erstellt, die esauch späteren Entwicklern möglich machen wird das Derivat zu warten.Ein weiterer wichtiger Punkt, der eventuell bei der Weiterentwicklung des Derivats be-rücksichtigt werden kann, ist die neue Ubuntu-Version (9.10), die im Oktober 2009 veröf-fentlicht werden wird. Ein Update des Derivats auf die Grundstruktur von Ubuntu 9.10würde ggf. Performance- und Darstellungsvorteile bringen.

23

Page 34: Linux Live Derivat

24 KAPITEL 5 - ZUSAMMENFASSUNG UND AUSBLICK

Page 35: Linux Live Derivat

Anhang A

Listings

A

Listing A.1: Inhalt /etc/xdg/openbox/autostart.sh

1 # This shell script is run before Openbox launches.2 # Environment variables set here are passed to the Openbox session.3

4 # Set a background color5 BG=""6 if which hsetroot >/dev/null; then7 BG=hsetroot8 else9 if which esetroot >/dev/null; then

10 BG=esetroot11 else12 if which xsetroot >/dev/null; then13 BG=xsetroot14 fi15 fi16 fi17 test -z $BG || $BG -solid "#303030"18

19 # D-bus20 if which dbus -launch >/dev/null && test -z "$DBUS_SESSION_BUS_ADDRESS

"; then21 eval ‘dbus -launch --sh-syntax --exit -with -session ‘22 fi23

24 # Make GTK apps look and behave how they were set up in the gnomeconfig tools

25 if test -x /usr/libexec/gnome -settings -daemon >/dev/null; then26 /usr/libexec/gnome -settings -daemon &27 elif which gnome -settings -daemon >/dev/null; then28 gnome -settings -daemon &29 # Make GTK apps look and behave how they were set up in the XFCE

config tools30 elif which xfce -mcs -manager >/dev/null; then31 xfce -mcs -manager n &32 fi33

34 # Preload stuff for KDE apps

IX

Page 36: Linux Live Derivat

X ANHANG A - LISTINGS

35 if which start_kdeinit >/dev/null; then36 LD_BIND_NOW=true start_kdeinit --new -startup +kcminit_startup &37 fi38

39 # Run XDG autostart things. By default don ’t run anything desktop -specific

40 # See xdg -autostart --help more info41 DESKTOP_ENV=""42 if which /usr/lib/openbox/xdg -autostart >/dev/null; then43 /usr/lib/openbox/xdg -autostart $DESKTOP_ENV44 fi45

46 xscreensaver -nosplash &47 /usr/share/applications/sas_custom/ffstart.sh&48 (sleep 5 && xmodmap /usr/share/applications/sas_custom/xmodmap)&49 (sleep 30 && xmodmap /usr/share/applications/sas_custom/xmodmap)&

Listing A.2: Inhalt /etc/firefox-3.0/profile/localstore.rdf

1 <?xml version="1.0"?>2 <RDF:RDF xmlns:NC="http://home.netscape.com/NC -rdf#"3 xmlns:RDF="http://www.w3.org /1999/02/22 -rdf -syntax -ns#">4 <RDF:Description RDF:about="chrome: // mozapps/content/downloads/

downloads.xul">5 <NC:persist RDF:resource="chrome: // mozapps/content/downloads/

downloads.xul#downloadManager"/>6 </RDF:Description >7 <RDF:Description RDF:about="chrome: // browser/content/browser.xul">8 <NC:persist RDF:resource="chrome: // browser/content/browser.xul#

main -window"/>9 <NC:persist RDF:resource="chrome: // browser/content/browser.xul#

sidebar -box"/>10 <NC:persist RDF:resource="chrome: // browser/content/browser.xul#

sidebar -title"/>11 </RDF:Description >12 <RDF:Description RDF:about="chrome: // browser/content/browser.xul#

main -window"13 width="994"14 screenX="0"15 screenY="25"16 height="721"17 sizemode="maximized" />18 <RDF:Description RDF:about="chrome: // mozapps/content/downloads/

downloads.xul#downloadManager"19 width="485"20 height="300"21 sizemode="normal"22 screenX="0"23 screenY="49" />24 <RDF:Description RDF:about="chrome: // mozapps/content/extensions/

extensions.xul#viewGroup"25 last -selected="extensions" />26 <RDF:Description RDF:about="chrome: // mozapps/content/extensions/

extensions.xul#extensions -view"27 selected="true"

Page 37: Linux Live Derivat

XI

28 last -selected="urn:mozilla:item:[email protected]" />

29 <RDF:Description RDF:about="chrome: // browser/content/browser.xul#sidebar -box"

30 sidebarcommand=""31 width=""32 src="" />33 <RDF:Description RDF:about="chrome: // browser/content/browser.xul#

sidebar -title"34 value="" />35 <RDF:Description RDF:about="chrome: // mozapps/content/extensions/

extensions.xul">36 <NC:persist RDF:resource="chrome: // mozapps/content/extensions/

extensions.xul#search -view"/>37 <NC:persist RDF:resource="chrome: // mozapps/content/extensions/

extensions.xul#extensionsManager"/>38 <NC:persist RDF:resource="chrome: // mozapps/content/extensions/

extensions.xul#extensions -view"/>39 <NC:persist RDF:resource="chrome: // mozapps/content/extensions/

extensions.xul#viewGroup"/>40 </RDF:Description >41 <RDF:Description RDF:about="chrome: // mozapps/content/extensions/

extensions.xul#extensionsManager"42 width="520"43 height="380"44 sizemode="normal"45 screenX="5"46 screenY="49" />47 <RDF:Description RDF:about="chrome: // bmakiosk/content/bmakiosk.xul"

>48 <NC:persist RDF:resource="chrome: // bmakiosk/content/bmakiosk.xul#

main -window"/>49 </RDF:Description >50 <RDF:Description RDF:about="chrome: // mozapps/content/downloads/

unknownContentType.xul#unknownContentType"51 screenX="413"52 screenY="190" />53 <RDF:Description RDF:about="chrome: // bmakiosk/content/bmakiosk.xul#

main -window"54 screenX="0"55 screenY="0"56 width="2000"57 height="2000"58 sizemode="normal" />59 <RDF:Description RDF:about="chrome: // mozapps/content/downloads/

unknownContentType.xul">60 <NC:persist RDF:resource="chrome: // mozapps/content/downloads/

unknownContentType.xul#unknownContentType"/>61 </RDF:Description >62 </RDF:RDF >

Listing A.3: Inhalt /etc/skel/.xscreensaver

1 # XScreenSaver Preferences File

Page 38: Linux Live Derivat

XII ANHANG A - LISTINGS

2 # http :// www.jwz.org/xscreensaver/3

4 timeout: 0:11:005 cycle: 0:10:006 lock: False7 lockTimeout: 0:00:008 passwdTimeout: 0:00:309 visualID: default

10 installColormap: True11 verbose: False12 timestamp: True13 splash: True14 splashDuration: 0:00:0515 demoCommand: xscreensaver -demo16 prefsCommand: xscreensaver -demo -prefs17 nice: 1018 memoryLimit: 019 fade: True20 unfade: False21 fadeSeconds: 0:00:0322 fadeTicks: 2023 captureStderr: True24 ignoreUninstalledPrograms:False25 font: *-medium -r-*-140-*-m-*26 dpmsEnabled: False27 dpmsStandby: 2:00:0028 dpmsSuspend: 2:00:0029 dpmsOff: 4:00:0030 grabDesktopImages: True31 grabVideoFrames: False32 chooseRandomImages: True33 imageDirectory: /usr/share/applications/sas_custom/slideshow/34

35 mode: one36 selected: 037

38 textMode: file39 textLiteral: XScreenSaver40 textFile:41 textProgram: fortune42 textURL: http :// fridge.ubuntu.com/node/feed43

44 programs: \45 GL: glslideshow -root -delay 0 -duration 10 \46 -zoom 100 -pan 1 -fade 0 \n\47

48 pointerPollTime: 0:00:0549 pointerHysteresis: 1050 windowCreationTimeout :0:00:3051 initialDelay: 0:00:0052 sgiSaverExtension: True53 xidleExtension: True54 GetViewPortIsFullOfLies:False55 procInterrupts: True56 overlayStderr: True

Page 39: Linux Live Derivat

Anhang B

Pakete Entwicklungsumgebung

Die folgende Liste enthält die (zusätzlich) auf der Entwicklungsumgebung benötigtenProgramm bzw. Pakete:

• Reconstructor1

• AdobeR© FlashR©

• AdobeR© ReaderR©

• Virtualbox

• GIMP

• gfxboot

• dpkg-dev

• gfxboot-theme-ubuntu (als Source)

• cdbs

• debhelper

• fakeroot

• devscripts

• autotools-dev

• xubuntu-artwork-usplash (als Source)

• syslinux

• squashfs-tools

• mkisofs

• libbogl-dev

1http://www.reconstructor.org/

XIII

Page 40: Linux Live Derivat

XIV ANHANG B - PAKETE ENTWICKLUNGSUMGEBUNG

• libbogl0

• libgd2-xpm

• libusplash-dev

• xbase-clients

• xserver-xephyr

Alle Pakete können mittels des Befehlsapt-get install gfxboot dpkg-dev cdbs debhelper fakeroot devscriptsautotools-dev squashfs-tools mkisofs libbogl-dev libbogl0 libgd2-xpmlibusplash-dev xbase-clients xserver-xephyr

installiert werden.

Um alle Source-Pakete zu laden muss der folgende Befehl eingegeben werden:apt-get source gfxboot-theme-ubuntu xubuntu-artwork-usplash

Page 41: Linux Live Derivat

Anhang C

Pakete Derivat

Die folgende Liste enthält die (zusätzlich) auf dem Derivat benötigten Programm bzw.Pakete:

• AdobeR© FlashR©

• AdobeR© ReaderR©

• openbox

• sun-java6-plugin

• xinit

• xserver-xorg-core

• firefox

• usplash

• xscreensaver

• xscreensaver-gl-extra

• x11-server-utils

• libcurl3

Zusätzlich werden noch folgende Erweiterung für Firefox benötigt:

• BMA Kiosk

• jsLib

Alle Pakete können mittels des Befehlsapt-get install openbox sun-java6-plugin xinit xserver-xorg-core firefox usplash xscreensaver xscreensaver-gl-extra x11-server-utils libcurl3

installiert werden.

Die Installation der Firefox-Erweiterungen wird in Kapitel 4.3.2 auf Seite 12 behandelt.

XV

Page 42: Linux Live Derivat

XVI ANHANG C - PAKETE DERIVAT

Page 43: Linux Live Derivat

Anhang D

Anleitungen

Die folgenden Abschnitte enthalten (kurze) Anleitungen zur Umsetzung der verschiedenenVeränderungen des Derivats. Zusätzlich dazu werden noch nützliche Links zu den unter-schiedlichen Themen erwähnt. Die chroot-Umgebung ist am besten über Reconstructorzu nutzen (Einbindung des in Kapitel D.1 erzeugten Images).

D.1 Erstellung einer „Minimal“-CDDie Erstellung einer „Minimal“-CD dient der Prämisse, dass die Größe des Derivats nichtüber 700 MB steigen soll. Dazu wird ein Live-System erzeugt, welches nur über die mi-nimal notwendigen Komponenten verfügt. In dieses System können dann alle weiterenVeränderungen integriert werden bzw. werden diese bereits während der Erstellung in-tegriert (darauf wird an entsprechender Stelle hingewiesen). Bei dem Erstellungsprozesswird sowohl in der Entwicklungsumgebung als auch in der chroot-Umgebung gearbeitet,was entsprchend gekennzeichnet ist.Die benötigten Pakete für die Entwicklungsumgebung sind:

• syslinux

• squashfs-tools

• mkisofs

• debootstrap

Installation mittels:apt-get install syslinux squashfs-tools mkisofs debootstrap

Vorgehensweise:

1. mkdir LiveCD

2. cd LiveCD

3. mkdir chroot-env

4. sudo debootstrap –arch i386 [jaunty ] chroot-env(für [jaunty ] sollte immer der Name der aktuellen Ubuntu-Version1 eingesetztwerden)

1http://de.wikipedia.org/wiki/Ubuntu#Entwicklungsgeschichte

XVII

Page 44: Linux Live Derivat

XVIII ANHANG D - ANLEITUNGEN

5. sudo cp /etc/resolv.conf chroot-env/etc/resolv.conf

6. sudo cp /etc/apt/sources.list chroot-env/etc/apt/sources.list

7. sudo chroot chroot-env(durch diesen Befehl erfolgt der Wechsel in die chroot-Umgebung)

7.1 mount /proc

7.2 mount /sys

7.3 mount -t devpts none /dev/pts

7.4 apt-get update

7.5 export HOME=/root

7.6 export LC_ALL=C

7.7 apt-get install –yes ubuntu-standard casper

7.8 apt-get install –yes discover1 laptop-detect os-prober

7.9 apt-get install –yes linux-generic

7.10 apt-get install –no-install-recommends –yes network-manager(die Installation des Network-Managers ist für Ubuntu 9.04 wichtig, weil sonstnicht korrekt gebootet wird – ob diese Installation bei späteren Versionen wei-terhin notwendig ist, ist zum gegenwärtigen Zeitpunkt nicht bekannt)

7.11 apt-get install –yes openbox xinit server-xorg-core firefoxxscreensaver xscreensaver-gl-extra x11-server-utils usplash(dies installiert einige der zusätzlichen Komponenten, über die das Derivatverfügen soll - die folgenden Unterpunkte dienen dem Setup des verändertenUSplash (die Anleitung dazu ist auf Seite XXI zu finden)

(1) sudo update-alternatives –install /usr/lib/usplash/usplash-artwork.sousplash-artwork.so /usr/lib/usplash/[usplashthemexubuntu.so ] 10(wobei [usplashthemexubuntu.so ] stellvertretend für die erstellte USplash-Datei steht)

(2) sudo update-alternatives –config usplash-artwork.so(3) sudo update-initramfs -u

7.12 mkdir /usr/share/applications/sas_custom

7.13 apt-get clean

7.14 rm -rf /tmp/*

7.15 rm /etc/resolv.conf

7.16 umount -l -f /proc

7.17 umount -l -f /sys

7.18 umount /dev/pts

7.19 exit(durch diesen Befehl wird sich aus der chroot-Umgebung ausgeloggt, die wei-teren Schritte erfolgen wieder in der Entwicklungsumgebung)

Page 45: Linux Live Derivat

D.1 - ERSTELLUNG EINER „MINIMAL“-CD XIX

8. mkdir image image/casper image/isolinux image/install

9. cp chroot-env/boot/vmlinuz-2.6.**-**-generic image/casper/vmlinuz

10. cp chroot-env/boot/initrd.img-2.6.**-**-generic image/casper/initrd.gz

11. cp [/home/user/isolinux ] image/isolinux/(wobei [/home/user/isolinux ] stellvertretend für das Verzeichnis mit dem mo-difizierten Boot-Splash steht (Anleitung zu Modifikation des Boot-Splash auf SeiteXX))

12. sudo mksquashfs chroot-env image/casper/filesystem.squashfs

13. gedit image/README.diskdefinesInhalt:#define DISKNAME Ubuntu 9.04 "Jaunty Jackalope SAS Custom#define TYPE binary#define TYPEbinary 1#define ARCH i386#define ARCHi386 1#define DISKNUM 1#define DISKNUM1 1#define TOTALNUM 0#define TOTALNUM0 1

14. touch image/ubuntu

15. sudo -s

16. (cd image && find . -type f -print0 | xargs -0 md5sum > md5sum.txt)

17. exit

18. cd image

19. sudo mkisofs -r -V „$IMAGE_NAME“ -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../SAS-CustomLinux.iso .

20. cd ..(in diesem Verzeichnis liegt nun die erstellte .iso-Datei)

Die folgende URL enthält eine Anleitung zu dem behandelten Thema:

• https://help.ubuntu.com/community/LiveCDCustomizationFromScratch

Page 46: Linux Live Derivat

XX ANHANG D - ANLEITUNGEN

D.2 Anpassung Boot-Splash

Die Anpassung des Boot-Splashs dient der grafischen Modifikation und der Beschränkungder Zugriffsmöglichkeiten. Zunächst muss der Boot-Splash der Ubuntu-Installations-CDkopiert werden, dann werden einige Dateien modifiziert und anschließend wird alles indie chroot-Umgebung integriert. Dabei kann die Bearbeitung der entsprechenden Da-tein komplett innerhalb der Entwicklungsumgebung erfolgen (kein Wechsel zur chroot-Umgebung notwendig).Die benötigten Pakete für die Entwicklungsumgebung sind:

• gfxboot

• dpkg-dev

Installation mittels:apt-get install gfxboot dpkg-dev

Die benötigten Source-Pakete für die Entwicklungsumgebung sind:

• gfxboot-theme-ubuntu

Installation mittels:apt-get source gfxboot-theme-ubuntu

Vorgehensweise:

1. mkdir /home/[user ]/isolinux(wobei [user ] für das Verzeichnis des aktuellen Benutzers steht)

2. cp -r /media/cdrom0/isolinux/* /home/[user ]/isolinux(dazu muss natürlich die Ubuntu-Installations-CD im CD-ROM-Laufwerk eingelegtsein)

3. sudo chmod -R 755 /home/[user ]/isolinux

4. cd gfxboot-theme-ubuntu*/(wobei gfxboot-theme-ubuntu*/ für das Verzeichnis des Source-Pakets steht)

5. gedit panel.inc(in der Funktion syslinux die Anzeige von F2 bis F6 unterdrücken – (für F2 z. B. [.panel.both [ keyF2 0 "F2"... zu [ .panel.both [ keyF2 0 ""... ändern)

6. gedit po/de.po(Datei dient der Übersetzung der englischen Begriffe – Übersetzung entsprechendder Bedürfnisse und der Anzeigemöglichkeit ändern (z. B. msgid "Help"; msgstr"Hilfe" durch msgid "Help"; msgstr " " ersetzen (wichtig: nicht leerer String,sondern ein Leerzeichen bei Ersetzung ohne Inhalt))

7. make

8. sudo make install

Page 47: Linux Live Derivat

D.3 - ANPASSUNG USPLASH XXI

9. cp install/de.tr /home/[user ]/isolinuxcp install/bootlogo /home/[user ]/isolinux(wobei /home/[user ]/isolinux stellvertretend für das isolinux-Verzeichnis imhome-Verzeichnis des aktuellen Benutzers steht)

10. gimp(Befehl startet Grafikprogramm GIMP – Unterschritte finden in GIMP statt)

(1) Strg + NBreite: 640Höhe: 480 Pixel

(2) Bild erstellen(3) [Bild] → [Modus] → [Indiziert ...](4) Optimale Palette erzeugen

Maximale Anzahl der Farben: 16(5) Strg + S

Name: splash.pcxOrdner: /home/[user ]/isolinux(wobei /home/[user ]/isolinux stellvertretend für das isolinux-Verzeichnisim home-Verzeichnis des aktuellen Benutzers steht)

11. cd /home/[user ]/isolinux

12. gedit text.cfg(entsprechende Einträge entfernen bzw. ergänzen – zum Booten als Live-Systemmuss lediglich der oberste Eintrag bestehen bleiben)

13. gedit langInhalt:de(Änderung der Standard-Sprache auf deutsch)

14. gedit isolinux.cfg(Timeout auf „1“ stellen, damit (fast) sofort in den Bootvorgang übergegangen wird)

15. echo "de" > langlist

16. weitere Schritte zur Integration in das Derivat sind auf Seite XIX zu finden

Die folgende URL enthält eine Anleitung zu dem behandelten Thema:

• https://lists.ubuntu.com/archives/ubuntu-uk/2007-July/006207.html (Abschnitt 4a)

D.3 Anpassung USplashDer USplash wird rein grafisch überarbeitet. Die Bearbeitung der entsprechenden Dateinkann komplett innerhalb der Entwicklungsumgebung erfolgen – sie müssen lediglich in diechroot-Umgebung kopiert werden.Die benötigten Pakete für die Entwicklungsumgebung sind:

Page 48: Linux Live Derivat

XXII ANHANG D - ANLEITUNGEN

• cdbs

• debhelper

• dpkg-dev

• fakeroot

• devscripts

• autotools-dev

Installation mittels:apt-get install cdbs debhelper dpkg-dev fakeroot devscripts autotools-devapt-get build-dep usplash usplash-theme-ubuntu

Die benötigten Source-Pakete für die Entwicklungsumgebung sind:

• xubuntu-artworku-splash

Installation mittels:apt-get source xubuntu-artworku-splash

Vorgehensweise:

1. chmod 777 xubuntu-artworku

2. gimp(Befehl startet Grafikprogramm GIMP – Unterschritte finden in GIMP statt)

(1) Strg + NBreite: 640Höhe: 400 Pixel

(2) Bild erstellen

(3) alle throbber*.png-Bilder aus xubuntuartworkusplash/usplash/mit in Bildkopieren(damit bei Indexierung auch Ladebalken-Farben berücksichtigt werden)

(4) [Bild] → [Modus] → [Indiziert ...]

(5) Optimale Palette erzeugenMaximale Anzahl der Farben: 256

(6) eingefügte throbber*.png-Bilder wieder entfernen

(7) [Bild] → [Bild zusammenführen]

(8) Strg + SName: usplash_[Breite ]_[Höhe.png ](z. B.: usplash_640_400.png)Ordner: [xubuntu-artwork*/ ]usplash(wobei [xubuntu-artwork*/ ] stellvertretend für das xubuntu-artwork*/-Verzeichnisergänzt um die aktuelle Versionsnummer steht –z. B. xubuntu-artwork-0.26)

Page 49: Linux Live Derivat

D.4 - STARTSCRIPT FÜR FIREFOX XXIII

(9) Wiederholung für Auflösungen 640px× 480px, 800px× 600px, 1024px× 768pxund 1365px × 768px

3. cd xubuntu-artwork*/

4. gedit usplash/xubuntu-usplash-theme.c(folgende Schritte zeigen die Überarbeitung der xubuntu-usplash-theme.c – es solldie Textbox entfernt werden)

(1) löschen folgender Code-Bestandteile (mehrmaliges Vorkommen innerhalb derDatei):/* Text box position and size in pixels */.text_x = 96,.text_y = 246,.text_width = 360,.text_height = 100,

/* Text details */.line_height = 15,.line_length = 32,.status_width = 35,

5. dpkg-buildpackage -rfakeroot

6. cp usplash/usplash-theme-xubuntu.so [chroot-Umgebung ]/usr/lib/usplash(kopiert geänderte Datei in chroot-Umgebung)

7. die restlichen Schritte erfolgen bei der Erstellung der „Minimal“-CD (siehe SeiteXVIII)

Die folgenden URLs enthalten ein Anleitungen zu dem behandelten Thema:

• http://ubuntuforums.org/showpost.php?p=4816450&postcount=1

• http://ubuntusatanic.org/forum/comments.php?DiscussionID=21&page=1

D.4 Startscript für Firefox

Das Startscript startet Firefox und führt ihn erneut aus, falls er geschlossen werden sollte.

1. gedit ffstart.shInhalt:#!/bin/bashwhile true; dofirefox -kiosk –display=:0doneexit 0

Page 50: Linux Live Derivat

XXIV ANHANG D - ANLEITUNGEN

2. chmod 755 ffstart.sh

3. cp ffstart.sh [chroot-Umgebung ]/usr/share/applications/sas_custom

D.5 xmodmapXmodmap dient der Veränderung des Tastaturlayouts. Dazu muss in der Entwicklungs-umgebung ein Tastaturlayout erzeugt werden, welches dann verändert und in die chroot-Umgebung kopiert werden kann.

1. xmodmap -pke > xmodmap

2. gedit xmodmapfolgende Änderungen vornehemen:keycode 22 = BackSpacekeycode 47 = odiaeresis Odiaeresis odiaeresis Odiaeresisdead_doubleacute XF86_Switch_VT_1 dead_doubleacutekeycode 67 = (alles nach „=“ löschen)...keycode 76 =keycode 82 = KP_Subtractkeycode 86 = KP_Addkeycode 95 =keycode 96 =

3. cp xmodmap [chroot-Umgebung ]/usr/share/applications/sas_custom

Die folgenden URLs enthalten Anleitungen zu dem behandelten Thema:

• https://debianforum.de/forum/viewtopic.php?f=2\&t=54867\&start=0

• http://wiki.ubuntuusers.de/Xmodmap

D.6 Kiosk-Oberfläche für FirefoxDer folgende Abschnitt wird die Oberfläche von Firefox für den öffentlichen Einsatz mo-difizieren. Alle Kommandos erfolgen in der chroot-Umgebung.

1. cd /tmp/

2. wget https://www.mozdevgroup.com/dropbox/jslib/signed/jslib_current_signed.xpiwget https://www.mozdevgroup.com/clients/bm/xpi/bmakiosk_currentffgeneric_signed.xpi(Erweiterungen für Firefox herunterladen)

3. firefox -install-global-extension [*.xpi ](Installation der Erweiterungen – wobei [*.xpi ] für die jeweilige Erweiterung steht)

Page 51: Linux Live Derivat

D.7 - INSTALLATION VON SOFTWARE XXV

4. (sollte die Bash eine Fehlermeldung wie „DBus Library nicht korrekt . . . “ ausgibt,dann folgendes Kommando eingeben: dbus-uuidgen –ensure)

5. firefox -kiosk admin (damit kann die Kiosk-Oberfläche konfiguriert werden)

6. rm *.xpi

Die folgenden URLs enthälten Anleitungen zu dem behandelten Thema:

• https://www.mozdevgroup.com/clients/bm/install-admin.html

• http://kb.mozillazine.org/Command_line_arguments

D.7 Installation von Software

Zusätzlich zu Firefox werden noch AdobeR© FlashR©, AdobeR© ReaderR© und Java (JRE)benötigt. Diese müssen in der chroot-Umgebung installiert werden.

D.7.1 Adobe Flash und Adobe Reader

1. apt-get remove flashplugin-nonfree(Sicherheitsmaßnahme, falls alter Flash-Player installiert gewesen sein sollte)

2. apt-get install libcurl3

3. cd /tmp/

4. wget http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_10_linux.deb

5. dpkg -i [*.deb ] (wobei [*.deb ] für die heruntergeladen Flash-Installation steht)

6. wget http://ardownload.adobe.com/pub/adobe/reader/unix/9.x/9.1.2/deu/AdbeRdr9.1.2-1_i386linux_deu.deb

7. dpkg -i [*.deb ] (wobei [*.deb ] für die heruntergeladen Adobe-Reader-Installationsteht)

8. rm *.deb

D.7.2 Java

1. apt-get update

2. apt-get install sun-java6-plugin

Page 52: Linux Live Derivat

XXVI ANHANG D - ANLEITUNGEN

D.8 Veränderte bzw. neuerstellte DateienDie Bezeichnung der Listings enthält das Verzeichnis und den Dateinamen, den die Da-teien später haben müssen (alle Verzeichnisse befinden sich in der chroot-Umgebung).

Listing D.1: /etc/skel/.bash_profile

1 startx

Der Eintrag bewirkt, dass sofort nach dem (erfolgreichen) Einloggen das X-Windows-System gestartet wird.

Listing D.2: /etc/skel/.xinitrc

1 exec openbox -session

Der Eintrag bewirkt, dass Openbox als Standard-Fenstermanager verwendet wird.

Listing D.3: /etc/skel/.xscreensaver

1 timeout: 0:11:002 cycle: 0:10:003 lock: False4 lockTimeout: 0:00:005 passwdTimeout: 0:00:306 visualID: default7 installColormap: True8 verbose: False9 timestamp: True

10 splash: True11 splashDuration: 0:00:0512 demoCommand: xscreensaver -demo13 prefsCommand: xscreensaver -demo -prefs14 nice: 1015 memoryLimit: 016 fade: True17 unfade: False18 fadeSeconds: 0:00:0319 fadeTicks: 2020 captureStderr: True21 ignoreUninstalledPrograms:False22 font: *-medium -r-*-140-*-m-*23 dpmsEnabled: False24 dpmsStandby: 2:00:0025 dpmsSuspend: 2:00:0026 dpmsOff: 4:00:0027 grabDesktopImages: True28 grabVideoFrames: False29 chooseRandomImages: True30 imageDirectory: /usr/share/applications/sas_custom/slideshow/31

32 mode: one

Page 53: Linux Live Derivat

D.8 - VERÄNDERTE BZW. NEUERSTELLTE DATEIEN XXVII

33 selected: 034

35 textMode: file36 textLiteral: XScreenSaver37 textFile:38 textProgram: fortune39 textURL: http :// fridge.ubuntu.com/node/feed40

41 programs: \42 GL: glslideshow -root -delay 0 -duration 10 \43 -zoom 100 -pan 1 -fade 0 \n\44

45 pointerPollTime: 0:00:0546 pointerHysteresis: 1047 windowCreationTimeout :0:00:3048 initialDelay: 0:00:0049 sgiSaverExtension: True50 xidleExtension: True51 GetViewPortIsFullOfLies:False52 procInterrupts: True53 overlayStderr: True

Durch diese Datei wird der Bildschirmschoner nach elf Minuten ausgeführt. Als Bild-schirmschoneranwendung wird eine Slideshot mit den Bildern aus dem Verzeichnis /usr/share/applications/sas_custom/slideshow/ gewählt – deswegen sollten in das Ver-zeichnis auch die gewünschten Bilder kopiert werden (das Verzeichnis befindet sich in derchroot-Umgebung).

Listing D.4: /etc/firefox-3.0/profile/localstore.rdf

1 <?xml version="1.0"?>2 <RDF:RDF xmlns:NC="http://home.netscape.com/NC -rdf#"3 xmlns:RDF="http://www.w3.org /1999/02/22 -rdf -syntax -ns#">4 <RDF:Description RDF:about="chrome: // mozapps/content/downloads/

downloads.xul">5 <NC:persist RDF:resource="chrome: // mozapps/content/downloads/

downloads.xul#downloadManager"/>6 </RDF:Description >7 <RDF:Description RDF:about="chrome: // browser/content/browser.xul">8 <NC:persist RDF:resource="chrome: // browser/content/browser.xul#

main -window"/>9 <NC:persist RDF:resource="chrome: // browser/content/browser.xul#

sidebar -box"/>10 <NC:persist RDF:resource="chrome: // browser/content/browser.xul#

sidebar -title"/>11 </RDF:Description >12 <RDF:Description RDF:about="chrome: // browser/content/browser.xul#

main -window"13 width="994"14 screenX="0"15 screenY="25"16 height="721"17 sizemode="maximized" />18 <RDF:Description RDF:about="chrome: // mozapps/content/downloads/

downloads.xul#downloadManager"

Page 54: Linux Live Derivat

XXVIII ANHANG D - ANLEITUNGEN

19 width="485"20 height="300"21 sizemode="normal"22 screenX="0"23 screenY="49" />24 <RDF:Description RDF:about="chrome: // mozapps/content/extensions/

extensions.xul#viewGroup"25 last -selected="extensions" />26 <RDF:Description RDF:about="chrome: // mozapps/content/extensions/

extensions.xul#extensions -view"27 selected="true"28 last -selected="

urn:mozilla:item:[email protected]" />

29 <RDF:Description RDF:about="chrome: // browser/content/browser.xul#sidebar -box"

30 sidebarcommand=""31 width=""32 src="" />33 <RDF:Description RDF:about="chrome: // browser/content/browser.xul#

sidebar -title"34 value="" />35 <RDF:Description RDF:about="chrome: // mozapps/content/extensions/

extensions.xul">36 <NC:persist RDF:resource="chrome: // mozapps/content/extensions/

extensions.xul#search -view"/>37 <NC:persist RDF:resource="chrome: // mozapps/content/extensions/

extensions.xul#extensionsManager"/>38 <NC:persist RDF:resource="chrome: // mozapps/content/extensions/

extensions.xul#extensions -view"/>39 <NC:persist RDF:resource="chrome: // mozapps/content/extensions/

extensions.xul#viewGroup"/>40 </RDF:Description >41 <RDF:Description RDF:about="chrome: // mozapps/content/extensions/

extensions.xul#extensionsManager"42 width="520"43 height="380"44 sizemode="normal"45 screenX="5"46 screenY="49" />47 <RDF:Description RDF:about="chrome: // bmakiosk/content/bmakiosk.xul"

>48 <NC:persist RDF:resource="chrome: // bmakiosk/content/bmakiosk.xul#

main -window"/>49 </RDF:Description >50 <RDF:Description RDF:about="chrome: // mozapps/content/downloads/

unknownContentType.xul#unknownContentType"51 screenX="413"52 screenY="190" />53 <RDF:Description RDF:about="chrome: // bmakiosk/content/bmakiosk.xul#

main -window"54 screenX="0"55 screenY="0"56 width="2000"57 height="2000"58 sizemode="normal" />

Page 55: Linux Live Derivat

D.8 - VERÄNDERTE BZW. NEUERSTELLTE DATEIEN XXIX

59 <RDF:Description RDF:about="chrome: // mozapps/content/downloads/unknownContentType.xul">

60 <NC:persist RDF:resource="chrome: // mozapps/content/downloads/unknownContentType.xul#unknownContentType"/>

61 </RDF:Description >62 </RDF:RDF >

Durch die Veränderung der Sektion <RDF:Description RDF:about="chrome://bmakiosk/content/bmakiosk.xul#main-window" wird das Firefoxfenster maximiert bzw.füllt es den gesamten Bildschirm aus.

Listing D.5: /etc/firefox-3.0/profile/prefs.js

1 # Mozilla User Preferences2

3 user_pref (" security.warn_entering_weak", false);4 user_pref (" security.warn_entering_weak.show_once", false);5 user_pref (" security.warn_viewing_mixed", false);6 user_pref (" security.warn_viewing_mixed.show_once", false);7 user_pref (" browser.urlbar.clickSelectsAll", true);8 user_pref (" browser.urlbar.doubleClickSelectsAll", false);

Durch die Veränderung dieser Datei werden die Sicherheitwarnungen bei Firefox deak-tiviert. In dem Verzeichnis /etc/firefox-3.0/profile/ muss zudem noch die Dateibookmarks.html gelöscht werden.

Listing D.6: /etc/xdg/openbox/autostart.sh

1 # This shell script is run before Openbox launches.2 # Environment variables set here are passed to the Openbox session.3

4 # Set a background color5 BG=""6 if which hsetroot >/dev/null; then7 BG=hsetroot8 else9 if which esetroot >/dev/null; then

10 BG=esetroot11 else12 if which xsetroot >/dev/null; then13 BG=xsetroot14 fi15 fi16 fi17 test -z $BG || $BG -solid "#303030"18

19 # D-bus20 if which dbus -launch >/dev/null && test -z "$DBUS_SESSION_BUS_ADDRESS

"; then21 eval ‘dbus -launch --sh-syntax --exit -with -session ‘22 fi23

Page 56: Linux Live Derivat

XXX ANHANG D - ANLEITUNGEN

24 # Make GTK apps look and behave how they were set up in the gnomeconfig tools

25 if test -x /usr/libexec/gnome -settings -daemon >/dev/null; then26 /usr/libexec/gnome -settings -daemon &27 elif which gnome -settings -daemon >/dev/null; then28 gnome -settings -daemon &29 # Make GTK apps look and behave how they were set up in the XFCE

config tools30 elif which xfce -mcs -manager >/dev/null; then31 xfce -mcs -manager n &32 fi33

34 # Preload stuff for KDE apps35 if which start_kdeinit >/dev/null; then36 LD_BIND_NOW=true start_kdeinit --new -startup +kcminit_startup &37 fi38

39 # Run XDG autostart things. By default don ’t run anything desktop -specific

40 # See xdg -autostart --help more info41 DESKTOP_ENV=""42 if which /usr/lib/openbox/xdg -autostart >/dev/null; then43 /usr/lib/openbox/xdg -autostart $DESKTOP_ENV44 fi45

46 xscreensaver -nosplash &47 /usr/share/applications/sas_custom/ffstart.sh&48 (sleep 5 && xmodmap /usr/share/applications/sas_custom/xmodmap)&49 (sleep 30 && xmodmap /usr/share/applications/sas_custom/xmodmap)&

Die letzten vier Zeilen wurden ergänzt. Sie sorgen dafür, dass der Bildschirmschoner undFirefox gestartet werden und dass das Tastaturlayout geändert wird (dies wird mit einerVerzögerung kombiniert, da vor der Änderung erst Openbox starten muss; der zweiteAufruf ist aus Sicherheitsgründe, sollte der erste Aufruf verfrüht ausgeführt worden seinund keine Wirkung gehabt haben)

Listing D.7: /etc/xdg/openbox/menu.xml

1 <?xml version="1.0" encoding="UTF -8"?>2

3 <openbox_menu xmlns="http:// openbox.org/"4 xmlns:xsi="http://www.w3.org /2001/ XMLSchema -instance"5 xsi:schemaLocation="http:// openbox.org/6 file: /// usr/share/openbox/menu.xsd">7

8 <menu id="root -menu" label="Openbox 3">9 <item label="Firefox">

10 <action name="Execute"><execute >/usr/share/applications/sas_custom/ffstart.sh</execute ></action >

11 </item>12 </menu>13

14 </openbox_menu >

Das Kontext-Menü von Openbox wird auf den Eintrag „Firefox“ reduziert.

Page 57: Linux Live Derivat

Glossar

autostart automatische Ausführung (meist synchron mitBetriebssystemstart)

Beta frühe TestversionBoot Startphase des Computers

Cache PufferspeicherCD optisches Speichermedium (Compact Disc)chroot Kommando zur Veränderung des root-

Verzeichnisses (Sandbox)Content-Filter Filterung von Websites klassifiziert nach In-

haltCookie Profildatei

Daemon HintergrundprogrammDebian Linux-Destributiondefault StandardwertDerivat Destribution für einen bestimmten ZweckDestribution Zusammenstellung von Betriebssystem und

Software

F-Tasten Tasten der obersten Tastaturreihe (F1 bisF12)

GUI grafische Benutzeroberfläche

http Hypertext Transfer Protocolhttps-Verbindung sichere http-Verbindung (Hypertext Transfer

Protocol Secure)

Image Speicherabbild eines MediumsInitRD Abbild für initialen ArbeitsspeicherIP-Adresse Internet-Protokoll-Adresse

Linux freies BetriebssystemLive-System Betriebssystem, welches ausschließlich von CD

gebootet und betrieben wird

XXXI

Page 58: Linux Live Derivat

XXXII Glossar

Pixel BildpunktPlugins Erweitungsmodel einer anderen Software

RC FreigabekandidatRelease finale VersionRepositories Verzeichnis der verfügbaren Paketeroot Stammverzeichnis

Script Datei mit ausführbarem CodeSession SitzungShell Eingabeschnittstelle zwischen Benutzer und

ComputerSource QuelltextSplash Ladebildschirm während Startphase (auch:

Splash Screen)SquashFS komprimiertes, nur lesbares Dateisystem

Taskbar Symbolleiste, in der ausgeführte Programmegelistet sind

Timeout ZeitüberschreitungTitelleiste obere Leiste eines Fensters, die u. a. Symbole

zum Minimieren, Maximieren und Schließendes Fensters enthält

WindowsR© Betriebssystem der Firma MicrosoftR©

X-Window-System GUI für Desktop- bzw. Fenstermanager

Page 59: Linux Live Derivat

Literaturverzeichnis

[Col09] Collins, Pete: OpenKiosk Instructions.https://www.mozdevgroup.com/clients/bm/instructions.html.Version: 10.07.2009

[Eas09] East, Matthew: LiveCDCustomization.https://help.ubuntu.com/community/LiveCDCustomization#Change%20default%20language%20of%20gfxboot. Version: 12.07.2009

[Gar09] Garry: How can one make its own Usplash theme ?http://ubuntusatanic.org/forum/comments.php?DiscussionID=21&page=1.Version: 16.07.2009

[Jan09] Jansens, Dana: Help:Autostart.http://icculus.org/openbox/index.php/Help:Autostart. Version: 10.07.2009

[Lin09] Linux, Michael: Xmodmap. http://wiki.ubuntuusers.de/Xmodmap.Version: 21.07.2009

[McC09] McCarty, Joel: X - Konfiguration.http://www.linuxfocus.org/Deutsch/March1998/article24.html#xinitrc.Version: 09.07.2009

[Nat09] Natarajan, Ramesh: Execution sequence for .bash_profile, .bashrc,.bash_login, .profile and .bash_logout.http://www.thegeekstuff.com/2008/10/execution-sequence-for-bash_profile-bashrc-bash_login-profile-and-bash_logout/. Version: 09.07.2009

[Wym09] Wyman, Alice: Command line arguments.http://kb.mozillazine.org/Command_line_arguments. Version: 10.07.2009

[Zaj09] Zajac, Andrew: LiveCDCustomizationFromScratch.https://help.ubuntu.com/community/LiveCDCustomizationFromScratch.Version: 18.07.2009

[Zaw09] Zawinski, Jamie: XScreenSaver Manual.http://www.jwz.org/xscreensaver/man1.html. Version: 19.07.2009

XXXIII

Page 60: Linux Live Derivat

XXXIV LITERATURVERZEICHNIS

Page 61: Linux Live Derivat

KurzfassungErstellung eines Linux-Derivatesfür Public-Browsing-PCs

Name: Clemens RieseKurs: WWI08DFirma: SAS Institute GmbH

Das Projekt „Erstellung eines Linux-Derivates für Public-Browsing-PCs“ entstand aufGrund des Umstandes, dass die SAS Institute GmbH am Standort Heidelberg ein hohesAufkommen an Schulungsmaßnahmen für Kunden realisiert. Diesen Kunden (und auchden Besuchern) wurde bisher schon die Möglichkeit eines freien Internetzugangs an öffent-lichen Computern geboten, welche wegen des hohen Wartungsaufwands nur noch schwerrealisierbar war.Mit Hilfe des Projekts sollte ein Linux-Derivat geschaffen werden, welches einerseits denWartungsaufwand auf ein vertretbares Level reduziert und andererseits gewisse Kriteri-en, wie z. B. die Sicherheit der Nutzer (Privatsphäre) und den Einsatz als Live-System,erfüllt. Dazu sollte dem Derivat die Linux-Destribution Ubuntu 9.04 „Jaunty Jackalope“als Grundlage dienen. Des Weiteren musste eine entsprechende Entwicklungsumgebungkonfiguriert und eine Dokumentation erstellt werden.Im Rahmen des Projekts konnten alle zwingend geforderten Kriterien umgesetzt werden– lediglich das optionale Kriterium der Integration eines Proxy-Servers scheiterte, da derZeitaufwand zur Modifikation zu hoch gewesen wäre. Als Dokumentation dienen dieseArbeit und zusätzlich erstellte Kurzanleitungen.Zum gegenwärtigen Zeitpunkt wird das Derivat bereits am Standort Heidelberg eingesetzt.


Recommended