/ dev /输入文件已创建,但不包含数据流

时间:2016-07-02 20:34:48

标签: linux usb linuxmint

所以,我试图在Linux Mint的全新安装中读取USB设备。

我以前做过的方法是读取/ dev / input / by-id中的原始流

正在检测设备,它正在生成预期的设备:

$ ls /dev/input/by-id/
usb-Generic_WebCam_SC-13HDL11939N_200901010001-event-if00
usb-Logitech_Logitech_Buzz_tm__Controller_V1-event-if00

但是当我使用

查看文件时
tail -f /dev/input/by-id/usb-Generic_WebCam_SC-13HDL11939N_200901010001-event-if00

按某些键时,没有数据输出到终端。我已经尝试过sudo,我尝试过更改文件的权限。它基本上等待它没有变化。

有很多关于设备没有出现的问题,或者在阅读文件时有关IO错误的问题,但我找不到其他人遇到同样的问题。

为什么Linux Mint可能会检测到设备,但却没有从中读取数据?

其他要求的信息:

# ls -lRa /dev/input/by-id
/dev/input/by-id:
total 0
drwxr-xr-x 2 root root  80 Jul  2 21:38 .
drwxr-xr-x 4 root root 360 Jul  2 21:38 ..
lrwxrwxrwx 1 root root   9 Jul  2 21:24 usb-Generic_WebCam_SC-13HDL11939N_200901010001-event-if00 -> ../event9
lrwxrwxrwx 1 root root  10 Jul  2 21:38 usb-Logitech_Logitech_Buzz_tm__Controller_V1-event-if00 -> ../event10

我也在/ dev / input / event10上尝试了tail -f。结果相同。

此外,最后几行dmesg

[  263.440421] usb 2-1.1: new low-speed USB device number 5 using ehci-pci
[  263.538270] usb 2-1.1: New USB device found, idVendor=054c, idProduct=0002
[  263.538280] usb 2-1.1: New USB device strings: Mfr=3, Product=1, SerialNumber=0
[  263.538285] usb 2-1.1: Product: Logitech Buzz(tm) Controller V1
[  263.538290] usb 2-1.1: Manufacturer: Logitech
[  263.585640] hidraw: raw HID events driver (C) Jiri Kosina
[  263.597332] usbcore: registered new interface driver usbhid
[  263.597338] usbhid: USB HID core driver
[  263.615420] input: Logitech Logitech Buzz(tm) Controller V1 as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/0003:054C:0002.0001/input/input11
[  263.668811] sony 0003:054C:0002.0001: input,hidraw0: USB HID v1.11 Joystick [Logitech Logitech Buzz(tm) Controller V1] on usb-0000:00:1d.0-1.1/input0
[  811.582183] usb 2-1.1: USB disconnect, device number 5
[  813.318275] usb 2-1.1: new low-speed USB device number 6 using ehci-pci
[  813.416196] usb 2-1.1: New USB device found, idVendor=054c, idProduct=0002
[  813.416207] usb 2-1.1: New USB device strings: Mfr=3, Product=1, SerialNumber=0
[  813.416213] usb 2-1.1: Product: Logitech Buzz(tm) Controller V1
[  813.416218] usb 2-1.1: Manufacturer: Logitech
[  813.422041] input: Logitech Logitech Buzz(tm) Controller V1 as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/0003:054C:0002.0002/input/input12
[  813.422335] sony 0003:054C:0002.0002: input,hidraw0: USB HID v1.11 Joystick [Logitech Logitech Buzz(tm) Controller V1] on usb-0000:00:1d.0-1.1/input0

我发现可以使用evtest实用程序(https://wiki.ubuntu.com/DebuggingTouchpadDetection/evtest)读取它,但只能以root身份或使用sudo读取。

同样作为root或sudo,我无法在上述路径中看到任何数据。

P.S。我可以通过/ sys / class / leds /

将控制数据推送到这些控制器中的灯

1 个答案:

答案 0 :(得分:2)

这里的问题是tail程序,而不是输入设备本身。 tail正试图读取数据,直到"文件的结尾"在它开始打印之前 - 但是输入设备 没有"文件的结尾",所以它永远不会打印任何内容。另一方面,cat会立即写入数据,以便正常工作。我不知道为什么tail过去使用其他输入设备为您工作。