Kernelbusybox编译

Posted 鱼儿叁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kernelbusybox编译相关的知识,希望对你有一定的参考价值。

一、编译kernel源码

1、指定硬件体系架构吗,如果需要指定编译arm内核,则指定ARCH=arm且需要安装交叉编译器。

#export ARCH=x86

2、配置board config,此处配置为x86_64_defconfig

#make x86_64_defconfig

在这一步的编中可能会报错,报错信息如下。

fatal error: curses.h: 没有那个文件或目录
compilation terminated.
make【1】: *** 【scripts/Makefile.host:118:scripts/kconfig/mconf.o】 错误 1
make: *** 【Makefile:553:menuconfig】 错误 2

针对上述报错信息,需要将源更新为清华源,执行.

sudo apt-get install libncurse5-dev

3、配置menuconfig

make menuconfig

4、配置内核
执行成功第三步中的命令后,会弹出一个配置框。对该菜单进行微调,需要内核支持ramdisk驱动,所以需要选中如下配置:

General setup  --->
       ----> [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
Device Drivers  --->
       [*] Block devices  --->
               <*>   RAM block device support
               (65536) Default RAM disk size (kbytes) 

5、编译内核

make

二、编译busybox源码

1、配置busybox源码,将busy配置为静态编译,这样busybox在运行的时候就不需要额外的动态链接库了。

#make menuconfig

Busybox setting --->
    Build Options --->
        [*] Build BusBox as a static binary (no share libs)

2、编译和安装

#make && make install

编译后的内核文件位于: ./_install 中

学习自: https://www.bilibili.com/read/cv11271232

以上是关于Kernelbusybox编译的主要内容,如果未能解决你的问题,请参考以下文章

Notepad++编辑器——Verilog代码片段直接编译

导致资产预编译在heroku部署上失败的代码片段

如何有条件地将 C 代码片段编译到我的 Perl 模块?

损坏的顶点和片段着色器

Android 逆向Android 逆向通用工具开发 ( Android 平台运行的 cmd 程序类型 | Android 平台运行的 cmd 程序编译选项 | 编译 cmd 可执行程序 )(代码片段

错误记录Android Studio 编译报错 ( Could not determine java version from ‘11.0.8‘. | Android Studio 降级 )(代码片段