1.自动创建设备节点
昨天刚刚试过,用一般字符设备的方式生成模块,但是模块加载到开发板上去发现,不能在/dev下生成设备节点,这样就无法使用应用程序测试驱动。最后,发现是因为我使用的是动态注册设备的办法,这种办法虽然可以避免静态注册的麻烦,但是会造成无法直接生产设备节点,现在在程序中加入udev/mdev的办法,自动创建设备节点。
在驱动初始化代码里调用class_create为该设备创建一个class,再为每个设备调用device_create创建对应的设备。
eg: struct class *myclass=class_create(THIS_MODULE,"my_device_driver");
device_create(myclass,NULL,MKDEV(major_num,0),NULL,"mydevice")
当驱动被加载时,udev(mdev)就会自动在/dev下创建my_device设备文件
动态设备自动创建设备节点的办法(//*****之间内容为添加自动创建设备节点的代码)