我有一个ASUS PSR 2000 Web冲浪遥控器随附的eDIO USB多功能遥控器(一个红外接收器)。
我正在尝试将Remote COntroller连接到我的pi,以便它接收到由远程发送的击键。
控制器被检测为HID设备。以下是lsusb -v命令的详细信息
Bus 001 Device 007: ID 147a:e001 Formosa Industrial Computing, Inc.
Couldn't open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x147a Formosa Industrial Computing, Inc.
idProduct 0xe001
bcdDevice 1.22
iManufacturer 1
iProduct 2
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 34
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 4
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 300mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 2 Mouse
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 20
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 10
我还可以在具有创建事件的dev文件夹中查看目标设备
pi@raspberrypi /dev/input/by-id $ dir
usb-Cypress_Semiconductor_eDio_USB_Multi_Remote_Controlle-event-if00
从以下命令中可以看到,与之关联的事件处理程序如下。
pi@raspberrypi /proc/bus/input $ cat devices
I: Bus=0003 Vendor=147a Product=e001 Version=0110
N: Name="Cypress Semiconductor eDio USB Multi Remote Controlle"
P: Phys=usb-bcm2708_usb-1.2/input0
S: Sysfs=/devices/platform/bcm2708_usb/usb1/1-1/1-1.2/1-1.2:1.0/input/input2
U: Uniq=
H: Handlers=event0
B: PROP=0
B: EV=1
问题是当我尝试从为设备创建的事件处理程序中读取输出时,第一次按键已注册,但CAT命令未显示后续按键。
pi@raspberrypi /dev/input $ cat event0 | xxd
0000000: e007 9450 9476 0900 0000 0000 0000 0000 ...P.v..........
请建议我该怎么做才能使设备正常工作。除非重新插入设备,否则在第一次按键后按任何键都不会返回任何内容。
请提出解决该问题所需采取的措施。
任何人都可以吗?我对设备发生的事情一无所知。如果这是一个问题,主持人也许可以帮助我更好地提出问题?
—
SteveIrwin 2012年
这个问题很好。但是,它是相当本地化的,因此我确定不会有太多人遇到相同的问题。知道我看到克里斯·华莱士的说话船使用的东西非常相似,可能会让您感到平静,因此您可以看一下。为了诊断问题,我首先要问的是:您是否正在使用自供电的集线器,因为这可能是电源问题。
—
吉文斯,2012年
您尝试过没有
—
macrojames,2012年
|xxd
吗?它缓冲输出。我irw
从包lirc
中获取了我的遥控器发送的键码。
自定义驱动程序将意味着一个Linux内核补丁。比较容易的选择是使用libusb,因为libusb可以直接访问USB端点。
—
拉尔斯·珀特(LarsPötter)2012年