16.2. Verschiedene Embedded Linux Rechner (20.04.2020)

Das BBB ist nicht das erste Embedded Linux Board. Erste Portierungen für Mikrokontroller-Boards gab es bereits Ende der 1990er Jahre. Später gab es unter anderem Boards mit Atmel AT91RM9200 Controller, das in Augsburg entwickelte Gnublin Board oder der RT5350 Olinuxino. 2012 hat der Raspberry Pi (RPi) maßgeblich die Embedded-Linux-Landschaft verändert.

16.2.1. Fragen

  1. Seit wann gibt es die Disziplin „Embedded Linux“ ungefähr?

    • 1991 wurde der Linux-Kernel erstmals veröffentlicht. Die Disziplin „Embedded Linux“ gibt es wie im Text beschrieben seit Ende der 1990er Jahre.

  2. Wie würden Sie die Minimalanforderungen an ein Embedded-Linux taugliches Board definieren? Gehen Sie ein auf Prozessor, Taktfrequenz, Hauptspeicher, Flashspeicher. Wie wirken sich diese nicht gerade üppigen Resourcen auf die Programmierung von Anwendungen aus?

    • Minimalanforderungen für ein halbwegs benutzbares Embedded Linux System, wie z.B. dem Picotux 100 [PTux]:

      • Prozessor:
        • ARM 32-Bit CPU

      • Taktfrequenz:
        • 55MHz

      • Hauptspeicher:
        • 8MB, je nach Anwendungsfall aber auch weniger

      • Flashspeicher:
        • 2MB (µClinux 2.4.27 mit 750KB + eigene Anwendungen)

    • Bei der Programmierung muss darauf geachtet werden, dass möglichst wenige andere Dienste und Bibliotheken verwendet werden, um Speicherplatz zu sparen. Außerdem muss überprüft werden, ob die Anwendung auf dem Board performant genug ist, um ihren Zweck zu erfüllen.

  3. Wie viel leistungsfähiger ist ein modernes Raspberry Pi Board oder Beaglebone Board im Vergleich zu dem 2011 selbstgebauten Gnublin Board?

    • Raspberry Pi 4 (B): [RPi]

      • CPU: 1 x Broadcom BCM2711B0 64 Bit Quad-Core Cortex-A72 @ 1.5GHz

      • RAM: 1/2/4 GB LPDDR4 SDRAM

    • BeagleBone AI: [BBAI]

      • CPU: 2 x ARM Cortex-A15 64Bit Dual-Core @ 1.5GHz

      • Coprocessors: 4x200-MHz PRUs, 2x ARM Cortex-M4, 2x SGX PowerVR, 2x HD video

      • RAM: 1GB DDR3

    • Gnublin Board: [GNU]

      • CPU: LPC3131 (NXP), 32-bit ARM926EJ-S, 180 MHz (ca. 2010)

      • RAM: 8/16/32 MB

    • Ein einzelner Kern der neueren Boards hat bereits mehr als die 8-fache Taktfrequenz. Zudem haben sie 4 solcher Kerne.

    • Die Menge des Hauptspeichers ist ebenfalls enorm angestiegen. Zudem ist der neuere Speicher (DDR3, DDR4) deutlich schneller.

  4. Finden Sie heraus, ob Sie einen WLAN Router haben, der mit Embedded Linux läuft, bzw. ob Sie diesen Router auf Linux umstellen könnten (siehe OpenWRT supported devices).

    • Mein Router (Netgear R6400) verwendet in der Firmwareversion V1.0.1.52 ein auf der Kernelversion 2.6.36 basiertes Linux. Netgear bietet den R6400 Firmware Quellcode zum Download an.

    • Der Netgear R6400 Router wird nicht von OpenWRT unterstützt, da ein Broadcom Chip verwendet wird und Broadcom keine FOSS Treiber anbietet. DD-WRT funktioniert allerdings.

  5. Welche Vor- und Nachteile hat das Raspberry-Pi Board?

    • Vorteile:

      • Das Raspberry-Pi Board ist günstiger als ein BBB und dennoch sehr leistungsstark.

      • Einsteigerfreundlich

      • Große Community

      • Der RPi eignet sich gut für das Abspielen oder Verarbeiten von HD Videos, da der verwendete Prozessor für Multimediaanwendungen entwickelt wurde und dementsprechend eine Hardware-Implementation der H.264/MPG-4 De-/Encoder hat . [Mol20]

    • Nachteile:

      • Nicht vollständig Open Source

      • Keine Hardware für Echtzeit-Anwendungen (allerdings kann PREEMPT_RT verwendet werden)

      • Weniger Interface-Möglichkeiten

  6. Recherchieren Sie nach ein paar Alternativen für RPi und BBB.

Referenzen

PTux

PicoTux (besucht am 28.04.2020): http://www.picotux.com/

Mol20

Molloy, D.; Exploring BeagleBone (2nd Edition)

RPi

Spezifikation des Raspberry Pi 4B (besucht am 28.04.2020): https://www.raspberrypi.org/products/raspberry-pi-4-model-b/specifications/

BBAI

Spezifikation von verschiedenen BeagleBone Boards (besucht am 28.04.2020): https://beagleboard.org/bone

GNU

memo-02.pdf: http://hhoegl.informatik.hs-augsburg.de/elinux/ss20/memo-02.pdf