Raspbian Stretch

Seit zwei Tagen steht Raspbian Stretch zum Download zur Verfügung, also die auf Debian 9 (»Stretch«) aktualisierte Version der Rasbperry-Pi-Distribution Raspbian. An der Oberfläche hat sich wenig verändert, Raspbian lässt sich wie bisher bedienen. Hinter den Kulissen haben sich ein paar Details verändert. Der Hauptvorteil von Raspbian Stretch besteht aber darin, dass viele Software-Versionen aktualisiert wurden. Vielleicht am wichtigsten: Der aktuelle Kernel 4.9 beseitigt eine Sicherheitslücke im WLAN-Treiber.

Updates 21.8.2017, 5.10.2017, 11.1.2018, 2.2.2018: diverse Ergänzungen.

Wie bei jedem »Major Update« empfiehlt die Raspberry Pi Foundation eine Neuinstallation. Ein Update ist grundsätzlich auch möglich (Details dazu weiter unten). Dabei kann es aber unter Umständen zu Problemen kommen.

Neuinstallation

Eine Neuinstallation, sei es mit NOOBS oder durch das Kopieren der Image-Datei auf eine SD-Karte, verläuft exakt wie bei der Vorgängerversion Raspbian Jessie. Nach der Installation sollte als erstes das Konfigurationsprogramm Raspberry Pi Configuration ausgeführt werden. Dort können Sie diverse Einstellungen durchführen:

  • ein eigenes Passwort (aus Sicherheitsgründen unbedingt empfehlenswert!)
  • einen eigenen Hostnamen
  • die Sprache
  • die Zeitzone
  • das Tastaturlayout
  • das Land (damit der WLAN-Adapter die örtlichen Funkrichtlinien einhält)
  • SSH und diverse andere Dienste aktivieren

Beim Versuch, das Tastaturlayout einzustellen, treten die ersten Probleme auf. Ein Klick auf den betreffenden Button führt zu keinerlei Reaktion. Abhilfe: Öffnen Sie ein Terminal-Fenster und führen Sie dort die beiden folgenden Kommandos aus:

apt update
apt full-upgrade

Danach starten Sie das Konfigurationsprogramm neu — dann funktioniert auch die Konfiguration des Tastaturlayouts!

Um zu überprüfen, welche Raspbian-Version auf Ihrem Raspberry Pi läuft, führen Sie cat /etc/os-release aus:

cat /etc/os-release 

  PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
  NAME="Raspbian GNU/Linux"
  VERSION_ID="9"
  VERSION="9 (stretch)"
  ID=raspbian
  ID_LIKE=debian
  HOME_URL="http://www.raspbian.org/"
  SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
  BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

Software-Versionen

Das Software-Angebot entspricht naturgemäß jenem von Debian Stretch, wenn auch standardmäßig andere Komponenten zum Einsatz kommen — z.B. der Webbrowser Chromium anstelle von Firefox.

Basis           Desktop             Programmierung   Server
--------------  ------------------  --------------   --------------
Kernel     4.9  Chromium        60  bash       4.4   Apache    2.4
glibc     2.24  Gimp           2.8  gcc        6.3   CUPS      2.2
X-Server  1.19  LibreOffice    5.2  Java         8   MariaDB  10.1
Systemd    232  LXDE        0.99.2  PHP        7.0   OpenSSH   7.5
                Mathematica   11.0  Python 2.7/3.5   Samba     4.5

Umfassende Änderungen ergeben sich durch das Update vor allem für Raspberry-Pi-Fans, die den Minicomputer als Server eingesetzt haben. Der Wechsel von MySQL zu MariaDB und das Update von PHP 5.n auf PHP 7 können großen Migrationsaufwand verursachen.

Zuletzt noch ein paar Raspbian-spezifische Versionsangaben:

  • Sonic Pi liegt nun in Version 3.0.1 vor.

  • Scratch 2 kommt dank einer zusätzlichen Bibliothek nun mit den »Sense Hat«-Erweiterungen zurecht.

  • WiringPi liegt in Version 2.44 vor.

  • python.rpi hat die Version 0.6.3.

  • Der Raspberry Pi war wie viele Smartphones und andere Geräte von einem Firmware-Bug im Broadcom-WLAN-Chip betroffen (vom sogenannten Broadpawn Exploit). Raspbian Stretch enthält dafür einen Patch. (Der Patch steht auch für Raspbian Jessie zur Verfügung. Wenn Sie weiterhin Raspbian Jessie verwenden, sollten Sie sicherstellen, dass Sie alle Updates installiert haben!)

Technische Neuerungen

