實驗環境:Ubnuntu 64位(推薦使用14.04)+Xshell
Linux雲服務器很好用的,用來編譯內核性能也不錯。本文介紹最基本的內核編譯方法,為了方便,所有操作均在root用戶下進行。
如果不是root用戶可以使用su命令切換到root用戶。
注:使用xshell的時候最好把這一項給關閉了(工具——選項——高級)
一、環境准備
1.准備linux源碼和補丁,可以在官網(http://www.kernel.org)上下載,這裡我們下載4.5版本。
不過阿裡提供了http://mirrors.aliyun.com/,也可以在這裡面下載,速度更快。下載鏡像的命令如下:
cd /tmp wget http://mirrors.aliyun.com/linux-kernel/v4.x/linux-4.5.tar.xz wget http://mirrors.aliyun.com/linux-kernel/v4.x/patch-4.5.xz
2.准備安裝需要的環境
首先需要執行apt-get update來更新軟件源,然後安裝需要的環境:
apt-get install kernel-package build-essential libncurses5-dev fakeroot
3.解壓縮內核
把壓縮包解壓:
xz -d linux-4.5.tar.xz
解壓後得到linux-4.5.tar,
運行tar –xvf linux-4.5.tar解壓得到目錄linux-4.5。
把內核目錄linux-4.5和補丁patch-4.5.xz都復制到/usr/src,然後進入/usr/src
cp linux-4.5 /usr/src –rf cp patch-4.5.xz /usr/src cd /usr/src
二、准備編譯
1.打內核補丁
xz -d patch-4.5.xz | patch -p1
執行後沒有任何提示說明執行正確
2.編譯配置
看以前的內核版本號,把裡面的.config文件復制到linux-4.5文件夾中:
在上面的圖片中,我的內核文件夾是linux-headers-3.13.0-32-generic,我需要將這個文件夾中的.config文件復制到linux-4.5目錄中。
cp linux-headers-3.13.0-32-generic/.config linux-4.5/
cd linux-4.5
然後執行make menuconfig,
選擇load→OK→Save→OK→EXIT→EXIT:
三、編譯內核
編譯內核有兩步,比較耗時間:一般在1-3個小時左右可以完成。
1.編譯啟動映像
make bzImage -jN
在這裡的N是你的CPU的核數*2,比如我是單核CPU,那麼我應該執行make bzImage -j2指令;如果我是雙核CPU,我應該執行make bzImage -j4。
如果嫌麻煩也可以直接運行make bzImage。
這裡可能會出現兩個錯誤:
fatal error: openssl/opensslv.h: No such file or directory
這是因為沒有安裝openssl的,需要先安裝openssl: apt-get install libssl-dev
bc: not found。需要安裝bc:apt-get install bc
安裝對應依賴後再運行。
2.編譯模塊
make modules -jN 這裡的N也跟上面是一樣的
也可以直接運行 make modules。
四、安裝內核
安裝內核的過程就快的很多了,這跟你下了軟件安裝包 安裝軟件 是一個道理。
先安裝模塊
make modules_install
再安裝內核
make install
五、更改啟動grub
grub就是管理Ubuntu系統啟動的一個程序,我們編譯好的內核要運行就要修改對應的grub,其實很簡單。
mkinitramfs 4.5.0 -o /boot/initrd.img-4.5.0 update-grub2
update-grub2命令會幫我們自動修改grub,
修改後的grub內容如下:可以看見內核版本已經被改成了4.5.0
現在內核已經編譯好了,重啟服務器,使用uname -a命令查看自己的系統版本:
系統版本已經是linux 4.5!
怎樣在 Ubuntu 上安裝 Linux Kernel 4.4 http://www.linuxidc.com/Linux/2016-01/127383.htm
Linux Kernel 4.2.2 編譯安裝教程 http://www.linuxidc.com/Linux/2015-10/123714.htm
Ubuntu 15.10 將使用 Linux Kernel 4.2 內核 http://www.linuxidc.com/Linux/2015-09/122826.htm
怎樣在 CentOS 7 上安裝 Kernel 4.0.2 http://www.linuxidc.com/Linux/2015-05/117574.htm
怎樣在 CentOS 7 系統上安裝Linux Kernel 4.0 http://www.linuxidc.com/Linux/2015-04/116461.htm
如何在Ubuntu/CentOS上安裝Linux內核4.0 http://www.linuxidc.com/Linux/2015-04/116565.htm
如何在Ubuntu 13.10上安裝Linux內核 3.12 http://www.linuxidc.com/Linux/2013-11/92930.htm
如何在Ubuntu 14.10,Ubuntu 14.04及其衍生版本安裝 3.16.7 CKT2內核 http://www.linuxidc.com/Linux/2014-12/110189.htm
Linux Kernel 的詳細介紹:請點這裡
Linux Kernel 的下載地址:請點這裡