Var*_*gor 5 keyboard keyboard-layout usbhid drivers
我安装了 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
Run Code Online (Sandbox Code Playgroud)
唯一改变的是时间。
该sudo evtest
命令将所有修饰键显示为
type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e1v type 1 (EV_KEY), code 42 (KEY_LEFTSHIFT), value 0
Run Code Online (Sandbox Code Playgroud)for 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
Run Code Online (Sandbox Code Playgroud)
对于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)
Run Code Online (Sandbox Code Playgroud)我不认为你需要这个,因为我说过它是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)
Run Code Online (Sandbox Code Playgroud)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