Aus Linux-Magazin 01/2015

Raspberry-Pi-Klon Hummingboard im Praxistest

© Rainer Dorsch

Mit Quadcore-Power, mehr Speicher und schnelleren Interfaces richtet sich das Hummingboard an Raspberry-Pi-Besitzer, die mit einem Aufstieg liebäugeln. Auf weitgehende Kompatibilität der Schnittstellen haben die Macher geachtet, doch der Teufel steckt, wie so oft, auch hier im Detail.

Der israelische Hersteller Solidrun will mit dem seit Kurzem fertigen Hummingboard [1] das Amateur-SBC-Segment oberhalb des Raspberry Pi besetzen. Die Spezifikation des Einplatinencomputers beeindruckt: Er stößt leistungsmäßig in einen Bereich vor, der bis vor Kurzem x86-Prozessoren vorbehalten war.

Im Vergleich zum Raspberry  Pi trumpft das Hummingboard mit einer wesentlich flotteren CPU [2], mehr Speicher, einer nicht nur auf dem Papier deutlich schnelleren Netzwerkschnittstelle und durchsatzstarken Ports wie SATA und PCIe auf (siehe Tabelle 1).

Wie beim Raspberry Pi gibt es auch beim Hummingboard eine Produktfamilie mit mehreren Modellen. Der Befehlssatz der Hummingboards beschränkt sich nicht wie beim Raspberry  Pi auf ARMv6: Das verbaute Freescale-i.MX6-SoC (System on a Chip) enthält ein bis vier ARM-Cortex-A9-Rechenkerne, die den ARMv7-Befehlssatz implementieren. Das bringt für den Nutzer den großen Vorteil, dass er die Armhf-Binärpakete von Debian und seinen Derivaten benutzen kann, Solidrun muss also keine eigene Distribution pflegen. Ähnliches gilt auch für andere Distributionen. Bei so vielen Pluspunkten fällt bei vielen Einsatzzwecken der höhere Stromverbrauch der Hummingboards nicht ins Gewicht.

Mit einer mustergültig breit aufgestellten Community wie der Raspberry  Pi kann das Hummingboard allerdings nicht aufwarten. Der Raspi steht für gut dokumentierte Schnittstellen, viele kompatible Peripheriegeräte und Zukunftssicherheit bei der Software. Inwieweit es der Hummingboard-Familie gelingt, dies durch Schnittstellen-Kompatibilität zum Raspberry  Pi und die Softwarekompatibilität zu Debian und anderen Distributionen zu kompensieren, untersucht der folgende Praxistest.

Das Hummingboard weist einen modulareren Aufbau auf als die Raspberry-Pi-Hardware: Es besteht aus einem Micro-SOM, das mit einem Kühlkörper auf einem Carrierboard sitzt (Abbildung  2). Das Micro-SOM enthält im Wesentlichen ein i.MX6-SoC sowie Speicherbausteine. Insgesamt gibt es vier verschiedene Micro-SOMs und zwei verschiedene Carrierboards, die Solidrun nach dem Mix-and-Match-Ansatz konfiguriert, sodass die Hummingboard-Familie insgesamt aus acht Mitgliedern besteht.

Neben den beiden Carrierboards baut Solidrun auch noch eines für das in Abbildung  3 gezeigte Cubox-i-Gehäuse. Damit kann Solidrun mit einer Familie von vier Micro-SOMs und drei Carriern neben den Hummingboards auch die wohnzimmertaugliche Cubox-i-Produktfamilie mit reduzierter Schnittstellenzahl anbieten. Eine vollständige Dokumentation der Hardware wie Schematics, Gerber- und DXF-Dateien stellt Solidrun im Web [3] zur Verfügung.

Als Software kam auf dem Platzhirsch Raspbian und auf dem Herausforderer ein Jessie-Debian, also die Testing-Version von Debian 8.0, in Form des Solidrun-Image [4] zum Einsatz. Die Installation erfolgte in beiden Fällen durch ein einfaches Kopieren auf eine SD- respektive Micro-SD-Karte.

Abbildung 2: Das Hummingboard – hier noch ohne den Kühlkörper. Auf der linken Hälfte zu sehen ist das Micro-SOM-i2eX mit dem Freescale i.MX6 und zwei RAM-Bausteinen.

Abbildung 2: Das Hummingboard – hier noch ohne den Kühlkörper. Auf der linken Hälfte zu sehen ist das Micro-SOM-i2eX mit dem Freescale i.MX6 und zwei RAM-Bausteinen.

Abbildung 3: Bei der Cubox-i handelt es sich um eine wohnzimmertaugliche Variante des Hummingboard.

Abbildung 3: Bei der Cubox-i handelt es sich um eine wohnzimmertaugliche Variante des Hummingboard.

Tabelle 1

Die leistungsfähigsten Hummingboard- und Raspberry-Pi-Modelle

 

Hummingboard Professional i4pro

Raspberry Pi, Modell B+

SoC

Freescale i.MX6 Quad

Broadcom BCM 2835

ARM-Kern

Freescale i.MX6 Quad

ARM 1176JZF-S

ARM-Befehlssatz

ARMv7

ARMv6

Kerne, Taktrate

4 Kerne mit 1 GHz

1 Kern mit 700 MHz

CPU-Benchmark

je nach Benchmark [2] 2- bis 10-mal schneller als der Raspberry Pi

Referenz

GPU

Vivante GC2000

Broadcom Videocore IV

RAM

2 GByte

512 MByte

USB-2.0-Ports

2

4

Ethernet

1 GBit/s 1

100 MBit/s

IR

38-kHz-Receiver

38-kHz-Receiver

Video-Eingang

15-Pin-MIPI-CSI

15-Pin-MIPI-CSI

Video-Ausgang

HDMI

HDMI

GPIO-Header

26 Pins 2

40 Pins

PCIe

Mini-PCIe-Connector

E-SATA

M-SATA

Leistungsaufnahme

max. 10  W

max. 3  W

Preis

knapp 150  US-Dollar 3

33  Euro

1 maximal mögliche Bandbreite 470 MBit/s (SoC-Limitierung)

2 Formfaktor identisch zum Raspberry-Pi-Modell B

3 zuzüglich 19 Prozent Einfuhrumsatzsteuer

Test 1: Kompatibilität der Schnittstellen

Zum Prüfen der Schnittstellen-Kompatibilität untersuchten die Linux-Magazin-Tester exemplarisch vier einfache Anwendungen: die serielle Konsole über UART, das Ansteuern von LEDs via GPIO, die Serial-Peripheral-Interface-Kommunikation sowie das Einbinden des Raspi-Kameramoduls. Als Hardwareplattformen dienten ein Raspberry-Pi-Modell  B und ein Hummingboard Professional  i2EX (Abbildung 1, Tabelle  2).

Tabelle 2

Das getestete Hummingboard

Name

Hummingboard Professional i2EX

Hersteller

Solidrun

SoC

Freescale i.MX6 Dual

ARM-Kern

Cortex-A9

ARM-Befehlssatz

ARMv7

Kerne, Taktrate

2 Kerne mit 1 GHz

GPU

Vivante GC2000

RAM

1 GByte

USB-2.0-Ports

2

Ethernet

1 GBit/s 1

IR

38-kHz-Receiver

Video-Eingang

15-Pin-MIPI-CSI

Video-Ausgang

HDMI

GPIO-Header

26 Pins 2

PCIe

Mini-PCIe-Connector

E-SATA

M-SATA

Leistungsaufnahme

max. 7,5  W

Preis

103  Euro plus Versand

Bezugsquelle

http://www.ecservices.de

1 maximal mögliche Bandbreite 470 MBit/s (SoC-Limitierung)

2 Formfaktor identisch zum Raspberry-Pi-Modell B

Kreuzweise

Die serielle Konsole nahmen die Tester mit einem USB-nach-UART-Kabel PL2303HX und Minicom in Betrieb, indem sie »GND« , »5V« , »RX« und »TX« überkreuz mit dem GPIO-Header verbanden. Das klappte bei beiden SBC ohne Probleme. Beim Hummingboard ist zu beachten, dass dessen Stromversorgung über USB erfolgen muss und der Besitzer den 5-Volt-Pin nicht verbinden darf, da das PL2303HX-Kabel selbst nicht genügend Strom liefert. Dann aber bootet das Hummingboard über die serielle Konsole, welche die Arbeiten mit U-Boot deutlich erleichtert.

