Seit kurzer Zeit bin ich stolzer Besitzer eines Raspberry Pi. Als ganz besondere Idee ist mir als Ruderer in den Sinn gekommen, den Raspberry Pi als günstigen Bootshaus-PC einzusetzen. Für Rudervereine gibt es die tolle Software efa2 (Elektronisches Fahrtenbuch 2) von Nicolas Michael. Da es sich um eine Java-Anwendung handelt, lässt sie sich leicht einrichten. Für € 34,- erhält man also einen günstigen Fahrtenbuch-Computer.
Artikelstruktur
00) Vorraussetzungen
Man benötigt für dieses Tutorial:
- Einen Raspberry Pi.
- Eine SD-Karte als Datenspeicher mit mindestens 2GiB Kapazität.
- Eine Tastatur, optional eine Maus.
- Einen USB-Stromadapter mit mindestens einem Ampere (1000mA) Ausgangsstrom.
Etwa den Belkin USB Netzadapter Duo für iPod und iPhone.
- Wenigstens zur Installation einen Internetanschluss.
- Einen Monitor, per HDMI ansteuerbar (oder mittels HDMI auf DVI-Adapter angesteuert).
- Einen Ruderclub, der efa benutzt oder benutzen will.
01) Raspbian installieren
Für dieses Tutorial gehe ich davon aus, dass Raspbian bereits auf einer SD-Karte installiert ist. Zwei Gigabinärbyte (2 GiB) genügen hier völlig. Dazu gibt es eine englische Anleitung für die Erstinstallation auf elinux.org. Alle folgenden Befehle werden direkt auf dem gestarteten Raspberry Pi ausgeführt.
02) Grundkonfiguration von Raspbian
Ab hier wird es spannend: Raspbian bringt ein Tool namens Raspbi-Config mit. Hier gehe ich einige Schritte durch.
expand rootfs
Gute Idee, wenn die SD-Karte größer als 2 GiB ist. Dadurch wird die Partition auf die gesamte SD-Karte verteilt.
configure_keyboard
Hier kann man ein deutsches Tastaturlayout einstellen. Das ist sehr empfohlen, um auch anderen Benutzern später die Benutzung zu vereinfachen. Damit wird auch in efa2 später die Eingabe von Umlauten etc. ermöglicht.
- Generic 105-key (Intl) PC
- Other
- German
- German (Sund dead keys)
- Alt-Gr: Tastatur-Standard
- Compose-Key: No Compose Key
- Control-Alt-Backspace to terminate the X-Server: No
Mit der letzten Option werden tote Tasten aktiviert. Damit kann man Zeichen wie ~, ^ und ` zu weiteren Buchstaben kombinieren, etwa ñ, â, è. Das ist bei unserem Ruderclub nützlich, da wir französische Gäste haben.
change_pass
Wir erstellen später noch weitere Benutzerkonten für jeden Admin. Zunächst stellen wir sicher, dass sich niemand mit dem Standard-User “pi” einloggen kann. Denkt euch einfach ein schönes, schweres Passwort aus, welches keiner erraten kann. Das Passwort wird beim Eintippen nicht angezeigt.
change_locale
Damit andere Anwendungen Deutsche Textausgaben haben, kann hier noch folgendes gewählt werden:
- de_DE.UTF-8 UTF-8
- Default locale: de_DE.UTF-8
Der folgende Generierungsvorgang dauert etwas und kann durchaus ein paar Minuten dauern. Damit sind die meisten Ausgaben in Deutscher Sprache zu sehen.
change_timezone
Damit die Zeit korrekt abgespeichert und angezeigt wird (Linux benutzt hier ein ausgefeiltes System mit Zeitzonen und Sommerzeit-Angaben), wird hier noch der Standort angegeben.
- Europe
- Berlin
Hinweis: Da der Raspberry Pi keine Echtzeituhr (RTC) besitzt, sollte er entweder nicht ausgeschaltet werden, beim Starten eine Netzwerkverbindung zur Verfügung stellen, oder man gibt beim Startvorgang die aktuelle Uhrzeit manuell an.
boot_behavior
Da wir später unseren eigenen Desktop installieren, stellen wir hier die Option auf »No«.
Nun wählen wir »Finish« und »Reboot now«, damit die Änderungen aktiv werden.
03) User anlegen
Damit wir nicht immer als Benutzer »pi« arbeiten müssen, legen wir uns noch weitere Benutzer an. Ohne diesen Schritt wäre der Raspberry Pi nicht sauber gegen »Angriffe von innen« abgesichert, da efa sonst mit zu vielen Berechtigungen ausgeführt werden würde.
Persönliche Benutzer
Für jeden menschlichen Admin legen wir einen Benutzer an. Das geht mit folgenden Eingaben:
Hierbei werden »Vorname Nachname« natürlich gegen den echten Namen, und »LOGIN« gegen den gewünschten neuen Benutzernamen ausgetauscht.
Damit der Benutzer auch admin-Befehle (mittels SUDO) absetzen darf, fügen wir ihn noch der Gruppe »sudo« hinzu. Es muss sich also wirklich um eine vertrauenswürdige Person handeln – hiermit erlangt der angelegte Benutzer tiefgreifenden Zugriff auf das System, und kann Daten manipulieren oder das System (softwaretechnisch) zerstören.
Wobei wir hier natürlich wieder »LOGIN« gegen den soeben vergebenen Benutzernamen austauschen.
Damit der Benutzer das Passwort festlegen kann, geben wir folgenden Befehl ein:
Technischen Benutzer für efa2 anlegen
Damit die Software efa2 ausgeführt werden kann, braucht es natürlich auch einen Benutzer. Aus einfachen Gründen nenne ich ihn einfach »efa«. Er wird Systembenutzer, kriegt kein Passwort (um sich nicht selbst einloggen zu können) und dementsprechend wenig Rechte im System.
Die grundlegendsten Vorraussetzungen sind geschaffen, um nun mit der Software fortzufahren.
04) Software installieren und ersetzen
Installation der Software
Da wir nur ein Programm – nämlich efa2 – starten, brauchen wir keinen vollen LXDE-Desktop. Wir entfernen ihn und installieren dafür fluxbox als Fenstermanager. Außerdem installieren wir weitere, optionale Software, die der Systemadministration dienen. Die Software ist für den ARM-Prozessor des Raspberry Pi vorkompiliert, so dass die folgenden Befehle die fertige Software nur herunterlädt und direkt installiert.
Damit installieren wir:
- aptitude, der von mir gegenüber apt-get favorisierte Paketmanager (optional)
- vim, ein mächtiger – aber komplizierter – Editor (bevorzuge ich gegenüber nano/pico, auch optional)
- htop, ein verbessertes top, auf ncurses2 basierend
- openjdk-7-jre, die Java-Runtime – ohne die läuft efa2 nicht.
- fluxbox, ein sehr leichtgewichtiger Fenstermanager, der für efa2 mehr als ausreicht
- xterm, ein schwacher, aber passabler Ersatz für das LX-Terminal.
- rungetty, ein minimales Konsolen-TTY, welcher alle Prozesse laufen lassen kann
Entfernen nicht benötigter Software
Die ganzen anderen Desktop-, Session- und Fenstermanager können wir nun entfernen, da wir fluxbox nutzen wollen. Es sind eine ganze Menge Pakete, die mit diesem folgenden Befehl entfernt werden können. Tipp: Mit der <TAB>-Taste erhält man eine Wortvervollständigung (im Fachjargon: Bash-Completion).
Damit ist die Installation nun fast abgeschlossen.
05) efa2 installieren
efa-Grundsoftware
Nun soll efa2 lauffähig werden. Dafür wird es als efa-User installiert. Hintergrund ist, dass ein »Angreifer« (oder ein Schüler eines Schulruderkurses) keinen Zugriff auf das System erhalten soll. Daher verwenden wir dieses zuvor unprivilegiert angelegte Benutzerkonto. Das klappt mit folgenden Befehlen:
cd # ins home-Verzeichnis wechseln
mkdir bin; cd bin # Hier hin wird efa installiert
wget http://efa.nmichael.de/download/efa203.zip # das Archiv laden
mkdir efa; cd efa # Ein Unterverzeichnis für efa2 anlegen
unzip ../efa203.zip # efa hier entpacken
Damit efa2 auch automatisch gestartet wird, wenn der Benutzer angemeldet wird, werden nun einige weitere Dateien bearbeitet. An dieser stelle sollte man einmal mit startx das fluxbox starten, ein paar Einstellungen (etwa Style) vornehmen, und wieder beenden. Damit geht man sicher, dass der im folgenden benutze Ordner ~/.fluxbox/ auch initialisiert wurde.
Grundkonfiguration des Users
Datei ~/.bash_profile
Hier wird sichergestellt, dass eine grafische Oberfläche bei der Anmeldung gestartet wird und beim Beenden dieser der Benutzer abgemeldet wird.
Datei ~/.fluxbox/startup
Irgendwo vor exec fluxbox folgendes einfügen und bitte nicht das »&« vergessen:
Außerdem bearbeitet man noch die Datei ~/.fluxbox/init:
Damit setzt man die Toolbar am Bildschirmrand auf unsichtbar. Das ist praktisch, da User so nicht auf andere Arbeitsflächen gelangen können oder sonstigen Schabernack treiben.
Für die Datenspeicherung von efa kann man nun noch ein Verzeichnis anlegen, ich habe es etwa gerne im Unterverzeichnis .efa2 (dort ist es versteckt):
Der letzte Schritt ist aber optional. Die Einstellungen können in jedes andere Verzeichnis gespeichert werden.
Autologin über inittab vorbereiten
Als nächstes bearbeiten wir die Datei /etc/inittab mit root-Rechten (Standard-User des Raspberry Pi, sudo). Etwa mit dem Befehl [user@rpi:~]$ sudo vim /etc/inittab.
Der Defaultrunlevel wird in Zeile 5 ausgetauscht:
Nun brauchen wir nicht so viele Konsolen, und auf der letzten soll der User efa sich automatisch anmelden. Durch die .bash_profile wird automatisch X11 gestartet, und durch die Fluxbox-Init automatisch efa. Ab Zeile ~54 sollte folgendes stehen:
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6
7:5:respawn:/sbin/rungetty --autologin efa tty7
Damit ist der autologin auf dem Raspberry Pi eingerichtet.
06) Fertig
Der Raspberry Pi als Rudercomputer ist nun soweit fertig. efa2 lässt sich nun wie gewohnt benutzen. Beim ersten Start erscheint dabei der Einrichtungsdialog von efa2. Natürlich sollte man danach noch den Vollbildmodus aktivieren, sowie das Beenden durch “normale” User deaktivieren. Die fertige Anwendung sieht nun wie folgt aus:
07) Optionale Schritte
Alles im folgenden Abschnitt ist optional, also kein Muss. Es ist aber für ein Bootshaus durchaus praktisches dabei. Wichtig sind aber durchaus weitere Absicherungen – schließlich möchte man nicht, dass findige Schüler aus dem hiesigen Ruderkurs das System verändern.
Hintergrund setzen
Das Tool feh sollte noch installiert sein, da es standardmäßig bei Raspbian dabei ist und in diesem Tutorial nicht entfernt wurde. Damit sind alle Vorraussetzungen gegeben, einen Hintergrund zu benutzen. Grundsätzlich lassen sich auch andere Tools zum Setzen des Hintergrundbildes verwenden – der Einfachheit halber gehe ich in dieser Anleitung nicht auf andere Tools ein.
Wir bearbeiten die Datei ~/.fluxbox/overlay und fügen folgende Zeilen hinzu:
background.pixmap: ~/wallpaper.jpg
… wobei natürlich der Pfad in der zweiten Zeile wieder angepasst werden muss. Das Bild ist natürlich nur während des Startvorgangs sichtbar und sieht etwa so aus:
Übrigens: Auf diesem Bild sieht man im Hintergrund unsere kleine Bootshalle vom Ruderclub Stadthagen (RCS). Das Blid ist eine HDR-Aufnahme und wirkt daher besonders »interessant«. Da der Raspberry Pi problemlos FullHD-Videos darstellen kann, sind an dieser Stelle hochauflösende Bilder ebenfalls kein Problem.
Anwendungsmenü anpassen
Wer das Beenden von efa erlaubt und die Anwendung in das Anwendungsmenü von Fluxbox aufnehmen möchte, kann das über das Anpassen der Datei ~/.fluxbox/menu erledigen:
[submenu] (Anwendungen) {}
[exec] (efa Bootshaus) {~/bin/efa/efaBths.sh} <~/bin/efa/doc/efa2.png>
[end]
Eine genaue Anleitung zum Aufbau dieser Einträge findet sich in der Fluxbox-Wiki unter dem Englischen Titel Editing the Menu. Die Einträge sind sehr einheitlich aufgebaut.
Tastaturkürzel anpassen
In Fluxbox existieren etliche Tastaturkürzel, die ein »Angreifer« bzw. ein Schüler aus dem Ruderkurs ausprobieren könnte. Diese können in der Datei ~/.fluxbox/keys angepasst bzw. deaktiviert werden. Es empfliehlt sich, hier entsprechende Tastaturbefehle für den »Notfall« zu hinterlassen – allerdings ist das auch wieder ein Risiko. Da mit Strg+Alt+F1 auf ein Terminal gewechselt werden kann, rate ich zur Deaktivierung der meisten Tastaturkürzel.
Auch für dieses Thema finden sich weitere Informationen in der Wiki, hier auch auf Detusch.
Schreibrechte enziehen
Falls es doch jemand schaffen sollte, ein Terminal mit dem efa-User zu ergattern, sollte er möglichst wenig anstellen können. Dazu bietet es sich an, die Fluxbox-Konfiguration nur lesbar zu setzen. Als User root führt man dazu etwa aus:
chmod -R o+r ~efa/.fluxbox
Außerdem bleibt es dem erfahrenen Linux-Benutzer überlassen, efa2 in ein seperates Verzeichnis innerhalb von /opt zu installieren und dort ebenfalls sämtliche Schreibrechte zu entziehen.
Raspberry Pi physisch absichern
Eine gute Idee ist es sicherlich, den Ein-Platinen-Computer gegen Witterungen oder physischen Zugriff zu schützen. Dazu sollte er in ein Gehäuse verbaut werden, und die SD-Karte, Tastatur bzw. andere Peripherie sollte nicht zu entfernen sein. Ein Beispiel dazu hat der Berliner Ruderclub mit einem vollwertigen PC.
Für den Raspberry Pi sind solche komplizierten Lösungen nicht notwendig. Es genügt ein kleines Gehäuse, welches irgendwo verschraubt wird. Bastelanleitungen finden sich dazu im Internet. Bei durchgehendem Betrieb sollte allerdings auf ausreichende Lüftung geachtet werden, da auch der Prozessor eines 800MHz-Chips im Betrieb warm wird!
08) Alternativen
Wer bereits über einen vollwertigen PC im Bootshaus verfügt, kann auf efaLive setzen. Nachteil ist hier der wesentlich höhere Stromverbrauch im Betrieb, sowie die höheren Anschaffungskosten. Allerdings kann der PC ausgeschaltet werden, ohne dass er seine Uhrzeit verliert. Eigentlich ist dieser Artikel und die Idee des Raspberry Pi als Machbarkeitsstudie gedacht – freie Software macht es möglich!
Nachtrag: Fotos aus dem Bootshaus
Freundlicherweise hat Simon vom Verein Rheinbrüder Karlsruhe e.V. mir Fotos seines Bootshaus-PCs auf Basis meiner Raspberry Pi-Anleitung zur Verfügung gestellt. Diese möchte ich allen Lesern natürlich nicht vorenthalten. Einen Dank geht hier an Simon, dass ich sie in diesem Artikel nutzen darf!
- Frontansicht des Bootshaus-PCs.
- Die Tastatur, Kabelkanal und Box
- Die Box, offen.
Weblinks
- Raspberry Pi-Projekt
http://www.raspberrypi.org/ - efa2-Projekt
http://efa.nmichael.de/ - efaLive – Alternative für vollwertige PCs
http://efa.nmichael.de/efalive.html.de - Ruderclub Stadthagen (RCS)
http://www.rc-stadthagen.de/ - Ankündigung von efa2 auf rudern.de vom 04. März 2012
http://www.rudern.de/nachricht/news/2012/03/04/efa-und-efalive-version-20-veroeffentlicht/ - Über-, bzw. Untertakten des Raspberry Pi
http://fusionstrike.com/2012/overclock-raspberry-pi-cpu-850mhz-ram-500mhz













9 Kommentare
2 Pings
Zum Kommentar-Formular springen ↓
schurri
11. September 2012 von 16:24 (UTC 1) Link zu diesem Kommentar
Das ist eine ausführliche Anleitung, die es leicht macht, den Raspberry Pi im Bootshaus einzusetzen. Danke!
Ein Problem ist sicherlich die Uhrzeit, die für das Fahrtenbuch notwendig ist. Entweder man holt sich diese online oder wartet, bis die angekündigte Erweiterung mit einer Echtzeituhr verfügbar ist.
Ben
11. September 2012 von 19:35 (UTC 1) Link zu diesem Kommentar
Hi!
Mit der Uhr hast du allerdings recht. Ich habe zwei Lösungen dafür in Petto:
1.) Man gibt per sudo den Befehl für ein grafisches Uhrenwerkzeug frei und startet es bei der Anmeldung
2.) Man bestellt sich hier ein RTC-Addon: CJE Micro: 4D RTC. Kostet allerdings £10.00 extra, womit der Preisvorteil des günstigen Pi dann bald verschwunden ist – sieht man vom Stromverbrauch und Formfaktor ab.
Christian
17. September 2012 von 16:33 (UTC 1) Link zu diesem Kommentar
Schönes Tutorial – allein die Line um den ganzen GUI-Kram zu entfernen ist einen Link hier her wert
Uli
21. Januar 2013 von 20:09 (UTC 1) Link zu diesem Kommentar
Hallo,
sehr shönes Tutorial. Für den nichtversierten Linuxanwender, wie ich einer bin, kommt der Frust aber dann, wenn man alles abgearbeitet hat und vor der Grundkonfiguration des Users steht. Genaugenommen ab: ~/.fluxbox/
Wie komme ich denn überhaupt an die abzuarbeitenden Dateien ran? War mir nicht klar. Vorher alles perfekt nachbaubar, da DAU-Erklärungen, aber ab da war Ende. Schade, mir blieb dann nur noch abzuschalten, nach dem Neustart
pi@raspberrry tilde $.
Besteht die Möglichkeit von da an die noch zu bearbeiteten Dateien zu kommen?
Gruß
Uli
Benjamin Marwell
29. Januar 2013 von 11:15 (UTC 1) Link zu diesem Kommentar
Hallo Uli,
ich habe im efa2-Forum eine Antwort geschrieben, da die hier den Rahmen sprengen würde:
http://forum.nmichael.de/viewtopic.php?p=2062#p2062
Ich hoffe das hilft dir weiter, und ich bitte die späte Antwort zu entschuldigen. Kleinere Fragen versuche ich sofort und hier im Blog zu beantworten.
Johannes
22. Mai 2013 von 23:05 (UTC 1) Link zu diesem Kommentar
Benjamin,
Danke für das schöne Tutorial.
Hier ein paar Anmerkungen, die mir beim Durcharbeiten aufgefallen sind:
1. Statt
session.screen0.toolbar.visible = false
sollte es sein:
session.screen0.toolbar.visible: false
2. Statt
bin/efa/efaBths.sh &
sollte es sein
~/bin/efa/efaBths.sh &
(macht es etwas klarer…)
3. Nicht ganz klar – Ort und Nutzen – ist:
mkdir .efa2
4. ” soll der User efa2″
-> ” soll der User efa”
5. Erwähnt werden sollte, dass ab
“Als nächstes bearbeiten wir die Datei /etc/inittab”
wieder mit dem user pi gearbeitet werden muss (mit sudo).
Viele Grüße aus Koblenz
Johannes
Benjamin Marwell
23. Mai 2013 von 07:13 (UTC 1) Link zu diesem Kommentar
Ist korrigiert, danke für das aufmerksame lesen!
Johannes
22. Mai 2013 von 23:17 (UTC 1) Link zu diesem Kommentar
Benjamin,
noch eine Frage: Hast Du eine Idee, wie man ein automatisches Backup realisieren kann? Eine Lösung mit crontab, und wahrscheinlich dem Sichern des ordners efa2?
Ich denke das ist wichtig – ich hatte schon ein paar Mal den Effekt, dass durch einfaches Ausschalten ohne Herunterfahren die SD-Karte des RP später nicht mehr booten wollte.
Gruß
Johannes
Benjamin Marwell
23. Mai 2013 von 07:26 (UTC 1) Link zu diesem Kommentar
Das Boot-Probleme kenne ich so eigentlich nicht, und das sollte auch nicht passieren. Vielleicht hast du eine ältere Firmware? Versuch die doch mal zu aktualisieren (sudo rpi-update).
Die Crontab (oder anacron) würde ich auf jeden Fall nutzen. Nur wie, ist die Frage. Backup-Strategien gibt es viele. Für Back in Time habe ich eine Anleitung parat (http://blog.bmarwell.de/backup-mit-back-in-time/), aber nur für die GUI-Version. Für einen efa-Pi würde ich vielleicht stattdessen mit dirvish arbeiten – ein guter Artikel ist (mal wieder) in der Ubuntuusers-Wiki zu finden: http://wiki.ubuntuusers.de/dirvish. Das liefert auch gleich einen täglichen Cronjob für 22:04 Uhr mit.
HTH,
Ben
Rapsberry Pi: Torrent-Client headless installieren - Bens IT-Kommentare
13. Januar 2013 von 07:49 (UTC 1) Link zu diesem Kommentar
[...] wie man den Raspberry Pi nutzen kann. Über eine Idee hatte ich bereits geschrieben: Den Raspberry Pi mit der Software efa2 (Elektronisches Fahrtenbuch) als Bootshaus-PC verwenden. Der Artikel stieß auf größeres Echo als viele andere Artikel. Heute geht es also mit [...]
Raspberry Pi: Torrent-Client headless installieren - Bens IT-Kommentare
13. Januar 2013 von 11:49 (UTC 1) Link zu diesem Kommentar
[...] wie man den Raspberry Pi nutzen kann. Über eine Idee hatte ich bereits geschrieben: Den Raspberry Pi mit der Software efa2 (Elektronisches Fahrtenbuch) als Bootshaus-PC verwenden. Der Artikel stieß auf größeres Echo als viele andere Artikel. Heute geht es also mit [...]