如何将Ubuntu16.04 升级到最新版本的内核

如何将Ubuntu16.04 升级到最新版本的内核,第1张

方法/步骤

检查安装的内核版本

要发现当前系统安装的版本,我们可以:

$ uname -sr

下面的截图显示了在 Ubuntu 16.04 server 中上面命令的输出:

在 Ubuntu 16.04 中升级内核

要升级 Ubuntu 16.04 的内核,打开 http://kernel.ubuntu.com/~kernel-ppa/mainline/ 并选择列表中需要的版本(发布此文时最新内核是 4.10.1)。

接下来,根据你的系统架构下载 .deb 文件:

对于 64 位系统:

$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.1/linux-headers-4.10.1-041001_4.10.1-041001.201702260735_all.deb

$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.1/linux-headers-4.10.1-041001-generic_4.10.1-041001.201702260735_amd64.deb

$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.1/linux-image-4.10.1-041001-generic_4.10.1-041001.201702260735_amd64.deb

3

这是 32 位系统:

$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.1/linux-headers-4.10.1-041001_4.10.1-041001.201702260735_all.deb

$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.1/linux-headers-4.10.1-041001-generic_4.10.1-041001.201702260735_i386.deb

$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.1/linux-image-4.10.1-041001-generic_4.10.1-041001.201702260735_i386.deb

4

下载完成这些所有内核文件后,如下安装:

$ sudo dpkg -i *.deb

安装完成后,重启并验证新的内核已经被使用了:

$ uname -sr

就是这样。你下载就可以使用比 Ubuntu 16.04 默认安装的内核的更新版本了。

如何更新/替换ubuntu16.04内核

1.配置编译工具

#apt-get install libncurses5-dev build-essential kernel-package

1

1

2.下载内核代码

因为kernel.org的代码和ubuntu内核的代码并不完全一致,所以直接从kernel.org下载下来的代码无法确保编译后可以成功运行于老的ubuntu平台,所以应该使用ubuntu的最新的内核代码

下载ubuntu最新的内核代码

#sudo apt-cache search linux-source

1

1

结果如下

Linux-source - linux kernel source with Ubuntu patches

linux-source-4.4.0 - Linux kernel source for version 4.4.0 with Ubuntu patches

linux-source-4.8.0 - Linux kernel source for version 4.8.0 with Ubuntu patches

选择比较新的4.8的版本

#sudo apt-get install linux-source-4.8.0

1

1

代码会下载在/usr/src下,里面内容如下:

drwxr-xr-x 27 root root 4096 4月 21 2016 linux-headers-4.4.0-21

drwxr-xr-x 7 root root 4096 4月 21 2016 linux-headers-4.4.0-21-generic

drwxr-xr-x 27 root root 4096 1月 22 21:35 linux-headers-4.4.0-59

drwxr-xr-x 7 root root 4096 1月 22 21:35 linux-headers-4.4.0-59-generic

drwxr-xr-x 4 root root 4096 1月 22 23:00 linux-source-4.8.0

lrwxrwxrwx 1 root root 45 12月 22 04:36 linux-source-4.8.0.tar.bz2 ->linux-source-4.8.0/linux-source-4.8.0.tar.bz2

1

2

3

4

5

6

1

2

3

4

5

6

编译与替换

1.拷贝到其他工作目录

2.在源代码目录执行

cp arch/x86/configs/x86_64_defconfig .config

1

1

3.编译

make menuconfig

make

sudo make moudules_install

sudo make install

sudo reboot

1

2

3

4

5

1

2

3

4

5

验证

重启后执行uanme -a 命令,查看内核版本,会发现内核版本已经从4.4.0-59变为4.8.11

意义

编译/替换内核之后,可以获得与当前内核版本相匹配的头文件,方便进行驱动开发。另外可以获得带符号的vmlinux,可以方便的进行内核的调试与学习。

2

这个要编译的。

从kernel.org下载内核源代码,这里我下载的是最新的4.6-rc5,下载的文件为linux-4.6-rc5.tar.xz,直接用归档管理器解压即可。如果你采用命令行可以用以下命令解压:

xz -d linux-4.6-rc5.tar.xz

tar xvf linux-4.6-rc5.tar

这一步完成后你的当前目录下应该会出现linux-4.4-rc5这个文件夹,进入这个文件夹:

cd linux-4.6-rc5

执行以下命令来确保内核代码树绝对干净:

make mrproper

此外还要安装编译kernel过程中的一些依赖项:

yaourt -S xmlto docbook-xsl bc

2.配置

这一步是定制精确适配你的电脑规格的内核最关键的步骤,为了适应各种机型,官方内核包含了绝大部分的内核模块,其中有些是我们用不到的,可以选择去掉这些模块,更好地发挥硬件的性能。

传统的菜单配置方式如下:

make menuconfig

这会d出一系列的菜单,你可以根据自己的需求进行高度的定制,留下需要的部分即可。例如选择不编译某些部分,或者将某个部分编译成模块。

对于新手来说上述配置过程会很复杂,错误的设置可能会导致内核无法启动或者某些设备无法驱动。不过对新手来说有一个超级捷径,那就是使用localmodconfig:

make localmodconfig

这个命令只会选择当前正在被使用的选项,所以在执行这条命令之前,把所有的设备(鼠标、键盘、U盘)都先插上,这样就应该不会出问题啦。为了简单我这里也采取这样的方式。

最后配置文件将被保存在.config文件中,编译过程会用到它。

3.编译

配置完成后便可以执行编译工作:

make -j4

编译的过程将花费很多时间,从15分钟到超过1小时不等,这取决于你选择的多少选项以及电脑处理器的性能。

4.安装

安装模块:

sudo make modules_install

这一步把内核模块复制到/lib/modules/4.6.0-rc5这个文件夹中,我们需要删除其中的source和build的链接:

sudo rm -f /lib/modules/4.6.0-rc5/{source,build}

将内核复制到/boot目录

sudo cp -v arch/x86_64/boot/bzImage /boot/vmlinuz-4.6

制作初始化内存盘

sudo mkinitcpio -k 4.6.0-rc5 -c /etc/mkinitcpio.conf -g /boot/initramfs-4.6.img

完成上述步骤之后你的/boot目录会多出vmlinuz-4.6和initramfs-4.6.img这两个文件。

现在执行sudo grub-mkconfig -o /boot/grub/grub.cfg来更新引导信息,就可以使用新的内核启动了。重启后使用uname -a来查看内核版本,可以看到已经是4.6-rc5了:

关于更多Linux的学习,请查阅书籍《linux就该这么学》。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8241709.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存