SysteembeheerWorkshops

PiKVM: zelfbouw kvm voor je netwerk

Een kvm is een klein kastje dat er voor zorgt dat je met één beeldscherm, toetsenbord en muis twee of meer pc’s kunt bedienen. Handig als je bijvoorbeeld een Windows-pc gebruikt maar ook af en toe op een MacBook wilt werken, met dezelfde randapparatuur. Je schakelt om met één druk op een knop. Veel ‘schakelkastjes’ kunnen video (zoals hdmi en DisplayPort), usb (zoals je muis en toetsenbord) en audio (bijvoorbeeld speakers en microfoon) doorgeven. Dergelijke kvm-switches hebben wel een beperking: ze werken alleen lokaal. Je sluit alle ‘kabelspaghetti’ rechtstreeks aan. Lastig als een pc in een andere ruimte staat, zoals een server in je meterkast. Voor dat doel is de netwerk-kvm erg praktisch.

Bij een gewone kvm sluit je alle kabels lokaal aan op de pc’s en randapparatuur

Wat is een netwerk-kvm?

Bij een netwerk-kvm kun je een andere pc of server gewoon op afstand besturen. Je sluit die netwerk-kvm aan op het bewuste systeem (in veel gevallen de video-uitgang, zoals hdmi, en een usb-poort) en op het netwerk. Daarna bedien je het systeem vanaf je eigen pc met de juiste software. Er zijn wat nadelen. Zo is een netwerk-kvm erg duur. Zelfs voor eenvoudige modellen betaal je minimaal zo’n €500. Ook zijn ze soms verouderd en gebruiken ze bijvoorbeeld een antieke Java-versie. Een positieve uitzondering is de TinyPilot Voyager 2 maar daarvoor betaal je evengoed zo’n €400.

Bij servers is het soms makkelijker. Bij veel servers en bepaalde (duurdere) servermoederborden is kvm-over-ip ingebouwd, vaak onder de noemer ipmi, meestal met een eigen netwerkpoort. Op veel HP-servers vind je bijvoorbeeld iLO (Integrated Lights-Out) voor beheer en voor kvm op afstand. Je kunt via een programma op afstand meekijken met het scherm en het systeem uiteraard ook besturen met je eigen muis en toetsenbord. Tevens kun je een harde reset uitvoeren als het systeem is vastgelopen. Soms vereist kvm-over-ip een prijzige licentie om er gebruik van te kunnen maken en in enkele gevallen zelfs extra hardware.

Een HP-server met iLO kun je op afstand overnemen via een softwareprogramma

Wat gaan we bouwen

We gaan zelf een netwerk-kvm bouwen op basis van een Raspberry Pi 4. Die singleboardcomputer heeft enorm veel in- en uitvoermogelijkheden en vormt dan ook een logische basis. Als software gebruiken we PiKVM. Na de installatie kun je eenvoudig op afstand via een browser inloggen om de bewuste pc of server over te nemen. Je ziet uiteraard het beeld en kunt het, met een kleine vertraging, bedienen met muis en toetsenbord. Je kunt zelfs de bios aanpassen of een besturingssysteem installeren.

PiKVM verwerkt steeds zelfstandig het videobeeld van de grafische kaart. Je bekijkt het via je netwerk op een ander systeem waarop alleen een recente webbrowser hoeft te draaien. Je muis- en toetsenbordacties worden teruggestuurd via het netwerk. Je kunt bijvoorbeeld een Windows- of Linux-pc besturen maar ook gewoon de bios-instellingen wijzigen of een besturingssysteem op afstand installeren. Het werkt zelfs via internet. Ideaal om een kennis uit de brand te helpen met zijn of haar installatieperikelen, als je niet zelf aanwezig kunt zijn.

We richten ons in deze workshop vooral op het overbrengen van beeld en de besturing met toetsenbord en muis. Maar je kunt het ook nog uitbreiden zodat je bijvoorbeeld een systeem op afstand een harde reset kunt geven. Dat bespaart je een wandeling naar het systeem. Een andere uitbreiding die je kunt overwegen is de vrij prijzige v3 HAT (zie kader). In deze workshop kiezen we voordelige hardware wat ook goed werkt, al is het wat minder professioneel.

PiKVM kun je eventueel gebruiken in combinatie met de v3 HAT die je er bovenop klikt

Optionele uitbreidingsmodule v3 HAT

