Cideko Air 键盘被识别为操纵杆 (22.04)

Cideko Air 键盘被识别为操纵杆 (22.04)

经过几年无故障的使用,我的 Cideko 空气键盘被识别为操纵杆。它似乎会随机停止工作,我唯一能做的就是启动操纵杆校准屏幕并让它在后台运行。

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.2 LTS"

lsusb 的输出是:

Bus 002 Device 004: ID 20e8:5861 Cideko Inc. AK08 Device
Bus 002 Device 003: ID 046d:0825 Logitech, Inc. Webcam C270
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 005: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 004: ID 05e3:070e Genesys Logic, Inc. USB 2.0 Card Reader
Bus 001 Device 003: ID 15c2:0036 SoundGraph Inc. LC16M VFD Display/IR Receiver
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

如果我列出 /dev/input/by-id/ :

total 0
lrwxrwxrwx 1 root root  9 Sep  7 09:43 usb-Cideko_Inc._AK08_Device-event-kbd -> ../event2
lrwxrwxrwx 1 root root  9 Sep  7 09:43 usb-Cideko_Inc._AK08_Device-event-if03 -> ../event5
lrwxrwxrwx 1 root root  9 Sep  7 09:43 usb-Cideko_Inc._AK08_Device-if01-mouse -> ../mouse0
lrwxrwxrwx 1 root root  9 Sep  7 09:43 usb-Cideko_Inc._AK08_Device-if02-event-joystick -> ../event4
lrwxrwxrwx 1 root root  9 Sep  7 09:43 usb-Cideko_Inc._AK08_Device-if01-event-mouse -> ../event3
lrwxrwxrwx 1 root root  6 Sep  7 09:43 usb-Cideko_Inc._AK08_Device-if02-joystick -> ../js0
lrwxrwxrwx 1 root root  9 Sep  7 09:43 usb-15c2_0036-mouse -> ../mouse2
lrwxrwxrwx 1 root root  9 Sep  7 09:43 usb-15c2_0036-event-mouse -> ../event8
lrwxrwxrwx 1 root root 10 Sep  7 09:43 usb-046d_0825_7CD77CA0-event-if00 -> ../event10

我尝试通过德尼尔森·萨玛亚这里提到: 如何禁用操纵杆输入?

这让我找到了最新的 GitHub 版本: https://github.com/denilsonsa/udev-joystick-blacklist

然后将我自己的供应商/产品附加到他的文件中:

...
SUBSYSTEM=="input", ATTRS{idVendor}=="20e8", ATTRS{idProduct}=="5861", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
SUBSYSTEM=="input", ATTRS{idVendor}=="20e8", ATTRS{idProduct}=="5861", KERNEL=="js[0-9]*", MODE="0000", ENV{ID_INPUT_JOYSTICK}=""
...

第一个选项似乎根本没有效果。第二个选项会将其删除,因此无法使用(即使使用我的解决方法)。

知道如何让它再次作为键盘工作吗?

答案1

如果没有设备,很难知道。而且该公司甚至不存在了,因为他们的网站已经消失了自 2016 年起http://www.cideko.com/

我找不到任何与供应商 ID 相关的20e8信息Linux 内核源代码,也不在libinput 源代码

linux-hardware.org 上没有关于该设备的任何报告听起来你是购买该设备的极少数人之一,并且可能是唯一仍在使用该设备并在 Linux 上使用它的人。

既然你说它多年来一直运行良好,我建议你尝试在不同的发行版或不同的发行版版本上使用你的设备。你可以使用文图伊在可启动的 USB 驱动器上加载来自不同发行版的一堆 ISO 文件,以便快速测试它们。如果您有权限访问这些计算机,也可以在不同的计算机上测试它。尝试记下(可能在电子表格中):

  • 发行版名称
  • 发行版本
  • Linux 内核版本 ( uname -rv)
  • libinput 版本
  • 它最初有效吗?
  • 一段时间后它还能继续工作吗?
  • 在进行操纵杆校准时它可以工作吗?
  • 当某些应用程序正在使用操纵杆时它可以工作吗?

尝试也关注内核消息:sudo dmesg -H -w


我想,如果任何应用程序或游戏开始使用操纵杆,键盘/鼠标功能也会起作用,比如打开此测试页或者这个测试应用程序。(我猜这不仅仅是在操纵杆校准时发生。)

我猜想某些省电功能会将 USB 接收器置于低能耗状态,使其处于休眠状态,从而无法从设备接收数据。这可以解释为什么任何打开/读取/与操纵杆交互的设备都会使接收器唤醒并正常工作。但这只是一个大胆的猜测。这可能是对 Linux 内核驱动程序或 libinput 的“最近”更改,或者完全是其他东西。

祝你好运!希望通过这些步骤,你可以缩小问题范围。请记住在此处发布你的结果(作为评论或其他答案)。

答案2

我重新审视了这个问题,并意识到快速而肮脏的破解方法是运行 crontab -e 并粘贴:

@reboot nohup cat /dev/input/by-id/usb-Cideko_Inc._AK08_Device-if02-event-joystick </dev/null >/dev/null 2>&1 &

这与在桌面上运行操纵杆配置屏幕具有相同的效果,但它会在每次机器启动时启动并在后台运行。

相关内容