ID.nl logo
Pi-KVM: Nas benaderen via Raspberry Pi op afstand
© Reshift Digital
Huis

Pi-KVM: Nas benaderen via Raspberry Pi op afstand

Als je nas of server op zolder is gecrasht, wil je waarschijnlijk voorkomen dat je het probleem ter plaatse moet oplossen. Met een kvm-over-ip-systeem kun je op afstand ingrijpen via het netwerk, wat helaas betrekkelijk duur is. Met Pi-KVM bouw je zoiets zelf met een Raspberry Pi en enkele goedkope componenten.

Een server of een nas staat waarschijnlijk niet altijd op een toegankelijke plaats. Dat is doorgaans geen probleem: je beheert het apparaat toch via het netwerk. Maar wat als het systeem is gecrasht en het daardoor niet meer bereikbaar is? Je kunt dan ter plaatse het apparaat rebooten, of als je er niet bij kunt in je meterkast de groep van je zolder even uitschakelen en weer inschakelen. Dan moet je maar hopen dat het apparaat uit zichzelf opstart of dat je het via wake-on-lan weer in actie krijgt.

Maar zelfs dan kan er nog heel wat misgaan. Wat als de bootloader bij een update een verkeerde configuratie heeft gekregen, zodat het besturingssysteem niet meer opstart? Dat probleem is niet via het netwerk op te lossen. Dan kun je niet anders dan een toetsenbord en scherm aansluiten en zo het probleem onderzoeken. Wellicht dien je via een live-cd een rescue-sessie op te starten om de bootloader opnieuw te installeren of andere hersteltaken uit te voeren.

Juist voor deze situatie zijn er in de loop der jaren talloze technologieën ontwikkeld die het mogelijk maken om op afstand het toetsenbord, scherm en opslagapparatuur van een server over te nemen alsof je er fysiek bij aanwezig bent. Dat heet doorgaans kvm-over-ip, waarbij kvm staat voor keyboard, video en mouse.

Er bestaan ook gestandaardiseerde protocollen voor beheer op afstand, iets wat men vaak out-of-band-management noemt. De bekendste is IPMI (Intelligent Platform Management Interface). Twee implementaties daarvan zijn DRAC (Dell Remote Access Controller) van Dell en iLO (Integrated Lights-Out) van HPE. Naast IPMI heb je ook AMT (Active Management Technology) van Intel. Een relatief nieuwe standaard is Redfish, die in de industrie ook al een goede ondersteuning heeft gekregen.

Goedkoop alternatief

Al deze technologieën hebben gemeen dat ze zich vooral richten op de zakelijke markt en daardoor niet goedkoop zijn. Maar voor de thuisgebruiker met een nas is er een alternatief: sluit een Raspberry Pi op je nas aan en laat die werken als een via het netwerk aan te sturen toetsenbord, muis en scherm van je nas. Pi-KVM biedt zo’n oplossing aan, die je zelf kunt bouwen voor nog geen 100 euro.

Je sluit de video-uitgang van je nas gewoon via een video-capturecomponent aan op je Raspberry Pi, en via de usb-otg-aansluiting doet de Raspberry Pi zich voor als toetsenbord en muis. Dan sluit je de Raspberry Pi op je netwerk aan. Via een webinterface of VNC-client krijg je dan toegang tot het scherm van je nas en stuur je dat aan met je eigen toetsenbord en muis.

©PXimport

Op de GitHub-pagina van Pi-KVM staat uitgelegd welke componenten je nodig hebt om je eigen kvm te maken. De huidige versie heeft een Raspberry Pi 4 nodig (het model met 2 GB geheugen volstaat) of een Raspberry Pi Zero W. Deze laatste is trager en dan ook niet aan te raden.

Voor de video-capture kun je kiezen voor een hdmi-naar-usb-dongel (de goedkoopste optie), maar die levert een beeldvertraging op van zo’n 200 ms en is minder betrouwbaar. Een betere optie is dan ook een hdmi-naar-csi-2-adapterbordje, dat je op de csi-2-connector van je Raspberry Pi aansluit, die normaal gesproken is bedoeld voor de Raspberry Pi Camera Module. In feite geef je zo het beeld van het scherm van je nas door aan je Raspberry Pi alsof het een camerabeeld is.

