Buildroot에서 사용자 정의 디렉터리 및 파일 추가 방법
1. 개요
Buildroot를 활용하여 Root File System을 커스터마이징할 때, 특정한 디렉터리 및 파일을 추가해야 하는 경우가 많습니다. 예를 들어, 애플리케이션 실행을 위한 설정 파일을 추가하거나, 특정 디렉터리를 미리 생성해 두어야 하는 경우가 있을 수 있습니다. 본 글에서는 Buildroot를 이용하여 사용자 정의 디렉터리 및 파일을 Root File System에 추가하는 방법을 자세히 설명하겠습니다.
2. Buildroot에서 Root File System 구성 개요
Buildroot는 Root File System을 생성할 때 target
디렉터리 내의 파일 시스템 트리를 기반으로 합니다. 또한, rootfs overlay
기능을 활용하여 사용자 정의 파일과 디렉터리를 추가할 수도 있습니다. 주로 사용하는 방법은 다음과 같습니다.
rootfs overlay
기능을 활용한 파일 추가post-build
스크립트를 이용한 추가 방법BR2_ROOTFS_OVERLAY
옵션을 활용하는 방법- 패키지를 생성하여 파일을 추가하는 방법
각 방법을 예제와 함께 설명하겠습니다.
3. rootfs overlay를 이용한 파일 및 디렉터리 추가
3.1 rootfs overlay 개념
Buildroot에서는 rootfs overlay
라는 기능을 제공하며, 이는 특정 디렉터리를 Root File System에 그대로 복사하는 방식으로 동작합니다. 사용자가 원하는 파일 및 디렉터리를 overlay
디렉터리에 미리 생성해 두면, 빌드 시 해당 내용이 Root File System에 반영됩니다.
3.2 rootfs overlay 설정 방법
Buildroot의
board
디렉터리 또는 프로젝트 폴더에overlay
디렉터리를 생성합니다.mkdir -p board/custom_overlay/rootfs_overlay
원하는 파일 및 디렉터리를 생성합니다.
mkdir -p board/custom_overlay/rootfs_overlay/etc/myconfig echo "Custom configuration" > board/custom_overlay/rootfs_overlay/etc/myconfig/config.txt
BR2_ROOTFS_OVERLAY
설정을 활성화합니다.Buildroot의
menuconfig
에서 다음 경로로 이동합니다.Filesystem images ---> [*] Root filesystem overlay directories
그리고
board/custom_overlay/rootfs_overlay
경로를 추가합니다.빌드를 수행하면 해당 파일과 디렉터리가 Root File System에 반영됩니다.
4. post-build 스크립트를 이용한 추가 방법
post-build
스크립트는 Buildroot가 Root File System을 생성한 후 실행되는 스크립트입니다. 이를 이용하면 파일 및 디렉터리를 동적으로 추가할 수 있습니다.
4.1 post-build 스크립트 생성 및 등록
board/custom_overlay
디렉터리 내에post-build.sh
파일을 생성합니다.mkdir -p board/custom_overlay touch board/custom_overlay/post-build.sh chmod +x board/custom_overlay/post-build.sh
post-build.sh
파일을 편집하여 사용자 정의 디렉터리와 파일을 추가합니다.#!/bin/sh TARGET_DIR=$1 mkdir -p $TARGET_DIR/etc/myconfig echo "Custom configuration" > $TARGET_DIR/etc/myconfig/config.txt
Buildroot의
BR2_ROOTFS_POST_BUILD_SCRIPT
설정을 활성화합니다.make menuconfig
Filesystem images ---> (board/custom_overlay/post-build.sh) Path to the post-build script
빌드를 수행하면
post-build.sh
스크립트가 실행되며, 파일 및 디렉터리가 추가됩니다.
5. 패키지를 이용한 추가 방법
만약 특정 애플리케이션과 함께 파일을 배포하려면, Buildroot 패키지를 생성하는 것이 좋은 방법입니다.
5.1 패키지 디렉터리 생성
package/custom_package
디렉터리를 생성합니다.mkdir -p package/custom_package
Config.in
파일을 생성하고 내용을 추가합니다.config BR2_PACKAGE_CUSTOM_PACKAGE bool "Custom Package"
custom_package.mk
파일을 생성합니다.CUSTOM_PACKAGE_VERSION = 1.0 CUSTOM_PACKAGE_SITE = $(TOPDIR)/package/custom_package CUSTOM_PACKAGE_SITE_METHOD = local define CUSTOM_PACKAGE_INSTALL_TARGET_CMDS mkdir -p $(TARGET_DIR)/etc/myconfig echo "Custom configuration" > $(TARGET_DIR)/etc/myconfig/config.txt endef $(eval $(generic-package))
Buildroot
의menuconfig
에서 해당 패키지를 활성화합니다.make menuconfig
Package Selection for the target ---> [*] Custom Package
빌드를 수행하면 해당 패키지가 자동으로 파일을 추가합니다.
6. 결론
Buildroot에서 사용자 정의 디렉터리 및 파일을 추가하는 방법은 여러 가지가 있으며, 프로젝트의 필요에 따라 적절한 방법을 선택하면 됩니다. rootfs overlay
는 정적인 파일을 추가할 때 간단한 방법이며, post-build
스크립트는 빌드 과정에서 동적으로 파일을 추가하는데 유용합니다. 또한, 패키지를 이용하면 관리가 편리한 방식으로 파일을 추가할 수 있습니다.
본 가이드를 참고하여 사용자 정의 Root File System을 효과적으로 구성하시기 바랍니다.
'Linux > buildroot' 카테고리의 다른 글
Buildroot Init 스크립트 및 서비스 설정 (0) | 2025.04.13 |
---|---|
기본 파일 시스템 구성 요소 (0) | 2025.04.11 |
Buildroot 간단한 C/C++ 애플리케이션 추가 및 실행 (0) | 2025.04.10 |
Buildroot에서 사용자 정의 패키지 작성법 및 Config.in 설정 (0) | 2025.04.09 |
Buildroot에서 Custom Application 추가하기 (0) | 2025.04.08 |