我在我的项目(桌面应用程序)中使用操纵杆。为了检查操纵杆是否已连接,我使用 lsusb 命令。基本上,如果操纵杆已连接,此命令将显示操纵杆的型号名称(例如“SHANWAN Android Gamepad”和“DragonRise Inc. PC TWIN SHOCK Gamepad”)
当我将两个操纵杆连接到系统(“SHANWAN Android Gamepad”和“DragonRise Inc. PC TWIN SHOCK Gamepad”)时,对于某些系统,此命令会提供有关所有连接设备的信息,如下所示
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 413c:2113 Dell Computer Corp. Dell KB216 Wired Keyboard
Bus 001 Device 002: ID 413c:301a Dell Computer Corp. Dell MS116 USB Optical Mouse
Bus 001 Device 028: ID 2563:0526 **SHANWAN Android Gamepad**
Bus 001 Device 029: ID 0079:0006 **DragonRise Inc. PC TWIN SHOCK Gamepad**
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
对于某些系统,它会显示这样的空白
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 413c:2113 Dell Computer Corp. Dell KB216 Wired Keyboard
Bus 001 Device 002: ID 413c:301a Dell Computer Corp. Dell MS116 USB Optical Mouse
Bus 001 Device 028: ID 2563:0526
Bus 001 Device 029: ID 0079:0006 **DragonRise Inc. PC TWIN SHOCK Gamepad**
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
以上信息显示两个操纵杆都已连接,但没有显示 SHANWAN 的型号名称。如何解决?
答案1
该命令lsusb
将系统数据 (/sys/bus/usb/devices) 与硬件数据库 (/lib/udev/hwdb.bin) 结合起来,生成可读的输出(参见man hwdb
)。
凡是hwdb中没有找到的就无法显示。
似乎您的某些系统的 hwdb 中没有“SHANWAN Android Gamepad”。