Dan rest nog de emulatie van het toetsenbord en muis. De usb-c-aansluiting van de Raspberry Pi 4 dient voor de stroomvoorziening, maar minder bekend is dat die ook usb-on-the-go (usb-otg) voor dataoverdracht ondersteunt. Met een trucje kunnen we daarvan gebruikmaken. 

Als je de usb-c-kabel waarop je de Raspberry Pi aansluit splitst in één usb-a-kabel voor de stroomvoorziening (die je in een voeding van 3 ampère en 5 volt steekt) en één usb-a-kabel voor data, kun je die laatste aansluiten op je nas en kan je Raspberry Pi zich zo voordoen als toetsenbord, muis en zelfs opslagapparaat.

Usb-splitter zelf maken

Alles wat we hiervoor noemden, kun je kant-en-klaar kopen, inclusief de usb-splitter. Maar bij deze laatste moet je even opletten: veel usb-splitters hebben in de ene kabel alleen stroom en in de andere kabel data én stroom, om extra stroom aan een usb-apparaat zoals een harde schijf te leveren. Dat kan in onze situatie voor Pi-KVM voor problemen zorgen. Je hebt daarom een usb-splitter nodig die het signaal splitst in voeding voor de ene kabel en data voor de andere.

Gelukkig kun je zo’n kabel vrij eenvoudig zelf maken en dat gaan we hier ook doen. Je hebt een usb-a-naar-usb-c-kabel nodig (mannelijk/mannelijk) en een usb-a-kabel met mannelijke connector aan de ene kant (waarvan je maar de helft gebruikt). Eén van de twee mag een pure voedingskabel zijn (die dus geen datalijnen heeft). Je kunt het beste kabels van verschillende kleuren gebruiken, zodat je makkelijker onthoudt wat de data- en wat de voedingskabel is van je splitter.

©PXimport

Beslis welke kabel je als datakabel en welke je als voedingskabel gaat gebruiken. Knip de ongebruikte connector van de voedingskabel af en strip de isolatie van het uiteinde. Je ziet nu vier draden (of twee als het een voedingskabel is): de witte en groene draden zijn de datalijnen, de rode en zwarte (of blauwe) zijn de voedingslijnen. Van deze heb je alleen de voedingslijnen nodig. Buig de andere om of knip ze af zodat ze geen onbedoeld contact maken. Strip nu de isolatie van de rode en zwarte draden. Doe dat bijvoorbeeld met een breekmes, want het zijn heel dunne draden.

De andere kabel, waarvan je het ene uiteinde als datakabel gaat gebruiken en het usb-c-uiteinde in de Raspberry Pi gaat steken, moet je niet doorknippen. Je dient op een bepaald punt de buitenste isolatielaag te verwijderen. Doe dat voorzichtig door met een striptang op twee plaatsen in de kabel te snijden zonder de draden binnenin te beschadigen, en de isolatie ertussen te verwijderen.

©PXimport

Knip hier nu de zwarte en rode draden door. Strip de isolatie van de twee uiteindes van de zwarte kabel en van het uiteinde van de rode kabel aan de kant van de usb-c-connector die in de Raspberry Pi moet. De andere rode kant buig je om of knip je af; die heb je niet nodig. Verbind nu de rode draad van de datakabel met de rode draad van de voedingskabel. 

Breng de twee stukken van de doorgeknipte zwarte draad van de datakabel bij elkaar en verbind die met de zwarte draad van de voedingskabel. Soldeer beide verbindingen vast na eerst elke draad te vertinnen. Let op: voor de zwarte draad moet je dus drie stukjes aan elkaar solderen!

Werk de kabel nu af. Bevestig isolatietape rond de zwarte draad en andere isolatietape rond de rode. Bevestig tot slot isolatietape rond het geheel, zodat er geen open draden meer te zien zijn van de usb-kabels.

over hoe je deze kabel maakt.

©PXimport

©PXimport

