buildroot是一个构建嵌入式系统的工具,开发者可以根据对其进行配置实现自动生成交叉编译工具链(toolchain)、根文件系统(rootfs)、Linux内核映像(linux kernel)和目标引导程序(bootloader)。buildroot常用来构建根文件系统,不仅集成了 busybox,而且还集成了各种常见的第三方库和软件供用户选择,极大的方便了嵌入式Linux开发人员构建实用的根文件系统。

一、buildroot使用

1.下载安装源码: http://buildroot.org/downloads/
2.图形化配置:make menuconfig(make n/x/gconfig)
3.编译和构建系统:make
4.在buildroot/output/image目录下可找到相关镜像

二、在buildroot下新增包

1.新建包目录buildroot/package/package_name/
2.在pakage_name下添加Config.in和package_name.mk文件(类似Makefile)
3.在package/Config.in添加source “package/package_name/Config.in”
4.在package/xxx.mk添加include $(sort package/package_name/package_name.mk) (如果想不自动安装包可以加上判断语句ifeq(xxx,y)endif)
5.在buildroot/configs/xxx_defconfig 添加配置选项 BR2_PACKAGE_PACKAGE_NAME=y
6.make buildroot(或make package_name-rebuild)重新编译根文件系统

Config.in文件(具体格式参考官网文档)



config BR2_PACKAGE_PACKAGE_NAME
bool "package name"
help
package name 

package_name.mk 文件



PACKAGE_NAME_VERSION = 1.0                  /*自定义说明包的版本,注意大写,否则识别不出来*/
PACKAGE_NAME_SITE = $(TOPDIR)/../xxx_path(httpxxx)    /*自定义说明包的本地路径或者下载路径,路径中必须有Makefile或相关源码*/
PACKAGE_NAME_SITE_METHOD = local                  /*自定义说明包从本地获得还是网上下载,这里是本地获得*/

define PACKAGE_NAME_BUILD_CMDS
$(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) all armhf=1       //编译包的命令,可自定义
endef

define PACKAGE_NAME_INSTALL_TARGET_CMDS                          //在target目录下安装包的命令,可自定义
$(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) install
endef

$(eval $(generic-package))

参考资料:https://buildroot.org/downloads/manual/manual.html

Logo

更多推荐