De v3 HAT is een uitbreidingsmodule van PiKVM zelf. die klik je bovenop de Pi 4. Het is geen goedkope optie. Bij Elektor (momenteel de enige leverancier) betaal je €189,95. Daarvoor krijg je alleen de module, dus niet de Pi 4 zelf. Belangrijke verschillen ten opzichte van die uitbreidingsmodule zullen we in de workshop benoemen!

Wat heb je nodig?

Zoals gezegd vormt een Raspberry Pi 4 de basis voor het project. Dit geeft ook de beste prestaties. Helaas is de kleine singleboardcomputer nog altijd niet goed leverbaar, vanwege wereldwijde chiptekorten. Dit zou pas in de loop van 2023 moeten verbeteren. Gelukkig zijn er naast de Pi geen lastige onderdelen nodig. Je hebt een usb-framegrabber (ongeveer €15) of, voor betere prestaties, een hdmi-naar-csi2-adapter (ongeveer €40) nodig om het beeld van de hdmi-uitgang op te vangen. We zullen de verschillen verderop toelichten.

Je hebt verder een microSD-kaart van minimaal 16 GB nodig. Daarnaast heb je een voeding en kabeltjes nodig (zie kader). Uiteraard moet je de Pi ook op je netwerk aansluiten. Gebruik liefst een vaste netwerkverbinding en geen wifi. Het is betrouwbaarder en geeft minder vertraging. Ten slotte kun je nog een passende behuizing voor de Pi zoeken.

Je kunt voor het project ook een Pi Zero 2 W gebruiken. Die is echter niet veel beter leverbaar dan de Pi 4. Let er op dat je in dit geval voor de hdmi-naar-csi2-adapter moet kiezen. Daarnaast kun je de Pi Zero 2 W niet via een netwerkkabel aansluiten en zul je dus wifi moeten gebruiken.

Voeding en kabeltjes

We zullen de Raspberry Pi 4 van voeding moeten voorzien via de usb-c-poort. En precies die poort moeten we óók gebruiken voor de usb-kabel richting de doel-pc. Er geldt voor de Pi namelijk de beperking dat alleen de poort die voeding krijgt als usb-hostapparaat kan fungeren. En juist die hostfunctie is nodig voor het emuleren van muis en toetsenbord.

Er zijn meerdere manieren om de poort te delen. Op de GitHub-pagina van PiKVM zie je enkele voorbeelden. Wij gebruiken een y-splitter kabel die usb-c splitst naar een voeding- en datakabel. De datakabel gaat dan uiteraard naar de usb-poort van de pc. Afhankelijk van het gebruikte kabeltje kun je voor de veiligheid een zogenoemde power-blocker gebruiken om de Pi te beschermen tegen spanning van de server en andersom.

Beeld opvangen

We gebruiken een eenvoudige usb-framegrabber voor het vangen van het beeld

We gaan er van uit dat de pc of server die je gaat overnemen een hdmi-uitgang heeft. Om het beeld over te brengen naar de Raspberry Pi gebruiken we zoals gezegd een voordelige usb-framegrabber. Je vindt ze op onder andere Amazon onder de term ‘usb capture card’. Het is een soort usb-dongle met hdmi-poort. Een beperking van deze ‘voordelige’ keuze is dat de vertraging ongeveer twee keer zo groot is waardoor de bediening iets minder soepel is. In de praktijk vonden we deze optie toch zeer werkbaar. Zelfs op full-hd resolutie (1920×1080) met een relatief hoge framerate is de muis alleen wat stroperig. We zien dat meer als luxeprobleem, zolang het maar betrouwbaar werkt. Werkt het niet naar wens? Dan is een hdmi-naar-csi2-adapter nog een optie (zie volgende punt).

Merk op dat, bij gebruik van een usb-framegrabber, nog geen h.264 wordt gebruikt door PiKVM. Daarom zal iets meer bandbreedte nodig zijn. Binnen je eigen netwerk is dat doorgaans geen probleem. Als je echter via internet inlogt bij een systeem van bijvoorbeeld een kennis kunnen de prestaties wel nog wat lager zijn, afhankelijk van de beschikbare bandbreedte.

Optie: hdmi-naar-csi2-adapter

Een hdmi-naar-csi2-adapter

De uitbreidingsmodule v3 HAT en ook de eerder genoemde TinyPilot Voyager 2 gebruiken intern een zogenoemde hdmi-naar-csi2-adapter. Die zorgt er in feite voor dat de hdmi-beelden via de camera-interface van de Raspberry Pi kunnen worden verwerkt. Dat geeft de beste kwaliteit en vooral de minste vertraging.

