首先是準備條件:
①、有一臺裝有ubuntu的機器
②、先移步到http://www.kernel.org/下載linux穩定版內核
③、擁有root權限
④、並將下載好的內核解壓到/usr/src下
好,如今一切都準備好了,接下來就開始配置,編譯,安裝新內核吧!
1, 進入剛纔的文件夾 /usr/src/linux-須要升級的內核,輸入命令:
$ make mrproper
該命令的功能在於清除當前目錄下殘留的.config和.o文件,這些文件通常是之前編譯時未清理而殘留的。而對於第一次編譯的代碼來講,不存在這些殘留文件,因此能夠略過此步,可是若是該源代碼之前被編譯過,那麼強烈建議執行此命令,不然後面可能會出現未知的問題。
2, 配置編譯選項
做爲操做系統的內核,其內容和功能必然很是繁雜,包括處理器調度,內存管理,文件系統管理,進程通信以及設備管理等等,而對於不一樣的硬件,其配置選項也不相同,因此在編譯源代碼以前必須設置編譯選項。其實我以爲這一步是升級內核整個過程當中最有技術含量的,由於要根據本身的須要正確選擇yes or no須要對計算機方方面面的知識都有所瞭解。可是這裏的選項實在是太多了,大概有幾百項之多,我之前曾嘗試着一項一項的選,可是最後仍是放棄了,由於有不少選項不是很明白。
既然這樣,難道沒有什麼簡便的方法麼? 固然有!那就是make menuconfig 或者make xconfig。我使用的是make menuconfig,可是前提條件是要裝ncurses。
ncurses 到http://ftp.gnu.org/pub/gnu/ncurses/下載,能夠放到任何目錄進行安裝:
tar zxvf ncurses<version>.tar.gz #解壓縮而且釋放 文件包
cd ncurses<version> #進入解壓縮的目錄(注意版本)
./configure #按照你的系統環境製做安裝配置文件
make #編譯源代碼而且編譯NCURSES庫
su root #切換到root用戶環境
make install #安裝編譯好的NCURSES庫
另外,在make menuconfig過程當中也會有一些選項須要你來設置*, y, n 或者m,選擇*表示選項中的內容被直接編入內核中,選擇m表示選項中的內容不編入內核,而只是編成獨立的module,用到時才調用。
ok, 在當前文件路徑下,輸入命令:
make menuconfig(或者用 make xconfig,我沒有啓用成功)
根據菜單提示,選擇編譯配置選項,並保存配置文件爲.config(也能夠直接複製現有的.config文件,我是這樣作的!!!)
3,肯定依賴性
根據以往的經驗,這一步是必須的,可是此次編譯的時候,系統提醒我沒必需要執行這個命令:
make dep
若是用現有的.config文件,這裏會有不少內核新增長的驅動和功能讓你確認是否編入內核中,這個你就本身看着輸入y/n/m/?吧!
4,清除編譯中間文件
輸入命令:make clean
5,生成新內核(這是我用的時間07:38-07:57,19分鐘。這裏時間的長短都取決於你機器的性能)
就是把配置過程當中,咱們選中編入內核中的程序編譯連接生產linux內核,輸入命令:
make bzImage
6,生成modules(這是我用的時間07:58-09:28)
和上步差很少,就是把配置過程當中,咱們選中編成modules的程序編譯連接成modules,輸入命令:
make modules
7,安裝modules
就是把剛纔編譯生產的modules拷到系統文件夾下,以供新內核調用。輸入命令:
make modules_install
一切都自動作好了。
8,創建要載入ramdisk的映像文件
若是linux系統安裝在scsi磁盤上,這步是必須的,不然能夠跳過。個人linux是裝在vmware上的,用的是虛擬的scsi磁盤,因此必須 要這一步。輸入命令:
mkinitramfs -o /boot/initrd-linux3.3.4.img 3.3.4
若是你的linux不是ubuntu,而是其餘的發行版本,那麼使用的命令可能不是mkinitramfs,而是mkinitrd,但功能和用法相似。
9,按裝內核
輸入命令:make install
此時系統會把linux內核的鏡像文件還有System.map考入到/boot下,而後會自動生成引導菜單。linux