Advamation-Logo (Druckversion)

Raspberry Pi Software

Stand:2015-03-16

Auf dem Raspberry Pi läuft verschiedenste Software, primär unter Linux- und BSD-Betriebssystemen.

Auf dieser Seite sollen einige technische Hinweise hierzu gegeben sowie Anleitungen gesammelt werden, die die Nutzung dieser Software auf dem Raspberry Pi (ggf. mit angeschlossenem AdvaBoard RPi1) erleichtern.

Betriebssysteme

Auf dem Raspberry Pi läuft als Betriebssystem derzeit primär Linux und BSD. Die am weitesten verbreiteten Distributionen dürften derzeit Raspbian und Debian sein; einige spezielle Distributionen leiten sich zudem von diesen beiden Distributionen ab. Eine Liste von Betriebssystemen bzw. Distributionen für den Raspberry Pi finden sich unter:

Zudem ist es möglich, den Raspberry Pi ohne Betriebssystem zu verwenden, und den ARM-Prozessor direkt zu programmieren.

Auf dem neuen Raspberry Pi 2 soll in Zukunft auch Windows laufen; dies wird hier jedoch nicht näher betrachtet.

Wir empfehlen im Normalfall Raspbian für den Raspberry Pi 1, und Debian für den Raspberry Pi 2.

Debian

Homepage:https://www.debian.org/
Debian auf dem Raspberry Pi: https://wiki.debian.org/RaspberryPi
Liste der Debian ARM-Ports: https://wiki.debian.org/ArmPorts
Debian in Wikipedia: http://de.wikipedia.org/wiki/Debian

Debian Linux ist eine der bekanntesten und am weitesten verbreiteten Linux-Distributionen. Viele weitere bekannte Linux-Distributionen sind aus Debian hervorgegangen (z.B. Ubuntu oder Linux Mint).

Debian unterstützt neben "normalen PCs" (mit x86-Prozessoren) viele weitere Prozessorarchitekturen, unter anderem auch ARM-Prozessoren, wie sie auf Raspberry Pis verwendet werden. Allerdings gibt es ein paar Dinge zu beachten:

für Raspberry Pi 1 (mit 700 MHz-ARMv6-Prozessor):
  • Der ursprüngliche Raspberry Pi – mit den Modellen B, A, B+ und A+ – enthält einen 700 MHz-ARM-Prozessor (Broadcom BCM2708), der eine recht alte ARM-Architektur nutzt (ARMv6). Diese ARM-Architektur (ARMv6) war eigentlich bereits veraltet, als der Raspberry Pi erschien, wurde jedoch aus Kostengründen gewählt.

    Diese Raspberry Pis werden mittlerweile auch als "Raspberry Pi 1" bezeichnet.

  • Debian armel läuft (mit einem angepassten Linux-Kernel) auf dem Raspberry Pi 1, jedoch wird hierbei die Fließkommaeinheit (floating-point unit) des Raspberry Pi-ARM-Prozessors nicht unterstützt. Programme, die Fließkommaberechnungen nutzen, laufen deshalb mit Debian armel deutlich langsamer als es möglich wäre.

  • Debian armhf, das eine besser Unterstützung für Fließkommaeinheiten enthält, läuft auf dem Raspberry Pi 1 nicht, da dessen ARM-Prozessorarchitektur zu alt ist.

    Aufgrund dieser Situation ist Raspbian entstanden, das "Debian armhf" so modifiziert, dass auch die Fließkommaeinheit des Raspberry Pi 1 unterstützt wird. (siehe auch: What is Raspbian?)

für Raspberry Pi 2 (mit 4*900 MHz-ARMv7-Prozessor):
  • Der Raspberry Pi 2 besitzt einen 4-Kern-ARM-Prozessor mit 900 MHz (Broadcom BCM2709), der eine moderne ARM-Architektur nutzt (ARMv7). Der Raspberry Pi 2 ist also nicht nur erheblich schneller als der Raspberry Pi 1, sondern hat zudem den Vorteil, dass er eine aktuelle Prozessorarchitektur besitzt.

  • Debian armhf läuft (mit einem angepassten Linux-Kernel) auf dem Raspberry Pi 2, und unterstützt auch dessen Fließkommaeinheit. Eine spezielle Raspberry Pi-Distribution – wie Raspbian – ist damit für den Raspberry Pi 2 nicht mehr notwendig.

    Wir empfehlen "Debian armhf" für den Raspberry Pi 2.

Raspbian

Homepage:http://raspbian.org/
Raspbian-FAQ:http://raspbian.org/RaspbianFAQ
Download:http://www.raspberrypi.org/downloads/

Raspbian Linux ist das derzeit am weitesten verbreitete Betriebssystem für den Raspberry Pi. Raspbian basiert auf Debian, und wurde auf den ARMv6-Prozessor des Raspberry Pi 1 angepasst. (siehe auch: What is Raspbian?)

für Raspberry Pi 1 (mit 700 MHz-ARMv6-Prozessor):
  • Raspbian unterstützt (im Gegensatz zu Debian) die Fließkommaeinheit des Raspberry Pi 1. Viele Programme laufen mit Raspbian deshalb deutlich schneller als mit Debian.

    Wir empfehlen deshalb "Raspbian" für den Raspberry Pi 1.