Hinter den Kulissen gibt es in Raspbian Stretch auch einige technische Details, die sich verändert haben:

  • Benutzer-Accounts: Zwar lautet der Default-Benutzer von Raspbian weiterhin pi, die Distribution und insbesondere das Raspberry-Pi-Konfigurationsprogramm kommt nun aber auch damit zurecht, wenn Sie einen anderen Account nutzen. Voraussetzung ist allerdings, dass dieser Benutzer ebenfalls sudo-Rechte hat.

  • Bluetooth/ALSA/PulseAudio: PulseAudio ist standardmäßig nicht mehr installiert. Bluetooth kommuniziert nun nicht mehr über PluseAudio mit dem Sound-System ALSA, sondern direkt über die Bibliothek bluez-alsa.

  • MySQL -> MariaDB: Der Datenbank-Server MySQL steht unter Raspbian Stretch nicht mehr zur Verfügung. Stattdessen kommt jetzt das weitgehend dazu kompatible Programm MariaDB zum Einsatz. Wenn Sie ein neues Datenbankprojekt starten, werden Sie vermutlich keinen Unterschied bemerken. Wenn Sie aber eine vorhandene Datenbank übernehmen möchten, müssen Sie diese mit mysqldump sichern und mit mysql neu wieder einspielen. (Die Kommandos mysql und mysqldump heißen auch in MariaDB so.) Führen Sie das Backup unbedingt durch, bevor Sie ein Update von Debian Jessie auf Debian Stretch durchführen!

  • USB-Datenträger: USB-Sticks, Festplatten etc. werden nun automatisch im Verzeichnis /media/pi/<name> in den Verzeichnisbaum eingebunden (bisher /media/<name>).

Installation von PHP

Um PHP zu installieren, führen Sie dieses Kommando aus:

sudo apt install apache2 php libapache2-mod-php php-common

Damit wird automatisch die aktuellste Version, also PHP 7 installiert.

Netzwerkonfiguration

Größere Umbauten gab es bei der Netzwerkonfiguration. Anstelle von eth0, eth1 etc. heißen die Netzwerkschnittstellen jetzt enxb827eb11442e etc. Das ist zwar äußerst unhandlich, hat aber den Vorteil, dass die Schnittstellennamen mit Hardware-IDs verbunden sind. D.h., die Schnittstellennamen sind reproduzierbar immer gleich.

Die Datei /etc/network/interfaces ist jetzt standardmäßig leer und bleibt dies auch nach einer WLAN-Konfiguration. Für die Konfiguration der Ethernet-Schnittstelle ist jetzt dhcpcd zuständig.

Solange Sie die Netzwerkkonfiguration über GUI-Tools durchführen, ändert sich am Default-Verhalten nichts: Die Ethernet-Schnittstelle empfängt weiterhin ihre IP-Konfiguration über DHCP. Die WLAN-Einstellungen werden wie bisher in /etc/wpa_supplicant/wpa_supplicant.conf gespeichert.

Die empfohlene Vorgehensweise zur Konfiguration einer statischen IP-Konfiguration für die Ethernet-Schnittstelle besteht darin, /etc/dhcpcd.conf zu verändern, z.B. nach dem folgenden Muster:

# Datei /etc/dhcpcd.conf
...
interface enxb827eb11442e
static ip_address=10.0.0.99/24
static routers=10.0.0.138
static domain_name_servers=10.0.0.138 8.8.8.8

Damit die Änderungen wirksam werden, führen Sie

sudo systemctl restart dhcpcd

aus. Alternativ können Sie den Rasbperry Pi natürlich auch neu starten.

Wenn Sie den Raspberry Pi als WLAN-Router, -Repeater etc. verwenden möchten, können Sie /etc/interfaces wie bisher verwenden (also so, wie es in unserem Buch bzw. in unzähligen Anleitungen im Internet beschrieben ist). Allerdings müssen Sie nun zusätzlich in /etc/dhcpcd.conf die Schnittstellen mit denyinterfaces kennzeichnen, um die sich dhcpcd nicht kümmern soll.

# Datei /etc/dhcpcd.conf
...
# wlan-Schnittstelle nicht berücksichtigen, weil deren
# Konfiguration in /etc/network/interfaces
# oder durch hostapd erfolgt
denyinterfaces wlan0

WLAN-Konfiguration vorweg (speziell für Raspberry Zero)

Wie ich in diesem Blog-Beitrag beschrieben habe, können Sie bei einer Raspbian-Image-Installation (nicht NOOBS) das WLAN-Passwort vorweg einstellen und den SSH-Server aktivieren. Das ermöglicht die Inbetriebnahme eines Raspberry Pi ohne USB-Tastatur.

