BeagleBone Black: Unterschied zwischen den Versionen

Aus FHEMWiki
(Randnotiz neben TOC)
(Anpassung von <source>-Tags nach <syntaxhighlight>)
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 24: Zeile 24:
{{Randnotiz|RNTyp=y|RNText=Die folgende Beschreibung gilt nur noch für REV C Boards mit 4GB emmc.
{{Randnotiz|RNTyp=y|RNText=Die folgende Beschreibung gilt nur noch für REV C Boards mit 4GB emmc.
Auf alten Revisionen mit 2GB ist hinterher lediglich ca. 180MB Speicher im emmc frei. Details sind im  
Auf alten Revisionen mit 2GB ist hinterher lediglich ca. 180MB Speicher im emmc frei. Details sind im  
[http://forum.fhem.de/index.php/topic,24566.msg177766.html#msg177766 Fhem-Forum] beschrieben.}}
{{Link2Forum|Topic=24566|Message=177766|LinkText=Fhem-Forum}} beschrieben.}}
__TOC__
__TOC__
== Debian/Ubuntu auf dem BBB (emmc) installieren ==
== Debian/Ubuntu auf dem BBB (emmc) installieren ==
Zeile 89: Zeile 89:
Das darin angegebene Kommando muss man dann in der Shell selbst ausführen.
Das darin angegebene Kommando muss man dann in der Shell selbst ausführen.
In diesem Fall also
In diesem Fall also
<source lang=bash>
<syntaxhighlight lang=bash>
/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh
/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh
</source>
</syntaxhighlight>
Jetzt kann man der Übertragung des Betriebssystems in den internen Speicher zusehen.
Jetzt kann man der Übertragung des Betriebssystems in den internen Speicher zusehen.
Danach die microSD-Karte entfernen und den BBB neu starten.
Danach die microSD-Karte entfernen und den BBB neu starten.
Zeile 101: Zeile 101:
== Perl und Fhem installieren ==
== Perl und Fhem installieren ==
Jetzt geht es weiter, ziemlich genau wie am RasPi auch:
Jetzt geht es weiter, ziemlich genau wie am RasPi auch:
<source lang=bash>
<syntaxhighlight lang=bash>
# Timezone einstellen
# Timezone einstellen
sudo dpkg-reconfigure tzdata
sudo dpkg-reconfigure tzdata
Zeile 109: Zeile 109:
# Perl Interpreter und Bibliotheken installieren
# Perl Interpreter und Bibliotheken installieren
sudo apt-get install perl libdevice-serialport-perl libio-socket-ssl-perl
sudo apt-get install perl libdevice-serialport-perl libio-socket-ssl-perl
</source>
</syntaxhighlight>
Die [http://fhem.de/fhem.html#Download aktuellste, stabile Version] herunter laden.
Die [http://fhem.de/fhem.html#Download aktuellste, stabile Version] herunter laden.
Die Version im folgenden Befehl bitte entsprechend anpassen:
Die Version im folgenden Befehl bitte entsprechend anpassen:
<source lang=bash>
<syntaxhighlight lang=bash>
wget  http://fhem.de/fhem-X.Y.deb
wget  http://fhem.de/fhem-X.Y.deb
# Das Debian-Paket installieren
# Das Debian-Paket installieren
sudo dpkg -i fhem-X.Y.deb
sudo dpkg -i fhem-X.Y.deb
</source>
</syntaxhighlight>
Jetzt sollte man auf der IP Adresse des BBB unter der Portnummer 8083 von fhem begrüßt werden z.B.  
Jetzt sollte man auf der IP Adresse des BBB unter der Portnummer 8083 von fhem begrüßt werden z.B.  
<source lang=text>
<syntaxhighlight lang=text>
http://192.168.10.43:8083
http://192.168.10.43:8083
</source>
</syntaxhighlight>


== Inbetriebnahme ==
== Inbetriebnahme ==
=== Zugangsdaten ===
=== Zugangsdaten ===
Wie immer gibt es auch hier ein paar Dinge die man zu Beginn erledigen sollte. Man erhält zunächst die Meldung
Wie immer gibt es auch hier ein paar Dinge die man zu Beginn erledigen sollte. Man erhält zunächst die Meldung
<source lang=text>
<syntaxhighlight lang=text>
  SecurityCheck:
  SecurityCheck:


Zeile 133: Zeile 133:
  Restart FHEM for a new check if the problem is fixed,
  Restart FHEM for a new check if the problem is fixed,
  or set the global attribute motd to none to supress this message.
  or set the global attribute motd to none to supress this message.
</source>
</syntaxhighlight>
die einen darauf hinweist, dass fhem in seiner Voreinstellung keinen Schutz gegen unbefugten Zugriff hat. Es laufen vier Dienste:
die einen darauf hinweist, dass fhem in seiner Voreinstellung keinen Schutz gegen unbefugten Zugriff hat. Es laufen vier Dienste:
# WEB
# WEB
Zeile 141: Zeile 141:
Die alle derzeit ohne Passwort benutzt werden können.
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
Die Seite "[[Erste Schritte in fhem]]" zeigt hier auch nur wie man diesen Zustand ignoriert indem man die Meldung mit dem fhem-Kommando
<source lang=text>
<syntaxhighlight lang=text>
attr global motd none
attr global motd none
</source>
</syntaxhighlight>
unterdrückt. Alternativ wird auf die [http://fhem.de/commandref_DE.html Kommandoreferenz von fhem] verwiesen.
unterdrückt. Alternativ wird auf die [http://fhem.de/commandref_DE.html 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.
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:
Dazu loggt man sich per SSH auf dem BBB ein und lässt sich Zugangsdaten (Benutzername und Passwort) in einer Base64-Kodierung erzeugen:
<source lang=bash>
<syntaxhighlight lang=bash>
echo -n root:ganz_geheimes_passwort | base64
echo -n root:ganz_geheimes_passwort | base64
</source>
</syntaxhighlight>
als Ausgabe erhalten wir
als Ausgabe erhalten wir
<source lang=text>
<syntaxhighlight lang=text>
cm9vdDpnYW56X2dlaGVpbWVzX3Bhc3N3b3J0
cm9vdDpnYW56X2dlaGVpbWVzX3Bhc3N3b3J0
</source>
</syntaxhighlight>
Mit dieser Ausgabe können wir jetzt für jeden der vier Dienste ein Kommando im fhem eingeben mit dem das Passwort aktiviert wird.
Mit dieser Ausgabe können wir jetzt für jeden der vier Dienste ein Kommando im fhem eingeben mit dem das Passwort aktiviert wird.
<source lang=text>
<syntaxhighlight lang=text>
attr WEB basicAuth cm9vdDpnYW56X2dlaGVpbWVzX3Bhc3N3b3J0
attr WEB basicAuth cm9vdDpnYW56X2dlaGVpbWVzX3Bhc3N3b3J0
attr WEBphone basicAuth cm9vdDpnYW56X2dlaGVpbWVzX3Bhc3N3b3J0
attr WEBphone basicAuth cm9vdDpnYW56X2dlaGVpbWVzX3Bhc3N3b3J0
attr WEBtablet basicAuth cm9vdDpnYW56X2dlaGVpbWVzX3Bhc3N3b3J0
attr WEBtablet basicAuth cm9vdDpnYW56X2dlaGVpbWVzX3Bhc3N3b3J0
attr telnetPort password ganz_geheimes_passwort
attr telnetPort password ganz_geheimes_passwort
</source>
</syntaxhighlight>
Jetzt noch auf {{Taste|Save config}} klicken und diese Kommandos stehen ab sofort in der Konfigurationsdatei <code>/opt/fhem/fhem.cfg</code>.
Jetzt noch auf {{Taste|Save config}} klicken und diese Kommandos stehen ab sofort in der Konfigurationsdatei <code>/opt/fhem/fhem.cfg</code>.
{{Hinweis|'''VORSICHT''': Die Konfigurationsdatei ist für jeden Benutzer der sich auf dem Gerät anmelden kann lesbar. Die Base64-Kodierung bietet keinen Schutz, da sie (in Gegensatz zu Hash-Codes) umkehrbar ist (<code>base64 -d</code>). Das Telnet-Passwort steht im Klartext in der Konfigurationsdatei.}}
{{Hinweis|'''VORSICHT''': Die Konfigurationsdatei ist für jeden Benutzer der sich auf dem Gerät anmelden kann lesbar. Die Base64-Kodierung bietet keinen Schutz, da sie (in Gegensatz zu Hash-Codes) umkehrbar ist (<code>base64 -d</code>). Das Telnet-Passwort steht im Klartext in der Konfigurationsdatei.}}
Wer <code>base64</code> nicht installiert hat kann diese Arbeit auch vom fhem erledigen lassen.
Wer <code>base64</code> nicht installiert hat kann diese Arbeit auch vom fhem erledigen lassen.
<source lang=text>
<syntaxhighlight lang=text>
attr WEB basicAuth { "$user:$password" eq "root:ganz_geheimes_passwort" }
attr WEB basicAuth { "$user:$password" eq "root:ganz_geheimes_passwort" }
</source>
</syntaxhighlight>
Allerdings stehen die Passwörter dann (wie bereits bei Telnet) sogar im Klartext in der Konfigurationsdatei.
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.
Wird fhem jetzt neu gestartet, ist die Warnmeldung weg und der Zugang geregelt.
<source lang=bash>
<syntaxhighlight lang=bash>
service fhem stop
service fhem stop
service fhem start
service fhem start
</source>
</syntaxhighlight>


=== Sprache ===
=== Sprache ===
Beim Starten wird ggf. die Meldung
Beim Starten wird ggf. die Meldung
<source lang=text>
<syntaxhighlight lang=text>
Starting fhem...
Starting fhem...
perl: warning: Setting locale failed.
perl: warning: Setting locale failed.
Zeile 187: Zeile 187:
     are supported and installed on your system.
     are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Falling back to the standard locale ("C").
</source>
</syntaxhighlight>
oder eine ähnliche Meldung ausgegeben.
oder eine ähnliche Meldung ausgegeben.
Das passiert wenn mit einer nicht installierten Spracheinstellung gearbeitet wurde.
Das passiert wenn mit einer nicht installierten Spracheinstellung gearbeitet wurde.
Zeile 199: Zeile 199:
* [http://beagleboard.org/black BeagleBone Black Homepage]
* [http://beagleboard.org/black BeagleBone Black Homepage]
* [http://www.ti.com/product/AM3358 TI Sitara Processor AM3358]
* [http://www.ti.com/product/AM3358 TI Sitara Processor AM3358]
* [http://forum.fhem.de/index.php/topic,24566.msg177766.html#msg177766 Download Informationen] für Installation auf BBB mit 2GB emmc
* {{Link2Forum|Topic=24566|Message=177766|LinkText=Download Informationen}} für Installation auf BBB mit 2GB emmc


[[Kategorie:BeagleBone Black]]
[[Kategorie:BeagleBone Black]]

Aktuelle Version vom 26. Juli 2017, 19:56 Uhr

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.

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
Arbeits­speicher 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.

Emblem-question-yellow.svgDie folgende Beschreibung gilt nur noch für REV C Boards mit 4GB emmc.

Auf alten Revisionen mit 2GB ist hinterher lediglich ca. 180MB Speicher im emmc frei. Details sind im

Fhem-Forum beschrieben.

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
  • 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

  1. auf dem Router (z.B. FritzBox) nachsehen ob ein Gerät als "beaglebone" oder "arm" angemeldet ist
  2. den DHCP bzw. DNS-Server fragen z.B. mit host beaglebone
  3. als root-User z.B. mit nmap -sP 192.168.5.* einen Nummernkreis scannen lassen und dann mit arp -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:

  1. WEB
  2. WEBphone
  3. WEBtablet
  4. 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.

Info blue.png
VORSICHT: Die Konfigurationsdatei ist für jeden Benutzer der sich auf dem Gerät anmelden kann lesbar. Die Base64-Kodierung bietet keinen Schutz, da sie (in Gegensatz zu Hash-Codes) umkehrbar ist (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