实验一:Ubuntu系统中的USB设备绑定实验

在这里插入图片描述


一、实验目的

  1. 学习Ubuntu中USB设备命名方法;
  2. 掌握不同USB设备绑定方法;
  3. 掌握相同串口USB设备绑定方法

二、实验原理

一般情况,在Ubuntu系统中会有多个USB设备连接到主机上,如果仅仅用端口序号识别设备的话,因为序号分配是随机的,一旦出现断电或者重新插拔设备情况,代码就会出现找不到设备或者找错设备的错误。为了解决这个问题,采用将不同设备的属性信息绑定到usb序号上,通过绑定后的别名去查找设备。
本实验的主要内容是实现不同USB设备的绑定以及相同串口的USB设备的绑定。

三、实验环境

电脑笔记本,ROS开发环境。

四、实验步骤

任务 1:绑定不同USB设备

(1)使用lsusb查看接入设备名称;

lsusb

在这里插入图片描述
(2)使用dmesg | grep usb命令,找到刚查看的设备kernel和id;

dmesg | grep

(3)在/etc/udev/rules.d文件夹下新建规则文件xxxx.rules(xxxx为自定义命名);

sudo vi/etc/udev/rules.d/usb.rules 

(4)在文件中添加以下字段后保存;

KERNEL=="ttyUSB*",ATTRS{idVendor}=="10c4",ATTRS{idProduct}=="ea60", MODE:="0777",SYMLINK+="lds1"

也可以使用终端直接输入:

echo'KERNELS=="ttyUSB*",ATTRS{idVendor}=="10c4",ATTRS{idProduct}=="ea60", MODE:="0777", SYMLINK+="lds1"' >/etc/udev/rules.d/xxxx.rules

(5)使用以下命令重新加载dev规则

sudo udevadm control --reload-rules && udevadm trigger

(6)将USB端口重新插拔,使用sudo ls -l /dev | grep xxxx查看是否绑定成功(xxxx为绑定的新名称)。

sudo ls -l /dev | grep xxx

任务 2:绑定多个相同设ID的串口设备

(1)dmesg – 打印 USB 设备名。查看每个串口设备对应的kernel和id
在这里插入图片描述(2)在udev文件中加入如下代码

KERNELS=="2-7.3",MODE:="0666",GROUP:="dialout", SYMLINK+="ttyUSB001"

(3)重新加载udev文件。

sudo udevadm control --reload-rules && udevadm trigger

五、注意事项

可以在同一个.rules文件中添加多个绑定哟,适用同一主机接入多个不同设备

六、拓展练习

1.学习启用USB/IP通过网络共享USB设备。

### 配置Ubuntu和Windows作为虚拟机 #### 安装VirtualBox 为了在同台电脑上运行多个操作系统,推荐使用VirtualBox这样的虚拟化软件。首先,在宿主机上安装VirtualBox: ```bash sudo apt-get update sudo apt-get install virtualbox ``` 这步骤确保了拥有个可靠的平台来创建并管理虚拟环境[^3]。 #### 创建Windows虚拟机 1. 打开VirtualBox程序,点击“新建”,为新的虚拟机命名(例如:“Win10_VM”),选择类型为Microsoft Windows,并指定版本。 2. 分配足够的RAM给新虚拟机;对于大多数应用来说,8 GB是个合理的选择。 3. 设置硬盘大小,建议至少分配80 GB的空间以满足不同用途的需求。 4. 插入Windows ISO映像文件启动光驱,以便可以从该介质引导并开始安装过程。 5. 启动虚拟机完成操作系统的初始设置向导。 需要注意的是,由于ISO文件通常是较大尺寸的镜像文件,如果通过USB驱动器传输,则需注意其文件系统兼容性问题。通常情况下,FAT32格式不支持大于4GB单个文件写入,因此最好直接在网络环境下获取ISO资源或采用其他方式绕过此限制。 #### 创建Ubuntu虚拟机 遵循类似的流程建立第二个虚拟机实例用于承载Linux发行版——Ubuntu: 1. 类似于创建Windows VM的方式,定义个新的虚拟设备命名为如“Ubuntu_VM”, 选择Type为Linux, Version设为对应的Ubuntu版本号. 2. 继续调整硬件资源配置直至满意为止; 对于开发工作负载而言,同样给予充足的内存份额(比如8GB), 并预留适当容量供根分区及其他组件扩展之用 (不少于20GB). 3. 加载官方发布的最新稳定版Ubuntu Server/Desktop .iso至CD/DVD控制器路径下准备初始化部署. 4. 开启VM依照屏幕指示逐步推进直到结束. #### 实现两者的网络互通 为了让这两个独立运作着各自OS内核的服务端能够互相访问对方所提供的服务或者共享某些特定类型的I/O接口(譬如说串行通讯端口),需要做额外的工作来搭建起它们之间的桥梁[^1]: - **配置NAT模式下的端口转发** 如果仅是为了测试目的或是临时性的数据交换活动,那么利用内置的Network Address Translation(NAT)机制即可实现基本层面的功能需求。只需进入相应Guest OS 的网络适配器属性页面开启高级选项卡内的Port Forwarding Rules编辑框,添加条规则将Host端监听地址绑定到Target Guest IP 上某固定开放端口号就可以了。 - **桥接网卡(Bridged Adapter)** 更加贴近实际应用场景的做法是选用Bridge Mode连接外部物理交换层,这样做的好处在于每台VM都会被赋予独无二的真实MAC 地址从而可以直接参与局域网内部的数据包收发事务当中去。不过这样做可能会涉及到更复杂的路由策略规划以及防火墙规则设定等问题。 - **Host-only Adapter** 当希望构建封闭式的实验环境而不暴露任何对外部世界的敞口时,host-only adapter提供了种理想解决方案。它允许所有关联于此自定义子网中的成员间自由通信的同时又保持与外界隔离的状态。 最后值得注意的点是在Ubuntu中启用SSH服务器功能之后才能顺利建立起基于TCP/IP协议栈的安全shell会话链接,这对于远程管理和调试至关重要[^2]: ```bash sudo apt update && sudo apt install openssh-server -y ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值