在Linux中,每一个设备都有一个设备号,用来标识这个设备。设备号是由主设备号和次设备号组成的。主设备号用来标识设备的类型,次设备号用来标识同类型设备中的不同设备。在Linux中,设备号的使用是非常广泛的,因为它和设备驱动程序是密不可分的关系。所以,了解对于理解Linux设备驱动程序的开发非常重要。

1. 设备号的获取方法
在Linux中,设备号的获取方法有两种:静态获取和动态获取。静态获取是在设备驱动程序代码中指定设备号,这样设备就固定地绑定在特定的设备号上。动态获取是让Linux自动分配设备号。Linux内核支持两种设备号自动获取的方法,一种是udev,另一种是sysfs。我们重点介绍一下udev方法。
2. udev设备管理器
udev是Linux中用来管理设备的服务,它能够以很快的速度扫描所有设备,并自动获取设备的相关信息。udev为Linux内核提供了一个设备节点命名规则的框架,即为每一个设备分配一个唯一的设备节点名,并通过符号链接来方便用户和应用程序的访问。
在udev中,主设备号用于匹配设备,次设备号用于区分相同类型的设备。udev规则文件中主设备号和次设备号需要配合使用。当新的设备入到系统中时,udev会自动调用系统中的规则文件进行设备识别和自动设备号分配。如果规则文件中不存在与之配置相匹配的规则,则udev不会为该设备分配设备号。
3. udev规则文件
udev规则文件是一组基于设备名称、属性、驱动程序名称和路径等数据来定义的规则,通过这些规则,可以确定与该规则相关联的设备的名称、属性、驱动程序和权限等信息。在设备插入或删除时,udev会根据规则文件中的定义和设备的特征来决定设备名称。udev规则文件可以分为三个部分:
①匹配条件(match)
匹配条件是根据设备的特征来定义的,包含以下选项:
KERNEL – 定义了设备的内核名称。
ATTRS – 定义了设备的属性,如设备的制造商、设备型号等。
DRIVERS – 定义了设备的驱动程序名称。
SUBSYSTEM – 定义了设备所属子系统的名称。
②设备属性设置(device attributes)
设备属性设置是定义了设备节点的名称、权限、符号链接等。其中,名称属性(NAME)和最常用的属性之一,定义了设备节点的名称,可使用%k变量代替KERNEL参数的值。权限属性(MODE、OWNER、GROUP)则可以定义设备节点的权限信息。
③符号链接(symbolic links)
符号链接是在指定的目标目录下为设备节点创建链接,这样用户就可以通过符号链接名访问该设备。符号链接属性(SYMLINK)可以定义符号链接的名字。
4. 设备节点文件的创建
当udev规则文件匹配成功后,会根据规则文件中的设备属性设置信息创建设备节点文件。设备节点文件是设备驱动程序需创建的,它们位于/dev目录下。
二、本文
udev方法适用于基于Linux2.6以上内核的系统,可以实现设备号的自动获取,简化了设备驱动程序的开发。udev规则文件中有多项匹配条件,根据匹配条件可以定义设备节点的名称、权限、符号链接等属性。udev的使用可以方便地管理各种硬件设备,提升了Linux内核的实用性。
相关问题拓展阅读:
两台linux服务器,一台共享存储,但是一台linux识别出来的是/dev/sdb,一台识别出来的是/dev/sdc,
没办法,linux自己认的戚纯举,特别是盘数量多的时候更麻烦,顺序完全是乱的。
解高碧决办法是LVM将盘管理起来,就不裤握会有变号的问题。
用设备号来识别硬盘是不靠罩缺带谱的 ,设备号会随着本机的硬盘数量变化而变化。更好的方法是依靠UUID来识别,不管硬盘拿到哪台服务器物芦都不会变扮或化。
ls /dev/disk/by-uuid -l
可以显示硬盘UUID号
对 /dev/disk/by-uuid/xxxxxxxxx/dev/sdax 操作效果是一样的
StarOS软件打包组为您解答
一台linux识别出来的是/dev/sdb用设备号来识别硬盘是不靠谱的
Linux下如何加载一个字符驱动的设备
在/dev下看到设备文件?
那么就要看你的程序中设备文件的创建是静态的还是动态的了,如果瞎备是动态的话,应该可以直首尘接生成,如果是静态的(mkdir 设备名 设备类型 主设备号 次设备号)名字一定要者神禅正确 否则设备和驱动的是无法匹配的
linux自动获取设备号的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux自动获取设备号,Linux设备号自动获取的方法,两台linux服务器,一台共享存储,但是一台linux识别出来的是/dev/sdb,一台识别出来的是/dev/sdc,,Linux下如何加载一个字符驱动的设备的信息别忘了在本站进行查找喔。
香港服务器首选树叶云,2H2G首月10元开通。树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。
如何安装路由器
路由器快速安装指南:1、连接路由器:如果是电话线到户,首先把路由器的WAN口和MODEM的LAN连接; 如果是网线到家,就直接把网线接到路由器WAN口;然后电脑网卡连接路由器的任意一个LAN口,相应的WAN口灯、LAN口灯要亮。 2、配置计算机的IP地址:下面将介绍自动获取IP和手工指定IP两种设置方法,以WinXP系统为例。 如果你的计算机安装的是Windows95/98,请参照说明书《附录一Windows95/98环境下TCP/IP设置》。 首先介绍自动获取IP的设置方法,在桌面上右键点“网上邻居”,选择“属性”,在“本地连接”上点右键选“属性” ,打开TCP/IP 协议的属性选择自动获取IP地址以及自动获取DNS服务器地址,点击“确定”,然后在电脑上执行:“开始”-“运行”,输入“cmd”,确定,出现命令提示符窗口,输入“ipconfig/all”命令,如果出现了如下图所示的IP,表明网卡已经从路由器那里获取到了IP。 如果网卡获取不到IP,或者得到的IP地址为“169.254.X.X”,那么请手工指定IP,设置方法为:在桌面上右键点“网上邻居”,选择“属性”。 在“本地连接”上点右键选“属性”, 打开TCP/IP 协议的属性,路由器默认的LAN口IP地址为192.168.0.1,因此网关需要设置为192.168.0.1,IP地址可以修改,范围为2 ~254,如果有多台电脑共享上网,每台电脑手工指定的IP要设置为不同,否则在一个局域网内会发生冲突。 注意:首选和备用DNS服务器地址为深圳电信的DNS服务器地址,如果您不是深圳电信的用户,那么请向您的网络服务提供商咨询DNS服务器地址,并填写到相应的对话框中,也可以暂时不填,在路由器页面“运行状态”WAN口获取到IP及DNS服务器地址后,再将获取到的DNS(域名服务器地址)填写到电脑中。 3、配置路由器: 然后打开IE浏览器,在地址栏中输入会出现路由器的管理界面的对话框。 用户名和密码默认为admin,点击“确定”,进入路由器的管理界面。 单击下一步,将会出现三种接入方式,根据你的接入方式进行选择。 如果网络提供给你用户名和密码,请选择“ADSL虚拟拨号(PPPoE)”,添入网络供应商为你提供的用户名和密码,单击下一步并保存。 如果自动从网络服务商获取IP地址请选择 “动态IP” 单击下一步并保存。 如果网络供应商提供:IP地址、子网掩码、网关、DNS服务器、备用DNS服务器请选择“以太网宽带,网络服务商提供的固定IP地址(静态IP)” 输入相关信息单击下一步并保存。 设置完成后你就可以正常上网。
在linux环境下怎么打开MYSQL数据库
linux系统进入mysql数据库的方法:连接MYSQL:格式: mysql -h主机地址 -u用户名 -p用户密码1、连接到本机上的MYSQL。 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql>2、连接到远程主机上的MYSQL。 假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。 则键入以下命令:mysql -h110.110.110.110 -uroot -pabcd123(注:u与root可以不用加空格,其它也一样)3、退出MYSQL命令: exit (回车)一个建库和建表以及插入数据的实例:create database school; //建立库SCHOOLuse school; //打开库SCHOOLcreate table teacher //建立表TEACHER(id int(3) auto_increment not null primary key, //id设置为主关键字,并自动设值,也就是添加的时候,你不必向ID字段写内容name char(10) not null,address varchar(50) default 深圳, //设置默值为深圳year date); //建表结束//以下为插入字段insert into teacher values(,glchengang,建平一中,1976-10-10); //ID不用写内容insert into teacher values(,jack,建平一中,1975-12-23);
vb编程问题——文本中提取特定字符
用replace去掉不想要的字符。 然后再分析。
发表评论