访问Linux / dev / USB作为标准文件与USB设备通信

我正在研究在Linux中与USB设备进行通信的方法,并且宁愿不写一个Linux内核驱动程序。 我知道libusb是存在的,并且是一个可以工作的用户空间库,但是我们的embedded式设备不支持usbfs(如果需要更改内核来添加支持,那真是一个痛苦)。

所以我的问题基本上是这样的:通过直接读写USB设备对应的/ dev / USB或udev文件,从而绕过对自定义Linux驱动程序和usbfs的需求,可以/可取地与USB设备进行通信?

我希望只要/ dev / USB或udev设备文件打开,通过直接通过文件types读/写命令读/写协议包就可以使用USB设备协议进行通信。

请思考和build议。

跟进:

由于需要与之通话的USB设备是USB HID类设备,我可以通过直接读/写/ dev / hidraw0(或相应的/ dev / hidraw设备)来使用libudev和标准的Linux USB HID RAW驱动程序。 。 编写简单的USB HID设备的自定义驱动程序是没有必要的。

Solutions Collecting From Web of "访问Linux / dev / USB作为标准文件与USB设备通信"

吉姆,我不认为你可以逃避编写驱动程序的需要,只是设法读取/dev的USB文件。 因为谁定义了在USB设备文件上执行read()时会发生什么? 谁定义了当你调用sysioctl()时应该发起什么动作? 你的司机! 换句话说,设备文件本身是无能为力的,直到它们被底层驱动程序支持。 实际上,您可以将设备文件视为底层驱动程序的抽象。 所以,没有驱动程序,没有使用设备文件:(

我建议你阅读以下关于如何编写驱动程序的文章,并了解USB内部 –

  1. http://www.linux-usb.org/USB-guide/c15.html

  2. http://www.linuxjournal.com/article/4786 (稍显过时)