【问题标题】:usb_claim_interface() on Raspberry Pi树莓派上的 usb_claim_interface()
【发布时间】:2015-03-04 04:59:17
【问题描述】:

我正在尝试让 USB HID 设备在 Raspberry Pi 上工作。

代码利用了 MacOSX/Linux/Windows 的 RawHID 库。

我让它在 MacOSX 上运行,但由于其他原因,我不能再在那个操作系统上使用它。现在我正试图通过hid_LINUX.c 让它在 Raspberry Pi 上工作。

当我尝试它时,它完全无法连接。我添加了调试信息,发现这里失败了:

if (usb_claim_interface(u, i) < 0) {          
    printf("  unable claim interface %d\n", i); 
    continue;                                   
}

我用谷歌搜索了很长时间,我看到了很多关于...的东西

  • modprobe.d 黑名单(没用,虽然它正在寻找 rtl 设备...不确定)
  • 更新所有软件包(无效)
  • 编译您自己的libhid 版本(考虑到USB 设备的创建者推荐了这个使用libusb-dev (usb.h) 的RawHID 库,我不知道为什么我必须这样做在 OS X 和 Windows 上运行良好)

有没有人对我可以如何进行有任何可能的想法?如何“释放”我的 USB 设备以便领取它?

我有一个树莓派 B+

【问题讨论】:

  • 我面临着完全相同的问题。我正在尝试用我的 RPi 读取温度传感器。能解决这个问题吗?
  • 我解决了,但那是几年前的事了,所以我不知道我做了什么:/
  • 感谢您的回复。现在我通过使用sudo 权限运行代码来解决它;)

标签: linux usb raspberry-pi raspbian hid


【解决方案1】:

显然我不能发表评论(声誉不足)所以我回答: 终于通过上面的评论“现在我通过运行带有sudo权限的代码解决了这个问题”找到了我的问题的原因,所以我很感激!

我为 Domoticz 使用 Pi 3b 超过 3 年。 (之前在 PC 上使用相同的软件)更新失败后,然后重新安装,我的 CM15 Domoticz 接口(通过 USB 连接)将被识别为存在 lsusb,但无法工作。我从 USB 密钥启动我的 PI,所以可能 - 非常旧的 - USB 密钥失败了,所以我买了一个新的 USB 3.0 密钥。没有喜悦。 USB 3.0 耗电更多,可能会耗尽我的 CM15 的 USB 电源,所以我买了更大的电源。没有解决问题。所以我买了一个新的存储卡,没有变化。 搜索“usb_claim_interface failed -6 mochad”将我带到这里以获得正确的诊断以及使其“手动”工作的方法 还没有解决方案;通常,libusb 在发现连接了新的 USB 设备时会启动“接口”软件(mochad),但“认领它”显然现在需要更多权限。现在我明白了这个问题,我会找到答案。 非常感谢您为丹尼斯特拉指明道路!

【讨论】:

    猜你喜欢
    • 2012-12-04
    • 2014-01-18
    • 2015-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多