linux驱动中如何自动生成设备文件节点?

本文介绍了Linux驱动中如何自动生成设备文件节点,包括mdev机制和在/dev下生成设备文件的方法。通过mdev和udev,可以在驱动加载和卸载时自动管理设备节点,同时讲解了class_create、device_create和device_destroy等函数在创建和删除设备文件节点中的应用。
摘要由CSDN通过智能技术生成

linux驱动中如何自动生成设备文件节点?


一、自动生成设备文件的必要性

    在我们初学驱动开发的时候,我们的设备文件需要我们在知道设备号之后,使用命令 “mknod c|b dev_name major minor” 来生成,这样的设备文件生成方法在实际项目中显然是不行的,当驱动程序过多的时候,我们很难有精力来管理这么多的设备文件。因此,在驱动中,使得设备文件能够自动生成非常有必要。下面,将介绍在两种不同目录下生成设备文件的方法。

二、如何自动生成设备文件节点
1. mdev机制

    udev 是一个用户程序,在 Linux 下通过 udev 来实现设备文件的创建与删除,udev 可以检测系统中硬件设备状态,可以根据系统中硬件设备状态来创建或者删除设备文件。比如使用insmod或modprobe 命令成功加载驱动模块以后就自动在/dev 目录下创建对应的设备节点文件,使用rmmod 命令卸载驱动模块以后就删除掉/dev 目录下的设备节点文件。使用 busybox 构建根文件系统的时候,busybox 会创建一个 udev的简化版本—mdev,所以在嵌入式 Linux 中我们使用mdev 来实现设备节点文件的自动创建与删除,Linux 系统的热插拔事件也由 mdev 管理,在/etc/init.d/rcS 文件中如下语句:

echo /sbin/mdev > /proc/sys/kernel/hotplug

    上述命令设置热插拔事件由 mdev 来管理,关于 udev 或 mdev 更加详细的工作原理这里就不详细探讨了,我们重点来学习一下如何通过 mdev 来实现设备文件节点的自动创建与删除。

2. 在/de
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值