news 2026/4/2 3:01:59

Linux驱动-设备号

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux驱动-设备号

主次设备号

设备号是什么

  1. Linux 中每个设备都有一个设备号,设备号由主设备号和次设备号两部分组成。主设备号用于区分设备的类型,次设备号用于区分同一类型的多个设备(对应硬件实体)。
    • 相同硬件设备,相同驱动。一般其主设备号一致,次设备号不同。
  2. 设备号数据类型:dev_t原型是一个32位无符号整形类型的值(unsigned int ),其中高12位表示主设备号,低20位表示次设备号
    • 设备号的取值范围理论上如下:
      • major:0 ~ 4095
      • minor:0 ~ 1,048,575
        但实际上对于字符设备而言,主设备最多只有 255 个,而同一个主设备的次设备最多支持 256 个。
        详见map.c,以上结论还没有实际验证过。
char_dev.c//维护一个设备号分配的哈希表,记录已注册的设备号范围。#defineCHRDEV_MAJOR_HASH_SIZE255structchar_device_struct{structchar_device_struct*next;// 哈希冲突时的链表指针unsignedintmajor;// 主设备号unsignedintbaseminor;// 起始次设备号intminorct;// 次设备号数量charname[64];// 设备名称structcdev*cdev;// 指向对应的cdev结构}*chrdevs[CHRDEV_MAJOR_HASH_SIZE];// 哈希表数组

设备号的相关代码

//由下可知设备号dev_t是无符号32位typedef__kernel_dev_tdev_t;typedef__u32 __kernel_dev_t;typedefunsignedint__u32;//设备号的相关操作#defineMINORBITS20#defineMINORMASK((1U<<MINORBITS)-1)#defineMAJOR(dev)((unsignedint)((dev)>>MINORBITS))#defineMINOR(dev)((unsignedint)((dev)&MINORMASK))#defineMKDEV(ma,mi)(((ma)<<MINORBITS)|(mi))宏 MINORBITS 表示次设备号位数,一共是20位。 宏 MINORMASK 表示次设备号掩码。 宏 MAJOR 用于从dev_t中获取主设备号,将dev_t右移20位即可。 宏 MINOR 用于从dev_t中获取次设备号,取dev_t的低20位的值即可。 宏 MKDEV 用于将给定的主设备号和次设备号的值组合成dev_t类型的设备号。

如何查看设备号

如何查看主次设备号:[[universe/Embedbed/Linux#Linxu目录|Linux目录]]
- cat /proc/devices:列出了系统中已注册的所有字符设备和块设备的主设备号,以及相应的设备名称。不会有次设备号。
-ls -lh /dev:列出设备节点属性,原本文件大下位置,变成主次设备号。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/31 4:48:17

java计算机毕业设计校园闲置交易系统 高校跳蚤市场智能交易平台 校园绿色循环物品交换系统

计算机毕业设计校园闲置交易系统245z09&#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。 毕业季搬家季&#xff0c;楼道里成堆的台灯、教材、球拍、小风扇眼看就要被宿管扔进垃圾桶…

作者头像 李华
网站建设 2026/3/31 5:59:23

Git remote管理远程PyTorch仓库地址

Git Remote 与 PyTorch-CUDA 环境协同实践&#xff1a;构建高效 AI 开发流水线 在深度学习项目中&#xff0c;你是否经历过这样的场景&#xff1f;模型在本地训练完美&#xff0c;部署时却因环境差异报错&#xff1b;团队成员提交的代码版本混乱&#xff0c;合并冲突频发&#…

作者头像 李华
网站建设 2026/3/27 13:17:01

JavaScript性能优化实战技术文章大纲

性能优化的核心原则减少不必要的计算和渲染优化资源加载和执行顺序合理利用缓存机制避免内存泄漏和过度消耗代码层面的优化策略避免全局变量污染&#xff0c;使用模块化开发减少DOM操作&#xff0c;批量处理DOM更新使用事件委托替代大量事件监听优化循环和递归的性能合理使用节…

作者头像 李华
网站建设 2026/3/27 20:25:22

大模型Prompt工程:解决AI输出不稳定问题的终极方法

文章介绍了大模型Prompt工程的方法论&#xff0c;指出模型越强提示词越难写的根本原因在于模型不会理解意图只会预测最可能结果。提出"五段式Prompt工程模型"&#xff1a;角色、目标、输入、过程、输出&#xff0c;并强调结构化、上下文完整和任务拆分的重要性。同时…

作者头像 李华
网站建设 2026/3/30 13:07:29

CCC认证的流程是什么?需要哪些资料?

CCC 认证是中国强制性产品认证&#xff0c;适用于目录内产品的境内销售与进口清关&#xff0c;核心流程为 “目录判定→申请受理→型式试验→初始工厂检查→评定发证→获证后监督”&#xff0c;证书有效期通常 5 年&#xff0c;需按规定加贴 CCC 标志并接受年度监督。标准流程&…

作者头像 李华