一疟暖、內(nèi)核配置方法
1、配置哪些目錄需要編譯
2骨望、配置哪些文件需要編譯
確認(rèn)編譯時欣舵,到底文件是在哪個目錄。
如:<mach/hardware.h>
解決辦法:
Makefile make
OBJS += xx.o
學(xué)習(xí)內(nèi)核的地圖:目錄糠亩、Makefile
主目錄下的Makefile是核心准验。非常復(fù)雜
各個子目錄下的Makefile廷没。非常簡單
內(nèi)核有3個桶:
obj-y:編譯進(jìn)內(nèi)核 make Image
make zImage make uImage
obj- :不編譯進(jìn)內(nèi)核
obj-m:以模塊形式編譯 make modules
主目錄下的Makefile中,通過:
來定義目標(biāo)和依賴另锋。
在主目錄下的Makefile中狭归,通過include關(guān)鍵字,可以包含其他子目錄下的Makefile室梅。
如何配置內(nèi)核疚宇?
1、ARCH ?= $(SUBARCH)
SUBARCH默認(rèn)就是X86的敷待,內(nèi)核默認(rèn)配置按照X86
ARCH這個變量改為arm單詞
1.1 交叉編譯
CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)
2榜揖、哪些文件編譯?哪些文件不編譯举哟?
CONFIG_xxxx
配置單:芯片廠商為內(nèi)核提供的參考配置單。
cd arm/configs
export到內(nèi)核的.config下
修改defconfig敢艰,變成適應(yīng)于板子的册赛。
總結(jié):
配置步驟:
1震嫉、配置倉庫選取
2牡属、交叉編譯器的修改
3逮栅、體系結(jié)構(gòu)體的選擇
4、增刪改查:make menuconfig對.config進(jìn)行修改特纤,變成圖形界面侥加。
二、linux內(nèi)核編譯
1担败、vmlinux
2、Image
3吗货、zImage
uboot需要修改代碼狈网。
4、uImage
專門為uboot提供的內(nèi)核啟動的加載鏡像害淤。
先生成Image拓售,再生成zImage,然后再生成uImage础淤。