WAGO USB Service Cable unter Linux in einer Virtualbox benutzen

Um mit SPS-Komponenten zu kommunizieren gibt es verschiedene Wege und fast alle führen zum Ziel. Bei bestimmten Einstellungsarbeiten oder Firmware-Updates ist es aber sinnvoll, die meistens vorhandene Service-Schnittstelle der Controller zu nutzen.

Jeder Hersteller bietet Service-Kabel an, die zu den eigenen Schnittstellen passen, die Kabel sind natürlich immer unterschiedlich.
Auch WAGO bietet ein „WAGO USB Service Cable“ an. Für Windows gibt es einen speziellen Treiber für dieses Kabel, für Linux nicht. Ich bin mir ziemlich sicher, dass dieser Artikel auch auf Siemens S7 und LOGO, sowie auf die meisten anderen SPS-Hersteller anwendbar ist, davon habe ich allerdings keine Altgeräte zum Basteln da.

Ich bin mir sicher, außer mir gibt es noch viele andere SPS-Menschen, die Zuhause Linux nutzen und zum Herumprobieren eine Virtuelle Maschine mit Windows laufen haben, in der die Entwicklungsumgebung läuft. Das Kommunikationskabel läuft allerdings in z.B. Virtualbox nicht ohne nachzuhelfen, wobei es sich wirklich um eine Kleinigkeit handelt.
Denn: Auch wenn jeder Hersteller ziemlich teure Kommunikationskabel in verschiedenen Ausführungen anbietet, eines haben sie gemeinsam: Es sind ziemlich stinknormale USB (oder RS232) auf TTL Konverter, die unter Debian als ttyUSB erkannt werden. Es muss lediglich der Virtualbox-Benutzer in die Gruppe dialout aufgenommen werden, damit er es benutzen darf:

usermod -aG dialout BENUTZERNAME

In der Virtualbox erscheint es bei installiertem Windows-Treiber dann ganz normal in der USB-Geräte-Auswahl:

WAGO USB Service Cable in den USB-Geräten von Virtualbox
WAGO USB Service Cable in den USB-Geräten von Virtualbox

Aktiviert man es dort, kann man es beispielsweise in den WAGO Ethernet Settings als Kommunikationsschnittstelle nutzen:

Virtualbox: WAGO USB Service Cable in den Ethernet Settings
Virtualbox: WAGO USB Service Cable in den Ethernet Settings

Autokorrektur für die Konsole: The Fuck

Klangvoller Name, praktische Erweiterung für die Konsole: thefuck schlägt Korrekturen für falsch eingegebene Befehle auf der Konsole vor und führt diese auf Wunsch auch gleich aus:

Autokorrektur für die Konsole: The Fuck
Autokorrektur für die Konsole: The Fuck

Es ist natürlich auch möglich, einen anderen Alias als „fuck“ für die gewünschte Korrektur zu nutzen, dieser wird in der .bashrc oder der jeweiligen Config-Datei der Shell hinterlegt.

Distributionsunabhängige Hardware mit Windows-Exklusiven Updates

Update: Der ASRock-Support hat sich zu dem Thema geäußert. Siehe unten.

Um in meinen PC einen Prozessor einer neueren Generation (Ivy Bridge) einbauen zu können, brauchte das etwas angestaubte BIOS ein Update.

Es ist jetzt auch nicht das erste Mal, dass ich so etwas mache, normalerweise gibt es ein ROM zum Download beim Hersteller des Mainboards, manchmal auch deutlich komfortablere Lösungen, die direkt im BIOS vom USB-Stick geflasht werden können. Alles kein Problem.

Anders bei meinem Mainboard. ASRock (H67M-GE/HT) stellt nämlich ausschließlich ein Update-Tool für Windows bereit, die ausführbare Datei ist dabei gleichzeitig Tool und ROM und muss aus einem nativ laufenden Windows ausgeführt werden. Einen Teil der Daten tauscht die Software bei laufendem System aus, bootet dann ins BIOS und flasht den Chip dann vollständig. Eigentlich auch sehr komfortabel. Aber eben nur für Windows. Der Hersteller bietet keinerlei Möglichkeit an, das BIOS über einen DOS-Stick oder über das automatische Update, das auch in diesem BIOS schon vorhanden ist zu flashen.

Da steht man also mit einem Rechner, auf dem nur verschiedene Linuxe laufen und versucht ein völlig distributionsunabhängiges Stück Hardware zu aktualisieren, für das es der Hersteller offensichtlich nicht für nötig erachtet, einen einigermaßen distributionsunabhängigen Update-Weg zur Verfügung zu stellen.

Ich habe letztendlich auf einer bis dato leeren Partition Windows 8 als Evaluationsversion installiert, das BIOS geflasht und die Partition wieder geplättet. Wohl dem, der einen USB-Stick mit einer guten Geschwindigkeit an seinen PC stecken kann.

Update:

