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

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

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

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

请思考和建议。

跟进:

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


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

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

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

  • http://www.linuxjournal.com/article/4786(稍微过时)

  • 链接地址: http://www.djcxy.com/p/57995.html

    上一篇: Accessing Linux /dev/USB as standard files to communicate with USB device

    下一篇: How can akka actor interact between threads