U-Boot 포팅 (2. 개발 환경 구축 / 필요한 도구 및 패키지 설치)

2025. 2. 26. 12:25프로그래밍/시스템

필요한 도구 및 패키지 설치

U-Boot를 빌드하고 포팅하려면 크로스 컴파일러, 빌드 도구, 필수 패키지를 설치해야 합니다.
아래 가이드를 따라하면 U-Boot 개발 환경을 안정적으로 구성할 수 있습니다.


1. 크로스 컴파일러 설치

U-Boot는 다양한 임베디드 프로세서(ARM, RISC-V, MIPS 등)에서 동작하므로, 타겟 아키텍처에 맞는 크로스 컴파일러를 사용해야 합니다.
크로스 컴파일러는 개발 PC(x86)에서 임베디드 프로세서(ARM, RISC-V 등)용 실행 파일을 빌드하는 도구입니다.

🔹 크로스 컴파일러 종류

아키텍처  크로스 컴파일러
ARM 32-bit gcc-arm-none-eabi, arm-linux-gnueabi-gcc
ARM 64-bit aarch64-linux-gnu-gcc
RISC-V riscv64-linux-gnu-gcc
MIPS mips-linux-gnu-gcc

🔹 크로스 컴파일러 설치 방법

1) Ubuntu/Debian 계열 (예: Ubuntu 20.04, 22.04)

sudo apt update
sudo apt install -y gcc-arm-none-eabi gcc-aarch64-linux-gnu \
    g++-aarch64-linux-gnu gcc-riscv64-linux-gnu \
    gcc-mips-linux-gnu

2) CentOS/Fedora 계열

sudo dnf install -y gcc-arm-none-eabi gcc-aarch64-linux-gnu \
    gcc-riscv64-linux-gnu gcc-mips-linux-gnu

2. Linaro 크로스 컴파일러 설치

일부 보드(예: ARM 기반 보드)에서는 Linaro의 크로스 컴파일러를 사용하는 것이 더 적합할 수 있습니다.

🔹 최신 Linaro 크로스 컴파일러 다운로드

Linaro의 크로스 컴파일러는 공식 웹사이트에서 확인할 수 있습니다.

wget https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz
tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz
  • 환경 변수에 경로 추가:
export PATH=$PWD/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin:$PATH
  • 크로스 컴파일러 버전 확인:
aarch64-linux-gnu-gcc --version

📌 주의:

  • 최신 버전의 U-Boot와 호환되는 크로스 컴파일러를 선택해야 합니다.
  • Linaro에서 제공하는 버전과 U-Boot의 호환성을 먼저 확인하세요.

3. U-Boot 소스코드 다운로드

U-Boot는 오픈소스(GPL 라이선스) 부트로더이며, 공식 저장소에서 소스코드를 다운로드할 수 있습니다.

🔹 U-Boot 공식 저장소

🔹 최신 U-Boot 다운로드

git clone https://source.denx.de/u-boot/u-boot.git
cd u-boot

🔹 특정 버전 다운로드

U-Boot는 정기적으로 새로운 버전을 릴리스하며, 특정 버전을 사용할 수도 있습니다.

git checkout v2024.01  # 최신 릴리스 버전 선택
  • git tag 명령어를 사용하면 지원되는 버전 목록을 확인할 수 있습니다.
git tag

📌 주의:

  • U-Boot의 버전에 따라 필요한 크로스 컴파일러 버전이 다를 수 있습니다.
  • U-Boot 빌드 오류를 방지하려면 사용 중인 U-Boot 버전에 맞는 크로스 컴파일러를 선택해야 합니다.

4. 빌드에 필요한 패키지 설치

U-Boot를 빌드하기 위해서는 여러 개발 도구와 라이브러리가 필요합니다.

🔹 필수 패키지 목록

패키지 설명
make 빌드 시스템
dtc Device Tree Compiler (DTS → DTB 변환)
bison 문법 분석기 생성 도구
flex 어휘 분석기 생성 도구
ncurses-dev 터미널 UI 지원 라이브러리 (menuconfig 지원)
libssl-dev OpenSSL 라이브러리 (보안 부팅 기능 필요 시)
u-boot-tools U-Boot 유틸리티 (mkimage, fw_printenv 등)
bc 일부 시스템에서 빌드시 필요
zlib1g-dev 압축 라이브러리 (일부 옵션에서 필요)

🔹 패키지 설치 방법

1) Ubuntu/Debian 계열

sudo apt update
sudo apt install -y build-essential gcc make binutils \
    bison flex libssl-dev \
    libncurses-dev device-tree-compiler \
    u-boot-tools bc zlib1g-dev

2) CentOS/Fedora 계열

sudo dnf install -y make gcc bison flex \
    dtc ncurses-devel \
    openssl-devel uboot-tools bc zlib-devel

5. GPL 라이선스 준수 안내

U-Boot는 GPL(GNU General Public License) v2 라이선스로 배포됩니다.
이를 사용할 때 소스코드를 수정하여 배포할 경우, 수정된 소스를 공개해야 합니다.

🔹 GPL 라이선스 요약

✅ U-Boot는 누구나 자유롭게 사용할 수 있습니다.
✅ 수정한 코드가 포함된 바이너리를 배포할 경우, 해당 코드도 함께 공개해야 합니다.
✅ 상업적인 제품에서도 사용할 수 있지만, GPL 규정을 준수해야 합니다.

자세한 내용은 U-Boot 저장소 내 README 또는 COPYING 파일에서 확인할 수 있습니다.


6. 설치 후 환경 설정

🔹 크로스 컴파일러 경로 설정

U-Boot를 빌드할 때 크로스 컴파일러 경로를 환경 변수에 추가해야 합니다.

ARM 64-bit (AArch64) 설정

export CROSS_COMPILE=aarch64-linux-gnu-
export ARCH=arm64

ARM 32-bit 설정

export CROSS_COMPILE=arm-linux-gnueabi-
export ARCH=arm

RISC-V 설정

export CROSS_COMPILE=riscv64-linux-gnu-
export ARCH=riscv

📌 정리

크로스 컴파일러 설치 (gcc-arm-none-eabi, aarch64-linux-gnu-gcc 등)
U-Boot 소스코드 다운로드 (git clone https://source.denx.de/u-boot/u-boot.git)
필수 패키지 설치 (make, dtc, bison, flex, libssl-dev, bc, zlib1g-dev 등)
GPL 라이선스 준수 안내
환경 변수 설정 (export CROSS_COMPILE=...)