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의 크로스 컴파일러는 공식 웹사이트에서 확인할 수 있습니다.
- Linaro Toolchain 다운로드 페이지
🔗 https://releases.linaro.org/components/toolchain/binaries/ - 최신 버전을 확인하고, 적절한 파일을 다운로드합니다.
아래 예제는 GCC 7.5.0 버전을 다운로드하는 방법입니다.
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 공식 저장소
- GitHub: https://github.com/u-boot/u-boot
- 공식 사이트: https://www.denx.de/wiki/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=...)
'프로그래밍 > 시스템' 카테고리의 다른 글
U-Boot 포팅 (2. 개발 환경 구축 / 타겟 보드 선택) (0) | 2025.02.26 |
---|---|
U-Boot 포팅 (2. 개발 환경 구축 / 크로스 컴파일 환경 설정) (0) | 2025.02.26 |
U-Boot 포팅 (1. U-Boot 개요 및 기본 개념 / U-Boot의 구조) (0) | 2025.02.26 |
U-Boot 포팅 (1. U-Boot 개요 및 기본 개념 / U-Boot란?) (0) | 2025.02.26 |
GPIO 프로그래밍 개요 - 4. GPIO 핀 모드 설정 (INPUT, OUTPUT) (0) | 2025.02.25 |