为了保护数据不被泄漏,我们使用软件和硬件防火墙来限制外部未经授权的访问,但是数据泄露也可能发生在内部。 为了消除这种可能性,机构会限制和监测访问互联网,同时禁用 USB 存储设备。...在本教程中,我们将讨论三种不同的方法来禁用 Linux 机器上的 USB 存储设备。所有这三种方法都在 CentOS 6&7 机器上通过测试。那么让我们一一讨论这三种方法。...方法 2:删除 USB 驱动 这种方法要求我们将 USB 存储的驱动程序(usb_storage.ko)删掉或者移走,从而达到无法再访问 USB 存储设备的目的。...要将 USB 存储列入黑名单,请使用 vim 打开/创建上述文件: $ sudo vim /etc/modprobe.d/blacklist.conf 并输入以下行将 USB 纳入黑名单: blacklist...usb-storage 就在就会被系统阻止加载,但这种方法有一个很大的缺点,即任何特权用户都可以通过执行以下命令来加载 usb-storage 模块, $ sudo modprobe usb-storage
Linux 内核源码:include\linux\usb.h Linux 内核源码:drivers\hid\usbhid\usbmouse.c 1....BUS/DEV/DRV 模型 "USB 接口"是逻辑上的 USB 设备,编写的 usb_driver 驱动程序,支持的是"USB 接口": USB 控制器或 Hub 识别出 USB 设备后,会创建、...接口函数 在 USB 设备驱动程序中,能使用的 USB 函数都在这个头文件里:include\linux\usb.h。...2.1 pipe 使用这些接口函数的主要目的是传输数据,传输数据的对象是 USB 设备里的某个 endpoint,这被称为 pipe: /* Create various pipes... */ #define...timeout); 2.3 异步传输函数 使用 URB 进行传输时,它是异步方式:需要先分配、构造、提交一个 URB("usb request block"),当传输完成后,它的回调函数被调用。
通过扫描以下目录获取物理节点所有 USB 设备: /sys/bus/usb/devices/usb* /sys/bus/usb/devices/usb*/$busnum-* 从该文件系统收集某一个设备的主要信息如下...(该总线的第几台设备) speed: 速率 bDeviceClass: 设备类型 idVendor: 设备的生产商ID,由USB设备生产商向USB-IF官方来统一管理和申请 idProduct: 该生产商生产的产品编号...# 定位某一个 USB 设备的方法有两种: busnum + devnum idVendor + idProduct 设备类型bDeviceClass# 类代码 用法 描述 00h 设备描述符 Use...参考文献# USB设备类bDeviceClass、bDeviceSubClass、bDeviceProtocol By USB 中文网 USB设备描述符中的idVendor、idProduct和bcdDevice...By USB 中文网 USB 硬件设备的序列号 By IBM 注:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
早期的USB只支持单一的gadget设备,使用场景较为简单,随后加入了composite framework,用来支持多个function的gadget设备,多个function的绑定在内核中完成,若需要修改...Linux3.11版本引入了基于configfs的usb gadget configfs。...usb gadget configfs重新实现了复合设备层,使用者可以在用户空间配置和组合内核的function,灵活的构成USB复合设备,极大了提高了工作效率。...初始化复合设备驱动数据结构usb_composite_driver,使用usb gadget configfs时,使用者可以直接在用户空间绑定function驱动,不需要bind和unbind函数,因此...如果使用os_string,则需要分配os_string requset。 调用UDC驱动接口usb_gadget_udc_start使能USB设备控制器。
一.背景: arm linux的内核版本是3.13.0 二.准备工作 添加alsa驱动到内核中,也就是在编译内核的时候加入以下选项: ?...接下来就重新编译内核即可 三.交叉编译alsa-lib和alsa-utils (alsa-utils是一系列的音频设备控制工具,而alsa-lib是alsa-utils依赖的库,所以先将alsa-lib...alsa-lib 3.2交叉编译alsa-utils 四.将三编译好的库及工具都拷贝至arm开发板(笔者通常直接将编译好的都压缩好之后再复制到开发板进行解压,以避免直接复制造成软链接无法复制的情况) 五.使用...,注意fat32是不支持软链接的,此时需要直接复制一个aplay并将名称改为arecord: cp aplay arecord 总结 以上所述是小编给大家介绍的arm linux利用alsa驱动并使用...usb音频设备 ,希望对大家有所帮助!
当USB设备插上主机时,主机就通过一系列的动作来对设备进行枚举配置(配置是属于枚举的一个态,态表示暂时的状态),这些态如下: 1、接入态(Attached):设备接入主机后,主机通过检测信号线上的电平变化来发现设备的接入...; 2、供电态(Powered):就是给设备供电,分为设备接入时的默认供电值,配置阶段后的供电值(按数据中要求的最大值,可通过编程设置); 3、缺省态(Default):USB在被配置之前,通过缺省地址...0与主机进行通信; 4、地址态(Address):经过了配置,USB设备被复位后,就可以按主机分配给它的唯一地址来与主机通信,这种状态就是地址态; 5、配置态(Configured):通过各种标准的USB...请求命令来获取设备的各种信息,并对设备的某此信息进行改变或设置; 6、挂起态(Suspended):USB总线处于空闲状态的话,该设备就要自动进入挂起状态,在进入挂起状态后,总的电流功耗不超过280UA...是 是 是 是 是 不 设备已连接至接口,已加电. 并被复位.且分配了唯一地址,并被配置.设备功能可被使用.
1.概述 在usb gadget configfs引入到内核之前,内核都使用硬编码的方式实现复合设备,无法在用户空间动态修改和绑定不同的function驱动,若要修改,则需要修改内核代码,重新编码,非常不方便...(audio_driver); // 注册audio_driver [include/linux/usb/composite.h] #define module_usb_composite_driver...3.总结 从上面可以看出,legacy方式定义的复合设备很不灵活,使用者无法在用户空间动态配置复合设备和绑定的function驱动。...若要使用音频设备,则只能通过g_audio驱动构造复合设备,若使用USB虚拟网卡,则只能通过g_ether驱动构造复合设备,若需要多个功能的USB设备,则需要重新构造复合设备,编码定义usb_composite_driver...USB gadget configfs不需要在内核中预先定义好复合设备,使用者在用户空间配置,内核会自动生成所需的复合设备,并和对应的function驱动绑定。
最近 VMware 莫名其妙的卡,开机一会就开始卡死了,找了好多办法也不行,暂时先换 VirtualBox,已安装但在使用网银 U 盾等 USB 设备时,无法识别 USB 设备。
后来发现了后面这个,觉得应该是可以的 原来是装个驱动就可以,这里可以使用iTunes,还有一个叫iTools,一般是第一个就自动安装了,我是第一个就好了。
背景 如何让Openharmony设备HDC接口(OTG接口)作为一个复合设备,实现HDC(HDC:鸿蒙设备连接器) + CDC ACM(USB 虚拟串口),而设备本身支持HDC。...本文主要讲解OpenHarmony中,板卡上的OTG接口如何支持复合设备,环境说明如下: 描述项 说明 OpenHarmony版本 release-4.0 内核版本 5.10 板卡 风火轮youyeetoo...R1开发板(RK3588S) 通过configfs配置Linux USB gadget Linux内核5.10,是采用configfs来配置USB的功能,即配置USB gadget。...什么是USB gadget 在OpenHarmony如何配置 configfs配置USB gadget流程 什么是USB gadget USB设备驱动,按照设备端关联的USB控制器是工作在主模式还是从模式...本文的重点是USB设备从机侧驱动(从模式),Linux下将USB设备从机侧驱动,称为USB Gadget驱动。
虽然 lshw 命令( 列出硬件(list hardware),读作 “ls hardware”)远不是每个人最先学会的 50 个 Linux 命令之一,但它可以提供很多系统硬件的有用信息。...注意系统将这个设备命名为了 /dev/sdc。...要获得“磁盘”类设备的简略列表,可以运行下面这条命令。注意其中有两个设备被列出了两次,所以我们看到的仍然是五个磁盘设备。...,并统计每个类别中的设备数量。...你会发现在没有使用 -short 选项的时候,每一个磁盘类设备都会有大约 12 行的输出,包括像是 /dev/sda 这样的逻辑名称,磁盘大小和种类等等。
目前最流行的是使用基于Composite和configfs实现的USB gadget configfs,可在用户空间灵活的配置USB设备。UDC驱动直接访问硬件,控制USB设备与USB主机之间的通信。...2.Gadget Function驱动 Linux内核的USB Gadget Function驱动都在drivers/usb/gadget/function/目录下,有通讯设备类(Communication...,所有复合设备都使用该数据结构,无需驱动实现。...Linux 3.11版本引入了USB Gadget Configfs。在用户层可以通过暴漏出来的API定义USB Gadget设备的任意功能和配置,极大的方便了USB复合设备的配置和使用。...除端点0外,USB设备驱动还会使用其他的端点,这些端点数据结构挂到ep_list链表中。speed表示USB设备控制器当前的速度。max_speed表示USB设备控制器最大的速度。
不幸的是,情况并非总是如此; 有时,您需要手动将USB挂载到系统才能访问它。 在本教程中,我们将介绍如何在系统中手动安装和卸载USB驱动器。...如何在Ubuntu上安装USB驱动器 让我们按照以下步骤手动将USB驱动器安装到您的系统: 步骤1:将USB驱动器插入可用端口。...步骤2:在终端应用程序中以sudo身份运行以下命令,以检查系统上可用的存储设备及其使用的文件系统: $ sudo fdisk -l 您的USB设备通常会在输出结尾列出,主要是sdb...使用文件管理器访问USB设备 如何在Ubuntu上卸载USB驱动器 如果您手动安装了USB,最好甚至手动卸载它。...按照本文中介绍的步骤操作后,您将能够成功地在系统上安装和卸载USB存储设备。如果您的系统无法自动使USB可供访问和使用,这将对您有所帮助。
一、USB设备状态 在USB 2.0协议中第 9.1 USB Device States 章节规定了USB设备的6种状态,包括: Attached/Powered/Default/Address/Configured...在 Linux Kernel ch9.h 文件中用 enum usb_device_state 来标记这几种状态。...// /include/uapi/linux/usb/ch9.h enum usb_device_state { /* NOTATTACHED isn't in the...其中struct usb_gadget是用来标记一个USB设备的信息。此时USB设备的状态就可以确定了。...比如说在USB设备的枚举阶段,在composite_setup()函数中USB设备接收到了USB Host发过来的USB_REQ_SET_CONFIGURATION命令后调用set_config()设置相应的配置
前者通过UDC设备的名称匹配,通常是configfs配置的USB Function驱动使用,后者直接匹配udc_list链表中的第一个UDC驱动,通常是legacy类型的USB Function驱动使用...(struct usb_gadget_driver *driver); 底层的USB设备控制器驱动(dwc3 gadget)使用usb_add_gadget_udc函数将自身加入到Core UDC Framework...使能ep0_out和ep0_in硬件端点,设备枚举阶段需要使用端点0,因此需要先使能。...若主机向设备请求数据,而此时设备没有数据要发送,则设备端点会在数据信息包中返回NAK。主机从不发送NAK,等时传输不使用NAK。...端点”能够响应请求“是指能够通信且因此不能被设为设备。等时传输不使用STALL。超高速控制端点不使用功能失败。
[ 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
当软件出错 时,我们也可以发出复位信号重新驱动设备。 那么, USB Hub 端口或 USB 控制器端口如何发出复位信号? 发出 SE0 信号,并维持至少 10ms。...高速设备首先作为全速设备被识别出来,然后 Hub 如何确定它是否支持高速模式? Hub 端口如何监测一个新插入的 USB 设备能否工作于高速模式?...,带着这几个问题去看文档、看视频: 如何寻址设备?...如何表示数据方向(读、还是写) 如何确认结果?...它允许使用具有多种配置的 USB 设备、复合设备和 USB OTG 进行操作。它支持 USB 电源管理。 USBX 为 USB 主机和 USB 设备堆栈提供了大量的 USB 类。
USB总线以高效、便捷的特性得到广泛的应用,但是USB本身并不是专为工业控制开发的。工业控制具有实时性强,安全要求高,现场干扰大等特点,因此USB需要进行工业设计才能保证工业应用的可靠性。...USB-5800工业特性解析 工业USB防误拔锁紧器:USB产品为方便连接,采用了弹片连接方式,但在工业控制场合,这种方式存在误碰,误拔的风险,使用工业USB防误拔锁紧器,对usb控制模块进行螺丝锁紧,...内置看门狗:工业现场有时会出现不可预知的强烈干扰,可能会造成USB设备的软件的短暂死机。...普通USB设备(如USB DISK)会要求使用者重新插拔设备来解决,但在工业场合很多是无人值守的 GRADE 3浪涌和突波保护 5、2500V隔离:通道与USB、菊花链(HUB)与USB之间2500VDC...9、LED指示灯:实时显示IO状态、USB上行/下行通讯状态。 10、USB3.0总线:提供高达5Gbit/s USB-5800系列IO模块
一系列相互独立的端点在一起构成了USB逻辑设备,在系统结构中,位于下方红色方框内: 二、端点的分类 每个USB设备都有一个唯一的设备地址,设备地址是设备连接上主机时由主机分配的,主机主要依靠这个设备地址对...USB设备进行访问。...但是需要注意其中的一个特殊端点--端点0,每个USB设备必须要有一个端点0,其作用为对设备枚举和对设备进行一些基本的控制功能,端点0也被称为控制端点。...五、端点与管道 1、管道的概念 管道是主机软件(数据缓存区),和USB设备各各端点之间的数据传输连接,他是两者之间通信流的抽象(实际上数据传输是USB总线接口完成)。...端点0,是设备的默认控制端点,在设备上电后就存在并可以使用,在Set Config之前所有的传输都是通过端点0传输的。
该工具基于Rust语言开发,并且支持在GNU/Linux上运行。 功能介绍 1、从不受信任的USB设备读取文件(不使用uas、USB_storage和文件系统等内核模块)。...支持的文件系统有FAT、exFat、ext4、NTFS和ISO9660; 2、使用远程防病毒软件分析文件; 3、将新文件系统上的文件复制到受信任的USB设备,支持的文件系统有 FAT、exFAT...和NTFS; 4、将文件上传到远程服务器; 5、支持制作USB设备镜像; 6、擦除USB设备内容; usbsas架构 1、Web客户端/服务器:作为usbsas的主程序,可以部署一个安全的...USB文件传输中转站; 2、Fuse实现:使用usbsas以只读模式挂载USB设备; 3、Python:usbsas可以和Python搭配使用,并使用脚本将数据从一台设备拷贝到另一台设备;...内核模式 usbsas最大的一个优势就是在用户空间中运行,因此Linux内核不能有usb_storage和uas模块。
领取专属 10元无门槛券
手把手带您无忧上云