Zo beheer je een pc op afstand met een netwerk-KVM
Wil je een andere pc bedienen met jouw eigen beeldscherm, toetsenbord en muis, dan is een KVM-switch een vertrouwde oplossing. Maar wat als dat systeem op een andere locatie staat? Dan is een netwerk-KVM heel praktisch. Een nadeel: de kastjes zijn duur en de software vaak gedateerd. Maar je kunt ook zélf een netwerk-KVM bouwen. Hou je van tech-knutselen, dan is dit ID.nl-project écht iets voor jou!
Wie zijn computer op afstand wil beheren opgelet! In dit artikel laten wij jou zien hoe je gemakkelijk een netwerk-KVM kan bouwen. We behandelen het volgende:
- Kosten
- Benodigdheden
- netwerk-KVM bouwen
- Wil jij ook leren hoe je een besturingssysteem op jouw Raspberry Pi kan zetten? Lees dan: Besturingssysteem op Raspberry Pi zetten doe je zo
Om een andere pc of een server te bedienen vanaf je bureau met maar één beeldscherm, toetsenbord en muis, is een KVM-switch een praktische oplossing (waarbij KVM staat voor keyboard, video, mouse). Gebruik je bijvoorbeeld in de regel een Windows-pc, maar wil je ook af en toe op een MacBook werken, dan schakel je gewoon om met een druk op een knop. De meeste ‘schakelkastjes’ zullen ook usb en audio doorgeven. Vooral Delock heeft een breed aanbod. De gangbare KVM-switches werken alleen lokaal. Je sluit alle ‘kabelspaghetti’ rechtstreeks aan. Dat is lastig als een server bijvoorbeeld in de meterkast staat. Daarom zijn er ook oplossingen voor KVM over het netwerk. Je kunt de pc dan gewoon op afstand via software besturen. Een nadeel is dat zulke hardware prijzig is (zie kader ‘Hardware voor KVM over IP?’).
Daarom gaan we zoiets met eenvoudige hardware nabouwen. De basis is een Raspberry Pi met PiKVM. Je kunt eenvoudigweg via een browser inloggen om de bewuste pc of server op afstand over te nemen. Je kunt zelfs het BIOS aanpassen of een compleet besturingssysteem installeren. Dat is een groot voordeel ten opzichte van bijvoorbeeld VNC dat altijd een besturingssysteem nodig heeft. Handig als je vaker op afstand moet helpen met allerlei problemen en/of installatieperikelen (bijvoorbeeld omdat je de IT-beheerder bij je lokale vereniging bent), als je niet fysiek aanwezig kunt zijn. We richten ons vooral op het overbrengen van beeld en de besturing met toetsenbord en muis. Maar je kunt het ook uitbreiden om bijvoorbeeld een reset op afstand te kunnen doen.
**Hardware voor KVM over IP? **
Zoek je een oplossing voor KVM over het netwerk, dan zijn er best wat opties, maar de meeste zijn prijzig. Zelfs voor eenvoudige modellen betaal je minimaal zo’n 500 euro. Bij een server heb je soms geluk en is KVM over IP ingebouwd. Het valt dan vaak onder de noemer IPMI. Soms vereist het een licentie of extra hardware. Veel HP-servers bieden bijvoorbeeld iLO voor beheer en KVM op afstand. Over het algemeen kun je dan niet alleen meekijken met het beeldscherm of de server besturen, maar ook bijvoorbeeld een reset uitvoeren. Zoek je een redelijk betaalbare netwerk-KVM die je direct uit de doos kunt gebruiken, dan is de TinyPilot Voyager 2 (ongeveer 400 euro) wellicht een optie. Deze maakt intern gebruik van een Raspberry Pi 4. Een alternatief is de V3 HAT (ongeveer 190 euro) van PiKVM, de software die we in dit project gebruiken. Dat is een add-on module ofwel HAT (Hardware Attached on Top) die je op een Raspberry Pi klikt. Overigens is de software van zowel TinyPilot als PiKVM opensource en beide zijn geschikt voor een zelfbouwoplossing.
Wat gaan we bouwen?
Een Raspberry Pi heeft enorm veel in- en uitvoermogelijkheden en vormt dan ook een logische basis voor een netwerk-KVM. Het doel is zoals gezegd vooral het overnemen van een andere pc op afstand. We zijn geïnteresseerd in het op afstand meekijken met het beeld van de bewuste pc en natuurlijk het besturen met muis en toetsenbord. De basis hiervoor is een Raspberry Pi 4 en de opensource-software PiKVM. Het werkt onafhankelijk van de pc die we besturen. PiKVM verwerkt immers zelf steeds videobeeld van de grafische kaart. Via het netwerk kun je dit op een tweede systeem bekijken waarop alleen een recente webbrowser hoeft te draaien. Je muis- en toetsenbordacties worden teruggestuurd via het netwerk. Dit stelt je in staat om bijvoorbeeld een Windows-pc te bedienen, maar je kunt ook de BIOS-instellingen wijzigen of een besturingssysteem op afstand installeren.
Wat kost het om zelf een netwerk-KVM te bouwen?
Je hebt voor dit project nog wat keuze in hardware. Om te beginnen is er de uitbreidingsmodule van PiKVM zelf, de V3 HAT. Dit is kwalitatief een goede optie. Maar de module is tegenwoordig wel erg prijzig. Bij Elektor (momenteel de enige leverancier in de buurt) betaal je 189,95 euro. Dat is alleen de module, dus zonder de Raspberry Pi 4 zelf. In deze masterclass bouwen we een voordelig alternatief dat ook goed werkt. Enkele verschillen ten opzichte van die uitbreidingsmodule zullen we benoemen. Naast de Raspberry Pi 4 hoef je verder alleen enkele accessoires aan te schaffen voor in totaal zo’n 25 euro. Extra opties kun je eventueel later toevoegen, bijvoorbeeld de mogelijkheid een reset op afstand uit te voeren.
Wat heb je nodig
Zoals gezegd vormt een Raspberry Pi 4 de basis en die geeft de beste prestaties. Helaas is de kleine singleboardcomputer nog altijd niet goed leverbaar, vanwege wereldwijde chiptekorten. Een Raspberry Pi Zero 2 W is een alternatief, maar niet veel beter leverbaar. Gelukkig zijn er naast de Pi geen lastige onderdelen nodig. Je hebt een usb-framegrabber nodig (ongeveer 15 euro) of een HDMI-naar-CSI2-adapter (ongeveer 40 euro) nodig om het beeld van de HDMI-uitgang op te vangen. We lichten de verschillen toe in paragraaf 4 en het kader ‘Adapter voor HDMI naar CSI2’. Bij de Pi Zero 2 W is zo’n adapter overigens de enige optie. Verder heb je een microSD-kaart van 16 GB of groter nodig. Plus een voeding en kabeltjes (zie gelijknamige kader).
Lees ook: Wat is een Raspberry Pi en wat kun je ermee?
Uiteraard moet je de Pi ook op je netwerk aansluiten. Gebruik liefst een vaste netwerkverbinding en geen wifi. Een kabel is betrouwbaarder en geeft minder vertraging. Op de Pi Zero 2 W is wifi overigens de enige mogelijkheid. Tot slot kun je nog een passende behuizing voor de Pi zoeken.
©Daniel CHETRONI
Voeding en kabeltjes
We zullen de Raspberry Pi van voeding moeten voorzien via de usb-c-poort. Diezelfde poort moeten we gebruiken voor de usb-kabel richting de doel-pc. Voor de Pi geldt namelijk de beperking dat alleen de poort die voeding krijgt als usb-hostapparaat kan fungeren. Deze hostfunctie is nodig voor het emuleren van muis en toetsenbord. Er zijn meerdere manieren om dat op te lossen. 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 een zogenoemde power-blocker gebruiken om de Pi te beschermen tegen spanning van de server en andersom.
Beeld opvangen
We gaan ervan 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 noemer ‘usb capture card’. Het is een soort usb-dongel met HDMI-poort. Een beperking van deze budgetkeuze is dat de vertraging ongeveer twee keer zo groot is, waardoor de bediening iets minder soepel is. In de praktijk vonden wij deze optie zeer werkbaar. Zelfs op Full-HD-resolutie (1920 × 1080 pixels) met een relatief hoge framerate is de muis alleen wat stroperig. We zien dat meer als luxeprobleem, zolang het maar betrouwbaar werkt. Als het in jouw situatie niet betrouwbaar werkt, is een HDMI-naar-CSI2-adapter altijd nog een optie. Merk op dat, bij gebruik van een usb-framegrabber, nog geen H.264 wordt gebruikt. Als je via internet inlogt bij een systeem kunnen de prestaties daardoor nog wat lager zijn, afhankelijk van de beschikbare bandbreedte.
Adapter voor HDMI naar CSI2
De V3 HAT en TinyPilot Voyager 2 gebruiken een HDMI-naar-CSI2-adapter waarmee je HDMI-beelden via de camera-interface van de Raspberry Pi kunt verwerken. Dit geeft de beste kwaliteit en vooral de minste vertraging. De genoemde apparaten gebruiken daarvoor een Toshiba TC358743-chip. Een dergelijk kaartje begint qua prijs ongeveer vanaf 40 euro, bijvoorbeeld het kaartje van Geekworm. 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 flexkabel wordt bijgeleverd voor de verbinding met de Pi. Gebruik je deze adapter in combinatie met de Pi Zero 2 W, let er dan goed op dat er plek is in de behuizing om de adapter te kunnen plaatsen! Bij de Raspberry Pi 4 is dat minder snel een probleem.
Software voorbereiden
Voordat we alles gaan bouwen bereiden we een microSD-kaartje voor met de software van PiKVM. Gebruik zoals aangegeven een kaartje van 16 GB of groter. Via de link https://docs.pikvm.org/flashing_os/ ga je naar de documentatie van PiKVM en daar zie je images van de verschillende versies van PiKVM. Zoek het 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 csi-adapter (Pi 4 en Zero 2 W) en de usb-dongle (alleen Pi 4). Na het downloaden van het 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.
Alles aansluiten
Als je alles klaar hebt liggen, is het aansluiten niet lastig. 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 verbind je een HDMI-kabel tussen de HDMI-uitgang van de pc en de HDMI-poort op de usb-framegrabber. Let er goed op dat je de usb-framegrabber in precies de juiste usb-poort op de Pi moet steken! Dat is op de Raspberry Pi 4 de zwartgekleurde usb-poort (usb 2.0) die het dichtst tegen de print aanzit. Zorg uiteraard ook dat je de netwerkkabel hebt aangesloten. 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 Raspberry Pi 4 gebruikt ongeveer 800 mA waardoor een eenvoudige powerbank ook voor langere tijd volstaat.
©PETER PIKE
Eerste stappen
Als je de Raspberry 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, zoals Chrome, Edge, Firefox of Safari. Heb je een probleem, wat incidenteel voorkomt, probeer dan je extensies uit te schakelen of gebruik een andere browser. Verwijs je browser naar https://pikvm of het ip-adres dat de Pi heeft gekregen. Je kunt hier inloggen met de standaard gebruikersnaam admin en ook het standaard wachtwoord is admin. Hierna kies je tussen KVM om het beeld van de bewuste pc te zien of Terminal om het terminalscherm van de Raspberry Pi te openen.
BIOS-toegang
Als je KVM kiest, zie je als het goed is direct het beeld van de bewuste pc. De usb-framegrabber wordt automatisch herkend en gebruikt. De bewuste pc is comfortabel te bedienen en de voordelige usb-framegrabber geeft een goed beeld. We hebben voor Full HD gekozen en dat gaat soepel over het lokale netwerk. Als test hebben we het systeem ook herstart en het BIOS geopend, wat eveneens probleemloos gaat. Het menu ATX is overigens bedoeld voor een uitbreiding waarmee je een pc op afstand kunt herstarten en aan- of uitzetten.
Opslag koppelen
PiKVM geeft je de mogelijkheid van virtuele schijven die een usb-stick of cd-rom kunnen emuleren. Daardoor kun je op afstand opslag koppelen aan de bewuste pc. Handig als je bijvoorbeeld een Linux-besturingssysteem wilt installeren. Als je in het menu op Drive klikt, zie je de opties voor het koppelen van opslag. Je bladert in feite naar het lokale bestand met Bestand kiezen en klikt dan op Upload. Hiermee wordt het bestand naar de Raspberry Pi geüpload. Achter Storage zie je hoeveel ruimte op de Raspberry Pi beschikbaar is. Als het uploaden voltooid is, kun je achter Image het bewuste bestand kiezen en daadwerkelijk koppelen als cd-rom of flashdrive. Wil je een iso-bestand als cd-rom koppelen, dan mag dat bestand maar 2,2 GB groot zijn. Daarom ‘past’ een iso-bestand voor de Windows-installatie niet. Je kunt dat eventueel wel op een andere manier voor elkaar krijgen. Maar je kunt natuurlijk ook gewoon een usb-flashdrive in de bewuste pc zelf prikken.
**Server met pc-componenten **
Ook met pc-componenten kun je prima een betrouwbare server bouwen. Je zult niet snel specifieke features missen. We hebben goede ervaringen met servers die standaard pc-componenten bevatten. Een barebone of mini-pc kan bijvoorbeeld prima als basis hebben. Zeker voor thuisgebruik zijn ze interessanter dan een gebruikte server. Hoewel je die laatste meestal voor weinig kunt oppikken, is een mini-pc over het algemeen veel energiezuiniger en dat verdien je snel terug. Bovendien zijn mini-pc’s over het algemeen ook kleiner, stiller en sneller. De extra uitbreidingsmogelijkheden kunnen servers interessant maken, maar de meerderheid van de gebruikers zal niet veel opslagcapaciteit of netwerkpoorten nodig hebben. Het grootste bezwaar is dat het bij problemen, of voor aanpassingen aan het BIOS, soms nodig is om de server op een beeldscherm, muis en toetsenbord aan te sluiten. Een netwerk-KVM zoals PiKVM kan je in die situaties veel moeite besparen.