Uiteindelijk heb je een kabel met aan één kant een usb-c-connector die zowel data als voeding doorgeeft, en aan de andere kant één kabel met usb-a-connector voor de data en een andere kabel met usb-a-connector voor de voeding. Onthoud (of beter: label) welke waarvoor dient!

©PXimport

Pi-KVM installeren

Dan heb je nu alles om je eigen Pi-KVM-apparaat te maken. Als je de hdmi-naar-usb-dongel gebruikt, steek die dan in de usb-poort linksonder (de software verwacht die daar). Gebruik je het hdmi-naar-csi-2-adapterbordje, trek dan het zwarte lipje van de camera-interface op de Raspberry Pi (tussen de analoge audio en de micro-hdmi) naar boven, en trek ook het lipje op het adapterbordje naar buiten.

Steek dan de lintkabel in de connector op de Raspberry Pi, met het blauwe strookje gericht naar de usb-poorten, en klik het lipje weer dicht. Doe hetzelfde op het adapterbordje, waar de blauwe strook naar de bovenkant gericht moet zijn.

Download de image van Pi-KVM en kies daarbij voor de versie voor het csi-adapterbordje of de usb-dongel. Schrijf dit dan met een programma zoals balenaEtcher of USBImager naar een micro-sd-kaart van minstens 16 GB groot. Steek deze in je Raspberry P en sluit de hdmi-connector van het adapterbordje via een hdmi-kabel op het scherm van je nas aan. 

Sluit dan het usb-c-uiteinde van je usb-kabel op je Raspberry Pi aan, doe de voedingskabel van de andere kant in een voedingsadapter van 3 ampère en 5 volt en steek de datakabel in een usb-poort van je nas. Sluit een ethernetkabel aan, zodat je Raspberry Pi een netwerkverbinding heeft. En steek tot slot de voedingsadapter in het stopcontact, waarna je Pi-KVM-machine opstart. 

Lukt dit niet, draai dan de usb-c-connector om. Onze Frankensteinkabel heeft niet de handige eigenschap van usb-c dat het niet uitmaakt hoe je de connector ergens in steekt.

Zoek nu het ip-adres dat je Raspberry Pi via dhcp heeft verkregen. Dat kan in de lijst met dhcp-leases in de webinterface van je router. Log in op https://IP met in plaats van IP het ip-adres van je Raspberry Pi. Je krijgt een waarschuwing te zien, omdat de webinterface van Pi-KVM een zelfondertekend tls-certificaat gebruikt. Log in met gebruikersnaam admin en wachtwoord admin.

Je krijgt nu het hoofdscherm van Pi-KVM te zien, met drie opties: KVM, Terminal en Logout

©PXimport

Kies eerst eens voor Terminal en voer su in om naar de rootgebruiker over te schakelen (het wachtwoord is standaard root). Voer dan eerst rw in om het rootbestandssysteem beschrijfbaar te maken en dan passwd om een nieuw wachtwoord voor root te kiezen. Het wachtwoord voor gebruiker admin wijzig je met de opdracht: kvmd-htpasswd set admin.

KVM instellen

Het belangrijkste is uiteraard de kvm-functionaliteit. Keer terug naar het hoofdscherm en kies KVM. Als je Pi-KVM correct op je nas hebt aangesloten en je die via atx (in het menu ATX / Click Power of door fysiek de powerknop in te drukken) inschakelt, zie je nu het opstartscherm van je bios/uefi en daarna het bootmenu verschijnen.

Je kunt nu ook met je toetsenbord en muis je nas aansturen alsof je er vlak voor zit, en allerlei hersteltaken uitvoeren. Instellingen in het bios of de uefi aanpassen? Het bootmenu aanpassen of een andere entry in het bootmenu kiezen omdat de standaardkeuze niet start? In het initramfs van je Linux-server je bestandssysteem herstellen of de passphrase invoeren om je rootbestandssysteem te unlocken? Het is allemaal mogelijk op deze manier.

