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.txtBR2_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.shpost-build.sh파일을 편집하여 사용자 정의 디렉터리와 파일을 추가합니다.#!/bin/sh TARGET_DIR=$1 mkdir -p $TARGET_DIR/etc/myconfig echo "Custom configuration" > $TARGET_DIR/etc/myconfig/config.txtBuildroot의
BR2_ROOTFS_POST_BUILD_SCRIPT설정을 활성화합니다.make menuconfigFilesystem 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_packageConfig.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 menuconfigPackage Selection for the target ---> [*] Custom Package빌드를 수행하면 해당 패키지가 자동으로 파일을 추가합니다.
6. 결론
Buildroot에서 사용자 정의 디렉터리 및 파일을 추가하는 방법은 여러 가지가 있으며, 프로젝트의 필요에 따라 적절한 방법을 선택하면 됩니다. rootfs overlay는 정적인 파일을 추가할 때 간단한 방법이며, post-build 스크립트는 빌드 과정에서 동적으로 파일을 추가하는데 유용합니다. 또한, 패키지를 이용하면 관리가 편리한 방식으로 파일을 추가할 수 있습니다.
본 가이드를 참고하여 사용자 정의 Root File System을 효과적으로 구성하시기 바랍니다.
'Linux > buildroot' 카테고리의 다른 글
| Buildroot의 내부 툴체인과 외부 툴체인 차이점 (0) | 2025.04.14 |
|---|---|
| Buildroot Init 스크립트 및 서비스 설정 (0) | 2025.04.13 |
| 기본 파일 시스템 구성 요소 (0) | 2025.04.11 |
| Buildroot 간단한 C/C++ 애플리케이션 추가 및 실행 (0) | 2025.04.10 |
| Buildroot에서 사용자 정의 패키지 작성법 및 Config.in 설정 (0) | 2025.04.09 |