当前位置: 首页 > 科技观察

Linux内核编译很简单,6步编译出自己的内核

时间:2023-03-20 17:22:02 科技观察

我们在上一篇文章中多次提到了Linux内核,知道Linux内核是Linux操作系统的核心内容。内核实现对硬件的管理,并为应用软件提供使用硬件的接口。对于Linux开发者来说,内核的学习和开发才是最终的目标。那么今天就来介绍一下内核的编译。需要知道的是,Linux内核的编译安装并没有想象中的那么难和复杂,其实只需要几条命令就可以搞定。在本文中,我们将逐步描述如何从源代码编译和安装Linux内核。需要注意的是,本指南基于Ubuntu18.04编译安装,其他发行版可能存在差异。编译Linux内核?编译整个内核的过程非常简单,但是编译内核的时间比较长。这主要是因为内核代码非常庞大。当然,如果你有一台功能强大的电脑,时间会短很多。另外需要注意的是,建议在虚拟机环境下编译,以免出错导致系统出现问题。如果在虚拟机上测试,建议系统分区和内核源代码分区的大小大于20GB。第一步:下载源代码1、进入Linux内核官网,下载最新版本或其他版本的内核代码。这是源代码的tarball。2.假设我们现在处于Linux操作系统中,在命令行中输入以下命令来下载内核。wget链接(因为链接会被认为是广告,本文省略链接,请自行复制)下载过程中可以看到下载进度,下载完成后的信息大致如下。第二步:解压源码。压缩包下载完成后,可以通过tar命令解压。tarxvflinux-5.9.6.tar.xz解压后可以看到文件列表。会有很多,可能需要一段时间。第三步:安装所需软件包安装编译工具和其他依赖软件包,在Ubuntu18.04环境下执行以下命令。sudoapt-getinstallgitfakerootbuild-essentialncurses-devxz-utilslibssl-devbcflexlibelf-devbison如果一切顺利,大概的安装输出将如下所示。第四步:配置内核代码在编译内核之前,我们可以配置内核源代码。配置的目的主要是确定哪些模块将被编译到内核中。1、进入源代码目录cdlinux-5.9.62。将本机启动目录下的配置信息复制到源码目录下。这一步意味着我们编译内核的配置采用了与当前环境一致的配置。cp-v/boot/config-$(uname-r).config3.可以使用以下命令启动配置界面makemenuconfig这个命令会运行一些脚本,然后打开一个配置界面4.下面是打开的配置界面。可以看出,它包含了所有的内核组件,包括文件系统、网络、IO栈、虚拟化和设备驱动等,如果不熟悉可以不用管它。第五步:编译内核1.可以通过以下命令编译内核。make-j10上面的参数是并发数,一般可以是CPU的2倍。2.安装模块sudomakemodules_install3。安装内核sudomakeinstall安装完成后会出现如下提示信息。第六步:重启,验证版本。当以上步骤无误后,我们重启电脑,运行以下命令。uname-mrs现在可以看到内核版本已经是我们编译的版本了。结束语?通过以上步骤,我们就可以轻松编译出一个内核了。如果以后开发内核模块,也是基于内核代码树,所以这是内核开发的基础。可能出现的问题?在编译内核的时候,可能会遇到这样的问题:没有规则制作targetdebian/certs/debian-uefi-certs.pem,certs/x509_certificate_list需要停止编辑kernel目录下的配置才行编译后的文件。简单的方法就是执行下面的命令vim.config,然后找到CONFIG_SYSTEM_TRUSTED_KEYS,设置为空,就像下面这样。CONFIG_SYSTEM_TRUSTED_KEYS=””