當前位置:首頁 » 編程軟體 » 編譯內核引用config

編譯內核引用config

發布時間: 2022-05-15 20:00:08

A. 請問在編譯linux kernel時,能否自動生成.config 文件,在編譯andriod源碼時好像可以!!

編譯 andrioid 時當然可以,那個配置文件是 android 准備好的,可以直接在他的模擬器裡面運行自然 android 知道需要什麼配置文件。

如果你自己編譯,那麼除了你還有誰知道需要什麼配置文件?除了你誰誰還知道你有什麼設置的需求。

Linux 內核自帶了很多默認配置文件,你可以 make help 看看。

B. 怎樣將驅動靜態的編譯到內核中

怎樣將驅動靜態的編譯到內核中
分布在各目錄下的Kconfig構成了一個分布式的內核配置資料庫,每個Kconfig分別描述了所屬目錄源文件相關的內核配置菜單。在內核配置make menuconfig(或xconfig等)時,從Kconfig中讀出配置菜單,用戶配置完後保存到.config(在頂層目錄下生成)中。在內核編譯時,主Makefile調用這個.config,就知道了用戶對內核的配置情況。 上面的內容說明:Kconfig就是對應著內核的配置菜單。假如要想添加新的驅動到內核的源碼中,可以通過修改Kconfig來增加對我們驅動的配置菜單,這樣就有途徑選擇我們的驅動,假如想使這個驅動被編譯,還要修改該驅動所在目錄下的Makefile。因此,一般添加新的驅動時需要修改的文件有兩種(注意不只是兩個)*Kconfig
config symboloptions

symbol就是新的菜單項,options是在這個新的菜單項下的屬性和選項其中options部分有:1、類型定義:
每個config菜單項都要有類型定義,bool:布爾類型, tristate三態:內建、模塊、移除, string:字元串, hex:十六進制, integer:整型例如config HELLO_MODULE
bool "hello test mole" bool類型的只能選中或不選中,tristate類型的菜單項多了編譯成內核模塊的選項,假如選擇編譯成內核模塊,則會在.config中生成一個CONFIG_HELLO_MODULE=m的配置,假如選擇內建,就是直接編譯成內核影響,就會在.config中生成一個CONFIG_HELLO_MODULE=y的配置.2、依賴型定義depends on或requires
指此菜單的出現是否依賴於另一個定義config HELLO_MODULE
bool "hello test mole"
depends on ARCH_PXA
這個例子表明HELLO_MODULE這個菜單項只對XScale處理器有效,即只有在選擇了ARCH_PXA,該菜單才可見(可配置)。3、幫助性定義
只是增加幫助用關鍵字help或---help---

更多詳細的Kconfigconfig語法可參考: Second: 內核的Makefile內核的Makefile分為5個組成部分:
Makefile 最頂層的Makefile
.config 內核的當前配置文檔,編譯時成為頂層Makefile的一部分
arch/$(ARCH)/Makefile 和體系結構相關的Makefile
s/ Makefile.* 一些Makefile的通用規則
kbuild Makefile 各級目錄下的大概約500個文檔,編譯時根據上層Makefile傳下來的宏定義和其他編譯規則,將源代碼編譯成模塊或編入內核。頂層的Makefile文檔讀取 .config文檔的內容,並總體上負責build內核和模塊。Arch Makefile則提供補充體系結構相關的信息。 s目錄下的Makefile文檔包含了任何用來根據kbuild Makefile 構建內核所需的定義和規則。(其中.config的內容是在make menuconfig的時候,通過Kconfig文檔配置的結果) 在linux2.6.x/Documentation/kbuild目錄下有詳細的介紹有關kernel makefile的知識。最後舉個例子:
config MTD_flashtest
tristate 「ap71 flash"這樣當make menuconfig時 ,將會出現 ap71 flash選項。第三:修改該目錄下makefile文檔。
添加如下內容:obj-$(CONFIG_MTD_flashtest) += flashtest.o這樣,當您運行make menucofnig時,您將發現ap71 flash選項,假如您選擇了此項。該選擇就會保存在.config文檔中。當您編譯內核時,將會讀取.config文檔,當發現ap71 flash 選項為yes 時,系統在調用/driver/mtd/maps/下的makefile 時,將會把 flashtest.o 加入到內核中。即可達到您的目的。

C. 怎樣使用新編譯的內核進行啟動

step 1

准備:(1). 所需的內核源碼

step2:

  • 切換到源碼所在的目錄,make distclean 命令:刪除生產的.o 和 .config 文件

  • 編譯內核之前需要一份配置文件,並在此基礎上修改,故借用本地/boot/config-3.13.0-24-generic配置文件,命令: cp /boot/config-3.13.0-24-generic /home/yangqi/code/linux/linux-4.2.3/.config

  • 該配置文件.config 即是對內核裁剪的配置,不用直接打開修改,系統提供menu界面修改,命令:make menuconfig (如果此命令報錯,說明需要裝ncurses庫,安裝命令:sudo apt-get install libncurses5-dev) (menu目錄如下:)

D. 求助,內核編譯時怎樣添加自己的CONFIG項

當然需要。。。

