第十节、注册字符类设备
本节用于介绍如何注册字符类设备
注册杂项设备:
1 | misc_register(&misc_dev); |
注销杂项设备:
1 | misc_deregister(&misc dev); |
cdev结构体:描述字符设备的一个结构体
文件位置路径:include/linux/cdev.h
1 | struct cdev { |
步骤一、定义一个cdev结构体
步骤二、使用cdev_init函数初始化cdev结构体成员变量
文件位置路径:include/linux/cdev.h
实际函数位置路径:fs/char_dev.c
1 | void cdev_init(struct cdev *, const struct file_operations *); |
步骤三、使用cdev_add函数注册到内核
文件位置路径:include/linux/cdev.h
实际函数位置路径:fs/char_dev.c
1 | int cdev_add(struct cdev *, dev_t, unsigned); |
注销字符设备
文件位置路径:include/linux/cdev.h
实际函数位置路径:fs/char_dev.c
1 | void cdev_del(struct cdev *); |
字符设备注册完之后不会自动生成设备节点。
我们需要使用mknod命令创建一个设备节点
格式:
mknod 名称 类型 主设备号 次设备号
1 | root@localhost:~# mknod /dev/chrdev c 235 0 |