USB相关的sysfs文件
主要来自driver/usb/core/sysfs.c:
1.bConfigurationValue
RW,W时调用了usb_set_configuration()实时设置配置。根据USB规范(例如第9.1.1.5节),configuration values必须是非零值,值为零表示设备处于未配置状态。但是,某些设备错误地使用0作为其配
置值之一。 为帮助管理此类设备,此函数将接受@configuration = -1,表示设备应处于未配置状态。
未授权的设备(dev->authorized == 0)将仅被设置为未配置模式。
# echo 0 > bConfigurationValue 此时U盘的设备文件消失
# echo 1 > bConfigurationValue 此时从新进行类似的U盘插入识别过程
配置这个文件就可以实现U盘的模拟插拔!!
/sys/devices/platform/soc/ee080100.usb/usb1/1-1/bConfigurationValue
配置这个文件就可以实现Android Carlife的模拟插拔!!
/sys/devices/platform/soc/ee080100.usb/usb1/(1-1/)bConfigurationValue
2.# cat ./1-1/power/connected_duration
记录了从USB设备连接上后到现在持续的事件
3.# cat ./1-1/power/active_duration
active状态持续的时间
4.# cat ./1-1/power/level
RW,设置autosuspend模式是on还是auto
5.authorized
RW,同样能起到模拟U盘插拔的效果
Move the USB device to a very basic state where interfaces are disabled and the device is in fact unconfigured and unusable.
6.remove
W,安全的移除设备。
# echo 1 > remove
UDEV [4921.100082] remove /devices/platform/soc/ee080100.usb/usb1/1-0:1.0 (usb)
移除了root-hub,然后USB接口就不识别了,不接恢复,目前只能掉电。移除U盘U盘就需要重新插拔才能识别。
7.modalias
R,此文件只有接口有
usb1/1-1# cat ./1-1:1.0/modalias
eg:U盘:usb:v0951p1666d0001dc00dsc00dp00ic08isc06ip50in00
拆分如下:v0951 p1666 d0001 dc00 dsc00 dp00 ic08 isc06 ip50 in00
static ssize_t modalias_show(struct device *dev, struct device_attribute *attr, char *buf)
{
struct usb_interface *intf;
struct usb_device *udev;
struct usb_host_interface *alt; intf = to_usb_interface(dev);
udev = interface_to_usbdev(intf);
alt = ACCESS_ONCE(intf->cur_altsetting); return sprintf(buf, "usb:v%04Xp%04Xd%04Xdc%02Xdsc%02Xdp%02Xic%02Xisc%02Xip%02Xin%02X\n",
le16_to_cpu(udev->descriptor.idVendor),
le16_to_cpu(udev->descriptor.idProduct),
le16_to_cpu(udev->descriptor.bcdDevice),
udev->descriptor.bDeviceClass,
udev->descriptor.bDeviceSubClass,
udev->descriptor.bDeviceProtocol,
alt->desc.bInterfaceClass,
alt->desc.bInterfaceSubClass,
alt->desc.bInterfaceProtocol,
alt->desc.bInterfaceNumber);
} New USB device found, idVendor=, idProduct=
USB相关的sysfs文件的更多相关文章
- I.MX6 Android USB Touch eGTouchA.ini文件存放
/******************************************************************** * I.MX6 Android USB Touch eGTo ...
- USB开发库STSW-STM32121文件分析(转)
源: USB开发库STSW-STM32121文件分析
- Python+USB+Vnet+FTP传输文件开发记录
做一个Python+USB+Vnet+FTP传输文件开发记录
- kali更新源相关 -- 没有release文件、签名无效、404
kali更新源相关 -- 没有release文件.签名无效.404 这个随笔主要是处理Mac下使用VMare虚拟机安装Kali时候我遇到的一些关于更新源的问题 (因为本人为了这个问题折腾了四五个小时, ...
- USB开发库STSW-STM32121文件分析
hw_config.c: 该文件中包含系统配置的函数. usb_desc.c:各种描述符 usb-endp.c:就两个函数分别处理端点1的IN和端点2的OUT. usb_istr.c: 该文件中只有一 ...
- 手机支持USB功能、驱动文件对应关系
手机支持USB功能: 1.UMS(USB MASS Stronge) : 连接PC作为存储盘使用 2.ADB : 用于调试 3.MTP :连接PC作为存储盘使用(win XP需要安装WMP10 以上 ...
- USB相关的网络资料
相关资源连接: USB官网:http://www.usb.org/home <USB in a NutShell>: http://www.beyondlogic.org/usbnutsh ...
- [Oracle]获得PDB相关的xml 文件
问题:客户进行了PDB的克隆之后,发现启动时出现: ORA-44777: Pluggable database service cannot be started. 分析手段: 为了获得PDB的相关信 ...
- solr配置相关:约束文件及引入ik分词器
schema.xml: solr约束文件 Solr中会提前对文档中的字段进行定义,并且在schema.xml中对这些字段的属性进行约束,例如:字段数据类型.字段是否索引.是否存储.是否分词等等 < ...
随机推荐
- Python 如何判断一个函数是generator函数?
如何判断一个函数是否是一个特殊的 generator 函数?可以利用 isgeneratorfunction 判断: >>>from inspect import isgenerat ...
- QT之QML控件篇
QT quick中提供了很多的实用控件widget,下面介绍几种常用的. 这部分介绍基本是参照QtCretator提供的帮助文档,一定要学会使用,不明白的去查找帮助. Item 基本上所有的可是控件的 ...
- mssql语句递归查找所有下级
if exists (select * from sys.all_objects where name='GetOrgTree') begin drop function GetOrgTree end ...
- 20145315 《Java程序设计》第九周学习总结
20145315 <Java程序设计>第九周学习总结 教材学习内容总结 第16章--整合数据库 16.1.1JDBC简介 应用程序通过通信协议对数据库进行指令交换,以进行对数据的的增删查找 ...
- anaconda + tensorflow +ubuntu 超级菜鸟,大家多指正【转】
本文转载自:https://blog.csdn.net/zzw000000/article/details/51203331 1.首先安装Anaconda 下载linux对应的anaconda版本,下 ...
- linux内核源码在线浏览
1.https://elixir.bootlin.com (只能搜索函数和宏定义,功能单一) 2.https://lxr.missinglinkelectronics.com (比第一个功能多一些, ...
- Java堆(heap)、栈(stack)和队列的区别
Java里面Stack有两种含义: 一:数据结构 Stack,即java.util.Stack import java.util.Stack; import java.util.Iterator; i ...
- 【联网】虚拟机下Linux(终端)配置网络的方法
这几天在虚拟机vmware上部署centos系统,想通过内部联网用yum命令安装必需的软件,但是一直不能静态地址联网,今天终于找到一个方法centos内部设置IP,对外联网.设置过程如下: 1.首先是 ...
- KMP&拓展KMP
KMP算法 说明 KMP算法是一种比较高效的字符串匹配算法,可以在线性时间内求出一个串在另一个串的所有匹配位置. 解析 详解KMP 设模板串是 \(pattern\) 令 \(next[i] = ma ...
- 理解if __name__ == '__main__':
一开始没怎么注意这个语句,这两天在模拟知乎登陆时准备刨根问底了,先看两行代码片段 第一个例子:这是在login.py文件的一部分,其他我们忽略,只关注print()函数的内容 import time ...