07-开始手搓,开始在Fedora上编译内核

开始手搓

接下来我们就开始尝试亲手编译一个内核 并启动。

准备零件

首先,我们需要拿到上游供应商的零件。

准备工具

以下是你需要的工具。

vim

gcc

make

git

wget

tmux

ncurses-devel

切换到root用户之后,在当前目录下 创建一个Git的目录,进入Git目录,并且开始tmux

由于这里等的太久。。经过一番询问之后,发现我们还是 去下载那个 tarball吧。。这样的话就不用下载里面的git记录。我们体验一把从源码编译内核到二进制的过程,后面再说调参,和查看日志。啥的。

w

这里的速度果然嘎嘎快。下载完之后就是解压然后我们来看一眼里面的结构。

######//待补充: 这里需要有一个 各个目录的简单介绍。

开始手搓

内核配置保存在操作系统顶层目录中名为 .config 的文件中 内核源代码树。 如果你刚刚解压缩了内核源码,解压出来的目录中会没有 .config 文件,因此需要创建它。 它可以从头开始创建,执行下面的命令,会让系统基于当前的配置写入到.config文件中

如果你前面没有安装好 ncurses-devel在 make menuconfig的时候就会出现如下报错:

使用 dnf -y install ncurses-devel 既可

继续 make menuconfig 之后 得到了如下报错

使用dnf -y install flex 之后 安装相关的包就好了

继续 make menuconfig 之后 继续执行 make menuconfig

这里遇到报错时候 dnf -y install flex

之后 继续 make menuconfig

dnf -y install bison

之后 终于看到了 menuconfig 的 本来面目

这里使用 tab 键键光标放到下面的 <Save>上面 确认就好了

make -j 16 all

dnf -y install elfutils-libelf-devel

make -j 16 all

dnf -y install openssl-devel

make -j 16 all

之后就是漫长的等待了

#######//待补充: 这里要说一下 前面的 CC 啊 LD 啊 啥的 方括号里的 啥的 都是什么意思

整个 编译过程中大概需要 30-40分钟不等,具体的时长根据你的机器性能来决定。

我这边稍等片刻之后,发现编译出现了问题:

重新执行 make -j 16 all得到如下报错

修改.config文件

之后 make menuconfig 保存为新的 配置文件

make -j 16 all

还有有报错 根据 尹剑虹 大哥的提示 我们加上 V=2 来讲相关的 信息打印出来

相关的信息可以在 make help中得到 。请注意这里一定要在

dnf -y install zstd

make -j 16 all V=2

这次 终于完成了。。。终于完成了。。。

之后便是将 编译好的 内核模块 安装到现有的系统上。

make modules_install

make install

首次运行

Last updated