CentOS 6.5 升級內核到 3.10.28

CentOS 6.5 升級內核到 3.10.28

http://cn.soulmachine.me/blog/20140123/

本文適用於CentOS 6.4, CentOS 6.5,親測可行,估計也適用於其他Linux發行版。

1. 準備工作

1.1 下載源碼包

Linux內核版本有兩種:穩定版和開發版 ,Linux內核版本號由3個數字組成:r.x.y

  • r: 主版本號
  • x: 次版本號,偶數表示穩定版本;奇數表示開發中版本。
  • y: 修訂版本號 , 表示修改的次數

 http://www.kernel.org 首頁,可以看到有stable, longterm等版本,longterm是比stable更穩定的版本,會長時間更新,因此我選擇 3.10.28,

wget  https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.10.28.tar.xz

1.2 解壓

tar -xf linux-3.10.28.tar.xz

1.3 更新當前系統

sudo yum update
sudo yum upgrade

1.4 安裝編譯內核所需要的軟件包

sudo yum groupinstall "Development Tools" # 一口氣安裝編譯時所需的一切工具
sudo yum install ncurses-devel #必須這樣才能讓 make *config 這個指令正確地執行。
sudo yum install qt-devel #如果你沒有 X 環境,這一條可以不用
sudo yum install hmaccalc zlib-devel binutils-devel elfutils-libelf-devel #創建 CentOS-6 內核時需要它們

2 配置文件

2.1 查看當前系統內核

uname -r
2.6.32-358.11.1.el6.x86_64

2.2 將當前系統的配置文件拷貝到當前目錄

cp /boot/config-2.6.32-358.11.1.el6.x86_64 .config

2.3 使用舊內核配置,並自動接受每個新增選項的默認設置

sh -c 'yes "" | make oldconfig'

make oldconfig會讀取當前目錄下的.config文件,在.config文件裏沒有找到的選項則提示用戶填寫,然後備份.config文件爲.config.old,並生成新的.config文件,參考http://stackoverflow.com/questions/4178526/what-does-make-oldconfig-do-exactly-linux-kernel-makefile

3 編譯

sudo make -j8 bzImage #生成內核文件
sudo make -j8 modules #編譯模塊
sudo make -j8 modules_install #編譯安裝模塊

要嚴格按照這個順序進行編譯,不能合併成一句sudo make -j8 bzImage modules modules_install

-j後面的數字是線程數,用於加快編譯速度,一般的經驗是,有多少G內存,就填寫那個數字,例如有8G內存,則爲-j8

4 安裝

sudo make install

如果出現了 ERROR: modinfo: could not find module xxx,數量少的話,可以忽略。

5 修改Grub引導順序

安裝完成後,需要修改Grub引導順序,讓新安裝的內核作爲默認內核。

編輯 grub.conf文件,

sudo vim /etc/grub.conf

數一下剛剛新安裝的內核在哪個位置,從0開始,然後設置default爲那個數字,一般新安裝的內核在第一個位置,所以設置default=0

6 重啓

sudo reboot

重啓後,看一下當前內核版本號,

uname -r
3.10.28

成功啦!!

7 如果失敗,則重新循環

如果失敗,重新開始的話,要清理上次編譯的現場

make mrproper #清理上次編譯的現場 

然後轉到第2步,重新開始。

參考資料

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章