LED State Synchronization Host Only Setting Does Not Work When Keyboard in Boot Mode #305

Open
opened 2026-02-20 08:21:51 -05:00 by deekerman · 0 comments
Owner

Originally created by @rmschooley on GitHub (Jun 1, 2025).

When JetKVM's keyboard is operating in HID Mode, JetKVM's LED State Synchronization Host Only Setting works just fine. This is because these led states are changed in this keyboard report mode (i.e. HID) using the keyboard's out endpoint and the current code monitors this endpoint to track the states of these leds (i.e. CapsLock, NumLock, and ScrollLock) so they can be displayed in the application at the bottom of the browser.

When JetKVM's keyboard is operating in BOOT Mode, JetKVM's LED State Synchronization Host Only Setting does not work. This is because the led states are changed in this keyboard report mode (i.e. BOOT) using the keyboard's default control endpoint and the current code does not monitor this endpoint to trace the states of these leds. In other words, the current code always monitors the keyboard's out endpoint and never monitors the keyboard's default control endpoint. As such, this setting cannot work when the keyboard is in this mode (which is often if not always used in BIOS).

Obviously, it is certainly possible the current code could be modified to monitor both the out endpoint as well as the default control endpoint to check for led state changes so that this code would properly work regardless of whether the keyboard was in BOOT Mode or HID Mode. Although there are probably multiple ways this could be done, one way would be to modify the linux usbgadget hid driver to capture these led state changes and provide a mechanism to alert and make these values available to the user-mode code.

There are more details about this issue in the notes for PR #530.

Originally created by @rmschooley on GitHub (Jun 1, 2025). When JetKVM's keyboard is operating in HID Mode, JetKVM's LED State Synchronization Host Only Setting works just fine. This is because these led states are changed in this keyboard report mode (i.e. HID) using the keyboard's out endpoint and the current code monitors this endpoint to track the states of these leds (i.e. CapsLock, NumLock, and ScrollLock) so they can be displayed in the application at the bottom of the browser. When JetKVM's keyboard is operating in BOOT Mode, JetKVM's LED State Synchronization Host Only Setting does *not* work. This is because the led states are changed in this keyboard report mode (i.e. BOOT) using the keyboard's default control endpoint and the current code does *not* monitor this endpoint to trace the states of these leds. In other words, the current code *always* monitors the keyboard's out endpoint and *never* monitors the keyboard's default control endpoint. As such, this setting cannot work when the keyboard is in this mode (which is often if not always used in BIOS). Obviously, it is certainly possible the current code could be modified to monitor both the out endpoint as well as the default control endpoint to check for led state changes so that this code would properly work regardless of whether the keyboard was in BOOT Mode or HID Mode. Although there are probably multiple ways this could be done, one way would be to modify the linux usbgadget hid driver to capture these led state changes and provide a mechanism to alert and make these values available to the user-mode code. There are more details about this issue in the notes for PR #530.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/kvm#305
No description provided.