Den Aufbau für das Ansteuern einer LED via GPIO zeigt Abbildung  4. Der Schaltungsaufbau erfolgte auf einer Steckplatine, die die Tester über einen T-Koppler mit dem GPIO-Header des Raspberry beziehungsweise des Hummingboard verbanden. Für den Pi findet sich eine ausführliche Dokumentation der GPIO-Ansteuerung für mehrere Programmiersprachen, zum Beispiel auf [5].

Nach dem Anschließen einer LED mit einem Vorwiderstand an »GPIO7« (Pin  26) verläuft das Ansteuern problemlos, vorausgesetzt, dass der Bastler die irreführende Nummerierung auf dem GPIO-Header durchschaut. Das Listing  1 stellt den Ablauf dar, die LED blinkt synchron zur »0-1-0…« -Ausgabe.

Eine gute GPIO-Dokumentation für das Hummingboard liefert das Blog von Gert Leenders  [6]. Die Ansteuerung funktioniert weitgehend identisch wie beim Raspberry  Pi (Listing  2) – mit zwei kleinen Unterschieden: Pin  26 lässt sich beim Hummingboard gar nicht als GPIO konfigurieren, deshalb nahmen die Tester Pin  22. Zudem fällt die Nummerierung der GPIOs unterschiedlich aus: Pin  22 ist beim Hummingboard GPIO  67, beim Raspberry Pi GPIO  25.

Abbildung 4: Der Raspberry Pi und das Hummingboard mit einer Steckplatine.

Abbildung 4: Der Raspberry Pi und das Hummingboard mit einer Steckplatine.

Listing 1

Blinkende LED mit dem Raspberry Pi

01 # mount -t debugfs none /sys/kernel/debug
02 # cat /sys/kernel/debug/gpio
03 GPIOs 0-53, bcm2708_gpio:
04  gpio-16  (led0                ) out hi
05 # echo "4" > /sys/class/gpio/export
06 # echo "out" > /sys/class/gpio/gpio4/direction
07 # cat /sys/kernel/debug/gpio
08 GPIOs 0-53, bcm2708_gpio:
09  gpio-4   (sysfs               ) out lo
10  gpio-16  (led0                ) out hi
11 root@pi:/home/pi# val=1
12 # while : ; do
13 >   echo $val > /sys/class/gpio/gpio4/value
14 >   echo $val
15 >   sleep 1
16 >   val=$((1-$val))
17 > done
18 0
19 1
20 0
21 1
22 [...]

Listing 2

Blinkende LED mit dem Hummingboard

01 # mount -t debugfs none /sys/kernel/debug
02 # cat /sys/kernel/debug/gpio
03 [...]
04 GPIOs 64-95, gpio-2:
05  gpio-67  (pin22               ) in  hi
06  gpio-68  (PCIE RESET          ) out hi
07  gpio-69  (gpio-ir-recv        ) in  hi
08  gpio-70  (pin15               ) in  hi
09 [...]
10 # echo 67 > /sys/class/gpio/export
11 # echo out > /sys/class/gpio/gpio67/direction
12 # cat /sys/kernel/debug/gpio
13 [...]
14 GPIOs 64-95, gpio-2:
15  gpio-67  (pin22               ) out lo
16  gpio-68  (PCIE RESET          ) out hi
17  gpio-69  (gpio-ir-recv        ) in  hi
18  gpio-70  (pin15               ) in  hi
19 [...]
20 # val=1
21 # while : ; do
22 >   echo $val > /sys/class/gpio/gpio67/value
23 >   echo $val
24 >   sleep 1
25 >   val=$((1-$val))
26 > done
27 1
28 0
29 1
30 0
31 [...]

Test 2: SPI-Vergleich

Der zweite Test gilt der Inbetriebnahme des Serial Peripheral Interface (SPI,  [7]). Für den Raspberry Pi gibt es dazu viele Beschreibungen [8]. Das Programm »spidev_test.c« kommt zusammen mit dem Kernelquellcode und implementiert einen Loopback-Test, bei dem MOSI- und MISO-Pins am GPIO-Header verbunden sind (Listing  3). Das funktioniert aber nur, wenn »spidev_test.c« zum auf dem Raspberry  Pi laufenden Kernel passt.

