马春杰杰博客
致力于深度学习经验分享!

[mcj]Ubuntu16.04使用LXD/LXC容器连接USB

我需要将我的USB接口暴露给我的LXD容器,而我正在使用Ubuntu 16.04机器。运行“lsusb”,我可以在主机和容器上看到相同的接口。

在我的容器内我使用的软件利用了这个USB接口(和相关的连接设备),但在执行阶段,一条消息告诉:

“USB打开失败:权限不足””USB open failed: insufficient permissions”

下面以添加PS3控制器为例,描述如何将PS3设备添加进容器内

首先,我们需要找到我们的设备信息。即它vendoridproductid 所以让我们跑lsusb

输出应该类似于:

对于我们的容器,我们对ID部分感兴趣。所以在我的情况下 054c:0268

054c将是我们的“工厂”,而且 0268 是我们的“产品”

因此,根据配置文档,我们最终应该使用这样的命令来添加我们的设备

只指定了vendorid,它将添加具有匹配的vendorid的所有设备。如果您只想要那个特定的设备,您也可以指定productid。

所以对于我的情况(显示一个具体的例子)我有:

ContainerName是“pcsx2”,DeviceName可以是你想要的任何东西,它不需要对任何东西进行处理,所以设置为“ps3controllerblack”

最后要注意的是,即使将设备添加到容器中,为了使控制器正常工作,还需要将它的设备文件添加到容器中。

所以必须找到设备文件,确定它的类型(unix-char或unix-block),然后添加它。

我的控制器提供了一个字符设备,/dev/input/js0 所以命令最终是:

有了它,我应该可以访问我的USB设备。可能需要向配置中添加更多内容并指定模式,uid或gid,以便容器中的适当用户可以访问它。

如果您碰巧在命令中输入了错误信息并需要执行此操作,请首先删除该设备,然后重试

例如:

如果是要在LXD容器中进行Android编程,可以参考这个:

https://stgraber.org/2017/03/27/usb-hotplug-with-lxd-containers/

本文最后更新于2019年5月21日,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!

如果你对这篇文章有什么疑问或建议,欢迎下面留言提出,我看到会立刻回复!

打赏
未经允许不得转载:马春杰杰 » [mcj]Ubuntu16.04使用LXD/LXC容器连接USB
超级便宜的原生ChatGPT4.0

留个评论吧~ 抢沙发 评论前登陆可免验证码!

私密评论
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址(选填,便于回访^_^)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

登录

忘记密码 ?

切换登录

注册