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


    通過驅動模塊的加載在/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);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM