歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 關於Linux driver中device_create()使用的注意事項

關於Linux driver中device_create()使用的注意事項

日期:2017/2/28 16:07:03   编辑:Linux教程

使用內核版本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);

Copyright © Linux教程網 All Rights Reserved