編譯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-39.將源代碼目錄下的.config復制到/boot/目錄下:
cp .config /boot/config-2.6.30-310.安裝模塊:
make modules_install11.切換到/boot/grub/目錄下:
cd /boot/grub/12.更新grub.cfg文件:
update-grub2之後,就可以重啟電腦了,在previous version中就可以啟動新編譯的內核了。