首页 文章

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

提问于
浏览
7

我正在研究如何在Linux中与USB设备进行通信,而不愿意编写Linux内核驱动程序 . 我知道libusb存在并且是一个可以工作的用户区域库,但是我们的嵌入式设备不支持usbfs(并且真的很难改变内核以添加支持) .

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

我希望一旦/ dev / USB或udev设备文件打开,只需通过文件类型的读/写命令直接读/写协议包,就可以使用USB设备协议进行通信 .

请提出意见和建议 .

跟进:

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

1 回答

  • 4

    吉姆,我认为你不能逃避编写驱动程序的需要,只是设法在 /dev 中读取USB文件 . 因为谁定义了在USB设备文件上执行 read() 时应该发生什么?谁定义了在调用 sysioctl() 时应该启动哪些操作? Your driver! 换句话说,在底层驱动程序支持设备文件之前,设备文件本身无法执行任何操作 . 实际上,您可以将设备文件视为底层驱动程序的抽象!所以,没有驱动程序,没有使用设备文件:(

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

相关问题