Hiding Virtualization From Other Software

The Kernel-based Virtual Machine (KVM) allows Linux systems to function as hypervisors without needing any extra software, but VMs created with it don’t behave exactly like real hardware does. Sometimes that’s important, though, so [sandwich] built a tool called vfio-native that obscures the fact that software might be running in a virtual machine.

There are plenty of the ways that virtual hardware differs from bare metal. The VM may behave slightly differently for obscure instructions in ways that are measurable, it may take slightly longer to perform some tasks, or the hypervisor may simply announce itself directly. vfio-native includes some kernel patches that solve some bugs which address the different behaviors, changes the way that the kernel identifies itself, and attempts to force the CPUs to behave in ways that real hardware would behave. With all of this applied to the virtual machine, it scores a 1/85 against a VM detection tool, with a standard KVM virtual machine scoring 10/85.

For anyone looking to test this out, it’s available in the AUR for Arch Linux. Also, it’s probably worth mentioning that there are more reasons to use this than cheating at Counter-Strike. For example, security researchers testing malware need to know how that software behaves when it thinks its on real hardware, and some may behave in benign ways when confined to virtual machines. Some licensed software also may disable itself when it detects its running in a VM, which can be a nuisance for things like software controlling industrial tools which only run on operating systems that are no longer maintained or hardware that can’t be found anymore. Some other tools we’ve seen before perform similar tasks as well.

A KVM Without The V (Or The M)

Many of us will be used to the idea of a KVM, a device that pipes keyboard, video, and mouse over the network from a remote machine to your own. But many remote machines don’t run a GUI, so there’s not always the need for a full video experience. Enter [morpheuslord] with the PicoTTY. It’s somewhere between an old-fashioned serial terminal and a KVM.

The system has two components, a Pi Pico which plugs in to the USB port of each client machine and connects to the network with a WIZnet W5100S Ethernet Hat, and a Pi Zero 2 W which forms the hub. The Pico acts as both a keyboard and a serial terminal, and streams both to the user via a web interface on the Zero.

We can see the use of a machine like this, but we have a few questions. Why for instance is the keyboard needed, given that the serial terminal could provide input in itself. But however it works we can see it might have a use in cases where a terminal can’t be accessed over the network directly, and we especially like it that a single USB peripheral does the job that a conventional KVM would use a bunch of cables for.

If it’s a more conventional KVM you seek, they can now be done using a microcontroller.

A Capable KVM Built With The ESP32

[Evgenij Spitsyn] spotted a KVM build on these very pages some time ago. That inspired their own build, leveraging the versatility of the ESP32-P4 microcontroller.

The concept is straightforward. Named the ESPKVM, the device is designed to hook up to a computer’s HDMI and USB ports. It captures the video output, while presenting itself as a standard keyboard and mouse device. In this way, it allows remote control of the machine over IP. It achieves this feat with the aid of the Toshiba TC358743 HDMI-to-CSI bridge, which is essentially the video capture hardware of the build.

The video output of the machine is streamed in MJPEG or H.264 format. The device is capable of serving up storage from a micro SD card or the onboard flash, as well as handling things like power/reset control and wake-on-LAN. All in all, it’s a very complete package, and full of useful features. Just don’t use it over the public internet yet — [Evgenij] notes it hasn’t been reviewed for potential security holes yet, even though it has some basic authentication features baked in.

If you’ve got an ESP32-P4 ready to go with a TC358743 HDMI bridge, you can actually head over to the ESPKVM website and flash the code right in your browser to get going. Meanwhile, if you found this build interesting, you might like to scope out the one that inspired it. If you’re cooking up similar utility hacks, be sure to notify the Hackaday tipsline.

This KVM Runs A P4 Instead Of A Pi.

If you asked us to build you a KVM last week, we’d likely have reached for a Raspberry Pi. Now, thanks to [JonathanRowny], we’d seriously consider an ESP32-P4, because his IP KVM seems pretty capable.

He’s using the P4 hardware to its fullest, getting the supported 1080p graphics, and doing so in an interesting way– he’s got a commercial adapter board to try and translate HDMI signals to the camera input on his dev board. Conveniently enough, it’s the same ribbon-cable pinout as the RPi, which is not guaranteed by the CSI standard. Writing a driver to take that signal proved the hardest part– aside from the usual chip revision confusion that plagues this chip– and we can’t help but wonder if the client on the other side of the KVM-IP link might have an easier time doing the image processing that was required for a good image. Regardless, he’s got the code as it is now up on GitHub under the Apache license. 

