linux控制USB的绑定/解绑

http://www.jianshu.com/p/57293f9be558

今天工作中遇到一个问题, 要用代码实现USB的enable和disable. 谷歌了一番, 最终找到理想答案, 我在这里做一个简短porting. 来源:墙外某博

  • 首先通过lsusb -t来查看USB端口信息:

      /:  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, 来确定到底是哪个BUS的哪个port.)
    在这里我要操作BUS 02的port 1下的port 6.

  • 执行以下command去unbind这个USB:
    echo '2-1.6' | sudo tee /sys/bus/usb/drivers/usb/unbind

    其实用不用tee都行, 直接重定向也可以. 需要注意的是, 所要echo的字符串:"$bus_num"-"$port1_num"."$port2_num"
    大概是这么个format.

  • 重新bind的command, 只需要把上面command中的unbind改成bind.
    echo '2-1.6' | sudo tee /sys/bus/usb/drivers/usb/bind

That's it.

Knowledge from work

© 著作权归作者所有
举报文章

关注
Edward_f0cus

写了 15596 字,被 17 人关注,获得了 34 个喜欢

sort of 非主流programmer. 喜欢美和思考。

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

作者:Edward_f0cus
链接:http://www.jianshu.com/p/57293f9be558
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

linux控制USB的绑定/解绑的更多相关文章

  1. jQuery---jQ动画(普通,滑动,淡入淡出,自定义动画,停止动画),jQuery的事件,jQ事件的绑定/解绑,一次性事件,事件委托,事件冒泡,文档加载

    jQuery---jQ动画(普通,滑动,淡入淡出,自定义动画,停止动画),jQuery的事件,jQ事件的绑定/解绑,一次性事件,事件委托,事件冒泡,文档加载 一丶jQuery动画 show,hide, ...

  2. Android -- Service绑定解绑和aidl

    Service是安卓四大组件之一,先前讲到了Service的生命周期,以及非绑定类型的生命周期的例子,这次来分享一下绑定形式的. 应用组件(客户端)可以调用bindService()绑定到一个serv ...

  3. 手写instanceof (详解原型链) 和 实现绑定解绑和派发的事件类

    A  instanceof  B    是判断  A  是否继承自B,是返回true,  否返回false 再精确点就是判断B   是否  再  A  的 原型链上, 什么是原型链,举个例子: 我们定 ...

  4. bind() unbind()绑定解绑事件

    .bind( eventType [, eventData], handler(eventObject)) 本文实例分析了JQuery中Bind()事件用法.分享给大家供大家参考.具体分析如下: .B ...

  5. 19 01 16 jquery 的 属性操作 循环 jquery 事件 和事件的绑定 解绑

    jquery属性操作 1.html() 取出或设置html内容 // 取出html内容 var $htm = $('#div1').html(); // 设置html内容 $('#div1').htm ...

  6. linux usb 驱动详解

    linux usb 驱动详解 USB 设备驱动代码通过urb和所有的 USB 设备通讯.urb用 struct urb 结构描述(include/linux/usb.h ). urb 以一种异步的方式 ...

  7. 兼容8事件绑定与解绑addEventListener、removeEventListener和ie的attachEvent、detachEvent

    兼容8事件绑定与解绑addEventListener.removeEventListener和ie的attachEvent.detachEvent   ;(function(){ // 事件绑定 bi ...

  8. jquery中的DOM事件绑定与解绑

    在jquery事件中有时候有的事件只需要在绑定后有效触发一次,当通过e.target判断触发条件有效触发后解除绑定事件,来避免多次无效触发和与未知情况造成冲突. 这时候就要用到了jquery中的事件绑 ...

  9. jquery中事件重复绑定以及解绑问题

    一般的情况下,对于这种情况,我们常规的思路是,先解绑,再绑定,如下: $(selector).unbind('click').bind('click',function(){....}); 当这样会有 ...

随机推荐

  1. Vue中div高度自适应

    Vue中尽量不使用dom的高度计算 <template> <div :style="conheight"> </template> <sc ...

  2. 九度OJ 1054:字符串内排序 (排序)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:7949 解决:4343 题目描述: 输入一个字符串,长度小于等于200,然后将输出按字符顺序升序排序后的字符串. 输入: 测试数据有多组,输 ...

  3. tcp/ip (网络通讯协议)

    介绍 TCP: 传输控制协议, IP: 网际协议, TCP/IP: 供已连接互联网的计算机之间进行通信的通信协议 在tcp/ip内部 , 包含一系列处理数据通信的协议: tcp.udp.icmp.dh ...

  4. 前端mvc组合框架

    1. jquery 2. underscore 3. backbone 4. reactjs 5. seajs

  5. ubuntu 下解决sublime v3 中文输入法时 退格键删除不了拼音的问题

    ubuntu下,sulime想要支持中文需要这样设置: 1.安装中文输入解决的github git clone https://github.com/lyfeyaj/sublime-text-imfi ...

  6. 题解 CF576C 【Points on Plane】

    题解 CF576C [Points on Plane] 一道很好的思维题. 传送门 我们看这个曼哈顿距离,显然如果有一边是按顺序排列的,显然是最优的,那另一边怎么办呢? 假如你正在\(ioi\)赛场上 ...

  7. 我的Android进阶之旅------>报 error: Apostrophe not preceded by \ 的错误解决办法

    今天对项目进行国际化翻译的时候控制台出现了以下的错误: res/values/strings.xml:100: error: Apostrophe not preceded by \ (in Sorr ...

  8. 流畅的python学习笔记第八章:深拷贝,浅拷贝,可变参数

    首先来看赋值,浅拷贝,深拷贝. 一赋值: a=['word',2,3] b=a print id(a),id(b) print [id(x) for x in a] print [id(x) for ...

  9. 一起来学linux:进程

    简单来说,每当执行一个程序或者命令,启动事件的时候都会得到一个PID,也就是进程ID.比如用户登陆的时候就会得到一个PID.如下所示.两个用户zhf和root在登陆后分别获得PID 3212和3214 ...

  10. SQL 中GROUP BY 、ROLLUP、CUBE 关系和区别

    转自:http://www.cnblogs.com/dyufei/archive/2009/11/12/2573974.html 不言自明,看SQL就完全理解了,不需要过多解释,不错,分享之: ROL ...