Let wel op: omdat je dit alles in een webbrowser doet, worden specifieke toetsen(combinaties) door het besturingssysteem van je pc of je webbrowser geïnterpreteerd en niet op je nas. Daarbij horen belangrijke combinaties zoals Ctrl+Alt+Del, maar ook toetsen zoals Shift Lock. Als je deze naar je nas wilt sturen, kan dat in Pi-KVM via het menu Shortcuts.

©PXimport

Virtuele schijf toevoegen

Een volgende stap is dat je ook op afstand een (virtuele) schijf toevoegt aan je nas, bijvoorbeeld om bij grotere problemen je nas van een herstelschijf op te starten of een volledige herinstallatie te doen van je Linux-server met een installatieschijf. Die functionaliteit vind je in het menu Mass Storage.

Klik daar op Select image to upload en selecteer het gewenste iso-bestand op je pc. Klik daarna op Upload om het naar je Raspberry Pi te uploaden. Dit is de reden waarom je het liefst geen te kleine micro-sd-kaart in je Raspberry Pi stopt: alle images waarvan je je nas wilt kunnen opstarten, moeten hierop kunnen passen.

Zodra het iso-bestand is geüpload, klik je het in het uitklapmenu naast Image: en kies je of je bij Drive mode of je de schijf wilt simuleren als cd-rom of usb-stick. Daarna klik je onderaan op Connect drive to Server. Pi-KVM doet zich dan via de usb-otg-interface voor als opslagapparaat en biedt zo de inhoud van de image aan je nas aan.

Als je nu je nas reboot of opstart, kun je in het bootmenu van het bios/uefi de virtuele schijf kiezen waarvan hij moet opstarten. Je voert nu de hersteltaken of installatie uit waarvoor je de schijf nodig hebt. En als je daarna klaar bent, klik je in Pi-KVM in het menu Mass Storage op Disconnect drive om de virtuele schijf te ontkoppelen. Als je daarna je nas weer herstart, zal hij weer van zijn normale schijf starten.

©PXimport

Werken met macro's

Als je specifieke acties met je toetsenbord en muis meerdere keren moet uitvoeren, kun je deze opnemen als macro’s en daarna meerdere keren afspelen. Ga daarvoor in de webinterface van Pi-KVM naar Macro, klik op Rec, voer je taken uit, en klik op Stop als je macro klaar is. Op deze manier kun je bijvoorbeeld de juiste opstartschijf in het bootmenu kiezen en dit als een macro opslaan. De tijd dat het script nodig heeft, wordt ook getoond. Deed je iets verkeerds in je macro, klik dan op Clear en neem ze dan opnieuw op.

De macro’s worden niet op Pi-KVM zelf opgeslagen. Je dient je aangemaakte macro dus eerst te downloaden met een klik op Download script. Sla die dan op je pc op met een duidelijke naam. Als je dan later de macro opnieuw wilt uitvoeren op je nas, klik je op Upload script en daarna op Play om de macro uit te voeren. In sommige omstandigheden is de optie Infinite loop playback interessant: de acties die je in de macro hebt opgenomen, worden dan in een lus telkens herhaald.

©PXimport

Pi-KVM uitbreiden

Het besturingssysteem van Pi-KVM is gebaseerd op Arch Linux ARM. Je kunt dit flexibele besturingssysteem dan ook uitgebreid aan je wensen aanpassen. Extra pakketten installeren voor functionaliteit die niet standaard erin zit, is eenvoudig gebeurd. Houd er wel rekening mee dat het besturingssysteem in read-only modus draait. Maak het bestandssysteem dus altijd eerst schrijfbaar voor je pakketten installeert of configuratiebestanden aanpast, en maak het daarna weer read-only. Op die manier is de kans op een corrupte micro-sd-kaart laag.

Verder ondersteunt Pi-KVM ook de serverbeheerprotocols IPMI en Redfish. Die eerste heeft tal van zwakheden; die tweede is een moderner, op http gebaseerd protocol dat al heel wat veiliger is. Redfish is standaard al ingeschakeld. Dat betekent dat je met tools die Redfish ondersteunen Pi-KVM op afstand kunt aansturen met de gebruikers die in Pi-KVM zijn gedefinieerd. 

