Add a blog, with content from the Discord channel (#1565)

This commit is contained in:
Aleksandr Prokudin
2025-07-25 21:26:17 +03:00
committed by GitHub
parent d508a762c8
commit e5497ec2d0
127 changed files with 3443 additions and 1 deletions
+42
View File
@@ -0,0 +1,42 @@
---
title: "KVMD 1.65: VNC improvements and new API"
date: 2020-06-01
slug: kvmd-1-65-vnc-improvements-and-new-api
description: >
What time is it? Release time! Meet the new version of KVMD: 1.65
categories:
- Releases
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz5
- KVMD release: https://github.com/pikvm/kvmd/releases/tag/v1.65
comments: true
---
What time is it? Release time! Meet the new version of KVMD: 1.65
<!-- more -->
- If you haven't updated to previous intermediate builds, this release will provide many VNC improvements: for example, you can now insert text from the client to the server. In addition, we fixed an annoying bug related to interrupting the broadcast when it is impossible to resume it without restarting the server.
- A new API was added for inserting text with the ability to select the keyboard layout of the target computer. For example: `curl -k -X POST -H 'Content-Type: text/plain' -H 'X-KVMD-User: admin' -H 'X-KVMD-Passwd: admin' --data "some text" https://pikvm/api/hid/print?keymap=en-us`. To get a list of supported layouts, use `/api/hid/keymaps`. You can change the default layout in the settings using `/etc/kvmd/override.yaml` like this:
```yaml
kvmd:
hid:
keymap: /usr/share/kvmd/keymaps/en-gb
```
This does not currently affect the virtual keyboard in the web interface, but this issue will be resolved in the future. Also please note that language switching is not supported yet.
- Extended API for getting screenshots and previewing screenshots: /api/streamer/snapshot. The last screenshot can be saved in the memory of the KVM. Unfortunately, we have not yet reached the stage of drawing up detailed documentation, so you can find the full list of parameters in the sources: https://github.com/pikvm/kvmd/blob/master/kvmd/apps/kvmd/api/streamer.py#L57
- A large refactoring of internal libraries has been carried out, so that now it is easier to add an alternative protocol for communication with KVM, such as RDP.
- Work has been carried out to improve security. No vulnerabilities were found in the process, but the added additional checks will help me avoid them in the future.
And this is the first release in which I included a list of all those who decided to support the Pi-KVM project. Just as I promised. Thank you again to all these kind people. You make the world of open source a better place and help me survive 😄
To update use `rw; pacman -Syu; reboot`. If pacman will report a problem with kernel dependencies, you will need to add them to `IgnorePkg` in `/etc/pacman.conf`. Find the IgnorePkg string, uncomment it, and add two packages that pacman swore at, like `IgnorePkg = linux-raspberrypi linux-raspberrypi-headers` for zero or `IgnorePkg = linux-raspberrypi4 linux-raspberrypi4-headers`. After that re-run `pacman -Syu` again and reboot.
+42
View File
@@ -0,0 +1,42 @@
---
title: "KVMD 1.67: NumPad support"
date: 2020-06-08
slug: kvmd-1-67-numpad-support
description: >
Added NumPad support, including for configurations with Arduino HID
categories:
- Releases
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz5
- KVMD release: https://github.com/pikvm/kvmd/releases/tag/v1.67
comments: true
---
We added NumPad support, including for configurations with Arduino HID.
<!-- more -->
The Arduino firmware is backward compatible so nothing will break if you don't update it, but it's still worth rewiring your device. You can find out how to do this in the user's guide: https://github.com/pikvm/pikvm.
KVM on the basis of the ZeroW parameter and RPi4 will receive support NumPad once after upgrading and rebooting.NumPad also works in VNC, but the keys are not represented in the web interface, because there is no space for them now. I'm saving this issue for the future when I'm improving the UI.
For Arduino HID, communication logging over the serial port has been reworked, so that the log shows fewer unimportant connection errors. The logic there is quite complex, and although I have checked everything ten times, please let me know if there are any problems with the Arduino.
IPMI and VNC logs are made slightly more readable. The IPMI log shows the IP address of the client from which the request was sent.
This release also includes improvements to the About window of the web interface, which now shows more information about the system.
To update:
```console
rw
pacman -Syu
reboot
```
If you have problems installing packages, see the previous news.
PS: The situation with the new kernel has become a little clearer. [Another bug](https://github.com/raspberrypi/linux/issues/3647) that I found has been fixed, so there is a chance for a quick system update. In the meantime, we'll continue enjoying the stability of the 4.x branch
+28
View File
@@ -0,0 +1,28 @@
---
title: "KVMD 1.71: Improved IPMI server"
date: 2020-06-20
slug: kvmd-1-71-vnc-improvements
description: >
The new version comes with support for ipmi health
categories:
- Releases
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz5
- KVMD release: https://github.com/pikvm/kvmd/releases/tag/v1.71
comments: true
---
The new version comes with two improvements.
<!-- more -->
First off, we improved the IPMI server. The `ipmiutil health` command is now supported.
Secondly, in the web interface, you can now record a macro of your keyboard and mouse actions on the server, save it, and play it back.
This is convenient if you need to perform a sequence of similar actions. The downloaded macro has a convenient json format, so you can independently write scripts with macros in any convenient language to play them remotely.
For example, [this](https://gist.github.com/mdevaev/4266ec6c8911482d45b40a228ad94083) is a Python script that plays a macro on the specified PiKVM.
+34
View File
@@ -0,0 +1,34 @@
---
title: "KVMD 1.75: Hardware health monitoring"
date: 2020-07-17
slug: kvmd-1-75-hardware-health-monitoring
description: >
KVMD 1.75 is out and features hardware health monitoring in the web UI
categories:
- Releases
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz5
- KVMD release: https://github.com/pikvm/kvmd/releases/tag/v1.75
comments: true
---
Today's big release KVMD 1.75 includes several important features.
1) Hardware health monitoring. If your Pi-KVM suffers from overheating or lack of power, you will see the corresponding icons and messages in the interface. Don't ignore them! The problems, if any, are not caused by the update, they have always been there, but you have not seen them before, because they were hidden in the kernel logs.
<!-- more -->
2) Partially fixed an issue with the jumping stream quality slider in the Web UI. This is sometimes found on FireFox. The slider still jumps, but it doesn't lose your settings.
3) Hand-written HTML has finally been eradicated in favor of Pug templates ([here](https://github.com/pikvm/kvmd/blob/master/web/login/index.pug) is one example. Future commiters will find it easier to live.
4) Reworked streamer settings—preparing for official support of the USB-HDMI dongle. Since it does not know how to adjust the stream quality and determine resolutions, the corresponding submenus will be and added to the Web UI.
5) Fixed a bug that caused the mouse to work incorrectly on the Arduino HID. Update the firmware (see https://github.com/pikvm/pikvm).
6) Added a handler for the Power key, which is sometimes found on the keyboard. There is no such button in the interface (yet?) it is not necessary, but if necessary, you can call it via the websocket API.
![Hardware health monitoring](webui.webp)
Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

