Wer mit einem Raspbian-Image einen Raspberry Pi frisch einrichtet, muss in Zukunft einen weiteren Schritt beachten, sofern der Pi headless betrieben werden soll, also ohne Monitor, Tastatur und Maus. In den aktuellen Raspbian-Images vom 25. November ist der SSH-Zugang nämlich standardmäßig abgeschaltet - aus Sicherheitsgründen. Er lässt sich jedoch bereits vor dem ersten Booten wieder aktivieren. Hierzu muss in der FAT-formatierten Boot-Partition der SD-Karte eine Datei unter dem Namen "ssh" abgelegt werden, der Inhalt ist hierbei egal. Erkennt Raspbian diese Datei beim Hochfahren, wird der SSH-Zugang wieder aktiviert. Des Weiteren erhält man nach dem Login nun die Aufforderung, das Standard-Passwort des Pi-Nutzers zu ändern.
Bestehende Images, welche über die Paketverwaltung aktualisiert werden, sind von dieser Änderung natürlich nicht betroffen, hier wird die bestehende Konfiguration nicht angetastet. Meiner Meinung nach ist dies eine unnötige, aber bei der momentan vorherrschenden Panik vor unsicheren IOT-Geräten nicht wirklich überraschende Vorsichtsmaßnahme. Trotzdem trifft es hier die völlig falsche Nutzergemeinschaft. Wer ein Linux-System einzurichten weiß, sollte doch eigentlich auch mindestens das Ändern etwaiger Standardpasswörter auf seiner Roadmap haben? Aber vermutlich glaube ich da nur zu sehr an den Verstand, den in Wirklichkeit - Smart-Wahnsinn sei Dank - viele nicht (mehr) haben oder ihn nicht einsetzen. Ach was red' ich...
Diese Anleitung zeigt, wie man einen Raspberry Pi zu einem sprechenden Desktop-System auf Basis von Raspbian Jessie und Mate aufrüstet. Der Mate-Desktop ist ein Fork des ehemaligen GNOME 2, und bietet in Sachen Geschwindigkeit und Zugänglichkeit derzeit den besten Kompromiss auf einem Raspberry Pi. Die folgenden Schritte orientieren sich stark an der englischen Anleitung auf Raspberryvi.org, sollen jedoch etwas kompakter verfasst sein, um unnötige Verwirrung zu minimieren. Grundkenntnisse im Bedienen eines Linux-Systems setze ich hier einfach mal voraus. :)
Vorbereitung
Damit der Raspberry Pi reibungslos per Sprachausgabe genutzt werden kann, wird eine USB-Soundkarte benötigt. Dies hat den Hintergrund, dass der Alsa-Treiber für den Soundchip des Pi nicht korrekt arbeitet, und in Zusammenarbeit mit der Sprachausgabe nur stotterndes Audio produziert oder sogar das System zum Absturz bringt. Als Soundkarte tut es in der Regel schon ein preisgünstiger USB-Dongle.
Des Weiteren wird die aktuellste Raspbian-Version benötigt, welche als Image in zwei Ausführungen von der offiziellen Download-Seite heruntergeladen werden kann. Am sinnvollsten ist die Nutzung des Lite-Images, da dieses ohne unnötigen Ballast auskommt, und dem Nutzer von Anfang an sämtliche Freiheiten beim Einrichten lässt. Via SSH-Zugriff kann Raspbian nach Belieben eingerichtet werden (Passwörter, Lokalisierung etc).
USB-Soundkarte einrichten
In der Regel sollten USB-Soundkarten bereits vom System erkannt werden, sobald sie eingesteckt wurden. Damit die USB-Soundkarte als Standardwiedergabe genutzt wird, editiert man die Datei /lib/modprobe.d/aliases.conf und sucht folgende Zeile:
options snd-usb-audio index=-2
Indem man dieser Zeile ein Kommentarzeichen "#" voranstellt, wird die USB-Soundkarte als "Device 0" eingerichtet, somit also als Standardsoundkarte.
Optional: Um die Ausgabe über HDMI und Audio-Ausgang des Pi komplett zu deaktivieren, kann in der Datei /boot/config.txt folgende Zeile auskommentiert werden:
dtparam=audio=on
Den Mate-Desktop installieren
Bevor die Desktop-Umgebung installiert wird, sollte man sich darüber im Klaren sein, dass der Raspberry Pi niemals einen vollwertigen Desktop-Rechner oder ein Notebook ersetzen kann. Selbst die Leistung des Raspi 3 gerät bei aufwändigen Anwendungen schnell mal an ihre Grenzen, frühere Pi-Versionen habe ich mit diesem Setup bislang nicht getestet. Man sollte also statt des kompletten Desktops lieber zunächst einen minimalen Desktop installieren, und hinterher entscheiden, welche Zusatzsoftware man tatsächlich benötigt. Folgende Pakete installieren die grundlegenden Mate-Komponenten sowie den Orca-Screenreader:
sudo apt update && sudo apt install mate-core mate-desktop-environment lightdm gnome-orca
Dieser Vorgang kann einige Stunden in Anspruch nehmen, je nach Geschwindigkeit der SDHC-Karte.
Accessibility-Switches
Die folgenden Befehle sorgen dafür, dass nach erfolgreicher Mate-Installation der Raspberry Pi beim nächsten Hochfahren sofort mit uns spricht:
dbus-launch gsettings set org.mate.interface accessibility true
dbus-launch gsettings set org.gnome.desktop.a11y.applications screen-reader-enabled true
Diese Befehle werden ohne sudo ausgeführt, um die Einstellungen für den angemeldeten Benutzer zu aktivieren. Um zu prüfen, ob alles geklappt hat, führt man Folgendes aus:
gsettings get org.mate.interface accessibility
gsettings get org.gnome.desktop.a11y.applications screen-reader-enabled
Beide Befehle sollten "true" als Rückmeldung ausgeben.
LightDM konfigurieren
LightDM ist der Display-Manager und ermöglicht die grafische Anmeldung am Desktop. Die Zugänglichkeitsoptionen müssen hier jedoch von Hand in die Konfigurationsdatei eingetragen werden. Hierzu editiert man die Datei /etc/lightdm/lightdm.conf und ändert die Zeile:
#greeter-wrapper=
Orca für die Anmeldung aktivieren:
greeter-wrapper=/usr/bin/orca-dm-wrapper
Weiterhin empfielt der Originaltext, den Benutzer "lightdm" der Audio-Gruppe hinzuzufügen, was nach meinen Erfahrungen jedoch unnötig ist. Wer es dennoch tun möchte:
sudo usermod -a -G audio lightdm
Vor dem Neustart
Wurden alle Änderungen gespeichert, ist der sprechende Raspberry Pi fertig eingerichtet. Im englischen Artikel wird noch der Speakup-Screenreader installiert, um auch auf der Shell außerhalb des Desktops mit Sprachunterstützung arbeiten zu können. Hierfür müsste allerdings Mate so konfiguriert werden, dass statt Pulseaudio auf Alsa zurückgegriffen wird, da Pulseaudio Speakup sonst blockiert, sobald man sich am Desktop angemeldet hat. Daher gehe ich auf diesen Abschnitt hier nicht ein. Das Mate-Terminal ist problemlos mittels Orca nutzbar. Für den direkten Shell-Zugriff kann entweder die übliche SSH-Verbindung oder BRLTTY genutzt werden, sofern man Besitzer einer Braillezeile ist.
Soll der Pi sofort in den Desktop booten, muss im Tool Raspi-Config noch in den Boot-Optionen die entsprechende Auswahl getroffen werden. Hier lässt sich auch einstellen, dass der Benutzer Pi via Auto-Login angemeldet wird, der Desktop ist dann sofort verfügbar. Nun noch den Raspberry Pi mittels sudo reboot neustarten, und sofern alles korrekt konfiguriert wurde, darf man sich über ein sprechendes Desktop-System freuen.
Die Auswahl an Anwendungen ist bei diesem Setup natürlich gering. Es ist weder Webbrowser noch E-Mail-Client installiert, was aber dank umfangreicher Paketverwaltung kein großes Problem darstellt. Firefox/Iceweasel ist nutzbar, wenn auch natürlich nicht für umfangreiche Webseiten oder tausende von Tabs gedacht. Als E-Mail-Client kann ich Sylpheed empfehlen, eine schlanke Alternative zu Thunderbird bzw. Icedove. Ob Libreoffice reibungslos läuft, habe ich bislang nicht getestet. Für einfache Textdateien ist aber der Pluma-Editor allemal gut genug. Wofür man den Desktop nutzt, muss jeder für sich selbst entscheiden. Alle Anwendungen lassen sich mit der Tastenkombination Alt-F1 im Menü erkunden.
Viel Erfolg!
Prinzipiell ist der Raspberry Pi auch für blinde Anwender nutzbar - entweder per Fernzugriff via SSH oder direkt per Tastatur, sofern ein entsprechender Screen-Reader installiert ist. Gerade die zweite Variante brachte allerdings bisher wenig Spaß bei der Arbeit mit der Himbeere. Zwar sind die benötigten Pakete (Speakup, eSpeak etc) bei Raspbian und auch Arch Linux verfügbar, doch in der Praxis sind sie bisher kaum nutzbar. Vor allem in Raspbian scheint es Probleme mit dem Soundtreiber zu geben und es kommt zu einem Stottern der Sprachausgabe oder sogar zu kompletten Abstürzen des Kernels.
Aus der Raspberry-VI-Community kommt jetzt allerdings Abhilfe für dieses Problem. Michael A. Ray, Betreuer der zur Community gehörenden Mailingliste, hat sich an die Arbeit gemacht und eine alternative Rendering-Engine für Speakup und dessen Sprachausgaben-Connector programmiert. Diese benutzt nicht mehr den instabilen Soundtreiber, sondern verarbeitet die Sprachausgabe im Grafikprozessor (GPU), ist also nicht auf Alsa, Pulseaudio oder andere Systeme angewiesen. Derzeit handelt es sich bei Piespeakup zwar nur um eine modifizierte Version des ursprünglichen eSpeakup-Connectors, doch sie erfüllt schon jetzt ihren Zweck.
Wer eine erste Alphaversion testen möchte, kann mit folgenden Schritten alle benötigten Komponenten herunterladen, kompilieren und installieren (Git muss installiert sein):
cd /usr/local/src
# Herunterladen der Quelldateien
git clone https://github.com/cromarty/ttsprojects.git
# Kompilieren und installieren der benötigten Bibliothek
cd ttsprojects/raspberry-pi/libilctts/build
sudo ./build.sh
# Piespeakup und dessen Abhängigkeiten einrichten
cd ../../piespeakup
sudo ./build.sh
Ist alles ohne Fehlermeldungen abgelaufen (bei mir kam es zu diversen Warnungen, die man aber ignorieren kann), kann der Raspberry Pi neugestartet werden und sollte bei angeschlossenem Lautsprecher die Bootnachrichten automatisch vorlesen. Möchte man die Sprachausgabe auf eine andere Sprache umstellen, muss noch die Datei /etc/default/piespeakup bearbeitet werden. Dort lässt sich auch konfigurieren, ob die Sprachausgabe über den HDMI-Anschluss gesendet werden soll. Nach einem weiteren Reboot oder mittels
service piespeakup restart
werden die Änderungen übernommen. Bei einer Änderung der Tonausgabe (Local oder HDMI) muss jedoch der Pi komplett neugestartet werden.
Das Projekt befindet sich noch in der Entwicklung. Geplant ist eine Unterstützung für Emacspeak sowie ein Modul für den Speech-Dispatcher, welches theoretisch dann auch die grafische Oberfläche mit Orca zugänglich machen würde.
Vor einem halben Jahr habe ich im Rahmen meines Podcasts "die Robbentröte" vorgeführt, wie man einen Raspberry Pi in einen kleinen Piratensender umfunktioniert. Als Radiofreak stand dieses Projekt natürlich weiterhin auf meiner Beobachtungsliste.
Tatsächlich gibt es mittlerweile interessante Fortschritte, um den Pi noch besser als FM-Sender einzusetzen. Zwar hat sich am Klang nicht viel verbessert, da das Pifm-Modul weiterhin nur Dateien mit maximal 22050 Hz annimmt und der Klang auch allgemein kaum mit dem eines normalen UKW-Senders vergleichbar ist, doch inzwischen sind auch Stereoübertragungen möglich. Hierzu wird der Aufruf des Moduls lediglich um einen Parameter ergänzt:
./pifm Datei.wav 103.3 22050 stereo
Via Ffmpeg lassen sich auch MP3-Dateien übergeben:
ffmpeg -i input.mp3 -f s16le -ar 22.05k -ac 1 - | ./pifm -
Mittels Arecord lässt sich sogar der Input eines USB-Mikrofons und wahrscheinlich auch jeder anderen USB-Soundkarte übergeben, die vom Raspberry Pi unterstützt wird:
arecord -d0 -c2 -f S16_LE -r 22050 -twav -D copy | ./pifm -
Getestet habe ich die neuen Möglichkeiten mangels brauchbarer Soundkarte jedoch noch nicht. Und so faszinierend dieser (Pi)ratensender auch sein mag, für mehr als ein paar Experimente sollte man ihn lieber nicht verwenden, da der Raspberry Pi natürlich niemals für diesen Zweck entworfen wurde und im schlimmsten Fall trotz geringer Reichweite für erhebliche Störungen im UKW-Rundfunk sorgen könnte. Wer es dennoch testen möchte, sollte zunächst ohne Antenne senden, die Reichweite beträgt dann nur wenige Meter. Als brauchbare Antenne sollte nur ein kurzes Kabel auf den GPIO-Pin 4 gesteckt werden, nicht länger als 20 Zentimeter. Allein das reicht aus, um die Reichweite des Senders auf bis zu 100 Meter zu steigern, was schon weit jenseits der in Deutschland im UKW-Bereich zugelassenen FM-Kleinstsender liegen dürfte. Größere Antennen sind nicht ratsam und wirken sich sogar negativ auf das vom Pi ausgestrahlte Signal aus, in jedem Fall aber negativ auf die Radios der Nachbarn. :)
Seit kurzer Zeit bin ich Besitzer eines Raspberry Pi. Leider sind die Tools, die auf der Projektseite zum Schreiben des Betriebssystem-Images verlinkt werden, kaum mit einem Screen-Reader zu gebrauchen, sofern man keine Linux-Kommandozeile zur Verfügung hat. Das Konsolen-Tool "Flashnul", welches als Alternative für Windowsnutzer empfohlen wird, produzierte bei mir nur fehlerhaft beschriebene SD-Karten, da es mit Windows 7 offenbar nicht kompatibel ist.
Abhilfe schafft der USBWriter, dessen Bedienung denkbar einfach ist: Image-Datei auswählen, das Ziellaufwerk mit der SD-Karte und mit Klick auf "Write" den Schreibvorgang starten. Je nach Größe des Images kann der Vorgang einige Minuten dauern. Wer vor dem Starten des Pi wissen möchte, ob der Schreibvorgang auch wirklich geklappt hat, kann in der Datenträgerverwaltung von Windows die SD-Karte prüfen, die nun in mindestens zwei für Windows unbekannte Partitionen aufgeteilt sein sollte.