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

[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/

赞(240) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《[mcj]Ubuntu16.04使用LXD/LXC容器连接USB》
文章链接:https://www.machunjie.com/linux/54.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

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

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

:smile: :sad: :arrow: :cool: :confused: :cry: :eek: :evil: :exclaim: :idea: :lol: :mad: :mrgreen: :neutral: :question: :razz: :redface: :rolleyes: :surprised: :wink: :biggrin: :twisted: