ubuntu启用USB/IP 通过网络共享USB设备--以野火鲁班猫为例

这篇具有很好参考价值的文章主要介绍了ubuntu启用USB/IP 通过网络共享USB设备--以野火鲁班猫为例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

在做机器人开发的时候经常遇到一个问题,就是机载电脑(如NUC、树莓派、Jeston等嵌入式设备)上面插入的USB设备,我们如果想把其连接在自己的电脑上面调试,有时候还要拆开机器人。我们一般都是在wifi或者网线下连接调试机器人,那有没有什么办法把USB也通过网络载上来呢?这就是USB/IP协议。

USB/IP是一种基于网络的设备共享机制,可将电脑A(server端)连接的USB设备通过网络共享给远程电脑B(client端)。

启用USB/IP

内核版本和发行版版本一致

这里的内核版本和发行版一致指的是ubuntu版本对应和linux内核版本一致,比如你是Ubuntu18,那么内核版本需要为4.15。
ubuntu usbip,ubuntu,tcp/ip,linux
一般的,烧录完整的ubuntu镜像(.iso),里面就包含了和发行版本对应的内核,所以不要担心。
这种情况下,只需要输入

sudo apt install linux-tools-virtual hwdata
sudo update-alternatives --install /usr/local/bin/usbip usbip `ls /usr/lib/linux-tools/*/usbip | tail -n1` 20

然后输入usbip help即可看到安装成功,各个命令的用法在此不再赘述。

内核和发行版版本不一致或者内核没有使能USB/IP驱动

由于笔者手里的开发板是野火鲁班猫zero,linux的内核版本为4.19.232。按照野火自己的说法是由于rk356x/rk3588推出时间并不是很久,所以Rockchip提交给kernel官方的适配也较少, 就导致芯片的很多功能并没有被实现,所以目前我们只能使用Rockchip较旧的kernel版本。但是由于我的发行版是Ubuntu22,所以没有办法直接通过apt安装,所以这就很尴尬。而且野火给的内核是没有使能USB/IP驱动的,所以我们还是需要自己重新编译、安装。

使能内核中USB/IP驱动

关于如何重新编译自己的内核,野火的文档已经写的比较详细,对嵌入式linux有研究的可以去仔细看看,我在这里只说几个重要步骤。
野火官方文档

首先进入内核的图形化配置

 make menuconfig Kmake menuconfig KCONFIG_CONFIG=arch/arm64/configs/lubancat2_defconfig ARCH=arm64

ubuntu usbip,ubuntu,tcp/ip,linux
在设备驱动的USB_support里面把相关的选项都打钩
ubuntu usbip,ubuntu,tcp/ip,linux
截图太麻烦我就直接文字标表述了

Device Drivers -> USB Support
Device Drivers -> USB Support -> USB announce new devices
Device Drivers -> USB Support -> USB Modem (CDC ACM) support
Device Drivers -> USB Support -> USB/IP
Device Drivers -> USB Support -> USB/IP -> VHCI HCD
Device Drivers -> USB Support -> USB/IP -> Host driver
Device Drivers -> USB Support -> USB/IP -> VUDC driver
Device Drivers -> USB Serial Converter Support
Device Drivers -> USB Serial Converter Support -> USB FTDI Single port Serial Driver

这里我直接把它们都编译进了kernel,不缺这点内存,免得还要手动mrobpe。

接下来编译、制作deb包之类的看野火文档即可,需要提供编译好的deb包留言或者私信笔者即可,因为项目需要,我选择的是RT-Linux的内核。
ubuntu usbip,ubuntu,tcp/ip,linux
更换内核后,查看编译时间已经改变。

安装usbip工具

使能了内核的驱动,我们还需要安装一下usbip工具。也就是原材料有了,我们需要个厨师。如前面所说,因为种种原因,我没有办法通过apt直接安装,会产生内核不适配的问题。因为apt源是为ubuntu22对应版本服务的。所以这里我们只能从usbip工具的源码进行安装。
找到我们刚刚的linux内核源码,在 tools/usb/ 下找到usbip ,这个文件夹内就是该内核的usbip源码,我们拷贝到开发板上
由于4.19内核对应的gcc的版本是7.5,我用Ubuntu22自带的gcc11编译会报错,所以需要下载gcc-7。我们在/etc/apt/sources.list文档中添加可以下载gcc-7的源。

