linux中USB设备的绑定和解绑(类似于Windows中disable和enable)
2024-09-02
54
前言
在Linux中要通过命令实现USB设备的enable和disable,类似于在Windows设备管理器中禁用再启动设备一样,在某些场景,如调试USB固件时,重新加载了固件时,又不希望物理上插拔设备时,可以采用绑定和解绑这种方式。具体实现如下。
查看USB端口的信息
通过lsusb -t命令来查看当前系统中的USB设备的列表的信息,示例如下:
root@ferris-pc# lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
|__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/8p, 480M
|__ Port 6: Dev 78, If 0, Class=vend., Driver=, 480M
|__ Port 6: Dev 78, If 1, Class=vend., Driver=usbfs, 480M
|__ Port 6: Dev 78, If 2, Class=comm., Driver=cdc_acm, 480M
|__ Port 6: Dev 78, If 3, Class=data, Driver=cdc_acm, 480M
|__ Port 6: Dev 78, If 4, Class=comm., Driver=cdc_acm, 480M
|__ Port 6: Dev 78, If 5, Class=data, Driver=cdc_acm, 480M
|__ Port 6: Dev 78, If 6, Class=comm., Driver=cdc_acm, 480M
|__ Port 6: Dev 78, If 7, Class=data, Driver=cdc_acm, 480M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
|__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/6p, 480M
|__ Port 1: Dev 6, If 0, Class=HID, Driver=usbhid, 1.5M
|__ Port 1: Dev 6, If 1, Class=HID, Driver=usbhid, 1.5M
|__ Port 3: Dev 9, If 0, Class=HID, Driver=usbhid, 1.5M
如果不确定要控制的USB是哪一个,可以通过手动插拔一下该设备,每个USB硬件端口,port号都是固定的。比如,这里,我们要操作USB 02的port1下的port6上的设备。
执行unbind USB设备的命令
unbind相当于disable,通过以下命令来实现:
echo 2-1.6 | sudo tee /sys/bus/usb/drivers/usb/unbind
这里用不用tee命令都可以,也可以直接重定向。 需要注意的是, echo后面的字符串:“busnum−port1_num”.“$port2_num”,以这样的格式。
重新bind USB设备的命令
bind相当于enable,只需要吧上面的命令中的unbind改为bind执行即可。
echo 2-1.6 | sudo tee /sys/bus/usb/drivers/usb/bind
赞一波!
相关文章
- 【说站】java动态绑定如何理解?
- 【说站】java静态绑定是什么
- 【说站】java静态和动态绑定的对比
- 绑定公众号的网页开发者
- v-model 创建双向绑定
- Vue 指令之v-bind指令绑定属性
- v-bind 绑定 class、style 属性
- Linux下不写驱动如何访问PCI/PCIe设备的内存空间
- kanCloud(看云文档)专业版文档域名绑定
- 在Linux中使用C#(mono)进行组播通讯时如何绑定到指定网卡
- Linux中libusb读写CDC类型USB设备的代码及解析
- 硬件负载均衡设备的工作原理与应用场景
- 直播需要哪些设备:必备设备清单及其重要性详解
- USB设备通用测试工具和万能驱动
- STM32CubeMx生成的USB CDC代码修改为WINUSB设备
文章评论
评论问答