Die PiKVM-Software für den Raspberry Pi 4 ermöglicht den Fernzugriff auf einen PC, Server oder eine andere Maschine über eine Netzwerkverbindung. Wir konnten dem Entwickler von PiKVM ein paar Fragen zu seinem Projekt stellen:
 

Was ist PiKVM?

Die PiKVM-Software ermöglicht es, einen Raspberry Pi 4 in eine kostengünstige Fernbedienung für andere Computer zu verwandeln. Der Raspberry Pi wird lokal mit dem zu steuernden Computer verbunden. Er greift auf das Monitorbild zu und emuliert eine USB-Maus, eine Tastatur und einen USB-Stick. Die Signale werden dann von der PiKVM-Software, die auf dem Raspberry Pi läuft, über das Internet zugänglich gemacht. Aufseiten des steuernden Computers wird lediglich ein Webbrowser benötigt. Das PiKVM-Projekt (Benutzeroberfläche in Bild 1) ist quelloffen und die Kosten für die benötigte Hardware betragen weniger als 100 € für die DIY-Version, ein Bruchteil ähnlicher kommerzieller Produkte. Das wirft einige Fragen auf, die wir Maxim Devaev, dem Entwickler von PiKVM gestellt haben.

PiKVM user interface
Bild 1. Benutzeroberfläche von PiKVM.


Die Idee

Claußen: Lassen Sie uns mit Ihrem Hintergrund beginnen. Erzählen Sie uns, wie Sie sich für die Elektronik interessiert haben. Haben Sie an der Universität studiert?

Devaev​: Sicher, aber es wäre falsch, mich einen Elektronikspezialisten zu nennen. Ich weiß natürlich, wie man einen Lötkolben hält, und ich kann einen einfachen Schaltplan entwerfen und ihn zusammenbauen, ohne das ganze Ding zu verbrennen. Aber in erster Linie bin ich ein Software-Ingenieur. Elektronik ist meine sekundäre und weit weniger entwickelte Fähigkeit.

Ich habe mich schon als Kind für Technik interessiert und seitdem eine Menge wissenschaftlicher und technischer Literatur gelesen. Die Anschaffung meines ersten PCs hatte natürlich große Auswirkungen auf den Inhalt meiner Bücherregale, die mit all den Informatikbüchern sehr schwer wurden.

Ein paar Jahre später, als ich mich für einen Studiengang an der Universität entscheiden musste, habe ich Informationssicherheit gewählt, brach ihn aber kurz darauf ab, da mich der Lehrplan enttäuschte. Die russische Hochschulbildung ist sehr formal: Es ist oft wichtiger, dass man in den Dutzenden von begleitenden humanitären Fächern nicht durchfällt.

Also habe ich mich selbst weitergebildet und einen Job als Softwareentwickler angenommen. Ich arbeitete, arbeitete, arbeitete, verbesserte mich, und einige Zeit später landete ich bei Yandex (eine Art russisches Google). Dort bin ich neun Jahre geblieben und habe in der Zeit Verteilte Systeme entwickelt, löste große Infrastrukturüberwachungs- und -verwaltungsprobleme und all so etwas. Das ist vielleicht nicht das Interessanteste, aber es ist, was es ist.

Claußen: Wie sind Sie auf die Idee gekommen, das PiKVM-Projekt zu starten?

Devaev:
Das ist eigentlich eine lustige Geschichte. Ich war einmal zu Besuch bei meinen Eltern, 1400 km von zu Hause entfernt. Mein Heimserver, den ich immer eingeschaltet habe, fiel aus, als ich gerade den Kuchen meiner Mutter aß. Ich war verärgert und musste meinen Freund bitten, zu mir zu fahren und ihn neu zu starten, und beschloss, einen KVM over IP zu kaufen. Ich ging online und sah ... 500 Dollar? Ernsthaft? Was ist Wundersames in dem Ding drin, dass es 500 Dollar kostet? Und dann las ich einige Bewertungen und stellte fest, dass man für diese 500 Dollar ein überteuertes Stück Hardware bekommt, gepaart mit schrecklicher, fehlerhafter, proprietärer Software mit Lizenzbeschränkungen. Und die Geräte auf dem Markt waren zudem alle gleich schlecht. Ich weiß nicht, was in mir vorging, aber ich beschloss, diesen Betrag aus Prinzip nicht zu zahlen. Wenn Sie etwas Gutes wollen, machen Sie es selbst. Und der Rest ist Geschichte.

