news 2026/4/23 11:30:11

十八、使用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/4/23 10:50:21

【QOwnNotes】安装笔记

一、Windows 直接安装方式 1. 官方安装包 下载地址:https://www.qownnotes.org/installation 安装步骤: 访问官网下载页面选择 Windows 安装包(通常是 .exe 或 .msi 格式)双击运行安装程序按照向导完成安装在开始菜单或桌面找到快…

作者头像 李华
网站建设 2026/4/23 10:50:19

错过再等十年?Open-AutoGLM即将改变AI开发模式,你准备好了吗?

第一章:错过再等十年?Open-AutoGLM的变革意义Open-AutoGLM 的发布标志着自动化机器学习与大语言模型融合迈入新纪元。它不仅重新定义了模型训练的效率边界,更在开源生态中点燃了一场技术革命。传统AutoML依赖大量人工调参和特征工程&#xff…

作者头像 李华
网站建设 2026/4/17 5:28:03

使用PaddlePaddle镜像快速部署OCR与目标检测应用

使用PaddlePaddle镜像快速部署OCR与目标检测应用 在智能制造、金融票据处理和安防监控等实际场景中,企业对自动化视觉系统的依赖正以前所未有的速度增长。一个典型的挑战是:如何在有限的开发周期内,将高精度的OCR识别与目标检测能力稳定地部署…

作者头像 李华
网站建设 2026/4/21 9:11:51

PaddlePaddle镜像深度测评:中文自然语言处理表现如何?

PaddlePaddle镜像深度测评:中文自然语言处理表现如何? 在当今AI应用快速落地的背景下,开发者面临的最大挑战之一不再是“有没有模型”,而是“能不能跑起来”。尤其是在中文自然语言处理(NLP)场景下&#xf…

作者头像 李华
网站建设 2026/4/23 10:44:23

Windows系统文件wship6.dll丢失损坏 下载方法

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/4/17 14:09:09

PaddleOCR太强了!基于PaddlePaddle镜像的高精度文本识别方案

PaddleOCR太强了!基于PaddlePaddle镜像的高精度文本识别方案 在企业数字化转型加速的今天,每天有成千上万份纸质单据、合同、发票被扫描录入系统。传统人工录入不仅效率低下,还容易出错。有没有一种方式,能让机器“看懂”这些文档…

作者头像 李华