Tot slot kun je in Pi-KVM ook meer dan één opslagapparaat definiëren, een seriële verbinding over usb configureren of ethernet over usb. In het laatste geval kun je je Raspberry Pi bijvoorbeeld als dns-server of ftp-server voor je nas laten werken.

▼ Volgende artikel
Nieuwe FromSoftware-game The Duskbloods komt echt alleen naar Switch 2
Huis

Nieuwe FromSoftware-game The Duskbloods komt echt alleen naar Switch 2

The Duskbloods, de nieuwe game van Elden Ring- en Dark Souls-ontwikkelaar FromSoftware, zal echt alleen op Nintendo Switch 2 uitkomen.

Dat heeft de ontwikkelaar benadrukt bij het bekendmaken van zijn kwartaalcijfers (via VGC). Daarbij werd ook nog eens benadrukt dat The Duskbloods nog altijd gepland staat om ergens dit jaar uit te komen, net zoals de Switch 2-versie van Elden Ring.

Over de exclusieve Switch 2-release van The Duskbloods: "Het wordt verkocht via een samenwerking met Nintendo, met verkoopverantwoordelijkheden verdeeld per regio. De game komt alleen voor Nintendo Switch 2 beschikbaar." Daarmee is dus duidelijk gemaakt dat Nintendo een nauwe samenwerking met FromSoftware is aangegaan voor de game en dat het spel niet zomaar op andere platforms uit zal komen.

Over The Duskbloods

The Duskbloods werd begin vorig jaar aangekondigd in een speciale Nintendo Direct waarin de eerste Switch 2-games werden getoond, maar sindsdien zijn er geen nieuwe beelden van het spel uitgebracht. Zoals gezegd is de game ontwikkeld door FromSoftware, het Japanse bedrijf dat naam voor zichzelf heeft gemaakt met enorm uitdagende spellen, waaronder de Dark Souls-serie en Bloodborne. Met de openwereldgame Elden Ring scoorde de ontwikkelaar enkele jaren geleden nog een megahit.

Watch on YouTube

The Duskbloods wordt een PvPvE-game, waarbij spelers het dus tegen elkaar en tegen computergestuurde vijanden opnemen. Maximaal acht spelers doen aan potjes mee. Na het kiezen van een personage in een hub-gebied wordt men naar een gebied getransporteerd waar er met andere spelers en vijanden gevochten wordt, al kan men soms ook samenwerken om vijanden te verslaan.

Spelers besturen een 'Bloodsworn', wezens die dankzij een speciaal bloed dat in hun lichaam zit meer krachten tot hun beschikking hebben dan reguliere mensen. Ondertussen is het einde van de mensheid nabij, en bestaat de wereld uit verschillende tijdperken, wat voor een mengelmoes van stijlen zorgt.

▼ Volgende artikel
Beeldverversing versus pixels: waarom soepel gamen beter is dan scherp
© Gorodenkoff Productions OU
Huis

Beeldverversing versus pixels: waarom soepel gamen beter is dan scherp

Resolutie is marketing, refreshrate is beleving. Waar 4K zorgt voor een mooi plaatje, zorgt een hoge verversing (Hz) ervoor dat je daadwerkelijk wint. Hieronder lees je waarom snelheid in feite de échte koning is in gaming.

Veel gamers staren zich blind op 4K-resolutie. Ze kopen een duur scherm, zetten de settings op Ultra en vragen zich vervolgens af waarom hun spel stroperig aanvoelt. De misvatting is dat 'mooier' gelijkstaat aan 'beter'. In werkelijkheid is de vloeibaarheid van het beeld – de refreshrate, oftewel verversingssnelheid – veel bepalender voor hoe direct en responsief een game aanvoelt. Aan het eind van dit artikel weet je precies of jij moet kiezen voor pixels of snelheid.

Hoe je ogen bedrogen worden door Hertz

Stel je voor dat je snel met je muis over je bureaublad beweegt. Op een standaard 60Hz-scherm zie je de cursor in schokjes over het beeld springen; je hersenen vullen de gaten in. Op een 144Hz- of 240Hz-gaming-monitor verdwijnen die gaten.

