感谢支持
我们一直在努力

关于Linux driver中device_create()使用的注意事项

使用内核版本Linux 2.6.32


通过驱动模块的加载在/dev下创建设备文件,在驱动模块卸载时又自动的删除在/dev下创建的设备文件非常方便。而这个过程就是通过device_create()和device_destroy()内核函数完成的,在Linux2.6.27之前是class_device_create()和class_device_destroy()。最近在开发过程中发现device_create()参数使用很灵活,一不小心就会导致加载时内核报oops错误(vsnprintf引起)。google上搜到的一些文章也有着问题。如如下使用就会出错:


device_create(my_class, NULL, MKDEV(major,minor), “hello” “%d”,0);


在”hello” “%d”之间加上“,”能解决insmod 时oops错误,但是还是不能在/dev目录下创建想要的设备文件。正确的调用方法如下:


device_create(my_class, NULL, MKDEV(major,minor), NULL,”hello%d”,0);

赞(0) 打赏
转载请注明出处:服务器评测 » 关于Linux driver中device_create()使用的注意事项
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