Claußen: Warum haben Sie einen Raspberry Pi für das Projekt verwendet?

Devaev:
Der Raspberry Pi war einfach praktisch. Er war neu auf dem Markt und passte perfekt für ein kleines eingebettetes System. Im Grunde hätte es auch jeder andere ARM-Computer sein können, aber der Preis, die Verbreitung und der großartige Herstellersupport spielten eine entscheidende Rolle. Ich wollte keine Zeit damit verbringen, fremde Geräte zu debuggen, eigene Kernel zu erstellen und so weiter. Der Raspberry Pi erlaubte es mir, mich auf die eigentliche Aufgabe zu konzentrieren.

Neben dem Raspberry Pi brauchte ich ein Gerät zur Videoerfassung und eine Möglichkeit, eine Tastatur zu emulieren (an eine Maus dachte ich damals noch nicht). Zu dieser Zeit gab es keine billigen VGA-Erfassungsgeräte auf dem Markt, also entschied ich mich für einen kleinen Hack: Ich verwendete einen Cinch-USB-Dongle, wie er normalerweise zum Digitalisieren alter VHS-Kassetten verwendet wird, und speiste analoges Video über ein billiges VGA-Cinch-Adapter ein. Die Videoqualität war (wie in Bild 2 zu sehen, Anmerkung des Herausgebers) grauenhaft, aber gut genug, um das BIOS einzurichten und eine Konsole zu benutzen. Für die Tastatur kaufte ich einen PS/2-zu-USB-Wandler und emulierte PS/2-Signale über GPIO. Das war billig, primitiv, aber es funktionierte. Dennoch war ich letztendlich all diese Hardware weg und entschied mich für eine gängige HDMI-Brücke für Video und tauschte meinen PS/2-Konverter gegen einen Arduino mit kundenspezifischer Software aus.

 Prototype of PiKVM using a Raspberry Pi 1
Bild 2. Prototyp von PiKVM auf einem Raspberry Pi 1 (Quelle: Maxim Deveav).

Claußen: Wie hat das Erscheinen des Raspberry Pi 4 das Projekt beeinflusst?

Devaev:
Neben einer besseren Leistung und einer Möglichkeit, die Videoqualität zu verbessern, hat der Pi 4 zwei USB-Controller. Ich konnte einen davon verwenden, um eine Tastatur und eine Maus auf Kernel-Ebene zu emulieren, was es mir ermöglichte, den Arduino wegzulassen. Es gelang mir auch, ein virtuelles CD-Laufwerk zu entwerfen, so dass ich aus der Ferne ein Betriebssystem auf dem Server neu installieren konnte. Damit war der PiKVM den meisten kommerziellen Geräten in Bezug auf Preis und Funktionalität überlegen.

Claußen: Haben Sie PiKVM als „teilzeit-kommerzielles“ oder als Hobbyprojekt begonnen?

Devaev:
Es war eine Art Hobbyprojekt. Es hat mir Spaß gemacht, meinen Perfektionismus auszuleben. Ich hätte nie gedacht, dass jemand außer mir es brauchen würde, bis ich über ein ähnliches, halb aufgegebenes Projekt auf GitHub (DIY-IPMI) stolperte. Der Autor hatte den gleichen Weg eingeschlagen, aber das Projekt in der Proof-of-Concept-Phase aufgegeben. Ich war begeistert. Ich begann, für mein Projekt zu werben und wie verrückt zu arbeiten, löste ein Problem nach dem anderen, fügte mehr und mehr Funktionalität hinzu und verbrachte Tausende von Stunden mit dem Projekt. Es war großartig zu sehen, wie viele Menschen meine Software zu nutzen begannen. Vorher hatte ich nur kleine Utility-Scripts oder gewichtige Unternehmenssoftware entwickelt.


Gelernte Lektionen

Claußen: Gibt es Lektionen, die Sie aus diesem Projekt gelernt haben und die Sie gerne mit anderen Entwicklern teilen würden?