第一點,就是源碼樹中有相應的頭文件和函數的實現,沒有源碼樹,你哪調用去呢?(PC上編譯的時候內核有導出符號,系統中有頭文件,這樣就可以引用內核給你的介面了,但是只能編譯你PC上版本的內核可載入的模塊)。

第二個,內核模塊中會記錄版本號的部分,需要記錄版本號的原因是不同的內核版本之間,那些介面和調用可能會有比較大的差異,因此必須要保證你的代碼和某個特定的內核對應,這樣編譯出來的模塊就可以(也是只能)在運行這個內核版本的Linux系統中載入,否則一個很簡單的異常就會導致內核崩潰,或者你的代碼根本無法編譯通過(介面名變了)。

我上面說的是編譯模塊的情況,當然如果是把模塊直接編譯到內核當中去的話,那就不用說了,沒有內核源碼,你無法編譯內核。

E. 編譯linux內核的時候,我在.config文件中修改了配置選項,然後執行make,為什麼它又給我改回去了

用 make menuconfig
用make -x 可跟蹤執行指令就能找到原因

F. linux 內核源碼包 .config 什麼用處

內核配置參數都保存在這里,默認情況下該配置文件中的配置很保守。我們在執行make xconfig或者make menuconfig之後,退出時會提示我們保存,修改過之後的配置就保存在這個.config文件里了。
一般做的話建議復制/boot目錄下的配置文件覆蓋這個.config,這樣就可以在原系統內核配置的基礎上進行修改了。例如:
cp /boot/config-2.6.18-8.el5 .config

G. 編譯linux內核時關於.config文件的問題

你要先調用config再去編譯啊:
make menuconfig後
選擇 「Load an Alternate Configuration File」
輸入剛剛你的內核配置文件名
選擇 「Save an Alternate Configuration File」
輸入 「.config」
保存退出
然後在進行編譯即可。

H. Linux內核配置與編譯相關流程

linux內核配置與編譯相關流程1、清除臨時文件、中間文件和配置文件
make
clean
不刪除配置文件。
make
mrproper
make
distclean
刪除編輯的backup文件、補丁文件等2、確定目標系統的軟硬體配置情況,比如CPU的類型,網卡的型號,所需要支持的網路協議。3、使用命令配置內核
make
config
基於文本模式的交互配置。
make
menuconfig
基於文本模式的菜單配置。
make
oldconfig
使用已有的配置文件(.config),但是會詢問新增的配置選項。
make
xconfig
圖形化的配置(需要安裝圖形化系統)。4、編譯內核
make
zImage
make
bzImage
區別:在X86平台上,zImage只能用於小雨512k內核。如果需要獲取詳細編譯信息,則在後面加上V=1.
編譯好的內核位於arch/<cpu>/boot/目錄下。
5、編譯內核模塊
make
moes
6、安裝內核模塊
make
moes_install
將編譯好的內核模塊從內核源代碼目錄到/lib/moes下。7、製作
init
ramdisk
mkinitrd
$initrd-$version
-$version內核安裝(X86)1、cp
arch/X86/boot/bzImage
/boot/vmliuz
-$version2、cp
$initrd
/boot/3、修改etc/grub.conf

/etc/lilo.conf$version為所編譯的內核版本號。

I. Android內核編譯時如何獲得.config文件

得到config之後,直接復制到你下載來的內核文件夾kernel下,更名為.config,打開終端,進入此目錄(假設你放在里你的home下,即~/kernel)運行make ARCH=arm menuconfig(ARCH=arm表示編譯的是arm平台的)

J. 內核中打開CONFIG_MTD_DEBUG

這是非常重要的選項,選中它則打開內核內存分配函數中的多個類型的檢查;
打開該檢查後,就可以檢測許多內存溢出及忘記初始化的錯誤,在將已分配內存返回給調用者之前,內核會把其中的每個位元組設置為0Xa5,而在釋放後將其設置為0X6b。
如果內核開發者在自己的程序輸出中或者oops信息中看到上述字元「毒劑」字元,則可以輕松判斷出問題所在。
在打開該調試選項後,內核還會在每個已分配內存對象的前面或者後面放置一些特殊的防護值,這樣,當這些防護值發生變化時,內核就可以知道有些代碼超出了內存的正常訪問范圍,並提升。
除此之外,還可以檢查更多的隱蔽錯誤。

熱點內容
sql存儲過程out 發布:2024-04-26 19:33:15 瀏覽:414
struts2訪問方法 發布:2024-04-26 19:11:36 瀏覽:259
外文翻譯android 發布:2024-04-26 19:03:30 瀏覽:90
土金木配置怎麼樣 發布:2024-04-26 18:52:50 瀏覽:611
這台電腦如何訪問另一台電腦伺服器 發布:2024-04-26 18:51:08 瀏覽:628
怎麼快速了解電腦的配置 發布:2024-04-26 18:42:11 瀏覽:998
rsa加密演算法例子 發布:2024-04-26 18:40:29 瀏覽:244
thinkphp緩存關閉 發布:2024-04-26 18:19:32 瀏覽:97
linux信號捕捉 發布:2024-04-26 18:19:27 瀏覽:935
編譯有哪兩種模式 發布:2024-04-26 17:53:30 瀏覽:871