30、RK3399 buildroot新增本地源码包

    科技2025-03-29  11

    目录

    1、创建工程目录2、新建 Config.in3、新建 firefly_demo.mk4、创建源码目录5、编写 Makefile6、修改上一级 Config.in7、配置软件包8、保存配置文件:9、编译10、 打包进根文件系统11、 若修改源码,重新编译软件包12、清除

    开发过程中,Buildroot 自带的软件包有时可能无法满足我们的需求,为此我们需要添加自定义的软件包。Buildroot 支持多种格式的软件包,包括 generic-package、cmake-package、autotools-package 等,我们以 generic-package 举例说明。

    1、创建工程目录

    cd path/to/SDK/ mkdir buildroot/package/rockchip/firefly_demo/

    2、新建 Config.in

    在 firefly_demo/ 下添加 Config.in:

    config BR2_PACKAGE_FIREFLY_DEMO bool "Simple Firefly Demo"

    3、新建 firefly_demo.mk

    在 firefly_demo/ 下添加 firefly_demo.mk:

    ################################################## ########### # ### firefly_demo # ################################################## ########### ifeq ($(BR2_PACKAGE_FIREFLY_DEMO), y) FIREFLY_DEMO_VERSION:=1.0.0 FIREFLY_DEMO_SITE=$(TOPDIR)/../external/firefly_demo/src FIREFLY_DEMO_SITE_METHOD=local define FIREFLY_DEMO_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) CC=$(TARGET_CC) CXX=$(TARGET_CXX) -C $(@D) endef define FIREFLY_DEMO_CLEAN_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) clean endef define FIREFLY_DEMO_INSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install endef define FIREFLY_DEMO_UNINSTALL_TARGET_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) uninstall endef $(eval $(generic-package)) endif

    4、创建源码目录

    上文的 Makefile 文件里已经指定了源码目录 external/firefly_demo/src。

    cd path/to/SDK/ mkdir external/firefly_demo/src 编写源码 firefly_demo.c

    在 firefly_demo/src/ 下添加 firefly_demo.c:

    #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { printf("Hello World!\n"); return 0; }

    5、编写 Makefile

    在 firefly_demo/src/ 下添加 Makefile:

    DEPS = OBJ = firefly_demo.o CFLAGS = %.o: %.c $(DEPS) $(CC) -c -o $@ $< $(CFLAGS) firefly_demo: $(OBJ) $(CXX) -o $@ $^ $(CFLAGS) .PHONY: clean clean: rm -f *.o *~ firefly_demo .PHONY: install install: cp -f firefly_demo $(TARGET_DIR)/usr/bin/ .PHONY: uninstall uninstall: rm -f $(TARGET_DIR)/usr/bin/firefly_demo

    6、修改上一级 Config.in

    在 buildroot/package/rockchip/Config.in 末尾添加一行:

    source "package/rockchip/firefly_demo/Config.in"

    7、配置软件包

    打开配置菜单 make menuconfig,找到 firefly_demo 并选中配置。

    8、保存配置文件:

    make savedefconfig

    9、编译

    make firefly_demo

    10、 打包进根文件系统

    make

    11、 若修改源码,重新编译软件包

    make firefly_demo-rebuild

    12、清除

    make firefly_demo-dirclean
    Processed: 0.011, SQL: 8