歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

Ubuntu 編譯 Linux 3.0-rc4 內核

Linux 內核經過漫長的 2.6 版本之後終於主版本+1了,現在已放出 3.0 RC4 版,最近又有消息稱 3.0 會比 2.6.39 快,喜歡折騰的你又不介意當小白鼠的話不妨試試下載 Linux Kernel 3.0 的源代碼自己編譯。

下面簡單講一下在 Ubuntu 10.10 編譯 Linux Kernel 3.0 RC4 的過程。因為編譯內核的過程都差不多,所以理論上下面的過程同時也適用於其他發行版(比如紅帽系的 Fedora 15,下面我會同時注出使用 Fedora 15 編譯的異同),因為 3.0 還不是正式版,使用自己編譯的新內核可能啟動不了計算機,所以要保留當前使用的內核。

1、下載並解壓縮 Linux Kernel 3.0 RC4 源代碼
到官方 http://kernel.org/ 下載,得到 linux-3.0-rc4.tar.bz2 文件,把它挪到隨便一個你有權限讀寫的文件夾,運行下面命令解壓縮並進入解壓後的文件夾:
$ tar -jxvf linux-3.0-rc4.tar.bz2
$ cd linux-3.0-rc4

2、配置內核編譯參數
先安裝 ncurses 工具,這是字符版配置工具所依賴的:
$ apt-get install libncurses5 libncurses5-dev  #(Ubuntu 環境)
$ sudo yum install ncurses ncurses-devel  #(Fedora 環境)

因為新版本配置工具會自動尋找當前系統環境的配置信息(即位於 /boot 下以 config-XXX 開頭的文件),所以接下來可以直接運行字符版的配置工具:
$ make menuconfig

這裡有很多配置選項,如果是嘗試性的心態,則可不必理會它,直接選中菜單下面的“Save”然後退出,配置工具會生成一個“.config”文件。

3、開始編譯
$ make

編譯過程從十幾分鐘到1、2個小時不等,視乎你計算機運行的速度。如果CPU是4核的,可以在 make 命令後面加上“-j4”參數讓編譯程序同時使用4核編譯,這樣編譯所需要的時間能減倍。

如果編譯中途意外中斷,然後想重新開始編譯,需要先執行下面命令清理一下編譯現場然後再編譯:
$ make mrproper

(這裡是漫長的等待過程)

4、安裝編譯好的模塊和內核
內核編譯好之後,使用下面命令安裝 modules:
$ sudo make modules_install

上面的命令會將編譯好的 modules 復制到 “/lib/modules/3.0.0-rc4” 文件夾,其中“3.0.0-rc4”是內核的版本號,你會在“/lib/modules”文件夾中看到其他版本內核的 modules,包括當前系統環境的,不要手癢把這些文件夾刪除了。

然後安裝編譯好的內核映像文件:
$ sudo make install

上面的命令會把編譯文件夾裡面的“arch/x86/boot/bzImage”文件復制到“/boot”,同時還會復制 config 和 System.map 文件,最終在“/boot”會多出如下3個文件:
/boot/config-3.0.0-rc4
/boot/System.map-3.0.0-rc4
/boot/vmlinuz-3.0.0-rc4

是不是發現缺少了一個 initrd.img 文件(初始ram磁盤文件)?使用下面命令創建一個即可:
$ sudo mkinitramfs 3.0.0-rc4 -o /boot/initrd.img-3.0.0-rc4    #(Ubuntu 環境)
$ sudo mkinitrd initramfs-3.0.0-rc4.img 3.0.0-rc4   #(Fedora 環境)

5、修改 GRUB 啟動菜單,增加使用新內核啟動的項目
這一步可以使用 GRUB2 的自動生成工具完成
$ sudo update-grub2    #(Ubuntu 環境)
$ sudo grub2-mkconfig   #(Fedora 環境)

假如你(對新內核沒什麼把握)不希望修改 GRUB 啟動菜單,則可以直接在啟動 Linux 時手動指定新內核,方法如下:
重啟計算機,在 GRUB 菜單界面(假如沒有看到的話則重啟計算機時按下ESC鍵)按“c”進入命令模式,先設置啟動文件的分區,下面假設 “/boot”位於第一塊硬盤第一個分區,如果在其他分區則把下面的數字“1”改成“2,3,5,6,7……”等:
set root=(hd0, 1)

指定內核映像和虛擬ram磁盤文件位置:
linux /boot/vmlinuz-3.0.0-rc4 root=/dev/sda1
initrd /boot/initrd.img-3.0.0-rc4

注意,在 GRUB 命令模式下也可以按“TAB”鍵自動補完的,不要一個字一個字地敲。最後輸入“boot”啟動。下面帖一張使用 3.0 內核的“系統監視器”截圖:

至於速度有沒有比 2.6.x 的快,或許有,不過有點難察覺。

Copyright © Linux教程網 All Rights Reserved