Raspberry Pi als KVM-Fernsteuerung
Die Software Pi-KVM im Elektor-Labor-Test
KVM steht für Keyboard, Video, Mouse - wer darauf Zugriff besitzt, kann einen Rechner (fern)steuern. Die clevere Software Pi-KVM und ein Raspberry Pi 4 sind eine preiswerte Möglichkeit, nicht nur einen PC, sondern auch andere Geräte über das Internet zu steuern, ohne dass dafür Software auf dem ferngesteuerten Rechner installiert werden muss. Daneben erlaubt Pi-KVM aber auch das Bereitstellen von virtuellen Datenträgern, so dass ein Rechner nicht nur aus der Ferne gesteuert und gewartet werden kann, sondern eine komplette Neuinstallation möglich ist.
Während der Pandemie erreichte mich die Information, dass in meinem Elternhaus noch Rechner laufen, die mit Windows 7 (einige gar mit Windows XP) ausgestattet sind. Wegen der Sicherheitslücken, die auch nicht mehr behoben werden können, müssen diese Rechner dringendst aktualisiert werden. Mit einem Update ist es bei den Maschinen leider nicht getan, sie verlangen nach einer kompletten Neuinstallation. Hinfahren ist keine Option, wegen der Pandemie und mehr als acht Stunden Fahrzeit.
Wer schon einmal versucht hat, jemanden mit einer Mischung aus Telefonat und Videochat durch Dutzende von Installationsschritten zu leiten, kann sich leicht vorstellen, dass so etwas bei einer Betriebssysteminstallation und Datensicherung keine gute Idee ist. Ein Remotezugriff muss her. Und genau das ist es, was mit einem Raspberry Pi als KVM-Fernsteuerung ermöglicht wird.
An dieser Stelle kann in dem Text auch Eltern gegen Kunden, Rechner gegen Maschinensteuerung und Neuinstallation durch Fehleranalyse ersetzt werden. Ein Paar Augen, mit dem man sich aus der Ferne hardwareunabhängig ein System ansehen kann, ermöglicht es, lange Anfahrten zu vermeiden. Man kann so auch Geräte und Messinstrumente fernbedienen, die dafür nie vom Hersteller vorgesehen waren. Bild 1 soll den Einsatz von Pi-KVM für die Fernsteuerung eines PCs verdeutlichen. Eine Maschine könnte wie in Bild 2 ferngewartet werden.
Es gibt doch Fernwartungssoftware?
Wer auf einem Raspberry Pi oder einem PC unterwegs ist, wird sicherlich schon einmal ein Tool wie VNC, AnyDesk oder TeamViewer benutzt haben. Neben diesen gibt es noch etliche weitere Lösungen für die Fernwartung und Steuerung. Alle diese Lösungen sind preiswert oder für den Privatanwender sogar kostenfrei zu nutzen. Um jemanden neue Software einzurichten oder beim Erstellen von Social Media Posts zu helfen, ist so etwas eine schnelle und unkomplizierte Lösung. Diese Helfer setzen aber alle ein laufendes Betriebssystem mit einer Internetanbindung voraus.
Doch was, wenn der Rechner nicht mehr bootet oder keine Netzwerkverbindung mehr aufbauen kann? Oder wenn das Betriebssystem neu installiert werden muss? Das ist der Punkt, an dem jemand mit passenden Fachkenntnissen vor Ort sein muss, um das Betriebssystem wieder zum Booten zu bewegen und ein Netzwerk oder eine Internetverbindung herstellen. Dies gilt auch für die Neuinstallation eines Betriebssystems. Bild 3 zeigt die BIOS-Meldung eines PCs, der keine bootfähigen Datenträger finden konnte.
Pi-KVM arbeitet unabhängig von dem zu steuernden Rechner und überträgt das Videobild, das die Grafikarte ausgibt, über das Netzwerk an ein zweites System, auf dem nur ein HTML5-fähiger Webbrowser laufen muss. Dort kann dann nicht nur die Bildausgabe des ferngesteuerten Rechners dargestellt werden, die Mausbewegung und Tastatureingaben werden auch wieder an den zu steuernden Rechner zurückgegeben. Damit kann man aus der Ferne den Rechner bedienen, als ob man vor dessen Bildschirm, Maus und Tastatur sitzen würde. Bild 4 zeigt die BIOS-Meldung des PCs nun bequem im Browser des entfernten Rechners. Auch der Zugriff auf das BIOS (wie in Bild 5) lässt sich bequem per entferntem Browser steuern, so das es nicht zwingend erforderlich ist, in der Nähe des PCs zu sein.
Virtuelle Datenträger
Etwas, das über größere Distanz (meist reichen schon 2 m) kompliziert wird, ist das Einstecken von USB-Bootsticks oder rotierenden Datenträgern wie DVD oder CD. Man kann nun einen Bootstick zu dem fernzusteuernden PC senden und hoffen, dass jemand vor Ort diesen auch richtig einsteckt. Pi-KVM bietet die Option virtueller Datenträger, kann also einen USB-Stick oder ein USB-CD-ROM-Laufwerk emulieren. Dazu lässt sich einfach per Browser das passende Datenträgerabbild hochladen und einbinden. Bild 6 zeigt das Menü der virtuellen Datenträger. Aktuell ist man bei der CD-Emulation auf ISO-Dateien beschränkt, so dass diese nicht größer als 2 GB sein dürfen. Für ISO-Dateien größer 2 GB (Bild 7) müssen Hybrid-ISOs vorliegen, also solche, die auch auf einen USB-Stick geschrieben werden könnten. Diese lassen sich dann mit der Emulationsart Flash verwenden und erscheinen als USB-Massenspeicher.
Gibt es nicht sowas wie Pi-KVM schon?
Die Funktonen, die ein Pi-KVM bereitstellt, werden auch von anderen Geräten anderer Hersteller angeboten, jedoch meistens deutlich teurer als die Pi-KVM-Lösung und außerdem mit Closed-Source-Firmware. Bei diesen Geräten sind dann auch etliche Komfortfunktionen aufpreispflichtig. Der Pi-KVM kommt als Open-Source-Projekt und kann mit gängiger Hardware zusammengesetzt werden. Am Ende sind etwa 100 Euro für die DIY-Lösung zu veranschlagen. Es gibt zwei Varianten, einen Pi-KVM zu bauen, eine mit einer HDMI-CSI-Bridge und eine mit einem USB-HDMI-Dongle. Bild 8 und Bild 9 zeigen den Datenfluss durch den Raspberry Pi 4 bei der jeweiligen Lösung. An dieser Stelle wollen wir einmal die benötigten Komponenten vorstellen und ein paar Hinweise zum Nachbau geben.
Benötigte Hardware
Die Hardware, die für den Pi KVM benötigt wird, ist recht simpel:
- Ein Raspberry Pi Model 4 (ab 2 GB RAM) (Bild 10)
- Eine Micro-SD-Karte (16 GB empfohlen)
- Ein USB-Netzteil (5V/3A)
- Optionales Gehäuse
- HDMI-zu-CSI-Bridge oder USB-HDMI-Capture-Dongle (Bild 11)
- Ein USB-Y-Kabel (Bild 12 und Bild 13)
Während die ersten drei Komponenten bei den meisten Lesern vorhanden oder leicht zu besorgen sein dürften, sind die letzten drei etwas schwieriger zu beschaffen. Für die HDMI-zu-CSI-Bridge (Bild 14 zeigt zwei erhältliche Varianten) hingegen muss für eine europäische Bezugsquelle etwas gesucht oder auf eine aus Fernost zurückgegriffen werden. Ein USB-HDMI-Capture-Dongle kann bei einschlägigen Warenversendern für wenige Euro bestellt werden. Auch wenn der Preis dieser Dongles verlockend sein mag, so haben diese einige Einschränkungen, was die Stabilität oder die unterstützten Auflösungen angeht. Die HDMI-zu-CSI-Bridge ist die stabilere und kompatiblere Wahl.
Für die Verbindung zwischen dem Raspberry Pi 4 und dem zu steuernden Rechner wird der USB-C-Anschluss des Raspberry Pi 4 im USB-OTG-Modus verwendet. Damit kann sich der Raspberry Pi 4 gegenüber einem PC wie eine Tastatur, Maus oder Massenspeichergerät verhalten. Hierfür wird der Raspberry Pi 4 mit einem USB-A-zu-USB-C-Kabel mit dem Rechner verbunden und würde darüber auch mit Strom versorgt. Da hier 3 A bei 5 V nötig sind, kann ein stabiler Betrieb nicht garantiert werden, so dass zusätzlich Leistung durch ein Netzteil bereitgestellt werden muss.
Da der USB-C-Anschluss im OTG-Modus verwendet wird, könnte man über die 40-Pin-Stiftleiste 5 V in den Raspberry Pi 4 speisen. Jedoch würden diese 5 V dann auch den an den USB-C-Port angeschlossenen Rechner mit Strom versorgen. Das ist etwas, das etliche Rechner nicht gerne mögen und mit Fehlfunktionen quittieren. Eine Lösung besteht in einem Y-Kabel, das die Daten und die Spannungsversorgung aufteilt.
Damit nicht zwei USB-Kabel passend zusammengelötet werden müssen, hat das Elektor-Labor eine kleine Platine geroutet (Bild 15). Zwei USB-B-Buchsen (Bild 16) erlauben einmal den Anschluss an ein Netzteil und einmal den Anschluss an einen Rechner, ohne dass 5 V rückwärts gespeist werden. Beiden Buchsen gemein ist, dass eine LED das Vorhandensein der 5-V-Busspannung signalisiert. Die Platine liegt als KiCAD-Projekt vor und kann aus dem GitHub-Repository von Elektor heruntergeladen werden. Die Platine ist jedoch noch nicht ausgiebig getestet worden, daher erfolgt der Nachbau auf eigene Gefahr (siehe Schaltplan und Stückliste am Ende des Artikels).
Software-Installation
Die Software Pi-KVM kann von der Homepage des Entwicklers heruntergeladen werden. Eine SD-Karte mit 16 GB-Speicher (Bild 17) wird für die Installation empfohlen. Wird eine HDMI-zu-CSI-Bridge verwendet, so kann man das Raspberry Pi 4 v2 Platform Image für die HDMI-zu-CSI-Bridge nutzen; wird ein USB-HDMI-Dongle eingesetzt, entsprechend das HDMI-USB-Dongle-Image.
Die heruntergeladene Datei muss mit einem Programm wie 7-Zip entpackt und dann mit einem Tool wie dem Raspberry Pi Imager auf eine SD-Karte geschrieben werden. Damit ist die Basisinstallation abgeschlossen und es kann mit dem Zusammenbau der Hardware begonnen werden. Wer ein Blick in den Quelltext wagen möchte, kann dieses im GitHub-Repository des Pi-KVM machen.
Hardwarezusammenbau
Wird die CSI-zu-HDMI-Bridge verwendet, gestaltet es sich mit einem passenden Gehäuse leider etwas schwieriger. Entweder hat jemand schon ein solches Gehäuse gebaut oder aber man muss sich mit ein wenig FreeCAD und einem 3D-Drucker selbst behelfen. Für diesen Artikel werden die Teile daher fliegend verbaut.
Für den Aufbau mit HDMI-zu-CSI-Bridge wird eine entsprechende Platine und ein Raspberry-Pi-Kamerakabel benötigt. Eine passend vorbereitete SD-Karte mit dem aktuellen Image für Pi-KVM muss in den Raspberry Pi 4 eingelegt und die HDMI-zu-CSI-Bridge mit dem Kameraport verbunden werden. Das USB-Y-Kabel muss mit dem USB-C-Port des Raspberry-Pi-4 verbunden sein. Damit ist der Pi-KVM einsatzbereit (Bild 18).
Für die Variante mit HDMI-USB-Dongle muss dieser mit einem der USB-2.0-Ports des Raspberry Pi 4B verbunden sein. Verwendet man einen der blauen USB-3.0-Ports, so wird der abgebildete USB-Dongle nicht erkannt (Bild 19).
Erster Testlauf
Sind alle Teile zusammengebaut und wenn möglich in einem Gehäuse verstaut, steht dem ersten Testlauf nichts mehr im Weg.
Ich selbst habe als Testobjekt einen zweiten Raspberry Pi 4 verwendet, der seit einiger Zeit als Kamera seinen Dienst auf meinem Schreibtisch verrichtet (Bild 20. Der Artikel zur Raspberry Pi 4 Kamera ist in ElektorMag 9-10/2021 zu finden. Der Raspberry Pi 4, auf dem Pi-KVM läuft, wird an ein kabelgebundenes Netzwerk angeschlossen.
Nach dem ersten Start des Pi-KVM dauert es einen kleinen Moment, da die Partition an die Größe der SD-Karte angepasst wird. Ist dieser Vorgang abgeschlossen, versucht Pi-KVM per DHCP eine IP-Adresse zu erhalten. Eventuell ist es nötig, im Router oder DHCP-Server nachzusehen, welche IP dem Pi-KVM zugewiesen wurde. Mit einem Webbrowser kann dann die Oberfläche des Pi-KVM aufgerufen werden.
Nach dem Booten kann man sich auf der Oberfläche mit dem Benutzernamen admin und dem Kennwort admin anmelden. Unter dem Punkt KVM erscheint dann das Schirmbild des zweiten Raspberry Pi 4 und sowohl Maus als auch Tastatur lassen sich nun aus der Ferne bedienen.
Bild 21 zeigt die Weboberfläche mit dem Desktop des ferngesteuerten Raspberry Pi, aufgenommen mit der HDMI-zu-CSI-Bridge. Bild 22 zeigt die gleiche Szene, wobei hier ein HDMI-USB-Dongle zum Einsatz kam. Die Bildqualität ist schlechter und es sind grüne Ränder als Artefakte sichtbar.
Für die weitere Konfiguration und die Optionen lohnt sich ein Blick auf die Homepage von Pi-KVM oder in das GitHub-Repository. Neben Maus und Tastatur steht wie schon erwähnt auch ein Massenspeicher bereit. Der Raspberry Pi 4 mit Pi-KVM kann entweder ein optisches Laufwerk oder einen USB-Stick emulieren. Dazu lässt sich das passende Image über die Weboberfläche auf den Raspberry Pi 4 kopieren (Bild 23).
Ausblick
Die Pi-KVM Software und ein paar preiswerte Komponenten verwandeln einen Raspberry Pi 4 in eine Fernsteuerung nicht nur für Rechner, sondern auch anderes Equipment, das sich mit Maus und Tastatur bedienen lässt. Wer nicht selbst die Komponenten zusammenbauen möchte, sollte einen Blick auf die PI-KVM Homepage wagen. Dort wird an einem fertigen HAT für den Raspberry Pi 4 gearbeitet und einem dazu passenden Gehäuse. Pi-KVM und seine Entwickler werden momentan mit Hilfe von Spenden durch Patreon oder Paypal finanziert. Sollte Ihnen das Projekt gefallen, würde der Entwickler sich sicherlich über eine kleine Anerkennung freuen.
Haben Sie Fragen oder Kommentare?
Haben Sie technische Fragen oder Kommentare zu diesem Artikel? Schicken Sie eine E-Mail an den Autor unter mathias.claussen@elektor.com oder kontaktieren Sie Elektor unter editor@elektor.com.
Components
Stückliste
Widerstände (0,25 W)R1,R2,R3 = 100 k
R4,R5 = 1 k
Kondensatoren
C1,C2,C3 = 100 n
Halbleiter
D1,D2 = LED rot 5 mm
Sonstiges
K1,K2 = USB-B-Buchse für Platinenmontage
K3 = USB-A-Stecker für Platinenmontage
Platine = 200523-1 V1.0