Zur Version mit Bildern
freiesMagazin Juni 2013
(ISSN 1867-7991)
PDF-Dokumente schreiben mit Pandoc und Markdown
Wen es nicht stört, dass beim Schreiben von Texten für die Erzeugung einer ordentlich gesetzten PDF-Datei auch noch weitere Programme aufgerufen werden müssen, der kann sich dafür eine äußerst produktive Werkzeugkette mit Pandoc und Markdown aufsetzen, welche auf vereinfachten Auszeichnungssprachen basiert. Das bietet sich vor allem nicht zuletzt für diejenigen an, die sich nicht in das Schwergewicht LaTeX einarbeiten oder sich keine LaTeX-Distribution auf ihrem Computer installieren wollen oder können, aber trotzdem Editor-basiert arbeiten möchten (weiterlesen)
Raspberry Pi
Der Raspberry Pi ist laut Wikipedia ein kreditkartengroßer „Einplatinen-Computer“. Diese Beschreibung ist keineswegs übertrieben, sondern sogar wörtlich zu nehmen. Der Raspberry Pi ist ein vollwertiger Computer in der Größe einer üblichen Scheckkarte. Man kann ihn ganz schnell und unkompliziert in Betrieb nehmen und im Internet surfen, oder aber man schreibt dafür Software, steuert externe Geräte oder lässt einen Roboter laufen. (weiterlesen)
Raspberry Pi als Multimedia-Zentrale
Es vergeht kaum eine Woche, in der Hersteller von Fernsehern, Multimedia-Geräten oder Anbieter von Diensten nicht irgendeine Neuerung vorstellen. Wer nicht gerade in den erlesenen Kreis der Multimillionäre gehört, verzichtet dankend oder ärgert sich womöglich. Doch das muss nicht sein, denn der preiswerte Winzling „Raspberry Pi“ erlaubt es mit geringsten finanziellen Mitteln, ein Multimedia-Gerät aufzusetzen. Der Artikel zeigt, wie man eine Multimedia-Zentrale für nicht einmal 50 Euro realisieren kann. (weiterlesen)
Zum Index
Linux allgemein
Der Mai im Kernelrückblick
Anleitungen
Firefox-Erweiterungen mit dem Add-on-SDK erstellen – Teil IV
LibreOffice 4.0 selbst kompilieren
Software
PDF-Dokumente schreiben mit Pandoc
Humble Indie Bundle 8
Hardware
Raspberry Pi
Raspberry Pi als Multimedia-Zentrale
Community
Rezension: Raspberry Pi
Rezension: Python 3
Rezension: Netzwerk mit Schutzmaßnahmen
Magazin
Editorial
Leserbriefe
Veranstaltungen
Vorschau
Konventionen
Impressum
Zum Index
Sommerpause
Die Temperaturen sind für Anfang Juni zwar bis jetzt noch nicht wirklich
sommerlich, doch kommen die Sommermonate langsam näher. Mit dabei, wie
häufig, auch ein Sommerloch in diversen Projekten, so auch bei freiesMagazin.
Zusätzlich erschwert sich die Lage da dabei auch noch die Urlaubszeit
anfängt und somit auch die Aktivität
im freiesMagazin-Team heruntergefahren wird. Daher ist es wahrscheinlich, dass
die Juli-Ausgabe um mindestens eine Woche nach hinten verschoben
wird. Genauere Angaben über den Veröffentlichungstag der Juli-Ausgabe
erfolgt dann später auf der freiesMagazin-Homepage [1].
Raspberry Pi
In der Regel hat freiesMagazin keinen thematischen Schwerpunkt in den einzelnen Ausgaben,
diesmal sieht es jedoch anders aus. Der kreditkartengroße Rechner „Raspberry Pi“
war ursprünglich für Schüler mit einer kleinen Stückzahl geplant. Mittlerweile
wurde der günstige Einplatinenrechner bereits millionenfach
verkauft und begeistert seitdem vor allem Tüftler. In dieser Ausgabe
sind dabei zwei ausführliche Artikel über den Raspberry Pi enthalten: ein
genereller Artikel um den „Raspberry Pi“ sowie um
den „Raspberry Pi als Multimedia-Zentrale“.
Oben drauf gibt es eine Rezension zu einem
Buch über den Raspberry Pi.
Netzneutralität
Ein großes und sowohl sehr wichtiges Thema im Netz im vergangenen Monat ist
wohl die Diskussion um die Netzneutralität. Die Deutsche Telekom plant
Drosselung der Internet-Geschwindigkeit nach überschreiten einer festgelegten Volumen-Grenze.
Ausgenommen von der Drosselung sind Telekom-Dienste sowie Internet-Dienste,
die einen speziellen Vertrag mit der Telekom eingehen. Andere Internet-Provider
haben ähnliche Pläne. Daraus resultiert ein klarer Bruch der Netzneutralität, da
verschiedene Dienste bevorzugt bzw. benachteiligt und somit die Dienste
nicht mehr gleichberechtigt werden.
Eine Petition [2]
zur Wahrung der Netzneutralität als Gesetz ist schon gestartet und erreichte
bereits nach kürzester Zeit die Mindestanzahl von 50.000 Mitzeichnern.
Mittlerweile wurde diese Zahl sogar deutlich übertroffen.
Und nun wünschen wir viel Spaß beim
Lesen der neuen Ausgabe.
Ihre freiesMagazin-Redaktion
Links
[1] http://www.freiesMagazin.de/
[2] https://epetitionen.bundestag.de/petitionen/_2013/_04/_23/Petition_41906.nc.html
Das Editorial kommentieren
Zum Index
von Mathias Menzer
Basis aller Distributionen ist der Linux-Kernel, der
fortwährend weiterentwickelt wird. Welche Geräte in einem halben
Jahr unterstützt werden und welche Funktionen neu hinzukommen, erfährt
man, wenn man den aktuellen Entwickler-Kernel im Auge behält.
Linux 3.10
Linux wird wieder dreistellig! Eineinhalb Jahre nach der Umstellung der
Versionsnummern auf das neue Schema sind nun erstmals drei Ziffern für die
Major-Version notwendig. Doch damit ist die Nummer immer noch kürzer als zu
2.6er-Zeiten, eine bei Konsolen-Arbeitern immer gern gesehene Tatsache.
Auch im Volumen hat die neue Entwicklerversion zugelegt: Linux
3.10-rc1 [1] ist eines der größten Patches
der letzten Jahre – sieht man einmal von Linux 3.7 ab, bei dem im Zuge von
Umstrukturierungen große Mengen an Dateien verschoben wurden. Einige der 12.700
Commits verheißen auch interessante Änderungen.
Ein Sprung nach vorne, was die Leistungsfähigkeit des Kernels betrifft, dürfte
unter den Begriff „Tickless Operation“ oder „Dynticks“ fallen. Hierbei werden
die festen Zeitintervalle, in denen der Kernel entscheidet, welcher Prozess
laufen darf und in denen zum Beispiel Daten ausgetauscht werden und die
Speichernutzung geprüft wird, zumindest zu Zeiten, zu denen der Prozessor sich im
Leerlauf befindet, abgeschaltet. Die CPU kann so länger in tiefen
Schlafzuständen verharren und benötigt dadurch weniger Energie. Die eigentlich
Neuerung in 3.10 ist, dass dies nun auch auf aktiven Prozessoren geschehen kann,
die
nur einen Prozess bearbeiten. Auch muss mindestens eine CPU im System
weiterhin mit Time Ticks laufen und
Interrupts [2] empfangen, um die
„Hausarbeiten“ des Kernels zu erledigen.
Ein neuer Treiber namens „bcache“ soll die Vorteile von SSD-Laufwerken mit denen
herkömmlicher Festplatten zusammenführen. Es ermöglicht die Einbindung von SSDs
als Zwischenspeicher für Zugriffe auf herkömmliche Festplatten und ermöglicht so
schnelle Schreib- und teilweise auch Lesevorgänge auf die sehr viel größeren
Massenspeicher. Wem dies bekannt vorkommt, der sollte im Umfeld von Linux Kernel
3.9 unter dem Begriff dm-cache
nachschauen (siehe „Der April im
Kernelrückblick“, freiesMagazin
05/2013 [3]).
Linux 3.10-rc2 [4] fiel vergleichsweise
unspektakulär aus. Er konnte jedoch mit einer Reihe an Änderungen aufwarten, mit
denen der Entwickler
Wolfgang Sang die Entwicklung von Gerätetreibern
vereinfachen möchte. Hier wurden in einer ganzen Reihe von Treibern
Gültigkeitsprüfungen auf von diesen benötigten Ressourcen entfernt, die von
einer bereits vorhandenen Funktion übernommen werden.
Die dritte Entwicklerversion [5] ist
dagegen wieder etwas größer geraten. Dabei lässt sich die Menge der Commits nicht
einmal auf besondere Änderungen zusammenführen, es scheinen lediglich viele Pull
Requests von vielen Entwickler zeitgleich angefallen zu sein. So verteilen sich
die Änderungen
auch auf die meisten Bereiche des Kernels, mit Schwerpunkten auf
den Treibern und den Architekturen, wobei hier insbesondere ARM und MIPS im
Vordergrund stehen.
kernel.org
Anfang März bekam kernel.org [6] ein neues Kleid auf
Basis des Webseitengenerators Pelican (siehe „Der März im Kernelrückblick“,
freiesMagazin 04/2013 [7]),
schwenkte jedoch nach kurzer Zeit auf ein sehr einfaches, von den
Seitenbetreuern selbst erstelltes Design um, da die anzuwendende Lizenz des
ursprünglich verwendeten Standard-Designs nicht klar war. Mittlerweile besteht
hier Klarheit, die Pelican-Entwickler ließen sich vom Rechteinhaber der
Standard-CSS-Dateien die Zusage geben, dass diese unter einer freien Lizenz
genutzt werden können.
Bild: Kernel.org erstrahlt in einem neuen CSS-Gewand.
Doch zwischenzeitlich bekam kernel.org ein Design unter MIT-Lizenz zur Verfügung
gestellt [8] und man zog dieses
vor, da es weniger nach „Standard“ aussehe. Verbesserungen können hier
immer noch beigesteuert werden, die Quellen der Seite stehen in einem
GIT-Repositorium [9] zur
allgemeinen Verfügung.
Linux im Orbit
Es scheint auf den ersten Blick ein exotischer Einsatzort für Linux zu sein,
doch das trifft nur auf die äußeren Bedingungen zu. United Space
Alliance [10] stellte jüngst eine
ganze Anzahl an Rechnern auf der Internationalen Raumstation
ISS [11] von Windows auf
Linux um. Der Dienstleister ist mit dem Betrieb von Teilen der Infrastruktur für
die ISS beauftragt und benötigt ein Betriebssystem, das widerstandsfähig und
zuverlässig ist. Da die betroffenen Computer Teil des „OpsLAN“ sind, dem Netz,
das der Kontrolle der Station dient, misst dies dem Vertrauen in Linux einen
besonderen Wert bei. United Space Alliance wandte sich an die Linux Foundation,
um die eigenen Mitarbeiter und Entwickler vor der Umstellung zu
schulen [12].
Bild: Die Internationale Raumstation mit angedocktem ATV. © NASA (Public Domain)
Linux ist definitiv kein Neuling in Wissenschaft und Raumfahrt. Der bereits seit
zwei Jahren auf der ISS befindliche
Robonaut [13] trägt Linux im Herzen und auch
der bereits drei Mal erfolgreich gestartete Raumtransporter
Dragon [14] wird durch Linux auf
seinen drei Steuerrechnern kontrolliert. Für SpaceX, Hersteller der Dragon, ist
auch die Mitteilsamkeit von Linux ein
Argument [15]. Die
von den Steuerrechnern gelieferten Datenmengen können nach jedem Flug
ausgewertet werden und helfen damit beim Erkennen von Problemen.
Pinguinpflegerinnen
Der Linux-Kernel ist überwiegend in Männerhand, nur wenige Frauen sind aktiv an
der Entwicklung beteiligt und noch weniger haben einen ähnlichen
Bekanntheitsgrad erreicht wie die Betreuerin des xHCI/USB-3.0-Treiber-Zweiges
Sarah Sharp [16]. Insofern bietet es sich geradezu an,
dass sie als Mentorin für ein Projekt tätig wird, welches das Engagement von
Frauen in der Kernel-Entwicklung fördern soll.
Die Rede ist hier vom Outreach Program for Women
(OPW) [17], an dem sich in diesem
Jahr von Juni bis September auch die Entwickler des Linux-Kernels
beteiligen [18]. 41
Bewerberinnen gibt es für das „Praktikum“, von denen 18 insgesamt 374
Kernel-Patches als Teil ihrer Bewerbung eingereicht hatten. 137 Patches von 11
dieser Frauen wurden auch in den jeweils passenden Zweig aufgenommen. Leider
stehen nur sechs Praktikantenplätze zur Verfügung, doch Sharp hofft darauf, dass
diese Zahl zur nächsten Runde des OPW gesteigert werden kann: „Wir jammern seit
Jahren darüber, nicht genügend Frauen beim Linux Kernel zu haben und es ist an
der Zeit, etwas Konstruktives zu tun, um mehr Frauen in die Kernel Community zu
holen.“ [19]
Links
[1] https://lkml.org/lkml/2013/5/11/155
[2] http://de.wikipedia.org/wiki/Interrupt
[3] http://www.freiesmagazin.de/freiesMagazin-2013-05
[4] https://lkml.org/lkml/2013/5/20/577
[5] https://lkml.org/lkml/2013/5/26/212
[6] http://www.kernel.org
[7] http://www.freiesmagazin.de/freiesMagazin-2013-04
[8] https://www.kernel.org/fifty-shades-of-tux.html
[9] https://git.kernel.org/cgit/docs/kernel/website.git
[10] http://de.wikipedia.org/wiki/United_Space_Alliance
[11] http://de.wikipedia.org/wiki/Internationale_Raumstation
[12] http://www.pro-linux.de/news/1/19770/nasa-stellt-raumstation-iss-von-windows-auf-linux-um.html
[13] http://de.wikipedia.org/wiki/Robonaut
[14] http://de.wikipedia.org/wiki/Dragon_(Raumschiff)
[15] http://www.pro-linux.de/news/1/19538/spacex-setzt-komplett-auf-linux.html
[16] http://sarah.thesharps.us
[17] https://live.gnome.org/OutreachProgramForWomen
[18] http://www.linux-magazin.de/NEWS/Frauen-an-den-Kernel
[19] http://sarah.thesharps.us/2013/05/23/%EF%BB%BF%EF%BB%BFopw-update/
Autoreninformation |
Mathias Menzer (Webseite)
behält die Entwicklung des Linux-Kernels im Blick, um über kommende Funktionen
von Linux auf dem laufenden zu bleiben und immer mit interessanten Abkürzungen
und komplizierten Begriffen dienen zu können.
|
Diesen Artikel kommentieren
Zum Index
von Markus Brenneis
Im letzten Artikel der Reihe [1]
wurde gezeigt, wie Panels angelegt werden und wie die Kommunikation über
Content-Skripte funktioniert. In diesem Teil soll es nun darum gehen, wie man es
dem Benutzer ermöglicht, Einstellungen zu ändern, und wie die Erweiterung in
verschiedene Sprachen übersetzt werden kann.
Einstellungen
Anlegen von Einstellungen
Das SDK bietet mit dem Modul simple-prefs [2]
ein einfaches Mittel an, mit dem man es dem Benutzer ermöglichen
kann, Einstellungen der Erweiterung zu ändern. Um beispielsweise eine Checkbox
anzulegen, die es dem Benutzer erlauben soll, die Anzeige des Artikels in einem
Panel zu deaktivieren, fügt man folgenden Code in die package.json ein:
"preferences": [{
"name": "use_panel",
"title": "Panel benutzen",
"description": "Den Artikelanfang in einem Panel anzeigen, statt die Seite in einem Tab zu laden",
"type": "bool",
"value": true
}]
Bild: Die Einstellungen der Erweiterung mit einer Checkbox, einem Textfeld und einer Dropdown-Liste.
Alle Einstellungen der Erweiterung werden in der Eigenschaft preferences
aufgezählt. name dient der Identifizierung der Einstellung und muss angegeben
werden, wenn der Einstellungswert ausgelesen wird. Der Einstellungswert wird in
der Konfiguration (about:config [3]) unter
dem Namen extensions.jid1-RSMHU8JbD6sBDA@jetpack.use_panel gespeichert, wobei
die Zeichenkette zwischen . und @ die Id der Erweiterung ist. title wird
als Beschriftung verwendet und das optionale Attribut description enthält eine
Beschreibung der Option, die unter dem Titel angezeigt wird. Mit "type": "bool"
wird ausgedrückt, dass eine Checkbox angezeigt werden soll.
Mit dem value-Attribut wird der Standardwert festgelegt;
diese Checkbox ist also standardmäßig markiert.
Daneben gibt
es noch eine ganze Reihe andere Typen, die in der
Dokumentation [4]
aufgeführt sind; auf ein paar von ihnen wird noch
eingegangen werden.
Ferner soll es dem Benutzer ermöglicht werden, auszuwählen, in welcher Sprache
der Artikel angezeigt wird. Dazu kann z. B. ein Textfeld ("type": "string")
angezeigt werden:
{
"name": "language",
"title": "Artikelsprache",
"type": "string",
"value": "de"
}
Um zu verhindern, dass ungültige Werte in das Textfeld eingetragen werden,
sollte als Alternative auf eine
Dropdown-Liste [5] zurückgegriffen
werden ("type": "menulist"). Damit ergibt sich insgesamt
folgender Code für die Datei
package.json:
{
"name": "meine-erweiterung",
"license": "GPL 3.0",
"author": "Markus Brenneis",
"version": "0.4",
"fullName": "Meine Erweiterung",
"id": "jid1-RSMHU8JbD6sBDA",
"description": "Eine Beispiel-Erweiterung",
"preferences": [{
"name": "use_panel",
"title": "Panel benutzen",
"description": "Den Artikelanfang in einem Panel anzeigen, statt die Seite in einem Tab zu laden",
"type": "bool",
"value": true
}, {
"name": "language",
"title": "Artikelsprache",
"type": "menulist",
"value": "de",
"options": [
{
"value": "de",
"label": "Deutsch"
},
{
"value": "en",
"label": "English"
}
]
}]
}
Listing: package.json
Die Auswahlmöglichkeiten der Dropdown-Liste werden in der Eigenschaft options
aufgezählt. Jede Auswahlmöglichkeit besteht aus einer Beschriftung, die als
Listeneintrag angezeigt wird, und einem zugeordneten Wert, welcher in der
Konfiguration gespeichert wird und ausgelesen werden kann.
Die Einstellungen können geändert werden, indem der Add-ons-Manager geöffnet
wird („Extras -> Add-ons“), die Kategorie „Erweiterungen“ ausgewählt wird und dann
bei dem Eintrag der Erweiterung auf „Einstellungen“ geklickt wird.
Auslesen der Einstellungen
Jetzt müssen die Einstellungen mit „Sinn“ gefüllt werden. Dazu wird zunächst in
der main.js das simple-prefs-Module eingebunden:
var simpleprefs=require("sdk/simple-prefs");
Zum Deaktivieren des Panels wird die openArticleInPanel-Funktion wie folgt
angepasst:
function openArticleInPanel(widgetView) {
if(simpleprefs.prefs.use_panel) {
panel.port.emit("loadPage", "https://de.m.wikipedia.org/w/index.php?search="
+ selectedText);
widgetView.panel=panel;
} else {
openArticle();
widgetView.panel=null;
}
}
Mit if(simpleprefs.prefs.use_panel) wird abgefragt, ob das Benutzen des Panels
aktiviert ist. Ist dies der Fall, wird – wie vorher auch – die Seite im Panel
geladen. Neu ist jetzt, dass dem Widget explizit das Panel zugeordnet wird. Hier
wird nicht widget verwendet, sondern das an die Funktion übergebene
widgetView-Objekt, welches das konkrete Widget repräsentiert, welches gerade
angeklickt wurde. Wenn das Panel nicht aktiviert ist, wird die Funktion
openArticle, die den Artikel in einem Tab anzeigt, aufgerufen und die
Zuordnung des Panels zu dem Widget entfernt, indem die panel-Eigenschaft auf
null [6] gesetzt wird. Diese etwas
umständlich aussehende Lösung ist notwendig, weil ein widget.hide(); nicht
funktionieren würde, da das Widget erst angezeigt wird, wenn die Funktion
openArticleInPanel komplett abgearbeitet worden ist; das Panel würde also nach
dem Ausblenden direkt wieder eingeblendet werden.
Die Implementierung der Sprachauswahl funktioniert analog: In der Zeichenkette
https://de.m.wikipedia.org/w/index.php?search=
wird das „de“ durch den Einstellungswert ersetzt:
https://"+simpleprefs.prefs.language+".m.wikipedia.org/w/index.php?search=
Übersetzungen
Das SDK bietet die Möglichkeit [7],
Zeichenketten im HTML- und JavaScript-Code sowie Titel und
Beschreibungen der Einstellungen zu lokalisieren [8];
die letzten beiden Möglichkeiten werden hier beschrieben.
Übersetzungsdateien
Da es (noch) keine Möglichkeit gibt, automatisch eine Datei mit allen Strings,
die übersetzt werden können, zu erstellen, muss dies von Hand gemacht werden.
Dazu wird zunächst im obersten Ordner der Erweiterung (der Ordner, in dem die
package.json ist) ein Ordner locale erstellt. In diesem werden nach dem
Muster xx-YY.properties benannte Dateien angelegt, welche die Übersetzungen im
properties-Format [9]
enthalten; xx-YY ist dabei der
Sprachcode [10], z. B. de-DE für das in
Deutschland gesprochene Deutsch und en-US für amerikanisches Englisch.
In die Datei de-DE.properties fügt man folgenden Inhalt ein, um der Variablen
getWikipediaArticle die Zeichenkette Wikipediaartikel aufrufen zuzuordnen.
getWikipediaArticle=Wikipediaartikel aufrufen
Übersetzungen im JavaScript-Code
Für das Übersetzen des JavaScript-Codes wird das Module l10n [11]
benötigt. Aus Kompatibilitätsgründen mit der Anwendung
gettext ist es üblich, den Bezeichner _
zu verwenden.
var _=require("sdk/l10n").get;
Anstatt jetzt
label: "Wikipediaartikel aufrufen"
zu benutzen, wird
label: _("getWikipediaArticle")
verwendet. _("getWikipediaArticle") wird dann durch die entsprechende
Zeichenkette aus der properties-Datei ersetzt. Firefox wählt automatisch die
Datei aus, die am Besten zu der Sprache, die die Firefox-Benutzeroberfläche
hat, passt. Wenn diese Sprache z. B. de-AT ist, aber keine entsprechende
Übersetzung vorhanden ist, wird zuerst auf de zurückgegriffen, wenn nicht
vorhanden auf andere de-*-Übersetzungen und, wenn diese auch nicht zur Verfügung
stehen, auf Englisch oder – wenn nicht verfügbar – auf die erste gefundene
Übersetzungsdatei. Ist gar keine Übersetzungsdatei vorhanden, wird einfach der
Bezeichner als Zeichenkette angezeigt.
Übersetzen der Einstellungen
Im Gegensatz zum JavaScript-Code braucht es bei den Einstellungen keine
_-Funktion, stattdessen werden in der properties-Datei Bezeichner der Form
{Einstellungsname}_title bzw. {Einstellungsname}_description verwendet. Zum
Übersetzen der Optionen der Dropdown-Liste ist das Muster
{Einstellungsname}_options.{Label}. Damit ergibt sich folgender Inhalt:
use_panel_title=Panel benutzen
use_panel_description=Den Artikelanfang in einem Panel anzeigen, statt die Seite in einem Tab zu laden
language_title=Artikelsprache
language_options.English=Englisch
Es sei angemerkt, dass es normalerweise besser ist, in der package.json-Datei
englische Strings zu benutzen, da so die Bezeichner der Optionen einen für den
Übersetzer verständlichen Namen haben und es keine Mischung von Deutsch und
Englisch bei den Bezeichner gibt.
Hilfe beim Übersetzen
Will man ein breites Publikum erreichen, sollte die Erweiterung in möglichst
viele Sprachen übersetzt werden. Dazu kann man sich kostenlose Hilfe aus der
Open-Source-Gemeinschaft holen. Die beliebte Plattform
BabelZilla [12], die auf das Übersetzen von Erweiterungen
für Mozilla-Anwendungen spezialisiert ist, unterstützt leider noch nicht das
Dateiformat des SDK (Stand: April 2013). Es stehen aber andere
Lokalisierungsplattformen wie z. B. transifex [13] zur
Verfügung, wo man die zu übersetzenden Dateien (als Grundlage dienen in der
Regel die englischen Zeichenketten) hochladen kann.
Die vollständige Erweiterung kann wieder als Archiv ffox_addonsdk_4.tar.gz
und als installierbare Erweiterung ffox_addonsdk_4.xpi heruntergeladen
werden.
Links
[1] http://www.freiesmagazin.de/freiesMagazin-2013-04
[2] https://addons.mozilla.org/en-US/developers/docs/sdk/latest/modules/sdk/simple-prefs.html
[3] http://kb.mozillazine.org/About:config
[4] https://addons.mozilla.org/en-US/developers/docs/sdk/latest/modules/sdk/simple-prefs.html#Setting Types
[5] https://de.wikipedia.org/wiki/Dropdown-Liste
[6] https://de.wikipedia.org/wiki/Nullwert
[7] https://addons.mozilla.org/en-US/developers/docs/sdk/latest/dev-guide/tutorials/l10n.html
[8] https://de.wikipedia.org/wiki/Lokalisierung_(Softwareentwicklung)
[9] https://de.wikipedia.org/wiki/Java-Properties-Datei
[10] https://wiki.mozilla.org/L10n:Locale_Codes
[11] https://addons.mozilla.org/en-US/developers/docs/sdk/latest/modules/sdk/l10n.html
[12] http://www.babelzilla.org/
[13] https://www.transifex.com/
Autoreninformation |
Markus Brenneis (Webseite)
hat 2007 sein erstes Firefox-Add-on geschrieben und 2012 erstmals das Add-on-SDK benutzt.
|
Diesen Artikel kommentieren
Zum Index
von Hans-Joachim Baader
Eine der Eigenschaften Freier Software ist ganz offensichtlich, dass man den
Quellcode beziehen und die Software selbst kompilieren kann. Das heißt aber
nicht, dass das immer einfach ist. Generell gilt die Regel, dass der
Schwierigkeitsgrad mit der Projektgröße zunimmt – vom Aufwand ganz abgesehen.
In diesem Artikel soll am Beispiel LibreOffice 4.0 gezeigt werden, wie es um
die Kompilierbarkeit eines sehr großen Projektes bestellt ist.
Redaktioneller Hinweis: Der Artikel „LibreOffice 4.0 selbst compilieren“ erschien erstmals
bei Pro-Linux [1].
Einleitung
Einige allgemeine Hinweise zum Kompilieren von Programmen hatte Pro-Linux
bereits 2003 in einem
Einsteiger-Artikel [2].
Es wäre eigentlich an der Zeit, diesen etwas zu verallgemeinern und zu
erweitern. Doch hier soll es nur um das gerade erschienene LibreOffice
4.0 [3]
gehen.
Warum gerade LibreOffice 4.0? Die Antwort ist einfach: LibreOffice ist ein sehr großes Projekt,
das gemäß der in der Einleitung genannten Regel vielleicht nicht gerade
einfach zu bauen ist. Die Tatsache, dass neben C++ auch Python für einige
zentrale und Java für einige zusätzliche Funktionen benötigt werden, macht
es sicher nicht einfacher.
Vor langer Zeit, bei OpenOffice.org 1.1, war das Kompilieren ein sehr
komplizierter Vorgang. Doch LibreOffice hat in den letzten zwei Jahren sehr
stark am Code gearbeitet und das Generiersystem komplett umgestellt. Dadurch
sollte die Sache erleichtert werden. Also an die Arbeit!
Download
Auf der Downloadseite der Document Foundation findet man zu LibreOffice acht
Dateien mit Quellcode und
PGP-Signatur [4]:
libreoffice-4.0.0.3.tar.xz
libreoffice-4.0.0.3.tar.xz.asc
libreoffice-dictionaries-4.0.0.3.tar.xz
libreoffice-dictionaries-4.0.0.3.tar.xz.asc
libreoffice-help-4.0.0.3.tar.xz
libreoffice-help-4.0.0.3.tar.xz.asc
libreoffice-translations-4.0.0.3.tar.xz
libreoffice-translations-4.0.0.3.tar.xz.asc
Während der eigentliche Quellcode im 99 MB großen
libreoffice-4.0.0.3.tar.xz zu finden ist, enthält
libreoffice-dictionaries-4.0.0.3.tar.xz die Wörterbücher mit 34 MB
Umfang, libreoffice-help-4.0.0.3.tar.xz die Online-Hilfe mit lediglich
1,8 MB und libreoffice-translations-4.0.0.3.tar.xz die Übersetzungen, 123
MB groß.
Man benötigt nur libreoffice-4.0.0.3.tar.xz und
libreoffice-translations-4.0.0.3.tar.xz. Warum nur diese beiden, wird
später erklärt. Zwar sind die Übersetzungen optional, aber wer ein
nicht-englisches LibreOffice verwenden will, wird sie benötigen. Der
Download beträgt insgesamt also etwa 222 MB.
Verifikation der Archive
Nun ein Punkt, der gerne einmal übersprungen wird. Das LibreOffice-Team,
genauer gesagt das LibreOffice-Build-Team, hat die Quellcode-Archive mit PGP
signiert, sodass die Benutzer verifizieren können, dass sie tatsächlich den
originalen und unmodifizierten Quellcode heruntergeladen haben. Eine andere,
nicht ganz so sichere Methode wäre es, den kryptografischen Hash (bevorzugt
SHA-1 [5] oder besser) der Dateien zu
publizieren. Zum Schutz vor Manipulationen sollten die Hashes nicht (nur)
bei den Dateien abgelegt, sondern auch an anderer Stelle publiziert sein.
Bei GPG-Signaturen [6] ist das
nicht nötig, da ein Angreifer für eine Manipulation den geheimen Teil des
Schlüssels besitzen müsste.
Zur Verifikation der Archive muss man den öffentlichen Teil des Schlüssels
von LibreOffice kennen. Dieser ist aber glücklicherweise auf den
öffentlichen Schlüsselservern abgelegt, so dass man ihn mit einem Befehl
holen kann:
$ gpg --recv-keys AFEEAEA3
Nun ist die Verifikation sehr einfach:
$ gpg --verify libreoffice-4.0.0.3.tar.xz.asc
Dieser Aufruf setzt voraus, dass libreoffice-4.0.0.3.tar.xz im gleichen
Verzeichnis wie libreoffice-4.0.0.3.tar.xz.asc liegt. Ist das nicht der
Fall, kann man trotzdem verifizieren:
$ gpg --verify libreoffice-4.0.0.3.tar.xz.asc <Pfad>/libreoffice-4.0.0.3.tar.xz
Zwar wird möglicherweise eine Warnung ausgegeben, aber die Unterschrift wird als korrekt erkannt und der Haupt-Fingerabdruck ausgegeben:
gpg: Unterschrift vom Mi 30 Jan 2013 17:38:12 CET mittels RSA-Schlüssel ID AFEEAEA3
gpg: Korrekte Unterschrift von "LibreOffice Build Team (CODE SIGNING KEY) <build@documentfoundation.org>"
gpg: WARNUNG: Dieser Schlüssel trägt keine vertrauenswürdige Signatur!
gpg: Es gibt keinen Hinweis, daß die Signatur wirklich dem vorgeblichen Besitzer gehört.
Haupt-Fingerabdruck = C283 9ECA D940 8FBE 9531 C3E9 F434 A1EF AFEE AEA3
Entpacken
Die Archive entpacken sich alle in das Verzeichnis libreoffice-4.0.0.3
unterhalb des aktuellen Verzeichnisses. Man entpackt sie mit
$ tar --lzma -xvf libreoffice-4.0.0.3.tar.xz
$ tar --lzma -xvf libreoffice-translations-4.0.0.3.tar.xz
Wer ein veraltetes tar besitzt, das noch keine Unterstützung für
xz-Archive enthält, schreibt stattdessen
$ xzcat libreoffice-4.0.0.3.tar.xz | tar xvf
Entpackt belegen die Quellen über 2,5 GB, wobei dieser Wert je nach
Dateisystem schwanken kann.
Kompilieren
Das Kompilieren und Ausführen von LibreOffice ist auf der Entwickler-Seite
gut beschrieben [7].
Ein großes Projekt wie LibreOffice setzt einiges an externen Komponenten voraus.
Diese sind in den Archiven aller größeren Linux-Distributionen
vorhanden, aber
nicht unbedingt installiert. Je nach Distribution kann man nun eventuell eines
der folgenden Kommandos ausführen, um sie zu installieren (als Root).
- Debian: apt-get build-dep libreoffice
- openSUSE: zypper si -d libreoffice
- Fedora: yum-builddep libreoffice
Bei Debian funktioniert das nur, wenn die passenden source-URIs in
/etc/apt/sources.list eingetragen sind. Das sollte normalerweise der Fall
sein, aber es ist ja denkbar, dass man die Zeile „wegoptimiert“ hat, um die
Downloads etwas zu verringern. Dann kommt es zu der folgenden Fehlermeldung,
die aber für sich spricht:
E: Sie müssen einige »source«-URIs für Quellpakete in die sources.list-Datei eintragen.
Der Umfang der Abhängigkeiten ist beachtlich; je nachdem, was bereits
installiert ist, können noch über 170 Pakete zusätzlich erforderlich sein.
Die nächsten Schritte sind simpel, dauern jedoch eine Weile. Diese werden
natürlich nicht als Root, sondern als normaler Benutzer ausgeführt.
$ ./autogen.sh
$ make
$ make dev-install
Das make kann durchaus eine Stunde in Anspruch nehmen. Das anschließende
make dev-install installiert das Resultat nur innerhalb des
Quellcode-Verzeichnisses; dies genügt aber zum Debuggen und man kann LibreOffice auch permanent aus diesem Verzeichnis starten.
Die Kompilierung wird fehlschlagen, wenn der Rechner währenddessen keine
Internet-Verbindung hat, denn das Generiersystem lädt eine Menge
zusätzlicher Dateien herunter und kompiliert sie. Dabei handelt es sich
vermutlich – genaue Angaben liegen nicht vor – um die Abhängigkeiten, die
auf dem System nicht oder nicht in der passenden Version vorgefunden werden.
Es ist also wohl gar nicht nötig, alle mit der Paketverwaltung ermittelten
Abhängigkeiten zu installieren – LibreOffice bedient sich selbst. Aus diesem
Grund muss man auch die Wörterbücher und die Online-Hilfe nicht manuell
herunterladen. LibreOffice holt sie sowieso, gleichgültig, ob sie bereits
vorhanden sind oder nicht.
Nach der Kompilierung belegt das LibreOffice-Verzeichnis ca. 8,3 GB auf der
Platte. Nun hat man zwei
Möglichkeiten, das Resultat zu nutzen.
# make install
(als Root) installiert die Software komplett ins System, und zwar unter
/usr/local, wenn man die Optionen nicht geändert hat.
Die Möglichkeit der Systeminstallation bietet sich an, wenn man den
Quellcode nicht mehr benötigt, weil man danach das ganze Quellverzeichnis
löschen kann. Die andere ist, LibreOffice an Ort und Stelle zu nutzen. Wer
LibreOffice im Debugger GDB [8] starten will,
gibt einfach
$ make debugrun
ein. Zur einfachen Nutzung kann man stattdessen
$ cd install/program
$ . ./ooenv
$ ./soffice --writer
verwenden; hier wird die Textverarbeitung Writer gestartet. Warum die
Oberfläche allerdings in Englisch erscheint, ist unklar. Vielleicht muss man
doch eine vollständige Installation durchführen, um in den Genuss der
Übersetzungen zu kommen.
Bild: Das selbst kompilierte LibreOffice mit englischsprachiger Oberfläche.
Der Artikel endet hier, doch der interessante Teil der Übung beginnt erst
jetzt. Man kann nun den Quellcode in Augenschein nehmen, Änderungen
vornehmen oder einen
Fork [9]
erstellen …
Das LibreOffice-Wiki enthält einige Hinweise für Einsteiger, wie man sich an
der Entwicklung beteiligen kann. Es gibt eine Liste von einfachen Aufgaben
für den Anfang [10], und bei
Fragen stehen erfahrenere Entwickler im IRC und auf den Mailinglisten
bereit. Wer lieber Erweiterungen schreiben will, findet unter anderem die
API-Dokumentation auf den Projektseiten [11].
Fazit
LibreOffice ist überraschend einfach zu kompilieren. Es sind zwar einige
Pakete zu installieren, ohne die das Bauen nicht möglich ist, aber das
sollte keine Schwierigkeit darstellen.
Ansonsten benötigt man nur etwas Geduld – und eine Menge Plattenplatz, an
die 10 GB. Fehler traten beim Kompilieren erfreulicherweise nicht auf. Somit
steht Interessierten an einer Beteiligung an LibreOffice nichts im Wege.
Links
[1] http://www.pro-linux.de/-0102652
[2] http://www.pro-linux.de/artikel/2/1069/unter-linux-software-installieren.html
[3] https://www.libreoffice.org/
[4] http://download.documentfoundation.org/libreoffice/src/4.0.0/
[5] https://de.wikipedia.org/wiki/SHA-1
[6] https://de.wikipedia.org/wiki/GNU_Privacy_Guard
[7] http://www.libreoffice.org/developers-2/
[8] http://sourceware.org/gdb/
[9] https://de.wikipedia.org/wiki/Abspaltung_(Softwareentwicklung)
[10] http://wiki.documentfoundation.org/Easy_Hacks
[11] http://api.libreoffice.org/
Autoreninformation |
Hans-Joachim Baader (Webseite)
befasst sich seit 1993 mit Linux. 1994 schloss er erfolgreich sein
Informatikstudium ab. Er ist einer
der Betreiber von Pro-Linux.de.
|
Diesen Artikel kommentieren
Zum Index
von Daniel Stender
Wen es nicht stört, dass beim Schreiben von Texten für die Erzeugung einer
ordentlich gesetzten PDF-Datei auch noch weitere Programme aufgerufen werden
müssen, der kann sich dafür eine äußerst produktive Werkzeugkette mit Pandoc
und Markdown aufsetzen,
welche auf vereinfachten Auszeichnungssprachen basiert.
Das bietet sich vor
allem nicht zuletzt für diejenigen an, die sich nicht in das Schwergewicht
LaTeX [1]
einarbeiten oder sich keine
LaTeX-Distribution auf ihrem Computer installieren wollen oder können, aber
trotzdem Editor-basiert arbeiten möchten. Denn auch für recht anspruchsvolle Dokumente
stellt dieser Ansatz mittlerweile eine beachtliche Alternative für das große
Textsatzsystem dar. Dieser Artikel führt in das Erstellen von PDF-Dokumenten mit
Pandoc und Markdown ein und bezieht sich dabei mit Ubuntu 12.04 LTS auf ein
typisches Linuxsystem. Dabei liegt die Gewichtung auf Elementen, die beim
Schreiben akademischer Beiträge benötigt werden, nämlich unter anderem auf
Fußnoten und den ordentlichen Nachweis der verwendeten Quellen.
Markup vs. WYSIWYG
„What-you-see-is-what-you-get“-Textverarbeitungen wie zum Beispiel
LibreOffice Writer [2] machen es möglich,
elektronische Textdokumente auf der Layout-Ebene genau so zu bearbeiten, wie sie
hinterher bei der Druckausgabe oder nach dem Export als PDF-Dokument aussehen.
Demgegenüber stehen Dokumentenprozessoren wie zum Beispiel das Textsatzsystem
LaTeX, die grundsätzlich dadurch charakterisiert sind, dass elektronische
Dokumente der Druckvorstufe und/oder zur elektronischen Betrachtung aus
Quelldateien generiert werden, die grundsätzlich unabhängig vom
Dokumentenprozessor mit einem Editor bearbeitet werden. In diesen Quelldateien
findet sich neben dem eigentlichen Text auch das spätere Layout beschrieben.
Beides befindet sich damit sozusagen auf derselben Ebene.
Unabhängig davon, ob zum Beispiel LaTeX mit verschiedenen speziellen
Zusatzpaketen einen wesentlich umfangreicheren Funktionsumfang als bspw.
LibreOffice Writer bereithält, hat es auch gewisse Vorteile, nicht Binärdateien,
sondern Unicode-codierte Textdateien wie bei einem Programmquellcode
zu bearbeiten. So können auf diese u. a. Patches [3]
angewendet werden, um Korrekturen
unkompliziert zu managen, oder die Quelldateien unter eine Versionskontrolle wie
Subversion oder Git [4] gestellt
werden, was auch für die kollaborative Bearbeitung eines Textes vielfältige
Möglichkeiten bereithält.
Dokumentenprozessoren wie Pandoc erlauben es, aus ein und derselben Quelldatei
unterschiedliche Zielformate zu generieren (Stichwort: „Multi target
publishing“), und vor allem wenn zum Beispiel E-Book-Formate wie EPUB [5]
anvisiert werden, bei denen der Text nicht
mehr als gedrucktes Buch dargestellt wird, überwiegen meiner Meinung nach die
Vorteile, in einer vom Layout unabhängigen Umgebung zu arbeiten.
Im LaTeX-Quellcode zum Beispiel werden Layout-Elemente wie Überschriften und
Fußnoten durch bestimmte Steuerbefehle gekennzeichnet. Im Gegensatz dazu wird in
den sogenannten vereinfachten Auszeichnungssprachen (Lightweight markup
languages [6]) alles
mit wenigen Zeichen und einfachen Einrückungen erreicht.
Das Prinzip dabei folgt dem, was meist schon rein intuitiv auch in
E-Mails oder auf elektronischen Notizzetteln angewendet wird. Wenn nämlich zum
Beispiel Überschriften mit Minuszeichen unterstrichen oder Auflistungen mittels
Sternchen erzeugt werden. Diese Auszeichnungssprachen werden häufig scherzhaft
„no markup languages“ genannt, aber tatsächlich ist ein so formatierter Text
auch schon ohne Weiterverarbeitung äußerst bequem lesbar.
Markdown [7], das als HTML-Vorstufe
entwickelt worden ist, und ReStructuredText (reST) [8],
das aus der
Python-Dokumentation stammt, begegnet man unter den vereinfachten Markupsprachen
mittlerweile vermutlich am häufigsten. Sie halten einen recht umfassenden
Funktionsumfang bereit und aus Quelldateien dieser Sprachen lassen sich mit
geeigneten Prozessoren wie Pandoc sehr einfach hochwertige elektronische
Dokumente wie zum Beispiel PDF-Dateien erzeugen.
Pandoc
Bei Pandoc [9] handelt es sich um einen sehr
ausgereiften und umfangreichen Markupkonverter und Dokumentenprozessor. Pandoc
beherrscht zwar neben vielen anderen Markups auch reST, eignet sich aber gerade
auch für die Dokumentation mit Markdown, weil es einen großen Satz von
Erweiterungen dafür bereitstellt.
Pandoc wird zur Zeit laufend weiterentwickelt und verbessert, weswegen
auch für aktuelle Distributionen meist nur recht veraltete Versionen
verfügbar sind (aktuell: 1.11.1, Ubuntu 12.04: 1.9.1, Ubuntu 12.10: 1.9.4). Auf der
Pandoc-Seite wird ein übersichtliches Änderungsprotokoll gepflegt, in dem man
alle Verbesserungen anhand der jeweiligen Versionsnummer detailliert
nachvollziehen kann [10].
Pandoc installieren
Pandoc ist in der funktionalen Programmiersprache Haskell [11]
implementiert.
So besteht die Möglichkeit, die aktuellste Version von Pandoc ohne größeren
Aufwand über das Haskell-Buildsystem Cabal auf den eigenen Computer zu bekommen [12].
Für die Benutzung benötigt man das Paket cabal-install.
Danach aktualisiert man für den nun zur
Verfügung stehenden Manager Cabal
zunächst das Verzeichnis der erhältlichen Haskell-Programme:
$ cabal update
Nun kann Pandoc mittels Cabal heruntergeladen und kompiliert werden:
$ cabal install pandoc
Dabei werden alle benötigten Abhängigkeiten automatisch mitgezogen. Da
alles
in das lokale Verzeichnis ~/.cabal geschrieben wird, benötigt man keine
Superuser-Rechte für die Benutzung von Cabal. Schließlich muss nur noch die
Pfadvariable der Shell um den Pfad der von Cabal erzeugten ausführbaren Dateien
erweitert werden. Dazu muss die folgende Zeile
in die ~/.bashrc hinzugefügt werden:
export PATH=$HOME/.cabal/bin:$PATH
Wenn nun noch das Terminalfenster geschlossen und neu aufgerufen wird, steht
Pandoc fertig auf der Kommandozeile bereit.
Markdown
Markdown wird mit einem beliebigen Texteditor geschrieben. Auf aktuellen
Systemen läuft dabei Unicode „unter der Haube“. Die Dateiendung kann dabei
grundsätzlich auch frei gewählt werden, es empfiehlt sich allerdings entweder
die Endung .markdown oder .md dafür zu verwenden. Diese Dateien lassen sich auch
ohne jegliche weitere Software und grundsätzlich systemübergreifend auf
jedem beliebigen Rechner bearbeiten.
Viele Editoren halten für Markdown spezielle Modi bzw. Plug-ins bereit. Für Emacs
gibt es bspw. den Markdown-Mode, der Syntax-Highlighting und
Tastenkombinationen für das schnelle Einfügen von bestimmten Elementen wie zum
Beispiel Hyperlinks zur Verfügung stellt [13].
Die einzelnen Funktionen von Markdown in Pandoc lassen sich im Handbuch auf
der Pandoc-Seite
nachlesen [14].
Im Netz findet
sich auch eine deutsche Übersetzung der Original-Spezifikation [15],
allerdings ist diese gegenüber den Erweiterungen,
die Pandoc zur Verfügung stellt (u. a. Fußnoten und Tabellen), sehr eingeschränkt.
Zur beispielhaften Nutzung wird hier ein Beispieldokument pandoc_beispiel1.md
für Pandocs Markdown genutzt.
Dieses Beispieldokument enthält eine Reihe von verschiedenen Markup-Elementen:
- Zeilenvorschübe im Quelltext werden grundsätzlich ignoriert, wodurch sich
der bearbeitete Text „strecken“ lässt.
- Überschriften werden erzeugt, indem man einem Überschriftentext ein bis sechs
Doppelkreuze (Hash-Zeichen) voranstellt, und zwar entsprechend der
Gliederungstiefe.
- Hyperlinks werden in eckigen Klammer eingefasst oder es kann ein spezieller
Linktext für diese angegeben werden.
- Zitatblöcke werden durch nach links geöffnete eckige Klammern am Anfang der
Zeile markiert.
Fußnoten
Fußnoten [16] werden erzeugt, indem in
Fließtext ein Fußnotenanker eingesetzt wird, während der eigentliche
Fußnotentext grundsätzlich beliebig irgendwo im Markdown-Dokument platziert
werden kann (sinnvollerweise aber außerhalb von Blockelementen wie Listen,
Tabellen, usw.). So kann man den jeweiligen Fußnotentext etwa direkt unterhalb
des jeweiligen Abschnittes platzieren oder alle Fußnoten am Ende des
Dokumentes sammeln. Die Verbindung zwischen Anker und Fußnotentext wird dabei
durch beliebige Etiketten hergestellt (siehe im Beispieldokument [^blibb] und
[^blubb]), wobei auch einfach manuell durchnummeriert werden kann
([^1], [^2], usw.).
Es gibt aber auch die Möglichkeit, wie bei LaTeX die Fußnoten direkt in den
Fließtext zu schreiben („inline footnotes“). Beide Methoden können in
demselben Dokument auch kombiniert werden, was die Verwendung von Fußnoten bei
Pandoc sehr flexibel macht [17].
PDF erzeugen
Im Unterschied zu dem Dokumentenprozessor Rst2pdf [18],
der PDF-Dateien aus reST-Quellcode direkt
erzeugt und dafür die PDF-Bibliothek von Reportlab benutzt [19],
greift Pandoc auf ein
installiertes LaTeX-System zu, um PDF-Dateien zu generieren, wenn .pdf als
Ausgabeformat gewählt wird [20].
Eine andere
Möglichkeit ist es aber, den LibreOffice Writer als PDF-Engine einzusetzen:
Zunächst erzeugt man aus dem Markdown-Quellcode eine ODT-Datei. Dabei muss
beachtet werden, dass der Dokumentenkopf mit den Angaben für Title, Author und
Date (siehe Beispieldokument) eine derjenigen Markdown-Erweiterungen von Pandoc
ist, die beim Kompilieren extra freigeschaltet werden müssen [21]:
$ pandoc -f markdown+mmd_title_block -o beispiel1.odt beispiel1.md
Die entstandene Datei kann man nun in LibreOffice Writer laden, in diesem
eventuell zunächst weiter bearbeiten und dort dann als PDF-Dokument
exportieren. Eine einfachere Lösung ist es aber, Unoconv [22]
für die Konvertierung zu benutzen:
$ unoconv beispiel1.odt
Dieser Konverter wird durch das gleichnamige Paket unoconv über den Paketmanager
installiert und generiert automatisch eine PDF-Datei, wenn nichts anderes beim
Aufruf angegeben wird.
Templates
Das so generierte ODT- bzw. PDF-Dokument ist allerdings im Format „US-Letter“.
Zu den Standardeinstellung, die LibreOffice Writer auswirft, gehört es
zum Beispiel auch, dass die Standard-Absatzvorlage sowie Autor und Datum auf
„linksbündig“ eingestellt sind. Nun möchte man das erste eventuell lieber
auf Blocksatz umstellen und die beiden letzten auf „zentriert“, wie der
darüber stehende Titel auch.
Für diese und andere Dokumenteinstellungen (wie z. B. die verwendeten
Schriften) bietet Unoconv die Möglichkeit, LibreOffice-Templates zu verwenden.
Ein solches Template gewinnt man, indem man ein beliebiges Dokument in
LibreOffice Writer als ODF-Textdokumentenvorlage (.ott) abspeichert. Die
gesamten Einstellungen dieser
Dokumentenvorlage können dann ganz einfach auf die
generierte PDF-Datei übertragen werden:
$ unoconv -t meintemplate.ott beispiel1.odt
In der Praxis empfiehlt es sich, die ODT-Datei aus dem ersten
Konvertierungslauf separat als Vorlage für weitere Konvertierungen
abzuspeichern. Eine Dokumentenvorlage kann auch völlig leer sein und muss keinen
Text in sich tragen und lässt sich natürlich auch für andere Dokumente
verwenden.
Bild: Die generierte PDF-Datei aus dem Beispieldokument mit einer speziellen Dokumentenvorlage.
Bibliographie
Eine der Stärken von Pandoc sind mit Sicherheit die Funktionen für Quellen- bzw.
Literaturangaben mit automatischer Erstellung eines Literaturverzeichnisses [23].
Dabei können die vom Benutzer
in einer oder mehreren speziellen Dateien mit entsprechender Software
gesammelten und gepflegten Literaturdatensätze vom Prozessor anhand von kurzen
Zitierschlüsseln automatisch in das jeweilige Zieldokument übernommen werden [24].
Dieses Verfahren
bietet viele Vorteile und Pandoc kann hierbei auf eine ganze Reihe von
verschiedenen Datenformaten zugreifen.
EndNote-refer-Dateien (.enl) zum Beispiel sind Datensätze, die von der
kommerziellen Literaturverwaltung EndNote [25]
auf einem Windowsrechner oder einem Mac erzeugt bzw. gesammelt worden sind.
Pandoc kommt aber auch sowohl mit dem RIS-Format von Research Info
Systems [26],
als auch mit dem von der
amerikanischen Kongressbibliothek entwickelten XML-Format MODS
zurecht [27].
Unter den Quellendaten stellt aber vor allem das für den LaTeX-Postprozessor
BibTeX [28] entwickelte Datenformat einen
gewissen Standard da.
Pandoc benutzt dabei die Dateiendung .bibtex, um davon das erweiterte
Datenformat der BibTeX-Reimplementation
BibLaTeX zu unterscheiden, aber herkömmliche .bib-Dateien brauchen nicht extra
umbenannt zu werden.
Ein beliebtes Literaturverwaltungsprogramm für BibTeX-Daten mit grafischer
Benutzeroberfläche ist Jabref [29], das
verschiedene Importfilter hat und Datensätze
aus verschiedenen Online-Datenbanken beziehen kann.
Jabref ist bequem mit der Paketverwaltung über das Paket jabref
installierbar.
Für die Einführung in das BibTeX-Format hier ein kleines Beispiel:
pandoc_beispiel2.bib.
Es finden sich hier drei verschiedene Datentypen: eine selbstständige
Veröffentlichung (@Book), ein Zeitschriftenartikel (@Article) und eine weitere
unselbständige Veröffentlichung (d. h. eine Veröffentlichung nicht unter eigenem
Namen) in einem Sammelband (@InCollection). Die Zitierschlüssel (im Beispiel:
enders, struc und park) sind dabei immer völlig beliebig.
Einige Beispiele, wie nun in Pandoc auf Quellen verwiesen wird, kann man der
Datei pandoc_beispiel2.md entnehmen.
Informationen zu diesem Thema finden
sich zum Beispiel bei
@enders, @struc und @park.
Bei Enders ist von Schlegels
„Erhabenheitsdrang“ die Rede
[-@enders, S. X].
In beiden deutschsprachigen Beiträgen
findet sich häufig das Wort „ist“,
und zwar z.B. bei @struc [S. 114],
und bei @enders [S. VII].
# Literaturverzeichnis
Listing: pandoc_beispiel2.md
Kommt nach einem „Klammeraffen“ ein Zitierschlüssel vor, wird an dieser Stelle
im Zieldokument die entsprechende Kurzangabe ausgeworfen, deren Daten aus
derjenigen Datenbank bezogen wird, welche beim Kompilieren mit angegeben wird
(siehe weiter unten). Seitenzahlen und andere Stellenangaben ergänzt man dazu in
eckigen Klammern – für weitere Details konsultiere man Pandocs Benutzerhandbuch.
Das ausführliche Verzeichnis der im Dokument zitierten Literatur erscheint in
der Ausgabedatei dort, wo man in der Markdown-Quelle die Überschrift
„Literaturverzeichnis“ platziert hat. Während die Datensätze in der oder den
verwendeten Datenbanken unsortiert, also auch in Reihenfolge ihrer Aufnahme
vorkommen können, werden sie vom Prozessor für das Literaturverzeichnis
alphabetisch sortiert.
Citation Style Language
Für die bibliografischen Angaben im Literaturverzeichnis gibt es immer viele
alternative Darstellungsformen. So verlangen einige Verlage zum Beispiel, dass
beim Autor-Jahr-Zitierstil das Jahr der Veröffentlichung vorne direkt hinter
dem Autorennamen erscheint, der selbst in Kapitälchen gesetzt werden soll,
während es bei anderen als schön bzw. sinnvoll gilt, dass das Erscheinungsjahr
hinten im Block mit Erscheinungsort und Verlag bzw. herausgebender Körperschaft
verbleibt.
Eine aktuelle Entwicklung in Bezug auf unterschiedlich formatierte
Quellenangaben in Dokumenten sind die Citation Style Language (CSL)
Stylesheets [30].
Bei CSL handelt es sich
um eine in XML implementierte Sprache zur Definition von unterschiedlichen
Zitierstilen [31]. CSL ist für das populäre
Literaturverwaltungsprogramm Zotero [32]
entwickelt worden und die bisher verfügbaren Stylesheets (.csl) werden zentral
gesammelt [33].
Eine CSL-Datei wie zum Beispiel din-1505-2.csl, welche die Formatangaben nach
den Vorgaben der DIN-Norm 1505 Teil 2 enthält [34],
kann vom Arbeitsverzeichnis aus
verwendet und beim Kompilieren eines Markdown-Dokumentes ganz einfach zusammen
mit der verwendeten Literaturdatenbank angegeben werden:
$ pandoc --bibliography=beispiel2.bib --csl=din-1505-2.csl -o beispiel2.odt beispiel2.md
Bild: Ergebnis des zweiten Beispieldokumentes.
Zusammenfassung
Mit dem schlanken Dokumentenprozessor Pandoc kann man mittels der
übersichtlichen vereinfachten Auszeichnungssprache Markdown von der
Kommandozeile aus ohne großen Aufwand unter anderem hochwertige PDF-Dokumente
erstellen. Dabei verzichtet man zwar auf den Komfort von WYSIWYG, aber dieses
programmierähnliche Verfahren hat als offenes System demgegenüber eine Reihe
von Vorteilen. Pandoc benutzt normalerweise LaTeX um PDF-Dateien auszugeben,
aber es besteht
auch die Möglichkeit, den LibreOffice Writer über den Wrapper Unoconv dafür
einzusetzen, wobei LibreOffice-Templates eingebunden werden können. Pandoc kann
für Quellenverweise auf verschiedene Literaturdatenbank-Formate zugreifen und
es besteht dabei die Möglichkeit, CSL-Stylesheets für unterschiedliche
Zitierstile zu verwenden.
Pandoc steht vor allem durch die Verwendung von CSL mit an der Spitze der
derzeitigen Entwicklung, aber es gibt auch noch einige Nachteile gegenüber
alternativen, Editor-basierten Systemen wie LaTeX, wie z. B. die
automatische Silbentrennung oder PDF-Metadaten. Aber Pandoc
genießt eine große Popularität und wird zur Zeit laufend weiterentwickelt.
Links
[1] https://de.wikipedia.org/wiki/LaTeX
[2] https://de.wikipedia.org/wiki/Libreoffice
[3] https://de.wikipedia.org/wiki/Patch_(Unix)
[4] https://de.wikipedia.org/wiki/Versionsverwaltung
[5] https://de.wikipedia.org/wiki/Epub
[6] https://en.wikipedia.org/wiki/Lightweight_markup_languages
[7] https://de.wikipedia.org/wiki/Markdown
[8] https://de.wikipedia.org/wiki/ReStructuredText
[9] http://johnmacfarlane.net/pandoc
[10] http://johnmacfarlane.net/pandoc/releases.html
[11] https://de.wikipedia.org/wiki/Haskell_(Programmiersprache)
[12] http://hackage.haskell.org/package/pandoc
[13] http://jblevins.org/projects/markdown-mode
[14] http://johnmacfarlane.net/pandoc/README.html#pandocs-markdown
[15] http://markdown.de/syntax
[16] https://de.wikipedia.org/wiki/Fußnote
[17] http://johnmacfarlane.net/pandoc/README.html#footnotes
[18] http://rst2pdf.ralsina.com.ar/
[19] http://www.reportlab.com/software/opensource/rl-toolkit
[20] http://johnmacfarlane.net/pandoc/README.html#creating-a-pdf
[21] http://johnmacfarlane.net/pandoc/README.html#non-pandoc-extensions
[22] http://dag.wieers.com/home-made/unoconv
[23] https://de.wikipedia.org/wiki/Literaturnachweis
[24] http://johnmacfarlane.net/pandoc/README.html#citations
[25] https://de.wikipedia.org/wiki/EndNote
[26] https://de.wikipedia.org/wiki/RIS_(Dateiformat)
[27] https://de.wikipedia.org/wiki/Metadata_Object_Description_Schema
[28] https://de.wikipedia.org/wiki/Bibtex
[29] http://jabref.sourceforge.net
[30] https://de.wikipedia.org/wiki/Citation_Style_Language
[31] http://citationstyles.org/documentation
[32] https://de.wikipedia.org/wiki/Zotero
[33] http://zotero.org/styles
[34] https://de.wikipedia.org/wiki/DIN_1505-2
Diesen Artikel kommentieren
Zum Index
von Dominik Wagenführ
Das Humble Indie Bundle [1] gibt es
bereits seit 2010. In unregelmäßigen Abständen werden Spielepacks
veröffentlicht, deren Inhalt unter den großen Betriebssystemen Linux, Mac
und Windows läuft und DRM-frei ist. Von Ende Mai bis Anfang Juni gibt
es wieder so eine Aktion.
Hintergrund
Seit dem 28. Mai 2013 kann man das neue Humble Indie Bundle 8 kaufen. Wie
bei allen Humble Bundles sind die Spiele DRM-frei und laufen unter Linux,
Mac und Windows.
Jeder kann den Preis selbst bestimmen und in variablen
Anteilen auf die Entwicklerstudios, die Humble-Anbieter, die Electronic
Frontier Foundation [2] und die Charity-Organisation
Child's Play [3] verteilen.
Bild: Die Humble Webseite.
Sieben Spiele als Linux-Debut
Dear Esther
„Dear Esther“ [4] ist kein typisches Videospiel
sondern eher eine Erfahrung. In der Ich-Perspektive erkundet man ohne
Gedächtnis eine einsame Insel, auf der in der Ferne ein geheimnisvoller
Leuchtturm blinkt. Stück für Stück findet man Gegenstände, die man
zusammenpuzzeln muss, um hinter das Geheimnis der Insel und der eigenen
Identität zu kommen. Das Spiel hat zahlreiche Preise gewonnen, u. a. in den
Kategorien „Beste Erzählweise“ und „Visual Art“.
Bild: Dear Esther.
Hinweis: „Dear Esther“ existiert derzeit nur als CodeWeaver-Portierung, d. h.
als Windows-Spiel, das mit einem Wine-Wrapper ausgeliefert wird. Eine native
Portierung ist aber bereits in Arbeit [5].
Thomas Was Alone
„Thomas Was Alone“ [6] ist ein Spiel über
Freundschaft in einem andersartigen Design. Als kleines Rechteck bahnt man
sich in dem Jump'n'Run-Geschicklichkeitsspiel anfangs alleine seinen Weg
durch die Welt, um später neue Freunde zu gewinnen, die einem bei dem Abenteuer
helfen.
Jedes Level wird durch eine freundliche Stimme eingeleitet, die einen
Anfangs ohne künstlichen Aufsatz in die Spielmechanik einführt. Die
Verbindung zwischen Geschichte und Spieleinführung ist sehr gut gelungen.
Bild: Thomas Was Alone.
Capsized
„Capsized“ [7] ist ein grafisch sehr schönes
Action-Jump'n'Run. Als gestrandeter Astronaut auf einem fremden Planeten
versucht man in der einem feindlich gesonnenen Umwelt zu überleben und die
eigenen Crew-Mitglieder zu retten.
Zur Verteidigung besitzt man natürlich zahlreiche Waffen und eine Art
Gravity-Hook, mit dem man sich selbst z. B. über Abgründe schwingen oder auch
andere Gegenstände greifen und bewegen kann. Mit einem Jetpack ausgerüstet
kann man auch höher gelegenen Ebenen finden. In jedem Level gibt es auch
Geheimverstecke und Boni.
Bild: Capsized.
Awesomenauts
„Awesomenauts“ [8] ist ein sehr bunter
2D-Jump'n'Run-Shooter im Comicstil. Mehrere Helden mit verschiedenen
Fähigkeiten und eigenem Teamsong stehen zur Auswahl. Zusätzlich gibt es
einen Multiplayer-Modus.
Bild: Awesomenauts.
Little Inferno
Den Stil von „Little
Inferno“ [9] erkennt man als
World-of-Goo-Spieler sofort wieder (siehe freiesMagazin
03/2009 [10]). Dieses Mal
sprüht das Herz jedes Pyromanikers Funken, wenn er das Spiel sieht: Einziges
Ziel des Spiels ist es, Gegenstände in einem Kamin zu verbrennen. Hierfür
bekommt man Geld, für das man sich tolle neue Sachen kaufen kann – um sie
dann wieder zu verbrennen.
Bild: Little Inferno.
Proteus
Wer mehr als den Durchschnitt zahlt, bekommt
„Proteus“ [11] dazu. Das Spiel zeigt
eindrucksvoll, wie man mit Pixelgrafik wundervolle Welten erschaffen kann.
Zusammen mit einem großartigen Soundtrack kann man sich leicht in den
zufallsgenerierten Welten verlieren. Das Spiel konnte
einige Preise
gewinnen, u. a. für „Best Audio“ und „Most Amazing Game“. Ein direktes
Spielziel erkennt man aber auf Anhieb nicht.
Bild: Proteus.
Hotline Miami
Ebenso gibt es „Hotline Miami“ [12] dazu, wenn man
mehr als der Durchschnitt bezahlt. Es handelt sich dabei um einen sehr
schnellen strategischen Top-Down-Shooter, bei dem man nur wenige
Millisekunden Zeit hat, zu reagieren. Zum falschen Zeitpunkt die falsche
Taste gedrückt und man darf von vorne anfangen. Frustration und Motivation
geben sich hier die Klinke in die Hand.
Bild: Hotline Miami.
Soundtrack und Sprache
Zusätzlich gibt es zu den Spielen „Dear Esther“, „Thomas Was Alone“,
„Capsized“, „Awesomenauts“, „Little Inferno“ und „Proteus“ den
jeweiligen
Soundtrack als MP3 und verlustloses FLAC zum Download.
Die
Sprache [13]
der meisten Spiele ist Englisch, einzig „Hotline Miami“ und „Little Inferno“
beim Direktdownload bzw. „Little Inferno“ und „Awesomenauts“ unter Steam
stehen in Deutsch zur Verfügung.
Hinweis: Alle Spiele liegen nur als 32-Bit-Version vor. Zur Benutzung auf 64-Bit-Systemen benötigt man unter Umständen die 32-Bit-Bibliotheken ia32-libs.
Bundle erwerben
Die Spiele stehen nach dem Kauf für Linux als Direkt-Download oder
BitTorrent-Link zur Verfügung. Zusätzlich können die Spiele auch über das
Ubuntu-Software-Center installiert werden. Ebenso gibt es für alle Spiele
Steam-Keys.
Bezahlen kann man über Paypal, Google Wallet oder Amazon Payments.
Ganz neu im achten Bundle ist die Bezahlung mit
Bitcoins [14].
Das Angebot besteht noch bis zum 11. Juni 2013. Einige der Spiele können
danach auf den Webseiten der Entwickler oder in Steam gekauft
werden.
Hinweis: Vor dem Kauf sollte man zu allen Spielen die Systemvoraussetzung für
Linux lesen [15].
Links
[1] http://www.humblebundle.com/
[2] http://www.eff.org/
[3] http://www.childsplaycharity.org/
[4] http://dear-esther.com/
[5] http://support.humblebundle.com/customer/portal/articles/1161428-dear-esther-linux-issues
[6] http://www.thomaswasalone.com/
[7] http://www.capsizedgame.com/
[8] http://www.awesomenauts.com/
[9] http://tomorrowcorporation.com/littleinferno
[10] http://www.freiesmagazin.de/freiesMagazin-2009-03
[11] http://www.visitproteus.com/
[12] http://hotlinemiami.com/
[13] http://support.humblebundle.com/customer/portal/articles/1162704-humble-indie-bundle-8-available-languages
[14] https://de.wikipedia.org/wiki/Bitcoin
[15] http://support.humblebundle.com/customer/portal/articles/1156426-humble-indie-bundle-8-system-requirements
Autoreninformation |
Dominik Wagenführ (Webseite)
spielt sehr gerne und die Humble Bundles sind so gut wie
immer ein Pflichtkauf für ihn, auch wenn er selten mit dem Spielen
hinterherkommt.
|
Diesen Artikel kommentieren
Zum Index
von Werner Ziegelwanger
Der Raspberry Pi ist laut Wikipedia [1]
ein kreditkartengroßer „Einplatinen-Computer“. Diese Beschreibung ist keineswegs
übertrieben, sondern sogar wörtlich zu nehmen. Der Raspberry Pi ist ein
vollwertiger Computer in der Größe einer üblichen Scheckkarte.
Auf den ersten Blick wirkt der Pi wie etwas für Bastler, schließlich schaut er
doch eher nackt aus.
Das Tolle ist: Er ist sowohl unproblematisch für Laien als
auch das Gerät für jeden Bastler. Man kann ihn ganz schnell und unkompliziert in
Betrieb nehmen und im Internet surfen, oder aber man schreibt dafür Software,
steuert externe Geräte oder lässt einen Roboter laufen. Diese Vielseitigkeit und
gleichzeitige Einfachheit ist sein Erfolgsrezept.
Bild: Der Raspberry Pi.
Den Pi gibt es aktuell in zwei Ausführungen: eine
mit 256 MB RAM (Modell A) und
eine mit 512 MB RAM (Modell B). Alle weiteren Details und Bilder in diesem
Artikel beziehen sich auf das Modell B.
Geschichte
Der Raspberry Pi geht auf einen Prototypen aus dem Jahr 2006 zurück. Ziel der
Entwicklung war ein kleiner und günstiger Computer für britische Schüler. Man
rechnete mit einem Verkauf von rund 1000 Stück. Die Raspberry Pi
Foundation [2]
(eine gemeinnützige Organisation) hatte ursprünglich vor, Jugendlichen das
Programmieren-Lernen zu erleichtern. Schnell kam man aber auf die Idee, dass man
am besten mit einem preisgünstigen Computer helfen kann. Sechs Jahre nach der ersten
Idee erreichte der Hype um den Raspberry Pi seinen Höhepunkt. Anfang 2013
teilte die Raspberry Pi Foundation mit, dass bereits eine Million Pis verkauft
wurden.
Komponenten
Auf der Platine sind alle Komponenten eines Computers untergebracht. Das Herz
des Raspberry Pis ist seine CPU. Die Recheneinheit des Pis ist ein
ARM1176JZF-S-Prozessor. Dieser wird ab Werk mit 700 MHz getaktet.
ARM-Prozessoren [3] kennt man
von mobilen Geräten wie Handys oder Tablets. Sie sind sehr stromsparend und
brauchen vor allem keine aktive Kühlung.
Für die grafischen Berechnungen sorgt
die GPU. Hier kommt ein Broadcom VideoCore-IV-Grafikkoprozessor zum Einsatz.
Dieser ist so leistungsstark, dass man ein Full-HD-Signal ohne Ruckeln darstellen
kann. Es wird OpenGL ES 2.0 unterstützt. Man kann damit 3-D-Spiele laufen lassen
wie zum Beispiel Quake 3.
Der nächste wichtige Bestandteil ist der
Hauptspeicher. Es stehen 512 MB zur Verfügung, die aber mit der GPU
geteilt werden müssen. Üblicherweise verwendet diese davon 64 MB.
Der Arbeitsspeicher ist nicht groß, aber ausreichend.
Der große Unterschied des Raspberry Pis gegenüber vielen anderen
Einplatinen-Computer sind seine Anschlüsse:
Es gibt zwei USB-2.0-Steckplätze, die heute jeder PC oder Laptop auch hat. An die
USB-Anschlüsse sollte man nur passive Geräte anstecken. Geräte, die zu viel Strom
benötigen, funktionieren ohne eigene Stromversorgung nicht richtig (z. B. externe
Festplatten). Der Raspberry hat auch einen 10/100-MBit-Ethernet-Netzwerkanschluss.
Für die Ausgabe von Ton gibt es einen 3,5mm-Klinkenanschluss (normaler
Kopfhörer-Anschluss). Für die Videoausgabe gibt es zwei Möglichkeiten, entweder
über HDMI [4]
oder über einen FBAS (gelber Cinch-Anschluss).
Für Bastler gibt es auch eine eigene Schnittstelle. Diese hat 16 Pins, die
man selbst mit Programmen ansteuern kann. Zu guter Letzt sei noch der
SD-Kartenslot erwähnt.
Die Stromversorgung läuft beim Raspberry über einen Micro-USB-Stecker. So kann
man ihn mit heutigen Handyladekabeln an das Stromnetz anschließen. Der Raspberry
benötigt 5V mit 700mA, das sind 3,5 Watt.
Techniker vermissen eventuell ein paar Dinge, die ein üblicher PC
hat. Der Raspberry Pi hat keinen Zeitgeber, also keine interne Uhr. Die Uhrzeit holt
er sich normalerweise über das Netzwerk, vergisst diese jedoch bei
Stromverlust.
Außerdem gibt es kein Speichermedium. Dafür gibt es an der
Unterseite einen SD-Kartenschacht. Dort kann man eine SD-Karte mit einem
Speicher von 2 GB oder mehr einstecken. Von dort wird das Betriebssystem gebootet und dort kann man auch (so wie auf einer Festplatte) Daten speichern.
Als Betriebssystem verwendet man üblicherweise Linux.
Raspbian [5]
basiert auf Debian und ist die Standarddistribution für den Raspberry Pi. Man
kann jedoch auch jedes andere für ARM kompilierte Linux installieren.
Tatsächlich erlaubt der Raspberry auch das Programmieren eines eigenen
Betriebssystems. Das kann man durch einfachen Tausch der SD-Karte testen. Wer
gerne sein eigenes Betriebssystem schreiben will, kann sich dazu einen Kurs der
Cambridge
Universität [6]
ansehen. Dort wird der Raspberry Pi im Unterricht verwendet.
Bild: Der Raspberry Pi in einem Case mit angestecktem LAN- und HDMI-Kabel.
System
Wer nun Lust bekommen hat und auch einen Raspberry Pi benötigt, findet auf der
offiziellen Homepage [7] auch Links zu Verkäufern. Diese
Webseite ist auch der Anlaufpunkt Nummer 1 für den Pi. Dort wird auch
Raspian als Image zum Download angeboten [8].
Die aktuelle Version heißt
„wheezy“ und basiert auf Debian. Nur wie installiert man diese?
Installation
Im Grunde ist die Installation einfach. Man muss lediglich das Image auf eine
SD-Karte kopieren. Wichtig ist, dass dieses auch bootbar bleibt. Aus diesem Grund
benötigt man hierfür das Programm dd. Der Transfer auf die SD-Karte kann wie
folgt aussehen:
$ dd bs=1M if=raspbian_wheezy.img of=/dev/sdX
Wobei hier das X bei sdX mit der Nummer der SD-Karte ersetzt werden muss.
Der Rest der Installation ist trivial. Man muss lediglich die SD-Karte in den
Raspberry Pi einsetzen und ihn mit Strom versorgen.
Programme
Nach dem ersten Bootvorgang startet das wichtigste Programm des Pis, sein
Konfigurationsprogramm raspi_config. Dieses kann jederzeit von der Konsole aus
gestartet werden.
Bild: raspi_config-Einstellungen.
Folgende Dinge kann man hier einstellen:
- „expand_rootfs“:
- Hat man eine SD-Karte mit mehr als 2 GB Speicher, so sollte
man hier das Filesystem auf den vollen Speicher ausdehnen, denn egal wie groß
der Speicher ist, das Image verwendet ohne Konfiguration nur 2 GB.
- „configure_keyboard“:
- Hier sollte man das Tastaturlayout auf Deutsch setzen, da
nach der Installation Englisch eingestellt ist.
- „change_pass“:
- Voreingestellt ist ein Benutzer
mit dem Benutzernamen „pi“ und dem Passwort „raspberry“. Hier sollte man
unbedingt das Passwort ändern!
- „change_locale“ und „change_timezone“:
- Mit diesen beiden Einstellungen setzt man Ort und Zeitzone.
- „overclock“:
- Den Prozessor des Raspberry Pis kann man übertakten. Werte bis zu 1
GHz sind möglich. Man sollte dabei aber sehr vorsichtig sein!
- „ssh“:
- Hier kann man den SSH-Zugriff erlauben, um sich über das Netzwerk an der
Konsole anzumelden. Der Raspberry Pi eignet sich sehr gut für
Controller-Aufgaben und benötigt dafür weder Eingabegeräte noch eine Bildschirmausgabe.
- „boot_behaviour“:
- Zuletzt kann man noch festlegen, ob im Konsolenmodus oder direkt im grafischen Modus gestartet werden soll.
Alle anderen Programme von Raspbian sollten Debian-Benutzern bereits
bekannt sein. Es ist hier nur wichtig zu erwähnen, dass aufgrund des kleinen
Images nur wenige davon installiert sind. Man kann aber einfach Programme über
den Paketmanager nachinstallieren.
Store
Seit einigen Monaten gibt es auch einen eigenen Raspberry Pi
Store [9]. Dort werden Programme angeboten,
welche speziell für den Raspberry Pi entwickelt, kompiliert oder konfiguriert
wurden. Viele davon sind gratis. Die grafische Oberfläche hat in den neueren
Versionen des Images bereits ein Desktop-Icon für den Store.
Netzwerk/Internet
Die wohl wichtigste Komponente des Raspberry Pis ist meiner Meinung nach seine
Netzwerkschnittstelle. Diese ist standardmäßig so konfiguriert, dass sie über DHCP vom
Router eine IP-Adresse bezieht. Das passt perfekt, wenn man den Pi
beispielsweise über ein LAN-Kabel direkt an den Router ansteckt. Mit aktiviertem
SSH ist der Pi nun über seine IP-Adresse von allen anderen Rechnern über:
$ ssh pi@192.168.1.2
erreichbar. Diese Beispiel-IP-Adresse muss natürlich mit jener des Pis ausgetauscht
werden.
Will man den Raspberry Pi etwas „mobiler“ verwenden, dann benötigt man einen
WLAN-Stick. Es ist sehr wichtig, sich zuerst zu informieren, welche WLAN-Sticks
vom Raspberry Pi unterstützt werden, denn sonst artet die
Inbetriebnahme in
endlose Treiberinstallationen aus. Ein guter WLAN-Stick ist der von der Firma
EDIMAX. Die Konfiguration des Sticks selbst ist sehr einfach, da am Desktop des
grafischen Modus bereits eine Verknüpfung zum WiFi-Tool liegt. Damit ist der Pi
in zwei Minuten im Netz.
Zum Internetsurfen liefert der Pi den Browser Midori [10]
mit. Dieser
ist nicht sehr performant, dafür aber leichtgewichtig, und wird von Webseiten üblicherweise als mobiler
Browser erkannt. Allerdings versteht dieser weder HTML5 noch Flash, daher kann man u. a.
keine Videos abspielen.
Mediencenter
Eine der genialsten Anwendungen für den Raspberry Pi ist die Verwendung als
Mediencenter. Da der Pi in Echtzeit Full-HD-Signale verarbeiten und am
HDMI-Ausgang ausgeben kann, ist er das ideale Werkzeug dafür. Im Gegensatz zu anderen
Mediencentern im Handel ist der Pi geschenkt. Doch wie verwendet man den Pi als
Mediencenter?
Dafür gibt es das XBMC-Mediencenter [11], welches schon sehr bald auf den Pi portiert
wurde und vollständig konfiguriert als minimales Netzwerkimage zur Installation
vorliegt. Dieser Port ist unter dem Namen Raspbmc [12]
bekannt.
Raspbmc-Installation
Auf der Homepage gibt es diverse Images zum
Download [13]. Zu bevorzugen ist das
minimale Netzwerkimage. Dieses kopiert man, wie schon beschrieben mit dd,
auf die SD-Karte und steckt diese dann in den Raspberry Pi, welcher über das
LAN-Kabel mit dem Internet verbunden ist.
Danach startet man den Pi und das Mediencenter wird in ca. 15 bis 20 Minuten
automatisch installiert und konfiguriert.
Ich habe mein Mediencenter so konfiguriert, dass der Raspberry Pi mit dem
HDMI-Anschluss am Fernseher und über das LAN-Kabel mit dem lokalen Netzwerk
verbunden ist. Über das Netzwerk kann man am Fernseher Videos und Bilder
ansehen oder Musik hören.
Ein besonderes Feature des XBMC-Mediencenters ist, dass es auch mit einer
Fernbedienung steuerbar ist. Hierzu kann man eine normale
Infrarot-Fernbedienung verwenden, jedoch muss dazu der angeschlossene
Fernseher den CEC-Standard [14]
erfüllen. Eine Möglichkeit, die unabhängig vom TV-Gerät funktioniert, ist die Verwendung eines Smartphones als Fernbedienung.
Die offizielle
XBMC-Remote-App gibt es für das iPhone oder
iPad [15]
oder für
Android [16]
Geräte. Die offizielle App ist gratis. Es gibt aber auch einige ähnliche Apps zu
kaufen. Wenn Smartphone oder Tablet im selben Netzwerk (WLAN) hängen, kann
man damit das Mediencenter sogar über größere Entfernung steuern. Ein
Webinterface ermöglicht auch die Steuerung über das Internet. Somit könnte man
von jedem Punkt in der Welt die eigene Wiedergabeliste steuern.
Anwendungen
Der Raspberry Pi kann noch sehr viel mehr.
Webserver
Ein schöner Anwendungsfall für den Pi ist ein LAMP-Webserver [17].
Dafür installiert
man nachträglich MySQL als Datenbank, Apache als Webserver und PHP zum Ausführen
von PHP-Skripten. Diese Installation und Konfiguration sollte eher trivial sein
und wird hier nicht näher beschrieben.
Das größte Problem für die Nutzung als Webserver ist hier ganz klar der Arbeitsspeicher.
Mit
512 MB ist man weit davon entfernt, was ein normaler Server
haben sollte. Man kann ihn aber sehr gut für einfache Dinge benutzen. Man könnte
zum Beispiel täglich Skripte über Cron aufrufen lassen, die bestimmte Werte
auslesen (z. B. aus dem Internet, von angeschlossenen Messinstrumenten oder anderen
Datenquellen). Diese Werte könnte man in einer Datenbank speichern und über
eine Weboberfläche mit dem Apache grafisch ausgeben. Auf diese Art und Weise
könnte man den Pi auch zur Steuerung und Regelung anhand verschiedener Werte im eigenen
Haus benutzen. Man denke hier zum Beispiel an einen Temperatursensor, der
Außen- und Innentemperaturen abfragt, auswertet und eventuell Klimaanlage
oder Heizung steuert.
Retro
Manche ältere Leser wird der Raspberry Pi an Computer aus den 80er Jahren
erinnern. Man
denke hier nur an einen
Apple II [18]. Damals waren Computer noch
Rechner mit maximal einer Tastatur, ohne Speichermedium und lediglich einem
Diskettenlaufwerk. Außerdem steckte man diese am Bildschirm oder Fernseher an,
welche nicht beim Kauf dabei waren. Damals erlaubten diese Computer noch das
Basteln und kamen oft mit umfangreicher technischer Anleitung.
Dieser Retro-Flair wird vor allem dann deutlich, wenn man selbst am Raspberry Pi
Emulatoren für alte Spiele installiert.
Bild: Das Spiel „Dig Dug“ im Atari2600-Emulator.
Ein anderer, den meisten vermutlich bekannter Emulator ist
DOSBox [19]. Damit lassen
sich noch nicht ganz so alte Programme ausführen.
Bild: DOSBox gestartet unter Raspbian.
Visualisierungen
Nachdem der Raspberry Pi durch seine Hardware sowohl Full-HD-Signalbearbeitung
als auch OpenGL ES 2.0 erlaubt, kann man ihn perfekt dafür benutzen, schnell
und einfach eine grafische Ausgabe zu erzeugen. Man denke hier an
Visualisierungen auf einer Messe oder einfach um irgendwo in einem Warteraum
eine Ausgabe auf einen Fernseher zu bringen.
Als Referenz bei Grafikkarten-Benchmarks dient oft Quake III
Arena [20]. Also warum sollte
man nicht auch hier Quake 3 probieren? Das ist vor allem deshalb möglich, da
die Quake-3-Engine Open Source ist.
Bild: Quake 3 läuft am Raspberry Pi flüssig.
Quake 3 kann nicht einfach heruntergeladen und installiert werden. Es muss
zuerst (für den ARM-Prozessor) kompiliert werden. Dies ist etwas komplizierter
und dauert auch gut und gern eine Stunde [21].
Game-Server
Selbst als Game-Server kann man den Raspberry Pi verwenden. Beispiele dafür
sind der Minecraft- [22] oder auch der
FreeCiv-Server [23]. Hier sollte man
jedoch nicht zu viel erwarten. Für ein kleines Spiel mit Freunden reicht es
gerade noch, aber als Minecraft-Server mit tausenden Spielern reichen RAM und
Rechenkapazität einfach nicht aus.
Bei fünf bis zehn Spielern ist Schluss! Für
rundenbasierte Spiele wie FreeCiv ist der Raspberry Pi aber ideal.
Bild: Minecraft Pi Edition unter Raspbian ausgeführt.
Python-Programmierumgebung
Man darf nicht vergessen, dass der Pi konzipiert wurde, um Programmieren zu
lernen. Dafür hat der Pi standardmäßig eine Programmierumgebung für Python
installiert. Im Internet sind dazu auch Tutorials zu finden, um einen
einfachen Einstieg zu haben.
Mit Python kann man beispielsweise auch die 16 Pins
ansprechen. Dort kann man eigene Hardware anstecken wie Temperatursensoren,
LC-Displays, usw. Leser, die sich ein wenig mit Elektrotechnik auskennen,
fühlen sich hier vermutlich wohler. Ein sehr guter Blog zu diesem Thema ist
von adafruit industries [24].
Probleme/Kritik
Der Raspberry Pi ist an sich ein tolles Gerät. Man sollte sich aber vor dem Kauf
überlegen, ob man sich wirklich einen zulegen möchte. Man muss selbst auch ein
wenig Zeit investieren. Der Pi ist als PC nur schlecht zu gebrauchen. Man kann
im Internet surfen, E-Mails abrufen, man kann sogar LibreOffice installieren
und damit arbeiten. Aber: alles eher langsam und nur sehr begrenzt. Der Pi
verwendet als Speichermedium eine SD-Karte und diese kann man von vornherein
schon nicht endlos überschreiben.
Die Stromversorgung ist ein weiteres Problem. Der Pi verbraucht nur 3,5 Watt,
also bei derzeitigen Stromkosten keine 10 € im Jahr (bei Dauerbetrieb). Die 3,5
Watt sind aber für Peripheriegeräte zuwenig. Eine Maus und eine Tastatur können
gerade noch betrieben werden (mit Problemen), externe Festplatten ohne eigene
Stromversorgung funktionieren nicht! Sollte man auf USB-Geräte angewiesen sein,
sollte man sich unbedingt einen USB-Hub mit eigener Stromversorgung zulegen.
Wie man am Stromproblem sieht, benötigt man schnell mehr Geräte. So braucht man
immer mehr Kabel und endet in einem kompletten Chaos.
Ich persönlich verwende meinen Pi entweder als XBMC-Mediencenter (angesteckt am
Router über LAN-Kabel, HDMI am Fernseher und am Stromnetz) oder als Rechner im Netz
(mit Strom und WLAN-Stick). Alles andere ist meiner Meinung nach nur zum Testen
geeignet und nicht für den laufenden Betrieb.
Links
[1] https://de.wikipedia.org/wiki/Raspberry_Pi
[2] http://www.raspberrypi.org/about
[3] https://de.wikipedia.org/wiki/ARM-Architektur
[4] https://de.wikipedia.org/wiki/HDMI
[5] http://www.raspbian.org/
[6] http://www.cl.cam.ac.uk/freshers/raspberrypi/tutorials/os/
[7] http://www.raspberrypi.org/
[8] http://www.raspberrypi.org/downloads
[9] http://store.raspberrypi.com/projects
[10] http://midoribrowser.org/
[11] http://xbmc.org/about/
[12] http://www.raspbmc.com/
[13] http://www.raspbmc.com/download/
[14] http://wiki.xbmc.org/index.php?title=CEC
[15] https://itunes.apple.com/de/app/official-xbmc-remote/id520480364?mt=8
[16] https://play.google.com/store/apps/details?id=org.xbmc.android.remote&hl=de
[17] https://de.wikipedia.org/wiki/LAMP_(Softwarepaket)
[18] https://de.wikipedia.org/wiki/Apple_II
[19] http://www.dosbox.com/
[20] https://de.wikipedia.org/wiki/Quake_III_Arena
[21] http://developer-blog.net/hardware/quake-3-am-raspberry-pi/
[22] https://minecraft.net/
[23] http://www.freeciv.org/
[24] http://www.adafruit.com/blog/category/raspberry-pi/
Autoreninformation |
Werner Ziegelwanger (Webseite)
hat Game Engineering und Simulation studiert und arbeitet
derzeit als selbstständiger Software-Entwickler. Schon während seiner Ausbildung
beschäftigte er sich immer wieder mit Open-Source-Programmen und Linux-Distributionen.
|
Diesen Artikel kommentieren
Zum Index
von Mirko Lindner
Es vergeht kaum eine Woche, in der Hersteller von Fernsehern,
Multimedia-Geräten oder Anbieter von Diensten nicht irgendeine Neuerung
vorstellen. Wer nicht gerade zum erlesenen Kreis der Multimillionäre
gehört, verzichtet dankend oder ärgert sich womöglich. Doch das muss nicht
sein, denn der preiswerte Winzling „Raspberry Pi“ [1]
erlaubt es, mit geringsten finanziellen Mitteln ein Multimedia-Gerät
aufzusetzen, das sich hinter weit teureren Lösungen nicht zu verstecken
braucht. Der Artikel zeigt, wie man eine persönliche, moderne
Multimedia-Zentrale samt einer Fernbedienungssteuerung und einer
Display-Anzeige für nicht einmal 50 Euro realisieren kann.
Redaktioneller Hinweis: Der Artikel „Raspberry Pi als Multimedia-Zentrale“ erschien erstmals
bei Pro-Linux [2].
Einleitung
Der Raspberry Pi ist eine außerordentliche Erfolgsgeschichte – Linux und
Python machten es möglich. Über eine Million Exemplare des – je nach
Ausstattung – 24 oder 33 Euro kostenden Mini-Rechners sollen bereits
verkauft worden sein und fast täglich gibt es neue Erfolgsgeschichten, was
kreative Bastler mit den Rechnern alles ersinnen. Zuletzt stellte der
Hersteller ein neues Kameramodul
vor [3],
das den Einsatzbereich des Kleinstrechners noch weiter vergrößern dürfte.
Dabei wurde der ARM-basierte Mini-Rechner ursprünglich ersonnen, um der
neuen Generation die Grundprinzipien von Computern und Programmierung
nahezubringen [4].
Eine Rolle, die in den frühen 1980er-Jahren die
8-Bit-Mikrocomputer erfüllten und die seit einigen Jahren von keinem
System
mehr ausgefüllt werden konnte. Das Projekt hat hier noch riesiges Potenzial
und könnte dabei äußerst erfolgreich sein.
Nicht minder verantwortlich für die Verbreitung des Raspberry Pi ist neben
dem Preis auch
Hardware und das Design. Die Platine enthält im Wesentlichen
das Ein-Chip-System BCM 2835 von Broadcom mit dem 700-MHz-Hauptprozessor
ARM1176JZF-S, der sich mühelos auf 1 GHz
hochtakten lässt. Ein
Wermutstropfen bleibt, denn die Spezifikation des Gerätes ist nicht vollends
offen, was unter anderem dazu führt, dass geschlossene Treiber eingesetzt
werden müssen.
Der
ARM11-Prozessor [5]
ist mit Broadcoms „VideoCore“-Grafikkoprozessor kombiniert und unterstützt
unter anderem OpenGL ES 2. Filme lassen sich zudem in „Full HD“-Auflösung über
die eingebaute HDMI-Buchse ausgegeben – eine perfekte Voraussetzung für ein
Multimedia-Gerät. Mit der Einführung des zweiten Modells „B“ hat die hinter
dem Winzling stehende Raspberry
Pi Foundation [6] zudem den Speicher auf
512 MB ausgebaut und dem Gerät zusätzlich neben USB nun auch noch eine
Ethernet-Schnittstelle spendiert.
Ein Highlight des Mini-Computers, der im Übrigen im Vollbetrieb um die drei
Watt verbraucht, stellt die frei programmierbare Schnittstelle namens GPIO
(General Purpose Input/Output) dar. Gerade darüber lässt sich eine schier
unendliche Anzahl an Geräten, Sensoren oder Gadgets steuern. GPIO erlaubt es
zudem, mit relativ preiswerten Mitteln das Gerät um neue Funktionen zu
erweitern. Die Schnittstelle stellt auch einen wichtigen Teil des Geräts
dar, ermöglicht sie doch unter anderem die Ansteuerung diverser Komponenten.
Angetrieben werden kann der Raspberry Pi von einer Vielzahl von
Betriebssystemen. Der Anwender kann, wie bei Linux üblich, selbst
entscheiden, welches System er einsetzen möchte. Neben einem RISC-OS-basierenden
System steht eine Vielzahl weiterer Distributionen zur Auswahl
bereit. So bietet beispielsweise die Raspberry Pi Foundation direkt auf
ihrer Seite neben einer optimierten Version von Debian „Wheezy“ (namens
Raspbian [7]) auch eine weitere Abwandlung von
Wheezy und eine Arch-Linux-Version an. Zusätzlich stehen zahlreiche
Pakete von unabhängigen Projekten zum Download bereit.
Eine Übersicht über die Einsatzgebiete des Raspberry Pi liefert der
Artikel „Raspberry Pi“.
Bild: Multimediazentrale: Raspberry Pi und XBMC.
Das Multimedia-Problem und die Lösung
Moderne Fernseher, Player oder Multimedia-Geräte verfügen bereits von Hause
aus über eine beachtenswerte Vielfalt an Funktionen. Die Hersteller scheinen
sich förmlich mit der Funktionalität übertrumpfen zu wollen und offerieren
teils nützliche, teils unnötige Funktionalität. Doch selten gelingt es einem
Produzenten, alle Wünsche des Konsumenten zu erfüllen. Mal ist es die
Wiedergabe eines bestimmten Formats, mal die Anzeige einer Seite, die einen
ärgern. Gerne würde man oftmals etwas haben, was nur andere anbieten. Sind
doch alle Funktionen vorhanden, kommen schon bald unter Umständen Wünsche
hinzu, die wahrscheinlich nur den Käufern eines neuen Geräts erfüllt werden.
Ein Teufelskreis, aus dem es kein Entkommen zu geben scheint.
Der Wunsch nach einem Selbstbau ist deshalb nur legitim, doch scheiterte
die Realisierung eines solches Systems oftmals an diversen
Hürden. Teils waren die Systeme zu groß, zu langsam oder
einfach nur zu unwirtschaftlich. Mit einem knapp 50 Euro teuren Gerät, das
zudem im
Betrieb nur geringfügig mehr als den Stand-by-Stromverbrauch
moderner LCD-Fernseher benötigt, bietet sich eine neue Gelegenheit.
Für den Raspberry Pi gibt es gleich mehrere
Distributionen [8], die die
Einrichtung eines Media-Systems erleichtern. Die beispielsweise für
Multimedia optimierten OpenELEC [9],
Raspbmc [10] oder XBian [11]
basieren auf der freien, multifunktionalen Media-Center-Software XBMC, die
ihre Wurzeln auf der Xbox-Spielkonsole hat und sich selbst als klassisches
Mediacenter versteht. Die Applikation erlaubt Multimedia-Dateien wie Video-,
Bilder- und Audiodateien von DVD, Festplatte, Server oder aus dem Internet
wiederzugeben. Gepaart mit einer Plug-in-Schnittstelle ergibt sie eine
ergiebige Kombination, die kaum Wünsche offen lässt. Gerade diese
Vielseitigkeit ist auch der Grund, die viele Nutzer zu der Anwendung greifen
lässt.
Kombiniert man das Gerät und XBMC mit kleineren elektronischen Spielereien,
sind der Erweiterbarkeit kaum noch Grenzen gesetzt. Dabei bedarf es weder
eines großen Geldbeutels noch besonderer Bauteile. Im folgenden Beispiel
soll gezeigt werden, wozu der Raspberry Pi imstande ist, ohne dass teure
Komponenten eingesetzt werden müssen.
Benötigt werden folgende Komponenten:
Benötigte Komponenten |
Komponente | ca. Preis |
Raspberry Pi | 33 Euro |
Micro USB-Ladegerät 5V | 6 Euro |
SDHC-Speicherkarte | 5 Euro |
LCD-Modul | 4 Euro |
IR-Empfänger | 1 Euro |
Die genannten Preise stellen lediglich Richtwerte dar, die naturgemäß bei
verschiedenen Anbietern abweichen können. Ferner sind in den Angaben die
Lieferkosten nicht enthalten.
Geboten bekommt man schlussendlich eine Multimedia-Zentrale, die imstande
ist, Videos oder Musik von verschiedenen Quellen abzuspielen, Bilder
anzuzeigen oder aber einfach nur das Surfen im Internet, Stöbern auf
Videoseiten oder das
Lesen von E-Mails ermöglicht. Zudem lässt sich die
Lösung mühelos an die eigenen Bedürfnisse anpassen und um weitere Funktionen
erweitern.
Einige Einschränkungen gibt es dennoch. Eine davon ist die Tatsache, dass
auch eine hochgetaktete 1-GHz-CPU nicht in der Lage ist, komplexe Vorgänge
schnell zu berechnen. Aus diesem Grund sind die Anwender beispielsweise bei
der Wiedergabe von Filmen auf eine
Hardwarebeschleunigung angewiesen. Von
Hause aus verarbeitet der BCM2708-Chipsatz allerdings nur das H.264-Format.
Unterstützung für MPEG2 oder VC-1, sofern benötigt, kann direkt bei der
Organisation käuflich erworben werden. Hinzu kommen noch weitere
Limitierungen der Hardware, wie beispielsweise fehlende Bus-Anschlüsse oder
der geringe Speicher.
Bild: Die Steuerung von XBMC kann auch mittels eines mobilen Geräts geschehen – hier ein iPad von Apple.
Linux und XBMC als Schaltzentrale
Es ist wahrlich für einen kundigen Linux-Nutzer kein Problem, den Winzling
zu einer Multimedia-Zentrale umzubauen. Dazu ist in der Regel nur eine
passende Distribution auszuwählen und auf einer SD-Karte zu installieren –
denn booten kann der Raspberry Pi nur von einer solchen Karte. Sowohl das
direkte Booten über das Netzwerk als auch über USB werden nicht unterstützt.
Für den Artikel wurde sich für die freie
OpenELEC-Distribution [9] entschieden. Spezielle Gründe
gab es dafür nicht. Dementsprechend kann die Anleitung auch – Systemkenntnis
vorausgesetzt – mit anderen Distributionen realisiert werden.
Ist das entsprechende
Image [12]
von der Seite des Projektes heruntergeladen, muss es entpackt und mittels
eines Kartenlesers auf einer SD-Karte installiert werden. Ist ein
Kartenleser nicht vorhanden, kann das Image unter Umständen auch direkt aus
einem laufenden Raspberry Pi installiert werden. Die Anleitung selbst geht
allerdings nicht auf diese Möglichkeit ein, sondern setzt die Verfügbarkeit
eines Lesers voraus. Dazu wird das
heruntergeladene Paket entpackt und das
darin enthaltene Skript create_sdcard ausgeführt. Dieses installiert
automatisch die Images und richtet das System für die Nutzung von XBMC ein:
# tar xfvj OpenELEC-RPi.arm-*.tar.bz2
# cd OpenELEC-RPi.arm-*/
# ./create_sdcard /dev/DEVICENAME
Je nach Karte und der Geschwindigkeit des Lesers hat der Anwender binnen
einer Minute ein voll funktionsfähiges und auf dem Raspberry Pi lauffähiges
System, das bereits zur Wiedergabe der Medien genutzt werden kann. Wichtig
ist allerdings, dass das Gerät bereits beim Start über HDMI an einen Monitor
oder Fernseher angeschlossen wurde, denn standardmäßig prüft der Kernel
diese Verbindung beim Start der Distribution. Man kann diese Funktion
allerdings auch abschalten.
Bild: Startseite von XBMC.
Vor dem Start sollten alle Geräte (WLAN-USB-Adapter, Tastatur, Maus)
angesteckt werden. Der Grund: Die Spannung der günstigen Ladegeräte, die als
Raspberry-Pi-kompatibel deklariert werden, bricht manchmal beim Einstöpseln
eines neuen Geräts ein und verursacht nicht selten einen Absturz des
Systems. Sind alle Geräte bereits beim Start angesteckt, tritt das Problem
nicht mehr oder erheblich seltener auf.
Steuerung von XMBC
Allgemeines
Ist das System installiert, kann es wahlweise genutzt oder aber einfach nur
erforscht werden. Neue Quellen fügt man in XBMC recht einfach über das Menü
„Videos -> Dateien -> Videos“ hinzu.
Unter „Suchen“ ein Verzeichnis oder eine Netzwerkquelle auswählen, einen
Namen eingeben und mit „OK“ bestätigen. Danach unter
„Dieser Ordner beinhaltet“ den passenden Typ bestimmen (Musikvideos,
TV-Serien, Filme), einen passenden Scraper auswählen (Default: The Movie
Database bei Filmen) und alternativ unter „Einstellungen“ die Präferenzen
des Scrapers festlegen. Wichtig ist bei dem Schritt die Festlegung des Typs,
denn ohne diesen wird weder eine Mediabibliothek erzeugt noch die Medien um
zahlreiche Informationen ergänzt. Im Übrigen: Auch das Einbinden von
Streaming-Protokollen, wie beispielsweise Universal Plug and Play (UPnP),
verhindert die Erzeugung einer Medienbibliothek.
Wurden die Filmmedien korrekt erkannt, erscheint auf der Startseite
automatisch ein neuer Menüpunkt „Filme“. Steuert man den an, werden
augenblicklich im oberen Teil des Bildschirms die neuesten Titel
eingeblendet. Bei der Auswahl des Menüpunkts gelangt man dagegen zur Liste
aller Titel. Weitere Aktionen erscheinen bei der Betätigung der Taste „C“.
Bild: Das Hinzufügen von neuen Inhalten in XBMC.
Bild: Neueste Videos erscheinen automatisch auf der Startseite.
Bild: Bei korrekt erkannten Videos blendet XBMC weitere Informationen automatisch ein.
Die Anwendung selbst ist weitgehend selbsterklärend, doch vermag sie weitaus
mehr als das, was man in der Oberfläche einstellen kann. Viele Optionen, wie
beispielsweise das Teilen der Datenbank über einen MySQL-Server oder eine
präzise
Festlegung der Kommandos, können nur direkt in den
Konfigurationsdateien eingestellt werden. Interessierten Anwendern sei
deshalb ein Blick auf die Seite des Projektes empfohlen.
Ist das System gestartet und wurde SSH nicht abgeschaltet, ist es möglich,
sich direkt auf das Gerät einzuloggen. Standardmäßig ist dabei der
Nutzer root eingerichtet. Als Passwort dient openelec:
# ssh -l root RPI_DEVICE
Password: openelec
Die Hardware
Die Bedienung eines Media-Centers über eine Tastatur und eine Maus ergibt
nur bedingt Sinn. Eine durchaus übliche Alternative stellt deshalb die
Anschaffung eines USB-Receivers samt einer passenden Fernbedienung dar.
Besitzer von Android oder iOS-Geräten können alternativ auf eine Vielzahl an
Apps setzen, die eine Steuerung (und Verwaltung) von XBMC ermöglichen.
Beide Lösungen haben allerdings diverse Nachteile. So ist die Anschaffung
einer neuen Fernbedienung nicht unbedingt jedermanns Sache. Zudem kostet ein
brauchbarer Controller teils mehr als das Gerät selbst. Einer Smartphone-
oder Pad-Lösung fehlt es dagegen an Haptik und sie reagiert oftmals träge.
Was liegt also näher als bereits auf dem Tisch liegende Fernbedienungen zu
nutzen?
Möglich machen es GPIO und ein handelsüblicher IR-Receiver, wie er bei gut
sortierten Elektronikhändlern für nicht einmal einen Euro erworben werden
kann. Wichtig sind beim Kauf allerdings die Werte des Bauteils. Zwar verfügt
der Raspberry Pi über eine 5-V-Schiene, die direkt von dem Netzteil
abgegriffen wird, doch arbeiten die GPIO-Eingänge des Geräts lediglich mit
3,3 V. Erwirbt man also einen für 5 V und nicht für 3,3 V spezifizierten
Receiver und klemmt diesen an die 5-V-Spannungsversorgung, ohne den Ausgang
danach zu teilen, droht eine permanente Zerstörung des Raspberry Pi!
Redaktioneller Hinweis: Beim Löten und der Beschaltung sollte man sehr präzise arbeiten.
Dazu
zählt auch die Überprüfung aller Lötstellen und Kontakte auf mögliche
Kurzschlüsse und falsche Belegung der Pins. Man sollte sicherstellen, dass
die Umgebung, in der man arbeitet, zu keiner elektrostatischen Entladung
führen kann. Wenn
man am Gerät arbeitet, sollte man es stets ausschalten.
Eine falsche Belegung, Kurzschlüsse oder aber auch elektrostatische
Entladung können den Raspberry Pi unwiderruflich beschädigen! Die fm-Redaktion und der Autor des Artikels übernehmen keine Haftung für mögliche
Schäden, die durch die Befolgung der Anleitung entstanden sind!
Bild: Beschaltung eines IR-Empfängers an einem Raspberry Pi.
Die Pins des IR-Empfängers werden ohne eine Zusatzschaltung direkt an die
GPIO-Pins des Raspberry angeschlossen. Man sollte nicht direkt auf dem
Raspberry Pi löten, sondern geeignete Kabel und Stecker verwenden. Wenn man
keinen passenden Verbinder kaufen will, kann man auch beispielsweise einen
Stecker aus einem alten Rechner verwenden.
Je nach Beschaltung des Empfängers muss man Vs an Pin1 des RPi (Out 3,3 V),
Masse an Pin6 (GRD) und der Ausgang (OUT) an ein GPIO-Pin legen. Die
Beschaltung der Pins stellt allerdings kein allgemeingültiges Szenario dar.
Man sollte deshalb auf jeden Fall das Datenblatt konsultieren und die
Belegung entsprechend den Anschlüssen des Empfängers anpassen. Zudem sollte
man, sofern man andere Hardware einsetzen will, den GPIO 22 nehmen. Der
Grund dafür ist einfach: Die
restlichen Pins an der rechten Seite werden
später noch für eine andere Schaltung benötigt, weshalb sie nicht mit dem
Empfänger blockiert werden sollen.
Von der Softwareseite gesehen sind nun der LIRC-Daemon einzurichten und die
Tasten der Fernbedienung zu konfigurieren. OpenELEC kommt bereits von Haus
aus mit einem eingerichteten LIRC und einem speziellen Kernel-Modul, das für
den Raspberry und dessen GPIOs angepasst wurde. Dazu reicht es, das Modul zu
laden. Danach sollte man alle Anwendungen, die auf die Schnittstelle noch
zugreifen, beenden:
# ssh -l root RPI_DEVICE
# modprobe lirc_rpi gpio_in_pin=22
# kill $(pidof lircd)
# mode2 -d /dev/lirc0
Das Kommando mode2 zeigt alle Signale an, die der Receiver erhalten hat.
Drückt man eine Taste auf der Fernbedienung und sieht keine Ausgabe, während
mode2 ausgeführt wird, ist die Einrichtung des Empfängers gescheitert. In
diesem Fall empfiehlt sich ein Blick in /var/log/messages und die
Überprüfung der Beschaltung des IR-Empfängers. Gibt mode2 dagegen die
Pulsinformationen aus, hat man die Hardwareinstallation überstanden und kann
mit der Konfiguration des Daemons beginnen.
Bild: Eine Steckplatine hilft bei kleineren Tests.
Bild: Fertig gelöteter und gesteckter IR-Empfänger.
LIRC
Bei LIRC (Linux Infrared Remote Control [13])
handelt es sich um einen Daemon, der Befehle von IR-Fernbedienungen in
Programmbefehle umsetzen kann. Um die Signale von Fernbedienungen korrekt zu
dekodieren, wird eine Konfigurationsdatei benötigt, die allerdings auf die
jeweilige Fernbedienung abgestimmt sein muss. Man kann diese entweder selbst
erzeugen oder aus dem Fundus auf der Seite des Projektes herunterladen. In
Anbetracht der recht unkomplizierten Vorgehensweise kann man sich die Suche
aber getrost sparen und diesen Schritt manuell durchführen.
Der erste Schritt der Konfiguration sollte die Ausgabe der verfügbaren
Funktionen sein. Diese Aufgabe erledigt man, indem die Kommandos in eine
Datei umgeleitet werden:
# kill $(pidof lircd)
# irrecord --list-namespace | grep KEY &> lirc_strings.txt
Die Datei lirc_strings.txt dient nun als Referenz für alle verfügbaren
Tasten. Nun geht es an die eigentliche Konfiguration. Wichtig ist dabei,
dass als Namen immer die Strings benutzt werden, die auch in der generierten
Datei enthalten sind. Ferner sollten alle Schritte der Konfiguration von
irrecord eingehalten werden, will man eine korrekte und saubere
Konfiguration erhalten (als komplettes Beispiel: lircd.conf).
# kill $(pidof lircd)
# irrecord -d /dev/lirc0 ~/lircd.conf
Sind alle Tasten der Fernbedienung in der Konfiguration erfasst, kann die
neue Konfiguration mit dem Kommando irw getestet werden:
# kill $(pidof lircd)
# lircd ~/.config/lircd.conf
# irw
Wird nun, während lircd ausgeführt wird, eine zuvor bekannt gegebene
Taste gedrückt, sollte der String eingeblendet werden, den man ihr
zugewiesen hat. Auch hier gilt: Funktioniert dieser Schritt nicht, sollte
die Erstellung der Konfiguration überprüft werden. Eine Fortsetzung der
Konfiguration ergibt keinen Sinn, denn sie wird nicht funktionieren.
XBMC
Nun ist es an der Zeit, die Tastenbelegung auch XBMC bekannt zu geben. Dazu
muss die Konfigurationsdatei Lircmap.xml angepasst bzw. erstellt werden.
Die Struktur der Einträge ist dabei recht einfach und sollte kaum
Verständnisprobleme verursachen. Die zuvor konfigurierte Belegung einer
Taste muss lediglich einer Funktion der Anwendung zugewiesen werden. Wie so
etwas aussieht, illustriert das folgende Listing (als komplettes Beispiel:
Lircmap.xml).
<lircmap>
<remote device="ir_receiver">
<left>KEY_LEFT</left>
<right>KEY_RIGHT</right>
<up>KEY_UP</up>
<down>KEY_DOWN</down>
<select>KEY_OK</select>
<enter>KEY_ENTER</enter>
<menu>KEY_MENU</menu>
<info>KEY_I</info>
<title>KEY_C</title>
<back>KEY_BACK</back>
<play>KEY_PLAY</play>
[...]
Als Vorlage kann man eine bereits unter /usr/share/xbmc liegende
Lircmap.xml verwenden, die man dann an die eigenen Bedürfnisse anpasst.
Wichtig bei diesem Schritt ist neben der korrekten Zuweisung der Tasten aber
auch die korrekte Benennung des Empfängers. Im hier behandelten Fall heißt
das Device ir_receiver, dementsprechend muss auch in der Datei
lircd.conf als Name ir_receiver eingetragen werden. Stimmen die beiden
Namen nicht überein, verwendet XBMC ein falsches Gerät und die Navigation
funktioniert nicht.
Abschluss der Konfiguration
Der letzte Schritt der Konfiguration der Fernbedienung dient der
Komplettierung und dem korrekten Start des LIRC-Daemons. Um das zu
erreichen, erstellt man eine Autostart-Datei, die beim Booten des Systems
ausgeführt und in der LIRC korrekt initialisiert wird:
#!/bin/sh
(modprobe lirc_rpi gpio_in_pin=22; \
while [ ! -e /var/run/lirc/lircd-lirc0 ]; do
sleep 1; \
done
if [ -h /var/run/lirc/lircd ]; \
then logger autostart: lircd socket already linked! ;\
else
logger autostart: linking lircd socket ... ; \
rm /var/run/lirc/lircd; \
ln -s /var/run/lirc/lircd-lirc0 /var/run/lirc/lircd; \
fi)&
Listing: lircd_autostart.sh
Ist dieser Schritt erledigt, kann das Gerät aus- und eingeschaltet werden.
Sollten alle Schritte befolgt worden und keine Fehler aufgetreten sein,
sollte sich nun XBMC mittels der Fernbedienung steuern lassen. Im Falle
eines Fehlers empfiehlt es sich, auf dem Gerät das Kommando irw
auszuführen und zu überprüfen, ob die Eingaben der Fernbedienung korrekt von
LIRC erkannt werden.
LCD-Anzeige
Grundlagen
Die Fokussierung von XBMC auf eine grafische Ausgabe bringt nicht nur
Vorteile, sondern auch einen nicht unerheblichen Nachteil mit sich: Will man
das Gerät lediglich zum Abspielen von Audio-Dateien oder zum Check der
ankommenden E-Mails nutzen, muss stetig ein Fernseher oder Monitor
eingeschaltet sein. Vorbei sind in diesem Fall die Vorteile eines geringen
Stromverbrauchs,
will man doch vielleicht nur MP3-Dateien auf der heimischen
Stereoanlage oder einem Kopfhörer hören.
Dementsprechend liegt der Gedanke recht nahe, die eigentliche Navigation
ebenfalls auf einem anderen Wege stattfinden zu lassen. Neben der eingangs
besprochenen Möglichkeit über ein mobiles Gerät existiert mit der Einbindung
eines LCD-Moduls eine weitere Alternative. Einfach ist sie allerdings nicht,
denn sie bedarf unter anderem diverser Lötarbeit und einer Neukompilierung
diverser Teile von OpenELEC. Der Aufwand lohnt sich aber, denn sie bringt
den Vorteil der Konfigurierbarkeit. So ist es unter anderem ein Leichtes,
nicht benötigte Pakete zu entfernen, eine gewünschte Konfiguration zum
Standard zu wählen oder alternative Anwendungen zu installieren.
Benötigt wird für hierfür ein
handelsüblicher Hitachi HD44780-Schaltkreis – eine De-facto
Industriestandard-Steuereinheit für kleine alphanumerische
Dot-Matrix-LCD-Module und dementsprechend auch günstig in jedem gut
sortierten Elektronikhandel zu haben. Der Schaltkreis übernimmt die
Darstellung der Navigation und kümmert sich um die komplette Ansteuerung
inklusive Erzeugung aller benötigten Signale für das Display. Ob er zwei-,
drei- oder vierzeilig ist, über 16 oder mehr Zeichen verfügt, spielt dabei
keine Rolle, denn angesteuert wird dieser durch das bereits in der
Distribution enthaltene Modul, das lediglich um eine GPIO-Ansteuerung
ergänzt wurde.
Vorbereitung
Wie eingangs beschrieben, erfordert die Erweiterung des HD44780-Treibers
eine Neukompilierung einiger Teile der Distribution. Dazu ist es zu
allererst notwendig, die Distribution im Quellcode herunterzuladen, um sie
schlussendlich samt allen benötigten Werkzeugen für die ARM-Plattform zu
kompilieren. Der eigentliche Vorgang gestaltet sich zwar ziemlich
zeitintensiv und wird unter Umständen etliche Stunden dauern, kompliziert
ist er aber nicht wirklich:
# git clone git://github.com/OpenELEC/OpenELEC.tv.git
# cd OpenELEC.tv/
# git checkout openelec-3.0
# PROJECT=RPi ARCH=arm make
Fehlt es der aktuellen Installation an Werkzeugen, die für die Kompilierung
notwendig sind, bricht der Vorgang ab und unterbreitet dem Anwender einen
Vorschlag über noch zu installierende Tools. Diese können dann entweder
manuell oder aber automatisch heruntergeladen und eingerichtet werden.
Bricht der Vorgang dagegen bei der Kompilierung einer Bibliothek ab, so
könnte das an einem fehlenden Link liegen:
# cd ./build.OpenELEC-RPi.arm-devel/toolchain/
# ln -s lib64/ lib
# cd ../../
Ist der Vorgang abgeschlossen, steht die neue Distribution zur Installation
bereit. Alternativ kann anstatt make auch make release verwendet
werden. In diesem Fall erzeugt das Skript am Ende des Vorgangs eine
Image-Datei, die in der Struktur der regulären Download-Datei entspricht und
genauso installiert werden kann wie das Original.
Doch stellt die Kompilierung einer eigenen Distribution keine Übung dar, die
aus Langeweile durchgeführt wurde. Der Sinn der Aktion soll die Erweiterung
der Funktionalität und der Konfiguration sein. Dementsprechend ist es nun an
der Zeit, sich „lcdproc“ zu widmen, einem System, das wir für die
Ansteuerung des LCD-Moduls einsetzen werden.
lcdproc stellt eine Client/Server-Suite dar und beinhaltet zahlreiche
Treiber für verschiedenartige LCD-Module. Unter anderem unterstützt der
Server Matrix Orbital, Crystal Fontz, Bayrad, LB216, Wirz-SLI und eben auch
den HD44780. Die Standardfunktionalität reicht allerdings nicht aus, um das
Modul direkt über GPIO anzusprechen. Dazu fehlt es dem Treiber an einer
Ansteuerung, die nun per Patch nachgeliefert werden soll.
Zu beachten ist allerdings, dass es sich bei dem Patch nicht um eine
offizielle Erweiterung von lcdproc handelt, sondern lediglich um eine
Anpassung für die hier vorliegenden Zwecke. So kann beispielsweise weder das
Backlight direkt aus der Anwendung gesteuert werden, noch werden die
Eingänge des Moduls überprüft. Sinn ergeben würde es hier sowieso wenig,
denn das Modul arbeitet mit 5 V und ohne eine Spannungsteilung ist es nicht
direkt am Raspberry nutzbar. Zudem braucht man die Eingänge nicht. Für eine
reine Anzeige ist das Modul aber perfekt.
Um den Arbeitsaufwand so gering wie möglich zu halten und nicht jedes Mal
lcdproc patchen zu müssen, bedient man sich einfach der
Patch-Funktionalität von OpenELEC. Dazu reicht es, den Patch
lcdproc-0.5.6-lcd-hd44780-rpi-gpio_0.3.patch in die packets-Struktur
zu kopieren und make auszuführen. Doch keine Sorge – da alle Pakete
bereits kompiliert wurden, dauert dieses Mal die Erstellung des Images nur
einen Bruchteil des früheren Vorgangs:
# cd OpenELEC.tv/
# cp ~/VERZEICHNIS/lcdproc-0.5.6-lcd-hd44780-rpi-gpio_0.3.patch packages/sysutils/lcdproc/patches/
# PROJECT=RPi ARCH=arm ./scripts/clean lcdproc
# PROJECT=RPi ARCH=arm make
Hardware
Den Kern der Anzeige stellt, wie eingangs bereits erläutert, der integrierte
Schaltkreis Hitachi HD44780 dar. Dieser übernimmt die Darstellung von Text
durch ein integriertes Zeichengenerator-ROM und ist auch für die
Ansteuerung, inklusive Erzeugung aller benötigten Signale für das Display,
verantwortlich.
Der ursprüngliche Hitachi wird zwar mittlerweile nicht mehr angeboten, doch
existieren zahlreiche zumeist kompatible Nachbauten, die in jedem gut
sortieren Elektronikhandel oder in größeren Versandhäusern zu einem Preis ab vier
Euro bezogen werden können. Die Anzeigemodule sind in den Konfigurationen
8×1 Zeichen bis hin zu 40×4 Zeichen verfügbar. Welches Modell man nutzt
spielt keine Rolle, denn die Treiber kommen mit allen klar. Auch ist es
zweitrangig, in welcher Farbkombination das Modul ausgeliefert wird.
Das Anzeigemodul selbst ist bereits anschlussfertig für die Verwendung an
GPIO-Pins. Die Anschlüsse sind allerdings nicht normiert, doch halten sich
die meisten Hersteller an eine bestimmte Belegung. Eine Garantie hierfür
existiert aber nicht. Dementsprechend sei jedem Anwender empfohlen,
das Datenblatt vor der Inbetriebnahme zu studieren, um eine mögliche
Falschbeschaltung zu vermeiden.
Beschaltung der meisten HD44780-kompatiblen Module |
Pin Nr. | Symbol | Level | Funktion | RPi Pin | RPi Symbol |
1 | VSS | 0V | Stromversorgung GND | 6 | GND |
2 | VDD | +5.0V | Stromversorgung +5V | 2 | +5V |
3 | V0 | – | Kontrastspannung | 6 | GND |
4 | RS | H/L | H: Data Register (RW); L: Instruction Register | 26 | GPIO 7 |
5 | R/W | H/L | Datenleitung: H: Read; L: Write | 6 | GND |
6 | E | H/L | Signal Enable | 24 | GPIO 8 |
7 | DB0 | H/L | Datenleitung 0 | - | - |
8 | DB1 | H/L | Datenleitung 1 | - | - |
9 | DB2 | H/L | Datenleitung 2 | - | - |
10 | DB3 | H/L | Datenleitung 3 | - | - |
11 | DB4 | H/L | Datenleitung 4 | 22 | GPIO 25 |
12 | DB5 | H/L | Datenleitung 5 | 18 | GPIO 24 |
13 | DB6 | H/L | Datenleitung 6 | 16 | GPIO 23 |
14 | DB7 | H/L | Datenleitung 7 | 12 | GPIO 18 |
15 | LED+ | +5.0V | Hintergrundbeleuchtung + | 2 | +5V |
16 | LED- | 0V | Hintergrundbeleuchtung GND | 6 | GND |
Wie der Beschaltung entnommen werden kann, ist der Pin 5 des LCD-Moduls an
Masse gelegt. Dies stellt sicher, dass der Zustand definiert ist und das
Modul keinesfalls im Read-Modus (High) arbeitet. Wie auch beim Anschluss des
IR-Empfängers würde die Spannung von 5 V, mit der das Modul arbeitet, die
Eingänge des Raspberry Pi überlasten und zur Zerstörung des Eingangs führen.
Die Beschaltung der Pins 7 bis 10 ist hier nicht notwendig, da man
lediglich 4-Bit-Operationen durchführt.
Bild: Beschaltung eines LCD-Moduls an einem Raspberry Pi.
Für das Beispiel wurde der Schaltung noch ein Widerstand hinzugefügt. Dieser
ist prinzipiell
optional und kann durch einen Potentiometer ersetzt werden.
Er reguliert die Spannung für die Hintergrundbeleuchtung. Alternativ können
auch ein Widerstand für den Kontrast und ein Transistor zwischen die Pins 15
und 16 und einem GPIO-Pin geschaltet werden, um die Hintergrundbeleuchtung
komplett abschalten zu können. Um die Schaltung nicht zu verkomplizieren und
auch für Anfänger relativ verständlich zu halten, wurde auf diese Funktion
allerdings verzichtet.
Auch hier sollte man beim Löten sauber arbeiten. Man sollte vor der
Inbetriebnahme die Lötstellen überprüfen und Kurzschlüsse eliminieren. Wenn
man sanft an allen Kabeln zieht, kann man sicherzustellen, dass alle
Verbindungen korrekt verlötet wurden. Wichtig ist, sich beim Löten Zeit zu
lassen und immer mal nachzuschauen, dass man sich bei der Beschaltung nicht
verrechnet hat.
Ist das Modul gelötet, kann seine Funktionsweise getestet werden. Dazu wird
es mit dem Raspberry Pi verbunden und das Gerät eingeschaltet. Sofern es zu
keinem Fehler kommt, sollte die obere Zeile sofort vollständig aufleuchten.
Die untere Zeile sollte dagegen ausgeschaltet sein. Sieht man dieses
Verhalten nicht, ist die Verschaltung wahrscheinlich falsch.
Software
Nun ist es an der Zeit, die neue Anzeige auch in das System einzubinden und
die Ausgaben von XBMC grafisch auf unserem neuen Display darzustellen. Im
Gegensatz zur Einrichtung der Fernbedienung gestaltet sich dieser Schritt
fast schon puristisch. Dazu wird die Standardkonfiguration in ein
beschreibbares Verzeichnis umkopiert und geringfügig angepasst:
# ssh -l root RPI_DEVICE
# cp /etc/LCDd.conf ~/.config/
Die Anpassung der LCDd.conf ist:
[...]
Driver=hd44780
[...]
## Hitachi HD44780 driver ##
[hd44780]
ConnectionType=rpi
Size=16x2
[..]
Wie dem Listing entnommen werden kann, müssen in der Datei nur die Werte für
Driver und in
der Sektion [hd44780] für ConnectionType und Size
angepasst werden. Size stellt die Größe des LCD-Moduls dar. Nutzt man
also ein vierzeiliges Display mit je 20 Zeichen, muss der Wert von Size
auf 20x4 angepasst werden.
Abschließend ist es an der Zeit, das Display auch in XBMC zu aktivieren.
Dies passiert entweder durch die Änderung der Konfigurationsdatei oder durch
eine direkte Wahl unter
„System -> Einstellungen -> System -> Video Hardware -> LCDVFD benutzen“.
Spätestens nach dem nächsten Bootvorgang sollte bereits beim Start der
Distribution eine Meldung auf dem LCD-Modul eingeblendet werden, wonach LCDd
korrekt eingerichtet wurde. Nach dem Start von XBMC sollte man zudem bei der
Navigation den momentan ausgewählten Menüpunkt sehen und bei der Wiedergabe
von Medien diverse Informationen.
Bild: Fertig gelöteter und funktionsfähiger LCD-Schaltkreis, samt einem IR-Empfänger.
Weitere Optimierungen
Fertig?! Fast! Da man die Mühe der Neukompilierung bereits auf sich genommen
hat, empfiehlt es sich abschließend, das System noch etwas zu optimieren.
Möglichkeiten
hierfür gibt es genügend – nicht, weil OpenELEC eine schlechte Distribution
ist, sondern weil – wie alle Distributionen – auch OpenELEC auf einen
vielfältigen Einsatz optimiert wurde und ein breites Spektrum abdecken will.
So versuchen die Ersteller alle möglichen Kombinationen, sowohl was die
Hardware, als auch was die Software betrifft, in die Standardinstallation
zu implementieren.
Dabei wird wohl kaum ein Anwender all die Funktionen des Produktes
einsetzen. Nutzt man beispielsweise kein WLAN, empfiehlt es sich, die
Komponente komplett zu entfernen. Dasselbe gilt für Bluetooth, Samba, NFS
oder nicht benötigte Dateisysteme oder Anwendungen. Je kleiner der Kernel
und das Systemimage, desto besser. Entfernte Funktionalität bedeutet nicht
nur weniger unnötige Anwendungen, sondern auch eine geringere Größe und
damit einen schnelleren Systemstart und weniger benötigte Systemressourcen.
Dementsprechend empfiehlt es sich, den Kernel anzupassen und alles, was
nicht benötigt wird, zu entfernen oder wenigstens als Modul zu kompilieren.
Am einfachsten erledigt man den Schritt, indem die
OpenELEC-Konfigurationsdatei in ein separates Kernelverzeichnis umkopiert,
Funktionen entfernt, die neue Konfiguration wieder abspeichert und die
Distribution gebaut wird:
# cd OpenELEC.tv
# cd build.OpenELEC-RPi.arm-devel/linux-3.6.11/
# cp ../../projects/RPi/linux/linux.arm.conf .config
# make menuconfig
[...]
# cp .config ../../projects/RPi/linux/linux.arm.conf
# cd ../../
# PROJECT=RPi ARCH=arm ./scripts/clean linux
Eine weitere Optimierungsmöglichkeit stellt die Erhöhung der
Arbeitsgeschwindigkeit (Overclocking) des Systems dar. Was sich auf den
ersten Blick nach einem Suizidvorhaben anhört, ist in der Wirklichkeit
weitaus problemloser. So erlaubt beispielsweise der Hersteller bereits seit
geraumer Zeit das Übertakten des Systems, ohne dass ein Garantieverlust
auftritt. Damit kann der Prozessor des Raspberry Pi mit bis zu 1 GHz laufen.
Die mögliche Taktrate ist allerdings von Platine zu Platine unterschiedlich,
so die damalige Ankündigung. Dementsprechend sollten Anwender die
Übertaktung behutsam durchführen und bei Problemen wieder die
Originalgeschwindigkeit herstellen. Auch sollten Taktraten oberhalb 1 GHz
nicht benutzt werden, will man keinen Garantieverlust riskieren.
Nicht empfehlenswert ist zudem die Abschaltung der dynamischen
Taktermittlung („force_turbo“) oder die Erhöhung der Limits. Der Hersteller
speichert nämlich „gefährliche“ Kombinationen mittels eines „Sticky Bits“
permanent in der CPU und wird mit großer Wahrscheinlichkeit im Falle eines
Fehlers einen Garantieantrag verweigern. Der Status des Bits kann direkt
mittels
# cat /proc/cpuinfo
abgefragt werden. Interessant ist hier die Spalte Revision. Während sie
beispielsweise bei einem regulären Gerät 0004 anzeigt, wird sie bei einem
mit Sticky Bit markierten Gerät 1000004 betragen.
Nun geht es an ein behutsames Übertakten der CPU. Dies geschieht, indem die
neuen Taktzahlen der CPU beim Booten bekannt gegeben werden. Sie stehen in
der Datei config.txt, die entweder auf der Boot-Partition der SD-Karte
oder unterhalb
OpenELEC.tv/packages/tools/bcm2835-bootloader/files/3rdparty/bootloader/
gefunden werden kann.
Hier müssen nun die Werte für arm_freq,
core_freq, sdram_freq und over_voltage angepasst werden. Die
eigentlichen Werte können der folgenden Tabelle entnommen werden:
Frequenzwerte der Rpi-CPU |
Art der Übertaktung | arm_freq | core_freq | sdram_freq | over_voltage |
Keine | 700 | 250 | 400 | 0 |
Leichte | 800 | 300 | 400 | 0 |
Mittel | 900 | 333 | 450 | 2 |
Hoch | 950 | 450 | 450 | 6 |
Turbo | 1000 | 500 | 500 | 6 |
Sollte sich die Taktrate als zu hoch erweisen, kann bei erneutem Hochfahren
der Wert verändert werden, denn die eingetragenen Werte sind nicht
permanent. Entfernt man also die neuen Zeilen, springt die Taktrate auf die
Standardwerte zurück.
Eine Ausnahme bildet hier lediglich, wie eingangs
beschrieben, das permanent gesetzte Sticky Bit, das dem Hersteller über
eine unsachgemäße Übertaktung Auskunft gibt.
Ob die neuen Werte auch tatsächlich gesetzt wurden und mit welcher Frequenz
der Raspberry Pi gerade arbeitet, kann mit den folgenden Kommandos abgefragt
werden:
# vcgencmd get_config arm_freq
# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
Abschließend
Wie in jedem Projekt stellen auch die hier aufgezeigten Möglichkeiten nur
einen Bruchteil des Machbaren dar. Die Hardware des Raspberry
Pi ermöglicht
viele interessante Lösungen, die von reiner Spielerei bis hin zu wirklich
nützlichen Funktionen reichen. Gepaart mit der Möglichkeit, alle Aspekte der
Distribution zu verändern, ergeben sich recht schnell weitere Wünsche oder
Ideen, die implementiert werden können. Speicherung der Datei in einer
externen Datenbank? Videorekorder für Fernsehprogramme? Zentrales
Multimediasystem fürs ganze Haus? Ambilight? Die Grenzen des Machbaren sind
recht weit gesteckt und ihre Auslotung war selten so kostengünstig wie im
Falle des Raspberry Pi.
Links
[1] http://www.raspberrypi.org/
[2] http://www.pro-linux.de/artikel/2/1624/
[3] http://www.pro-linux.de/news/1/19787/raspberry-pi-kameramodul-verfuegbar.html
[4] http://www.pro-linux.de/news/1/17019/raspberry-pi-minirechner-fuer-25-usd.html
[5] http://www.arm.com/products/processors/classic/arm11/index.php
[6] http://www.raspberrypi.org/about
[7] http://www.raspbian.org/
[8] http://www.raspberrypi.org/downloads
[9] http://openelec.tv/
[10] http://www.raspbmc.com/
[11] http://xbian.org/
[12] http://openelec.tv/get-openelec/download/viewcategory/10-raspberry-pi-builds
[13] https://de.wikipedia.org/wiki/LIRC
Autoreninformation |
Mirko Lindner (Webseite)
befasst sich seit 1990 mit Unix. Seit 1998 ist er aktiv in die Entwicklung des
Kernels eingebunden. Unter anderem ist er der Maintainer der Kernel-Treiber
sky2, sk98lin, skri, skge und skfp. Daneben ist er einer der Betreiber von
Pro-Linux.de.
|
Diesen Artikel kommentieren
Zum Index
von Jochen Schnelle
Der Raspberry Pi [1] (oder kurz
einfach Pi) erfreut sich als preiswerter Mini-PC durchaus einer gewissen
Popularität, jedenfalls mehr als viele andere Computer. Von daher ist es
sicherlich nicht verwunderlich, dass auch Literatur zum Minirechner
erscheint, wie das vorliegende Buch „Raspberry Pi – Einstieg und User
Guide“, das einen Einblick in verschiedenen Facetten der Nutzung des Pi
gibt.
Redaktioneller Hinweis: Wir danken dem mitp-Verlag für die Bereitstellung eines Rezensionsexemplares.
Einer der beiden Autoren des Buchs ist Eben Upton, seines Zeichens
Hauptinitiator und Chefentwickler des Rasbperry Pi und auch Vorstand der
„Raspberry Pi Foundation“ [2]. Hier sollte
also profundes Wissen rund um den Minirechner vorhanden sein. Der Mitautor,
Gareth Halfacree, hat ebenfalls Schreiberfahrung, ist bei anderen
Open-Hardware-Projekten aktiv und bietet somit eine gute Ergänzung zu Upton.
Thematisches
Das vorliegende Buch möchte in die Nutzung des Raspberry Pi einführen. Die
Hauptthemenblöcke sind dabei die Inbetriebnahme und Anwendungsmöglichkeiten,
Administration des (Linux-)Systems, erste Schritte in der Programmierung
sowie eine Einführung in Hardwareerweiterungen, welche an den Pi
angeschlossen werden können. Also ein durchaus weites Feld, das das
Autorenduo angeht.
Eine längere Einleitung
Das Buch beginnt – bevor es an den eigentlichen Inhalt geht – mit einer
recht langen Einleitung über elf Seiten. Hier wird beschrieben, warum es
heute überhaupt einen Raspberry Pi gibt und mit welcher Motivation der
Computer entwickelt wurde. Des Weiteren erhält der Leser hier einen kleinen
Einblick in die recht bewegte Entwicklungsgeschichte des Pi.
Schon beim Lesen der Einleitung spürt man den Enthusiasmus der
Autoren zum Raspberry Pi und deren Motivation, mit Hilfe des Pi, den Leser
zum kreativen Umgang mit dem Rechner – sei es über Programmierung oder durch
Hardwarebasteleien – zu motivieren.
Der Inhalt
Wie bereits weiter oben erwähnt ist das Buch in mehrere Hauptthemenblöcke
unterteilt. Begonnen wird mit einer Vorstellung der Hardware, wobei der
Schwerpunkt auf den Anschlussmöglichkeiten liegt – Video, Audio, USB,
SD-Karte und Netzwerk.
Die folgenden ca. 80 Seiten befassen sich dann mit der Systemadministration.
Auch hier wird „ganz vorne“ begonnen, also mit dem Herunterladen eines
Linux-Images, dem Kopieren auf eine SD-Speicherkarte und dem ersten Booten.
Als Betriebssystem wird durchweg Raspian [3], also
das für den Pi angepasste Debian Linux, verwendet. Alternativen werden aber
auch im Verlauf des Buches immer wieder erwähnt. Weiterhin findet man in
diesem Abschnitt einige grundlegende (Linux-)Befehle zur
Systemadministration. Den Abschluss des Themenblocks bildet eine recht
ausführliche Übersicht über die Konfiguration des Rechners.
Der folgende, ca. 30 Seiten umfassende Themenblock bringt dem Leser näher,
wie man den Raspbery Pi als Mediacenter nutzen kann, wie man Office-Arbeiten
erledigt und wie man den Rechner als Webserver nutzt, z. B. zum Betreiben
eines Blogs.
Programmierung und Hardwarebasteleien
Das restliche Buch beschäftigt sich mit der kreativen Nutzung des Raspberry
Pi durch Programmierung und Hardwarebasteleien. Der Programmierteil ist
dabei wiederum zweigeteilt: Als erstes beschreiben die Autoren die visuelle
Programmierung mittels
Scratch [4],
dann folgt ein Abschnitt zur Programmierung in Python, der „offiziellen“
Programmiersprache des Pi.
Der Python-Teil besteht dabei – neben einer kurzen Einführung in Python –
aus zwei sehr konkreten Beispielen, nämlich dem Programmieren eines Clones
des Spiel-Klassikers „Snake“ [5] sowie der
Erstellung eines kleinen Programms für IRC-Chats. Alle zugehörigen Listings
sind dabei vollständig im Buch zu finden.
Der Hardware-Teil beginnt mit einer grundlegenden Einführung in das Basteln
von eigenen Hardwareerweiterungen. Erklärt wird dabei unter anderem, wie man
Steck- und Lochrasterplatinen richtig bestückt, wie man anhand der farbigen
Ringe Widerstände klassifiziert und wie man richtig lötet.
Danach werden zwei einfache, aber grundlegende Schaltungen erstellt, die
über die GPIO-Pins (GPIO = Generel Purpose Input/Output) angesteuert und
über Python kontrolliert werden. Den Abschluss des Buches bildet eine
Übersicht über verschiedene, leistungsfähigere Erweiterungsboards für den
Raspberry Pi.
Schreibstil
Die Autoren pflegen einen lockeren, sehr gut lesbaren Schreibstil. Auch wenn
der Inhalt durchaus kompakt dargestellt wird, ist immer die nötige Tiefe
(und der nötige Umfang) vorhanden, um das Gezeigte dem Leser verständlich
näher zu bringen.
Nicht umfassend, aber sehr gut
Aufgrund der Vielfältigkeit der Themen und des Umfangs des Buches von 288
Seiten ist schon klar, dass keines der Themen umfassend abgehandelt werden
kann. Aber dies ist auch gar nicht das Ziel des Buches. Die Autoren
begleiten den Leser auf den ersten Schritten zu den verschiedenen Themen und
bringen ihm die notwendigen Grundlagen näher, wobei stets ein sehr konkreter
Bezug zur Praxis besteht. Gleichzeitig motivieren sie den Leser, das
Gelernte anzuwenden und selbstständig zu vertiefen. Tipps, Hinweise und
weiterführende Links sind an diversen Stellen im Buch vorhanden.
Fazit
Das Buch „Raspberry Pi – Einstieg und User Guide“ bietet einen sehr guten
Einstieg in die Welt des Raspberry Pi. Auch Einsteiger ohne Vorkenntnisse
können mit Hilfe des Buches die praxisnahe Nutzung des Pi erlernen. Wer
einen Raspberry Pi besitzt (oder plant, einen anzuschaffen), und noch keine
weiterführenden Kenntnisse in der Linux-Systemadministration bzw.
Programmierung mit Python oder Hardwarebasteleien hat, dem kann das Buch
durchweg empfohlen werden.
Redaktioneller Hinweis: Da es schade wäre, wenn das Buch bei Jochen Schnelle verstaubt, wird es verlost. Die Gewinnfrage lautet:
Wofür steht das „Pi“ im Namen des Raspberry Pi?
Die Antworten können bis zum 9. Juni 2013, 23:59 Uhr über die
Kommentarfunktion unterhalb des Artikels oder per E-Mail an
geschickt werden. Die Kommentare werden aber bis
zum Ende der Verlosung nicht freigeschaltet. Das Buch wird dann unter allen
Einsendern, die die Frage richtig beantworten konnten, verlost.
Buchinformationen |
Titel | Raspberry Pi – Einstieg und User Guide [6] |
Autor | Eben Upton, Gareth Halfacree |
Verlag | mitp-Verlag, 2013 |
Umfang | 288 Seiten |
ISBN | 978-3826695223 |
Preis | 19,95 €
|
Links
[1] https://de.wikipedia.org/wiki/Raspberry_Pi
[2] http://www.raspberrypi.org/about
[3] http://www.raspbian.org/
[4] https://de.wikipedia.org/wiki/Scratch_(Programmiersprache)
[5] https://de.wikipedia.org/wiki/Snake
[6] http://www.it-fachportal.de/shop/buch/Raspberry Pi/detail.html,b188743
Autoreninformation |
Jochen Schnelle (Webseite)
besitzt selber einen Raspberry Pi, denn er als Miniserver und für andere „Spielereien“ nutzt.
|
Diesen Artikel kommentieren
Zum Index
von Jochen Schnelle
Das deutschsprachige Buch „Python 3 – Lernen und professionell anwenden“
möchte einen praktischen Einstieg in die Programmiersprache Python in der
Version 3, mit einem Fokus auf objektorientierter Programmierung, bieten. Des
Weiteren eignet es sich – laut Klappentext – auch als (begleitendes) Buch
für die Lehre.
Redaktioneller Hinweis: Wir danken dem mitp-Verlag für die Bereitstellung eines Rezensionsexemplares.
Im Buch wird Python in der Version 3.3 behandelt, dies ist die – zumindest
zum aktuellen Zeitpunkt (April 2013) – aktuellste Python-Version der
3er-Serie. Von daher ist das Buch voll auf der Höhe der Zeit.
Der Inhalt
erstreckt sich dabei über ca. 760 Seiten, gefolgt von ca. 30 Seiten Anhängen
mit Referenzen, Zeichentabelle usw. Es handelt es sich also, zumindest vom
Seitenumfang her, um ein umfangreiches Werk.
Inhaltliches
Das Buch beinhaltet insgesamt 27 Kapitel. Das erste, zehnseitige Kapitel ist
erst einmal „Python-frei“ und führt allgemein in die Programmierung ein.
Danach folgen zwei Kapitel über 22 Seiten, welche die Installation und die
ersten Schritte inkl. der Nutzung der Python-Shell
IDLE [1] erklären.
Die folgenden sechs Kapitel befassen sich dann mit den Grundlagen der
Programmiersprache: Datentypen, Funktionen und Ein-/Ausgabeoperation. Ab dem
zehnten Kapitel geht es dann um Klassen, Objektorientierung und
objektorientiertem Modellieren. Dieser Teil ist mit rund 80 Seiten recht
umfangreich und detailliert.
Es folgt ein kurzes Kapitel zu Systemfunktionen, bevor der nächste große
Themenblock kommt: graphische Benutzeroberflächen.
Graphische Oberflächen
Dieses Thema erstreckt sich über fünf Kapitel, insgesamt ca. 120 Seiten,
und ist thematisch damit der größte Block des Buchs. Behandelt wird alles,
von den ersten Schritten bis hin zu komplexeren Layouts. Als Basis dient das
Grafik-Toolkit Tkinter [2], welches in
Python standardmäßig enthalten ist.
Es folgen dann Kapitel zu den Themen Threads, Debugging, CGI- und
Internetprogrammierung, Datenbankanbindung (an SQLite), XML sowie „Testen
und Tuning“.
Beispiele und Übungen
Das Buch geizt nicht mit Beispielen. Zu allem Gezeigtem gibt es
vollständige Listings, welche den Inhalt unterstützen. Alle Listings sind
komplett abgedruckt, somit eignet sich das Buch auch ohne Weiteres als
„Offline-Lektüre“. Alle Quelltexte und Beispiele sind auch auf der dem Buch
beiliegenden CD enthalten.
Des Weiteren gibt es nach jedem Kapitel diverse, unterschiedlich komplexe,
Übungsaufgaben, welche der Autor dem Leser stellt. Die Lösungen inklusive
der Listings und Erklärungen sind im Anschluss daran zu finden, sodass die
eigene Lösung direkt überprüft werden kann.
Licht!
Da sich das Buch (auch) an Programmieranfänger wendet, ist es natürlich wichtig, dass die Grundlagen gut und verständlich erklärt werden. Hier liegt eine der echten Stärken des Buchs. Egal, ob es sich um die Grundlagen der Programmierung, Objektorientierung oder auch XML handelt – zu jedem Thema gelingt es dem Autor Michael Wiegend sehr gut, das notwendige Wissen gut verständlich und kompakt zu vermitteln.
Damit wird auch der Anspruch des Buches unterstrichen, für die Lehre geeignet zu sein.
… und Schatten?
Wo Licht ist, ist bekanntlich auch Schatten. An einigen Stellen merkt man
dem Buch an, dass die ursprüngliche 1. Auflage schon vor längerer Zeit
erschienen ist. So wird z. B. im Kapitel zur Internetprogrammierung noch von
Netscape Navigator gesprochen, Chrome oder Safari werden gar nicht erwähnt –
dies spiegelt nicht wirklich den aktuellen Stand der Dinge wider.
Beim Thema Internet und serverseitiger Programmierung fällt weiterhin auf,
dass das Buch „nur“ auf CGI-Programmierung eingeht. Der seit mehreren Jahren
weithin eingesetzt Python-Standard
WSGI [3] wird an keiner Stelle im
Buch erwähnt.
Ein weiterer, etwas schwerwiegenderer Mangel ist, dass der de-facto Standard
zum Stil von Python-Code namens
PEP8 [4] ebenfalls nicht einmal
ansatzweise erwähnt wird.
Umfassend?
Alle im Buch verwendeten Python-Datentypen, -Module und -Funktionen werden –
wo immer nötig – hinreichend detailliert erklärt. Allerdings ist das Buch
keine umfassende Referenz für Python – viele Module, welche in der
Standardinstallation enthalten sind, werden im Buch nicht behandelt. Wobei
dies auch nicht das erklärte Ziel des Buchs ist.
Für wen?
Für wen ist das Buch nun geeignet? In erster Linie wohl in der Tat für
Kompletteinsteiger in die Programmierung. Zum einem eignet sich Python als
Programmiersprache dafür sehr gut, zum anderen kommen hier die Stärken des
Buchs, nämlich die Erklärung der Grundlagen, voll zu Geltung. Aufgrund
dessen und der Vielzahl der enthaltenen Übungen und Beispiele kann das Buch
auch durchaus als Empfehlung als begleitende Literatur für Lehrveranstaltung
gesehen werden.
Wer jedoch bereits Erfahrung in der objektorientierten Programmierung hat und einen Überblick oder Einstieg in Python sucht, dem kann „Python 3 – Lernen und professionell anwenden“ nur sehr bedingt empfohlen werden, da nur Teile des gesamten Funktionsumfangs von Python dargestellt werden. Hier eignen sich z. B. eher die (englischsprachigen) Bücher „The Python Standard Library by Example“ (Rezension in freiesMagazin 9/2011 [5]) oder auch „Python – Essential Reference“ (Rezension in freiesMagazin [6]).
Redaktioneller Hinweis: Da es schade wäre, wenn das Buch bei Jochen Schnelle verstaubt,
wird es verlost. Die (diesmal zwei) Gewinnfragen lauten:
- In welchem Jahr wurde die erste Python-3-Version (Python 3.0)
offiziell veröffentlicht?
- Gehört die Schlange „Python“ zu den Gift- oder den Würgeschlangen?
Die Antworten können bis zum 9. Juni 2013, 23:59 Uhr über die
Kommentarfunktion unterhalb des Artikels oder per E-Mail an
geschickt werden.
Die Kommentare werden aber bis zum Ende der Verlosung nicht freigeschaltet.
Das Buch wird anschließend unter den
Einsendern, die beide Fragen richtig beantworten konnten, verlost.
Buchinformationen |
Titel | Python 3 – Lernen und professionell anwenden [7] |
Autor | Michael Weigend |
Verlag | mitp-Verlag, 2013 |
Umfang | 808 Seiten |
ISBN | 978-3826694561 |
Preis | 39,95 €
|
Links
[1] http://docs.python.org/3.3/library/idle.html
[2] http://wiki.python.org/moin/TkInter
[3] http://www.python.org/dev/peps/pep-0333/
[4] http://www.python.org/dev/peps/pep-0008/
[5] http://www.freiesmagazin.de/freiesMagazin-2011-09
[6] http://www.freiesmagazin.de/freiesMagazin-2010-09
[7] http://www.it-fachportal.de/shop/buch/Python 3/detail.html,b140035
Autoreninformation |
Jochen Schnelle (Webseite)
programmiert seit rund fünf Jahren selber diverse Projekte in Python, wobei
er selber – noch – Python 2.7 einsetzt.
|
Diesen Artikel kommentieren
Zum Index
von Dirk Deimeke
Autor Johannes Hubertz hat sich mit dem Buch „Netzwerk mit Schutzmassnahmen“
eine grosse Aufgabe gesetzt. Im Untertitel heißt es „LAN – IPv4 – IPv6 –
Firewall – VPN“. Diese Themen auf rund 170 Seiten umfassend zu erläutern,
ist nicht möglich und wird auch gar nicht erst versucht.
Redaktioneller Hinweis: Wir danken Johannes Hubertz für die Bereitstellung eines Rezensionsexemplares.
Einleitung
Im Klappentext werden die folgenden Fragen gestellt:
- Wie funktioniert Netzwerk?
- Wie kann die Zuverlässigkeit im eigenen Netzwerk gesteigert werden?
- Welche flankierenden Maßnahmen unterstützen das Management als auch die
Tagesarbeit und steigern so den Unternehmenserfolg?
Die Wichtigkeit eines funktionierenden Netzwerks im Unternehmen mit
Anbindung an das Internet steht heute außer Frage. Netzwerk ist ein
Infrastrukturdienst, der notwendig ist, um darauf aufsetzend das eigene
Geschäft zu betreiben.
Inhalt
Johannes Hubertz versucht mit dem Buch, Antworten und Anregungen zu geben,
was dann auch gleich die Zielrichtung, die das Buch hat, erklärt. Es erhebt
nicht den Anspruch, ein Lehrbuch zu sein. Es ist vielmehr eine
Materialsammlung zum Thema Netzwerk.
Zitat des Autors: „Die Inhalte des Kapitels über Netzwerk entstanden in oft
wiederholten Schulungen, […] nötig für das Verständnis der nachfolgenden
Kapitel. Diese entstanden zunächst als einzelne Schriften, die über die
Jahre, […] anlässlich von Konferenzen als „Paper“ eingereicht und angenommen
wurden.“
Wenn man diese Aussage im Hinterkopf hat, findet man in dem Buch nützliche
Informationen. So gibt es beispielsweise kurze Ausflüge, die das
ISO/OSI-Modell [1], das sich als
Standard für Netzkommunikation etabliert hat, beleuchten. Kurz wird auch auf
Protokolle wie TCP/IP und die Formate der Datenpakete eingegangen. Spätere
Abschnitte behandeln VLANs, Bridges, Switches und das Adress Resolution
Protokoll bevor es zu Themen wie IPv4 und Routing, analog dazu dann IPv6 und
Routing kommt. Diese Grundlagen füllen in etwa das halbe Buch.
Leider wird in einigen Fällen zu sehr in die Tiefe gegangen und in anderen
wiederum nicht tief genug. Insgesamt geht es auf und ab. Manche Dinge
(Zahlsysteme) werden bis ins Kleinste erklärt. An anderem Stellen werden
viel Wissen und die Kenntnis vieler Abkürzungen vorausgesetzt. Manchmal ist
die Reihenfolge sehr unglücklich gewählt. So werden beispielsweise
Netzwerk-Geräte deutlich nach ihrer ersten Nennung erläutert, das gilt
leider auch für verwendete Abkürzungen und Abbildungen.
Dass die Informationen durch Blättern gefunden werden können – das
Abkürzungsverzeichnis ist sehr hilfreich – tröstet, stört jedoch sehr den
Lesefluss. Hier hätte eine bessere Strukturierung und eventuell die eine
oder andere Fußnote großen Nutzen gebracht.
Die Beispiele hätten ausführlicher und auch konsistenter sein können. Mal
wird eine Konfigurationsdatei gezeigt und ein anderes Mal die interaktive
Konfiguration. Wenn man das unter dem Motto „man muss das mal gesehen haben“
versteht, dann passt das gut. Wenn aber eine Lösung eines bestimmten
Problems für ein bestimmtes Gerät oder Betriebssystem gesucht wird, dann
findet man nicht immer das Richtige.
Auf der anderen Seite finden sich in dem auf das Netzwerkkapitel folgenden
Kapitel gute Einstiegspunkte für das Thema „Schutzmaßnahmen“ und das in den
drei Ausprägungen der Sicherheit: Betriebssicherheit, Vertraulichkeit und
Datenintegrität.
Im Kapitel „simple security policy editor“ wird rückblickend über eine
mögliche Implementierung
einer Security Policy referiert. Dazu wird eine
Aufgabe aus der Praxis des Autoren genommen und anhand dieser die
Vorgehensweise erläutert. Interessant ist es, die gemachten Erfahrungen zu
sehen und die Stolpersteine, sowie die Methoden, mit denen sie bewältigt
wurden.
Das Buch schließt ab mit einem kurzen Kapitel über virtuelle private Netze
(VPNs) und über IPv6-Paketfilter.
Fazit
Man merkt dem Buch leider an, dass es aus verschiedenen Quellen gespeist
wurde. Die Themen für sich genommen und als Vortrag oder als Lehrstunde
dargebracht, sind in jedem Fall sinnvoll, vor allem, wenn die Möglichkeit
besteht, Rückfragen zu stellen. Die Artikel im Buch haben unterschiedliche
Qualität und das ist den unterschiedlichen Zielgruppen geschuldet, für die
die Artikel ursprünglich geschrieben wurden.
Wenn man einen Einstieg in Netzwerkthemen sucht und sich gezielt ein Kapitel
herausnimmt, bekommt man gute Informationen. Wenn man aber ein Lehrbuch zum
Thema Netzwerk sucht, so sind 170 Seiten zu wenig Platz, um die Themen
umfassend zu behandeln.
Redaktioneller Hinweis: Da es schade wäre, wenn das Buch bei Dirk Deimeke verstaubt,
wird es verlost. Die Gewinnfrage lautet:
Welches Verfahren hat die Trennung des verfügbaren IPv4-Adressraumes
nach Class A-, B-, C- und D- Netzen abgelöst?
Die Antworten können bis zum 9. Juni 2013, 23:59 Uhr über die
Kommentarfunktion unterhalb des Artikels oder per E-Mail an
geschickt werden. Die Kommentare werden aber bis
zum Ende der Verlosung nicht freigeschaltet. Das Buch wird dann unter allen
Einsendern, die die Frage richtig beantworten konnten, verlost.
Buchinformationen |
Titel | Netzwerk mit Schutzmaßnahmen [2] |
Autor | Johannes Hubertz |
Verlag | Lehmanns Media, 2013 |
Umfang | 174 Seiten |
ISBN | 978-3-86541-502-8 |
Preis | 19,95 €
|
Links
[1] https://de.wikipedia.org/wiki/OSI-Modell
[2] http://www.lehmanns.de/shop/mathematik-informatik/25932860-9783865415028-netzwerk-mit-schutzmassnahmen
Autoreninformation |
Dirk Deimeke (Webseite)
beschäftigt sich seit 1996 aktiv mit Linux und arbeitet seit einigen Jahren
als Systemadministrator und System Engineer für Linux und Unix.
|
Diesen Artikel kommentieren
Zum Index
Für Leserbriefe steht unsere E-Mailadresse
zur Verfügung - wir freuen uns über Lob,
Kritik und Anregungen zum Magazin.
An dieser Stelle möchten wir alle Leser ausdrücklich ermuntern,
uns auch zu schreiben, was nicht so gut gefällt. Wir bekommen
sehr viel Lob (was uns natürlich freut), aber vor allem durch
Kritik und neue Ideen können wir uns verbessern.
Leserbriefe und Anmerkungen
Desktop Publishing unter Linux
->
Ohne diesen Artikel hätte ich es niemals geschafft, eine Werbeanzeige für
meine App selbst zu erzeugen. Der Artikel deckt exakt das ab, was man dazu
braucht. Selbst der Hinweis, für Grafiken mit Transparenz auf convert
auszuweichen, war in meinem Fall notwendig und hilfreich. Vielen Dank für
diesen Artikel!
Axel Müller (Kommentar)
openSUSE 12.3
->
Vielen Dank für den aufschlussreichen Beitrag. Da ich openSUSE 12.3 in der
GNOME-Version schon vor dem Lesen des Beitrages getestet habe, möchte ich
noch ergänzend etwas hinzufügen.
Punkt 1:
Im Prinzip funktioniert das System, aber die \boot-Partition
wird bei automatischer Partitionierung zu klein erstellt,
wie auch woanders zu schon lesen ist. Der Effekt ist, dass nach einem
Kernel-Update – oder dem Versuch – der neue Kernel nicht mehr reinpasst. Beim
ersten Mal klappte es noch, aber beim zweiten Kernel musste ich das Update
abbrechen. Das Update geht wieder, wenn man vorher von Hand den ältesten
Kernel entfernt. Sinnvoll wäre hier wie bei Fedora ein rollendes System zu
verwenden, wo automatisch nur drei Kernel-Versionen gehalten werden und der
älteste jeweils entfernt wird, wenn ein neuer installiert wird.
Punkt 2:
Im Beitrag wird erwähnt, dass KWin versucht, eine virtuelle Umgebung zu
erkennen und dann OpenGL mit Compiz startet. Hier bin ich nicht in die Tiefe
gegangen und möchte nur mitteilen, dass bei einer 64-Bit-Installation im
VMware-Player 5.0.2 openSUSE-12.3-GNOME unendlich träge reagiert. Ein
umfangreicher Test ist so sinnlos. Der Host war ein Dual-Core 2,6GHz mit 1
CPU und 1,5GB RAM zugeteilt pro Gast.
Merkwürdig, dass openSUSE bei jeder Version irgendeinen Bug hat, der
verhindert, dass das System ein Kandidat für den Windows-Ersatz wird.
Olaf G. (Kommentar)
PDF-Ansicht in Firefox
->
Vielleicht könnt Ihr es einfach mit einem anderen PDF-Generator versuchen.
PDF ist nicht gleich PDF, da gibt es viel Wildwuchs und Dutzende
Implementierungen. Vielleicht gibt es seitens Mozilla auch eine
Kompatibilitätsliste mit bereits geprüften PDF-Generatoren. Ich kenne diese
Problematik aus dem Umfeld von Suchmaschinen, wo es auch immer wieder
Probleme bei der korrekten Extraktion von PDF-Dokumenten gibt.
Gast (Kommentar)
<-
Es handelt sich um pdflatex (als Teil einer LaTeX-Distribution), also
etwas, was es schon länger gibt als Firefox. ;) Eine Alternative hierzu
gibt es nicht.
Das Problem mit den Schriften liegt tatsächlich bei Firefox. Das Problem
mit den Bildern eigentlich auch, wahrscheinlich kommt der Betrachter in
Firefox nicht damit zurecht, dass es sich bei den Bildern um PDFs mit
Transparenz handelt.
Dominik Wagenführ
Reverse VNC
->
Vielen Dank für den super interessanten Artikel! […]
Leider hat es bei mir an mehreren
Stellen gestockt.
Erstes Problem war, dass DynDNS [1] für die
Meisten keine kostenlosen Accounts mehr anbietet. Es gibt aber genügend
Alternativen wie z. B. NoIP [2] oder
FreeDNS [3] und für D-Link-Kunden
gibt es noch kostenlose Dynamic-DNS-Accounts [4].
Dann habe ich trotz zahlreicher Versuche keine SSH-Verbindung zu
meiner externen IP-Adresse aufbauen können. Ich musste leider
feststellen, dass mein Router trotz entsprechender Optionen in der
Einrichtungsoberfläche keine Port-Weiterleitung und kein DynDNS
unterstützt.
Als Workaround habe ich meinen Computer über WLAN direkt mit dem
DSL-Modem verbunden. Das ist sicherlich nicht die beste Lösung und ich
sollte in diesem Fall über eine Firewall auf meinen Computer
nachdenken. Dazu habe ich mich von einem ubuntuforums-Thread [5]
inspirieren lassen:
# pppoeconf
# mv /etc/ppp/peers/dsl-provider /etc/ppp/peers/helfer-dsl
Nach einem Neustart startete der Networkmanager nicht mehr. Abhilfe
schaffte in der Datei /etc/network/interfaces alles außer diese
zwei Zeilen zu löschen:
auto lo
iface lo inet loopback
[Vorher sollte man eine Sicherheitskopie der Datei machen.]
Für das Aktualisieren der IP bei DynDNS benutze ich das Tool inadyn […]
Auf dem Helfer-PC nutze ich nun dieses Skript um auf eine eingehende
Verbindung zu warten:
#!/bin/bash
# Starten der direkten
# Verbindung mit DSL-Modem
pon helfer-dsl
sleep 5
# Update der IP
inadyn -u user -p pw -a helfer.dyndns.org --iterations 1
vncviewer -listen
# Beenden der Verbindung
function finish {
poff helfer-dsl
}
trap finish EXIT
Listing: vnc_via_modem.sh
Tom Richter
<-
Vielen Dank für die ausführliche Rückmeldung!
DynDNS hat in der Tat seinen
kostenlosen Dienst erst eingeschränkt und nun mehr oder weniger unbrauchbar
gemacht [6].
Es gibt aber eine lange Liste mit
Dynamic-DNS-Anbietern [7], die
als Alternative herhalten können. Ein paar hattest Du ja schon genannt.
Daneben hatte mir jemand empfohlen, dass wenn die Verbindung über den VNC-Viewer
zu langsam ist, die Übertragung der Daten über
$ vncviewer -listen -compresslevel 8 -quality 4 -encodings "tight hextile" -nocursorshape -x11cursor
einzuschränken. Damit sollte dann auch die Übertragung etwas besser
klappen.
Dominik Wagenführ
Links
[1] http://dyn.com/dns/
[2] http://www.noip.com/
[3] https://freedns.afraid.org/
[4] https://www.dlinkddns.com/
[5] http://ubuntuforums.org/showthread.php?t=1561579
[6] http://www.heise.de/newsticker/meldung/Dyn-schraenkt-kostenlose-DynDNS-Accounts-weiter-ein-1863537.html
[7] http://dnslookup.me/dynamic-dns/
Die Redaktion behält sich vor, Leserbriefe gegebenenfalls zu
kürzen. Redaktionelle Ergänzungen finden sich in eckigen Klammern.
Die Leserbriefe kommentieren
Zum Index
(Alle Angaben ohne Gewähr!)
Sie kennen eine Linux-Messe, welche noch nicht auf der Liste zu
finden ist? Dann schreiben Sie eine E-Mail mit den Informationen zu
Datum und Ort an .
Zum Index
freiesMagazin erscheint am ersten Sonntag eines Monats. Die Juli-Ausgabe
wird voraussichtlich am 7. Juli u. a. mit folgenden Themen veröffentlicht:
- Rezension: Computer-Netzwerke: Grundlagen, Funktionsweise, Anwendung
- Rezension: Einstieg in PHP 5.5 und MySQL 5.6
Es kann leider vorkommen, dass wir aus internen Gründen angekündigte Artikel verschieben müssen. Wir bitten dafür um Verständnis.
Zum Index
An einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten
Bedeutung. Diese sind hier zusammengefasst:
$: | Shell-Prompt |
#: | Prompt einer Root-Shell – Ubuntu-Nutzer können
hier auch einfach in einer normalen Shell ein
sudo vor die Befehle setzen. |
~: | Abkürzung für das eigene Benutzerverzeichnis
/home/BENUTZERNAME |
Zum Index
freiesMagazin erscheint als PDF, EPUB und HTML einmal monatlich.
Erscheinungsdatum: 2. Juni 2013
Erstelldatum: 9. Juni 2013
Dieses Magazin wurde mit LaTeX erstellt. Mit vollem Namen
gekennzeichnete Beiträge geben nicht notwendigerweise die Meinung
der Redaktion wieder. Wenn Sie freiesMagazin ausdrucken möchten, dann
denken Sie bitte an die Umwelt und drucken Sie nur im Notfall. Die
Bäume werden es Ihnen danken. ;-)
Soweit nicht anders angegeben, stehen alle Artikel, Beiträge und Bilder in
freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 3.0 Unported. Das Copyright liegt
beim jeweiligen Autor. freiesMagazin unterliegt als Gesamtwerk ebenso
der Creative-Commons-Lizenz CC-BY-SA 3.0 Unported mit Ausnahme der
Inhalte, die unter einer anderen Lizenz hierin veröffentlicht
werden. Das Copyright liegt bei Dominik Wagenführ. Es wird erlaubt,
das Werk/die Werke unter den Bestimmungen der Creative-Commons-Lizenz
zu kopieren, zu verteilen und/oder zu modifizieren.
Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 2.5 Generic. Das Copyright liegt
bei Randall Munroe.
Zum Index
File translated from
TEX
by
TTH,
version 3.89.
On 10 Jun 2013, 16:48.