linux核心驅動模組載入方式

來源:互聯網
上載者:User

在類unix作業系統中,驅動載入方式一般分為:動態載入和靜態載入,下面分別對其詳細論述。
一、動態載入
    動態載入是將驅動模組載入到核心中,而不能放入/lib/modules/下。
     在2.4核心中,載入驅動命令為:insmod ,刪除模組為:rmmod;
     在2.6以上核心中,除了insmod與rmmod外,載入命令還有modprobe;
     insmod與modprobe不同之處:
     insmod 絕對路徑/××.o,而modprobe ××即可,不用加.ko或.o尾碼,也不用加路徑;最重要的一點是:modprobe同時會載入當前模組所依賴的其它模組;
     lsmod查看當前載入到核心中的所有驅動模組,同時提供其它一些資訊,比如其它模組是否在使用另一個模組。
二、靜態載入
(一)概念
     在執行make menuconfig命令進行核心配置裁剪時,在視窗中可以選擇是否編譯入核心,還是放入/lib/modules/下相應核心版本目錄中,還是不選。
(二)操作步驟
     linux裝置一般分為:字元裝置、塊裝置和網路裝置,每種裝置在核心原始碼分類樹drivers/下都有對應的目錄,其載入方法類似,以下以字元裝置靜態載入為例,假設驅動程式原始碼名為ledc.c,具體操作步驟如下:
     第一步:將ledc.c來源程式放入核心源碼drivers/char/下;
     第二步:修改drivers/char/Config.in檔案,具體修改如下:
            按照開啟檔案中的格式添加即可;
            在檔案的適當位置(這個位置隨便都可以,但這個位置決定其在make menuconfig視窗中所在位置)加入以下任一段代碼:
          
            tristate LedDriver CONFIG_LEDC
            if [ "$CONFIG_LEDC" = "y" ];then
            bool   Support for led on h9200 board CONFIG_LEDC_CONSOLE
            fi
            說明:以上代碼使用tristate來定義一個宏,表示此驅動可以直接編譯至核心(用*選擇),也可以編製至/lib/modules/下(用M選擇),或者不編譯(不選)。
 
            bool LedDriver CONFIG_LEDC
            if [ "$CONFIG_LEDC" = "y" ];then
            bool   Support for led on h9200 board CONFIG_LEDC_CONSOLE
            fi
            說明:以上代碼使用tristate來定義一個宏,表示此驅動只能直接編譯至核心(用*選擇)或者不編譯(不選),不能編製至/lib/modules/下(用M選擇)。
   
     第三步:修改drivers/char/Makefile檔案
            在適當位置加入下面一行代碼:
             obj-$(CONFIG_LEDC)  +=  ledc.o
            或者在obj-y一行中加入ledc.o,如:
            obj-y += ledc.o mem.o 後面不變;
 
     OK,經過以上的設定就可以在執行make menuconfig命令後的視窗中的character devices---> 中進行選擇配置了。選擇後重新編譯就ok了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.