天天看點

linux下自動加載裝置驅動程式子產品

假設你的裝置驅動程式為:yourdrivername.ko  

1 cp yourdrivername.ko /lib/modules/"version"/kernel/drivers/misc  

其中,version為linux的版本,預設為:2.6.23.1-42.fc8  

2 編輯/lib/modules/"version"/modules.dep,設定驅動程式之間的關聯,增加一行:  

/lib/modules/"version"/kernel/drivers/misc/yourdrivername.ko:  

如果有關聯,在:後面标注關聯的驅動程式名稱  

3 編輯/etc/rc.d/rc.local,增加一行  

/sbin/modprobe yourdrivername

.子產品加載的兩種方式

1)、動态加載

    動态加載是将驅動子產品加載到核心中,而不能放入/lib/modules/下。

     在2.4核心中,加載驅動指令為:insmod ,删除子產品為:rmmod;

     在2.6以上核心中,除了insmod和rmmod外,加載指令更有modprobe;

     insmod和modprobe不同之處:

     insmod 絕對路徑/××.o,而modprobe ××即可,不用加.ko或.o字尾,也不用加路徑;最重要的一點是:modprobe同時會加載目前子產品所依賴的其他子產品;

     lsmod檢視目前加載到核心中的所有驅動子產品,同時提供其他一些資訊,比如其他子產品是否在使用另一個子產品。

2)、靜态加載

(一)概念

     在執行make menuconfig指令進行核心設定裁剪時,在視窗中能選擇是否編譯入核心,還是放入/lib/modules/下相應核心版本目錄中,還是不選。

(二)操作步驟

     linux裝置一般分為:字元裝置、塊裝置和網絡裝置,每種裝置在核心原始碼目錄樹drivers/下都有對應的目錄,其加載方法類似,以下以字元裝置靜态加載為例,假設驅動程式原始碼名為ledc.c,具體操作步驟如下:

     第一步:将ledc.c源程式放入核心源碼drivers/char/下;

     第二步:修改drivers/char/config.in檔案,具體修改如下:

            按照打開檔案中的格式添加即可;

繼續閱讀