Carserver

Aus TechnikWiki

HookTwSeo HookTwSeo HookTwSeo HookTwSeo

Beschreibung

Dieses System ist komplett unabhängig vom Fahrzeug. Bei einer bestehenden Stromversorgung (KFZ-SteckdoseKFZ-Steckdose) ist es in wenigen Minuten in einem anderen Fahrzeug montiert und einsatzbereit.

Version 1

Carserver02
Carserver (Version 1)

Der Carserver wurde mit einem Raspberry Pi 3 (B+) umgesetzt und darauf das Betriebssystem Ubuntu Mate mit der grafischen Oberflächegrafischen Oberfläche installiert.

Anschließend wurde eine 12 Volt Stromversorgung im HandschuhfachStromversorgung im Handschuhfach bereitgestellt. Bei der ersten Version des Carservers, befand er sich permanent im HandschuhfachHandschuhfach, da noch kein Touchscreen vorhanden war. Er hatte nur die Funktion, die Playlist automatisch zu synchronisieren (Playlist Synchronizer).

Der Raspberry mit dem kleinen Touchscreen besitzt nun auch ein neues Gehäuse aus KunststoffGehäuse aus Kunststoff. Dieser befindet sich meistens im Handschuhfach Handschuhfach , aber er kann auch direkt an das ArmaturenbrettArmaturenbrett eingehängt werden. Man könnte damit z. B. alle WLANs automatisch scannen, so wie es auch bei Google Street View geschehen ist. Der Empfang bzw. die Antenne des WLANs ist leider beim Raspberry Pi 3 noch nicht optimal.

Da es ein großer Aufwand wäre, einen Netzwerkkabel von der Wohnung in die Garage zu verlegen, ist die kostengünstigere Variante umgesetzt worden. Es wurde ein PowerLAN PowerLAN (Datentransfer über das Stromnetz) verwendetverwendet. Ein gutes und sicheres PowerLAN hat seinen Preis. Die Geschwindigkeit beträgt 500 MBit/s und die Daten, die über das Stromnetz laufen sind AES verschlüsselt.

Die technischen Datentechnischen Daten des Carservers:

Chipsatz ARM Cortex-A53 Quad
CPU Takt 1200 MHz
RAM 1024 MB
Speicher 32GB Samsung EVO Class 10 (Lesen - Schreiben: 80 MB/s - 20 MB/s)
WLAN / LAN ja
HDMI ja
Bluetooth ja
Spannung 5V (DC) / 2,5A

Der Raspberry benötigt eine Leistung von mindesten 10 Watt (5V * 2,4A = 12W).

Version 2

Carserver17
Carserver (Version 2)

Die Version 2 des Carservers ist nun abgeschlossen. Es besteht die Möglichkeit das WLAN zu verwenden oder direkt mit einem Smartphone (Hotspot)Smartphone (Hotspot) ins Internet zu gelangen. Dies ist vorwiegend für die Musik auf YouTube gedacht. Eigentlich laufen alle Programme von Linux auf einem Raspberry unter der Berücksichtigung der Leistung. Davon ausgeschlossen sind virtuelle Maschinen, diese werden von der ARM-Architektur nicht unterschützt.

Das Problem mit dem schlechten WLAN-EmpfangWLAN-Empfang kann einfach mit einem hochwertigen WLAN-Stick gelöst werden. Der Raspberry mit diesem Touchscreen und weiteren USB-Geräten benötigt eine Leistung von mindesten 15 Watt (5V * 3A = 15W). Der Raspberry und dieser Touchscreen müssen separat mit Strom versorgt werden (Raspberry mit Touchscreen)!

Weiterhin besteht die Möglichkeit ihn mit Modulen zu erweitern und ihn durch eine neuere Version zu ersetzen. Beim Ubuntu Mate stellt dies kein Problem dar, es muss einfach nur die SD-Karte beim neuen eingesteckt werden. Das System anschließend Upgraden und Updaten.

Der Shellskript zum Updaten des gesamten Systems:

#!/bin/bash
# 23.03.2016 Bacher Oliver (www.technikwiki.org) #

apt-get update

apt-get upgrade

apt-get dist-upgrade

apt-get autoclean

apt-get autoremove

do-release-upgrade

Module

Playlist Synchronizer

Das Modul Playlist Synchronizer dient dazu, die aktuelle Playlist mit einem oder mehreren USB-Sticks zu synchronisieren. Die Seriennummer vom USB-Stick (idVendor & idProduct) wird mit Hilfe einer sogenannten udev-Regel erkannt und diese ruft einen Shellskript auf.

Der Shellskript zum Auslesen der USB Devices (idVendor & idProduct) sieht wie folgt aus:

#!/bin/bash
# 07.08.2016 Bacher Oliver (www.technikwiki.org) #
for X in /sys/bus/usb/devices/*; do
  if [ -f $X/idVendor ] && [ -f $X/idProduct ]; then
    idVendor=$(cat $X/idVendor)
    idProduct=$(cat $X/idProduct)
    echo "##"
    echo "## UsbDevice: $X"
    echo "## VendorId : $idVendor"
    echo "## ProductId: $idProduct"
    echo "##"
    echo ""
  fi
done

Udev-Regel

In diesem Beispiel wird der Shellscript "SyncPlaylist.sh" nur aufgerufen, wenn der USB-Datenträger mit der "VendorId: 0951" und "ProductId: 1624" verbunden wird.

Der Shellskript selbst, setzt einen Mount-Punkt und ruft die Synchronisation mit Hilfe von rsync auf. Dadurch wird ein ständiges Löschen und Kopieren der gesamten Playlist vermieden (Performance).

Die Freigabe der Playlist erfolgt direkt auf dem Carserver mit einer Samba Freigabe (Windows - Netzlaufwerk). Natürlich ist es auch möglich, die Playlist mit SSH zu verwalten, diese Variante ist dann unabhängig vom Intranet.

Copy to clipboard
ACTION=="add",ATTRS{idVendor}=="0951",
ATTRS{idProduct}=="1624",
ENV{DEVTYPE}=="usb_device",
RUN+="/data/carserver/cronjobs/SyncPlaylist.sh"

Der Parameter ENV{DEVTYPE}=="usb_device" muss gesetzt werden, ansonsten wird der Shellscript mehrmals ausgeführt.

Eine weitere Möglichkeit wäre eine Cloud zu verwenden. Diese Variante ist ebenso etwas Zeitaufwändig bis diese läuft und die Daten der Cloud müssen ebenso auf die USB-Sticks kopiert werden.

Rsync

  • -t = behält Zeiten der Quelldatei bei
  • -v = zeigt während des Synchronisierens alle ausgeführten Schritte an
  • -u = überspringt Dateien, die im Ziel neuer sind als in der Quelle
  • --delete = vergleicht Quellverzeichnisse und Zielverzeichnisse und sorgt dafür, dass die Dateien, die im Quellverzeichnis nicht mehr vorhanden sind, gelöscht werden

Der Befehl zum Synchronisieren der Playlist via rsync.

Copy to clipboard

Fotos

Version 1

Version 2

Komponenten

Siehe auch

Weblinks