As of this this writing, there’s no audio, and ironically for an ESP32 project networking is wired-only– but much more importantly, there is no security. So it’s a work in progress, but great to see the P4 in the wild doing something other than emulation. Not that we haven’t seen the P4 at work before–the Tanmatsu handheld also makes use of Expressif’s most powerful chip for a handy little terminal. Between the KVM and the handhelds, we cannot help but wonder how many of the projects that were once the provenance of a Pi will get squeezed into these overpowered microcontrollers. Sure, they can’t even match the original Pi in horsepower, never mind a modern Pi5, but how many times have you seen a Linux SBC seriously under-taxed in a project like this?

If you’re swapping Pi for P4– or doing anything else interesting– please let us know on the tips line.

Continue reading “This KVM Runs A P4 Instead Of A Pi.” →

The ‘Hidden’ Microphone Inside The Sipeed NanoKVM

Recently, [Jeff Geerling] dropped into the bad press feeding frenzy around Sipeed’s NanoKVM, most notably because of a ‘hidden’ microphone that should have no business on a remote KVM solution. The problem with that reporting is, as [Jeff] points out in the video below, that the NanoKVM – technically the NanoKVM-Cube – is merely a software solution that got put on an existing development board, the LicheeRV Nano, along with an HDMI-in board. The microphone exists on that board and didn’t get removed for the new project, and it is likely that much of the Linux image is also reused.

Of course, the security report that caused so much fuss was published back in February of 2025, and some of the issues pertaining to poor remote security have been addressed since then on the public GitHub repository. While these were valid concerns that should be addressed, the microphone should not be a concern, as it’d require someone to be logged into the device to even use it, at which point you probably have bigger problems.

Security considerations aside, having a microphone in place on a remote KVM solution could also be very useful, as dutifully pointed out in the comments by [bjoern.photography], who notes that being able to listen to beeps on boot could be very useful while troubleshooting a stricken system. We imagine  the same is true for other system sounds, such as fan or cooling pump noises. Maybe all remote KVM solutions should have microphone arrays?

Of course, if you don’t like the NanoKVM, you could always roll your own.

Top image: the NanoKVM bundle from [Jeff]’s original review. (Credit: [Jeff Geerling])

Continue reading “The ‘Hidden’ Microphone Inside The Sipeed NanoKVM” →

Linux Fu: Windows Virtualization The Hard(ware) Way

As much as I love Linux, there are always one or two apps that I simply have to run under Windows for whatever reason. Sure, you can use wine, Crossover Office, or run Windows in a virtual machine, but it’s clunky, and I’m always fiddling with it to get it working right. But I recently came across something that — when used improperly — makes life pretty easy. Instead of virtualizing Windows or emulating it, I threw hardware at it, and it works surprisingly well.

Once Upon a Time

First, a story. Someone gave me a Surface Laptop 2 that was apparently dead. It wouldn’t charge, and you can’t remove the keyboard without power. Actually, you can with a paper clip, and I suggested pulling it to see if the screen would charge by itself. They said they had already bought a new computer, so they didn’t care.

Unsurprisingly, once I popped the keyboard off, the computer charged and was fine. You just have to replace the keyboard or use another one. Or use it as a tablet, which it is set up for anyway. But I have plenty of laptops and computers of every description. What was I going to do with this nice but keyboardless computer? Continue reading “Linux Fu: Windows Virtualization The Hard(ware) Way” →

[rasteri] holding his HIDMan USB dongle

HIDman Brings Modern Input To Vintage PCs

Retro computing enthusiasts, rejoice! HIDman, [rasteri]’s latest open source creation, bridges the gap between modern USB input devices and vintage PCs, from the IBM 5150 to machines with PS/2 ports. Frustrated by the struggle to find functioning retro peripherals, [rasteri] developed HIDman as an affordable, compact, and plug-and-play solution that even non-techies can appreciate.

The heart of HIDman is the CH559 microcontroller, chosen for its dual USB host ports and an ideal balance of power and cost-efficiency. This chip enables HIDman’s versatility, supporting serial mice and various keyboard protocols. Building a custom parser for the tricky USB HID protocol posed challenges, but [rasteri]’s perseverance paid off, ensuring smooth communication between modern devices and older systems.

Design-wise, the project includes a thoughtful circuit board layout that fits snugly in its case, marrying functionality with aesthetics. Retro computing fans can jump in by building HIDman themselves using the files in the GitHub repository, or by opting for the ready-made unit.

Continue reading “HIDman Brings Modern Input To Vintage PCs” →