1)手工mknod创建

2)自动

自动创建(2.6内核)

使用udevmdev),它存在于应用层。

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

device_create创建对应的设备

  1. 例子:struct class *myclass = class_create(THIS_MODULE,"my_device_driver");  
  2.   
  3. device_create(myclass,NULL,MKDEV(major_num,0),NULL,"my_device");  


当驱动被加载时,udevmdev)就会自动在/dev下创建my_device设备文件

在初始化驱动程序中加入以下代码:

  1. /*自动创建设备文件*/  
  2.   
  3. myclass = class_create(THIS_MODULE,"test_char"); /*在sys下创建类目录/sys/class/test_char*/  
  4.   
  5. device_create(myclass, NULL, MKDEV(mem_major,0), NULL, "memdev0"); //自动创建设备文件memdev0