Raspberry Pi als KVM-afstandbediening - Softwaretest Pi-KVM
op
KVM staat voor keyboard, video, muis; wie daar toegang toe heeft, kan een computer (op afstand) bedieend. Met de slimme Pi-KVM-software en een Raspberry Pi 4 kun je tegen lage kosten een PC en andere apparaten via het internet besturen, zonder dat je software hoeft te installeren op de op afstand bestuurde computer. Met Pi-KVM beschik je ook over virtuele schijven waarmee een computer niet alleen op afstand kan worden bestuurd en onderhouden, maar volledig opnieuw kan worden geïnstalleerd.
Tijdens de pandemie kwam ik erachter dat mijn ouders thuis nog computers met besturingssysteem Windows 7 hadden (sommige zelfs Windows XP). Dit leverde onoplosbare beveiligingsproblemen op. De computers waren dus nodig aan een update toe. Helaas was een update niet genoeg voor deze apparaten. Een volledig nieuwe installatie was nodig, maar vanwege de pandemie en een reistijd van ruim acht uur was het voor mij geen optie om er zelf heen te gaan.
Als je ooit hebt geprobeerd iemand door tientallen installatiestappen te loodsen met telefoon- en videogesprekken, begrijp je dat dit geen goed idee is voor installatie van een besturingssysteem en backup van gegevens. De oplossing: toegang op afstand. En dat is precies wat een Raspberry Pi als KVM-afstandsbediening mogelijk maakt.
Op dit punt in de tekst kun je ouders vervangen door klanten, computers door machinebesturingen, en nieuwe installatie door foutenanalyse. Met een paar ogen die op afstand, onafhankelijk van de hardware, naar een systeem kunnen kijken, kun je lange reizen naar een locatie vermijden. Ook is het mogelijk apparaten en meetinstrumenten die door de fabrikant nooit voor dit doel waren ontwikkeld, op afstand te bedienen. Figuur 1 toont het gebruik van Pi-KVM voor bediening van een externe PC. Figuur 2 geeft weer hoe een machine op afstand kan worden onderhouden.
Het Pi-KVM-alternatief
Maar er bestaat toch software voor onderhoud op afstand? Als je een Raspberry Pi of PC gebruikt, heb je vast wel eens een programma als VNC, AnyDesk of TeamViewer gebruikt. Daarnaast zijn er nog veel andere oplossingen voor onderhoud en controle op afstand. Al deze oplossingen zijn goedkoop of zelfs gratis voor de particuliere gebruiker. Ze bieden snelle en eenvoudige ondersteuning bij het installeren van nieuwe software of het maken van social media posts. Voor al deze programma's is echter wel een werkend besturingssysteem met een internetverbinding nodig.
Maar wat als de computer niet meer opstart of geen netwerkverbinding meer tot stand kan brengen? Of als het besturingssysteem opnieuw geïnstalleerd moet worden? Dan moet iemand met de juiste expertise op locatie zijn om het besturingssysteem weer op te starten en een netwerk- of internetverbinding tot stand te brengen. Dit geldt ook voor het opnieuw installeren van een besturingssysteem. Figuur 3 toont het BIOS-bericht van een PC die geen opstartbare media kon vinden.
Pi-KVM werkt onafhankelijk van de te besturen computer en zendt het videobeeld dat de grafische kaart via het netwerk weergeeft naar een tweede systeem waarop alleen een HTML5-compatibele webbrowser hoeft te draaien. Daar kan dan niet alleen de beeld-output van de op afstand bestuurde computer worden weergegeven; ook muisbeweging en toetsaanslagen worden naar de te besturen computer teruggezonden. Hiermee kun je de computer op afstand bedienen alsof je zelf achter de computer zit en de muis en het toetsenbord bedient. Figuur 4 toont het BIOS-bericht van de PC die zich nu comfortabel in de browser van een computer op afstand bevindt. De toegang tot het BIOS (zoals in Figuur 5) kan ook eenvoudig worden geregeld via een browser op afstand. Het is dus niet absoluut noodzakelijk om in de buurt van de PC te zijn.
Virtuele schijven
Iets ingewikkelder is het om over langere afstanden (meestal is 2 m genoeg) USB bootsticks of draaiende gegevensdragers zoals DVD of CD in te voeren. Je zou een bootstick naar de externe PC kunnen sturen en hopen dat iemand op locatie deze correct inbrengt. Pi-KVM biedt de mogelijkheid van virtuele schijven, die een USB-stick of een USB-CD-ROM-station emuleren. Hiervoor hoef je alleen de juiste schijfimage te uploaden en mounten via een browser. Figuur 6 toont het menu van de virtuele schijf. Momenteel is CD-emulatie beperkt tot ISO-bestanden, die niet groter mogen zijn dan 2 GB. Voor ISO-bestanden groter dan 2 GB (Figuur 7) moeten hybride ISO's beschikbaar zijn (d.w.z. ISO's die ook naar een USB-stick kunnen worden geschreven). Deze kunnen dan worden gebruikt met het Flash-emulatietype en verschijnen als USB-massaopslag.
Een betaalbare open-source oplossing
Bestaat er niet al zoiets als Pi-KVM? De functies die een Pi-KVM biedt, worden ook aangeboden door andere apparaten van andere fabrikanten. Meestal zijn deze echter veel duurder dan de Pi-KVM-oplossing en hebben ze closed-source firmware. Voor sommige extra functies van deze apparaten moet ook nog een toeslag worden betaald. De Pi-KVM wordt geleverd als een open-source project en kan worden geassembleerd met gangbare hardware. Uiteindelijk kost de doe-het-zelf oplossing ongeveer € 100.
Er zijn twee manieren om een Pi-KVM te bouwen, één met een HDMI-CSI-brug en één met een USB-HDMI-dongle. Figuur 8 en Figuur 9 tonen de datastroom door de Raspberry Pi 4 met deze oplossingen. Op dit punt willen wij de vereiste componenten noemen en enkele aanwijzingen geven over hoe ze moeten worden gebouwd.
De benodigde hardware
De hardware die nodig is voor de Pi-KVM is vrij eenvoudig:
- Een Raspberry Pi Model 4 (2 GB RAM of meer) (Figuur 10)
- Een Micro SD-kaart (16 GB aanbevolen)
- Eén USB-voeding (5 V/3 A)
- Een behuizing (optioneel)
- HDMI-naar-CSI-brug of USB HDMI Capture-dongle (Figuur 11)
- Een USB Y-kabel (Figuur 12 en Figuur 13)
De meeste lezers kunnen de eerste vier onderdelen waarschijnlijk wel vinden of eenvoudig aanschaffen, voor de laatste twee is dat wellicht wat lastiger. Voor de HDMI-naar-CSI-brug (Figuur 14 toont twee beschikbare varianten) moet je op zoek naar een Europese leverancier of een uit het Verre Oosten. Een USB HDMI capture-dongle is voor een paar euro te bestellen bij postorderbedrijven. Hoewel de prijs van deze dongles aantrekkelijk kan zijn, hebben ze enkele beperkingen op het gebied van stabiliteit of ondersteunde resoluties. De HDMI-naar-CSI-brug is de stabielere en meer compatibele keuze.
Voor de verbinding tussen de Raspberry Pi 4 en de aan te sturen computer wordt de USB-C-poort van de Raspberry Pi 4 gebruikt in USB OTG-modus. Hierdoor kan de Raspberry Pi 4 zich ten opzichte van een PC gedragen als een toetsenbord, muis of massa-opslagapparaat. Hiervoor wordt de Raspberry Pi 4 op de computer aangesloten met een USB-A naar USB-C-kabel, die ook voor de stroomvoorziening zorgt. Aangezien hier 3 A bij 5 V voeding is vereist, kan een stabiele werking niet worden gegarandeerd. Een externe 5 V voedingseenheid moet extra vermogen leveren.
Omdat de USB-C-poort in OTG-modus wordt gebruikt, kun je 5 V op de Raspberry Pi 4 aansluiten via de 40-pins header. Deze 5 V zou dan echter ook stroom leveren aan de computer die op de USB-C-poort is aangesloten. Dit is iets wat veel computers niet leuk vinden en waardoor ze storingen geven. Een oplossing is het gebruik van een Y-kabel die de data en de stroomvoorziening splitst.
Om te voorkomen dat twee USB-kabels aan elkaar gesoldeerd moeten worden om te passen, heeft het Elektor Lab een kleine printplaat ontworpen (Figuur 15). Twee USB-B-aansluitingen (Figuur 16) maken één aansluiting op een voeding en één aansluiting op een computer mogelijk zonder feed backward van de 5 V. Beide aansluitingen hebben gemeen dat een LED de aanwezigheid van de 5 V busspanning aangeeft. Het printontwerp is beschikbaar als KiCAD-project en kan worden gedownload van de Elektor GitHub-repository [1]. De printplaat is echter nog niet uitvoerig getest, dus nabouwen is op eigen risico. De onderdelenlijst en het schema vind je aan het eind van het artikel.
Software-installatie
Je kunt de Pi-KVM-software downloaden van de homepage van de ontwikkelaar [2]. Voor de installatie wordt een SD-kaart met 16 GB geheugen (Figuur 17) aanbevolen. Als je een HDMI-naar-CSI-brug gebruikt, kun je het platform-image van de Raspberry Pi 4 v2 gebruiken voor de HDMI-naar-CSI-brug. Als een USB-HDMI-dongle wordt gebruikt, gebruik dan het HDMI-USB-dongle image voor het Raspberry Pi 4 v2-platform.
Het gedownloade bestand moet worden uitgepakt met een programma als 7-Zip en vervolgens met een programma als de Raspberry Pi Imager naar een SD-kaart worden geschreven. Hiermee is de basisinstallatie voltooid en kun je beginnen met het opbouwen van de hardware. Je kunt de broncode bekijken in de GitHub-repository [3] van de Pi-KVM.
Hardware-assemblage
Als de CSI-naar-HDMI-brug wordt gebruikt, is het helaas wat moeilijker om een geschikte behuizing te vinden. Misschien heeft iemand al zo'n behuizing ontworpen, maar wellicht moet je zelf aan de slag met bijvoorbeeld FreeCAD en een 3D-printer. Voor dit artikel zijn de onderdelen daarom op maat geïnstalleerd.
Voor de opbouw met een HDMI-naar-CSI-brug heb je de module en een Raspberry Pi-camerakabel nodig. Een SD-kaart met de meest recente image voor Pi-KVM moet in de Raspberry Pi 4 worden geplaatst en de HDMI-naar-CSI-brug moet worden aangesloten op de camerapoort. De USB-Y-kabel moet worden aangesloten op de USB-C-poort van de Raspberry Pi 4. Hiermee is de Pi-KVM klaar voor gebruik (Figuur 18).
De variant met HDMI USB-dongle moet worden aangesloten op een van de USB 2.0-poorten van de Raspberry Pi 4B. Als je een van de blauwe USB 3.0-poorten gebruikt, wordt de getoonde USB-dongle niet herkend (Figuur 19).
Eerste test
Zodra alle onderdelen in elkaar zijn gezet en zo mogelijk in een behuizing zijn ingebouwd, staat niets de eerste testrun nog in de weg. Als testobject heb ik een tweede Raspberry Pi 4 gebruikt, die al enige tijd als camera zijn werk doet op mijn bureau (Figuur 20). (Het artikel over de Raspberry Pi 4-camera is te vinden in Elektor sept./okt. 2021 [4].) De Raspberry Pi 4 met Pi-KVM is aangesloten op een bedraad netwerk.
Na de eerste start van Pi-KVM duurt het even voordat de partitie is aangepast aan de grootte van de SD-kaart. Als dit proces is afgerond, probeert Pi-KVM via DHCP een IP-adres op te vragen. Misschien moet je op de router of DHCP-server controleren welk IP de Pi-KVM heeft gekregen. Met een webbrowser kan dan de interface van de Pi-KVM worden opgeroepen.
Na het opstarten kun je met de gebruikersnaam admin en het wachtwoord admin inloggen op de interface. Onder het item KVM verschijnt het scherm van de tweede Raspberry Pi 4. Zowel muis als toetsenbord kunnen nu op afstand worden bediend.
Figuur 21 toont de webinterface met het bureaublad van de Raspberry Pi op afstand, met de HDMI-naar-CSI-brug. Figuur 22 toont hetzelfde beeld, maar nu met gebruik van een HDMI-naar-USB-dongle. De beeldkwaliteit is minder en er zijn groene randen zichtbaar als artefacten.
Voor bijkomende configuratie en opties is het de moeite waard een kijkje te nemen op de Pi-KVM-homepage of de GitHub-repository. Naast muis en toetsenbord is, zoals al genoemd, massaopslag beschikbaar. De Raspberry Pi 4 met Pi-KVM kan zowel een optische drive als een USB-stick emuleren. Hiervoor kan via de webinterface de juiste image naar de Raspberry Pi 4 worden gekopieerd (Figuur 23).
Beoordeling
Met de Pi-KVM-software en een paar goedkope onderdelen kun je een Raspberry Pi 4 omtoveren tot een afstandsbediening voor computers en andere apparatuur die met een muis en een toetsenbord kan worden bediend. Als je de hardware niet zelf in elkaar wilt opbouwen, kijk dan eens op de PI-KVM-homepage: daar wordt gewerkt aan een afgewerkte HAT voor de Raspberry Pi 4 en een bijpassende behuizing. Pi-KVM en de ontwikkelaars ervan worden momenteel gefinancierd door donaties via Patreon of Paypal. Als het project je bevalt, zou de ontwikkelaar enige erkenning zeker op prijs stellen.
Vragen of opmerkingen?
Heb je technische vragen of opmerkingen over dit artikel? E-mail de auteur op mathias.claussen@elektor.com of neem contact op met Elektor op editor@elektor.com.
Onderdelen
Onderdelenlijst
WeerstandenR1,R2,R3 = 100 k
R4,R5 = 1 k
Condensatoren
C1,C2,C3 = 100 n
Halfgeleiders
D1,D2 = LED ROOD 5 mm
Overige
K1,K2 = USB-B connector
K3 = USB-A connector
Printplaat = 200523-1 V1.0
vertaling: Linquake
Discussie (1 opmerking(en))