一系列相互独立的端点在一起构成了USB逻辑设备,在系统结构中,位于下方红色方框内: 二、端点的分类 每个USB设备都有一个唯一的设备地址,设备地址是设备连接上主机时由主机分配的,主机主要依靠这个设备地址对...USB设备进行访问。...五、端点与管道 1、管道的概念 管道是主机软件(数据缓存区),和USB设备各各端点之间的数据传输连接,他是两者之间通信流的抽象(实际上数据传输是USB总线接口完成)。...1)、“流”指不具有USB定义格式的数据流,流通道中的数据是流的形式,也就是该数据内容不具有USB要求的结构。...2)、“消息”指具有某种USB定义格式的数据流。消息通道与端点的关系同流通道与端点的关系是不同的。
在Linux中进行身份或是状态的验证程序是由PAM来进行的,PAM(Pluggable Authentication Modules)可动态加载验证模块,因为可以按需要动态的对验证的内容进行变更,所以可以大大提高验证的灵活性...一、PAM模块介绍 Linux-PAM(即linux可插入认证模块)是一套共享库,使本地系统管理员可以随意选择程序的认证方式。...注:此处如果root也使用ssh远程连接,也会受到pam_listfile.so限制的。 温馨提示: 如果发生错误,Linux-PAM 可能会改变系统的安全性。...通常,Linux-PAM 在发生错误时,倾向于后者。任何的配置错误都可能导致系统整个或者部分无法访问。...配置 Linux-PAM 时,可能遇到最大的问题可能就是 Linux-PAM 的配置文件/etc/pam.d/*被删除了。如果发生这种事情,你的系统就会被锁住。
pam在linux系统中是非常常用,也是非常重要的一个子系统,然而对于pam,我们可能并没有太多的关注其man 帮助文件的说明,最近读了一下pam的man page, 许多不明白的豁然开朗,这里做一个简单的笔记...pam.d 是一个目录,一般情况下 关于pam的配置都在这个目录下,其实还有一个配置文件 pam.conf ,不过一般都不存在,而在pam.conf这个配置文件中,关于语法的格式,在man pam.conf..., 并且这个pam.d 下的有效的pam 配置文件的file name 必须是小写的....在pam.d下的pam的配置文件中,如果对应的pam module文件不存在,是不是都会报错呢?...但是没有pam_listfile 强大, 所以其实用好pam_listfile 就够了: 9).pam_rootok 这个模块主要是判断当前用户的uid是否为0,如果为0, 那么就返回pam_succeed
PAM 机制最初由 Sun 公司提出,并在其 Solaris 系统上实现,后来各个版本的 UNIX 以及 Linux 也陆续增加了对它的支持。 Q:为什么要使用PAM?...增强 Linux 服务器的安全性能。 Q:如何使用PAM?...答:当 LINUX 服务器中的某个应用程序或服务需要使用 PAM 来进行验证时,只要此应用程序或服务支持 PAM 验证功能,就可以通过修改其相应的 PAM 配置文件(所有验证功能都是通过一些库文件来提供的.../pam_*.so ## 可动态加载的PAM模块 Linux-PAM中/etc/pam.conf类型的格式如下: 服务名称 工作类别 控制模式 模块路径 模块参数 PAM配置文件/etc/pam.d...Linux 用户密码的复杂度可以通过 pam_cracklib 或 pam_passwdqc 模块控制 , 两者不能同时使用个人感觉 pam_passwdqc 更好用。
问题描述: 我的 Arch Linux 已经用了快半年多,由于 Arch Linux 的滚挂问题,我从没有直接升级过系统。软件版本以及库自然落后了一些。...任何用到 sudo , 以及 su 的地方,均出现如下错误: sudo: PAM authentication error: Module is unknown 我意识到,我一旦重启了将无法开机了。...如图,在 linux 那行末尾添加 single 以单用户身份启动,进入电源模式: ? 然后按 Ctrl + x 启动。启动后,请求输入 root 密码登录。...(因为知道 Arch Linux 已滚挂,所以一直没清理 pacman 安装过的软件包 ,如果你清理了,那就得费功夫找你原来版本的包了。)
PAM 机制最初由 Sun 公司提出,并在其 Solaris 系统上实现,后来各个版本的 UNIX 以及 Linux 也陆续增加了对它的支持。 Q:为什么要使用PAM?...增强 Linux 服务器的安全性能。 Q:如何使用PAM?...答:当 LINUX 服务器中的某个应用程序或服务需要使用 PAM 来进行验证时,只要此应用程序或服务支持 PAM 验证功能,就可以通过修改其相应的 PAM 配置文件(所有验证功能都是通过一些库文件来提供的...注意事项: Linux系统下的应用程序如果需要得到PAM功能的支持,需要将支持PAM功能的代码集成到了源代码之中;如果你能够得到一个应用程序的原代码,你也可以自行将支持 PAM 的功能代码加入其中。...Linux 用户密码的复杂度可以通过 pam_cracklib 或 pam_passwdqc 模块控制 , 两者不能同时使用个人感觉 pam_passwdqc 更好用。
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。
最近接到一个运维开发任务,需要开发一个帐号管理系统,对手头三千多台 Linux 服务器的 root 帐号进行批量系统的管理,实现定期修改 root 为随机密码并加密存储,并向运维管理 WEB 前台提供密码查询解密接口等功能...看了下错误信息是: chpasswd: PAM authentication failed 实际登陆这台机器,执行 chpasswd,发现也是报这个错误。...试着执行 passwd,也报错了: passwd: pam_start() failed, error 26 搜了半天,也看了半天的洋文案例,都没找到一个贴切的解决办法。...不知道哪个无聊的人把这个系统的/etc/pam.d 给重命名为 pam.d_bak 了!!我去你 XXX,浪费我半天时间。...直接 mv pam.d_bak pam.d,然后就能够执行 echo 'root:newpassword'|chpasswd 来修改密码了。
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
四、 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 设备: /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 国际许可协议 进行许可。
在上一章分析完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
今天主要介绍下PAM4,笔者对此也是刚刚接触,如果有理解错误的地方,还请大家指出。 PAM的英文全称是pulse amplitude modulation, 即脉冲幅度调制。...一个脉冲可以对应更多的状态,PAM4就应运而生。顾名思义,PAM4中,一个脉冲有四种状态,也就是有四种可能的电压值,分别记为00、01、10、11,如下图所示, ?...) 通过PAM4方案,单个脉冲就可以传递两比特信息。...但是天下没有免费的午餐,采用PAM4方案就会有一些代价。相比于NRZ方案,PAM4方案有四种电平,它对噪声更为敏感。因为PAM4更适用于短距离的通信,例如数据中心。...一个很自然的问题,既然PAM4可以提高一倍的信道容量,为什么不采用更多级的电平 ,例如PAM8、PAM16?电平越多,对信噪比的要求也就越高,实现的困难也就越大。
[ 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设备。
假设我们有两个不同的工作环境,开发环境 dev 和生产环境 prod,在这两个不同的环境下有部分环境配置是有区别的,我们可以使用 pyyaml 将他们配置在一起...
BIOS的管理员密码设置完成之后,你需要禁止主机从外部媒体设备(USB/CD/DVD)启动。如果你忽略了这项设置,那么任何人都可以通过一个写入了启动镜像的U盘来访问这台主机中的数据。...存储设备 根据你系统的重要程度,有时你需要禁止Linux主机使用USB存储设备。...打开文件之后,将下列信息添加到文件底部,然后保存并退出: blacklist usb_storage 然后打开rc.local文件: #nano /etc/rc.local 添加下面这两行数据:...modprobe -r usb_storage exit 0 7-系统更新 首次启动之后,第一件事就是更新系统,这一步应该算比较简单了。...旧的密码保存在/etc/security/opasswd文件中,我们需要使用PAM模块来管理Linux主机中的安全策略。
PAM4调制 这样一来,单个符号周期表示的逻辑信息,从NRZ的1bit,变成了2bit,翻了一倍。 ? NRZ VS PAM4 (右边是眼图) 那么问题来了,这么爽的技术,为啥之前不用?...PAM4对噪声更加敏感。如果噪声太大,显然也会导致PAM4调制无法正常工作。 光纤通信的传输,吹泡泡的速度可是非常快的。 我们以单路25G波特率为例。...采用PAM4调制技术的话,翻个倍,变成50Gbps。所以,1个25G EML芯片采用PAM4调制之后,就可以做成了单通道50G的PAM4光模块。...我们再举一个基于PAM4调制的400G DML光收发模块的例子。...好啦,以上就是NRZ和PAM4的简单科普。大家都看懂了吗? ?
它在linux世界非常流行,安全,性能高。 本文的目的是让PgSQL存储你的vsftp的虚拟用户和密码,通过一个叫做pam的来认证。 零、简述PAM原理。...代码: 用户 vsftpd PAM模块 用户和密码数据库 vsftpd用了一种很聪明同时也是unix/linux规范的方法来认证用户,就是PAM。大家对于PAM,也许有些陌生,但是一直在用。...pam的配置机制在不同版本的freebsd上有差异。 freebsd-4放在/etc/pam.conf,一个文件记录所有pam服务。...freebsd-5放在/etc/pam.d,/usr/local/etc/pam.d。每个pam服务由一个独立的文件记录。 本文不打算详细叙述PAM的配置。...freebsd的port里头除了有pam_pgsql的模块以外,还有pam_mysql,pam_ldap的。
是因为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元无门槛券
手把手带您无忧上云