:::: MENU ::::

NanoKVM Script

Yet another script – that actually made the YouTube channel, albeit not a new one but the old codin_ro one.

Find the script below

Ideas to touch upon:

  • NanoKVM
  • Based on RISC-V
  • What is a KVM?
  • How can this be used?
  • Is the chinese writing on it – safe?
  • Test it on a few devices

IT’S HERE IT’S HERE IT’S HERE

I didn’t have the self control to keep all the packaging but the actual product box is untouched, so let’s get into it.

What is this thing?
This little thing is a KVM, which depending on where you’re coming from might also raise some eyebrows because – how is this a Kernel Virtual Machine?, it’s not, in this case it stands for Keyboard Video and Mouse – back before containers and VMs were all the rage we used to compute on bare metal machines, which raised the issue of remote management, and different companies came up with different issues – HP used iLO, Dell had iDrac and possibly others as well, those modules would allow you to remotely manage a machine with almost the same flexibility as if you were in the same room as the server. The downside with those is the pricing, especially if you’re running a large datacenter, and for us plebs the downside is that most people aren’t keen on spending massive amounts of money for this functionality, so Sipeed came out with this little things which starts at 20$ and goes to 50$ and gives you most of the useful features of a KVM-over-IP.

For the sake of accuracy – Remigius Shatas the founder of company Cybex (now called Vertiv) is credited with the first usage of this term for a product in 1995, albeit slightly different as KVS – Keyboard Video Switch, since mice weren’t as used back then.

You might’ve noticed the “RISC-V inside” mention, which is a funny dig at our main loss in everyone’s stock portfolios — scratch that, the main computer cpu manufacturer – Intel, RISC-V is an open-source instruction set architecture, the project started in 2010 at the Berkeley and has since been on a constant upword trend, and as of 2022 it has been included in the Linux Kernel with the 5.17 release.

Being open-source obviously has financial implications as well, which is why we’re starting to see a lot of devices using the riscv64 architecture as opposed to closed-down alternatives like ARM, Intel or AMD, although the last two haven’t ever made a real push towards these types of devices by launching a CPU that would make sense for this scenario.

Setting up isn’t a thing, you just hookup HDMI, USB-C and ETHERNET to the device, and optionally auxiliary power, and that’s it – DHCP will do its thing and then you’ll get an IP displayed on the screen to which you can go using a browser and get full KVM functionality. There’s some useful settings in the interface – specifically resolution, framerate and quality, and you’d be forgiven if you couldn’t tell the difference in quality between the 100% and 60% settings, apart from the massive increase in FPS that you’ll gain.

I was initially planning on testing this device on everything from a server to a macbook and so on – but being simple HDMI and HID, it should work on anything.

\
The web interface is surprisingly good, which might just say that I’m old and I don’t trust web interfaces for this sort of thing – even though I regularly use VMWare, but this is still a very decent interface and with the lower quality settings the lag is barely noticeable, and you could definitely go to town on a terminal without too much fuss. The keyboard input works great, so does the mouse, there isn’t however as far as I could find a CTRL+ALT+DEL combination but then again I didn’t read the manual so… there might be one – or it could be added at a later point.

The web interface is actually open source on their github and Sipeed says that once that repo reaches 2000 stars (weird flex but ok) they’ll open source the backend as well which is written in Golang.

For the sake of brevity I did record a short clip of usage on the Raspberry Pi and it was generally a more enjoyable experience as I didn’t have to fiddle with the quality settings since this is just text and therefore quite a lighter load for the NanoKVM which has a mode in which it won’t actually send pixels that didn’t change to improve performance – which is a perfect combination with a terminal.

Let’s look at the uses for this thing – mostly any power user or enterprise user could use this device, although there’s something to be said about scalability which we’ll get to later.
Well, anyone who wants to control a computer of basically any sorts – remotely is the market for this thing, obviously there’s layers to this so your grandmother might benefit more from AnyDesk instead of this one, but whatever floats your duck.\

You could use this (maybe) for your servers in case you don’t already have something like iLO or iDrac, or you could use it as a backup way to access your PC from afar with the added bonus that you can actually control the power button as well. Personally I see myself using this for setting up the stash of Raspberry Pi Zeros that I slowly piled up, which seem to all be strangely affected by the same bug in which I can’t actually set them up headless without manually connecting to WiFi, except if I’ll use a version of Raspberry Pi OS older than August 2023.

Then again, I find it useful for any of the many headless devices I have around me from the Raspberry Pi servers, to the Unraid NAS and literally anything else that I might sometime need to debug physically in a way, this’ll give me a way to do so without having a long enough cable to where the nearest monitor might be, and quite elegant while at it.

An important mention is that this device should work with basically any HDMI and USB equipped device you may have, but I’ll stress with caveats that I tried using this with the DL360 G4 HP server I had with a HDMI to VGA adapter that didn’t really vibe with the NanoKVM and I assume that either the adapter isn’t conforming to the HDMI spec, the server is not properly working anymore or the combination of the above.

As for the safety of it, which made the rounds recently, a researcher going by lichtlos has outed quite a few worrying vulnerabilities in the firmware under the form of hardcoded secrets and lack of user separation, while these are fair points and if we would be talking about something exposed to the web it’d be a huge red flag – for usage by prosumers they shouldn’t put anyone off, this device shouldn’t ever be exposed to the internet even with the best of security, and I only plan on using it locally or via a VPN. I did look a bit at what connections are happening and I didn’t see anything worrying, just a few NTP lookups, maybe a few too many – but I’ll solve that with a firewall rule and putting this thing in the shit-bin of my networks.

You can find the NanoKVM at the links below, as well as more info about it.


So, what do you think ?