In Sachen SPI-Kommunikation mit dem Hummingboard existiert nur wenig Dokumentation. Die Tester luden das Kernelmodul »spi_imx« , das aber weder das gewünschte Gerät in »/dev« anlegte noch Einträge in Logfiles hinterließ. Erst der Einsatz eines alternativen Debian-Image  [9] für das Hummingboard von Igor Pecovnik ließ die SPI-Geräte unter etwas anderem Namen erscheinen. Daraufhin klappte der Loopback-Test auch auf dem Hummingboard (Listing  4).

Listing 3

Raspberry-Pi-SPI-Loopback-Test

01 # gcc spidev_test.c -o spidev_test
02 # ./spidev_test -s 100000 -D /dev/spidev0.0
03 spi mode: 0
04 bits per word: 8
05 max speed: 100000 Hz (100 KHz)
06
07 FF FF FF FF FF FF
08 40 00 00 00 00 95
09 FF FF FF FF FF FF
10 FF FF FF FF FF FF
11 FF FF FF FF FF FF
12 DE AD BE EF BA AD
13 F0 0D

Listing 4

Hummingboard-SPI-Loopback-Test

01 # gcc spidev_test.c -o spidev_test
02 # ./spidev_test -D /dev/spidev1.0
03 spi mode: 0
04 bits per word: 8
05 max speed: 500000 Hz (500 KHz)
06
07 FF FF FF FF FF FF
08 40 00 00 00 00 95
09 FF FF FF FF FF FF
10 FF FF FF FF FF FF
11 FF FF FF FF FF FF
12 DE AD BE EF BA AD
13 F0 0D

Test 3: Kamera im Betrieb

Das Kameramodul lässt sich auf dem Raspberry  Pi problemlos integrieren und unter Raspbian in Betrieb nehmen. Dazu konfigurierten die Tester es zunächst mit »raspi-config« und konnten nach einem Reboot sofort mit »raspistill -o image.jpg« Fotos aufnehmen.

Für das Hummingboard fanden sie trotz intensiver Recherche keine Anleitung, wie sich die Pi-Kamera in Betrieb nehmen ließe. Einige andere Kameratypen scheinen zu funktionieren, so berichten jedenfalls User im Internet. Solche Modelle waren für den Test aber auf die Schnelle nicht zu besorgen.

Der Software-Stack

Der ARMv7-Befehlssatz erlaubt es, auf Hummingboards direkt Debian-Pakete der Armhf-Architektur zu installieren, was bei den Vorarbeiten zu diesem Artikel auch gelang. Im Test kamen neben einem Vanilla-Debian das Solidrun-Image sowie das beim SPI-Test erwähnte Linux von Igor Pecovnik zu Ehren. Tabelle 3 vergleicht die drei Images.

Als kritischste Punkte der Software-Images kristallisierten sich der Kernel und der Grafikstack heraus. Freescale unterstützt für den Vivante-GC2000-Grafikkern der Hummingboards die Kernel 3.0.x und 3.10.x. Der Grafiktreiber besteht aus einem quelloffenen Teil im Kernel und einem binären Teil im Userspace. Zudem fließt viel Arbeit in eine Kernel-3.14.x-Variante, die Igor Pecovnik in sein Image integriert. Debian selbst arbeitet mit dem Upstream-Kernel 3.16.

Für Anwendungen, die sehr gute Hardware-Unterstützung benötigen, insbesondere für die Grafik, stellt momentan das Image von Igor Pecovnik die beste Wahl dar. Wer keine spezielle Hardware-Unterstützung benötigt, aber Wert auf die neuesten Securitypatches legt oder auf größtmögliche Flexibilität bei Softwarepaketen, der greift wohl am besten zu dem Vanilla-Debian mit seiner guten Upgrade-Infrastruktur. Die Debianer stellen jedoch bislang keinen Installer fürs Hummingboard bereit [10], sodass man das Bootstrapping auf einem x86-Debian-PC selbst organisieren muss.

Unter dem Namen Etnaviv gibt es eine durch Reverse-Engineering entstandene Open-Source-Implementierung der Vivante-Grafiktreiber, ähnlich wie Nouveau für Nvidia. Allerdings lässt sich Etnaviv auf dem Hummingboard für einen produktiven Einsatz noch nicht empfehlen.

Tabelle 3

Debian-Images für das Hummingboard

 

Solidrun

Igor Pecovnik

Debian

Kernel

3.0

3.14

3.16.

Distribution

Debian Jessie

Debian 7

Debian Jessie

UART-Support

ja

ja

ja

GPIO-Support

