BeagleBone Black
Beim BeagleBone Black (BBB) handelt es sich um eine Entwicklungsplattform von Texas Instruments für den "Sitara" Prozessor AM3358, einem Singlecore ARM Cortex-A8. Dieser Einplatinencomputer kann unter Linux betrieben werden und ist vergleichbar mit anderen Embedded Systemen wie z.B. dem Raspberry Pi, Banana Pi oder Cubieboard.
Auf alten Revisionen mit 2GB ist hinterher lediglich ca. 180MB Speicher im emmc frei. Details sind im
Fhem-Forum beschrieben.Eigenschaft | BeagleBone Black Rev.C | Raspberry Pi 2 Model B | Raspberry Pi 3 Model B |
---|---|---|---|
SOC | TI AM3358 | Broadcom BCM2836 | Broadcom BCM2837 |
ARM Cortex | A8 | A7 | A53 |
Takt | 1.0GHz | 0.9GHz | 1.2GHz |
RAM | 512MB | 1024MB | 1024MB |
Arbeitsspeicher | 4GB eMMC + microSD | microSD | microSD |
Preis ca. (Stand April 2016) | 54€ | 34€ | 38€ |
Als Besonderheit verfügt der SOC des BeagleBone Black über zwei CAN-Bus Controller. Im Lieferzustand ist Ångström-Linux installiert. Das Board kann aber auch mit Android (rowboat), Ubuntu, Debian, openSUSE, FreeBSD, OpenBSD, QNX und Windows Embedded betrieben werden. Es handelt sich um OpenSource-Hardware deren Schaltpläne und Bestückungslisten öffentlich sind. Für den Einsatz in der Gebäudeautomatisierung ist ein Gehäuse für die Montage auf Hutschienen verfügbar.
Debian/Ubuntu auf dem BBB (emmc) installieren
Benötigt
- micro SD-Karte nebst Lesegerät
- 5V Stecknetzteil mit Rundstecker oder
- alternativ ein USB-Verbindungskabel und einen USB Port der 500mA bereit stellen kann; kann auch einfach ein USB Ladeadapter in einer Steckdose sein
- Debian: eMMC Image BeagleBone Black (eMMC flasher) auswählen
- siehe auch [1]
- Ubuntu: unter
https://rcn-ee.net/rootfs/
Datum/flasher/BBB-eMMC-flasher-ubuntu-
....img.xz
z.B.:
- Win32DiskImager wenn man mit Windows arbeitet
- alternativ kann auch
dd
unter Linux verwendet werden.
Image auf SD Karte
- Das benötigte Image (Debian oder Ubuntu) herunter laden und speichern
Windows
- entpacken
- micro SD Karte in PC
- Win32DiskImager starten (er benötigt Admin Rechte, nicht über die Abfrage beim Start wundern)
- vergewissern, dass der DiskImager den richtigen Laufwerksbuchstaben (also den der SD Karte) als Ziel hat (Device)
- nochmal kontrollieren
- das gerade entpackte Image auswählen
- write
- warten... (dauert durchaus so 5 Minuten)
- wenn fertig, bitte SD Karte ordentlich auswerfen
Linux
- mit
unxz
dekomprimieren - micro SD Karte mit dem PC verbinden
- als root-User mit
fdisk -l
prüfen mit welchem Namen die Karte als Device verfügbar ist - das Image mit
dd
auf die SD-Karte übertragen
Details und alternative Methoden finden sich für Ubuntu oder Debian im Embedded Linux Wiki.
Image von SD Karte auf eMMC
Nachdem eine bootfähige microSD-Karte erstellt wurde, kann man den BBB damit booten:
- micro SD Karte in den BBB
- Netzwerk und sonst nichts angeschlossen haben
- den kleinen Knopf auf der Seite vom USB Port drücken und halten (nicht einen beim Netzwerkanschluss)
- jetzt Strom zuführen (es leuchtet sofort 1 einzelne blaue LED)
- wenn die restlichen LEDs anfangen zu blinken, kann man den Knopf wieder loslassen
- warten, bis alle LEDs ruhig und gleichmäßig leuchten
Da sich viele Anwender auf diese Weise versehentlich ihr Board neu "geflashed" haben, wurde in manchen Distributionen das betreffende Kommando auskommentiert. Der BBB bootet zwar von der microSD, aber das System wird nicht auf den internen eMMC übertragen. In diesem Fall muss man sich zuerst anmelden und das Kommando selbst ausführen (siehe unten). Das hat auch den Vorteil, dass man den Installationsprozess beobachten kann.
Weiter auf dem BBB
Der BBB meldet sich als DHCP-Klient im angeschlossenen Netzwerk an. Nun muss man die IP Adresse des BBB herausfinden. Dazu kann man
- auf dem Router (z.B. FritzBox) nachsehen ob ein Gerät als "beaglebone" oder "arm" angemeldet ist
- den DHCP bzw. DNS-Server fragen z.B. mit
host beaglebone
- als root-User z.B. mit
nmap -sP 192.168.5.*
einen Nummernkreis scannen lassen und dann mitarp -a | grep -i "54:4A:16"
nachsehen ob ein TI Gerät gefunden wurde.
Der BBB fällt in den MAC-Listen durch seine Adresse von Texas Instruments mit 54:4A:16
am Anfang auf.
Hat man ihn gefunden, dann kann man sich mit einem SSH-Klienten (z.B. Putty) einloggen.
Der Benutzername entspricht der Distribution ("debian" oder "ubuntu") und das Passwort ist "temppwd".
Das Passwort kann (wie auf jedem Linux System) mit passwd
geändert werden.
Per Kommando das System kopieren
Falls es sich um ein Systemabbild (Image) handelt, bei dem nicht nach dem Startvorgang das System auf den interenen Speicher (eMMC) übertragen wird, muss man es selbst erledigen.
Dazu schaut man in die Datei /boot/uEnv.txt
in der eine Zeile stehen sollte die so aussieht:
#cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh
Das darin angegebene Kommando muss man dann in der Shell selbst ausführen. In diesem Fall also
/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh
Jetzt kann man der Übertragung des Betriebssystems in den internen Speicher zusehen. Danach die microSD-Karte entfernen und den BBB neu starten.
System identifizieren
Nach der Installation eines neuen Betriebssystems oder wenn ein BBB vorliegt und das System ist nicht bekannt, kann man auf der "Hundemarke" nachsehen. Bei den BeagleBones hat es sich eingebürgert eine Datei /etc/dogtag
anzulegen, in der das System bezeichnet ist z.B.:
BeagleBoard.org Debian Image 2015-03-01
Perl und Fhem installieren
Jetzt geht es weiter, ziemlich genau wie am RasPi auch:
# Timezone einstellen
sudo dpkg-reconfigure tzdata
# OS auf aktuellen Stand bringen (kann länger dauern):
sudo apt-get update
sudo apt-get dist-upgrade
# Perl Interpreter und Bibliotheken installieren
sudo apt-get install perl libdevice-serialport-perl libio-socket-ssl-perl
Die aktuellste, stabile Version herunter laden. Die Version im folgenden Befehl bitte entsprechend anpassen:
wget http://fhem.de/fhem-X.Y.deb
# Das Debian-Paket installieren
sudo dpkg -i fhem-X.Y.deb
Jetzt sollte man auf der IP Adresse des BBB unter der Portnummer 8083 von fhem begrüßt werden z.B.
http://192.168.10.43:8083
Inbetriebnahme
Zugangsdaten
Wie immer gibt es auch hier ein paar Dinge die man zu Beginn erledigen sollte. Man erhält zunächst die Meldung
SecurityCheck:
WEB,WEBphone,WEBtablet has no basicAuth attribute.
telnetPort has no password/globalpassword attribute.
Restart FHEM for a new check if the problem is fixed,
or set the global attribute motd to none to supress this message.
die einen darauf hinweist, dass fhem in seiner Voreinstellung keinen Schutz gegen unbefugten Zugriff hat. Es laufen vier Dienste:
- WEB
- WEBphone
- WEBtablet
- telnet
Die alle derzeit ohne Passwort benutzt werden können. Die Seite "Erste Schritte in fhem" zeigt hier auch nur wie man diesen Zustand ignoriert indem man die Meldung mit dem fhem-Kommando
attr global motd none
unterdrückt. Alternativ wird auf die Kommandoreferenz von fhem verwiesen.
Um für eine Inbetriebnahme schnell einen halbwegs ordentlichen Zustand zu erreichen, soll hier das setzen eines Passworts für die angegebenen Dienste gezeigt werden. Dazu loggt man sich per SSH auf dem BBB ein und lässt sich Zugangsdaten (Benutzername und Passwort) in einer Base64-Kodierung erzeugen:
echo -n root:ganz_geheimes_passwort | base64
als Ausgabe erhalten wir
cm9vdDpnYW56X2dlaGVpbWVzX3Bhc3N3b3J0
Mit dieser Ausgabe können wir jetzt für jeden der vier Dienste ein Kommando im fhem eingeben mit dem das Passwort aktiviert wird.
attr WEB basicAuth cm9vdDpnYW56X2dlaGVpbWVzX3Bhc3N3b3J0
attr WEBphone basicAuth cm9vdDpnYW56X2dlaGVpbWVzX3Bhc3N3b3J0
attr WEBtablet basicAuth cm9vdDpnYW56X2dlaGVpbWVzX3Bhc3N3b3J0
attr telnetPort password ganz_geheimes_passwort
Jetzt noch auf Save config klicken und diese Kommandos stehen ab sofort in der Konfigurationsdatei /opt/fhem/fhem.cfg
.
base64 -d
). Das Telnet-Passwort steht im Klartext in der Konfigurationsdatei.
Wer base64
nicht installiert hat kann diese Arbeit auch vom fhem erledigen lassen.
attr WEB basicAuth { "$user:$password" eq "root:ganz_geheimes_passwort" }
Allerdings stehen die Passwörter dann (wie bereits bei Telnet) sogar im Klartext in der Konfigurationsdatei.
Wird fhem jetzt neu gestartet, ist die Warnmeldung weg und der Zugang geregelt.
service fhem stop
service fhem start
Sprache
Beim Starten wird ggf. die Meldung
Starting fhem...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "de_DE.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
oder eine ähnliche Meldung ausgegeben.
Das passiert wenn mit einer nicht installierten Spracheinstellung gearbeitet wurde.
Der Befehl locale -a
zeigt die installierten Spracheinstellungen.
Im Beispiel oben fehlt also de_DE.UTF-8
.
Mit dpkg-reconfigure locales
wird eine Interaktive Spracheinstellung vorgenommen, dort kann man die fehlende Kombination auswählen und erzeugen lassen.
Jetzt probeweise fhem nochmal neu starten und die Meldung sollte nicht wieder auftreten.
Links
- BeagleBone Black Homepage
- TI Sitara Processor AM3358
- Download Informationen für Installation auf BBB mit 2GB emmc