u-boot(34)
-
U-Boot 포팅 (9. 추가 심화 과정)
추가 심화 과정 (선택적 기능 확장)U-Boot의 기본적인 포팅과 리눅스 커널 부팅이 완료되었다면, 추가적인 기능을 적용하여 시스템을 더욱 강력하게 만들 수 있습니다.이 문서에서는 Fastboot 지원 추가, Secure Boot 및 Trusted Firmware 적용, UEFI 기능 활용, Custom Boot Logo 적용 방법을 설명합니다.1. Fastboot 지원 추가Fastboot는 안드로이드 개발 및 펌웨어 업데이트를 위한 빠른 플래싱 프로토콜입니다.U-Boot에서 Fastboot를 지원하면 USB를 통해 펌웨어를 직접 업데이트하거나 플래시 메모리를 관리할 수 있습니다.🔹 1) Fastboot 기능 활성화📌 configs/myboard_defconfig에서 Fastboot 옵션 추가CONF..
2025.03.05 -
U-Boot 포팅 (실습 프로젝트: 새로운 보드에 U-Boot 포팅 / 최종 목표: 새로운 보드에서 U-Boot 및 리눅스 커널 부팅 성공)
최종 목표: 새로운 보드에서 U-Boot 및 리눅스 커널 부팅 성공이 프로젝트의 최종 목표는 새로운 보드에서 U-Boot를 정상적으로 구동하고, 이를 통해 리눅스 커널을 로드하여 부팅을 성공시키는 것입니다.이를 위해 U-Boot 포팅, 디바이스 트리 수정, SD 카드 및 eMMC 부팅 설정, 커널 로드 및 부팅 과정 디버깅을 수행해야 합니다.1. U-Boot 정상 구동 확인🔹 1) U-Boot 부팅 테스트📌 SD 카드 또는 eMMC에 U-Boot 설치 후 부팅보드에 SD 카드를 삽입하거나 eMMC를 사용하여 전원을 켜고 U-Boot 실행을 확인해야 합니다.📌 시리얼 콘솔(UART)에서 부팅 로그 확인sudo minicom -D /dev/ttyUSB0 -b 115200또는sudo picocom -b ..
2025.03.05 -
U-Boot 포팅 (실습 프로젝트: 새로운 보드에 U-Boot 포팅 / U-Boot 포팅 프로젝트 개요)
U-Boot 포팅 프로젝트 개요이 프로젝트에서는 특정 보드를 선택하여 U-Boot를 수정, 빌드 및 부팅까지 진행하는 과정을 다룹니다.예제 보드로 Raspberry Pi, BeagleBone, ODROID 등을 사용할 수 있으며, U-Boot 소스코드를 수정하고 디바이스 트리를 조정하여 부팅 환경을 설정하는 것이 목표입니다.1. 예제 보드 선택U-Boot를 포팅하기 위해 지원되는 보드 중 하나를 선택해야 합니다. 보드 CPU 부트 옵션U-Boot 지원 여부Raspberry Pi 4Broadcom BCM2711 (ARM Cortex-A72)SD 카드지원BeagleBone BlackAM3358 (ARM Cortex-A8)eMMC, SD 카드지원ODROID-XU4Exynos 5422 (ARM Cortex-A1..
2025.03.05 -
U-Boot 포팅 (7. U-Boot 디버깅 및 문제 해결 / 부팅 실패 시 해결 방법)
부팅 실패 시 해결 방법임베디드 시스템에서 U-Boot가 정상적으로 부팅되지 않는 경우 다양한 원인이 있을 수 있습니다.이를 해결하려면 로그 분석, 보드 설정 확인, 환경 변수 초기화 등을 수행해야 합니다.이 문서에서는 부팅 실패 시 문제 해결 방법, DEBUG 로그를 활용한 분석, 보드 설정 수정, 환경 변수 리셋 방법을 설명합니다.1. U-Boot가 멈추는 지점 분석 (DEBUG 로그 활용)🔹 부팅 로그 분석 방법U-Boot가 부팅 과정에서 멈춘다면, 시리얼 콘솔(UART) 출력을 확인하여 어디서 멈췄는지 분석해야 합니다.📌 시리얼 콘솔에서 부팅 로그 확인sudo minicom -D /dev/ttyUSB0 -b 115200또는sudo picocom -b 115200 /dev/ttyUSB0📌 부팅..
2025.03.05 -
U-Boot 포팅 (7. U-Boot 디버깅 및 문제 해결 / JTAG 디버깅)
JTAG 디버깅 (U-Boot 디버깅을 위한 설정 및 활용법)JTAG(Joint Test Action Group)은 임베디드 시스템에서 하드웨어 디버깅을 위한 표준 인터페이스입니다.U-Boot에서 JTAG을 사용하면 CPU 레지스터 값 확인, 메모리 접근, 중단점 설정 및 코드 실행 흐름 분석이 가능합니다.이 문서에서는 **JTAG 설정 방법 및 활용법(OpenOCD, GDB 연동 포함)**을 설명합니다.1. JTAG 개요 및 필요성🔹 JTAG이란?JTAG은 SoC, 마이크로컨트롤러(MCU), FPGA 등에서 디버깅, 프로그래밍 및 테스트를 수행하는 표준 인터페이스입니다.✅ 운영체제가 실행되지 않아도 CPU 및 메모리를 직접 디버깅 가능✅ CPU 레지스터 값 확인 및 수정 가능✅ U-Boot 실행 흐름..
2025.03.05 -
U-Boot 포팅 (7. U-Boot 디버깅 및 문제 해결 / U-Boot 디버깅 방법)
U-Boot 디버깅 방법U-Boot를 디버깅하는 것은 부팅 과정에서 발생하는 문제를 해결하고, 하드웨어 동작을 검증하는 중요한 과정입니다.U-Boot 디버깅 방법에는 시리얼 콘솔 로그 분석, 메모리 값 확인 및 수정, 비교하는 기능이 포함됩니다.이 문서에서는 시리얼 콘솔 로그 분석(printk 활용), U-Boot 내부에서 메모리 확인(md, mw, cmp 명령어 사용) 방법을 설명합니다.1. 시리얼 콘솔 로그 분석 (printk 활용)🔹 시리얼 콘솔을 이용한 로그 출력U-Boot는 기본적으로 시리얼(UART) 콘솔을 통해 디버깅 로그를 출력합니다.이를 통해 부팅 과정에서 어디서 문제가 발생했는지 확인할 수 있습니다.📌 시리얼 콘솔 설정 (minicom 또는 picocom)sudo minicom -D..
2025.03.05