在ubuntu下安装新的内核

首先去内核的官网下载官方内核,比如: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查看文件如下图所示:

在ubuntu下安装新的内核_第1张图片


使用命令: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,提示安装失败

在ubuntu下安装新的内核_第2张图片

对此,进行baidu,发现解决方案,http://blog.csdn.net/yao_qinwei/article/details/8805101

Ubuntu软件管理器服务端有作修改过,软件名不对

sudo apt-get install libncurses5-dev 

利用这条命令即可安装成功。

接着命令:make menucofig

进入安装界面

在ubuntu下安装新的内核_第3张图片


在这里具体的参数要根据自身电脑的硬件来设定,可参考鸟哥的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

安装成功后,如何查看:

在ubuntu下安装新的内核_第4张图片

在/lib/modules命令下新建了内核的模块,代表模块安装成功,接下来就是安装内核了


安装内核命令:make install

安装成功,能够看到:

在/boot目录下,可以看到内核vmlinux-3.2.2c


这就代表安装成功了。


接下来就是重启,在启动菜单能够看到对应的内核项了。



你可能感兴趣的:(Linux)