für Raspberry Pi 2 (mit 4*900 MHz-ARMv7-Prozessor):
  • Raspbian läuft ebenfalls auf dem Raspberry Pi 2, hat hier jedoch kaum Vorteile gegenüber einem "normalen" Debian – außer dass Raspbian gleichermaßen auf dem Raspberry Pi 1 läuft, und man damit z.B. die gleiche microSD-Karte für beide Raspberry Pi-Versionen verwenden kann, ohne an der Software etwas zu ändern.

    Wir empfehlen deshalb "Raspbian" für Anwendungen, die gleichermaßen auf dem Raspberry Pi 1 und dem Raspberry Pi 2 laufen müssen.

  • Die von uns erhältlichen microSD-Karten mit vorinstalliertem Raspbian, die ab dem 16.03.2015 ausgeliefert werden, sind bereits passend für den Raspberry Pi 2 konfiguriert. Sie funktionieren aber weiterhin auch mit dem Raspberry Pi 1.

  • Damit eine bereits vorhandene microSD-Karte mit Raspbian auf dem neuen Raspberry Pi 2 läuft, sind folgende Schritte notwendig:

    1. Booten im Raspberry Pi 1: Zunächst muss die microSD-Karte in einen "alten" Raspberry Pi 1 eingelegt, dieser gestartet und (per Ethernet) mit dem Internet verbunden werden.

    2. Upgrade: Als nächstes sollte Raspbian auf den aktuellen Stand gebracht werden:

      sudo apt-get update
      sudo apt-get upgrade
      
    3. Firmware-Upgrade: Da der Raspberry Pi 2 eine neuere Boot-Firmware benötigt, muss diese nun (als root) aktualisiert werden:

      sudo rpi-update
      
    4. Kernel installieren (optional): Das Firmware-Upgrade installiert zudem einen neuen Linux-Kernel. Allerdings ist dies ein "bleeding-edge"-Kernel, der zwar unter Raspbian funktioniert, und die neuesten Features enthält, jedoch keine weitere Unterstützung von Raspbian erhält.

      Sollen z.B. zusätzliche Kernel-Module übersetzt und verwendet werden, so sollte der entsprechende Raspbian-Kernel installiert werden:

      sudo apt-get install linux-image-rpi2-rpfv
      
    5. Kernel auswählen: Zusätzlich zur Installation des neuen Kernels muss festgelegt werden, dass dieser in Zukunft verwendet werden soll. Dies wird in der Datei /boot/config.txt durch eine Zeile kernel=... eingestellt.

      • Für die Nutzung des bleeding-edge-Kernels kann diese Zeile entfernt oder auskommentiert werden. Dies kann z.B. durch folgenden Befehl erfolgen:

        sudo sed -i.bak "s/^\(kernel=.*\)/#\1/" /boot/config.txt
        
      • Für den Raspbian-Kernel (linux-image-rpi2-rpfv) sollte diese Zeile derzeit wir folgt lauten:

        kernel=vmlinuz-3.18.0-trunk-rpi2
        

        Dies kann z.B. durch folgenden Befehl eingetragen werden:

        sudo sed -i.bak "s/^kernel=.*//" /boot/config.txt
        sudo bash -c "echo "kernel=vmlinuz-3.18.0-trunk-rpi2" >> /boot/config.txt"
        
    6. Overclocking zurücksetzen: Eventuelle Übertaktungs-Einstellungen sollten zurückgesetzt werden. Das raspi-config-Programm unterstützt dies leider derzeit noch nicht vollständig, deshalb sollten die Einträge arm_freq=..., core_freq=..., sdram_freq=... und over_voltage=... in der Datei /boot/config.txt manuell auskommentiert oder entfernt werden. Hierzu können auch folgende Befehle verwendet werden:

      sudo sed -i.bak "s/^\(arm_freq=\)/#\1/" /boot/config.txt
      sudo sed -i "s/^\(core_freq\|sdram_freq\|over_voltage\)=.*//" /boot/config.txt
      
    7. I2C/SPI/RS-232: Teilweise wird berichtet, dass das Upgrade die I2C- bzw. SPI-Schnittstelle des Raspberry Pi deaktiviert. Dies kann per raspi-config korrigiert werden. Bei der Nutzung des AdvaBoard RPi1 sollten hierfür folgende Optionen gewählt werden:

      -> 8 Advanced Options
         -> A6 SPI
            "Would you like the SPI interface to be enabled?"
            -> Yes
            "Would you like the SPI kernel module to be loaded by default?"
            -> No
      
      -> 8 Advanced Options
         -> A7 I2C
            "Would you like the ARM I2C interface to be enabled?"
            -> Yes
            "Would you like the I2C kernel module to be loaded by default?"
            -> No
      
      -> 8 Advanced Options
         -> A8 Serial
            "Would you like a login shell to be accessible over serial?
            -> No
      
    8. Update der Anwendungssoftware: Der Raspberry Pi 2 ist zwar größtenteils, aber nicht zu 100% softwarekompatibel zum Raspberry Pi 1. Insbesondere für Programme bzw. Treiber, die die GPIOs (I/Os, SPI, I2C usw.) verwenden, ist deshalb ein Software-Update notwendig.

      Für die AdvaBoard RPi1-Software ist ein derartiges Update derzeit per E-Mail erhältlich.