Devaev: 
Okay, hier ist so eine Geschichte. Die Weboberfläche ist der Hauptweg, um PiKVM zu nutzen, aber es gibt einen selbstentwickelten Virtual-Network-Computing-Server (VNC) als Alternative. Das ist cool, nicht wahr - einen VNC-Client verwenden, um das BIOS einzurichten! Ich habe MJPEG verwendet, um Videos sowohl für das Web als auch für VNC zu übertragen. Es ist ein einfaches und sehr bandbreitenschonendes Format. Für den Browser konnte ich H.264 und WebRTC verwenden, aber für VNC gab es keine Möglichkeit einer vollwertigen differentiellen Codierung.

Ich habe mich aufgerafft und dem RFBProto (de facto die Beschreibung des VNC-Standards) und dem Betreuer des TigerVNC-Repositorys einen Vorschlag gemacht: Lasst uns eine neue Kodierung erstellen, sie wäre großartig für User mit geringer Bandbreite. Wir diskutierten lange über die Details und kamen schließlich zu einem Format, das uns allen zusagte. Dann ging ich zur IANA und bat sie, diese neue VNC-Erweiterung zu registrieren. Ich fürchtete, dass sie nein sagen würden, da sie bereits ein registriertes Format ohne Beschreibung hatten, aber sie ließen sich darauf ein und erklärten, dass es sich um eine Altlast eines proprietären Clients handelte. Und siehe da, wir entwickeln einen offiziellen TigerVNC-Patch für die allererste quelloffene H.264-über-VNC-Erweiterung. Die Beta-Version läuft reibungslos! Sie ist zwar noch sehr neu, aber einige VNC-Clients und -Server sind bereits daran interessiert, sie zu implementieren.

Die Moral von der Geschichte ist: Scheuen Sie sich nicht, mit anderen Projekten zu kommunizieren, auch wenn sie monumental erscheinen. Und noch etwas: Auch eine einzelne Person kann die Entwicklung des gesamten Protokolls vorantreiben. Man muss nur groß träumen!

Claußen: Hat das Erscheinen des 10-Dollar-USB-HDMI-Dongles geholfen, das PiKVM-Projekt voranzutreiben?

Devaev:
Das kommt darauf an. Vor dem USB-Dongle verwendete ich eine HDMI-CSI-Brücke (Bild 3), die viele Vorteile hatte.

HDMI-to-CSI Bridge
Bild 3. HDMI-zu-CSI-Bridge in zwei Varianten.

Sicherlich hat der USB-Dongle in Bild 4 eine große Rolle bei der Verbreitung von PiKVM gespielt, da er sehr billig war, aber ich habe immer davon abgeraten, ihn zu benutzen, da er Hardwareprobleme hat und nicht sehr stabil ist.

HDMI-to-USB Dongle
Bild 4. HDMI-auf-USB-Dongle.

Viele Leute haben berichtet, dass sie den USB-Dongle gekauft und es hinterher bereut haben, weil sie oft einen leeren Bildschirm sahen und nichts dagegen tun konnten. Ein USB-Dongle ist eine Blackbox: Man hat keine Ahnung, wie er funktioniert, und wenn etwas schief geht, kann man es nicht reparieren. Die Bridge hingegen ist viel offener und fast die gesamte Videoverarbeitung wird vom Kernel und meiner Software übernommen.

Claußen: PiKVM ist ein Open-Source-Projekt, das derzeit kostenlos genutzt werden kann. Wie wird seine Entwicklung finanziert? Sie scheinen ja nun Vollzeit an dem Projekt zu arbeiten.