Mit Raspbian Stretch funktioniert diese Vorgehensweise weiterhin. Allerdings muss die Datei wpa_supplicant.conf jetzt die zusätzlichen Parameter ctrl_interface und update_config enthalten, idelerweise auch country. Die folgende Datei gibt ein Muster an:

# Datei wpa_supplicant.conf in der Boot-Partition
country=DE  #omit if US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
       ssid="wlan-bezeichnung"
       psk="passwort"
       key_mgmt=WPA-PSK
}

Quellen:

Bildschirmschoner deaktivieren

Um den Bildschirmschoner zu deaktivieren, öffnen Sie (z.B. mit sudo leafpad) die Datei /etc/lightdm/lightdm.conf und suchen dort den bereits vorhandenen Eintrag # xserver-command=.... Dieser Eintrag befindet sich im Abschnitt [Seat:*] (ehemals [SeatDefaults]). Dort entfernen Sie das vorangestellte Kommentarzeichen und ändern die Zeile wie folgt um:

# Datei /etc/lightdm/lightdm.conf
...
[Seat:*]
...
xserver-command=X -s 0 -dpms

Probleme nach einer Neuinstallation

Wie bereits erwähnt, funktioniert die Tastaturkonfiguration durch das Raspberry-Pi-Konfigurationsprogramm nicht. Dieses Problem lässt sich durch die Installation der Updates leicht beheben.

Des Weiteren gibt es aktuell Probleme mit dem RealVNC-Server. Hierfür gibt es noch keine Lösung. Meine Empfehlung lautet, statt den RealVNC-Server zu deaktivieren und stattdessen xrdp zu installieren (siehe auch diesen Blog-Beitrag).

sudo apt-get remove realvnc-vnc-server
sudo apt-get install xrdp

Schließlich fehlen japanische und chinesische Fonts. Das wird Sie vermutlich nicht stören. Wenn doch, führen Sie sudo apt-get install fonts-droid-fallback aus.

Update von Raspbian Jessie auf Raspbian Stretch

Grundsätzlich ist es möglich, eine vorhandene Raspbian-Jessie-Installation auf Raspbian Stretch zu aktualisieren. Die Raspberry Pi Foundation rät von derartigen Updates ab, und diesem Ratschlag schließe ich mich an. In 25 Linux-Jahren hatte ich schon zu oft Probleme mit derartigen Updates.

Das heißt aber nicht, dass Sie es nicht versuchen können :-) Ich habe es natürlich auch probiert; die hier geschilderten Erfahrungen sind aber nur ein Einzelfall.

Als erstes sollten Sie ein vollständiges Backup aller für Sie wichtigen Dateien durchführen. Speichern Sie das Backup auf einem anderen Datenträger, z.B. auf einem USB-Stick oder in einem Netzwerkverzeichnis.

Danach führen Sie ein letztes Update für Debian Jessie durch, wie immer mit den Kommandos:

sudo apt update
sudo apt full-upgrade

Damit Sie das Update durchführen können, muss im Dateisystem auf der SD-Karte ausreichend freier Platz sein. Auf eine genaue Zahl will ich mich hier nicht festlegen, aber alleine der Download-Bedarf für alle Pakete beträgt rund 1 GByte. Mit 2 bis 3 GByte freien Speicher sind Sie auf der sicheren Seite. (Wenn Sie nicht wissen, wie viel Speicherplatz frei ist, führen Sie df -h / aus.)

Anschließend öffnen Sie mit sudo-Rechten die Dateien /etc/apt/sources.list und /etc/apt/sources.list.d/raspi.list sowie gegebenenfalls weitere *.list-Dateien in /etc/apt/sources.list.d. In all diesen Dateien ersetzen Sie jessie durch stretch. Statt eines Editors können Sie auch das Kommando sed zu Hilfe nehmen:

cd /etc/apt
sudo sed -i 's/jessie/stretch/g' /etc/apt/sources.list
sudo sed -i 's/jessie/stretch/g' /etc/apt/sources.list.d/raspi.list

Danach führen Sie nochmals die beiden folgenden Kommandos aus. Die Ausführung des Updates dauert je nach Raspberry-Pi-Modell und Geschwindigkeit der SD-Karte mehrere Stunden. Wenn Sie die Möglichkeit haben, sollten Sie das Update nicht via SSH durchführen, sondern sich direkt auf dem Rasbperry Pi einloggen. (Bei einem Update via SSH besteht die Gefahr, dass während des Updates die Netzwerkverbindung unterbrochen wird. Dann ist auch der Update-Prozess unterbrochen, und Sie müssen u.U. mit dpkg --configure -a die Paketdatenbank reparieren, bevor Sie den Update-Prozess mit apt full-upgrade neuerlich starten können.)

