diff options
Diffstat (limited to 'marsond.rst')
-rw-r--r-- | marsond.rst | 100 |
1 files changed, 52 insertions, 48 deletions
diff --git a/marsond.rst b/marsond.rst index 2a95b71..ce0e102 100644 --- a/marsond.rst +++ b/marsond.rst @@ -27,35 +27,7 @@ DESCRIPTION keyboard adaptor. The symptom: in games and emulators, the Enter key only works sometimes. This is caused by the firmware in the adaptor sending the keypress and release events only 8 milliseconds apart. - -The problem happens with any SDL application (SDL1 or SDL2), as well -as other graphics libraries. It happens regardless of what PS/2 -keyboard you have plugged in, what computer you have the adaptor -plugged into, or what OS that computer is running. - -The specific hardware that has the Enter key problem for me is USB -vendor ID 04b4, product ID 0101, "Marson Keyboard and Mouse Link -Ver:ps2120L". It has a label on the front that says "USBLink", and on -the back, the model number is "MT606-1". It looks like: - - https://slackware.uk/~urchlay/sdl-usblink-hack/marson-front.jpg - - https://slackware.uk/~urchlay/sdl-usblink-hack/marson-back.jpg - -I'm not sure if any other USB keyboard adaptors are affected. If you -have the problem on some other adaptor, and **marsond** fixes it, -please contact me so I can add the model number to this man page. - -**marsond** uses the Linux kernel's **uinput** layer to "grab" the -keyboard, create a new virtual keyboard device, and pass events from -the real keyboard to the virtual one. When it sees the key release -event for the Enter key, it simply pauses for a few milliseconds -before delivering it. - -This should work with everything that uses the keyboard. It definitely -does, with SDL 1 and 2 running under X (and SDL 1 on the console, -too). I don't use Wayland, so I haven't tested it there. If you do, -please contact me and let me know if it works for you. +See the **NOTES** section for full details. For normal use, **marsond** will be started by a **udev**\(7) rule when the adaptor is plugged in (including booting with the adaptor @@ -66,25 +38,6 @@ connected). The udev rule is found in: ...which can be edited to change the options it's run with, if needed. The defaults work well on the author's system. -**marsond** must be run as root. At startup, it does these -things as root: - -- Grab the physical keyboard. - -- Create the virtual keyboard device. - -- Lock its pages into physical memory, to avoid being swapped out. - -- Set its priority (nice value) to -20 (highest priority), to - avoid slow response on a loaded system. - -After doing the above, root access is no longer needed, so it will -drop privileges and run as the *nobody* user by default (but see -**ENVIRONMENT** if you need a different user). - -While **marsond** is running, "xinput --list" will show an input -device called "marson virtual keyboard". - OPTIONS ======= @@ -146,6 +99,57 @@ MARSOND_GROUP the primary group of the user it's running as. Normally you won't have to set this. +NOTES +===== + +The problem happens with any SDL application (SDL1 or SDL2), as well +as other graphics libraries. It happens regardless of what PS/2 +keyboard you have plugged in, what computer you have the adaptor +plugged into, or what OS that computer is running. + +The specific hardware that has the Enter key problem for me is USB +vendor ID 04b4, product ID 0101, "Marson Keyboard and Mouse Link +Ver:ps2120L". It has a label on the front that says "USBLink", and on +the back, the model number is "MT606-1". It looks like: + + https://slackware.uk/~urchlay/sdl-usblink-hack/marson-front.jpg + + https://slackware.uk/~urchlay/sdl-usblink-hack/marson-back.jpg + +I'm not sure if any other USB keyboard adaptors are affected. If you +have the problem on some other adaptor, and **marsond** fixes it, +please contact me so I can add support for it in the future. + +**marsond** uses the Linux kernel's **uinput** layer to "grab" the +keyboard, create a new virtual keyboard device, and pass events from +the real keyboard to the virtual one. When it sees the key release +event for the Enter key, it simply pauses for a few milliseconds +before delivering it. + +This should work with everything that uses the keyboard. It definitely +does, with SDL 1 and 2 running under X (and SDL 1 on the console, +too). I don't use Wayland, so I haven't tested it there. If you do, +please contact me and let me know if it works for you. + +**marsond** must be run as root. At startup, it does these +things as root: + +- Grab the physical keyboard. + +- Create the virtual keyboard device. + +- Lock its pages into physical memory, to avoid being swapped out. + +- Set its priority (nice value) to -20 (highest priority), to + avoid slow response on a loaded system. + +After doing the above, root access is no longer needed, so it will +drop privileges and run as the *nobody* user by default (but see +**ENVIRONMENT** if you need a different user). + +While **marsond** is running, "xinput --list" will show an input +device called "marson virtual keyboard". + LIMITATIONS =========== |