De genoemde modules gebruiken een Toshiba TC358743-chip. Een dergelijk kaartje kun je ook los kopen en kost vanaf ongeveer €40. Merk op dat leveranciers niet altijd specificeren welke chip ze gebruiken. Er kan verschil in kwaliteit zijn. Let er bij aanschaf ook op dat de benodigde (en passende) flexkabel wordt bijgeleverd voor de verbinding met de Pi. Gebruik je deze adapter in combinatie met de Pi Zero 2 W? Let er dan extra goed op dat er plek is in de behuizing om de adapter te kunnen plaatsen.

Software voorbereiden

We gaan voordat we alles op kunnen bouwen een microSD-kaartje prepareren met de software van PiKVM. Gebruik zoals aangegeven een kaartje van 16 GB of groter. Als je naar https://docs.pikvm.org/flashing_os/ zie je images van de verschillende versies van PiKVM. Zoek de image voor de versie die je hebt gemaakt. In deze workshop bouwen we versie 2. Je ziet dat er aparte downloads zijn de Raspberry Pi 4 en Pi Zero 2 W. Ook zijn er aparte downloads voor de versie met hdmi-naar-csi2-adapter (Pi 4 en Zero 2 W) en de usb-dongle (alleen Pi 4).

Na het downloaden van de juiste image kun je de officiële Raspberry Pi Imager gebruiken om het geheugenkaartje te maken. Installeer en open dit programma, druk op Selecteer OS, kies dan in het menu voor Gebruik eigen bestand. Blader naar het zojuist gedownloade bestand en selecteer het. Wijs ook je geheugenkaart aan onder Opslagapparaat. Daarna kun je het kaartje beschrijven. In onze workshop over Raspberry Pi Imager lees je meer over het gebruik van deze software en de vele extra mogelijkheden.

We gebruiken de Raspberry Pi Imager om de software op een geheugenkaartje te zetten.

Alles aansluiten

Steek de usb-framegrabber in de zwarte usb-poort die het dichtst tegen de print aan zit!

Als je alles klaar hebt liggen is het aansluiten niet lastig meer. Via de splitser zorg je dat je een voeding op de usb-c-poort kunt aansluiten én een kabeltje hebt om op de usb-poort van de pc aan te sluiten. Verder sluit je hdmi-poort van de usb-framegrabber via een kabel aan op de hdmi-poort van de pc. Let er goed op dat je de usb-framegrabber in precies de juiste usb-poort op de Pi moet steken! Dat is op de Pi 4 de zwartgekleurde usb-poort (usb 2.0) die het dichtst tegen de print aanzit. Die poort wordt namelijk standaard door de software geselecteerd. Zorg er uiteraard ook voor dat je de netwerkkabel hebt aangesloten zodat PiKVM via het netwerk te bereiken is.

In ons project gebruiken we overigens een powerbank als voeding. Dat is net wat praktischer en ook heel handig als je geen vrij stopcontact in de buurt hebt. De Pi 4 gebruikt ongeveer 800 mA waardoor een eenvoudige powerbank ook voor langere tijd volstaat.

Eerste stappen

Als je de Pi met PiKVM hebt aangezet moet je het apparaat even de tijd geven om op te starten en enkele onderhoudstaken uit te voeren. De Pi zal automatisch een ip-adres ontvangen van je router. Je kunt het ip-adres opzoeken in de verbindingslijst van je router of met een programma als Angry IP Scanner gebruiken. Voor toegang tot PiKVM kun je een willekeurige browser gebruiken, waaronder Chrome, Edge, Firefox of Safari. Heb je een probleem, wat incidenteel voorkomt, probeer dan je extensies uit te schakelen of gebruik een andere browser.

Als PiKVM is gestart kun je de introductiepagina bekijken door je browser te verwijzen naar https://pikvm. Je kunt ook direct het ip-adres invoeren in de browser. Je kunt inloggen met de standaard gebruikersnaam admin. Ook het standaard wachtwoord is admin. We raden je aan dit wachtwoord aan te passen, zeker als je van plan bent om PiKVM als permanente oplossing te gebruiken.

Je ziet op het openingsscherm twee opties. Kies je voor KVM dan kun je het beeld van de bewuste pc zien en de besturing overnemen. Ga je naar Terminal dan wordt het terminalscherm van de Pi geopend, waarmee je in de opdrachtprompt van de Pi kunt duiken. Merk op dat PiKVM onder de motorkap Arch Linux ARM gebruikt. Dit werkt heel anders dan bijvoorbeeld het bekendere Debian.

Na het starten kun je kiezen tussen het beeld van de pc of de terminal van de Pi

