RASPBERRY PI ZERO W UND DIE OTG FUNKTION
Der Raspberry PI Zero W wurde am 28. Februar 2017 vorgestellt. Er verfügt nun über ein WLAN und Bluetooth On Board. Für Experimente mit IOT und Docker der ideale Partner. Wie gelingt eigentlich das Setup eines Raspberry PI ohne einen Monitor, einer Maus und Tastatur?
Der PI verfügt über eine OTG-Schnittstelle. OTG steht für „On The Go“, was soviel heißt wie USB für unterweges. Mit dieser Technik können externe Geräte wie „Festplatten, Webcam, Speicher oder Drucker an OTG taugliche Geräte angeschlossen werden. Ein USB-Hub oder andere Zwischenlösungen zum Anschluss an externe Geräte erfolgt mit OTG direkt. Die Treiber sind oftmals in den Betriebssystemen wie Windows 7, Mac und Linux schon enthalten.
Da der Raspberry PI oft Headless betrieben wird, also ohne Bildschirm und Tastatur ist es sinnvoll sich mit dem Host-Rechner zu verbinden. Elegant kann dies nun direkt mit der USB-Verbindung erfolgen. Der PI kann sowohl mit Strom und Netzwerkdaten versorgt werden.
Die Verbindungsart wird als Ethernet over USB bezeichnet. Wenn die nötigen Treiber und Konfigurationen vorhanden sind, das Linux geflashed wurde, kann der PI direkt via ping raspberrypi.local
oder ssh pi@raspberrypi.local
angesteuert werden.
Die Modelle 2/3/3b+ funktionieren ebenfalls mit OTG allerdings benötigen sie eine externe Stromversorgung. Der PI Zero W hat eine ungefähre Stromaufnahme von 100 bis 200 mA und liegt somit unterhalb der max 500mA der USB-Spezifikation.
Schrittweise Installation des PIs
- Download des Raspian OS
- Flash der SD Karte mit Etcher
- Konfiguration der OTG Module für den Boot
- Aktivierung der OTG Module
$ cd /Volumes/boot
$ vi cmdline.txt
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait modules-load=dwc2,g_ether quiet xxx
$ vi config.txt
# add this
dtoverlay=dwc2
$ touch ssh
# unmout sd card and plugin the card into your pi
- SD Karte in den PI stecken
- Verbindungen mit dem MAC via Mini-USB zu USB-C
- Konfiguration des RDNIS Network Sharing
- Aktivierung des Mac Internet Sharings
- Review
- Nach ca 90 Sekunden nutzen des PIs via OTG.
ssh pi@raspberrypi.local
WLAN und der PI
Leider wird in Windows 10 das RDNIS zur Zeit nicht mehr unterstützt. In diesem Fall wird dann eine WLAN-Konfiguration erforderlich.
Die Datei wpa_supplicant.conf
enthält die WLAN-Konfiguration. Sie wird beim ersten Boot des Raspberry PI in das Verzeichnis /etc/wpa_supplicant
kopiert. Die Datei muss die Bezeichnung des WLANs (SSID) und dessen Passwort enthalten.
$ cd /Volumes/boot/etc/
$ mkdir -p wpa_supplicant
$ cat >wpa_supplicant.conf <<EOF
country=DE
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="wlan-bezeichnung"
psk="passwort"
key_mgmt=WPA-PSK
}
EOF
Statische IP für den PI festlegen
Damit die IP-Adresse des PI’s sich nicht immer wieder verändert, kann das Netzwerk-Interface entsprechende konfiguiert werden.
WARNING Aktuell hat diese Einstellung bei mir noch nicht geklappt!
$ ssh pi@raspberrypi.local
$ sudo /bin/bash
$ cat >/etc/network/interfaces.d/usb0 <<EOF
allow-hotplug usb0
iface usb0 inet static
address 192.168.2.2
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
EOF
$ reboot
$ ssh pi@raspberrypi.local
$ ip a s
$ dmesg -T | grep MAC
Setzen eines neuen Hostname
$ sudo hostname -b <new hostname>
$ sudo reboot
Installation von Docker auf dem PI
$ ssh pi@raspberrypi.local
$ sudo /bin/bash
$ apt-get install -y git
$ curl -sSL https://get.docker.com | sh
$ sudo usermod -aG docker pi
$ exit
$ ssh pi@raspberrypi.local
Blink! mit Docker Swarm
- Auflöten einer Steckliste auf den PI Zero
- Kaufen und Installieren einer Blink! LED-Leiste.
- Software für das Monitoring von Docker Swarm Service Deployment aufspielen
$ ssh pi@raspberrypi.local
$ git clone https://github.com/bee42/swarm-monitor
$ cd swarm-monitor
$ docker build --build-arg NODE_BASE_IMAGE=hypriot/rpi-node:8.1.3 \
--build-arg BASE_IMAGE=hypriot/rpi-node:8.1.3-slim \
-t bee42/swarm-monitor:1.3.1
$ docker run -d \
--env SERVICE_IMAGE=stefanscherer/whoami \
--env SERVICE_VERSION_GREEN=1.1 \
--env SERVICE_VERSION_BLUE=1.2 \
-v /sys:/sys \
-v /var/run/docker.sock:/var/run/docker.sock \
bee42/swarm-monitor:1.3.1
$ ip=$(ip -f inet -o addr show usb0|cut -d\ -f 7 | cut -d/ -f 1)
$ docker swarm init --advertise-addr $ip
$ docker service create --name whoami stefanscherer/whoami:1.1.0
$ docker service scale whoami=4
$ docker service update --image=stefanscherer/whoami:1.2.0 whoami
Fazit
Der PI mit der OTG Schnittstellen zu betreiben erleichtert den Zugang enorm. Der PI Zero ist ein netter Technologiebegleiter der für Aufmerksamkeit sorgt und die Kreativtät fördert.
Viel Spaß mit Deinen PI-Experimenten,Peter (@PRossbach)
Links
- https://forum-raspberrypi.de/forum/thread/29581-raspberry-pi-zero-otg-mode/
- http://www.circuitbasics.com/raspberry-pi-zero-ethernet-gadget/
- https://www.raspberrypi.org/documentation/hardware/raspberrypi/usb/README.md
- https://blog.hypriot.com/getting-started-with-docker-on-your-arm-device/
- https://www.raspberrypi.org/blog/docker-comes-to-raspberry-pi/
- https://blog.alexellis.io/live-deep-dive-pi-swarm/
- https://www.elektronik-kompendium.de/sites/raspberry-pi/1906291.htm
- http://developmentalmadness.com/2016/03/09/docker-configure-insecure-registry-for-systemd/
- https://stackoverflow.com/questions/22127865/control-raspberry-pi-via-usb-connected-android-device