【问题标题】:USB Linux API: call ioctl requests from user space appUSB Linux API:从用户空间应用调用 ioctl 请求
【发布时间】:2019-07-09 10:34:53
【问题描述】:

我想创建负责获取/设置一些 USB 设置的 Linux 应用程序,尤其是负责以下设置的设置:

  • USB 端口

  • USB 主机控制器和 USB 驱动程序

  • USB 设备

我跟着linux api文档:https://www.kernel.org/doc/html/v4.14/driver-api/usb/usb.html发现可以通过ioctl完成 我找到了一个 ioctl 请求列表,例如 USBDEVFS_GETDRIVER。

我发现如果我想要第一个小测试,可以这样:

struct usbdevfs_getdriver usbdriver;
int fd = open("device_file_name", O_RDWR);
ioctl(fd, USBDEVFS_GETDRIVER, (struct usbdevfs_getdriver*) &usbdriver);

这是正确的方法吗?我的代码第二行中的 device_file_name 应该是什么?

【问题讨论】:

    标签: c linux usb driver ioctl


    【解决方案1】:

    字符串device_file_name 应替换为USB 设备节点文件的路径。您提到的文档解释说,此类文件的路径类似于/dev/bus/usb/BBB/DDD

    您应该检查openioctl 返回的值以查看操作是否成功。

    【讨论】:

      【解决方案2】:

      device_file_name:应该是挂载usb的文件。通常它位于/mnt/ 下。 您可以使用命令 dmesg。

      【讨论】:

        猜你喜欢
        • 2011-02-11
        • 2012-06-21
        • 2012-08-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-10
        • 2017-05-05
        相关资源
        最近更新 更多