분류 전체보기(638)
-
U-Boot 포팅 (3. U-Boot 빌드 및 실행 / 빌드 결과물 분석)
빌드 결과물 분석U-Boot를 빌드한 후에는 다양한 실행 파일이 생성됩니다.각 파일은 보드의 부팅 방식과 하드웨어 요구사항에 따라 사용됩니다.이번 내용에서는 빌드 결과물의 역할과 차이점, 그리고 SPL (MLO) 필요 여부를 확인하는 방법을 설명합니다.1. 빌드 결과물 종류 및 역할U-Boot 빌드가 완료되면 다음과 같은 파일들이 생성됩니다.📌 빌드된 파일 목록 확인ls -lh u-boot*📌 예제 출력-rwxr-xr-x 1 user user 1.2M Mar 4 10:30 u-boot-rw-r--r-- 1 user user 1.1M Mar 4 10:30 u-boot.bin-rw-r--r-- 1 user user 1.1M Mar 4 10:30 u-boot.img-rw-r--r-- 1 user user ..
2025.02.26 -
U-Boot 포팅 (3. U-Boot 빌드 및 실행 / 기본적인 U-Boot 빌드 과정)
기본적인 U-Boot 빌드 과정U-Boot를 빌드하기 위해서는 타겟 보드에 맞는 설정을 적용한 후, 크로스 컴파일러를 사용하여 바이너리를 생성하는 과정이 필요합니다.이 과정에서는 보드 설정을 선택하고, 실제로 빌드를 수행하는 방법을 설명합니다.1. U-Boot 빌드 전 준비 사항🔹 크로스 컴파일러 및 환경 변수 설정U-Boot는 일반적으로 임베디드 보드(ARM, RISC-V 등)에서 실행되므로 크로스 컴파일러를 사용해야 합니다.타겟 보드에 맞게 CROSS_COMPILE과 ARCH 환경 변수를 설정합니다.📌 예제: ARM 64-bit(AArch64) 보드용 환경 변수 설정export CROSS_COMPILE=aarch64-linux-gnu-export ARCH=arm64📌 예제: ARM 32-bit ..
2025.02.26 -
U-Boot 포팅 (2. 개발 환경 구축 / 타겟 보드 선택)
타겟 보드 선택U-Boot는 다양한 임베디드 보드와 SoC(System on Chip)를 지원합니다.따라서, U-Boot를 포팅할 때 타겟 보드를 선택하고, 해당 보드의 설정을 확인하는 과정이 필요합니다.이 과정에서는 U-Boot가 지원하는 보드를 확인하는 방법과 특정 보드의 디바이스 트리(DTS) 파일을 분석하는 방법을 설명합니다.1. 지원되는 보드 확인 (boards.cfg 활용)🔹 boards.cfg 파일이란?boards.cfg 파일은 U-Boot가 지원하는 보드 목록과 해당 설정 정보를 포함한 파일입니다.이 파일을 확인하면 보드의 기본 설정(defconfig), CPU 아키텍처, SoC 정보를 알 수 있습니다.경로:u-boot/boards.cfg🔹 지원되는 보드 목록 확인📌 boards.cf..
2025.02.26 -
U-Boot 포팅 (2. 개발 환경 구축 / 크로스 컴파일 환경 설정)
크로스 컴파일 환경 설정U-Boot는 임베디드 시스템에서 동작하는 부트로더이므로, 개발 환경(PC)과 타겟 보드(임베디드 프로세서)의 아키텍처가 다릅니다.따라서 크로스 컴파일러를 사용하여 타겟 보드에서 실행 가능한 U-Boot 바이너리를 빌드해야 합니다.이 과정에서 CROSS_COMPILE, ARCH 환경 변수 설정 및 make menuconfig를 활용한 설정 방법을 설명하겠습니다.1. 크로스 컴파일 환경 변수 설정🔹 환경 변수 설정의 필요성U-Boot를 빌드할 때 컴파일러와 타겟 아키텍처를 지정하는 환경 변수를 설정해야 합니다.이를 설정하지 않으면 호스트 시스템(x86)용 바이너리가 빌드되거나, 빌드 오류가 발생할 수 있습니다.🔹 주요 환경 변수환경 변수설명CROSS_COMPILE사용할 크로스 컴..
2025.02.26 -
U-Boot 포팅 (2. 개발 환경 구축 / 필요한 도구 및 패키지 설치)
필요한 도구 및 패키지 설치U-Boot를 빌드하고 포팅하려면 크로스 컴파일러, 빌드 도구, 필수 패키지를 설치해야 합니다.아래 가이드를 따라하면 U-Boot 개발 환경을 안정적으로 구성할 수 있습니다.1. 크로스 컴파일러 설치U-Boot는 다양한 임베디드 프로세서(ARM, RISC-V, MIPS 등)에서 동작하므로, 타겟 아키텍처에 맞는 크로스 컴파일러를 사용해야 합니다.크로스 컴파일러는 개발 PC(x86)에서 임베디드 프로세서(ARM, RISC-V 등)용 실행 파일을 빌드하는 도구입니다.🔹 크로스 컴파일러 종류 아키텍처 크로스 컴파일러ARM 32-bitgcc-arm-none-eabi, arm-linux-gnueabi-gccARM 64-bitaarch64-linux-gnu-gccRISC-Vriscv6..
2025.02.26 -
U-Boot 포팅 (1. U-Boot 개요 및 기본 개념 / U-Boot의 구조)
U-Boot의 구조U-Boot는 임베디드 시스템에서 운영체제를 실행하기 전에 하드웨어를 초기화하고 커널을 로드하는 부트로더입니다.이 과정에서 U-Boot는 크게 두 단계로 동작합니다.1차 부트로더(SPL, Secondary Program Loader)부팅 시 가장 먼저 실행되는 코드로, 기본적인 하드웨어 초기화를 수행합니다.보드의 저장장치에서 2차 부트로더(U-Boot 메인 바이너리)를 로드하는 역할을 합니다.2차 부트로더(U-Boot 메인 바이너리)SPL이 실행한 후, 본격적으로 U-Boot가 실행됩니다.커널을 메모리에 로드하고 실행하며, 네트워크 부팅, 환경 변수 관리, 디바이스 트리 로드 등의 기능을 수행합니다.이 외에도 환경 변수(env) 시스템을 활용하여, 부팅 설정을 유연하게 변경할 수 있습니..
2025.02.26