Das Update verläuft nicht einfach vollautomatisch: Sie müssen vielmehr immer wieder Fragen beantworten, ob Sie die eine oder die andere Version einer Konfigurationsdatei verwenden möchten etc. Ohne profundes Linux-Wissen ist die richtige Entscheidung schwierig — ebenso wie die Abschätzung, welche Folgen sich daraus ergeben.

sudo apt update
sudo apt full-upgrade

Die Durchführung des Updates hat bei mir mehrere Stunden gedauert, wesentlich länger als eine Neuinstallation! (Eine exakte Zeitangabe kann ich nicht geben, weil ich zwischendurch mehrfach den Rechner verlassen habe und der Update-Prozess bei meiner Rückkehr jedesmal auf eine Entscheidung von mir wartete.)

Der einzige Vorteil eines Updates im Vergleich zu einer Neuinstallation besteht darin, dass alle bisherigen Einstellungen und Dateien erhalten bleiben. Das kann im Vergleich zu einer Neuinstallation natürlich viel Zeit sparen. In der Regel geht diese Zeit aber an anderer Stelle verloren — nämlich bei der Fehlersuche, wenn ein aktualisiertes Programm nicht mehr so funktioniert wie vorher …

Wie bereits erwähnt, kann der Umstieg von MySQL zu MariaDB zu Problemen führen. Lesen Sie vor einem Update unbedingt diesen Knowledge-Base-Beitrag der MariaDB-Webseite.

Bei meinem Test war das Update prinzipiell erfolgreich, wenngleich ein paar Kleinigkeiten das Bild trüben: Der Auto-Login für den Nutzer pi funktioniert nicht mehr und die Schrift im Terminal sieht hässlich aus. phpMyAdmin funktionierte erstaunlicherweise nach dem Update, allerdings konnte das Programm auf die phpMyAdmin-interne Datenbank nicht mehr zugreifen. (Dadurch gehen einige Zusatzfunktionen von phpMyAdmin verloren.)

Ich habe mir nicht die Mühe gemacht, diese Probleme zu beheben. Auch auf wirklich tiefgreifende Tests habe ich verzichtet und stattdessen wieder die SD-Karte mit der Raspbian-Stretch-Neuinstallation in den Slot gesteckt :-)

Quellen

4 Gedanken zu „Raspbian Stretch“

  1. Hallo,

    für die Korrektur des Fehlers der Tastatureinstellung ist bereits ein Update verfügbar.

    Beste Grüße
    Pofoklempner

  2. Hallo,

    anhand Auflage 3. habe ich strech-light auf einen USB stick installiert und wollte den w1thermsensor in Betrieb nehmen.
    Trotz raspi-config Aktivierung von One-wire, sehe ich keine Module unter lsmod.
    Habe „sudo modprobe w1-gpio“ u. „sudo modprobe w1-therm“ probiert, lsmod zeigt nun module an:
    lsmod
    Module Size Used by
    w1_therm 6401 0
    w1_gpio 4818 0
    wire 32619 2 w1_gpio,w1_therm
    cn 5889 1 wire
    cfg80211 543091 0
    rfkill 20851 2 cfg80211
    sg 20825 0
    snd_bcm2835 24427 0
    snd_pcm 98501 1 snd_bcm2835
    snd_timer 23968 1 snd_pcm
    snd 70032 3 snd_timer,snd_bcm2835,snd_pcm
    bcm2835_gpiomem 3940 0
    uio_pdrv_genirq 3923 0
    uio 10204 1 uio_pdrv_genirq
    fixed 3285 0
    ip_tables 13161 0
    x_tables 20578 1 ip_tables
    ipv6 409035 28

    doch keine Sensoren. (Nach einem reboot werden die Kernel Module nicht automatisch geladen.)

    Auch nach Installation des Timo Furrer Packetes kann ich keine Sensoren finden. Auf meiner Jessie Vollinstalltion auf SD Karte funktionieren jedoch die Sensoren.

    Wäre um einen Wink dankbar.

    1. Hallo,
      sorry für die späte Antwort.
      Ganz spontan habe ich keine Idee.
      Ich werde jedoch heute Abend einmal einen 1-W-Sensor in Betrieb nehmen.
      Ich berichte ;-)
      Oder haben Sie bereits die Ursache finden können?
      Gruß
      Christoph

  3. Hallo,
    also nach etlichen Versuchen, habe ich es auch aufgegeben.
    Unter der vollen Stretch-Installation habe ich einen 1W-Sensor ans Laufen bekommen.
    Unter Lite habe ich das ähnliche Problem.
    Tut mir leid, dass ich keine Lösung für die Lite-Version parat habe.

    Gruß
    Christoph

Kommentare sind geschlossen.