首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在码头使用Usbip

在码头使用Usbip
EN

Stack Overflow用户
提问于 2017-03-21 22:04:15
回答 2查看 3.2K关注 0票数 0
  1. 我的桌子上有一个硬件开发工具包,通过USB连接到我的Windows笔记本电脑上。开发工具包允许您通过USB闪存芯片。我想使用usbip将这个设备暴露到我的服务器环境中。
  2. 在我的Windows上,我使用USBIP服务器运行virtualbox。我已经绑定了hw开发工具包。服务器正在监听由Virtual转发到主机(膝上型计算机)端口7023的3240端口
  3. 使用SSH登录到我的服务器。我已经设置了一个SSH远程隧道,这样服务器上的端口3240将向笔记本上的端口7023发送请求。

摘要

USBIP服务器端口3240 --虚拟盒->膝上型计算机端口7023 <-SSH -R :3240:localhost:7023

在服务器上,这是工作的:

代码语言:javascript
复制
sudo /usr/lib/linux-tools-4.4.0-66/usbip --tcp-port 3240 attach -r 127.0.0.1 -b 1-2
dinne@vidar:~$ lsusb
Bus 005 Device 002: ID 04f2:b39a Chicony Electronics Co., Ltd

现在,在服务器上,有一个Docker容器正在运行。这些容器有一个开发环境,我可以用它为hw工具包编译程序。我想将编译后的应用程序闪现到开发工具包中。

每个用户都将在服务器上拥有自己的dev容器和本地安装的dev工具包。因此,我想避免使用usbip将虚拟USB设备直接附加到服务器上。相反,如果用户能够在Docker容器中运行usbip,这将是非常理想的。

在Docker容器中,我尝试了以下方法:

代码语言:javascript
复制
sudo usbip --tcp-port 3240 list -r 192.168.96.101

Exportable USB devices
======================
 - 192.168.96.101
        1-2: Chicony Electronics Co., Ltd : unknown product (04f2:b39a)
           : /sys/devices/pci0000:00/0000:00:06.0/usb1/1-2
           : Miscellaneous Device / ? / Interface Association (ef/02/01)

sudo usbip --debug --tcp-port 3240 attach -r 192.168.96.101 -b 1-2