+28
View File
@@ -0,0 +1,28 @@
---
title: "KVMD 1.78: VNC improvements"
date: 2020-07-23
slug: kvmd-1-78-vnc-improvements
description: >
There are two important VNC improvements in the KVMD 1.78 release
categories:
- Releases
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz5
- KVMD release: https://github.com/pikvm/kvmd/releases/tag/v1.78
comments: true
---
Two important VNC improvements: client connections that have hung up are now terminated correctly using `TCP_KEEPALIVE`; applying the `TCP_NODELA`Y parameter slightly improved responsiveness.
<!-- more -->
- Improved compatibility with FireFox.
- Minor fixes and codebase cleanup.
This release also updated the list of project sponsors, who donated via Patreon (https://patreon.com/pikvm) or PayPal (https://www.paypal.me/mdevaev). The names of these good people are forever immortalized on the project page and in the web interface in the About window.
Thanks to them, I was able to buy a couple of new devices, support for which will appear in one of the next releases of Pi-KVM, and also bought food for my cat!
Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

+30
View File
@@ -0,0 +1,30 @@
---
title: "KVMD 1.82: HDMI-USB dongle support"
date: 2020-07-26
slug: kvmd-1-82-hdmi-usb-dongle-support
description: >
KVMD 1.82 released. The main change is to add support for an HDMI-USB dongle out of the box
categories:
- Releases
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz5
- KVMD release: https://github.com/pikvm/kvmd/releases/tag/v1.82
comments: true
---
The main change is to add support for an HDMI-USB dongle out of the box.
<!-- more -->
For the dongle, the quality settings option was removed from the interface (does not supported by the device) and dropdown was added with manual resolution selection.
The best way to use a dongle is to rebuild the operating system with `PLATFORM=v2-hdmiusb`. This way you will get a configuration that can be easily updated. The use of HDMI-CSI bridge and USB dongle is also available for RPi and RPi3 (with Arduino HID).
Please note that the video capture device is linked to a strictly defined USB port. This is necessary so that the OS does not confuse the USB device with something else.
Check the updated [instructions](https://docs.pikvm.org/v1/?h=dongle#...%20or%20HDMI-USB%20dongle).
![HDMI-USB dongle port](hdmi-usb-dongle.webp)
+49
View File
@@ -0,0 +1,49 @@
---
title: "KVMD 1.83: Security fix for the V2 platform"
date: 2020-07-31
slug: kvmd-1-83-security-fix-for-the-v2-platform
description: >
KVMD 1.83 released with minor security fix for v2 platform
categories:
- Releases
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz5
- KVMD release: https://github.com/pikvm/kvmd/releases/tag/v1.83
comments: true
---
After a little discussion, I decided to disable OTG Serial Console for security reasons.
<!-- more -->
The option `otg.acm.enabled` now is `false` by default. Additionally, the new [OS build environment](https://github.com/pikvm/os) does not perform the steps for setting up the console.
It is important to note that if you set a **strong password** on your Pi-KVM, this problem is not so significant. Attackers will not be able to exploit it from the outside. However, I want to provide the most secure default settings. I'm sorry about this mess. This feature was very useful for development and users of ZeroW devices that don't have Ethernet, but it's not good enough for general installations.
* To disable this feature permanently on older Pi-KVMs, follow the instructions above (the `override.yaml` will not need to be edited after KVMD is updated).
* If you have an old Pi-KVM installation and you want to continue using this feature, use `override.yaml` and set option `otg.acm.enabled` to `true`.
* To enable this feature for the v2 platform again in the build environment, add to the `config.mk` this line: `STAGES ?= __init__ os pikvm-repo watchdog ro no-audit pikvm pikvm-otg-console ssh-keygen __cleanup__`
-----
As a new feature, you can disable VNC TLS if you need compatibility with strange VNC clients. Use `/etc/kvmd/override.yaml` for this (remove {} before):
```yaml
vnc:
server:
tls:
ciphers: ""
```
To update:
```console
rw
pacman -Syu
reboot
```
@@ -0,0 +1,43 @@
---
title: "Security note for v2"
date: 2020-07-31
slug: security-note-for-v2
description: >
After installation, Pi-KVM will be available via USB OTG from the managed server via the virtual serial console port
categories:
- Development
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz5
comments: true
---
After installation, Pi-KVM will be available via USB OTG from the managed server via the virtual serial console port.
<!-- more -->
This is very helpful if SSH is unavailable (and you don't have a UART cable), so you can login to the device using something like mingetty or PuTTY and find out what's wrong. The login is protected by the same password that is used for the root login. In some cases (if different networks are used for servers and KVM for security reasons), you may want to disable this feature. To do this:
* Run rw.
* Edit file /etc/securetty and remove line ttyGS0.
* Edit file /etc/kvmd/override.yaml and add these lines (remove {} before):
```yaml
otg:
acm:
enabled: false
```
* Run:
```console
[root@pikvm ~]# systemctl enable getty@ttyGS0.service
[root@pikvm ~]# rm -rf /etc/systemd/system/getty@ttyGS0.service.d
[root@pikvm ~]# reboot
```
This setting is enabled by default so that you are not left alone with an unmanaged device if it does not receive an address on the network for some reason—for example, if you choose a Wi-Fi connection.
If you have a reasonable argument for disabling default, I will be happy to hear it.
+27
View File
@@ -0,0 +1,27 @@
---
title: "Ready-made images for Raspberry Pi4"
date: 2020-08-02
slug: ready-made-images-for-raspberry-pi4
description: >
Now we provide the ready-made images for Raspberry Pi 4. You no longer need to build OS manually!
categories:
- Products
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz
comments: true
---
The big update! Now we provide the ready-made images for Raspberry Pi 4. You no longer need to build OS manually!
<!-- more -->
You can flash the Pi-KVM OS to SD card under Linux, Mac, and Windows using the graphical installer.
Downloads are here: https://pikvm.org/download/.
The manual is here: https://docs.pikvm.org/flashing_os/.
Oh, and as you can see, now we have a small website: https://pikvm.org/. I would appreciate it if you share this link with your colleagues or friends in social networks.
+34
View File
@@ -0,0 +1,34 @@
---
title: "KVMD 1.86: PS/2 keyboards support"
date: 2020-08-07
slug: kvmd-1-86-ps2-keyboards-support
description: >
Great news for fans of retro computers and tech priests: now Pi-KVM supports PS/2 keyboard
categories:
- Releases
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz5
- KVMD release: https://github.com/pikvm/kvmd/releases/tag/v1.86
comments: true
---
Great news for fans of retro computers and tech priests. Now Pi-KVM supports PS/2 keyboard.
<!-- more -->
This is useful for older hardware KVM switches and industrial computers. It is very simple to use, I wrote a small guide: https://github.com/pikvm/pikvm/blob/master/pages/arduino_hid.md
Over the past few days, many people have supported my work on Pi-KVM, and I am very grateful to them. The names of all sponsors are included in the documentation and in the "About" dialog window in the Pi-KVM interface.
PS: Mouse jiggler was not included in this release due to the fact that there is still some logic improvement required, and I decided that it is better to release the PS/2 functionality separately than to stall for time. This will be included in the next release.
To update:
```console
rw
pacman -Syu
reboot
```
+32
View File
@@ -0,0 +1,32 @@
---
title: "KVMD 1.88: Tailscale support"
date: 2020-08-13
slug: kvmd-1-88-tailscale-support
description: >
We added Tailscale to the OS repository for easy access to KVM from an external network via VPN
categories:
- Releases
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz5
- KVMD release: https://github.com/pikvm/kvmd/releases/tag/v1.88
comments: true
---
We added [Tailscale](https://tailscale.com/) to the OS repository for easy access to KVM from an external network via VPN. Updated documentation is [here](https://docs.pikvm.org/tailscale/).
<!-- more -->
For very old computers a new mixed Arduino HID mode has been added: PS/2 keyboard + USB mouse. This is a great alternative to the PS/2 keyboard only mode that was [added earlier](https://docs.pikvm.org/arduino_hid/).
All new project supporters are added to the thank you list in the About dialog in Pi-KVM and to the github. Thanks again!
To update:
```console
rw
pacman -Syu
reboot
```
+34
View File
@@ -0,0 +1,34 @@
---
title: "KVMD 1.90: Closing the stream window in the web UI"
date: 2020-08-17
slug: kvmd-1-90-closing-the-stream-window-in-the-web-ui
description: >
Now you can close the stream window in the web interface
categories:
- Releases
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz5
- KVMD release: https://github.com/pikvm/kvmd/releases/tag/v1.90
comments: true
---
One small, but very important feature. Now you can close the stream window in the web interface.
<!-- more -->
Two things will happen: the browser will stop recieving the video stream, reducing traffic consumption, and the streamer on the Pi-KVM side will still work, so when you open the window again, the video stream will be restored.
This is useful if you want to upload an image to mass storage while all the traffic goes to the video. This is especially useful for the ZeroW because of the weakness of it. Note that changing the screen resolution will raise a closed window.
This is a feature that will be removed later along with the stream size slider.
We also introduced various minor fixes. Don't forget to clean the browser cache after upgrading:
```console
rw
pacman -Syu
reboot
```
+34
View File
@@ -0,0 +1,34 @@
---
title: "KVMD 1.92: Support for mouse buttons 4/5"
date: 2020-08-19
slug: kvmd-1-92-support-for-mouse-buttons-4-and-5
description: >
This release brings support for mouse buttons 4 and 5 in the web interface for all Pi-KVM platforms
categories:
- Releases
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz5
- KVMD release: https://github.com/pikvm/kvmd/releases/tag/v1.92
comments: true
---
This release brings support for mouse buttons 4 and 5 (back/forward) in the web interface for all Pi-KVM platforms.
<!-- more -->
If you are using an Arduino HID, then you need to update the firmware to use the additional buttons. However, if you do not update the firmware, nothing terrible will happen: the Protocol is backward compatible, and Arduino will simply ignore the new buttons.
* Note that these buttons will not work in VNC, since the RFB protocol does not support them by design.
* Fixed race condition on HID reset.
To update:
```console
rw
pacman -Syu
reboot
```
+49
View File
@@ -0,0 +1,49 @@
---
title: "KVMD 1.93 & uStreamer 1.22"
date: 2020-08-21
slug: kvmd-1-98-ustreamer-1-22
description: >
This is a double release of KVMD and uStreamer with improvements and fixes
categories:
- Releases
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz5
- KVMD release: https://github.com/pikvm/kvmd/releases/tag/v1.93
- uStreamer release: https://github.com/pikvm/ustreamer/releases/tag/v1.22
comments: true
---
This is a double release of KVMD and uStreamer with improvements and fixes.
<!-- more -->
KVMD:
* Improved error message in login window.
* Added [HTTP API for HID](https://github.com/pikvm/kvmd/blob/master/kvmd/apps/kvmd/api/hid.py#L161). For example, press and release the Shift key:
```console
curl -k -XPOST -HX-KVMD-User:admin -HX-KVMD-Passwd:admin 'https://kvm/api/hid/events/send_key?key=ShiftLeft'`
```
uStreamer:
* Added timeout to vcos semaphore to prevent unexpected hanging of the OMX encoder (this should not happen about ever, but it is better to be safe).
* Fixed fallback to the CPU encoder when the OMX fails.
* Improved compatibility with some USB 3.0 video capture devices that may produce incorrect frames. The minimum frame size for encoding is set to 128 bytes.
* Added options to flip image and accept some color effects provided by webcams.
To update:
```console
rw
pacman -Syu
reboot
```
+36
View File
@@ -0,0 +1,36 @@
---
title: "KVMD 1.98: Technical preview for GPIO"
date: 2020-08-31
slug: kvmd-1-98-technical-preview-for-gpio
description: >
This is the technical preview for the ability to use custom GPIO pins for any purpose, such as connecting sensors or relays
categories:
- Releases
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz5
- KVMD release: https://github.com/pikvm/kvmd/releases/tag/v1.98
comments: true
---
I've been working on a new big important feature: the ability to use custom GPIO pins for any purpose, such as connecting sensors or relays.
<!-- more -->
This release is technical preview (but stable ofc) so that you can try out the features that will then be introduced into production.
* In this release the GPIO API was added. Now you can configure any number of switches, leds and buttons connected to Pi-KVM and act with it using API: ⁠`#chat⁠`. In one of the next releases, these switches will be available in the web interface and I will write the documentation.
* Added HTTP export handle for the [Prometheus](https://prometheus.io/) system to monitor the pi's and server's state: `/api/export/prometheus/metrics` with basic auth.
* Added support for HTTP header `Authorization: Basic ...` to support basic auth for Prometheus (and other monitoring systems).
To update:
```console
rw
pacman -Syu
reboot
```
+23
View File
@@ -0,0 +1,23 @@
---
title: "Pi-KVM is now available on Raspberry Pi 1"
date: 2020-09-03
slug: pikvm-now-available-on-rpi-1
description: >
We have added the ability to use Raspberry Pi 1
categories:
- Products
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz
comments: true
---
In the last release, I added the ability to use this board. This is still unofficial and not reflected in the documentation, but you can already build the system using the build environment if you use the `BOARD=rpi` and `PLATFORM=v0-hdmi` or `v0-hdmiusb` parameters.
<!-- more -->
At the moment, you can only use the A or B board. In B+, the network card does not working because of some glitches related to the new kernel (after all, this is very legacy hardware).
To emulate the keyboard and mouse, you will need an Arduino HID, like for rpi2 or rpi3. In addition, the USB port binding for the HDMI dongle is disabled for rpi1.
+44
View File
@@ -0,0 +1,44 @@
---
title: "KVMD 1.100: GPIO and USB relays"
date: 2020-09-11
slug: kvmd-1-100-gpio-and-usb-relays
description: >
This release introduces the ability to use GPIO and USB relays
categories:
- Releases
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz5
- KVMD release: https://github.com/pikvm/kvmd/releases/tag/v1.100
comments: true
---
This release introduces a feature that I have been working on for a long time and that will significantly expand the functionality of Pi-KVM: the ability to use GPIO and USB relays.
<!-- more -->
Now you can connect any number of relays and configure GPIO to control anything using the convenient customizable menu in the Pi-KVM interface. If you wanted to make a smart server power switch, or control a multiport HDMI switch via the menu - now you have all the tools to do it: https://docs.pikvm.org/gpio/.
Some other features:
* The API for integration with the Prometheus monitoring system has been finally stabilized and documented. By the way, you can get data about the status of GPIO ports in it: https://docs.pikvm.org/prometheus/.
* KVMD is now compatible with Python 3.7, allowing enthusiasts to create custom builds for other operating systems.
* Looped playback is now available for user action macros in the web interface.
* Fixed a minor Nginx issue that could cause the Could not build optimal types_hash message in the logs. You will probably have to look at the diff between the `/etc/kvmd/nginx/nginx.conf` and `/etc/kvmd/nginx/nginc.conf.pacnew` files and make the appropriate changes to the first one, then manually delete the second one. But if you don't do any of this, it's not a big deal, it won't affect the functionality of the system.
* New images are available in the archive: https://pikvm.org/download/.
Thank you to everyone who helped with the documentation and testing of new features. In addition, this release includes an updated list of thanks to those who donated to the project.
To update:
```console
rw
pacman -Syu
reboot
```
+38
View File
@@ -0,0 +1,38 @@
---
title: "KVMD 1.101: Improvement for the HDMI USB dongle"
date: 2020-09-17
slug: kvmd-1-101-improvement-for-the-hdmi-usb-dongle
description: >
The main change in this release concerns the internals of Pi-KVM
categories:
- Releases
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz5
- KVMD release: https://github.com/pikvm/kvmd/releases/tag/v1.101
comments: true
---
The main change in this release concerns the internals of Pi-KVM.
<!-- more -->
About a year ago, the Linux kernel interface, which is used by most applications on the Raspberry Pi that work with GPIO, was deprecated (sysfs/gpiomem). This was replaced by the character device `/dev/gpiochipX`.
It is stated that the old interface will be removed in 2020, that is, very soon. Existing GPIO libraries for Python and C will also stop working: RPi.GPIO, pigpio, wiringpi and other.
It seems that the coming year will be fun for many projects that use the old library. For this reason, I got rid of RPi.GPIO and now KVMD uses libgpiod, a library for working with GPIO recommended and supported by kernel developers.
GPIO changes will not affect those who simply use this to control the ATX or control the KVM switch. However, those who use [custom GPIO](https://docs.pikvm.org/gpio/) in Pi-KVM should know that it is no longer possible to save the pin state for GPIO (this is the kernel limitation) using option `initial=null`. In other words, when KVMD is restarted, the state of the relay connected to the GPIO will be reset to logic 0.
With the exception of this, the new library allowed KVMD to get rid of active GPIO state polling cycles, as well as crutches around kvmd-cleanup (does anyone even know what this is lol?). I have thoroughly tested this release and everything should be OK. However, if you notice any oddities, please let me know.
To update:
```console
rw
pacman -Syu
reboot
```
+47
View File
@@ -0,0 +1,47 @@
---
title: "KVMD 1.102: Improvement for the HDMI USB dongle"
date: 2020-09-18
slug: kvmd-1-102-improvement-for-the-hdmi-usb-dongle
description: >
The new version features further work on libgpiod and an improvement for the HDMI USB dongle
categories:
- Releases
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz5
- KVMD release: https://github.com/pikvm/kvmd/releases/tag/v1.102
comments: true
---
The new version features further work on libgpiod and an improvement for the HDMI USB dongle.
<!-- more -->
* Continue working with libgpiod. It turned out that I didn't use the correct symbolic names for the IO ports. This does not affect the operation, but the kernel warns that it does not like it. Fixed in the this version. If you are interested in more details, then we are talking about the fact that libgpiod allows you to view active ports using the gpioinfo command:
```
gpiochip0 - 54 lines:
...
line 20: "GPIO20" unused input active-high
line 21: "GPIO21" unused input active-high
line 22: "GPIO22" "kvmd::atx-gpio::leds" input active-high [used]
line 23: "GPIO23" "kvmd::atx-gpio::power_switch" output active-high [used]
line 24: "GPIO24" "kvmd::atx-gpio::leds" input active-high [used]
...
```
I used names like kvmd/foo/bar, but the correct names are `kvmd::foo::bar`.
* Slight improvement for the HDMI USB dongle. Now you can always keep the stream active, regardless of whether you have a browser or VNC open. This may be necessary because the server recognizes the dongle only when it is actually streaming. If not, the video card does not see the dongle. I'm not sure if this is the case with all dongles, but the one I have behaves exactly like this.
To include the everlasting stream use file `/etc/kvmd/override.yaml`:
```yaml
kvmd:
streamer:
forever: true
```
To reduce power consumption and CPU usage, you can use the `--slowdown` option for ustremaer (rewrite the cmd section from `main.yaml` and add a line with the option).
+45
View File
@@ -0,0 +1,45 @@
---
title: "We need help testing uStreamer"
date: 2020-09-22
slug: we-need-help-testing-ustreamer
description: >
I need the community's help in testing the new version of ustreamer (the video server of Pi-KVM)
categories:
- Development
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz5
comments: true
---
I need the community's help in testing the new version of ustreamer (the video server of Pi-KVM).
<!-- more -->
I found that some drivers for capture devices and cameras contain a bug that causes video buffers that are already used by the application to be given to it twice from the queue (TL;DR kernel magic). This can potentially corrupt memory, at least the part of it where the image is contained.
I investigated this issue and added code to ustreamer that prevents access to such a memory area. Now I want to know if our video capture devices (CSI bridge and USB dongle) are really affected by this problem. And if so, how often does this occur?
Therefore, I need the maximum cooperation of all users. You don't need to conduct comprehensive testing, just need to check your case. If you find the time to help me, you need to install ustreamer from source. This is very easy to do.
```console
# rw
# mv /usr/bin/ustremer /usr/local/bin/ustreamer.bak
# git clone https://github.com/pikvm/ustreamer
# cd ustreamer
# make -j5 WITH_OMX=1
# make PREFIX=/usr install
# ro
```
After that reboot Pi-KVM (or just restart stream using web ui system menu).
If a memory problem occurs, ustreamer will quickly restart the video. In other words, you will see the NO SIGNAL message for a couple of seconds (or a gray screen). This situation will be reflected in the log with a message V4L2 error: grabbed device buffer is already used. It is useful to check the presence of this entry in the log every few hours using the command journalctl -u kvmd | grep 'grabbed device'.
Depending on whether this problem occurs and how often, I will look for some other solution for it, or keep the current one if it doing well.
If the problem suddenly appears and prevents you from working, please let me know and restore the old ustreamer: mv /usr/local/bin/ustreamer.bak /usr/bin/ustreamer.
Thank you to everyone who responds!
+34
View File
@@ -0,0 +1,34 @@
---
title: "uStreamer 2.0: Memory protection"
date: 2020-09-24
slug: ustreamer-2-0-memory-protection
description: >
Given the previous changes, I believe that there are already enough changes for version 2.0
categories:
- Releases
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz5
- uStreamer release: https://github.com/pikvm/ustreamer/releases/tag/v2.0
comments: true
---
Given the previous changes, I believe that there are already enough changes for version 2.0 :)
<!-- more -->
* wiringPi replaced to libgpiod (reasons: ⁠news⁠)
* Added protection from memory corruption on usage of buggy webcam drivers ([details](https://github.com/pikvm/ustreamer/issues/43))
* Disabled cross-domain requests by default for security reasons ([details](https://github.com/pikvm/ustreamer/issues/48))
To update:
```console
rw
pacman -Syu
reboot
```
+53
View File
@@ -0,0 +1,53 @@
---
title: "KVMD 2.0: Redfish support and HID driver improvements"
date: 2020-10-04
slug: kvmd-2-0-redfish-support-hid-driver-improvements
description: >
This is a major new release with Redfish support and HID driver improvements
categories:
- Releases
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz5
- KVMD release: https://github.com/pikvm/kvmd/releases/tag/v2.0
comments: true
---
This is a major new release with important improvements.
<!-- more -->
Let's take a look at the changes:
- The first and most important change is updating the kernel to 5.4.69. **Fixed the critical Linux bug with USB** that could cause the Pi to reboot when using the keyboard and mouse on a rebooting host. I spent a few days debugging this problem and now it is solved in the Raspbian upstream.
- **The kernel update is also unlocked for ZeroW boards**. The new kernel fixed an old bug that caused the kernel to hang on CSI HDMI at Zero. Yea, another kernel bug that I was directly involved in solving.
- On the Pi-KVM side, the **HID driver has been significantly improved**, and now it clearly detects the USB state: the yellow color in web ui clearly shows when the cable is disconnected. Also added support for the NonUs and AltGr keys, **fixed Win key in VNC**.
- Implemented **basic support for Redfish as an improved and secure IPMI replacement** for enterprise use ([see here](https://docs.pikvm.org/ipmi/) for documentation. Redfish requires no additional configuration and is available directly in KVMD. It uses the same authorization mechanism as the rest of the Pi-KVM. The only handle available /redfish/v1 without authorization produces a small static document for service discovery required by standard.
- Added the ability to request confirmation for actions on custom GPIO buttons and switches (see [View rules](https://docs.pikvm.org/gpio/)).
- Now you can create **USB Ethernet for direct communication between the Pi-KVM and the server** ([see here](https://docs.pikvm.org/usb_ethernet/) for more information). This release does not include a tool for address configuration and firewall, expect soon.
- Improved the **Web Socket API** which no longer makes unnecessary broadcasts when connecting new clients. This is now convenient to use for getting the entire state of the Pi-KVM by the batch.
- Config sections `otg/msd`, `otg/acm` and `otg/drives` were moved to `otg/devices/msd`, `otg/devices/serial` and `otg/devices/drives`. Of course, the old config will continue to work.
- ... And many minor changes.
Note: **Before upgrading ZeroW**, you will probably need to remove the `IgnorePkg = linux-raspberrypi and linux-raspberrypi-headers` parameter from `/etc/pacman.conf`, if you added it earlier.
To update, follow:
```console
rw
pacman -Syu
```
If you changed the file `/etc/kvmd/override.yaml`, you will see a new file: `/etc/kvmd/override.yaml.pacnew`. You can simply delete it or merge its contents with your own configuration. The new file contains commented-out usage examples and no longer contains (and requires) the `{}` row for an empty config.
After all perform reboot.
+31
View File
@@ -0,0 +1,31 @@
---
title: "Another test request for v2 users of RPi4 and ZeroW"
date: 2020-10-05
slug: another-test-request-for-v2-users-of-rpi4-and-zerow
description: >
I found a way to improve USB HID/Mass Storage compatibility with some motherboards
categories:
- Development
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz5
comments: true
---
I found a way to improve USB HID/Mass Storage compatibility with some motherboards. I would like to ask you to check if there are any problems because of this. If successful, if you didn't have MSD working, it may work after this change.
<!-- more -->
Please check this on your configurations: whether HID/MSD worked before, whether it works after the patch. I will be happy to hear about any changes (both positive and negative).
Run on Pi-KVM:
```console
rw
sed -i -e 's|^dtoverlay=dwc2$|dtoverlay=dwc2,dr_mode=peripheral|g' /boot/config.txt
reboot
```
This can be easily undone if problems occur.
+34
View File
@@ -0,0 +1,34 @@
---
title: "KVMD 2.1: Bug fixes"
date: 2020-10-08
slug: kvmd-2-1-bug-fixes
description: >
We fixed various bugs including incorrect keys mapping in VNC
categories:
- Releases
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz5
- KVMD release: https://github.com/pikvm/kvmd/releases/tag/v2.1
comments: true
---
This is mainly a bugfix release.
<!-- more -->
- Fixed incorrect keys mapping in VNC. Also implemented QEMU Extended Key Events protocol which provides messages with hardware keycodes for VNC. This input method is preferred, and clients which can use it (yea-yea, I'm advertising TigerVNC again) will not have any problems with the layouts. Configuring keymap in override.yaml also becomes unnecessary in this case.
- For v2 builds (RPi and ZeroW) the peripheral device mode for the USB-gadget controller is forced by default. This improves compatibility with some strange motherboards. Testing has not revealed any negative effects, but if something goes wrong, let me know.
- Fixed GPIO switches in Web UI menu for the case when pulsing is disabled.
To update:
```console
rw
pacman -Syu
reboot
```
+38
View File
@@ -0,0 +1,38 @@
---
title: "KVMD 2.2: Improved HID modules for Arduino and OTG"
date: 2020-10-17
slug: kvmd-2-2-improved-hid-modules-for-arduino-and-otg
description: >
We have made several important improvements in this release, including better HID modules for Arduino and OTG
categories:
- Releases
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz5
- KVMD release: https://github.com/pikvm/kvmd/releases/tag/v2.2
comments: true
---
We have made several important improvements in this release.
<!-- more -->
* **Improved HID modules for Arduino and OTG**. Now, if the server is disabled, the event queue will not grow, and irrelevant events (such as keystrokes for a disabled server) will be deleted.
* **Added an experimental service for configuring the USB network** (issuing addresses to the server, firewall, and so on): kvmd-otgnet. Now you can up the FTP server on Pi-KVM and share files with the server [using it](https://docs.pikvm.org/usb_ethernet/).
* For all KVMD daemons the **startup method has been changed**: the `--run` option is required to prevent accidental startup. Updated systemd services. Migration will be transparent for users.
* **Fixed a very rare VNC bug** that could cause the server to stop transmitting an image and require a restart.
* **Minor UI improvements** (more compact menubar, etc).
To update:
```console
rw
pacman -Syu
reboot
```
+36
View File
@@ -0,0 +1,36 @@
---
title: "KVMD 2.3: Workaround for dhcpcd crashes"
date: 2020-10-31
slug: kvmd-2-3-workaround-for-dhcpd-crashes
description: >
A problem was found in the distro due to which the new dhcpcd (client) crashes when trying to get a Wi-Fi address
categories:
- Releases
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz5
- KVMD release: https://github.com/pikvm/kvmd/releases/tag/v2.3
comments: true
---
A problem was found in the distro due to which the new dhcpcd (client) crashes when trying to get a Wi-Fi address (it's not me!).
<!-- more -->
So that you don't get a broken KVM after random update, in this release I forced the use of dhclient instead of dhcpcd. You should not notice any changes or problems. If there is anything strange, please let me know.
Now about pleasant things.
* Added support for IPMI Serial-over-LAN. Now you can use ipmitool to access your server's console on the hardware COM port, [see here](https://docs.pikvm.org/ipmi/) for information.
* Added the ability to edit streamer options without having to copy the entire list to /etc/kvmd/override.yaml. Now you can write something like:
```yaml
kvmd:
streamer:
cmd_append: [--slowdown]
```
The other features I'm currently working on are in experimental mode. Due to the urgency of the release, I didn't have time to finish it. But I will soon :)
+34
View File
@@ -0,0 +1,34 @@
---
title: "KVMD 2.4: The Relative mouse & Bluetooth"
date: 2020-11-11
slug: kvmd-2-4-relative-mouse-bluetooth
description: >
This release added a great new feature that will please those who did not work the mouse in the BIOS/UEFI
categories:
- Releases
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz5
- KVMD release: https://github.com/pikvm/kvmd/releases/tag/v2.4
comments: true
---
This release added a great new feature that will please those who did not work the mouse in the BIOS/UEFI.
<!-- more -->
Previously, Pi-KVM only emulated absolute mouse mode, and some UEFIs didn't understand this. Now you can enable relative mouse mode. In this mode, the browser will completely capture your cursor (until you press `Esc`) and transmit all events to the server.
Testing has shown that on all UEFI in which the PI-KVM mouse did not work before, when the relative mode is enabled, the cursor works. This is a significant breakthrough in improving compatibility with various hardware. [See here](https://github.com/pikvm/pikvm/blob/master/pages/mouse.md) for details.
A very interesting feature has appeared: now Pi-KVM can emulate Bluetooth keyboard & mouse. The usecases of this may be specific, but I'm sure there will be a use for it. For example, you can control the cursor and keyboard of an iPad or other pieces. Bluetooth mouse works in relative mode, [see here](https://github.com/pikvm/pikvm/blob/master/pages/bluetooth_hid.md).
To update:
```console
rw
pacman -Syu
reboot
```
+30
View File
@@ -0,0 +1,30 @@
---
title: "uStreamer 2.2: Better video performance"
date: 2020-11-27
slug: ustreamer-2-2-better-video-performance
description: >
This is a very big release with a lot of changes, which took me a whole month.
categories:
- Releases
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz5
- uStreamer release: https://github.com/pikvm/ustreamer/releases/tag/v2.2
comments: true
---
This is a bugfix release, albeit an important one.
<!-- more -->
We fixed an issue where video performance could degrade due to NTP system clock tweaking. A small but useful fix.
PS: If you missed the KVMD updates, I'm currently working on improvements to the Arduino HID, which will allow you to switch mouse modes in real time, as well as support for the SPI Protocol instead of UART. This is a very big change, but the work is almost done.
```console
rw
pacman -Syu
reboot
```
+40
View File
@@ -0,0 +1,40 @@
---
title: "KVMD 2.6: Completely rewritten the Arduino HID subsystem"
date: 2020-12-11
slug: kvmd-2-6-completely-rewritten-arduino-hid
description: >
This is a very big release with a lot of changes, which took me a whole month.
categories:
- Releases
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz5
- KVMD release: https://github.com/pikvm/kvmd/releases/tag/v2.6
comments: true
---
This is a very big release with a lot of changes, which took me a whole month.
<!-- more -->
Here is what's new:
* **Completely rewritten the Arduino HID subsystem**. Now you can switch between relative and absolute mouse modes directly from the web interface. Arduino HID can be used with both v0 and v2, in which case it provides improved compatibility with strange devices and BIOSes. Some BIOSes don't understand absolute mouse and they need relative mouse: https://github.com/pikvm/pikvm/blob/master/pages/mouse.md
* Now **Arduino HID is compatible with Mac UEFI** and is able to provide access to its menu at boot. If you need full Mac UEFI support, use Arduino HID. This is the recommended method.
* **Implemented an alternative way to connect the Arduino HID to the Raspberry using SPI**. This is not yet documented and little bit tricky, but this method will free up the UART for other needs.
* **Migrated to Python 3.9**. A big task which required patching and rebuilding of many packages.
```console
rw
pacman -Syu
pacman -S tailscale-pikvm
reboot
```
To use the new features of the Arduino HID, you will need to perform a flash. However, if you don't do this, nothing will break, the new KVMD is fully compatible with all older firmware versions. [See here](https://github.com/pikvm/pikvm/blob/master/pages/flashing_hid.md) for more informaiton.
+37
View File
@@ -0,0 +1,37 @@
---
title: "Some news about v3"
date: 2020-12-20
slug: some-news-about-v3
description: >
We decided to sell most of the batch to wholesale suppliers in the US
categories:
- Products
authors:
- mdevaev
links:
- PiKVM: https://pikvm.org
- Discord: https://discord.gg/bpmXfz
comments: true
---
We have some news about v3. The prototypes are almost ready. Since the last release, they have included several changes and additional features.
<!-- more -->
![V3 board](v3-news.webp)
In addition to the ones we announced earlier, we added:
- **HDMI Audio**. Practice has shown that all existing CSI bridges except for the expensive Auvidea B101 model have a hardware circuit error, due to which they are not able to capture sound. Our v3 does not have this drawback. This feature is already implemented in hardware, and the software will be ready a little later. Most likely, we will offer h264 video compression + audio.
- **Built-in fan controller**. Since RPi has some cooling issues, we thought it would be great to solve this somehow.
- **Arduino HID with USB and PS/2 keyboard and mouse**. The software for PS/2 mouse will be completed later, the hardware is already ready. Also, this thing is necessary to work with Apple UEFI.
- The board uses **only USB-C connectors** (standardization!) and fully compatible with the official RPi power supply, which we will recommend for use.
A limited batch of 30 pieces will be sold to commercial customers and some interested parties in this chat. We'll probably sell to the first applicants, but we haven't decided yet. The kit will include: the v3 board, arduino HID board, adapter boards, small fan, and (probably) a 3D-printed case. RPi and power supply will NOT be included.
Since this is a trial batch of manual assembly, the cost of one set will be $200-250 (we have not yet calculated exactly). The sale of prototypes should start before the new year. In January, we will start selling production models much cheaper (~$100).
PS: Discussing welcome in the ⁠chat!
Binary file not shown.

After

Width:  |  Height:  |  Size: 282 KiB