Devaev:
Ich würde lügen, wenn ich sagen würde, dass ich eine langfristige Vision, einen Plan und ein Verständnis für den Markt hätte. Alles begann letztes Jahr, als ich meinen Job kündigte, um eine Pause einzulegen und über meine Karriere nachzudenken. Ich setzte die Arbeit an PiKVM als Hobby fort. Die Community wuchs und ich dachte, es wäre toll, wenn PiKVM mein Hauptberuf werden würde, und ich habe einige Open-Source-Projekte gesehen, deren Autoren damit ihren Lebensunterhalt verdienten. Es war eine Win-Win-Situation: Ich würde das tun, was mich wirklich interessiert, und die Benutzer würden für eine kleine Spende qualitativ hochwertige Software erhalten. Als Test richtete ich Patreon ein und kündigte an, dass ich ab sofort Spenden annehmen würde, da ich nun ohne Job war und bereit, PiKVM auf Anfrage zu verbessern (falls eine bestimmte Funktion schnell benötigt wurde). Zu meiner Überraschung begann ich einige Monate später, etwas Gewinn zu machen. Es war weit weniger als mein vorheriges Gehalt, aber wenn man bedenkt, dass ich kein Geld mehr für Fahrten ins Büro ausgeben musste, genug Schlaf bekam und sogar etwas Gewicht verlor, war es ein fairer Handel. Auch die User waren zufrieden, denn es konnte nun nur eine halbe Stunde dauern, bis ein kritischer Fehler gefunden und behoben war, und ich fügte neue Funktionen innerhalb weniger Tage hinzu.

Claußen: Wie unterstützt die Community Ihr Projekt, abgesehen davon, dass sie Ihnen hilft, eine Vollzeitentwicklung zu finanzieren?

Devaev:
Ich bin nicht sehr gut darin, Dokumentation zu schreiben, also helfen mir viele Leute dabei. Einige schreiben Anleitungen und Skripte, denken sich neue Wege aus, um einige der PiKVM-Funktionen zu nutzen und beschreiben sie. Einige erstellen Fehlerberichte und geben mir Fernzugriff auf ihre Hardware, damit ich Probleme beheben kann. Und das Wichtigste von allem: Als die Anzahl der Nutzer wirklich groß wurde, wurde es unmöglich, jeder einzelnen Person auf Discord zu antworten, also kümmern sich aktive User um neue Nutzer und wenden sich nur noch an mich, wenn sie ein Problem nicht selbst lösen können. Ich bin diesen Leuten sehr dankbar, da ich mich nun ganz dem Schreiben von Software widmen kann.

Manchmal gibt es Leute, die Patches mit neuen Funktionen oder Fehlerkorrekturen einbringen, aber von diesen Leuten gibt es noch nicht viele, und ich bin im Moment praktisch der einzige PiKVM-Entwickler. Ich plane, einige Leute in Vollzeit einzustellen, die mir bei der Software helfen, wenn wir anfangen, Geräte zu verkaufen. Wenn Sie also unsere Hardware kaufen, unterstützen Sie auch die Entwicklung von Open-Source-Software.

Claußen: Wenn jemand Ihre Arbeit unterstützen möchte, was wäre der beste Weg, dies zu tun?

Devaev:
Neben Spenden ist auch Hilfe bei Dingen willkommen, die wir noch nicht allein bewältigen können. Einige dieser Probleme sind in unseren GitHub-Issues beschrieben.

Claußen: Gibt es irgendwelche Pläne, Ihre Arbeit zu kommerzialisieren?

Devaev: Im Moment sind Spenden meine Haupteinnahmequelle. Mir wird oft gesagt, ich könnte eine kommerzielle Lizenz für die PiKVM-Software mit erweiterten Funktionen verkaufen, aber das möchte ich aus zwei Gründen nicht tun. Erstens ermöglicht PiKVM einen direkten Zugriff auf die Hardware. Ich würde so etwas nicht trauen, wenn es nicht Open Source wäre. Und zweitens würde eine Bezahlschranke unweigerlich dazu führen, dass jemand meine offene Software „forkt“ und Profi-Funktionen kostenlos entwickelt, um einen Teil der Community für sich zu gewinnen.

PiKVM v3 HAT
Bild 5. PiKVM v3 HAT (Quelle: Maxim Deveav) [5].

Die andere und bald primäre Möglichkeit, wie ich mit meiner Entwicklung Geld verdienen kann, ist der Verkauf meiner eigenen Hardware PiKVM v3 HAT [5] (Bild 5), die Sie anstelle der DIY-Version verwenden können, um mehr Stabilität und zusätzliche Hardwarefunktionen zu erhalten. Aber ich habe nicht vor, PiKVM DIY aufzugeben und die Benutzer zu zwingen, die v3 zu kaufen. Ich strebe nicht nach Reichtum um jeden Preis, nur nach genug Geld, um mich und meine Katze zu ernähren.

