Raspberry Pi — Subversion-Server

Für den Datenaustausch zwischen meiner CNC-Fräse und dem normalen Büro-PC dient ein kleiner Raspberry Pi. Als Subversion-Server stellt er gleichzeitig ein Versionsverwaltungssystem zur Verfügung und erlaubt so eine einfache Archivierung von CAD-Daten, CAM-Daten und Maschinenprogrammen.

Schema Netz
Der Raspberry Pi als Datenaustauschserver im LAN

Der Steuer-PC meiner CNC-Fräse ist auch für einfache CAD-Anwendungen hinreichend leistungsfähig. Aufwendige Zeichnungen sind dagegen am normalen Büro-PC deutlich bequemer zu erstellen: Erstens muß man beim Zeichnen nicht stehen, zweitens ist der Monitor deutlich größer, drittens sind Maus und Tastatur deutlich einfacher zu bedienen, wenn sie frei von Späne-Rückständen sind und viertens ist auch ein Drucker für abschließende Plausibilitätsbetrachtungen nicht zu verachten.

Zwischen beiden Computern muß dann irgendwie ein Datenaustausch bewerkstelligt werden. Da auf dem CNC-Steuer-PC kein Virenschutzprogramm oder Firewall läuft, wäre es unverantwortlich, ihn ins lokale Netzwerk mit Internetzugang einzubinden. Andererseits besteht beim Hantieren mit USB-Speichersticks immer die Gefahr, den Überblick über alte und neue Dateien zu verlieren und irgendwann neue Zeichnungs­versionen durch ältere Varianten zu überschreiben.

Hier bietet ein kleiner Server mit Versions­verwaltung die perfekte Lösung: Verschiedene Versionen der CAD-Daten, CAM-Daten, Maschinen­programme und auch Maschinen-Einstellungs­daten lassen sich so sehr komfortabel hinterlegen und auch später nach­voll­ziehen. Gleichzeitig vollzieht er die Trennung zwischen dem Büro-Netzwerk und der CNC-Steuerung.

Übersicht

Hardware

Foto Raspberry Pi mit Aufsteckplatine
Raspberry Pi B+ mit Aufsteckplatine für die Echtzeit-Uhr und Taster. Am Deckel (hinten) ist eine Halterung angebracht, die es erlaubt, das Gerät unter den Tisch zu schrauben. (Zum Vergrößern auf das Bild klicken)

Der Raspberry Pi ist momentan der bekannteste Linux-Einplatinenrechner und für den angedachten Zweck hinreichend leistungsfähig. Mit der Debian-Variante „Raspbian” ist die passende Software sehr einfach aus Standard-Paketquellen verfügbar, und es existieren für fast jeden erdenklichen Anwendungszweck schon passende Beschreibungen und Anleitungen im Netz, so daß der Anfangsaufwand extrem niedrig ist.

Im vorliegenden Fall wurde die Version „B+” verwendet, weil sie sich besonders einfach installieren läßt: Durch die insgesamt vier USB-Anschlüsse sind neben dem Anschluß für den nötigen USB-Speicherstick und den WLAN-Stick noch zwei USB-Buchsen frei, an der sich für die Installation eine Tastatur anschließen läßt.

Ergänzt wird der Einplatinencomputer noch um eine Echtzeit-Uhr, da ein Versionierungs­server ohne eine korrekte Uhrzeiteinstellung entschieden an Nutzwert einbüßt.

Vorbereiten der Raspbian-Installation

Beim Raspberry Pi B liegt ein Faltblatt bei, auf dem die Einrichtung einer (Micro-)SD-Karte mit Raspbian beschrieben wird. Das Meiste steht so in der Anleitung und ist hier in grauer Schrift, die wenigen Fallstricke in normaler Schrift dargestellt.

USB-Speicherstick einbinden

