歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> 在ubuntu下安裝新的內核

在ubuntu下安裝新的內核

日期:2017/3/3 11:16:49   编辑:Linux技術

首先去內核的官網下載官方內核,比如:https://www.kernel.org/pub/linux/kernel/v2.6/。下載壓縮文件,*.tar.bz2。

解壓到/usr/src目錄下

# tar -Jxvf linux-2.6.30.3.tar.bz2 -C /usr/src/

此時會在/usr/src下新建一個目錄,./linux-2.6.30.3進入該目錄,用ls -al查看文件如下圖所示:

使用命令:make mrproper,清除下數據

然後開始挑選內核功能:在該目錄下,運行命令,make menuconfig。

可能會彈出以下錯誤警告:

*** Unable to find the ncurses libraries or the

*** required header files.

*** 'make menuconfig' requires the ncurses libraries.

***

*** Install ncurses (ncurses-devel) and try again.

***

這說明有個包沒有安裝

而且很奇怪的是,我用apt-get install ncursesdevel,提示安裝失敗

對此,進行baidu,發現解決方案,http://blog.csdn.net/yao_qinwei/article/details/8805101

Ubuntu軟件管理器服務端有作修改過,軟件名不對

sudo apt-get install libncurses5-dev

利用這條命令即可安裝成功。

接著命令:make menucofig

進入安裝界面

在這裡具體的參數要根據自身電腦的硬件來設定,可參考鳥哥的linux私房菜中的配置

配置好保存後退出。

然後就是進行內核的編譯和安裝了。

編譯內核有以下幾個命令:

make bzImage 編譯經過壓縮的內核(默認)

make modules 編譯內核模塊

由於常見的/boot下面的內核文件都是經過壓縮過的內核文件,因此常見的就是這兩者命令

輸入編譯內核命令之後,就是漫長的等待

在這期間可能會出現一些問題,比如

drivers/net/igbvf/igbvf.h:128:15: 錯誤: 重復的成員‘page’

make[4]: *** [drivers/net/igbvf/ethtool.o] 錯誤 1

make[3]: *** [drivers/net/igbvf] 錯誤 2

make[2]: *** [drivers/net] 錯誤 2

make[1]: *** [drivers] 錯誤 2

make[1]:正在離開目錄 `/usr/src/linux-2.6.32.2'

make: *** [debian/stamp/build/kernel] 錯誤 2

這些錯誤存在的原因是因為,gcc的版本和內核所需的gcc版本不同,導致編譯過程有很多語法問題。

解決方法是,用vim 修改 drivers/net/igbvf/igbvf.h文件,128行代碼為:struct page *page;再往上看,第123行,也有struct page *page這行代碼,這個結構定義在內部的一個結構體中。就是他的名字與128行的重復了,而4.6.3的編譯器對不支持這種方式的定義,我們修改128行的代碼為struct page

*pagep;保存退出;

如何查看內核編譯成功

進入內核源碼的目錄,查看有沒有bzImage文件

內核編譯成功後就是開始編譯內核模塊:

命令:sudo make modules

也是經過漫長的等待編譯成功

內核模塊編譯好之後,開始進行模塊的安裝

命令:sudo make modules_install

安裝成功後,如何查看:

在/lib/modules命令下新建了內核的模塊,代表模塊安裝成功,接下來就是安裝內核了

安裝內核命令:make install

安裝成功,能夠看到:

在/boot目錄下,可以看到內核vmlinux-3.2.2c

這就代表安裝成功了。

接下來就是重啟,在啟動菜單能夠看到對應的內核項了。

Copyright © Linux教程網 All Rights Reserved