Linux显示所有的目录都在一个目录树下,而与它们位于哪一个驱动器或硬件无关。...在Linux下的磁盘内容作为子目录形式出现的,可移动介质的内容不会自动出现在这些子目录中,因此需要我们通过挂载驱动器来实现。...例如:用mount命令来挂载cdrom 命令: mount -t auto /dev/cdrom /mnt/cdrom 这命令就是把cdrom挂载在/mnt/cdrom目录中,这里我就可以访问里面的内容了...之下 用这种方法可以将一般网络上可以找到的 Linux 光 碟 ISO 档在不烧录成光碟的情况下检视其内容。 ...# mount -o loop /tmp/image.iso /mnt/cdrom 参考推荐: Linux下使用mount命令挂载CDROM
一系列相互独立的端点在一起构成了USB逻辑设备,在系统结构中,位于下方红色方框内: 二、端点的分类 每个USB设备都有一个唯一的设备地址,设备地址是设备连接上主机时由主机分配的,主机主要依靠这个设备地址对...USB设备进行访问。...五、端点与管道 1、管道的概念 管道是主机软件(数据缓存区),和USB设备各各端点之间的数据传输连接,他是两者之间通信流的抽象(实际上数据传输是USB总线接口完成)。...1)、“流”指不具有USB定义格式的数据流,流通道中的数据是流的形式,也就是该数据内容不具有USB要求的结构。...2)、“消息”指具有某种USB定义格式的数据流。消息通道与端点的关系同流通道与端点的关系是不同的。
Linux 内核源码:include\linux\usb.h Linux 内核源码:drivers\hid\usbhid\usbmouse.c 1....BUS/DEV/DRV 模型 "USB 接口"是逻辑上的 USB 设备,编写的 usb_driver 驱动程序,支持的是"USB 接口": USB 控制器或 Hub 识别出 USB 设备后,会创建、...注册 usb_device usb_device 被"drivers\usb\core\generic.c" 驱动认领后,会选择、设置某个配置 这个配置下面的接口,都会分配、设置、注册一个 usb_interface...左边的 usb_driver 和右边的 usb_interface 如果匹配,则调用 usb_driver.probe 2....接口函数 在 USB 设备驱动程序中,能使用的 USB 函数都在这个头文件里:include\linux\usb.h。
小机做 mass storage+adb 4.1.11 小机做 uvc+uac1 4.1.12 小机做 hid+cdrom 4.1.13 小机做 rndis+adb Linux USB 开发指南 1...1.3 适用范围 表 1-1: 适用产品列表 内核版本 驱动文件 Linux-4.9 drivers/usb/* Linux-5.4 drivers/usb/* 2 模块介绍 2.1 模块功能介绍...图 2-11: linux-4.x usb gadget 配置选择 2.6.2 linux-4.x/linux-5.4 USB Gadget 配置流程 Linux-4.x/Linux-5.4 使用 configfs.../config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/cdrom echo /tmp/phoenixcard.iso > /sys/kernel.../kernel/config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/cdrom echo /tmp/phoenixcard.iso > /sys
四、 linux内核下USB相关的API函数与数据结构 前面介绍了USB相关一些基础概念与重要的数据结构,接下来就分析在linux内核中如何编写一个USB 驱动程序,编写与一个USB设备驱动程序的方法和其他总线驱动方式类似.../usb.h> 4.2 USB设备注册框架示例 #include #include #include //定义...鼠标驱动(中断传输方式) 5.1 USB驱动注册框架代码 #include #include #include ...#include #include #include #include .../init.h> #include #include #include #include <linux/slab.h
在上一章分析完USB总线驱动程序后, 接下来开始写一个USB驱动: 本节目的: 将USB鼠标的左键当作L按键,将USB鼠标的右键当作S按键,中键当作回车按键 参考/drivers/hid/usbhid/...: usb_deregister(struct usb_driver *driver); 注册一个usb_driver驱动,然后内核会通过usb_driver的成员.id_table函数匹配一次USB设备...释放input_device 3.5在出口函数中 1)通过usb_deregister ()函数注销usb_driver结构体 4.代码如下: #include #include... #include #include #include #include... static struct input_dev *myusb_mouse_dev; //input_dev static char *myusb_mouse_buf
通过扫描以下目录获取物理节点所有 USB 设备: /sys/bus/usb/devices/usb* /sys/bus/usb/devices/usb*/$busnum-* 从该文件系统收集某一个设备的主要信息如下..."level": 1, "manufacturer": "QEMU", "port": 0, "prodid": "0001", "product": "QEMU USB...: 产品 serial: USB 硬件设备序列号 ,例如 0000:00:01.2 定位方法# 定位某一个 USB 设备的方法有两种: busnum + devnum idVendor + idProduct...设备类bDeviceClass、bDeviceSubClass、bDeviceProtocol By USB 中文网 USB设备描述符中的idVendor、idProduct和bcdDevice By...USB 中文网 USB 硬件设备的序列号 By IBM 注:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
[ 0.513302] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 [ 0.513303] usb usb1...Controller [ 0.513304] usb usb1: Manufacturer: Linux 3.10.0-327.el7.x86_64 xhci-hcd [ 0.513305...] usb usb1: SerialNumber: 0000:00:14.0 [ 0.518700] usb usb2: New USB device found, idVendor=1d6b,...0.518702] usb usb2: Product: xHCI Host Controller [ 0.518702] usb usb2: Manufacturer: Linux 3.10.0...] usb 1-4: New USB device found, idVendor=413c, idProduct=301a [ 1.040348] usb 1-4: New USB device
Linux3.11版本引入了基于configfs的usb gadget configfs。.../bcdDevice # USB 1.1: 0x0110 # USB 2.0: 0x0200, USB 2.1: 0x0210, USB 2.5: 0x0250 # USB 3.0: 0x0300...(gadget_strings, gadget_info); [include/linux/usb/gadget_configfs.h] #define USB_CONFIG_STRINGS_LANG(...主要的工作流程为: 分配一个config_usb_cfg1结构体,该结构体包含了usb_configuration结构体,保存了该USB设备的配置信息。 设置USB设备的配置描述符的某些选项。...调用UDC驱动接口usb_udc_connect_control连接USB主机控制器,这样USB主机就能识别并枚举USB设备。
是因为windows自带了USB总线驱动程序, USB总线驱动程序负责: 识别USB设备,给USB设备找到对应的驱动程序 新接入的USB设备的默认地址(编号)是0,在未分配新编号前,PC主机使用0地址和它通信...然后USB总线驱动程序都会给它分配一个地址(编号) PC机想访问USB总线上某个USB设备时,发出的命令都含有对应的地址(编号) USB是一种主从结构。...主机叫做Host,从机叫做Device,所有的USB传输,都是从USB主机这方发起;USB设备没有"主动"通知USB主机的能力。..., 比如:鼠标的数据是从鼠标传到PC机, 对应的端点称为"中断输入端点" 其中端点0是设备的默认控制端点, 既能输出也能输入,用于USB设备的识别过程 同样linux内核也自带了USB总线驱动程序,框架如下...其中usb_bus_type是一个全局变量, 它和我们之前学的platform平台总线相似,属于USB总线, 是Linux中bus的一种.
为了消除这种可能性,机构会限制和监测访问互联网,同时禁用 USB 存储设备。 在本教程中,我们将讨论三种不同的方法来禁用 Linux 机器上的 USB 存储设备。...方法 2:删除 USB 驱动 这种方法要求我们将 USB 存储的驱动程序(usb_storage.ko)删掉或者移走,从而达到无法再访问 USB 存储设备的目的。...方法 3:将 USB 存储器纳入黑名单 我们也可以通过 /etc/modprobe.d/blacklist.conf 文件将 usb-storage 纳入黑名单。...usb-storage 保存文件并退出。...usb-storage 就在就会被系统阻止加载,但这种方法有一个很大的缺点,即任何特权用户都可以通过执行以下命令来加载 usb-storage 模块, $ sudo modprobe usb-storage
1、挂载CDROM mkdir -p /mnt/cdrom mount /dev/cdrom /mnt/cdrom 3、创建cdrom.repo文件 vi /etc/yum.repos.d/cdrom.repo...[cdrom] name=CentOS7 - cdrom baseurl=file:///mnt/cdrom/ enable=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg.../RPM-GPG-KEY-CentOS-7 4、测试查看cdrom的软件包列表 yum --disablerepo=* --enablerepo=cdrom list 5、使用本地源安装 yum --disablerepo...=* --enablerepo=cdrom install -y httpd
挂接移动硬盘 对linux系统而言,USB接口的移动硬盘是当作SCSI设备对待的。插入移动硬盘之前,应先用fdisk –l或more /proc/partitions查看系统的硬盘和硬盘分区情况。...mount /dev/sdc1 /mnt/usbhd1 挂接U盘 和USB接口的移动硬盘一样对linux系统而言U盘也是当作SCSI设备对待的。使用方法和移动硬盘完全一样。...mkdir -p /mnt/usb 注:建立一个目录用来作挂接点(mount point) mount -t vfat /dev/sdd1 /mnt/usb 注:现在可以通过/mnt/usb来访问U...mount -t vfat -o iocharset=cp936 /dev/sdd1 /mnt/usb 挂接Windows文件共享 Windows网络共享的核心是SMB/CIFS,在linux下要挂接...补充: linux加载光驱: (1)使用光驱前,要先mount一下: #mount /dev/cdrom /mnt/cdrom 然后您就可以进入/mnt/cdrom目录下读取光盘内容了。
1.Linux控制台的使用 Linux系统由桌面控制台+(6个)字符控制台组成。...mount -t vfat /dev/sda1 /mnt/usb 这样就可以通过访问/mnt/usb目录来访问U盘的内容了。...(3)挂载光盘 mount -t iso9600 /dev/hda /mnt/cdrom 或者 mount /dev/cdrom /mnt/cdrom 注意:用mount命令挂载的是软盘、光盘和U盘,而不是软驱和光驱...,初学者容易犯这个错误,以为挂载完成,软盘就成了/mnt/floppy,光盘就成了/mnt/cdrom了,绝对不是这样的。...4>设备的卸载 卸载设备的命令格式为: umount 挂载目录 例如,要卸载U盘可输入一下命令. umount /mnt/usb 要卸载光盘可输入以下命令 umount /mnt/cdrom Linux
三、挂接移动硬盘 对linux系统而言,USB接口的移动硬盘是当作SCSI设备对待的。...#mount /dev/sdc1 /mnt/usbhd1 四、挂接U盘 和USB接口的移动硬盘一样对linux系统而言U盘也是当作SCSI设备对待的。使用方法和移动硬盘完全一样。...#mkdir -p /mnt/usb 注:建立一个目录用来作挂接点(mount point) #mount -t vfat /dev/sdd1 /mnt/usb 注:现在可以通过/mnt/usb来访问U...#mount -t vfat -o iocharset=cp936 /dev/sdd1 /mnt/usb 五、挂接Windows文件共享 Windows网络共享的核心是SMB/CIFS,在linux下要挂接...补充: linux加载光驱: (1)使用光驱前,要先mount一下: #mount /dev/cdrom /mnt/cdrom 然后您就可以进入/mnt/cdrom目录下读取光盘内容了。
2.Gadget Function驱动 Linux内核的USB Gadget Function驱动都在drivers/usb/gadget/function/目录下,有通讯设备类(Communication...[include/linux/usb/composite.h] struct usb_function_driver { const char *name; struct module...[include/linux/usb/composite.h] #define DECLARE_USB_FUNCTION_INIT(_name, _inst_alloc, _func_alloc) \...(__usb_composite_driver, usb_composite_probe, \ usb_composite_unregister) [include/linux/device.h...Linux 3.11版本引入了USB Gadget Configfs。在用户层可以通过暴漏出来的API定义USB Gadget设备的任意功能和配置,极大的方便了USB复合设备的配置和使用。
usb协议是一个复杂的协议,目前涉及到的版本就有usb1.0, usb2.0, usb3.0。...那么,对于我们这些不是很了解usb的开发人员,如何了解usb的代码结构呢?...c,通过Makefile和Kconfig发现,s3c2410依赖于USB_OHCI_HCD_S3C2410 和 USB_OHCI_HCD,那USB_OHCI_HCD呢?...d,USB_OHCI_HCD只依赖于DMA和IOMEM。...但是,如果要深入了解usb host&device驱动,那么除了这些代码逻辑,那么还要熟读usb协议手册,更重要的学会用catc协议分析仪真正地去了解usb是如何发包和收包的。
首先,这是一个比较简单的问题 我是在Linux下和windows下作了一个对比 1,windows下第一次插入该猫的时候,会以一个usb外接存储设备显示出来,并且看上去是一个CD-ROM的Media设备...,当在windows下安装完电信的拨号程序以后,这个CDROM的设备就不见了,然后打开windows的超级终端,会看到三个新的串口设备 2,在Linux下,无论什么时候插入该猫的时候,都会是一个usb外接存储设备显示出来....[ 179.552403] scsi 2:0:0:0: CD-ROM D-Link CDROM 2.31 PQ: 0 ANSI: 2[ 179.553240] usb-storage: queuecommand...ram sda1 tty11 tty34 tty57 usbdev2.1 vcsa1card0 fb MAKEDEV ram0 sda2 tty12 tty35 tty58 usbdev3.1 vcsa2cdrom...,在windows下安装完拨号程序以后,就看不到cdrom了,这个时候就可以看到串口设备了,那么可以总结,应该是有一个将cdrom给弹出来了,这个时候使用了一下如下命令 eject /dev/sr0 这样就把
显然我们的buf[0]的0X04就是上传的usb_kbd_keycode[4+ 224] 2.3我们来看看usb_kbd_keycode[226]里的数据对应的到底是不是左ALT键 找到usb_kbd_keycode...[]的数据错位,这里就不做详细分析了 一切迎刃而解,我们只需要将自己的代码也通过这个码表添加所有按键按键事件,然后再在键盘中断函数中根据数据来上传事件即可 4.本节键盘代码如下: #include #include #include #include #include #include static struct input_dev *myusb_kbd_dev; //input_dev static...usb_kill_urb(myusb_kbd_urb); usb_free_urb(myusb_kbd_urb); usb_buffer_free(dev, myusb_kbd_size
试过很多官方驱动,都不太好,每个驱动都测试了5G, 3.3、不同驱动的对比测试 测试位置:距离路由器隔一堵墙的房间那头, USB3.0无线网卡稳定在130Mbps的下载速度 测网速:www.speedtest.cn
领取专属 10元无门槛券
手把手带您无忧上云