1.下载内核源码
在官网下载源码:https://kernel.org/
2.安装编译依赖
Ubuntu下安装依赖,执行以下命令:
sudo apt install git build-essential kernel-package fakeroot libncurses5-dev libssl-dev ccache bison flex qtbase5-dev ${clang_deps} -y
如果出现fail to fetch 错误
做出如下修改a
3.内核配置
理解Kconfig .config Makefile三者的关系。
Kconfig:内核编译菜单
下图为根目录下的Kconfig内容:它会加载各子目录下的Kconfig,从形成上下级关系。通过make menuconfig命令会可视化这种上下级关系,形成菜单。
下图为mm/Kconfig内容
Kconfig数据类型:
bool:表示是否编译进内核
transitate:表示是否编译进内核或以模块形式编译。
int类型。字符串类型
.config:通过make menuconfig可视化Kconfig供用户配置,用户配置模块,选择结束后输出配置信息为 .config,
Makefile:根据.config内容进行条件编译。