PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
AndroidDev
[问题] 有人试过在android 开发板读/dev/hidraw
楼主:
blueblueChen
(蓝蓝欠)
2016-07-16 23:29:51
如题..
我这边使用了 kernel/samples/hidraw/hid-sample.c 范例
完全没有改,把它整进去 BSP 内(android 6.0.x, kernel )
然后拿公司同事的 MCU 接 USB到我们的开发板,在 /dev/下有
生成 hidraw0 node,MCU那边team说data插上电后会一直送data,而我
执行 hid-sample 程式出现以下
Report Descriptor Size: 161
Report Descriptor:
5 1 9 6 a1 1 85 1 5 7 19 e0 29 e7 15 0 25 1 75 1 95 8 81 2 95 1 75 8 81 1 95
5 75 1 5 8 19 1 29 5 91 2 95 1 75 3 91 1 95 6 75 8 15 0 25 ff 5 7 19 0 29 ff
81 0 5 c 9 0 15 80 25 7f 75 8 95 8 b1 2 c0 5 1 9 2 a1 1 85 2 9 1 a1 0 5 9 19
1 29 3 15 0 25 1 95 3 75 1 81 2 95 1 75 5 81 3 5 1 9 30 9 31 9 38 15 81 25 7f
75 8 95 3 81 6 c0 c0 6 ff 0 9 1 a1 1 85 3 9 0 15 0 25 1 75 8 95 40 81 2 85 3
9 0 91 82 c0
Raw Name: STMicroelectronics Joystick in FS Mode
Raw Phys: usb-f72c0000.usb-1.1/input0
Raw Info:
bustype: 3 (USB)
vendor: 0x0483
product: 0x5710
HIDIOCSFEATURE: Broken pipe
HIDIOCGFEATURE: Broken pipe
write() wrote 2 bytes
read: Try again
它可以 open file ,却不能 read, 如果我接上 HID 鼠标,他也生成 hidraw1
可以cat /dev/hidraw1 ,鼠标移动就有资料产生。但 hidraw0 不能,一开始以为
是 read () 的问题,查看了linux hidraw 的 Document.txt,说 read API
是去读 INTERRUPT IN endpoint ,我们知道MCU那端要传USB
data 过来也是将资料送达到 IN 的 endpoint,传输是INTERRUPT ,所以
API 我认为没问题...
这边我又看了开发板端的 Android 系统,插上MCU那端的USB后,dmesg
出现一堆错误的讯息
date_urb_state(): trimming xfer length
[ 987.697153] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 987.729154] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 987.761154] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 987.793160] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 987.825159] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 987.857346] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 987.889163] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 987.921161] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 987.953161] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 987.985163] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 988.017188] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 988.049164] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 988.081163] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 988.113190] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 988.145167] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 988.177164] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 988.209165] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 988.241167] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 988.273167] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 988.305167] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 988.337167] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 988.369168] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 988.401169] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 988.433169] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 988.465169] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 988.497170] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 988.529171] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 988.561171] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 988.593172] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 988.625172] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 988.657174] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 988.689173] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 988.721174] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 988.753175] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 988.785201] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 988.817176] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
[ 988.849203] dwc2 f72c0000.usb: dwc2_update_urb_state(): trimming xfer
length
不知道有没有先进遇过 hidraw 无法 read ,然后dmesg 又出现这种错误
呢? 感谢!
作者:
withoutshine
(何必帮别人想那么多)
2016-07-17 06:33:00
看一下你device传出来的 endpoint descriptor跟实际送出来的资料长度有没有问题
作者:
cutem
(大少爷)
2016-07-18 00:11:00
http://b8807053.pixnet.net/blog/post/267518989-usb-devi
ce-资料读取方式的研究看一下对应的kernel选项有没有打开
继续阅读
[问题] 关于Uid(user id)设定达成管理目的
forget2009
[问题] 模拟器无法安装中文输入法
jing1981jing
[问题] 蓝牙模组传送资料问题
Dong123
[问题] 商店上架后,其中之功能模拟定位没侦测到
freedom74569
[问题]类似 checkbox 的功能询问
robust083
[问题] 我遇到了一个在V19遇到的crash~
freedom74569
[问题] 可以接受数值但无法显示在textview上
pokemon1318
Re: [问题] 自动更新app
SuperEel
[问题] 汇入icon时会变黑
LaPass
[问题] 自动更新app
SuperEel
Links
booklink
Contact Us: admin [ a t ] ucptt.com