deb https://mirrors.ustc.edu.cn/ubuntu-ports/ focal main restricted universe multiverse
#更新一下
apt update
sudo apt install gcc-7 hwdata

安装好后,由于可执行文件里面的gcc还是指向gcc-11,所以我们需要修改一下,让它暂时指向gcc-7。

#备份一下
mv /usr/bin/gcc /usr/bin/gcc.bak
#让gcc指向gcc-7
ln -s /usr/bin/gcc-7 /usr/bin/gcc

我们再gcc -v可以查看到gcc版本已经变成了7.5
ubuntu usbip,ubuntu,tcp/ip,linux
接下来我们可以开始正式安装了,在开发板上进入usbip目录,依次输入以下命令

sudo apt-get install libudev-dev
sudo chmod 777 autogen.sh configure
./autogen.sh
./configure
make -j4 && make install
#暴露动态库
echo "/usr/local/lib" >> /etc/ld.so.conf
ldconfig

再次输入usbip help
我们就可以找到了
ubuntu usbip,ubuntu,tcp/ip,linux
笔者在这给鲁班猫插入了一个u盘
ubuntu usbip,ubuntu,tcp/ip,linux
输入usbip list -l 查看本地挂载的usb设备,可以看到我的U盘
ubuntu usbip,ubuntu,tcp/ip,linux
如果你是虚拟机linux安装usbip,可以直接通过命令行安装,也在windows下安装,这里推荐一个我参考的教程,开源项目usbip-win里面的文档说的也比较清楚。
winows下使用usbip项目

由于U盘是插在开发板上面,鲁班猫开发板作为主机,所以需要在开发板上开启监听

#绑定usb设备,1-1为设备的id可以通过usbip list查看
usbip bind -b 1-1
#开启监听
usbipd

ubuntu usbip,ubuntu,tcp/ip,linux
可以看到,在端口3240开启了usb/ip的监听这个时候我们在Windows下查看远程的端口
需要保证主机和开发板可以互相ping通
在powershell输入usbip list -r <开发板ip地址>可以看到我们的设备
ubuntu usbip,ubuntu,tcp/ip,linux
然后输入usbip attach -r <开发板ip地址> -b <busid>,显示成功,然后插在鲁班猫上的u盘仿佛是直接插在了我们自己的电脑上面一样了
ubuntu usbip,ubuntu,tcp/ip,linux
ubuntu usbip,ubuntu,tcp/ip,linux
关闭连接的话,需要先 usbip port查看远程连接的usb设备端口号,然后usbip detach -r <ip> -p <端口号>
ubuntu usbip,ubuntu,tcp/ip,linux

总结

本文笔者以手头的鲁班猫zero为例,讲述了如何在这款开发板上面如何使能usb/ip功能,如果你觉得我写的不错,麻烦给个收藏关注鼓励笔者。限笔者水平有限,文中的错误还希望读者不吝啬的批评指正。文章来源地址https://www.toymoban.com/news/detail-761293.html

