嗨,今天我们要编译Linux内核。您可以认为编译内核对您来说是非常复杂和困难的。但事实并非如此。它比许多其他项目更容易编译。因为Linux内核不依赖于库或其他工具。它只需要用于模块配置的ncurses开发库。
下载Linux内核
源代码
Linux内核是一个开源项目,任何人都可以免费使用。Linux内核源代码由 http://www.kernel.org . 首先我们将下载最新的主线内核源代码。
$ wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.4.tar.xz

提取Linux内核
然后减压。像xz,gz这样的文件后缀并不重要,它们只是不同的压缩算法,所有的成分都是一样的
$ tar xvf linux-3.16-rc4.tar.xz
输入解压缩目录
$ cd linux-3.16-rc4/
再进行
运行内核的模块配置菜单。这里您需要C语言的ncurses-devel库。
Ubuntu、Debian、Mint、Kali
$ sudo apt install bison libncurses-dev flex
软呢帽、CentOS、RedHat
$ sudo yum install ncurses-devel.x86_64 bison flex
内核生成配置
我们将使用以下命令运行内核配置工具。
$ make menuconfig
您可以从这里配置文件系统模块。如果有空间限制,则可以删除不需要的文件系统模块或添加所需的文件系统模块

以下是驱动程序模块。如上所述,您可以删除不需要的模块或添加所需的驱动程序。

可以使用此菜单配置虚拟化模块。假设你有AMD的CPU,你不必编译英特尔驱动程序。
相关文章: Bash命令基础

应用所有设置后,您可以保存它们并退出


提供帮助
现在我们准备编译这个过程。有很多编译选项,但我将向您展示其中的一些。如果你想让他们都跑的话 提供帮助
$ make help

将Linux内核编译为ISO映像
我们可以用 isoimage
选项,使ISO文件启动内核。这个ISO也可以刻录成CD。
$ make -j8 isoimage
编译后,您可以在 arch/x86/boot/image.iso文件
将Linux编译为二进制文件
Linux内核可以用 make
命令。通过提供 -j8
汇编将以多种方式进行。
$ make -j8

安装Linux内核
我们可以像下面这样安装编译过的Linux内核。这将更改Linux发行版的当前内核,并在下次使用此内核引导时进行引导。
$ make install