Claußen: Können Sie uns ein wenig über diese Ihre Hardware PiKVM v3 HAT erzählen?

Devaev:
Um einen PiKVM zu bauen, muss man seine Hände und eventuell einen Lötkolben benutzen. Ich habe beschlossen, es dem User etwas einfacher zu machen, die Stabilität der Hardware zu verbessern und einige Funktionen hinzuzufügen, die schwer selbst zu machen sind. Obwohl das ursprüngliche Konzept des Geräts von mir stammt, konnte ich kein komplett eigenes Board entwickeln (das ist eine Sache, die ich nicht beherrsche), also habe ich einen Freund mit Hardwarekenntnissen eingeladen, um mit mir an diesem Projekt zu arbeiten. Unsere PiKVM v3 HAT hat einen eingebauten Server-Power-Controller, eine Video-Capture-Einheit, einen USB-Switch (um das Herausziehen eines Kabels zu emulieren, das ist manchmal nützlich) und einen seriellen Port, um eine Verbindung zu einem Server oder einer Konsole in einem Rack herzustellen. Auch eine Uhr für eine präzise Protokollierung befindet sich auf dem Board. Im Grunde handelt es sich um eine Lösung, die besser und billiger ist als all die 500-Dollar-Geräte, die es auf dem Markt gibt. Sie müssen sich nicht auf mein Wort verlassen, Sie können die v3-Bewertungen auf YouTube nachlesen. Und bald wird es jeder kaufen können.

Claußen: Sie haben auch ein Gehäuse für den Raspberry Pi 4 und Ihr Add-on, das aus Metall gefertigt ist. Gab es einen Grund, keinen Kunststoff zu verwenden? Wir haben auf Discord gelesen, dass es in Russland einfacher ist, etwas aus Metall zu bauen als aus Gummi oder Plastik.

Devaev:
Ja, das stimmt. Das Metallgehäuse ist schwerer, stabiler und viel billiger als ein Plastikgehäuse. Diejenigen, die die v3- HAT auf Kickstarter bestellt haben, konnten dieses Gehäuse kostenlos erhalten. Später wird es in Online-Shops verkauft werden. Aber wir haben auch eine kostenlose Zeichnung des Gehäuses für den 3D-Druck, wenn Sie es selber herstellen möchten.

Claußen: Wird Ihr Kit auch in Geschäften außerhalb Russlands erhältlich sein?

Devaev:
: Die erste Charge sollte in Kürze in den USA erhältlich sein, und die zweite ab Herbst 2021 weltweit.


PiKVM und die Zukunft

Claußen: Welche Pläne für den PiKVM haben Sie für die Zukunft?

Devaev: Wir werden sowohl die Software als auch die Hardware weiterentwickeln. Wir planen, Capture mit 1080p/60 Hz zu implementieren (das ist derzeit aufgrund der Einschränkungen des Pi 4 nicht möglich) und eine sichere Lösung für den Cloud-Zugang für Benutzer ohne offene externe IP-Adresse zu schaffen.

Claußen: Haben Sie noch andere Projekte in der Entwicklung? Können Sie uns ein paar Details darüber verraten, woran Sie gerade arbeiten?

Devaev:
uStreamer, denke ich. Es wurde als Aufnahmegerät für PiKVM entwickelt, aber es ist eine völlig separate Komponente, die viele Leute als Server für Webcam-Videos verwenden. Ich habe es von Grund auf als Alternative zum MJPG-Streamer geschrieben, um das Leistungsproblem zu lösen. Jetzt ist uStreamer der schnellste spezialisierte MJPEG/H.264-Videoservice, und darauf bin ich wirklich stolz.

Claußen: Maxim Deveav, vielen Dank für das Gespräch. Für diejenigen, die sich jetzt auf den Weg zur Kickstarter-Kampagne [5] machen, haben wir gute Nachrichten. Die Kampagne war mehr als erfolgreich. Das bedeutet, dass man den PiKVM v3 HAT bald online bestellen kann. Werfen Sie auch einen Blick in den Elektor-Store, denn unser Einkaufsteam arbeitet derzeit daran, Ihnen in naher Zukunft auch einige PiKVM v3 HATs anbieten zu können


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.