編譯linux核心已經有3次了,每一次編譯都需要到網上尋找編譯步驟,感覺網上的各種資料亂七八糟的,並不是都適合ubuntu12.04的系統,所以做一個記錄。
適應版本:ubuntu12.04
1.首先下載需要的linux核心原始碼,可以到kernel.org去下載自己想要的核心原始碼。
2.下載完成後進行解壓,一般核心代碼是位於/usr/src目錄之下的,所以可以將你的核心原始碼解壓到這個目錄下。
3.解壓完成之後,就可以看到linux核心原始碼的目錄了。
4.進入到核心原始碼的目錄之下,執行命令:
make menuconfig
注意:這個命令需要在超級使用者權限下執行,否則可能會報出一些莫名奇妙的錯誤。執行這個命令之後了,就可一看到下面的圖片了:
這個介面中的一些選項是用來對編譯時間的linux核心進行配置的,我們可以根據需要來進行選擇配置。
5.配置完成之後,選擇Exit退出並儲存配置就可以了。
6.接下來執行命令:
make all -j4
就可以編譯核心了,make all就是將核心以及模組一起編譯。後面的參數-j4表示,cpu要開啟四個線程來編譯核心。一般來說,每個cpu可以開啟兩個線程來編譯核心,我的電腦是有兩個cpu,所以開啟了4個線程。這樣編譯真心很快的,以前我就一個線程在編譯,簡直等的都無語了。
7.編譯完成之後,就可以進行核心的安裝了,我們將原始碼目錄下的arch/x86_64/boot/bzImage複製到/boot/下面,因為我下載的原始碼版本為linux-2.6.30.3,所以複製的命令為:
cp arch/x86_64/boot/bzImage /boot/vmlinuz-2.6.30-3
讀者需要根據自己的cpu類型,如是x86架構還是amd,或者是32位或64位,在相應的目錄下尋找bzImage。
8.將原始碼目錄下的System.map複製到/boot目錄下:
cp /usr/src/linux-2.6.30.3/System.map System.map-2.6.30-3
9.將原始碼目錄下的.config複製到/boot/目錄下:
cp .config /boot/config-2.6.30-3
10.安裝模組:
make modules_install
11.切換到/boot/grub/目錄下:
cd /boot/grub/
12.更新grub.cfg檔案:
update-grub2
之後,就可以重啟電腦了,在previous version中就可以啟動新編譯的核心了。