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
|