pcibios_init x86 BIOS专门提供了针对PCI总线的操作,这些操作里就包括了总线枚举的整个过程,Linux kernel中的宏CONFIG_PCI_BIOS。...在系统加电以后自检时,就会完成对PCI总线的枚举,之后Linux对PCI配置空间的访问都是通过BIOS调用的形式进行,提供有这些功能和服务的BIOS就称之为PCI BIOS 。...需要注意的是Linux x86_64是不采用PCI BIOS访问PCI配置空间的,而是内核实现了直接访问PCI配置空间的函数(CONFIG_PCI_DIRECT)。...所以Linux x86驱动程序中pci_read_config_byte()最终调用的是pci_bios_read_config_byte()。...FLR path is /sys/bus/pci/devices/BDF/reset 3.7 x86 MIPI60 Blackhawk USB560v2 4 ARM PCIe 4.1 MSM
一系列相互独立的端点在一起构成了USB逻辑设备,在系统结构中,位于下方红色方框内: 二、端点的分类 每个USB设备都有一个唯一的设备地址,设备地址是设备连接上主机时由主机分配的,主机主要依靠这个设备地址对...USB设备进行访问。...五、端点与管道 1、管道的概念 管道是主机软件(数据缓存区),和USB设备各各端点之间的数据传输连接,他是两者之间通信流的抽象(实际上数据传输是USB总线接口完成)。...1)、“流”指不具有USB定义格式的数据流,流通道中的数据是流的形式,也就是该数据内容不具有USB要求的结构。...2)、“消息”指具有某种USB定义格式的数据流。消息通道与端点的关系同流通道与端点的关系是不同的。
PCI总线常见于x86体系,本文默认面向的体系为x86,注意x86架构下IO与内存是独立编址的。 附: 本文默认读者熟悉Linux设备驱动模型,不熟悉的可以先阅读这两篇blog。...Linux驱动之I2C子系统剖析 Linux驱动之SPI子系统剖析 PCI寻址 PCI系统总体布局组织为树状,从CPU连接的Host Bridge引出PCI主桥,主桥连接的是PCI总线0,可以直接连接PCI...设备,或者再挂上PCI桥引出下一级PCI总线。...Linux内核启动时会从PCI设备的配置寄存器里读取内存/IO起始地址以及irq,并把这些信息赋值给struct pci_dev的相应成员来生成软件描述的PCI设备。...当linux系统启动时,会探测系统中的所有PCI设备,并为探测到的每个PCI设备做如下操作: 1.分配一个struct pci_dev结构体,用来表示相应的PCI设备 2.为这个结构体填充设备vendor
pci ID。...下面有一些方法是可以获取pci ID的。 1.使用lspci命令。...如 02:00.0 USB controller: Intel Corporation 82371AB/EB/MB PIIX4 USB 02:01.0 Ethernet controller: Intel...02.0 Multimedia audio controller: Ensoniq ES1371 / Creative Labs CT2518 [AudioPCI-97] (rev 02) 02:03.0 USB...controller: VMware USB2 EHCI Controller 第一列就是PCI ID,后面就是设备名和供应商名称。
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。
gadget 功能前关闭 adb 功能时却报异常的解决办法 4 附录 4.1 Linux-4.x/Linux-5.4 Gadget 配置示例 4.1.1 小机做 mass storage 4.1.2...1.3 适用范围 表 1-1: 适用产品列表 内核版本 驱动文件 Linux-4.9 drivers/usb/* Linux-5.4 drivers/usb/* 2 模块介绍 2.1 模块功能介绍...USB 总线采用树形结构,在一条总线上只能有唯一的主机设备。Linux 内核从主机和设备两个角度观察 USB 总线结构。...Linux 有原生 gadget 框架,通用的配置流程可参考下文。...图 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
6,Disk 7,Net Card 8,Other Device(isa,usb,video,keyboard,mouse,IDE controller,USB controller….)...KVM在Linux上被编译成为一个内核模块,提供最核心的CPU虚拟化能力,硬件的二级页表能力,中断注入能力等。...Guest OS(以Linux为例)中,跑在protected mode,使用虚拟内存,Guest OS会把Guest Virtual Memory Address映射成Guest Physical Memory...PCI Bridge&PCI Device的虚拟化:PCI Bridge可以用来扩展PCI Device的数目(一条PCI Bus最多有32个Device),可以在扩展后的Bus上继续添加PCI Device...在硬件上,磁盘是一个块设备,它可以接在IDE控制器上,也可以接在SCSI控制器上,还可以接在USB控制器上,在QEMU上,还可以让磁盘作为一个PCI Device直接接在PCI Bus上。
可以连接多个设备 USB在个人电脑上往往具有多个接口,可以同时连接几个设备,如果接上一个有四个端口的USB HUB时,就可以再连上四个USB设备,以此类推 (注:最高可连接至127个设备,扩展到一定数量时需要外加电源.../usb.h> 4.2 USB设备注册框架示例 #include #include #include //定义...该宏定义在下 这个宏有两个参数,第一个参数设备名,第二个参数该设备加入到模块中时对应产生的设备搜索符号,这个宏生成了一个名为__mod_pci_device_table...#include #include #include #include ...该宏定义在下 这个宏有两个参数,第一个参数设备名,第二个参数该设备加入到模块中时对应产生的设备搜索符号,这个宏生成了一个名为__mod_pci_device_table
通过扫描以下目录获取物理节点所有 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 国际许可协议 进行许可。
Controller [ 0.513304] usb usb1: Manufacturer: Linux 3.10.0-327.el7.x86_64 xhci-hcd [ 0.513305...0.518702] usb usb2: Product: xHCI Host Controller [ 0.518702] usb usb2: Manufacturer: Linux 3.10.0...as /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/input/input3 [ 1.043039] hid-generic 0003:413C...1.372549] input: Dell KB216 Wired Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.0/input.../devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.1/input/input5 [ 1.480682] hid-generic 0003:413C
在上一章分析完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
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设备。
普通文件的初始权限为 666(没有x) ,目录的初始权限 为777(rwx)
当你在个人电脑或服务器上运行 Linux 时,有时需要识别该系统中的硬件。lspci 命令用于显示连接到 PCI 总线的所有设备,从而满足上述需求。...该命令由 pciutils 包提供,可用于各种基于 Linux 和 BSD 的操作系统。...[AMD] RS780 PCI to PCI bridge (ext gfx port 0) 00:04.0 PCI bridge: Advanced Micro Devices, Inc....[AMD/ATI] SBx00 PCI to PCI Bridge 00:14.5 USB controller: Advanced Micro Devices, Inc....读者可以在阅读关于 USB 设备的文章,了解有关 Linux 硬件的更多信息:使用此 USB ID 存储库识别 Linux 上的更多设备。
这些数据的确切意义没有在此手册页中解释,如果你想知道更多,请参照 /usr/include/linux/pci.h 或者 PCI 规范。...-P 使用 linux 2.1 风格的配置,直接访问目录 而非 /proc/bus/pci 目录。...(只能用於 Alpha 和 Ultra-Sparc 上的 Linux) -F 从所给的包含 lspci -x命令输出的档案中获取相关信息。...82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 02) //USB控制器 00:1c.0 PCI bridge: Intel Corporation...:所有已知 PCI ID 的清单 (厂商,设备名,类,子类) /proc/bus/pci:linux 2.1.82 之后版本核心提供的 PCI 总线配置空间的接口。
CentOS下查看电脑硬件设备属性命令 2018年09月13日 17:48:31 乔烨 阅读数:415 如何在linux下查看电脑硬件设备属性 # uname -a # 查看内核...方法二: 显示/proc/dev文件,这个文件记录了系统的一些硬件信息, 例如:cat /proc/dev 方法三: 如果要查找特定的usb设备,则可以使用lsusb命令,列出所有的usb设备。...查看板卡信息:cat /proc/pci 查看PCI信息:lspci (相比cat /proc/pci更直观) 查看内存信息:cat/proc/meminfo 查看USB设备:cat /proc... 查看PCI信息:lspci (相比cat /proc/pci更直观) 查看内存信息:cat/proc/meminfo 查看USB设备:cat /proc/bus/usb/devices ...内存版本信息 显示PCI设备详细信息 当前很多常用硬件都是PCI(Peripheral Component Interconnect)设备,如声卡、网卡、USB控制器等,稍老一点的显卡一般也是PCI设备
为啥raid模式双系统linux安装时找不到盘? 需求 第一高并发低时延,第二隔离。...stdio -device virtio-scsi-pci,id=vs0 \ -drive file=/home/huiwei/linux0.vmdk,format=vmdk,id=drive0,if...,bus=usb.0,port=1 -vnc :1 --monitor stdio -device virtio-scsi-pci,id=vs0 -drive file=/home/huiwei/linux1...stdio -device virtio-scsi-pci,id=vs0 \ -drive file=/home/huiwei/linux0.vmdk,format=vmdk,id=drive0,if...,bus=usb.0,port=1 -vnc :1 --monitor stdio -device virtio-scsi-pci,id=vs0 -drive file=/home/huiwei/linux1
在Linux系统特别是服务器系统中常常会需要查看设备的硬件信息,这时候使用命令查看就显得非常方便。...这些数据的确切意义没有在此手册页中解释,如果你想知道更多,请参照 /usr/include/linux/pci.h 或者 PCI 规范。...lsusb命令 lsusb命令用于显示本机的USB设备列表,以及USB设备的详细信息。lsusb命令显示的USB设备信息来自“/proc/bus/usb”目录下的对应文件。...-t 以树状结构显示无理USB设备的层次 -V 显示命令的版本信息 使用示例: 默认情况下,在终端中直接输入命令: lsusb 显示USB设备列表: Bus 001 Device 001: ID...写在最后 本文主要讲解了lspci、lsblk、lscpu 和 lsusb在Linux中查看相关硬件信息的命令,希望通过本文让您对这些命令有一个初步了解,也能知道在Linux系统中查询信息信息的方式,
为了消除这种可能性,机构会限制和监测访问互联网,同时禁用 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
是因为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的一种.
领取专属 10元无门槛券
手把手带您无忧上云