usbip: info: using port 3250 ("3250")
usbip: debug: /build/linux-tools-SJqEHJ/linux-tools-3.16.7-ckt20/drivers/staging/usbip/userspace/src/usbip_network.c:40:[usbip_setup_port_number] parsing port arg '3250'
usbip: info: using port 3250 ("3250")
usbip: debug: /build/linux-tools-SJqEHJ/linux-tools-3.16.7-ckt20/drivers/staging/usbip/userspace/src/usbip.c:141:[run_command] running command: `attach'
libusbip: debug: /build/linux-tools-SJqEHJ/linux-tools-3.16.7-ckt20/drivers/staging/usbip/userspace/libsrc/vhci_driver.c:242:[usbip_vhci_driver_open] available ports: 7
libusbip: debug: /build/linux-tools-SJqEHJ/linux-tools-3.16.7-ckt20/drivers/staging/usbip/userspace/libsrc/vhci_driver.c:71:[parse_status] port 0 status 4 speed 0 devid 0
libusbip: debug: /build/linux-tools-SJqEHJ/linux-tools-3.16.7-ckt20/drivers/staging/usbip/userspace/libsrc/vhci_driver.c:72:[parse_status] socket 0 lbusid 0000000000000000
libusbip: debug: /build/linux-tools-SJqEHJ/linux-tools-3.16.7-ckt20/drivers/staging/usbip/userspace/libsrc/vhci_driver.c:71:[parse_status] port 1 status 4 speed 0 devid 0
libusbip: debug: /build/linux-tools-SJqEHJ/linux-tools-3.16.7-ckt20/drivers/staging/usbip/userspace/libsrc/vhci_driver.c:72:[parse_status] socket 0 lbusid 0000000000000000
libusbip: debug: /build/linux-tools-SJqEHJ/linux-tools-3.16.7-ckt20/drivers/staging/usbip/userspace/libsrc/vhci_driver.c:71:[parse_status] port 2 status 4 speed 0 devid 0
libusbip: debug: /build/linux-tools-SJqEHJ/linux-tools-3.16.7-ckt20/drivers/staging/usbip/userspace/libsrc/vhci_driver.c:72:[parse_status] socket 0 lbusid 0000000000000000
libusbip: debug: /build/linux-tools-SJqEHJ/linux-tools-3.16.7-ckt20/drivers/staging/usbip/userspace/libsrc/vhci_driver.c:71:[parse_status] port 3 status 4 speed 0 devid 0
libusbip: debug: /build/linux-tools-SJqEHJ/linux-tools-3.16.7-ckt20/drivers/staging/usbip/userspace/libsrc/vhci_driver.c:72:[parse_status] socket 0 lbusid 0000000000000000
libusbip: debug: /build/linux-tools-SJqEHJ/linux-tools-3.16.7-ckt20/drivers/staging/usbip/userspace/libsrc/vhci_driver.c:71:[parse_status] port 4 status 4 speed 0 devid 0
libusbip: debug: /build/linux-tools-SJqEHJ/linux-tools-3.16.7-ckt20/drivers/staging/usbip/userspace/libsrc/vhci_driver.c:72:[parse_status] socket 0 lbusid 0000000000000000
libusbip: debug: /build/linux-tools-SJqEHJ/linux-tools-3.16.7-ckt20/drivers/staging/usbip/userspace/libsrc/vhci_driver.c:71:[parse_status] port 5 status 4 speed 0 devid 0
libusbip: debug: /build/linux-tools-SJqEHJ/linux-tools-3.16.7-ckt20/drivers/staging/usbip/userspace/libsrc/vhci_driver.c:72:[parse_status] socket 0 lbusid 0000000000000000
libusbip: debug: /build/linux-tools-SJqEHJ/linux-tools-3.16.7-ckt20/drivers/staging/usbip/userspace/libsrc/vhci_driver.c:71:[parse_status] port 6 status 4 speed 0 devid 0
libusbip: debug: /build/linux-tools-SJqEHJ/linux-tools-3.16.7-ckt20/drivers/staging/usbip/userspace/libsrc/vhci_driver.c:72:[parse_status] socket 0 lbusid 0000000000000000
libusbip: debug: /build/linux-tools-SJqEHJ/linux-tools-3.16.7-ckt20/drivers/staging/usbip/userspace/libsrc/vhci_driver.c:71:[parse_status] port 7 status 4 speed 0 devid 0
libusbip: debug: /build/linux-tools-SJqEHJ/linux-tools-3.16.7-ckt20/drivers/staging/usbip/userspace/libsrc/vhci_driver.c:72:[parse_status] socket 0 lbusid 0000000000000000
libusbip: debug: /build/linux-tools-SJqEHJ/linux-tools-3.16.7-ckt20/drivers/staging/usbip/userspace/libsrc/vhci_driver.c:105:[parse_status] exit
libusbip: debug: /build/linux-tools-SJqEHJ/linux-tools-3.16.7-ckt20/drivers/staging/usbip/userspace/libsrc/vhci_driver.c:311:[usbip_vhci_attach_device2] writing: 0 3 65539 2
libusbip: debug: /build/linux-tools-SJqEHJ/linux-tools-3.16.7-ckt20/drivers/staging/usbip/userspace/libsrc/vhci_driver.c:316:[usbip_vhci_attach_device2] attach attribute path: /sys/devices/platform/vhci_hcd/attach
usbip: debug: /build/linux-tools-SJqEHJ/linux-tools-3.16.7-ckt20/drivers/staging/usbip/userspace/libsrc/sysfs_utils.c:17:[write_sysfs_attribute] error opening attribute /sys/devices/platform/vhci_hcd/attach
libusbip: debug: /build/linux-tools-SJqEHJ/linux-tools-3.16.7-ckt20/drivers/staging/usbip/userspace/libsrc/vhci_driver.c:320:[usbip_vhci_attach_device2] write_sysfs_attribute failed
usbip: error: import device
usbip: error: query

看起来,open(“/sys/设备/platform/vhci_hcd/O_WRONLY”)正在失败。

代码语言:javascript
复制
sudo -- sh -c "ls -al /sys/devices/platform/vhci_hcd/"
drwxr-xr-x  4 root root    0 Mar 21 22:00 .
drwxr-xr-x 19 root root    0 Mar 21 21:21 ..
--w-------  1 root root 4096 Mar 21 22:00 attach
--w-------  1 root root 4096 Mar 21 22:00 detach
lrwxrwxrwx  1 root root    0 Mar 21 22:00 driver -> ../../../bus/platform/drivers/vhci_hcd
-rw-r--r--  1 root root 4096 Mar 21 22:00 driver_override
-r--r--r--  1 root root 4096 Mar 21 22:00 modalias
drwxr-xr-x  2 root root    0 Mar 21 22:00 power
-r--r--r--  1 root root 4096 Mar 21 21:21 status
lrwxrwxrwx  1 root root    0 Mar 21 22:00 subsystem -> ../../../bus/platform
-rw-r--r--  1 root root 4096 Mar 21 21:21 uevent
drwxr-xr-x  5 root root    0 Mar 21 22:00 usb5
-rw-r--r--  1 root root 4096 Mar 21 22:00 usbip_debug

如何使USBIP客户端在Docker容器中工作?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-22 07:10:05

如果我和.特权公司一起经营码头的话,这似乎是可行的。

票数 2
EN

Stack Overflow用户

发布于 2019-09-18 07:57:22

库伯奈特身上也有同样的问题。事实证明,/sys是只读的(即使是特权的)。我通过添加/sys作为带有主机路径的卷来解决这个问题(在码头上,它是"-v /sys:/sys")。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42938992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档