linux核心配置與編譯
1. 清除臨時檔案
1. make clean
刪除產生的檔案,但儲存配置。
2. make mrproper
刪除產生的檔案同時刪除配置
3. make distclean
刪除mrproper並且刪除補丁之類的。
2.對確定的目標系統的軟硬體配置情況。比如cpu、網絡卡型號,所需支援的網路協議等。
3.配置核心的命令:
1)make config:基於文字模式的互動式配置
會每乙個問題乙個乙個的問你,是否需要配置,很麻煩。
對於每乙個選項,都本身就有乙個預設的值。
menuconfig安裝功能進行了分類。
通過空格可以變換前面的選項。或是y n m,y對應*,m對應m,n對應空。
y n m的選擇之間的區別可以用一下來反映:
(*)a.c --------------a.o ------------zimage
(*)b.c --------------b.o-------------zimage
(m)d.c --------------d.o
( )e.c -------------
y和m有編譯過程,n沒有編譯過程,且y有鏈結過程。
3)make oldconfig:使用已有的配置檔案(.config),但是會詢問新增的配置選項
與config類似,一直詢問問題。與make config相比,要求你必須做決定的配置項相對較少。只有後面有new的,才會詢問。
4)make xconfig:圖形化的配置(需安裝圖形化系統)
開啟arch下的乙個arm檔案。再在其中開啟config,在config中的所有檔案都是供你去參考的配置檔案。例如:我們選擇的6410的開發板,我們就應該去參考s3c6410_defconfig,接下來將s3c6410_deconfig複製到相對應的arch/arm/mach-s3c6410。
核心的編譯
make zimage
make bzimage
在x86平台,zimage只能用於小於512k的核心(其他平台沒有區別)
選項 make zimagev=1
make bzimage v=1 加了等於1的時候,可以看到所有的編譯過程。
編譯好的核心在arch/arm/裡的相對應的體系結構/boot
編譯核心模組 makemodules
安裝核心模組,makemodules_install
將編譯好的核心模組從核心源**目錄copy至/lib/modules下
核心模組編譯好了之後,要去製作ramdisk
mrinitrd initrd -$version $version
第乙個version是取得名字,第二個version是你的核心版本。
***mrinitrd
在有些環境下沒有,需要自己安裝,此時,用
mkinitramfs
代替mrinitrd
這樣就可以製作
initrd
檔案了。
***
例如:mrinitrdinitrd initrd-2.6.29 2.6.29
是將linux2.6.29下的lib資料夾中的modules裡的2.6.29做成ramdisk檔案,所以第二個version要與modules裡的檔案一樣。(此步還沒解決。)
核心安裝(x86平台)
1.cp arch/x86/boot/bzimage/boot/vmlinuz-$version(取乙個名字)
***$version為所編譯的核心版本號***
2.將做好的ramdisk cp到boot下
cp $initrd/ boot/
3.修改/ect/grub.conf 或者 /etc/lilo.conf
Linux 核心配置與編譯
嵌入式系統的乙個很重要的特性就是可移植可裁剪配置。這篇博文主要簡單總結下在x86體系下配置編譯核心的過程。取得原始碼後的步驟就是配置核心。使用make menuconfig命令,配置成功後儲存會在核心源 目錄下生成乙個.config檔案。這個檔案是隱藏的,需要用ls a命令才可看到。配置選項比較多,...
Linux核心配置與編譯
核心的配置和編譯大致涉及三類主要檔案 kconfig config makefile。它們之間的關係大致可用下圖描述 1.kconfig 詳細內容可參見kbuild kconfig language.txt 核心配置選項的原始檔。arch arch kconfig是主kconfig檔案,與具體體系結...
Linux核心配置與編譯
2 編譯核心 3 安裝核心 4 清理核心 嵌入式linux核心製作 1 硬體的需求 2 軟體的需求 make config 基於檔案模式的互動式配置 make menuconfig 基於文字模式的選單型配置 一般選項這種選單型直觀 簡單 高效,如下所示 中 隱藏在解壓後檔案目標下。config 在建...