gpt4 book ai didi

linux - Docker 中的 Usbip

转载 作者:太空宇宙 更新时间:2023-11-04 10:23:12 29 4
gpt4 key购买 nike

  1. 我 table 上有一个硬件开发工具包,它通过 USB 连接到我的 Windows 笔记本电脑。开发工具包允许您通过 USB 闪存芯片。我想使用 usbip 将此设备公开到我的服务器环境。

  2. 在我的 Windows PC 上,我运行一个带有 USBIP 服务器的 virtualbox。我已经绑定(bind)了硬件开发工具包。服务器正在监听端口 3240,该端口由 Virtual Box 转发到主机(笔记本电脑)端口 7023

  3. 我使用 SSH 登录我的服务器。我设置了 SSH 远程隧道,以便服务器上的端口 3240 将请求发送到笔记本电脑上的端口 7023。

总结

USBIP server port 3240 --Virtual Box--> laptop port 7023 <--SSH -R :3240:localhost:7023

在服务器上这是有效的:

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 容器。这些容器有一个开发环境,我可以用它为硬件开发工具包编译程序。我想将编译后的应用程序闪存到开发工具包。

每个用户都将在服务器上拥有他/她自己的开发容器和本地安装的开发工具包。所以我想避免使用 usbip 直接在服务器上连接虚拟 USB 设备。如果用户可以在 Docker 容器内运行 usbip,那将是理想的。

在 Docker 容器中我尝试了这个:

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/devices/platform/vhci_hcd/attach", O_WRONLY) 失败了。

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 容器中工作?

最佳答案

如果我使用 --privileged 运行 docker,它似乎可以工作。

关于linux - Docker 中的 Usbip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42938992/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com