Errata und Updates (3. Aufl. 2016)

Diese Seite fasst Errata und Updates zur 3. Auflage von »Raspberry Pi — Das umfassende Handbuch« (2016 Rheinwerk-Verlag) zusammen.

Aktuelle Auflagen: Die Errata zur aktuellen Auflage finden Sie hier.

S. 53, Erste Schritte in Raspbian

Ende September 2016 wurde im Rahmen eines Updates der »Pixel-Desktop« eingeführt. Es sieht ein wenig moderner aus als der bisherige Desktop. Funktionell hat sich dagegen nicht viel geändert. Eine kurze Beschreibung des neuen Desktops finden Sie in unserem Blog.

S. 107, grep/dpkg-Beispiel

dpkg -l liefert die Liste der installierten Pakete, nicht dpkg -L. Das Kommando lautet somit:

dpkg -l | grep -i python
S. 135, Updates

Im Rahmen eines »normalen« Updates mit apt-get dist-upgrade werden mittlerweile auch Kernel-Updates durchgeführt. Ein explizites Kernel- und Firmware-Update mit rpi-update ist daher nur noch in Ausnahmefällen erforderlich, d.h. wenn Sie einen Kernel bzw. eine Firmware-Version ausprobieren möchten, für den es noch kein offizielles Update gibt.

S. 139, SSH

Seit Nov. 2016 ist SSH aus Sicherheitsgründen standardmäßig deaktiviert. Bevor Sie SSH aktivieren, sollten Sie unbedingt das Passwort des Benutzers pi neu einstellen. Details zur Aktivierung von SSH bei aktuellen Raspbian-Installationen finden Sie hier in unserem Blog.

S. 254, /boot/config.txt

Achten Sie darauf, dass Sie zwischen mehreren Overlay-Parametern keine Leerzeichen angeben. Das vorletzte Beispiel im Listing enthält so ein Leerzeichen. Es muss entfernt werden. Die Zeile lautet dann korrekt:

dtoverlay=rtc-i2c,ds1307

S. 708/709, Entprellen per Software

Das abgedruckte Python-Script enthält einen Fehler (name ’now‘ is not defined). Das korrekte Script sieht so aus:

#!/usr/bin/python3
import RPi.GPIO as gpio, time, datetime

# Pins
pinLed = 26
pinButton = 21
ledStatus = 0  # LED anfänglich aus

# Initialisierung
gpio.setmode(gpio.BOARD)      # P1-Pin-Nummern
gpio.setup(pinLed, gpio.OUT)
gpio.setup(pinButton, gpio.IN)
gpio.output(pinLed, ledStatus)
lastTime=datetime.datetime.now()

# Callback-Funktion, wenn Taster gedrückt wird
def myCallback(n):
  global lastTime, ledStatus
  now = datetime.datetime.now()
  # 500 ms Entprellzeit
  if now-lastTime > datetime.timedelta(microseconds=500000):
      print('Der Taster wurde gedrückt.')
      lastTime=datetime.datetime.now()
      ledStatus = not ledStatus
      gpio.output(pinLed, ledStatus)

# Callbacks einrichten 
gpio.add_event_detect(21, gpio.FALLING)
gpio.add_event_callback(21, myCallback)

# jetzt läuft alles automatisch
print("Das Script endet in 20 Sekunden automatisch.")
time.sleep(20)
gpio.cleanup()

Letztes Update: 3.1.2018