gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 00:33:15 27 4
gpt4 key购买 nike

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

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

我希望一旦/dev/USB 或 udev 设备文件打开,就可以通过文件类型读/写命令直接读/写协议(protocol)数据包来使用 USB 设备协议(protocol)进行通信。

请提出想法和建议。

跟进:

由于我需要与之通信的 USB 设备是 USB HID 类设备,因此我能够通过直接读取/写入/dev/hidraw0(或适当的/dev/隐藏设备)。没有必要为简单的 USB HID 设备编写自定义驱动程序。

最佳答案

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

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

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

  2. http://www.linuxjournal.com/article/4786 (有点过时了)

关于linux - 访问 Linux/dev/USB 作为标准文件与 USB 设备通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9540267/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com