Buildroot에서 Custom Application 추가하기
Buildroot는 임베디드 시스템을 위한 루트 파일 시스템을 손쉽게 생성할 수 있도록 도와주는 도구이다. 기본적으로 다양한 패키지를 제공하지만, 프로젝트에 맞는 사용자 정의 애플리케이션(Custom Application)을 추가하는 방법이 필요할 수 있다. 이번 포스팅에서는 Buildroot에서 Custom Application을 추가하는 방법을 자세히 설명한다.
1. Custom Application 추가 개요
Buildroot에서 새로운 애플리케이션을 추가하는 방법은 두 가지가 있다.
- 기존의 Buildroot 패키지 시스템을 활용하여 새로운 패키지를 정의하는 방법
- 외부 패키지 디렉터리를 만들어 애플리케이션을 추가하는 방법
이 글에서는 첫 번째 방법을 중심으로 설명하며, 외부 패키지 디렉터리를 활용하는 방법도 간략히 언급한다.
2. 새로운 패키지 디렉터리 생성
Buildroot의 package
디렉터리에 새로운 애플리케이션을 위한 서브 디렉터리를 생성해야 한다. 예를 들어, custom_app
이라는 패키지를 추가한다고 가정하면 다음과 같이 디렉터리를 만든다.
cd buildroot/package
mkdir custom_app
cd custom_app
3. 필수 파일 작성
Buildroot에서 패키지를 구성하려면 몇 가지 필수 파일을 작성해야 한다.
3.1 Config.in
파일 작성
Config.in
파일은 Buildroot의 메뉴 구성에서 새로운 패키지를 선택할 수 있도록 설정하는 파일이다.
touch Config.in
파일을 열어 다음 내용을 추가한다.
config BR2_PACKAGE_CUSTOM_APP
bool "Custom Application"
help
사용자 정의 애플리케이션을 빌드합니다.
3.2 custom_app.mk
파일 작성
패키지의 빌드 규칙을 정의하는 custom_app.mk
파일을 작성한다.
touch custom_app.mk
파일을 열어 다음 내용을 추가한다.
CUSTOM_APP_VERSION = 1.0
CUSTOM_APP_SITE = $(TOPDIR)/package/custom_app/src
CUSTOM_APP_SITE_METHOD = local
define CUSTOM_APP_BUILD_CMDS
$(MAKE) -C $(@D)
endef
define CUSTOM_APP_INSTALL_TARGET_CMDS
$(INSTALL) -D -m 0755 $(@D)/custom_app $(TARGET_DIR)/usr/bin/custom_app
endef
$(eval $(generic-package))
여기서 CUSTOM_APP_SITE
경로는 애플리케이션의 소스 코드가 위치한 경로이다. CUSTOM_APP_BUILD_CMDS
에서는 빌드 명령을 지정하고, CUSTOM_APP_INSTALL_TARGET_CMDS
에서는 빌드된 실행 파일을 /usr/bin/
에 설치하는 규칙을 지정한다.
3.3 src
디렉터리 및 샘플 코드 추가
애플리케이션 소스 코드를 저장할 src
디렉터리를 생성하고, 간단한 C 프로그램을 추가한다.
mkdir src
cd src
샘플 C 코드 (custom_app.c
)를 생성한다.
#include <stdio.h>
int main() {
printf("Hello, Buildroot Custom Application!\n");
return 0;
}
Makefile도 함께 작성한다.
touch Makefile
Makefile
을 열고 다음 내용을 추가한다.
all:
$(CC) custom_app.c -o custom_app
clean:
rm -f custom_app
4. Buildroot 설정 반영
이제 작성한 패키지를 Buildroot에서 인식할 수 있도록 설정 파일을 수정해야 한다.
4.1 package/Config.in
파일 수정
Buildroot의 package/Config.in
파일을 열어 다음 줄을 추가한다.
source "package/custom_app/Config.in"
이렇게 하면 Buildroot의 메뉴 설정에서 custom_app
패키지를 선택할 수 있다.
4.2 make menuconfig
실행
이제 make menuconfig
를 실행하여 패키지를 활성화한다.
make menuconfig
메뉴에서 Custom Application
을 찾아 선택한 후 저장하고 종료한다.
5. 빌드 및 확인
이제 Buildroot를 빌드하여 Custom Application이 포함되었는지 확인한다.
make
빌드가 완료되면 output/target/usr/bin/
경로에 custom_app
실행 파일이 생성되어 있을 것이다. 타겟 보드에서 실행하면 다음과 같은 출력이 나타난다.
$ /usr/bin/custom_app
Hello, Buildroot Custom Application!
6. 외부 패키지 디렉터리 활용 (선택 사항)
Buildroot의 패키지를 프로젝트 외부에서 관리하려면 BR2_EXTERNAL
을 이용하는 방법도 있다. 프로젝트 디렉터리 외부에 custom-external
디렉터리를 만들고, 패키지를 custom-external/package
아래에 추가하는 방식이다. 이를 활용하면 Buildroot를 직접 수정하지 않고도 유지보수가 가능하다.
mkdir -p custom-external/package/custom_app
이후 BR2_EXTERNAL=../custom-external
옵션을 사용하여 Buildroot를 설정하면 된다.
7. 마무리
이번 포스팅에서는 Buildroot에서 Custom Application을 추가하는 방법을 단계별로 설명하였다. 기본적인 패키지 구성 요소와 빌드 과정, 그리고 외부 패키지를 활용하는 방법까지 살펴보았다. 이 방법을 활용하면 Buildroot를 이용한 임베디드 시스템 개발에서 원하는 애플리케이션을 손쉽게 추가하고 관리할 수 있다.
'Linux > buildroot' 카테고리의 다른 글
Buildroot 간단한 C/C++ 애플리케이션 추가 및 실행 (0) | 2025.04.10 |
---|---|
Buildroot에서 사용자 정의 패키지 작성법 및 Config.in 설정 (0) | 2025.04.09 |
Buildroot에서 커널 설정 및 빌드 방법 (0) | 2025.04.07 |
Buildroot 패키지 선택 및 커스터마이징 방법 (0) | 2025.04.05 |
make menuconfig를 활용한 설정 변경 (0) | 2025.04.05 |