驱动程序的加载方式
Linux設備驅動程序有兩種加載方式。第一種是直接編譯進Linux內核,在Linux啟動時加載;第二種是采用內核模塊方式,利用模塊可動態加載。
如果希望將新驅動程序編譯進內核,需要修改內核代碼和編譯選項。下面以字符型設備為例,說明如何在Linux 2.6內核中添加一個新的設備驅動程序。如果驅動程序代碼源文件為infrared_s3c2410.c,將infrared_s3c2410.c復制到內核代碼的/drivers/char目錄,并在該目錄下的Kconfig文件中添加如下語句:
在該目錄下的Makefile中添加如下語句:
進入Linux 2.6內核源代碼目錄,執行make menuconfig命令后,單擊【device drivers】→【character devices】,進入如圖1-3所示的內核配置窗口。
 在內核配置窗口中可以使用上下鍵、空格鍵和回車鍵來進行選擇、移動和取消選擇。內核配置窗口中以< >開頭的行表示內核模塊的配置,以[ ]開頭的行表示內核功能的配置。選項前如果為<*>,表示相應的模塊將被編譯進內核。如果選項前是< >則表示不編譯進內核。這里在【INFRARED Driver for REMOTE】行前面配置為<*>,則infrared_ s3c2410.o將被編譯進內核。在使用make zImage命令編譯內核時所有配置為<*>的項都將被包含在內核映像中。
 
| ? | 
| 圖1-3? 在內核中增加新驅動程序 | 
如果使用make命令編譯內核相當于執行make zImage和make modules兩個命令
總結
 
                            
                        - 上一篇: Linux设备驱动程序概念
- 下一篇: 编写可加载模块
