给buildroot添加自己的软件包,自动安装到rootfs

官网本身有详细教程,这里只是简单说一下。

 

0. 源码 hello.c和Makefile一起放在了 ~/buildroot-2020.08.1/dl/helloworld 文件夹

hello.c

#include <stdio.h>

int main()
{
    printf("buildroot helloworld\n");
    return 0;
}

 

Makefile:

OPT    = -O2
DEBUG  = -g
OTHER  = -Wall -Wno-deprecated
CFLAGS = $(OPT) $(OTHER)
INCDIR = -I
LIBDIR = -L
LIBS =
APP=helloworld
SRCS=hello.c

all:
    $(CC) -o $(APP) $(SRCS) $(CFLAGS) $(LIBDIR) $(INCDIR) $(LIBS)
clean:
    rm $(APP)

 

1. 加menuconfig项目

改这个文件:

~/buildroot-2020.08.1/package/Config.in 

……
menu "Text editors and viewers"
    source "package/ed/Config.in"
    source "package/joe/Config.in"
    source "package/less/Config.in"
    source "package/mc/Config.in"
    source "package/most/Config.in"
    source "package/nano/Config.in"
    source "package/uemacs/Config.in"
    source "package/vim/Config.in"
endmenu

menu "myown helloworld"
    source "package/helloworld/Config.in"
endmenu

endmenu

注意要在最后这个 endmenu 前插入。

 

2.  新建 ~/buildroot-2020.08.1/package/helloworld/Config.in

config BR2_PACKAGE_HELLOWORLD
bool "helloworld"
help
  This is a demo to add myown helloworld.

此时menuconfig就有了。

 

3. 新建 ~/buildroot-2020.08.1/package/helloworld/helloworld.mk

################################################################################
#
# helloworld
#
################################################################################

HELLOWORLD_VERSION:= 1.0.0
HELLOWORLD_SITE:= $(CURDIR)/dl/helloworld
HELLOWORLD_SITE_METHOD:=local
HELLOWORLD_INSTALL_TARGET:=YES

define HELLOWORLD_BUILD_CMDS
    $(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" -C $(@D) all
endef

define HELLOWORLD_INSTALL_TARGET_CMDS
    $(INSTALL) -D -m 0755 $(@D)/helloworld $(TARGET_DIR)/bin
endef

define HELLOWORLD_PERMISSIONS
    /bin/helloworld f 4755 0 0 - - - - -
endef

$(eval $(generic-package))

我把工程代码放到 ~/buildroot-2020.08.1/dl/helloworld 里了

 

完成,直接在~/buildroot-2020.08.1 下 make menuconfig 使能helloworld包,然后make。helloworld会自动安装到根文件系统的/bin目录下。

 

posted @ 2020-10-29 18:28  园友1683564  阅读(3264)  评论(0编辑  收藏  举报