0.背景
在给新的XPS笔记本配置Ubuntu的时候,由于硬件较新,导致老的Linux内核无法正常使用,所以需要更换新的Linux内核。因此这篇博客主要介绍一下Linux内核相关的内容。另外插一句题外话,今天看新闻,说是美国的火星探测车已经成功着陆了,上面就搭载了Linux操作系统。
1.Linux内核是什么
(1) 简介
从大方面来说,Linux体系结构可以分为两块:用户空间和内核空间。
- 用户空间:包括用户的应用程序、C库
- 内核空间:包括系统调用、内核以及与平台架构相关的代码
它们的示意图如下所示。 简而言之,Linux内核可以理解为整个Linux系统的基础,负责和硬件打交道。这也就是为什么更换了新的内核之后,就可以支持很多新的硬件的原因。从这个角度来说,内核是十分重要的,决定了系统能否正确地和硬件打交道。
(2) 查看现有内核
在简单了解了Linux内核是什么之后,如何查看我们当前系统的Linux内核呢?一个简单的办法是,打开终端直接输入uname -a
命令即可,如下。
可以看到,当前Ubuntu系统使用的Linux内核是5.9版本。需要注意的是,我们的系统里可能有多个Linux内核,而使用uname
查看的是当前使用的内核。因此如果要查看安装好的所有内核,可以在终端中输入dpkg --get-selections | grep linux
命令,如下所示。
可以看到在系统中我们安装了4.15.112、4.15.132、5.9.0等多个内核。如何安装内核是我们接下来的内容。
2.Linux内核安装
顾名思义就是除了现有内核之外,再安装一个不同版本的新内核。这里的安装并非指从源码编译,而是利用dpkg
的方式进行安装。
(1) 去哪找内核
既然要安装新内核,去哪里找内核文件呢?我们可以去Linux内核的存档网站,点击查看。或者更进一步,可以直接在Ubuntu提供的Linux内核存档网站寻找,找到需要的版本下载即可。 比如我们点击5.9版本的内核,打开后的网页如下所示。 可以看到有很多内核相关文件可以下载。我们需要下载带有generic的文件。包括headers、image和modules,如下红色框框所示。 包括headers-generic-amd64、headers-generic-all、image-unsigned-generic-amd64、modules-generic-amd64这四个文件。
(2) 内核安装
内核文件下载好以后,安装其实非常简单。只需要在下载文件的目录下打开终端,然后输入dpkg -i *.deb
就可以了。安装成功以后重启再用uname -a
查看就可以看到内核已经切换到我们刚刚安装的版本了。
当然,安装时可能会遇到一些缺少库的情况,一般按照提示下载安装就可以了。
3.Linux内核切换
我们更新内核固然重要,但是有时候我们可能需要在不同的内核之间切换。比如我的XPS笔记本中,要想正常使用最新的硬件,就必须要内核在5.x版本,但是安装的CUDA等环境却只能在4.x版本正常工作。在5.x版本会提示没有可用的CUDA设备,因此只能切换到4.x版本下运行。切换内核版本其实也非常简单,用的是我们之前就接触过的grub工具。
内核切换有多种方法。这里介绍一种相对简单的,在启动时手动选择的方法。之前在GRUB启动的时候,一般我们都是选择Ubuntu或者Windows boot manager来进入Ubuntu或者Windows。但是现在我们不选这两个了,我们选择”Ubuntu高级选项”。然后再选择我们需要的内核进行启动,就可以切换到指定内核了。
4.参考资料
- [1] http://www.openpcba.com/web/contents/get?id=4638&tid=15
- [2] https://www.cnblogs.com/wrjvszq/p/4257164.html
- [3] https://kernel.ubuntu.com/~kernel-ppa/mainline/
- [4] https://www.kernel.org/
- [5] https://blog.csdn.net/weixin_40641735/article/details/89019657
- [6] https://www.cnblogs.com/carle-09/p/12377128.html
- [7] https://blog.csdn.net/bby1987/article/details/104264285/
本文作者原创,未经许可不得转载,谢谢配合