如何把裝置驅動檔案添加到Linux核心編譯選項配置的menuconfig中 【目的】 把一個字元裝置驅動檔案,添加到核心中,希望編譯成子產品,而非build-in。 【參考資料】 核心的源碼樹目錄下一般都會有兩個檔案:Kconfig和Makefile。 http://blog.sina.com.cn/s/blog_4a377e150100c896.html 【具體步驟】 1.首先保證已經有驅動源檔案了:as352x_afe_charger.c 放在和其他你所要添加的子產品放在一個目錄下,此處是drivers\i2c\chips下。 2.在drivers\i2c\chips\makefile中,添加: obj-$(CONFIG_AS352X_AFE_CHG) += as352x_afe_charger.o 3.在drivers\i2c\chips\Kconfig 中,添加如下内容: ---------------------------------------------- config AS352X_AFE_CHG tristate "AS352X AFE Charger Driver" depends on I2C_AS352X && AS352X_AFE help If you say yes here you get support for AS352X AFE Charger. This driver can also be built as a module. If so, the module will be called AS352X AFE Charger. ---------------------------------------------- 解釋如下: (1)AS352X_AFE_CHG是自己定義的名字,當然要盡量保證有意義。 同時,你會注意到,在上面的makefile中添加的 obj-$(CONFIG_AS352X_AFE_CHG) += as352x_afe_charger.o 中的CONFIG_AS352X_AFE_CHG,是CONFIG_加上我們在kconfig下寫的config變量。 這兩個要比對,才能實作你在menconfig定義的結果,傳遞到makefile中, 以便決定編譯的時候是如何編譯:不編譯/編譯進核心/編譯成子產品 (2)tristate 表示我此處添加的子產品,可以 在make ARCH=arm menuconfig中看到的,選擇之後: * 編譯到核心中 M 編譯成子產品,即生成XXX.ko 不選中,就不編譯該檔案 (3)depends on I2C_AS352X && AS352X_AFE 是前面自己找到的,表示此編譯選項隻有當I2C_AS352X 和AS352X_AFE都選中,才會出現。 當然,如果此子產品不依賴于其他子產品,則不需要加上這個depends on了。 【附錄】 1.如果設定成M,module模式,則要用 make ARCH=arm 編譯出as352x_afe_charger.ko 而 make ARCH=arm uImage 隻能編譯核心,而不編譯子產品。 |
轉自: http://hi.baidu.com/serial_story/blog/item/e84d11dd69f449d78c10294d.html
轉載于:https://www.cnblogs.com/fly-fish/archive/2011/03/16/1986326.html