임베디드 시스템(35)
-
U-Boot 포팅 (3. U-Boot 빌드 및 실행 / 실제 보드에서 U-Boot 실행하기)
실제 보드에서 U-Boot 실행하기QEMU에서 U-Boot를 실행하는 것뿐만 아니라, 실제 임베디드 보드에서도 U-Boot를 실행하려면 SD 카드나 eMMC에 U-Boot를 굽고, 시리얼(UART) 콘솔을 통해 디버깅하는 과정이 필요합니다.이 문서에서는 SD 카드에 U-Boot를 굽는 방법과 시리얼 콘솔을 이용하여 부팅 로그를 확인하는 방법을 다룹니다.1. 부트로더를 SD 카드에 굽기 (dd 명령어 사용)U-Boot는 SD 카드, eMMC, SPI Flash 등 다양한 저장 장치에 설치할 수 있지만, 가장 일반적인 방법은 SD 카드에 굽고 보드를 부팅하는 방식입니다.🔹 1) SD 카드 삽입 및 디바이스 확인SD 카드를 삽입한 후, 디바이스 경로를 확인해야 합니다.lsblk📌 출력 예제NAME MA..
2025.02.26 -
U-Boot 포팅 (3. U-Boot 빌드 및 실행 / QEMU를 활용한 U-Boot 실행)
QEMU를 활용한 U-Boot 실행QEMU는 가상 머신을 이용하여 U-Boot를 테스트할 수 있는 강력한 에뮬레이터입니다.실제 하드웨어 없이도 U-Boot의 빌드 결과물을 실행하고 디버깅할 수 있으며, ARM 및 AArch64 등의 아키텍처를 지원합니다.이 문서에서는 QEMU 설치, U-Boot 실행 방법, 명령어 설명 및 디버깅 방법을 다룹니다.1. QEMU 설치 및 U-Boot 테스트 방법🔹 QEMU란?QEMU는 CPU, 메모리, 저장 장치, 네트워크 등을 에뮬레이션하는 오픈소스 가상화 소프트웨어입니다.실제 보드가 없어도 U-Boot 실행 및 부팅 테스트가 가능합니다.U-Boot와 함께 리눅스 커널 테스트 및 네트워크 부팅(TFTP, NFS) 설정도 가능합니다.🔹 QEMU 설치1) Ubuntu/D..
2025.02.26 -
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