Die Subversion-Repositories finden auf einem USB-Stick mit einem EXT2-Dateisystem Platz. Im Gegensatz zu der Unterbringung auf der SD-Karte bietet das den Vorteil, Repository-Daten auch dann noch sichern zu können, wenn der Raspberry Pi oder die SD-Karte nicht mehr funktionieren sollte.

Subversion installieren

Als Versionsverwaltungssystem kommt Subversion zum Einsatz, da mit TortoiseSVN[1] ein sehr komfortabler Windows-Client existiert, der die Funktion des Steuer-PCs nicht beeinträchtigt.

Auch für die Installation von Subversion auf einem Raspberry Pi gibt es ausgezeichnete Tutorials[2]. Hier folgt deshalb nur eine kurze Beschreibung für die hier vorliegende Konfiguration:

Der Subversion-Server-Teil ist jetzt fertig eingerichtet. (Für den Betrieb eines Versionsverwaltungsserver ist das Subversion-Handbuch[3] immer einen Blick wert.) Soll er in einem Inselnetz betrieben werden, wird noch eine Echtzeit-Uhr benötigt, damit er sinnvoll versionieren kann.

Echtzeit-Uhr

Der Uhrenbaustein DS1307 ist eine komplette Echtzeit-Uhr und läßt sich aus einer Knopfzelle betreiben. Er wird über den I²C-Bus angesprochen und benötigt minimale Außenbeschaltung. Für die Anbindung dieses Uhrenbausteins an den Raspberry Pi gibt es ein sehr kleinschrittiges Tutorial[4]

Uhr einrichten

Die folgende Beschreibung ist eine Kurzform des Tutorials[4].

Die Echtzeit-Uhr ist jetzt bereit und wird beim nächsten Systemstart gelesen.

Uhrzeit einstellen

Status LEDs

Es ist sehr praktisch, wenn eine LED anzeigt, wann das Gerät fertig gestartet ist bzw. wenn der shutdown eingeleitet ist. Unter alten Raspbian-Versionen war die Einbindung von Status-LEDs an die GPIOs absolut geradeheraus und mußte lediglich in die init.d eingetragen werden:

Leider funktioniert diese Methode nicht mehr seit Raspbian 3.5, da sich seitdem die GPIOs nicht mehr dauerhaft in den user space einbinden lassen.

Netzwerkeinstellungen

Schema Netz
Kommt irgendwie bekannt vor: Der Raspberry Pi als Datenaustauschserver im LAN

Der Raspberry-Pi befindet sich in zwei lokalen Netzwerken: In das normale Heimnetzwerk ist er per WLAN eingebunden, an das CNC-Netzwerk per Kabel. Der Raspberry Pi B+ benötigt dafür einen USB-WLAN-Stick.

Die Netzwerkeinstellungen erfolgen zum Schluß, weil bei dieser Gelegenheit unserem kleinen Versionsverwaltungsserver der Internetzugang gesperrt wird. Bei manchen WLAN-Routern kann der Internetzugang direkt gesperrt werden. Ist dies nicht möglich, können dem Raspberry-Pi IP-Adresse, Subnetz und Gateway manuell vorgegeben werden: Hier bewirkt eine ungültige Gateway-IP die Netztrennung.

In der Firewall müssen lediglich die Ports 22 (SSH) und 3690 (Subversion) offen bleiben.

Fazit

Ein Datenaustausch-Server zwischen der CNC-Fräse und dem normalen Heimnetzwerk ist mit vertretbarem zeitlichen und finanziellen Aufwand einrichtbar. Die gleichzeitige Einführung einer Versionsverwaltung führt dabei zu keinerlei Mehraufwand, erleichtert in der Praxis aber erheblich den Umgang mit unterschiedlichen Versionen von Zeichnungen, CAM-Daten und Maschinenprogrammen auf unterschiedlichen Rechnern.

Downloads

.zip-Datei Konfig-Datei Status-LED
DL1DOW German Amateur Radio Station