濮阳杆衣贸易有限公司

主頁 > 知識庫 > linux 驅(qū)動之Kconfig文件和Makefile文件實例

linux 驅(qū)動之Kconfig文件和Makefile文件實例

熱門標簽:春運地圖標注app 江西全自動外呼系統(tǒng)報價 上海機器人外呼系統(tǒng)哪家好 昆明電銷機器人價格 梧州防封電銷卡 400的電話一般從哪里辦理 地圖標注人員分布 益陽400電話申請辦理流程 怎么用百度地圖標注坐標

linux 驅(qū)動之Kconfig文件和Makefile文件實例

在Linux編寫驅(qū)動的過程中,有兩個文件是我們必須要了解和知曉的。這其中,一個是Kconfig文件,另外一個是Makefile文件。如果大家比較熟悉的話,那么肯定對內(nèi)核編譯需要的.config文件不陌生,在.config文件中,我們發(fā)現(xiàn)有的模塊被編譯進了內(nèi)核,有的只是生成了一個module。這中間,我們?nèi)绾巫寖?nèi)核發(fā)現(xiàn)我們編寫的模塊呢,這就需要在Kconfig中進行說明。至于如何生成模塊,那么就需要利用Makefile告訴編譯器,怎么編譯生成這個模塊。模仿其實就是最好的老師,我們可以以內(nèi)核中經(jīng)常使用到的網(wǎng)卡e1000模塊為例,說明內(nèi)核中是如何設(shè)置和編譯的。

    首先,我們可以看一下,在2.6.32.60中關(guān)于e1000在Kconfig中是怎么描述的,

config E1000 
 tristate "Intel(R) PRO/1000 Gigabit Ethernet support" 
 depends on PCI 
 ---help--- 
  This driver supports Intel(R) PRO/1000 gigabit ethernet family of 
  adapters. For more information on how to identify your adapter, go 
  to the Adapter  Driver ID Guide at: 
 
  http://support.intel.com/support/network/adapter/pro100/21397.htm> 
 
  For general information and support, go to the Intel support 
  website at: 
 
  http://support.intel.com> 
 
  More specific information on configuring the driver is in 
  file:Documentation/networking/e1000.txt>. 
 
  To compile this driver as a module, choose M here. The module 
  will be called e1000. 

    上面的內(nèi)容是從drivers/net/Kconfig中摘錄出來的。內(nèi)容看上去不復雜,最重要的就是說明了模塊的名稱、用途、依賴的模塊名、說明等等。只要有了這個說明,我們在shell下輸入make menuconfig的時候就可以看到e1000這個選項了,輸入y表示編譯內(nèi)核;輸入n表示不編譯;輸入m表示模塊編寫,這是大家都知道的。

    那么,有了這個模塊之后,需要編譯哪些文件中,我們在drivers/net/Makefile看到了這樣的內(nèi)容,

obj-$(CONFIG_E1000) += e1000/ 

    顯然,這段代碼只是告訴我們,要想編譯e1000,必須要包含e1000這個目錄,所以e1000目錄下必然還有一個Makefile,果不其然,我們在e1000目錄下發(fā)現(xiàn)了這個Makefile,內(nèi)容如下,

obj-$(CONFIG_E1000) += e1000.o 
 
e1000-objs := e1000_main.o e1000_hw.o e1000_ethtool.o e1000_param.o 

    看了這個文件,其實大家心理就應該有底了。原來這個e1000模塊最終生成的文件就是e1000.ko,依賴的文件就是e1000_main.c、e1000_hw.c、e1000_ethtool.c、e1000_param.c這四個文件。只要CONFIG_E1000被設(shè)置了,那么這個模塊就會被正常編譯。我們要做的就是打開這個開關(guān)就可以了,剩下kernel會幫我們搞定一切。當然,如果大家想把這個模塊拿出來,自己用一個獨立的module編譯也是可以的。

    關(guān)于linux驅(qū)動的編譯部分,其實就這兩個配置文件比較重要。大家可以自己實際練習一下,進一步加深印象。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

您可能感興趣的文章:
  • Makefile/cmake/node-gyp中區(qū)分判斷不同平臺的方法
  • C語言 makefile學習及實現(xiàn)實例
  • Linux里Makefile是什么?它是如何工作的?
  • Linux 中makefile的命令包定義及使用
  • Linux makefile 和shell文件相互調(diào)用實例詳解
  • 關(guān)于Linux下對于makefile的理解
  • Python實現(xiàn)生成簡單的Makefile文件代碼示例
  • Linux/Unix環(huán)境下的Make和Makefile詳解
  • Linux下Makefile的automake生成全攻略
  • C++關(guān)于Makefile的詳解含通用模板

標簽:懷化 河南 亳州 北京 九江 贛州 新疆 惠州

巨人網(wǎng)絡通訊聲明:本文標題《linux 驅(qū)動之Kconfig文件和Makefile文件實例》,本文關(guān)鍵詞  linux,驅(qū)動,之,Kconfig,文件,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《linux 驅(qū)動之Kconfig文件和Makefile文件實例》相關(guān)的同類信息!
  • 本頁收集關(guān)于linux 驅(qū)動之Kconfig文件和Makefile文件實例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    莆田市| 台州市| 宝应县| 施秉县| 大姚县| 灵寿县| 和静县| 彰化市| 沅江市| 焦作市| 浑源县| 乌什县| 衡阳县| 大同县| 新安县| 华池县| 菏泽市| 大洼县| 弥渡县| 贡山| 宁夏| 梁山县| 谷城县| 宁远县| 松滋市| 邛崃市| 盐池县| 海林市| 福建省| 天台县| 黑龙江省| 太和县| 西青区| 苍溪县| 通江县| 泰州市| 西安市| 宁化县| 晋宁县| 汤阴县| 聂荣县|