我安装了 Ubuntu 14.04,我很喜欢它。但是,在玩一款名为 Garry's Mod 的游戏时,我注意到我的有线键盘上的CTRL和ALT键都被检测为Shift。我查看了键盘布局图并确认了这一点。我还注意到我的 Windows、或Super键Right CTRL和Right ALT都被映射到Left Shift。
它们都运行正常,只是检测错误。我选择了美国布局,我的键盘应该是这样的,而且在 Windows 中也是这样。有人能帮忙吗?我的键盘被检测为 SONiX USB 键盘(实际键盘品牌是 Avazz)。
我
xev -event keyboard
对每一个的输出都是这样的:KeyRelease event, serial 28, synthetic NO, window 0x4a00001, root 0xdc, subw 0x0, time 2446369, (730,547), root:(795,599), state 0x1, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False
唯一改变的是时间。
该
sudo evtest
命令显示所有修饰键为type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1v type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 0
对于
lsusb
,它使用的驱动程序是usbhid
驱动程序。lsusb
显示了一些令人困惑的内容;在其他命令中显示的与我的键盘相同的端口显示为lsusb
我的无线鼠标驱动程序Logitech, Inc. Unifying Receiver
。这可能是问题所在,但我可能只是弄错了它在哪个端口上。因此,我不确定哪个驱动程序是什么。我将发布所有这些,尽管这可能会很烦人。顺便说一下,我在主键盘旁边插入了一个单独的键盘以使用CTRL、Super或ALT,所以不要被 Logitech Classic 键盘驱动程序弄糊涂了。Bus 001 Device 009: ID 0bda:8172 Realtek Semiconductor Corp. RTL8191SU 802.11n WLAN Adapter Bus 001 Device 008: ID 046d:c315 Logitech, Inc. Classic Keyboard 200 Bus 001 Device 007: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB Bus 001 Device 006: ID 0480:0200 Toshiba America Info. Systems, Inc. Bus 001 Device 004: ID 0c45:6340 Microdia Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 004: ID 0d8c:013c C-Media Electronics, Inc. CM108 Audio Controller Bus 002 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver Bus 002 Device 002: ID 0c45:7603 Microdia Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
对于
lsusb -t
,正在使用的驱动程序是usbhid
。for i in $(ls /sys/module/usbhid/parameters/); do echo -ne "$i\t"; more /sys/module/usbhid/parameters/$i; done
是:ignoreled 0 mousepoll 0 quirks (null),(null),(null),(null)
既然我说过它是,我认为你不需要它
usbhid
,但无论如何,它是在这里。for i in $(ls /sys/module/hid/parameters/); do echo -ne "$i\t"; more /sys/module/hid/parameters/$i; done
的输出。调试 0 ignore_special_drivers 0
modinfo usbhid
的输出是:filename: /lib/modules/3.18.3-031803-generic/kernel/drivers/hid/usbhid/usbhid.ko license: GPL description: USB HID core driver author: Jiri Kosina author: Vojtech Pavlik author: Andreas Gal srcversion: A395FA22EA2729BAC1557C9 alias: usb:v*p*d*dc*dsc*dp*ic03isc*ip*in* depends: hid intree: Y vermagic: 3.18.3-031803-generic SMP mod_unload modversions signer: Magrathea: Glacier signing key sig_key: 29:DB:FD:FC:5A:CC:82:3C:C5:2C:39:4C:C1:C7:4C:01:C3:BE:BF:78 sig_hashalgo: sha512 parm: mousepoll:Polling interval of mice (uint) parm: ignoreled:Autosuspend with active leds (uint) parm: quirks:Add/modify USB HID quirks by specifying quirks=vendorID:productID:quirks where vendorID, productID, and quirks are all in 0x-prefixed hex (array of charp)
cat /sys/kernel/debug/usb/usbmon/2u > /tmp/usb.mon.out
告诉我找不到,即使我更改了2
我的公交 ID。我做错了什么?请解释一下,有点困惑。我尝试输入2
,02
和002
。 的输出sudo ls /sys/kernel/debug/usb/usbmon/
是0s 0u 1s 1t 1u 2s 2t 2u
答案1
我的键盘是 Perixx P1800。它具有相同的 lsusb 标识 (0c45:7603 Microdia),显然,它也使用与 azio L70 键盘相同的主板。
键盘的 Linux 驱动程序是手工制作的,可从以下网址获取:这个地址。
在 Debian 上,它对我来说运行得很好(之后update-initramfs
),除了靠近 Enter 的一个键(Azerty 键盘中的 *,小键盘的 * 运行良好)。
答案2
我也遇到过这个问题。我忍受了几个月,然后我尝试找到解决方法。
这是驱动程序;虽然我的键盘不是这个品牌,但它工作得很好。我希望它也能解决你的问题。驱动程序和说明在这里:
https://bitbucket.org/Swoogan/aziokbd
PD:我没有编写驱动程序,我只是找到了它。
-根据#GrammarNazy 的建议进行了编辑 xD