Toegang tot Windows-pc

Als je op het openingsscherm de optie KVM kiest zie je als het goed is direct het beeld van de bewuste pc. De usb-framegrabber wordt automatisch herkend en gebruikt. De pc is op afstand comfortabel te bedienen en de voordelige usb-framegrabber geeft een goed beeld. We hebben voor full-hd gekozen (1920×1080 pixels) en dat werkt soepel over het lokale netwerk. Als voorbeeld hebben we het doelsysteem, waarop Windows draait, voorzien van de laatste updates.

Via PiKVM voorzien we het doelsysteem van de laatste Windows-updates

Toegang tot de bios

Als test hebben we het systeem ook opnieuw gestart en daarna direct bij het starten de bios geopend. Afhankelijk van het systeem moet je daarvoor, zodra de pc wordt aangezet, op bijvoorbeeld Del of F2 drukken. Ook dit werkt zonder problemen. Je kunt alle instellingen aanpassen alsof je achter de pc zelf zit. In PiKVM zie je overigens nog wat extra opties, waaronder het menu ATX. Dit menu is bedoeld voor een uitbreiding waarmee je een pc op afstand kunt herstarten en aan- of uitzetten. Zo’n uitbreiding hebben we in ons project niet gebruikt maar je kunt het wellicht op je wensenlijstje zetten.

PiKVM geeft ook eenvoudig toegang tot de bios van het doelsysteem

Opslag koppelen

PiKVM geeft je de mogelijkheid van virtuele schijven die een usb-stick of cd-rom kunnen emuleren. Het komt er op neer dat je op afstand opslag kunt koppelen aan de bewuste pc. Handig als je bijvoorbeeld een Linux-besturingssysteem wil installeren. Als je in het menu op Drive klikt zie je de opties voor het koppelen van opslag. Klik op Bestand kiezen en blader naar het lokale bestand. Klik dan op Upload. Hiermee wordt het bestand naar de Pi geüpload. Achter Storage zie je hoeveel ruimte op de Pi beschikbaar is. Als het uploaden voltooid is kun je achter Image het bewuste bestand kiezen en daadwerkelijk koppelen als cd-rom of flashdrive.

Er is een kleine beperking bij het koppelen van een iso-bestand als cd-rom. Het bestand mag namelijk maar 2,2 GB groot zijn. Dat is genoeg voor de meeste Linux-distrubities. Maar een standaard iso-bestand voor de Windows-installatie past niet. Je kunt dat eventueel wel op een andere manier voor elkaar krijgen. Uiteraard kun je ook altijd nog gewoon een usb-flashdrive in één van de vrije usb-poorten op de bewuste pc zelf prikken.

Je kunt een iso-bestand als een cd-rom koppelen aan de bewuste pc

Conclusie

Onze PiKVM werkt uitstekend. De bediening is enigszins stroperig maar dat is in de praktijk zelden een probleem. Je kunt het project eventueel uitbreiden maar daar zagen we zelf geen noodzaak toe. Al moet gezegd dat we niet dagelijks toegang op afstand nodig hebben. Een goed geconfigureerde server draait in de regel probleemloos, waardoor we er gewoon via de standaard tools (zoals ssh of een webinterface) in kunnen komen. Alleen als dat een keer onverhoopt niet lukt is PiKVM wél de redder in nood. Wil je een server bouwen met pc-componenten (zie kader), dan kan zo’n PiKVM je wellicht over de streep trekken.

Ten slotte verwijzen we je nog graag naar de uitgebreide documentatie van PiKVM voor eventuele uitbreidingen en aanpassingen.

Server bouwen met pc-componenten?

Ook met standaard pc-componenten kun je prima een betrouwbare server bouwen. Denk aan een barebone of mini-pc. Zeker voor thuisgebruik zijn ze interessanter dan een (gebruikte) server. Een mini-pc is vaak veel zuiniger en dat verdien je snel terug. Ook zijn mini-pc’s over het algemeen kleiner, stiller en sneller. De extra uitbreidingsmogelijkheden voor bijvoorbeeld opslag of netwerkpoorten kunnen servers interessant maken, maar de meerderheid zal er weinig belang bij hebben. Een struikelbok van eenvoudige pc’s is dat je onder meer bij problemen, voor de installatie van een besturingssysteem, of voor bios-aanpassingen, een beeldscherm, muis en toetsenbord moet aansluiten. Een netwerk-kvm zoals PiKVM kan je in die situaties veel moeite besparen.

Aanbevolen artikelen

Reacties zijn gesloten