Het technische verschil zit hem in de verversingssnelheid: het aantal keren per seconde dat het beeld wordt vernieuwd. Bij 60 Hz krijg je elke 16,6 milliseconden een nieuw beeld. Bij 144 Hz is dat elke 6,9 milliseconden. Dat klinkt als een klein verschil, maar je voelt het direct. Het gestotter dat je onbewust gewend bent verdwijnt. Bewegingen voelen boterzacht aan, alsof de cursor (of je crosshair) aan je hand vastgeplakt zit in plaats van er achteraan zwemt. Dit effect wordt motion clarity genoemd: objecten blijven scherp, zelfs als ze snel door het beeld bewegen.

©Framestock

De winst in shooters en snelle actie

Wanneer werkt dit in je voordeel? Vooral in competitieve shooters zoals Call of Duty, Counter-Strike of Valorant. In dit soort games telt elke milliseconde. Een hogere refreshrate vermindert de input lag, oftewel de tijd tussen jouw klik en de actie op het scherm.

Stel, je draait je personage snel om. Bij een lage refreshrate wordt de vijand een fractie later getoond en zie je veel bewegingsonscherpte (motion blur). Met een hoge refreshrate zie je de vijand eerder en scherper, waardoor je sneller kunt reageren. Je hebt letterlijk actuelere informatie dan je tegenstander. Om dat te bereiken heb je wel een krachtige videokaart nodig die genoeg beelden per seconde (FPS) kan genereren om je snelle scherm bij te houden.

Wanneer resolutie het toch wint van snelheid

Is snelheid altijd heilig? Nee. Als je vooral tragere, meer verhalende games speelt (zoals Cyberpunk 2077 in de 'sightseeing' modus), Microsoft Flight Simulator of grafische RPG's, dan voegt 240 Hz weinig toe. In deze titels kijk je vaak naar stilstaande of langzaam bewegende omgevingen.

In dat geval wil je juist de texturen van de bomen, de reflecties in het water en de details in gezichten zien. Een 4K-monitor op 60 of 120 Hz is dan een logischer keuze dan een onscherp 1080p-scherm op 360 Hz. De visuele pracht weegt hier zwaarder dan de milliseconden reactietijd. Ook voor console-gamers die op de bank zitten, is een goede televisie met 4K en HDR vaak indrukwekkender dan puur de hoogste framerates.

Situaties waarin een hoge refreshrate zinloos is

Er zijn momenten dat investeren in een snel scherm weggegooid geld is. Dat gebeurt bijvoorbeeld als je hardware de snelheid niet kan leveren; als je videokaart maar 50 frames per seconde kan leveren, heeft een 144Hz-scherm geen nut omdat het scherm wacht op de computer. Daarnaast beperken oude kabels je bandbreedte, waardoor je monitor soms terugvalt naar 60 Hz zonder dat je het doorhebt. Ook op oudere consoles zoals de Nintendo Switch of de standaard PS4 heb je niets aan snelle schermen, omdat deze hardware fysiek gelimiteerd is op 60 Hz of lager.

Bepaal wat jouw setup aankan

Kijk dus kritisch naar je huidige situatie voordat je naar de winkel rent. Heb je een high-end pc die makkelijk 120+ FPS haalt in jouw favoriete games? Dan is een upgrade naar een 144- of 165Hz-monitor de grootste sprong in spelplezier die je kunt maken. Speel je op een PlayStation 5 of Xbox Series X? Zoek dan specifiek naar een scherm met HDMI 2.1-ondersteuning om 120 Hz op 4K mogelijk te maken. Zit je ver van je scherm af en speel je relaxed? Investeer dan liever in resolutie en kleurdiepte.

©Proxima Studio

Kortom: snelheid is de sleutel tot succes!

Verversingssnelheid is belangrijker dan resolutie voor iedereen die actie- of competitieve games speelt. Het zorgt voor een vloeiender beeld, minder input lag en betere motion clarity, wat je direct een voordeel geeft in het spel. Resolutie is vooral luxe voor het oog, maar refreshrate is pure prestatie voor de speler.