You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
**Title:** No video output on BIOS/UEFI POST screen; Linux console (no GUI) shows no image; resolution stuck at 1024x768 after OS boot #152
When using NanoKVM-Pro, video output is broken or severely limited at multiple stages of the host machine's boot/runtime:
BIOS/UEFI POST screen: No image is displayed at all during POST/BIOS. The video feed only starts once something further along in the boot process loads.
Linux text console (no GUI/X server running): When the host is running Linux without a graphical environment (plain TTY/console), no image is shown either. Video only appears once a graphical desktop environment is loaded.
After OS boot (with GUI): Once a graphical session does load, the resolution is stuck at 1024x768, regardless of the host's actual display configuration or capabilities.
Taken together, this means NanoKVM-Pro only reliably shows video once a full graphical desktop is up and running — it fails during exactly the stages where remote KVM access is most needed: BIOS setup, boot menu, recovery/rescue console, headless server text consoles, etc.
Steps to reproduce:
Connect NanoKVM-Pro to the target PC via HDMI
Power on the target PC
Observe the NanoKVM-Pro web interface during:
POST/BIOS screen → no image
Linux boot to text console/TTY (no GUI) → no image
Linux boot to graphical desktop → image appears, but capped at 1024x768
Expected behavior:
Video should be captured and displayed starting from BIOS/UEFI POST.
Video should be captured from a plain text console (no GUI required).
Resolution after boot should match (or allow configuring) the host's actual output resolution, not be hardcoded/limited to 1024x768.
Actual behavior:
As described above — no signal until a full GUI is running, and then resolution is capped at 1024x768. The core problem (no image during BIOS) is present regardless of OS or environment.
Environment:
NanoKVM-Pro firmware version: v1.0.15 (latest as of this report)
Linux distro/kernel (for the console test): Debian 13 — but the main issue is that it doesn't work at the BIOS level, before any OS loads
HDMI cable/adapter used: tried both direct connection and through an HDMI splitter
Browser used for web UI: Chrome
Connection type: LAN
Additional notes:
No image at all during BIOS/POST, regardless of cabling (direct or via splitter). This is not GPU- or OS-specific — the failure occurs before any OS is even involved.
On project maintenance:
I want to flag this directly: these are fundamental issues that strike at the core use case of a KVM device — capturing video regardless of what's running on the host, including BIOS and plain text consoles. This isn't a new-feature request, it's basic functionality not working. Looking at the state of the issue tracker, the project seems effectively abandoned — not just in terms of new features, but even basic bug fixes for things that plainly don't work. Issues pile up without maintainer response, and problems like these undermine the entire premise of the product.
If the project is still actively maintained, some visibility into the status of these issues — or at least acknowledgment — would go a long way. If it isn't maintained anymore, it would help the community to say so clearly, so people can decide whether to keep relying on this device or look elsewhere.
My server (NVIDIA GeForce 210 / GT218, HDMI output) shows no picture in the NanoKVM-Pro during POST/BIOS, GRUB and the Linux text console. To find out why, I recorded the capture chip state while the server booted, then repeated the test with a Windows laptop, different HDMI cables, an HDMI splitter and two EDID profiles.
Result: the LT6911UXC can lock with correct timings (1920x1080@60, 1280x1024@60), but the lock is lost after 0.4 s to 109 s with every source and every setup. Re-locks very often report corrupted timings, e.g. 1920 x 57, VTotal 58, FPS 1163. Every lock tagged resolution type: 3 is corrupted. With the GT210 connected directly, the chip never locks at all.
Environment
Device
NanoKVM-Pro ATX-A, powered separately from the server
App / firmware
1.2.15 (kvmcomm 1.2.15, pikvm 1.2.15)
KVM kernel
4.19.125 (Ubuntu 22.04.5)
Capture chip
LT6911UXC (lt6911_manage, ax_mipi_rx)
Server
NVIDIA GeForce 210 (GT218) 10de:0a65, HDMI out; legacy VGA text console (Console: colour VGA+ 80x25), no KMS driver loaded
Laptop Lenovo T16
Windows, HDMI out (1080p60 to the KVM)
Cables
several different HDMI cables tried
EDID profiles
E54-1080P60FPS and E58-4K16-10
How the logs were collected
The logs come from a read-only shell script running on the KVM:
it never writes to /proc, never changes EDID or HDMI settings, and never restarts services;
it opens only the read-only files in /proc/lt6911_info plus the files the NanoKVM server itself reads;
every second it records changes of width, height, fps and hdmi_rx_status, plus every new kernel message.
Line format: [wall clock | +seconds since start | KVM uptime] event. The KVM uptime equals the dmesg timestamps. In the excerpts below, static fields are trimmed and rx means hdmi_rx_status. Lock tables are built from the driver's dmesg lines: HDMI signal is stable → HDMI signal has disappeared. A lock counts as "correct" only if both resolution and HTotal/VTotal match the expected mode: 1920x1080 2200/1125, or 1280x1024 1688/1066.
The full logs (8 runs) are attached. Personal data is redacted: hostname suffix, UTC offset, device-number field.
Run 1 — 10:48 — server GT210, direct HDMI, EDID E58
The server was powered on a few seconds after recording started and booted through POST, GRUB and the Linux console. This run used an older version of the script with no hdmi_rx_status and no live dmesg. width/height stayed 0x0 for all 240 s; the chip never reported a resolution.
Log excerpt (run 1)
res=0x0 or res=?x? means the chip reports no signal / cannot read it.
Type a note + Enter at any time to add a timestamped MARKER (e.g. 'host powered on').
[10:48:04 + 0s] res=0x0 fps=0 capture=on hdmi_power=on loopout=off edid_byte12=58
[10:48:35 + 30s] (unchanged for 30s)
[10:49:04 + 60s] (unchanged for 30s)
[10:49:34 + 90s] (unchanged for 30s)
[10:50:05 + 121s] (unchanged for 30s)
[10:50:35 + 151s] (unchanged for 30s)
[10:51:05 + 181s] (unchanged for 30s)
[10:51:35 + 211s] (unchanged for 30s)
state changes seen: 0
first non-zero resolution: NEVER (chip never reported a resolution during the watch)
last state: res=0x0 fps=0 capture=on hdmi_power=on loopout=off edid_byte12=58
Run 2 — 12:18 — snapshot after switching EDID to E54
This is a single snapshot taken after switching the EDID profile to E54; the chip reported 0x0 at that moment. It is useful for the side bug: dmesg shows a valid EDID written to the chip (00 ff ff ff ff ff ff 00 4e 04 ..., correct checksums), but /proc/lt6911_info/edid_snapshot starts with "unknown\n\0". Exactly bytes 0–8 are overwritten; the rest is identical.
Run 4 — 13:07 — Windows laptop, direct HDMI, EDID E58 (KVM freshly rebooted)
Shortly after the KVM booted, before recording started, the driver locked a correct 1080p60 (HTotal 2200, VTotal 1125, FPS 59).
The lock held for 7.5 s, then HDMI signal has disappeared.
Re-locks were short and partly corrupted: 6 locks in total, 3 of them with corrupted timings, e.g. 2116 x 1, HTotal 65534, VTotal 0, 1920 x 35, FPS 1730, and 1920 x 1080, HTotal 65534, FPS 3 (tagged type 0).
During recording rx cycled access (~13 s) / extract (~2 s) with no lock.
The laptop screen kept blinking, as if the display were being re-plugged.
Log excerpt (run 4)
Raw dmesg of the first lock:
[ 17.351671] HDMI signal state: 0x03
[ 17.351677] HDMI signal is stable
[ 17.352203] Detected HDMI resolution type: 1
[ 17.352208] HDMI resolution: 1920 x 1080
[ 17.352930] HDMI HTotal: 2200, VTotal: 1125
[ 17.420253] HDMI FPS: 59
[ 24.860046] HDMI signal state: 0x02
[ 24.860057] HDMI signal has disappeared
All locks:
uptime(s) held(s) resolution type HTotal/VTotal FPS monitoring
--------- ------- ----------- ---- ------------- ---- ----------
17.4 7.5 1920x1080 1 2200/1125 59 off
44.6 3.3 1920x1080 0 2200/1125 59 off
50.3 0.4 2116x1 3 65534/0 0 off
52.2 2.7 1920x1080 0 2200/1125 59 off
56.5 0.5 1920x35 3 2200/39 1730 off
58.5 0.6 1920x1080 0 65534/1125 3 off
Recording:
[13:07:26 | + 0s | 149.02] CHIP res=0x0 fps=0 rx=extract
[13:07:46 | + 20s | 168.71] CHIP res=0x0 fps=0 rx=access
[13:07:59 | + 33s | 181.99] CHIP res=0x0 fps=0 rx=extract
[13:08:02 | + 36s | 184.62] CHIP res=0x0 fps=0 rx=access
[13:08:15 | + 49s | 197.65] CHIP res=0x0 fps=0 rx=extract
[13:08:16 | + 50s | 198.95] CHIP res=0x0 fps=0 rx=access
[13:08:30 | + 64s | 212.26] CHIP res=0x0 fps=0 rx=extract
[13:08:32 | + 66s | 214.87] CHIP res=0x0 fps=0 rx=access
... (11 more state changes, same pattern)
run length: 301 s (KVM uptime 148.76 -> 449.70)
chip state changes: 18
first non-zero resolution: NEVER - chip reported no resolution during the whole run
resolutions seen: none
hdmi_rx_status values seen (first time):
+0s extract
+20s access
kernel messages during run: 0
Run 5 — 13:21 — source not recorded, direct HDMI, EDID E54 (KVM freshly rebooted)
rx cycled access/extract for the whole run: first ~13 s / ~2 s, from about +245 s ~4 s / ~2 s.
There was no lock, and no HDMI signal lines since the KVM booted.
Run 6 — 13:42 — Windows laptop, direct HDMI, EDID E58; HDMI splitter + 1280x1024 monitor added at ~+233 s
The best result so far: the driver locked a correct 1080p60 13 s after KVM boot and held it for 109 s. At the start of recording /proc showed 1920x1080.
The lock dropped 7 s after recording started.
After that, re-locks lasted only 0.4–4.7 s, and between them came corrupted timings: 1920 x 232, VTotal 233, FPS 289; 1920 x 57; 1920 x 92, HTotal 65534; 1920 x 816.
After the splitter was added: a correct 1280 x 1024, HTotal 1688, VTotal 1066 held for 3.3 s, then 1280 x 22, FPS 2781.
Run 7 — 13:49 — Windows laptop via HDMI splitter (+1280x1024 monitor), EDID E58, same KVM session as run 6
Between runs 6 and 7 nothing was polling, and dmesg still shows the problem: a correct 1280x1024@60 lock held 53.5 s and then dropped, followed by more drops at 495, 501, 505 and 511 s.
So the drops are not caused by the monitoring script.
During recording: 20 locks. The longest correct ones held 25.8 s and 14.4 s; 7 locks had corrupted timings, e.g. 4 x 1, 6 x 5, 1280 x 0, 1280 x 310.
Run 8 — 14:06 — server GT210 via HDMI splitter (+1280x1024 monitor), EDID E54
The first time the GT210 signal was ever captured. A picture appeared in the web UI. The GT210 output 1280 x 1024, HTotal 1688, VTotal 1066, the monitor's mode via the splitter. The first lock came 16 s after KVM boot and held 19.6 s.
It is still unstable: 56 locks in ~350 s. 22 were correct (average 2.5 s, maximum 19.6 s); 34 had corrupted timings, e.g. 42180 x 197, 61512 x 4, 1280 x 28, HTotal 65534.
During the 300 s of recording, /proc showed 1280x1024 for only ~41 s.
Unlike the direct connections, rx stayed access the whole time with no access/extract cycling, yet the video lock was still lost repeatedly.
Side bug: edid_snapshot corrupts the first 9 bytes
/proc/lt6911_info/edid_snapshot always starts with 75 6e 6b 6e 6f 77 6e 0a 00 ("unknown\n\0") instead of 00 ff ff ff ff ff ff 00 4e. This was seen in all runs with both E54 and E58. The rest of the 256 bytes matches the profile file and the Writing EDID: dmesg line, so the EDID sent to the chip is fine; only the snapshot output is wrong. The web UI is not affected, because it reads only byte 12.
Summary
The capture is unstable with every source and every setup.
It was reproduced with two different sources (GT210 server, Windows laptop), several HDMI cables, direct connection and splitter, EDID E54 and E58, and with and without monitoring.
The chip can lock with correct timings (1920x1080@60 2200/1125; 1280x1024@60 1688/1066), but every lock is lost after 0.4–109 s.
Re-locks often report corrupted timings (e.g. HTotal 65534, VTotal 0, FPS 1163/2781), which suggests the receiver measures unstable or corrupted sync.
All 48 locks tagged resolution type: 3 were corrupted.
2 of the 52 type 0/1 locks were corrupted as well.
hdmi_rx_status behaves differently by connection. With a direct connection it cycles access/extract endlessly once the source is on, and a Windows laptop reacts by blinking its screen. Via the splitter it stays access, but the lock is still lost.
The driver logs nothing during the access/extract cycling. In runs 3 and 5 there are no dmesg lines at all.
Side bug: edid_snapshot overwrites its first 9 bytes with "unknown\n\0".
Conclusion: everything outside the KVM was varied and ruled out, so the problem appears to be on the device side: the HDMI input / LT6911UXC, its firmware, or lt6911_manage.
Questions:
Is this a known hardware issue? Should the unit be replaced?
How can I read or update the LT6911UXC firmware version?
Is there a debug or verbose mode for lt6911_manage that would help diagnose the lock loss?
Question: sources for the closed components involved in HDMI capture
While debugging unstable HDMI capture (see the linked issue), I found that the parts responsible for capture are not in this repository:
libkvm.server/build.sh builds dl_lib/libkvm.so from server/dl_lib/kvmimpl.cpp, which contains only stubs. They print "Please compile the implementation from support/libkvm directory", but support/libkvm does not exist in the repo.
lt6911_manage kernel module, which provides /proc/lt6911_info/* and handles signal detection ("HDMI signal is stable/has disappeared"). It is only mentioned in support/tools/version_fix/version_fix.c.
kvmcomm service, which reads /proc/lt6911_info/{status,hdmi_rx_status,fps}. It is referenced from the server code (/kvmcomm/...).
Kernel sources of the shipped image (4.19.125, built May 29 2026).
Questions:
Are there plans to publish the sources of libkvm, lt6911_manage and kvmcomm? If yes, where and when?
Where can I get the kernel sources / BSP for the current firmware image?
If the sources cannot be published, could you document the /proc/lt6911_info interface? In particular:
the meaning of hdmi_rx_status values (access/extract);
the meaning of status, hdmi_tx_status and asr;
whether reading these files triggers I2C transactions with the LT6911UXC.
Is there a debug/verbose mode in lt6911_manage (module parameter or /proc switch) for diagnosing lock loss?
How can I read the LT6911UXC firmware version, and is there an official way to update it?
These would let me (and others ) debug the capture problem further instead of guessing from the outside.
Activity
miharoot commentedon Oct 2, 2026
Related: #93, #152
Overview
My server (NVIDIA GeForce 210 / GT218, HDMI output) shows no picture in the NanoKVM-Pro during POST/BIOS, GRUB and the Linux text console. To find out why, I recorded the capture chip state while the server booted, then repeated the test with a Windows laptop, different HDMI cables, an HDMI splitter and two EDID profiles.
Result: the LT6911UXC can lock with correct timings (1920x1080@60, 1280x1024@60), but the lock is lost after 0.4 s to 109 s with every source and every setup. Re-locks very often report corrupted timings, e.g.
1920 x 57, VTotal 58, FPS 1163. Every lock taggedresolution type: 3is corrupted. With the GT210 connected directly, the chip never locks at all.Environment
kvmcomm1.2.15,pikvm1.2.15)lt6911_manage,ax_mipi_rx)10de:0a65, HDMI out; legacy VGA text console (Console: colour VGA+ 80x25), no KMS driver loadedHow the logs were collected
The logs come from a read-only shell script running on the KVM:
/proc, never changes EDID or HDMI settings, and never restarts services;/proc/lt6911_infoplus the files the NanoKVM server itself reads;width,height,fpsandhdmi_rx_status, plus every new kernel message.Line format:
[wall clock | +seconds since start | KVM uptime] event. The KVM uptime equals the dmesg timestamps. In the excerpts below, static fields are trimmed andrxmeanshdmi_rx_status. Lock tables are built from the driver's dmesg lines:HDMI signal is stable→HDMI signal has disappeared. A lock counts as "correct" only if both resolution and HTotal/VTotal match the expected mode: 1920x10802200/1125, or 1280x10241688/1066.The full logs (8 runs) are attached. Personal data is redacted: hostname suffix, UTC offset, device-number field.
Run 1 — 10:48 — server GT210, direct HDMI, EDID E58
The server was powered on a few seconds after recording started and booted through POST, GRUB and the Linux console. This run used an older version of the script with no
hdmi_rx_statusand no live dmesg.width/heightstayed 0x0 for all 240 s; the chip never reported a resolution.Log excerpt (run 1)
Run 2 — 12:18 — snapshot after switching EDID to E54
This is a single snapshot taken after switching the EDID profile to E54; the chip reported
0x0at that moment. It is useful for the side bug: dmesg shows a valid EDID written to the chip (00 ff ff ff ff ff ff 00 4e 04 ..., correct checksums), but/proc/lt6911_info/edid_snapshotstarts with"unknown\n\0". Exactly bytes 0–8 are overwritten; the rest is identical.Log excerpt (run 2)
Run 3 — 12:33 — server GT210, direct HDMI, EDID E54, server powered on at ~+10 s
rxisextract. At +11 s, when the server is switched on,rxbecomesaccess.rxcyclesaccess(~4.3 s) /extract(~2.1 s) for the whole 300 s: 92 changes through POST, GRUB and the Linux console.0x0throughout, and not a singleHDMI signalline in dmesg.Log excerpt (run 3)
Run 4 — 13:07 — Windows laptop, direct HDMI, EDID E58 (KVM freshly rebooted)
HTotal 2200, VTotal 1125, FPS 59).HDMI signal has disappeared.2116 x 1, HTotal 65534, VTotal 0,1920 x 35, FPS 1730, and1920 x 1080, HTotal 65534, FPS 3(tagged type 0).rxcycledaccess(~13 s) /extract(~2 s) with no lock.Log excerpt (run 4)
Run 5 — 13:21 — source not recorded, direct HDMI, EDID E54 (KVM freshly rebooted)
rxcycledaccess/extractfor the whole run: first ~13 s / ~2 s, from about +245 s ~4 s / ~2 s.HDMI signallines since the KVM booted.Log excerpt (run 5)
Run 6 — 13:42 — Windows laptop, direct HDMI, EDID E58; HDMI splitter + 1280x1024 monitor added at ~+233 s
/procshowed1920x1080.1920 x 232, VTotal 233, FPS 289;1920 x 57;1920 x 92, HTotal 65534;1920 x 816.1280 x 1024, HTotal 1688, VTotal 1066held for 3.3 s, then1280 x 22, FPS 2781.Log excerpt (run 6)
Run 7 — 13:49 — Windows laptop via HDMI splitter (+1280x1024 monitor), EDID E58, same KVM session as run 6
So the drops are not caused by the monitoring script.
4 x 1,6 x 5,1280 x 0,1280 x 310.Log excerpt (run 7)
Run 8 — 14:06 — server GT210 via HDMI splitter (+1280x1024 monitor), EDID E54
1280 x 1024, HTotal 1688, VTotal 1066, the monitor's mode via the splitter. The first lock came 16 s after KVM boot and held 19.6 s.42180 x 197,61512 x 4,1280 x 28,HTotal 65534./procshowed 1280x1024 for only ~41 s.rxstayedaccessthe whole time with noaccess/extractcycling, yet the video lock was still lost repeatedly.Log excerpt (run 8)
Side bug:
edid_snapshotcorrupts the first 9 bytes/proc/lt6911_info/edid_snapshotalways starts with75 6e 6b 6e 6f 77 6e 0a 00("unknown\n\0") instead of00 ff ff ff ff ff ff 00 4e. This was seen in all runs with both E54 and E58. The rest of the 256 bytes matches the profile file and theWriting EDID:dmesg line, so the EDID sent to the chip is fine; only the snapshot output is wrong. The web UI is not affected, because it reads only byte 12.Summary
2200/1125; 1280x1024@601688/1066), but every lock is lost after 0.4–109 s.HTotal 65534,VTotal 0,FPS 1163/2781), which suggests the receiver measures unstable or corrupted sync.resolution type: 3were corrupted.HDMI signal is stable(runs 1 and 3). This is the original symptom from No video input from HDMI when in UEFI/BIOS #93/**Title:** No video output on BIOS/UEFI POST screen; Linux console (no GUI) shows no image; resolution stuck at 1024x768 after OS boot #152. Via a splitter the GT210 locks at 1280x1024 but drops the same way as the laptop (run 8).hdmi_rx_statusbehaves differently by connection. With a direct connection it cyclesaccess/extractendlessly once the source is on, and a Windows laptop reacts by blinking its screen. Via the splitter it staysaccess, but the lock is still lost.access/extractcycling. In runs 3 and 5 there are no dmesg lines at all.edid_snapshotoverwrites its first 9 bytes with"unknown\n\0".Conclusion: everything outside the KVM was varied and ruled out, so the problem appears to be on the device side: the HDMI input / LT6911UXC, its firmware, or
lt6911_manage.Questions:
lt6911_managethat would help diagnose the lock loss?miharoot commentedon Oct 2, 2026
Question: sources for the closed components involved in HDMI capture
While debugging unstable HDMI capture (see the linked issue), I found that the parts responsible for capture are not in this repository:
libkvm.server/build.shbuildsdl_lib/libkvm.sofromserver/dl_lib/kvmimpl.cpp, which contains only stubs. They print "Please compile the implementation from support/libkvm directory", butsupport/libkvmdoes not exist in the repo.lt6911_managekernel module, which provides/proc/lt6911_info/*and handles signal detection ("HDMI signal is stable/has disappeared"). It is only mentioned insupport/tools/version_fix/version_fix.c.kvmcommservice, which reads/proc/lt6911_info/{status,hdmi_rx_status,fps}. It is referenced from the server code (/kvmcomm/...).4.19.125, built May 29 2026).Questions:
libkvm,lt6911_manageandkvmcomm? If yes, where and when?/proc/lt6911_infointerface? In particular:hdmi_rx_statusvalues (access/extract);status,hdmi_tx_statusandasr;lt6911_manage(module parameter or/procswitch) for diagnosing lock loss?These would let me (and others ) debug the capture problem further instead of guessing from the outside.