Releases: dormancygrace/NanoKVM-OS
Release list
NanoKVM OS v1.0.0 beta-4
🚀 NanoKVM OS v1.0.0 beta-4
Hear your remote computer, mount an ISO straight from your browser, and keep an eye on temperature and CPU frequency. Beta-4 brings USB audio, remote optical media, thermal protection, and improvements to input and streaming.
✨ What's new
- 🔊 USB audio in your browser: enable USB Audio in the composition and listen from the viewer, with local volume control. Works alongside WebRTC, Direct and MJPEG video. Uses Opus at 192 kbps; playback has been confirmed on desktop Chrome and Xiaomi Chrome. Multiple listeners share one encoder.
- 🌐 Mount an ISO from your computer: serve requested blocks directly from your browser without uploading the complete image to the SD card. Keep the browser tab open while using it. Inspired by OneKVM's browser-backed virtual media; implemented here using upstream Linux NBD.
- 💿 Larger CD/DVD images: optical emulation supports images up to 31.625 GiB, for both SD-hosted files and remote browser media. A 6 GiB image was tested on Windows. Adapted from PiKVM's DVD support.
- 🌡️ Temperature and thermal protection: Dashboard displays SoC temperature and actual CPU frequency. The CPU normally runs at 1000 MHz; Linux limits it to 850 MHz at 75°C and restores the selected frequency below 70°C, independently of the application.
- ⚡ Optional runtime overclocking: Device settings offer 1050, 1075, 1100, 1125 and 1150 MHz. Every overclock applies only until the next device reboot, which returns to 1000 MHz. Stability depends on the individual chip; no overclock is guaranteed safe.
- 🖥️ OLED controls and burn-in protection: a separate on/off switch, an idle timeout, and periodically shifting status information. Includes a fix for a blank PCIe display after restarting the board service. Inspired by IronKVM's OLED work.
- ⌨️ Input improvements: IME handling no longer leaves previously pressed keys stuck, and both mouse modes support horizontal scrolling (IME, horizontal scrolling).
- 🎥 Better sharing between viewers: independent WebRTC senders prevent a slow peer from blocking another, while retaining per-client MTU handling. MJPEG avoids repeatedly sending identical frames and still refreshes late-joining viewers (WebRTC, MJPEG).
- 🛠️ Less background work: fewer unnecessary SD writes, direct file operations instead of shell subprocesses, and reduced CPU overhead in video diagnostics. Startup no longer unconditionally disables HDMI capture (direct writes, OneKVM video pipeline).
- 🌐 DHCP and connection feedback: improved broadcast acquisition and classless-route updates, preserving unrelated static and VPN routes. DHCP now publishes DNS correctly on a fresh system. The USB menu icon indicates a reconnecting or failed browser control channel (DHCP, route-option work, connection feedback).
- 🔌 USB composition: all functions can be disabled without switching USB roles or cutting power through USB-HID. Reset preserves the disabled state. USB networking uses NCM; RNDIS is removed from the new kernel configuration.
- 🛡️ Clearer VPN status: Dashboard keeps VPNs together without duplicating them among network interfaces. WireGuard shows the active MTU and a live “last handshake … ago” indicator in both Dashboard and VPN settings. Disconnected Ethernet no longer starts an Avahi IPv4LL address after DHCP failure.
- 🧹 Cleaner controls: hide the keyboard and mouse toolbar buttons independently. Images now says From SD, defaults new mounts to CD/DVD, and has clearer spacing. Device no longer duplicates System Information or Swap; memory settings stay in Memory.
🔄 Updated Components
- 🐧 Linux Kernel: 7.2.4 → 7.2.5
📦 Updating
Beta-4 is distributed as a complete SD image and establishes the new kernel-capable updater. Subsequent compatible signed .nkos packages can replace the application, supported system components, and the kernel with its matching modules while preserving settings.
Kernel packages verify their contents and compatibility, prepare the matching modules, and replace the existing boot.sd; the new kernel takes effect after a restart. This uses the current single boot partition, without A/B or automatic kernel rollback. An unbootable update or an interrupted boot-file write may require reflashing the SD card. The bootloader is not replaced.
The original beta-3 updater cannot read these kernel packages. Upgrading it first requires a compatible system bootstrap package; installing the full beta-4 image provides the complete baseline directly.
🤝 Thank you
Thanks to Sipeed/NanoKVM, IronKVM, PiKVM and OneKVM and their contributors. Links above identify work adapted or used as a starting point; they are not claims of wholesale merges. Earlier community PR contributions remain credited in the beta-3 release notes.
Worked on one of these projects? Come try NanoKVM OS and tell us how these adaptations work for you. Ideas, testing and fixes are welcome! ❤️
⚠️ QHD H.265 over WebRTC remains unstable; use H.265 Direct for QHD. Overclocking can cause freezes, restarts, data loss or hardware damage. USB audio carries host playback, not microphone input.
NanoKVM OS v1.0.0 beta-3
🚀 NanoKVM OS v1.0.0 beta-3
Record a session, control your machine from your phone, and see what your NanoKVM is doing at a glance. Beta-3 brings a new Dashboard, more comfortable mobile controls, and the foundation for future system updates through signed packages.
✨ New in beta-3
- ⌨️ Mobile virtual keyboard: a responsive layout, smaller landscape keys, and accessible language/platform controls (#926, @AlexDay3000).
- 📱 Mobile controls and touchpad mode: a movable, collapsible toolbar, nested menus, mobile Settings navigation, viewport-aware popovers, selectable input adapters, and a touch gesture guide. Adapted to NanoKVM OS controls (#867, @SiYue-ZO).
- ⏺️ Browser video recording: record the displayed video to a local file, with start/stop controls and an elapsed-time counter. Based on the recording proposal, with reworked file writing and cleanup; requires a compatible browser (#682, @imguoguo).
- 📊 Dashboard: open Settings for a live overview of CPU, RAM, uptime, free space, networks, VPNs, and video. System statistics keep refreshing independently of video status.
- 🎬 Video controls: let the browser choose H.265 Direct when supported, with H.264 as the fallback. New viewers pick up the active encoder settings automatically. See the codec and session count in the toolbar, and change several video settings before pressing Apply.
- ⚙️ A tidier interface: reorganized Settings, network details where you expect them, clearer capture and recording buttons, and official VPN logos.
- 🕒 Date & Time: configurable NTP servers, time zone, and 12/24-hour format, with 24-hour time by default. Includes chrony, tzdata, and synchronization status.
- 🔗 WireGuard: rename saved profiles without reconnecting.
- 🧰 System tools: nano 9.2, Midnight Commander 4.8.33 with terminal mouse support, and superfile 1.6.0.
- 🖥️ HDMI detection fix: prevent repeated receiver detection during application startup from incorrectly reporting no HDMI signal.
- 📦 Signed system updates:
.nkospackages can update the application and supported system components while preserving settings, with startup confirmation and rollback support. Upload progress, verification, and installation stages are shown explicitly.
📦 Release format: beta-3 ships as a full SD image. Subsequent releases can use .nkos packages for the application and supported system components. Kernel and bootloader updates are outside the current package format.
🤝 Built with the NanoKVM community
The new mobile and recording features above build on community PRs. NanoKVM OS also includes the following contributions, integrated or adapted in earlier versions:
- 🌐 Ethernet DHCP/static IPv4 settings, including address, subnet mask, gateway, and validation (#889, @ericpan001).
- 🔐 Multi-user authentication hardening, including session handling, explicit API credentials, and trusted reverse-proxy handling (#880, @SiYue-ZO).
- 🇪🇸 Spanish ISO keyboard layout for Paste, including dead keys and AltGr combinations (#864, @jordimra).
- 🔌 USB keyboard/mouse boot descriptors, HID-state checks, and bounded USB reset handling. Selected parts were adapted; the PR's stale-handle recovery path is not included (#814, @mjc).
- 💾 Safer data-partition preparation, including interrupted-format recovery and readiness checks, plus exFAT partition metadata and labeling. Selected storage changes were adapted (#813, @mjc; #764, @jjmaestro).
- 💿 Empty virtual media stays empty: unmounting an image no longer exposes the device's internal data partition to the connected computer (#741, @MagnaCapax).
- 🌱 Fewer SD-card writes: frequently changing video and network status lives in RAM, with initialization on each service start (#751, @winstar0070).
- 🛣️ DHCP classless static routes, allowing the Ethernet DHCP client to request option 121 (#749, @phaidros7).
- 🏷️ Hardware-derived USB serial numbers, with validation and a fallback (#746, @JakeHillion).
- 🛠️ TypeScript 6 frontend tooling and migration away from deprecated configuration (#868, @lc6464).
Our independently implemented USB Composition and serial terminal also address the use cases proposed in #819 (@deasmi), #775 (@Voranto), and #675 (@scpcom). These are separate implementations, not direct PR merges.
❤️ Thank you to everyone above and to the Sipeed NanoKVM maintainers.
Worked on one of these PRs? Come try NanoKVM OS! We would love to hear how the adaptations work for you. Bring your ideas, report rough edges, or help shape the next release.
⚠️ Known limitation: QHD + H.265 + WebRTC remains unstable and may freeze or restart the device. Use H.265 Direct for QHD.
NanoKVM OS v1.0.0 beta-2
NanoKVM OS v1.0.0 beta-2
- 🌐 VPN management in the browser: dedicated WireGuard, OpenVPN and Tailscale submenus, with connection status and component versions.
- 🔗 WireGuard profiles: import configs, reconnect after restart and choose whether to route Allowed IPs. Routing is off by default; the interface subnet remains reachable.
- 🔒 OpenVPN 3 Core with kernel DCO: import
.ovpnfiles and certificates, manage connections and restore DNS when disconnecting. - ⌨️ USB interface fixes: lock indicators explain when the USB keyboard is disabled; the duplicate virtual port was removed from Serial Terminal.
⚠️ QHD + H.265 + WebRTC remains unstable. Use H.265 Direct for QHD. OpenVPN supports TUN profiles; TAP and interactive SSO/MFA are not supported.
NanoKVM OS v1.0.0 beta-1
NanoKVM OS v1.0.0 beta-1
Community firmware for NanoKVM Cube and NanoKVM PCIe (SG2002), based on Sipeed NanoKVM.
- 🖥️ QHD 2560×1440 at 30 Hz, automatic HDMI input detection and independent stream downscaling. FHD stream target up to 60 FPS.
- 🎞️ H.265 Direct by default, alongside H.264, WebRTC and MJPEG.
- 🔒 HTTPS enabled by default, with a unique certificate per device.
- 🔌 USB Serial for headless Linux, USB composition switching and capture controls.
- 🐧 Linux 7.2.4, updated userspace, reusable CMA/ION memory and configurable memory/network settings.
- ⚙️ CryptoDMA with
/dev/cryptoand OpenVPN 2.7.7 with DCO. - 📦 Signed application updates for future releases; beta-1 ships as a full SD image.
⚠️ QHD + H.265 + WebRTC is unstable and can freeze or restart the device. Use H.265 Direct for QHD. Fresh-card first boot of this exact image, Cube-specific testing and sustained video/CryptoDMA qualification remain pending.
Installation · Known issues and validation · Source and redistribution status