I'm seeing flakiness in X11 (KDE) with evdev enabled - a couple keys are
reporting multiple (wrong) events and some aren't emitting any events
(or they are, but they're NoSymbol):
- Down arrow: emits KeyPress for keycode 116 (Super_R), KeyRelease for
keycode 116, KeyRelease for keycode 104 (Down)
- Left arrow: emits KeyPress for keycode 113 (Alt_R), KeyPress for
keycode 100 (Left), KeyRelease for keycode 113, KeyRelease for keycode 100
- Volume up: emits KeyPress 123 (NoSymbol), KeyPress 176 (NoSymbol),
KeyRelease for same
- Volume down: emits KeyPress 122 (NoSymbol), KeyPress 174 (NoSymbol),
KeyRelease for same
- Volume mute toggle: emits KeyPress 121 (NoSymbol), KeyRelease 121
(NoSymbol), KeyRelease 140 (NoSymbol)
- Keypad end: emits KeyPress 115 (Super_L), KeyPress 103 (End),
KeyRelease for same
I'll attach the output of 'evdev -event keyboard' for everything but the
Keypad end key which I recently found.
/usr/local/etc/X11/xorg.conf.d/evdev1.conf:
Section "InputDevice"
Identifier "Keyboard0"
Driver "evdev"
Option "Device" "/dev/input/event1"
EndSection
dmesg | grep kbd:
[ajenkins@ajenkins-hplaptop ~]$ dmesg | grep kbd
kbd: new array size 4
kbd1 at kbdmux0
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
atkbd: the current kbd controller command byte 0067
atkbd: keyboard ID 0x41ab (2)
kbdc: RESET_KBD return code:00fa
kbdc: RESET_KBD status:00aa
kbd0 at atkbd0
kbd0: atkbd0, AT 101/102 (2), config:0x0, flags:0x1d0000
atkbd0: [GIANT-LOCKED]
random: harvesting attach, 8 bytes (4 bits) from atkbd0
random: harvesting attach, 8 bytes (4 bits) from atkbdc0
kbdc: TEST_AUX_PORT status:0000
kbdc: RESET_AUX return code:00fa
kbdc: RESET_AUX status:00aa
kbdc: RESET_AUX ID:0000
kbdc: RESET_AUX return code:00fa
kbdc: RESET_AUX status:00aa
kbdc: RESET_AUX ID:0000
psm0: <PS/2 Mouse> irq 12 on atkbdc0
atkbdc: atkbdc0 already exists; skipping it
/var/log/Xorg.0.log stuff:
[ 24.763] (**) Option "config_info" "udev:/dev/input/event1"
[ 24.763] (II) XINPUT: Adding extended input device "System keyboard
multiplexer" (type: KEYBOARD, id 7)
[ 24.763] (**) Option "xkb_rules" "evdev"
[ 24.839] (II) config/udev: Adding input device AT keyboard
(/dev/input/event2)
[ 24.839] (**) AT keyboard: Applying InputClass "evdev keyboard catchall"
[ 24.839] (II) Using input driver 'evdev' for 'AT keyboard'
[ 24.839] Option "_source" "server/udev"
[ 24.839] Option "name" "AT keyboard"
[ 24.839] Option "path" "/dev/input/event2"
[ 24.839] Option "device" "/dev/input/event2"
[ 24.839] Option "major" "0"
[ 24.839] Option "minor" "45"
[ 24.839] Option "driver" "evdev"
[ 24.839] Option "config_info" "udev:/dev/input/event2"
[ 24.839] (**) AT keyboard: always reports core events
[ 24.839] (**) evdev: AT keyboard: Device: "/dev/input/event2"
[ 24.839] (--) evdev: AT keyboard: Vendor 0x1 Product 0x1
[ 24.839] (--) evdev: AT keyboard: Found keys
[ 24.839] (II) evdev: AT keyboard: Configuring as keyboard
[ 24.839] (**) Option "config_info" "udev:/dev/input/event2"
[ 24.840] (II) XINPUT: Adding extended input device "AT keyboard"
(type: KEYBOARD, id 8)
[ 24.840] (**) Option "xkb_rules" "evdev"
[ 24.840] (II) XKB: Reusing cached keymap
[ 24.840] (II) config/udev: Adding input device Synaptics Touchpad
(/dev/input/event3)
[ 24.841] (**) Synaptics Touchpad: Applying InputClass "evdev pointer
catchall"
[ 24.841] (**) Synaptics Touchpad: Applying InputClass "evdev
touchpad catchall"
[ 24.841] (**) Synaptics Touchpad: Applying InputClass "touchpad
catchall"
[ 24.841] (**) Synaptics Touchpad: Applying InputClass "Default
clickpad buttons"
[ 24.841] (II) LoadModule: "synaptics"
[ 24.841] (II) Loading /usr/local/lib/xorg/modules/input/synaptics_drv.so
[ 24.842] (II) Module synaptics: vendor="X.Org Foundation"
[ 24.842] compiled for 1.19.3, module version = 1.9.0
[ 24.842] Module class: X.Org XInput Driver
[ 24.843] ABI class: X.Org XInput driver, version 24.1
[ 24.843] (II) Using input driver 'synaptics' for 'Synaptics Touchpad'
[ 24.843] Option "_source" "server/udev"
[ 24.843] Option "name" "Synaptics Touchpad"
[ 24.843] Option "path" "/dev/input/event3"
[ 24.843] Option "device" "/dev/input/event3"
[ 24.843] Option "major" "0"
[ 24.843] Option "minor" "50"
[ 24.843] Option "driver" "synaptics"
Not sure what else to add. I have applied the patches from this email
thread. Any ideas?
Thanks in advance,
Anthony Jenkins
Hi Vladimir and Jan,
Thanks for the patches! I'm having some issues with 3 patches from this
thread:
-
https://reviews.freebsd.org/file/data/pqjvpuhwfgsu5nnamibg/PHID-FILE-uuyjx66blb344hre3nc2/D10207.vson.id27478.whitespaceignore-most.diff
These may or may not have anything to do with the patches...
1. For some reason Xorg keyboard driver isn't getting some key events,
or had shuffled them. When I first applied the patches, X thought my
<Down> arrow was <KP_Enter> and <KP_Enter> was something else. At some
point that behavior changed and <Down> worked, but <KP_Divide> emits
<KP_Multiply> and <KP_Multiply> doesn't emit anything. Rebooting didn't
change the new behavior, and I don't know what caused it to change.
Switching to a console, I get the expected characters/actions when
pressing these keys.
2. My Synaptics clickpad (and the pointer in general) freeze for several
seconds, although it hasn't done it lately. When a freeze occurs (in X
windows), other GUI processes don't seem to be affected. If I have
another pointer device attached (e.g. USB mouse), it also doesn't move
the pointer during the freeze.
Here's my config: