关于Linux内核编译

关于生成配置文件
1、首先执行以下命令从老的 xxxx_defconfig 文件生成临时使用的 .config 文件:
根据硬件平台生成临时配置文件.config,比如 make xxxx_defconfig

  make vexpress_defconfig

2、然后 make menuconfig启动图形化配置,在 menuconfig 菜单中手动选择上我们需要添加的模块。执行以下命令打开配置菜单:
个人认为make menuconfig就是make oldconfig图形版本,在将新的更新到.config同时,将原来.config文件保存为.oldconfig.

   make menuconfig

手动选择好要使用的模块,保存并退出后,我们的配置就写入到 .config 文件中了。
  
3、然后我们再执行下方的命令将配置保存到 defconfig 文件中:

 make savedefconfig

上方这条命令在成功被执行之后,我们可以在内核的根目录下发现新增了一个名为 defconfig 的文件,这个文件里包含了所有模块的配置。我们只需要将要移植的模块配置添加到xxxx_defconfig行了
 
4. 保存形式xxx_defconfig
cp defconfig arch/arm/configs/xxx_defconfig 保存
这样保存的defconfig文件,配置最小化。 以后就执行make xxx _defconfig即可。

内核编译时, 到底用make clean, make mrproper还是make distclean

删除的文件范围从小到大依次为: make clean < make mrproper < make distclean

清除命令 说明
make clean 删除大多数的编译生成文件, 但是会保留内核的配置文件.config, 还有足够的编译支持来建立扩展模块
make mrproper 删除所有的编译生成文件, 还有内核配置文件, 再加上各种备份文件
make distclean 删除的文件, 加上编辑备份文件和一些补丁文件。

其 实, 对于一个刚刚从kernel.org上下载的内核源码包, 可以不用执行make clean/make mrproper/make distclean, 因为源码包的状态本身就是clean的。

使用 make distclean 指令可以直接清除编译生成的*.o 文件、Makefile、生成的*.h 与生成的可执
行文件。再使用 ls 查看当前工程目录,又变成一个干净原始的工程目录了。

编译内核(第一次耗时较强,建议等待期间吃个饭)

make -jN

安装内核模块
make modules_install 只是把编译好的模块拷贝到系统目录下(一般是/lib/modules/)。

make modules_install

安装内核

make install

猜你喜欢

转载自blog.csdn.net/u014783785/article/details/106744652