1. 程式人生 > >linux核心編譯步驟(詳細全過程)

linux核心編譯步驟(詳細全過程)

環境: 電腦作業系統:ubuntu10.04 。 linux核心版本:linux-3.12.6

核心原始碼下載地址:www.kernel.org

我就按照步驟來,都是按照細小步驟來。

1、開啟終端,更改為root使用者。輸入命令su,再輸入密碼即可。

2、進入下載到的核心所在的目錄,將下載的核心移動到/usr/src/目錄下

         mv linux-3.12.6.tar.xz /usr/src

3、切換到/usr/src/目錄下,解壓縮核心壓縮包。由於下載的壓縮包是.tar.xz字尾,解壓分為兩步:

        xz -d linux-3.12.6.tar.xz

        tar -xvf linux-3.12.6.tar

然後進行一些準備工作,將/usr/include/asm、/usr/inlude/linux、/usr/include/scsi連結到/usr/src/linux/include目錄下的對應目錄中

cd /usr/include rm -rf asm linux scsi ln -s /usr/src/linux-3.12.6/include/asm-generic asm ln -s /usr/src/linux-3.12.6/include/linux linux ln -s /usr/src/linux-3.12.6/include/scsi scsi

以上紅色字型部分不是必做。

同時,清理核心原始碼中的殘渣(多次編譯留下的):

cd /usr/src/linux-3.12.6 make mrproper

4、輸入cd linux-3.12.6 進入解壓後的目錄下。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

以下要進行核心的配置了。

5、由於系統中沒有圖形介面配置工具ncurses,因此首先下載此工具安裝包,

然後在終端開啟工具所在目錄,切換到root使用者下,輸入以下命令:

                   tar zxvf ncurses-5.9.tar.gz

                   cd ncurses-5.9

                   ./configure

                   make

                   make install

這樣就安裝好了ncurses,可以使用了。

6、第五步是獨立步驟。單獨操作。這一步接上面第四步。在終端輸入以下命令:

                    make menuconfig

出現了配置的圖形介面。



 

說一下配置:

    對每一個配置選項,使用者有三種選擇,它們分別代表的含義如下:

<*>[*]——將該功能編譯進核心

[]——不將該功能編譯進核心

[M]——將該功能編譯成可以在需要時動態插入到核心中的程式碼

7、這一步是配置過程。配置你需要的內容。配置完成以後,儲存退出。

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

8、配置完成以後,開始編譯核心,在終端輸入make命令即可。

    還有一種比較麻煩的方法,在終端依次輸入以下命令:

make dep

make clean

make bzlmage

make modules

這樣也可以。

這一步需要很長時間,耐心等待吧。

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

然後是安裝核心模組

9、輸入命令 make modules_install

10、輸入命令 make install 

此時,核心編譯完成。剩下是修改啟動程式配置,然後執行新的核心程式。

11、將生成的bzImage檔案和System.map檔案拷貝到/boot/目錄下,命令如下:

       cp /usr/src/linux-3.12.6/arch/x86/boot/bzImage /boot/

       cp /usr/src/linux-3.12.6/System.map /boot/

12、在終端輸入命令:

mkinitramfs 3.12.6 -o /boot/initrd/img-3.12.6

來建立映象檔案

然後輸入命令:

update-initramfs -c -k 3.12.6

再輸入命令:

update-grub2

更新修改系統引導配置。

13、進入載入程式(boot loader)的配置檔案看看,對於不同的載入程式(LILO和GRUB),其配置檔案所在路徑不同。

     對於LILO,路徑為:/etc/lilo.conf

     對於GRUB,路徑為:/boot/grub/grub.cfg  

     本系統為GRUB引導,因此進入/boot/grub/grub.cfg,命令如下

     cd /boot/grub

     gedit grub.cfg

看到配置檔案中有如下內容:



 說明核心已經新增到啟動項了。

14、到此,核心編譯就算全部完成,可以重啟電腦了。

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

15、以上是在ubuntu下編譯核心的全過程。

16、參考網上各種資料,在別的linux系統下編譯核心在最後配置啟動過程的時候略有差別,在此列出。

17、其他版本一:配置/etc/lilo.conf檔案。在該檔案中加入下面幾行:

   default=linux-2.3.14

   image=/boot/vmlinuz-2.3.14

   label=linux-2.3.14

   root=/dev/hda1

   read-only   

使新配置生效  輸入  /sbin/lilo

重新啟動系統    /sbin/reboot