Linux網(wǎng)卡驅動(dòng)程序編寫(xiě)
模塊可以動(dòng)態(tài)地加載、卸載。在2.0.xx版本里,還有kerneld自動(dòng)加載模塊,但是2.2.xx中已經(jīng)取消了kerneld。手工加載使用insmod命令,卸載用rmmod命令,看內核中的模塊用lsmod命令。
編譯驅動(dòng)程序用gcc,主要命令行參數-DKERNEL-DMODULE。并且作為模塊加載的驅動(dòng)程序,只編譯成obj形式(加-c參數)。編譯好的目標文件放在/lib/modules/2.x.xx/misc下,在啟動(dòng)文件里用insmod加載。
四.進(jìn)一步的閱讀
Linux程序設計資料可以從網(wǎng)上獲得。這就是開(kāi)放源代碼的好處。并且沒(méi)有什么“未公開(kāi)的秘密”。我編寫(xiě)驅動(dòng)程序時(shí)參閱的主要資料包括:
Linux內核源代碼
byollyinBBS水木清華站
可以選擇一個(gè)模板作為開(kāi)始,內核源代碼里有一個(gè)網(wǎng)絡(luò )驅動(dòng)程序的模板,
drivers/net/skeleton.c。里面包含了驅動(dòng)程序的基本內容。但這個(gè)模板是以以太網(wǎng)設備為對象的,以太網(wǎng)的處理在Linux系統里有特殊“待遇”,所以如果不是以太網(wǎng)設備,有些細節上要注意,主要在初始化程序里。
最后,多參照別人寫(xiě)的程序,聽(tīng)聽(tīng)其他開(kāi)發(fā)者的經(jīng)驗之談大概是最有效的幫助了。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論