news 2026/9/9 12:49:44

十八、使用class分类管理设备

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
十八、使用class分类管理设备

设备的大管家class

  • 使用class对硬件设备进行分类管理
  • class与用户空间守护进程udev/mdev协作,自动创建设备文件
设备驱动模型框图

  1. Linux内核启动的过程中会调用classes_init()函数在sysfs文件系统中创建一个名为class的文件夹。
  2. 我们在驱动中调用class_create()函数,在class文件夹下创建一个指定名称的分类文件夹(比如指定分类名为xxx)。
  3. 我们继续在驱动中调用device_create()函数,在指定的分类中又创建一个表示设备的文件夹(比如指定设备名为yyy)。调用这个函数的时候,我们会传入设备号,所以这个设备文件夹下会生成一个名为dev的设备属性文件存放设备号。
  4. device_create()函数除了创建/sys/class/xxx/yyy这个设备目录,还会调用kobject_uevent()函数给用户空间的udev/mdev守护进程发送一个新增设备的消息。udev/mdev收到这个消息后,会去读取/sys/class/xxx/yyy/dev属性文件中的设备号,然后调用mknod()函数在/dev目录下创建一个名为yyy的设备节点。
相关函数
创建一个class
class_create宏

include/linux/device.h

#defineclass_create(owner,name)\({\staticstructlock_class_key__key;\__class_create(owner,name,&__key);\})structclass*__class_create(structmodule*owner,constchar*name,structlock_class_key*key);
  • owner:一般设置为THIS_MODULE
  • name:kobject对象的名字,也即是目录的名称
  • struct class里面间接继承了kobject对象
在class下添加kobject对象
device_create()函数

include/linux/device.h

structdevice*device_create(structclass*class,structdevice*parent,dev_tdevt,void*drvdata,constchar*fmt,...);
  • class:新构建的class
  • parent:新kobject对象的上一层节点,一般为NULL
  • dev_t:属性文件记录该设备号
  • drvdata:私有数据,一般为NULL
  • fmt:变参参数,一般用来设置kobject对象的名字
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/7 13:54:06

Open-AutoGLM到底有多强?:3大核心技术亮点颠覆你的认知

第一章:Open-AutoGLM到底有多强?重新定义智能编码边界Open-AutoGLM 作为新一代开源自动代码生成语言模型,正以惊人的理解力与生成能力重塑开发者对智能编程的认知。它不仅能够精准解析自然语言需求并转化为可执行代码,还能在复杂系…

作者头像 李华
网站建设 2026/9/2 10:30:34

企业怎么挑能对接多业务系统的绩效管理平台?避坑要点解析

在企业数字化管理中,绩效管理平台不再是单一的考核工具,能否对接 HR 系统、财务系统、业务系统等多业务系统,直接影响数据流转效率与管理决策准确性。很多 HR 在选择时,常因忽视系统对接能力,导致数据孤岛、重复录入等…

作者头像 李华
网站建设 2026/9/6 15:53:14

Open-AutoGLM移动端配置难?这份保姆级教程让你10分钟上手

第一章:Open-AutoGLM移动端配置概述Open-AutoGLM 是一款面向移动端的轻量化大语言模型推理框架,专为在资源受限设备上高效运行自然语言任务而设计。其核心优势在于通过动态图优化与算子融合技术,在保持高精度的同时显著降低内存占用和计算延迟…

作者头像 李华
网站建设 2026/9/3 4:13:25

计算机毕业设计springboot露营商城系统 基于SpringBoot的户外装备在线商城的设计与实现 面向露营爱好者的SpringBoot一站式户外用品购物平台

计算机毕业设计springboot露营商城系统5s26x22x (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。露营经济在近两年呈爆发式增长,轻量化、精致化的“野奢”理念让帐篷、…

作者头像 李华
网站建设 2026/9/8 16:12:45

从研究到落地:PaddlePaddle镜像助力AI项目产业化

从研究到落地:PaddlePaddle镜像助力AI项目产业化 在人工智能技术加速渗透各行各业的今天,一个现实问题始终困扰着开发者:为什么实验室里跑得很好的模型,到了生产环境却频频“水土不服”?环境不一致、依赖冲突、部署复杂…

作者头像 李华