到了这里,关于ubuntu启用USB/IP 通过网络共享USB设备--以野火鲁班猫为例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 通过 USB 或网络控制安卓设备:无需 root 权限 | 开源日报 No.231

    Stars: 15.6k License: Apache-2.0 QtScrcpy 是一款支持通过 USB 或网络显示和控制 Android 设备的实时显示控制软件,不需要 root 权限。 其主要功能和优势包括: 轻量化(仅显示设备屏幕) 高性能(30~60 fps) 高画质(1920×1080 或更高分辨率) 低延迟(35~70ms) 快速启动时间(约 1 秒展示

    2024年04月23日
    浏览(57)
  • usb相机转为ip网络相机(ubuntu)

    首先,需要确保你的Ubuntu系统上已经安装了VLC Media Player,如果没有安装,则可以通过以下命令进行安装: 首先,我们需要找出你的USB摄像头的设备路径。可以通过运行以下命令来查找: 这将返回诸如 /dev/video0,/dev/video1 等设备路径。通常,/dev/video0 是你的主要摄像头。 在找

    2024年01月17日
    浏览(34)
  • 台式机/工控机通过网线共享笔记本电脑无线网络&linux系统下 usb网卡的驱动安装

    一、台式机/工控机通过网线共享笔记本电脑无线网络 1、 将台式机通过网线和笔记本连接。 2、 将笔记本的“本地连接”和“无线网络连接”的ipv4均设置为自动获取。 4.修改台式机的IP地址为如下(对应笔记本信息) IP地址为192.168.XXX.12 子网掩码为255.255.255.0 默认网关为192

    2024年02月14日
    浏览(100)
  • ubuntu18.04图形界面卡死,鼠标键盘失灵, 通过MAC共享网络给Ubuntu解决!

    背景 故事的起因是pip install tensorflow-gpu, 出去上个厕所的功夫,回来页面就卡死了,重启了一下,死的更彻底了,在用户登陆页面鼠标和键盘都失灵了,根本无法输入密码然后进入系统。接下来讲下处理办法。 搜索出来很多的方案都是说可以 Ctrl+Alt+F1~F6 中的任意一个, 切换

    2024年04月15日
    浏览(48)
  • 2. 如何通过公网IP&端口映射访问到设备的vmware虚拟机的ubuntu服务器

    中国移动公网IP申请过程 1. 主机设备是Windows 11系统 2. 安装vmware虚拟机 3. 创建ubuntu虚拟机(据说CentOS 7 明年就不维护了,就不用这个版本的linux了) 4. 安装nginx服务:默认端口80 5. 安装ssh服务:默认端口22 6. 设置主机 - ubuntu的端口映射 7. 设置路由器 - 主机的端口映射 8. 完成配置

    2024年02月05日
    浏览(53)
  • USB Redirector本地安装并结合内网穿透实现远程共享和访问USB设备

    USB Redirector是一款方便易用的USB设备共享服务应用程序,它提供了共享和访问本地或互联网上的USB设备的功能。通过使用USB Redirector可以结合cpolar内网穿透,用户可以远程访问USB设备,就好像这些设备直接连接在他们的计算机上一样。该软件支持多种USB设备的共享,包括存储设

    2024年01月16日
    浏览(41)
  • linux启用NAT功能,双网卡共享网络,iptables简单实现

    最近在研究linux双网卡共享网络的情况 简单来说就是一台linux有两块网卡,比如eth0及eth1,eth0可以正常连接外网,eth1连接内部网络,那么可以通过iptables实现eth1内部网络上的设备共享eth0的网络,即linux充当网关的作用 此处研究网络上的教程一大堆,利用iptables增加了很多条规

    2023年04月08日
    浏览(36)
  • Ubuntu无法加载exfat的USB存储设备

    当接入设备USB存储设备提示: 不能挂在63GB 卷 Error mounting /dev/sdb1 at /media/ubuntu/83C9-26F4: Command-line `mount -t \\\"exfat\\\" -o \\\"uhelper=udisks2,nodev,nosuid,uid=1000,gid=1000,iocharset=utf8,namecase=0,errors=remount-ro,umask=0077\\\" \\\"/dev/sdb1\\\" \\\"/media/buntu/83C9-26F4\\\"\\\' exited with non-zero exit status 32: mount: unknown filesystem type \\\'e

    2024年02月09日
    浏览(53)
  • Ubuntu下使用Virtual Box中显示没有可用的USB设备

    Ubuntu中使用 Virtual Box ,但是使用到 USB 时只有 USB1.1 可以使用,并且提示没有可以使用的 USB 设备,解决方法如下 下载并安装 Vitrual Box 提供的功能扩展包 分别点击帮助-关于,查看当前使用的版本 进入到 Virtual Box 官网下载链接 根据自己的版本找到对应的版本信息,博主用的

    2024年01月23日
    浏览(41)
  • 如何通过IP共享文件

    电脑1:建立共享文件的电脑 电脑2:查看电脑1中共享文件的电脑 以下为需要在电脑1上进行的操作: 打开CMD(命令提示符) 使用快捷键WINDOS+R 或者通过右键开始-单击运行-输入cmd的方式打开命令提示符,出现如下界面   直接输入shrpubw回车出现如下界面-点击下一页 然后点击浏览选

    2024年02月05日
    浏览(33)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包