Der Support hat sich gemeldet und erklärt, wieso es nur das Windows-Tool gibt, nicht aber die Dateien zum Flashen oder InstantFlash-Datei. Es gab 2011 eine Rückrufaktion von Intel, der Verbaute Chipsatz hatte wohl Probleme mit dem SATA-Controller und es wurden keine Ivy-CPUs unterstützt.
Damit sichergestellt ist, dass das Update des BIOS nicht zu diesen Problemen führt, wurde nur dieses Tool veröffentlicht, das erst prüft, ob ein Update möglich ist und dieses erst dann ausführt. Und das Tool gibt es eben in diesem Fall nur für Windows.

Der Support prüft aber offensichtlich bereitwillig, ob das jeweilige Board davon betroffen ist und sendet die InstantFlash-Datei zu, wenn alles okay ist.

Kurz notiert: Dateimanager Sunflower

Mein relativ altes Laptop (Lenovo 3000 N200) wollte gerne wiederbelebt werden und bekam von mir heute ein frisches Fedora. In diesem Zuge probierte ich den Windowmanager i3 aus und suchte dafür nach einem guten Dateimanager.

Bisher hatte ich mit diesem Thema keine großen Berührungspunkte, die meisten Desktops bringen einen Standard-Dateimanager mit, momentan nutze ich Mate mit Caja auf meinem Desktop-PC.

Nach kurzem stöbern, was denn der „beste“ Dateimanager sei, stieß ich auf „Sunflower„, einen zweispaltigen Dateimanager in Python und GTK, der sich auch in i3 super einfügt.

Es werden neben den Quellen auch fertige Downloads für verschiedene Distributionen angeboten.

Falls also gerade jemand auf der Suche nach einem neuen Dateimanager ist, der viele nette Funktionen mitbringt und neben der Vollständigkeit auch offensichtlich stabil läuft: Einfach mal ausprobieren.

ISPConfig 3: Jailkit nachträglich installieren

Mit ISPConfig 3 ist es möglich, den Hosting-Kunden bzw. Benutzern einen Zugriff auf den ihnen zugewiesenen Webspace per SSH zu gewähren, die Benutzer werden mittels Jailkit in ihren Ordner gechrootet.

Da ISPConfig bei der Einrichtung überprüft, welche Dienste verfügbar sind und diese dann konfiguriert, muss Jailkit eigentlich installiert werden, bevor ISPConfig installiert wird. Stellt man nun nachher fest, dass man Jailkit nun doch benötigt, ist das natürlich doof. Es gibt aber einen Weg, Jailkit bei einer bestehenden ISPConfig-Installation nachträglich zu konfigurieren und einzubinden, diesen möchte ich hier zeigen. Das nachfolgende Tutorial wurde mit Version 3.0.5.4p2 durchgeführt, es sollte aber auch mit älteren Versionen so funktionieren. Alles weitere geschieht natürlich auf eigene Gefahr.

Zuerst muss Jailkit natürlich heruntergeladen und installiert werden, wie es z.B. das Perfect Server Tutorial bei Howtoforge zeigt (die Version von Jailkit muss natürlich angepasst werden):

apt-get install build-essential autoconf automake1.9  libtool flex bison
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.17.tar.gz
tar xvfz jailkit-2.17.tar.gz
cd jailkit-2.17
./configure
make
make install

Nun muss ISPConfig erneut heruntergeladen und entpackt werden:

cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xvfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install

Danach muss die Datei update.php geändert werden. Hierzu suchen wir die folgende Zeile in der Datei:

if($reconfigure_services_answer == 'yes') {

die darauf folgenden Zeilen löschen wir bis zu den Zeilen

//** Configure Jailkit
swriteln('Configuring Jailkit');
$inst->configure_jailkit();

Diese lassen wir stehen und löschen darunter wieder alle weiteren Zeilen bis zur schließenden Klammer. Der Abschnitt sieht nun so aus:

//** Shall the services be reconfigured during update
$reconfigure_services_answer = $inst->simple_query('Reconfigure Services?', array('yes', 'no'), 'yes','reconfigure_services');

if($reconfigure_services_answer == 'yes') {

                //** Configure Jailkit
                swriteln('Configuring Jailkit');
                $inst->configure_jailkit();

}

//** Configure ISPConfig

Die Datei wird gespeichert. Nun müssen wir das Update starten, indem wir folgenden Befehl eingeben:

php -q update.php

Der automatische Updater startet und fragt uns einige Fragen, die wir wie folgt beantworten:

Shall the script create a ISPConfig backup in /var/backup/ now? (yes,no) [yes]: yes
Reconfigure Permissions in master database? (yes,no) [no]: no
Reconfigure Services? (yes,no) [yes]: yes

Nun werden die Services rekonfiguriert. Da wir eben in der update.php sämtliche Services außer Jailkit gelöscht haben, wird nur Jailkit konfiguriert, der Rest bleibt unangetastet. Als nächstes kommt die Ausgabe „Updating ISPConfig“. Das wollen wir ja nicht, deshalb brechen wir das Script an dieser Stelle mit Strg + C ab.

Das wars eigentlich. Nun sollten noch die Dateien in /tmp gelöscht werden und Jailkit sollte verfügbar sein und funktionieren.