25.2.1 Linux内核USB驱动框架
25.2.1 Linux内核USB驱动框架
图25-2是Linux内核从主机和设备两个角度观察USB总线结构的示意图。
从图25-2中可以看出,Linux内核USB驱动是按照主机驱动和设备驱动两套体系实现的,下面介绍两套体系的结构和特点。
1.基本结构
图25-2的左侧是主机驱动结构。主机驱动的最底层是USB主机控制器,提供了OHCI/EHCI/UHCI这3种类型的总线控制功能。在USB控制器的上一层是主机控制器的驱动,分别对应OHCI/EHCI/UHCI这3种类型的总线接口。USB核心部分连接了USB控制器驱动和设备驱动,是两者之间的转换接口。USB设备驱动层提供了各种设备的驱动程序。
USB主机部分的设计结构完全是从USB总线特点出发的。在USB总线上可以连接各种不同类型的设备,包括字符设备、块设备和网络设备。所有类型的USB设备都是用相同的电气接口,使用的传输协议也基本相同。向用户提供某种特定类型的USB设备时,需要处理USB总线协议。内核完成所有的USB总线协议处理,并且向用户提供编程接口。
图25-2 Linux内核USB总线结构
图25-2右侧是设备驱动结构。与USB主机类似,USB设备提供了相同的层次结构与之对应。但是在USB设备一侧使用名为Gadget API的结构作为核心。Gadget API是Linux内核实现的对应USB设备的核心结构。Gadget API屏蔽了USB设备控制器的细节,控制具体的USB设备实现。
2.设备
每个USB设备提供了不同级别的配置信息。一个USB设备可以包含一个或多个配置,不同的配置使设备表现出不同的特点。其中,设备的配置是通过接口组成的。Linux内核定义了USB设备描述结构如下:
struct usb_device_descriptor {
__u8 bLength; // 设备描述符长度
__u8 bDescriptorType; // 设备类型
__le16 bcdUSB; // USB版本号(使用BCD编码)
__u8 bDeviceClass; // USB设备类型
__u8 bDeviceSubClass; // USB设备子类型
__u8 bDeviceProtocol; // USB设备协议号
相关文档:
我们来配置一个filter表的防火墙
1、查看本机关于IPTABLES的设置情况
[root@tp ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source desti ......
linux目录架构
/ 根目录
/bin 常用的命令 binary file 的目錄
/boot 存放系统启动时必须读取的档案,包括核心 (kernel) 在内
/boot/grub/menu.lst &n ......
最近装了fedora9,由于显示问题很大,又退回了f8.然后在f9安装时对文件的备份分区加了密,结果导致我不能恢复备份文件了,那个郁闷阿,一挂载
加密分区就提示我"mount: unknown filesystem type
'crypt_LUKS'",网上找了半天才找到解决办法,顺带也了解了linux对数据保护的强大
这里就对如何使用linux保护
硬盘里的 ......
第20章 Linux内核移植
软件移植的概念简单地说就是让一套软件在指定的硬件平台上正常运行。移植至少包括了两个不同的硬件或者软件平台。对于应用软件来说,移植主要考虑操作系统的差异,重点在修改系统调用。本章的重点是Linux内核移植,需要考虑硬件平台的差异,涉及较多知识。主要内容如下:
q ......