添加dev设备节点

查看/proc/devices 文件可以获知系统中注册的设备,第 1 列为主设备号,第 2 列为设备名,cat /dev/ 可以查看到所有的设备节点

手动创建设备名

mknod /dev/设备名 设备类型(字符:c,块:b) 主设备号 从设备号

自动创建

在驱动初始化代码里调用class_create为该设备创建一个class,再为每个设备调用device_create创建对应的设备。

  • 驱动加载:分配设备号----注册字符设备------------动态创建设备节点。
  • 驱动卸载:删除设备节点----取消字符设备的注册-----------删除设备号。

1、定义一个class,和一个设备的结构指针

  • static struct class *class
  • static struct device *class_dev

2、创建字符设备

3、调用 test_class = class_create(THIS_MODULE,“test_class”)
会在sys/class目录下生成test_class文件夹,test_class可以随意命名

4、调用test_class_dev = device_create(test_class, parent->dev, MKDEV(major, 0), drver_data(驱动的数据), “xxx”)
会在/dev目录下生成xxx的设备文件,major是主设备号

5、注销顺序

  • device_destroy() 删除设备节点
  • class_destroy() 删除class
  • unregister_chrdev()

你可能感兴趣的:(添加dev设备节点)