ja

ja

funktioniert nicht

SPI-Support

funktioniert nicht

ja

funktioniert nicht

X11-Treiber

Vivante

Fbdev

funktioniert nicht

Nutzt automatisch ganze SD-Karte

nein

ja

ja

Kernel upgradefähig

nein

nein

ja

Letztes Update des Image

24.10.2014

4.7.2014

täglich

Flott, aber (noch) fehlt die breite Unterstützung

Die Rechenleistung des Hummingboard ist im Vergleich zum Raspberry Pi gigantisch, das schnelle Ethernet ist ein weiterer dicker Pluspunkt. Zwar fassen sich die meisten Schnittstellen des Hummingboard ganz ähnlich an wie ihre Pendants auf dem Raspi – das ist die Absicht des Herstellers Solidrun. Der Praxistest beweist aber, dass es im Detail auch genügend Unterschiede gibt. Zudem mangelt es an entsprechender Dokumentation, was dazu führt, dass sich der Umgang mit dem Solidrun-SBC deutlich zeitaufwändiger gestaltet als mit dem Original. Daher sollten Besitzer beider Platinen neue Komponenten erst einmal am Raspi in Betrieb nehmen und die resultierenden Erkenntnisse für den Einsatz am Hummingboard übertragen.

Für den Erfolg der Hummingboard-Familie dürfte es entscheidend sein, ob es Solidrun gelingt, eine ausreichend große Community um die Plattform zu scharen. Erste Anzeichen dafür gibt es: So empfiehlt beispielsweise Open Elec die Cubox-i als Hardwareplattform für seine Mediacenter-Distribution  [11]. Zudem tummeln sich im IRC-Kanal »#cubox« auf http://irc.freenode.org viele Benutzer. Solidrun bietet hier meist schnelle Hilfe und betreibt ein extra Forum [12].

Debian läuft heute schon vollständig – inklusive Security-Support und Backports – und sehr stabil auf dem Hummingboard. Allerdings unterstützt der Kernel 3.16 noch nicht alle Hardwarefunktionen, was sich aber kontinuierlich verbessern dürfte. X11-Grafik funktioniert auf absehbare Zeit aber nur mit dem Binärtreiber von Vivante, also wahrscheinlich nur mit dem Kernel 3.14.

Wenn Solidrun diesen mit Security-Updates versorgt und ein Paket mit Binär-X11-Treibern in einem Debian-Repository bereitstellt, dann dürfte sich das Hummingboard schnell einen guten Platz auf dem SBC-Markt erobern.

Infos

  1. Hummingboard: http://www.solid-run.com/products/hummingboard/
  2. Benchmarks: http://gleenders.blogspot.de/2014/08/hummingboard-benchmarks-raspberry-pi-vs.html]
  3. Schematics, Gerber- und DXF-Dateien: http://download.solid-run.com/pub/solidrun/
  4. Debian-Jessie-Image von Solidrun: http://download.solid-run.com/pub/solidrun/cubox-i/Debian/Jessi-repackaged-trial/debian-jessi-4-july-2014.img.xz
  5. “RPi Low-level Peripherals”: http://elinux.org/RPi_Low-level_peripherals
  6. Hummingboard-GPIO: http://gleenders.blogspot.de/2014/08/hummingboard-gpio.html
  7. Jürgen Quade, Eva-Katharina Kunst, “Kern-Technik” zum Thema SPI: Linux-Magazin 12/14, S.  98
  8. SPI-Support für den Raspberry Pi: http://elinux.org/RPi_SPI
  9. Debian-SD-Image für Cubox-i/Hummingboard: http://www.igorpecovnik.com/2014/08/19/cubox-i-hummingboard-debian-sd-image/comment-page-1/#comment-2466
  10. Laufend aktualisierte Debian-Installationsanleitung für ARM-Systeme: http://d-i.debian.org/manual/de.armhf/
  11. Open-Elec-Ankündigung zur Cubox-i: http://openelec.tv/news/22-releases/142-beta-openelec-5-0-beta-1-released
  12. Solidrun-Foren zu Cubox-i/Hummingboard: http://www.solid-run.com/community/

Der Autor

Rainer Dorsch ist Systemarchitekt bei Bosch Sensortec im baden-württembergischen Reutlingen. Er beschäftigt sich seit über 20 Jahren mit Linux.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben