2.配置核心
對核心進行配置是為了得到核心配置檔案.config。通過對核心進行配置,可以使未來編譯成功的核心增加或減少對一些核心特性的支援。對核心進行配置有多種方法,
有基於文字的配置方式也有基於圖形的使用者介面。下面採用使用比較廣泛的make menuconfig方式:
sudo apt-get install libncurses5-dev
sudo make menuconfig
由於該配置方式基於ncurses庫,所以在啟動配置界面前要先安裝ncurses庫。啟動配置界面前,必須進入原始碼根目錄,配置介面啟動成功後如下圖:
3.編譯
編譯核心包含兩部分的工作,其一是編譯核心,即編譯配置選項中標記為y的那部分,這部分核心最終形成bziamge映象檔案;其二是編譯核心模組,即編譯配置選項中標記為m的那部分核心,
這部分形成以.ko結尾的核心模組目標檔案。
上述兩部分編譯工作可以依次通過make bzimage和make modules完成,也可以通過一條make命令直接完成。編譯核心的整個過程比較漫長,因此可以對make加-j引數來提高編譯的效率。在make時使用該選項會為編譯過程分配n個併發任務,這樣可以縮短編譯時間。n的取值為cpu個數的二倍。
sudo make -j4
4.安裝
安裝過程分為兩部分,首先對核心模組進行安裝,這個過程會將剛剛編譯核心模組時生成的核心模組複製到/lib/modules/3.0.4/目錄下,其中3.0.4為對應的核心版本。使用的命令如下:
sudo make modules_install
接著使用下述命令安裝編譯好的核心
make install
安裝核心的過程主要完成了以下的工作:
1.將編譯核心時生成的核心映象bzimage拷貝到/boot目錄下,並將這個映象命名為vmlinuz-3.0.4。如果使用x86的cpu,則該映象位於arch/x86/boot/目錄下(處於正在編譯的核心原始碼下)。
2.將~/linux-3.0.4/目錄下的system.map拷貝到/boot/目錄下,重新命名為system.map-3.0.4。該檔案中存放了核心的符號表。
3.將~/linux-3.0.4/目錄下的.config拷貝到/boot/目錄下,重新命名為config-3.0.4。
5.建立initrd.img檔案
initrd.img即為初始化的ramdisk檔案,它是乙個映象檔案,將一些最基本的驅動程式和命令工具打包到映象檔案裡。該映象檔案的作用是在系統還沒有掛載根分割槽前,系統需要執行一些操作,比如掛載scsi驅動,此時將initrd檔案釋放到記憶體中,作為乙個虛擬的根分割槽,然後執行相關指令碼,執行insmod命令載入需要的模組。
sudo mkinitramfs 3.0.4 -o /boot/initrd.img-3.0.4
6.更新grub
最後一步則是更新grub啟動選單,使用下面的命令則可以自動更新啟動選單:
sudo update-grub2
這樣會將剛才編譯好的核心放在啟動選單的首位,如果需要修改啟動選單中預設系統的啟動順序,則修改/boot/grub/grub.cfg檔案中的set default=的值即可
ok,核心編譯完畢。
Ubuntu下編譯3 0 4核心
linux核心3.0版本發布已有一段時間了,不知道這個版本號大躍進的核心是否好用。目前各個發行版的linux還仍未採用3.0的核心,因此可以自己動手編譯核心來感受一下!趁著這次編譯核心的機會可以再熟悉一下編譯核心的步驟。1 tar xjvf linux 3.0.4.tar.bz2 對核心進行配置是為...
Ubuntu下編譯核心
cd wget 安裝有關編譯程式。安裝make gcc,make kpkg,執行menuconfig等等和編譯核心相關的工具。安裝不了,請檢查 etc apt sources.list 檔案。有關命令 sudo apt get install build essential kernel packa...
ubuntu 下編譯核心
2.為寫qemu的watchdog驅動練手。有朋友問make的 watchdog驅動 需要什麼準備,所以寫這個blog。ubuntu 12.04.4 1.make 時間 大於1個小時 1.安裝編譯核心所需要的軟體 apt get install build essential kernel pack...