如何实现Linux下的U盘(USB Mass Storage)驱动

版本:v0.7

How to Write Linux USB MSC (Mass Storage Class) Driver

Crifan Li

摘要

本文主要介绍了USB Mass Storage的相关的各种协议之间的关系,以及如何在Linux的USB驱动框架下实现U盘驱动

本文提供多种格式供:
在线阅读 HTML HTMLs PDF CHM TXT RTF WEBHELP
下载(7zip压缩包) HTML HTMLs PDF CHM TXT RTF WEBHELP

HTML版本的在线地址为:

http://www.crifan.com/files/doc/docbook/usb_disk_driver/release/html/usb_disk_driver.html

有任何意见,建议,提交bug等,都欢迎去讨论组发帖讨论:

http://www.crifan.com/bbs/categories/usb_disk_driver/

2013-09-05

修订历史
修订 0.4 2011-07-01 crl
  1. 介绍如何在Linux下实现U盘驱动
修订 0.7 2013-09-05 crl
  1. 通过Docbook发布
  2. 更新所有xml:id

版权 © 2013 Crifan, http://crifan.com


目录

缩略词
正文之前
1. 此文目的
2. 阅读此文所需要的前提知识
3. 声明
1. USB基本知识
1.1. USB的硬件
1.2. USB相关的协议
1.3. USB相关的软件实现
2. USB Mass Storage大容量存储的基本知识
2.1. USB Mass Storage相关的协议
2.1.1. USB Mass Storage相关协议简介
2.1.1.1. USB MSC Control/Bulk/Interrupt (CBI) Transport
2.1.1.2. USB MSC Bulk-Only (BBB) Transport
2.1.1.2.1. 为何USB MSC中Bulk-only Transport被叫做 BBB
2.1.1.2.2. 为何已经有了CBI,又再弄出个BBB
2.1.1.3. USB MSC UFI Command Specification
2.1.1.4. USB MSC Bootability Specification
2.1.1.5. USB MSC Compliance Test Specification
2.1.1.6. USB Lockable Storage Devices Feature Specification
2.1.1.7. USB MSC USB Attached SCSI Protocol (UASP)
2.1.1.7.1. 已有SCSI协议,为何还要再弄一个UASP
2.1.2. USB MSC的各个协议之间关系总结
2.1.3. U盘与USB中的Class,Subclass和Protocol的对应关系
2.1.3.1. bInterfaceClass=0x08=Mass Storage
2.1.3.2. bInterfaceSubClass=0x06=SCSI Transparent
2.1.3.3. bInterfaceProtocol=0x50=Bulk Only Transport
2.2. USB Mass Storage相关的软件实现
3. 实现U盘驱动的整个流程是什么样的
4. Linux系统下,USB驱动的框架已经做了哪些事情
5. Linux下实现U盘驱动,自己需要做哪些事情以及如何做
参考书目

 

实现Linux下的U盘(USB Mass Storage)驱动的更多相关文章

  1. 如何实现Linux下的U盘(USB Mass Storage)驱动

    如何实现Linux下的U盘(USB Mass Storage)驱动 版本:v0.7 How to Write Linux USB MSC (Mass Storage Class) Driver Cri ...

  2. USB Mass Storage学习笔记-STM32+FLASH实现U盘

    一.内容概述  采用STM32内部自带USB控制器外加大页NAND FLASH K9F1G08U0A实现一个128M的U盘. 1.STM32的USB控制器 STM32F103的MCU自带USB从控制器 ...

  3. linux下挂载U盘

    转:http://www.cnblogs.com/yeahgis/archive/2012/04/05/2432779.html linux下挂载U盘 一.Linux挂载U盘: 1.插入u盘到计算机, ...

  4. Linux下用FFMPEG采集usb摄像头到RTMP

    Linux下用 FFMPEG 采集 usb摄像头视频 和 摄像头内置麦克风音频 到RTMP服务   ffmpeg -f video4linux2 -qscale 10 -r 12 -s 640x480 ...

  5. usb mass storage之旅

    前面总结了usb hid keyboard,现在总结usb mass storage,在枚举阶段没什么好总结的,hid和mass storage差不多,都是同样的枚举过程,但是在他们的配置描述符.接口 ...

  6. USB mass storage协议

    这一节主要把在实现“linux模拟U盘功能”过程中的一些调试过程记录下来,并加以解析. 一.背景知识     1.USB Mass Storage类规范概述        USB 组织在univers ...

  7. USB Mass Storage协议分析

    目录 简介 指令数据和状态协议 CBW指令格式 CSWCommand Status Wrapper状态格式 SCSI命令集 Format Unit Inquiry MODE SELECT 简介 USB ...

  8. USB Mass Storage大容量存储的基本知识

    http://www.crifan.com/files/doc/docbook/usb_disk_driver/release/htmls/ch02_msc_basic.html 目录 2.1. US ...

  9. Android USB Connections Explained: MTP, PTP, and USB Mass Storage

    Android USB Connections Explained: MTP, PTP, and USB Mass Storage Older Android devices support USB ...

随机推荐

  1. C++----练习

    1.完成一个C++实现的加法程序: #include<iostream> int main() { std::cout<<"可以输入两个加数,本程序完成加法...&q ...

  2. django第二个项目--使用模板

    第一步: 创建新项目secondproject cd /tmp/django-admin startproject secondeproject 第二步: 创建一个用于放置模板文件夹 cd /tmp/ ...

  3. Linux下,连接器ld链接顺序的总结

    原来ld对于链接一系列的库的顺序是很敏感的,不然会报undefined referenced 的函数符号错误,意思就是未找到函数定义.实际上库是能正确打开的.如果库libA.a依赖于库libB.a,那 ...

  4. grep搜索当前目录和递归搜索子目录中文本文件的特定pattern

    一般在windows上文本编辑器notepad++,UE这些都有这些功能,Linux下就换了一种方式,用grep来完成文件中信息查找的方式. grep -R -n --include="*. ...

  5. cf472B Design Tutorial: Learn from Life

    B. Design Tutorial: Learn from Life time limit per test 1 second memory limit per test 256 megabytes ...

  6. 有序线性搜索(Sorted/Ordered Linear Search)

    如果数组元素已经排过序(升序),那我们搜索某个元素就不必遍历整个数组了.在下面给出的算法代码中,到任何一点,假设当前的arr[i]值大于搜索的值data,就可以停止搜索了. #include<s ...

  7. poj 1020 Anniversary Cake(切正方形蛋糕+搜索)

                                                                                                         ...

  8. 基于MFC与第三方类CWebPage的百度地图API开发范例

    在进行百度地图API开发之前你需要到http://developer.baidu.com/map申请密匙 密匙申请之后就可以进行百度地图API的开发了. 下面我们以在visual c++6.0里进行地 ...

  9. Android消息机制不完全解析(上)

        Handler和Message是Android开发者常用的两个API,我一直对于它的内部实现比较好奇,所以用空闲的时间,阅读了一下他们的源码.    相关的Java Class: androi ...

  10. 徐汉彬:亿级Web系统搭建—单机到分布式集群

    当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题.为了解决这些性能压力带来问题,我们需要在Web系统架构层 ...