在CentOS 7上用源代码编译最新的Linux内核

2020年01月13日

翻译转载自:https://linuxhint.com/compile-linux-kernel-centos7/
关键字:centos7 kernel 编译 内核

这文章是转载自国外博客的,因为这个文章对于我们国内很多Linux爱好者或站长朋友们都用得着,我自己也是想学习这方面的知识,所以就翻译转载过来了。首先是从内核官网下载最新的内核源代码。
Linux kernel:https://www.kernel.org/

1、首先检查当前使用的系统版本及内核,命令如下

cat /etc/redhat-release #检查当前系统版本号
uname -r #检查当前使用的内核版本

 
2、安装必备组件,要在CentOS 7上从源代码处编译最新的Linux内核,必须在CentOS 7操作系统上安装一个构建工具和一些其他软件包,在安装任何内容之前,请运行以下命令以更新包缓存。

yum makecache

 

现在可以使用以下命令安装编译内核所需的编译器和库:

yum install ncurses-devel make gcc bc openssl-devel

 

按“y”,然后按继续。

现在您必须安装elfutils包。运行以下命令进行安装:

yum install elfutils-libelf-devel

 

现在使用以下命令安装rpm build:

yum install rpm-build

 

3、访问kernel官网,点击“Latest Stable Kernel”按钮下载最新稳定版内核源码
4、编译内核,内核下载完成后,导航到下载文件的目录。在我的例子中,它是用户主目录中的下载目录。

cd ~/Downloads #切换到文件存放目录
tar xvf linux-5.13.10.tar.xz #解压缩文件包
cd linux-5.13.10 #切换到文件目录

 
如果运行以下命令,则应看到系统上安装的内核使用的配置文件列表。您可以运行’uname-r’命令来找到您需要的。文件名应与“uname-r”命令的输出匹配。

ls -l /boot/
OR
ls -l /boot/config

 

然后使用以下命令将配置文件复制到linux-5.13.10目录:

cp -v /boot/config-3.10.0-693.el7.x86_64 .config

 

make menuconfig

 
你就会看到下面的窗口。这是您启用或禁用某些内核功能的地方。如果你不知道该怎么做,那就默认。

完成后,按几次按钮并转到“”,如下面的屏幕截图所示。然后按

然后再次按


然后再次按


现在导航到“”,按

将为新内核更新.config文件。

在开始编译新内核之前,请确保编译内核的文件系统上有超过20GB的可用空间。
可以使用以下命令检查可用空间:

df -h

 

现在运行以下命令启动编译过程:

make rpm-pkg

 
内核编译需要很长时间.

完成后,您将看到以下窗口。一些rpm包文件是在用户的主目录上创建的,您可以从屏幕截图中看到。

ls -l ~/rpmbuild/RPMS/x86_64/ #查看生成的rpm包文件
rpm -iUv ~/rpmbuild/RPMS/x86_64/*.rpm #安装生成的所有内核文件
reboot #重启系统

 

所以这就是如何从源代码处编译最新内核并在CentOS 7上使用它的方法。谢谢你读这篇文章。


sicnature ---------------------------------------------------------------------
I P 地 址: 52.15.189.183
区 域 位 置: 美国俄亥俄都柏林
系 统 信 息: 美国
Original content, please indicate the source:
同福客栈论坛 | 蟒蛇科普海南乡情论坛 | JiaYu Blog
sicnature ---------------------------------------------------------------------
Welcome to reprint. Please indicate the source https://myzhenai.com.cn/post/3085.html

1 评论

  • 海南胡说 2020年01月13日在12:25 上午

    移除kernel内核多余模块请参考:http://www.jinbuguo.com/kernel/longterm-linux-kernel-options.html

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注