iSCSI Target und Initiator einrichten

Fileshares sind ja ganz praktisch, aber manchmal nicht das was man braucht. Zum Beispiel ist die Vergabe von Zugriffsberechtigungen komplett anders.
Bei einem  Fileshare wird das auf dem Server erledigt, der ja auch das Filesystem (NTFS, ext4, …) vorgibt.
Stellt man ein Laufwerk per iSCSI zur Verfügung, ist das für den Client wie eine zusätzliche Festplatte. Man kann das iSCSI Laufwerk partitionieren, formatieren und Rechte vergeben, ganz wie bei einer Festplatte.

Im folgenden beschreibe ich, wie man eine Festplatte oder ein logisches Laufwerk an einem Linux Server (hier mit CentOS 7) mittels iSCSI freigibt und dann von einem anderen Linux Rechner aus benutzt.
Das automatische Verbinden beim Neustart und den Windows Initiator beschreibe ich in separaten Postings.

D.h. auf dem Server wird ein „iSCSI Target“ konfiguriert, auf dem anderen Computer ein „iSCSI Initiator“.

„iSCSI Target und Initiator einrichten“ weiterlesen

Raspberry Pi Version per SSH ermitteln

Man kann ja nie genug Raspberries haben, oder? 🙂

Ich jedenfalls nicht, irgendwas gibt’s immer zu experimentieren.
Dabei haben sich im Laufe der Zeit so ziemlich alle Versionen angesammelt, und manchmal weiß ich nicht mehr, was für einen ich z.B. in den Zirkeltimer eingebaut habe.
Ausbauen ist keine Option, also brauche ich ein Kommando, dass ich per SSH absetzen kann.

„Raspberry Pi Version per SSH ermitteln“ weiterlesen

Raspberry Pi mit Edimax Wifi verliert Verbindung

Für meine Raspberries benutzte ich meistens die günstigen Edimax EW-7811UN Wifi adapter.
Sie sind klein, unterstützen 802.11n mit 150 MBit/s und funktionieren zuverlässig ohne große Treiberinstallation.

Nur ein Problem kann es, je nach installiertem Image, geben: Nach einigen Minuten ist der Raspberry nicht mehr über das Netzwerk erreichbar.
Man kann ihn nicht mehr anpingen, Versuche eine SSH-Verbindung aufzumachen scheitern mit einem Timeout.
Trotzdem kann man Raspberry immer noch Webseiten aufmachen. Und in dem Moment in dem man das macht, lässt sich der RPi auch wieder anpingen.

Ursache für dieses Verhalten ist das Power-Management des Wifi Adapters. Standardmäßig legt sich der Adapter schlafen, wenn ein paar Minuten keine Netzwerkaktivität vorhanden ist.

„Raspberry Pi mit Edimax Wifi verliert Verbindung“ weiterlesen

Eingestellte Auflösung eines Raspi oder BBB abfragen

Um herauszufinden, welche Bildschirmauflösung ein RasPi oder ein BeagleBoneBlack verwendet, sind folgende Kommandos hilfreich:

pi@raspberrypi ~ $ cat /proc/cmdline
dma.dmachans=0x7f35 bcm2708_fb.fbwidth=1318 bcm2708_fb.fbheight=736 bcm2708.boardrev=0x3 bcm2708.serial=0xfac46d2a smsc95xx.macaddr=B8:27:EB:C4:6D:2A sdhci-bcm2708.emmc_clock_freq=250000000 vc_mem.mem_base=0xec00000 vc_mem.mem_size=0x10000000 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p6 rootfstype=ext4 elevator=deadline rootwait

Oder auf einem BeagleBoneBlack:

root@beaglebone:~# cat /proc/cmdline
console=tty0 console=ttyO0,115200n8 capemgr.disable_partno=BB-BONELT-HDMI video=HDMI-A-1:800x480@60 root=UUID=639c0198-9bfd-4609-9c6a-abbb25a2e049 ro rootfstype=ext4 rootwait fixrtc quiet init=/lib/systemd/systemd

„Eingestellte Auflösung eines Raspi oder BBB abfragen“ weiterlesen

QT Applikationen starten

Seit einiger Zeit experimentiere ich mit QT auf einem Beaglebone Black (BBB), einem Kleincomputer mit ARM Prozessor, ganz ähnlich einem Raspberry Pi.

Da die aktuelle Version 5.x nicht ohne weiteres auf dem Beaglebone läuft, benutze ich Version 4.8.
Wirklich beeindruckend und wenn man die Entwicklungsumgebung erst einmal zum laufen gebracht hat auch recht luxuriös zu bedienen.

Das Ausführen einer graphischen Testapplikation vom Command Prompt aus scheitert aber erst mal.
D.h. man hat das Executable auf den BBB kopiert und started es mit ./demoprog.

Es passiert ausser einer Fehlermeldung QWSSocket::connectToLocalFile could not connect:: No such file or directory gar nichts.

Des Rätsels simple Lösung: Das Programm mit dem Parameter -qws starten, also etwa /demoprog -qws.

Woran liegt’s?

Sollte ein X-Windows laufen, sollte die Applikation auch ohne den Parameter ausgeführt werden, allerdings im Fenster.
Wenn man, wie ich, keine Ressourcen mit X-Windows verschwenden will, liefert QT ein eigenes graphisches Backend.
Das muss man mit -qws allerdings expliziet starten, ansonsten versucht die Applikation einen QWS Server zu finden, was natürlich prompt scheitert.

 

Pakete installieren / anzeigen

Raspbian Wheezy für den RPi ist ein Debian-Derivat, was mich jedes Mal zur Verzweifelung bringt.

Zum Beispiel bei der Paketverwaltung. Daher ein paar Hinweise:

Installierte Pakete anzeigen:
sudo dpkg --get-selections

Verfügbare Pakete suchen:
sudo apt-cache search suchwort [suchwort] (sucht in Beschreibungen, mehrere Suchwörter werden UND-Verknüpft)
sudo apt-cache pkgnames suchwort (findet Pakete deren Name mit suchwort anfängt)

Paket installieren:
sudo apt-get install paketname

Daten vom seriellen Port lesen

Als neuer Raspberry Pi und Arduino Besitzer, stellt sich irgendwann die Frage, wie man die vom Arduino emittierten Daten vom Rpi lesen kann.

Der Arduino wird per USB an den RPi angeschlossen und verwendet zur Datenübertragung ein serielles Protokoll.

Er gibt sich dabei als ein USB Modem aus, was er natürlich nicht ist. Aber deswegen meldet sich nicht als /dev/ttyUSB0 beim RPi, sondern als /dev/ttyACM0.

Mehr zu den Unterschieden zwischen /dev/ttyUSB und /dev/ttyACM findet sich hier: https://www.rfc1149.net/blog/2013/03/05/what-is-the-difference-between-devttyusbx-and-devttyacmx/

Ansonsten muß eigentlich nur die richtige Baudrate eingestellt werden, was mit folgendem Kommando geschieht:

stty -F /dev/ttyACM0 38400

Anschliessend kann man die vom Arduino gesendeten Daten ganz einfach anzeigen lassen:

cat /dev/ttyACM0