728x90
반응형

u-boot 10

U-Boot 네트워크와 OTA 업데이트

U-Boot 네트워크와 OTA 업데이트RK3399 기반 시스템을 예제로 살펴보는 U-Boot 네트워크 구성 및 OTA 업데이트 기법을 소개합니다. 본 글은 실전 환경에서 활용할 수 있는 네트워크 설정, TFTP/NFS 기반 부팅, 보안 부팅 개요, OTA 스크립트 예제까지 포함하며, 결론적으로 “U-Boot는 단순한 부트로더가 아니라 시스템 관리 도구”라는 관점을 설명합니다.1. U-Boot 네트워크 구성 개요RK3399 보드에서 U-Boot는 기본적으로 Ethernet 컨트롤러 드라이버를 탑재하고 있으며, 다음 기능을 제공합니다.DHCP를 통한 자동 IP 획득TFTP를 통한 커널/디바이스트리/루트파일시스템 다운로드NFS 루트 마운트 지원네트워크 진단 명령 (ping, mdio 등)RK3399의 경우 U..

u-boot 2025.12.11

U-Boot 디버깅과 커스터마이징: UART 로그를 이용한 실전 기법

U-Boot 디버깅과 커스터마이징: UART 로그를 이용한 실전 기법본 글은 RK3399 기반 시스템을 예제로 하여, U-Boot 단계에서의 디버깅과 커스터마이징 방법을 상세히 설명드립니다. 특히 UART 로그 활용, CONFIG_DEBUG_UART, CONFIG_CMD_LOG, printf 삽입 디버깅, 부트 로고 커스터마이징, boot delay 변경 등을 중심으로 살펴봅니다.1. UART 로그 기반 디버깅의 기본 개념U-Boot 실행은 SoC 초기화, 메모리 설정, 장치 트리 로드, 커널 부트 등 여러 단계를 거칩니다. 이때 UART 콘솔은 내부 처리 흐름을 직접 보여주는 가장 신뢰도 높은 디버깅 도구입니다.UART 초기 동작 과정 (RK3399 기준)SoC ROM → SRAM 로더 → U-Boot..

u-boot 2025.12.10

U-Boot에서 커널 및 루트파일시스템 로딩 (RK3399 기준)

U-Boot에서 커널 및 루트파일시스템 로딩 (RK3399 기준)1. 개요U-Boot는 Embedded Linux 시스템에서 가장 먼저 실행되는 부트로더이며, 하드웨어 초기화부터 커널과 루트파일시스템(RootFS) 로딩까지 전체 부팅 과정의 핵심적인 역할을 맡습니다. 본 글에서는 Rockchip RK3399 기반 보드를 기준으로 U-Boot가 커널(zImage, uImage, fitImage)과 RootFS를 어떻게 로딩하고, 어떤 방식으로 커널 커맨드라인을 전달하며, SD/eMMC/NAND/네트워크(TFTP) 부팅 설정을 통해 실제 리눅스 커널을 기동하는지 로그 분석과 함께 정리합니다.글의 마지막에는 “U-Boot의 마지막 임무는 커널을 안전하게 넘겨주는 것이다”라는 결론으로 내용을 정리합니다.2. U..

u-boot 2025.12.09

U-Boot 환경 변수와 스크립트 완전 정복(Rockchip RK3399 기반)

U-Boot 환경 변수와 스크립트 완전 정복(Rockchip RK3399 기반)U-Boot은 임베디드 리눅스 시스템에서 널리 사용되는 부트로더이며, 커널 로딩, 장치 초기화, 펌웨어 업데이트 등 다양한 기능을 수행합니다. 이 과정에서 환경 변수(environment variable)는 시스템의 동작을 결정하는 핵심 요소로 작동합니다. 이번 글에서는 환경 변수의 구조, 저장 위치, 설정 및 관리 방법, 그리고 자동화 스크립트 예제를 Rockchip RK3399 기반 시스템을 중심으로 자세히 설명드리겠습니다.1. U-Boot 환경 변수 개요U-Boot 환경 변수는 다음과 같은 항목들로 구성됩니다.bootcmd bootargs bootdelay 커널 및 DTB 로딩 주소(kernel_addr, fdt_a..

u-boot 2025.12.08

U‑Boot 명령어(Command) 추가 및 실행 구조 완전 정리

U‑Boot 명령어(Command) 추가 및 실행 구조 완전 정리Embedded Linux 시스템에서 U‑Boot는 부팅 초기에 가장 먼저 실행되는 부트로더이며, 디버깅과 시스템 bring-up 과정에서 매우 중요한 역할을 합니다. 특히 개발자는 자신만의 명령을 추가하여 디버깅, 하드웨어 제어, 테스트 자동화 등을 수행하게 됩니다. 본 포스팅에서는 Rockchip RK3399 보드를 기준으로 U-Boot 명령 추가 방식, U_BOOT_CMD 매크로 구조, 명령 파싱/실행 과정, 사용자 정의 명령 예제, 환경 변수 연동 방법까지 체계적으로 정리합니다.1. cmd/ 디렉토리 구조U‑Boot 소스 트리에서 명령 관련 파일은 모든 보드가 공유하는 공통 명령이기 때문에 cmd/ 디렉토리에 위치합니다.u-boot/..

u-boot 2025.12.07

U-Boot 드라이버 구조와 포팅 방법

U-Boot 드라이버 구조와 포팅 방법임베디드 시스템 개발에서 U-Boot는 단순한 부트로더를 넘어, 다양한 하드웨어 초기화와 디바이스 제어 기능을 제공하는 중요한 소프트웨어입니다. 특히 최근의 U-Boot는 "Driver Model(DM)"이라는 구조를 도입하여 리눅스에 가까운 드라이버 아키텍처를 제공하고 있습니다. 본 글에서는 U-Boot의 드라이버 모델 개념부터 실제 포팅 단계, 그리고 Rockchip RK3399 기반 UART/SPI 예제까지 상세히 다루어 보겠습니다.1. U-Boot Driver Model(DM) 개요과거의 U-Boot 드라이버 구현 방식은 보드별로 분산되어 있었고, 공통화가 어렵고 유지보수가 힘들었습니다. 이를 개선하기 위해 Driver Model(DM)이 도입되었습니다.● D..

u-boot 2025.12.05

U-Boot 부팅 시퀀스 완전 해부

U-Boot 부팅 시퀀스 완전 해부임베디드 시스템에서 U-Boot는 커널이 실행되기까지 하드웨어를 단계적으로 초기화하며 시스템을 준비시키는 핵심 부트로더입니다. 특히 Rockchip RK3399과 같은 ARM 기반 SoC에서는 ROM → SPL → U-Boot → Kernel 형태의 다단계 부팅 구조를 사용합니다. 본 글에서는 각 단계에서 어떤 초기화가 수행되는지, U-Boot의 핵심 흐름(start.S → _main → board_init_f → board_init_r), 그리고 실제 부팅 로그를 기반으로 부팅 시퀀스를 어떻게 추적하는지까지 상세히 설명합니다.1. 전체 부팅 시퀀스 개요RK3399을 기준으로 한 전체 부팅 순서는 다음과 같습니다.[ROM] → [SPL/TPL] → [U-Boot] → [..

u-boot 2025.12.04

U-Boot 빌드 및 보드 포팅 준비

U-Boot 빌드 및 보드 포팅 준비임베디드 시스템 개발에서 U-Boot는 부팅 초기 단계를 책임지는 핵심 소프트웨어입니다. 새로운 보드를 지원하거나 기존 보드를 수정하기 위해서는 U-Boot 포팅 과정이 필수적입니다. 본 글에서는 RK3399 기반 보드를 예시로 하여 U-Boot 포팅을 준비하는 과정과 반드시 알아야 할 핵심 요소들을 정리합니다.1. 크로스 컴파일러 설정U-Boot는 타겟 보드를 직접 빌드할 수 없기 때문에, 반드시 타겟 CPU 아키텍처에 맞는 크로스 컴파일러가 필요합니다. RK3399는 ARM Cortex-A72/A53 기반의 64비트 SoC이므로 aarch64용 툴체인을 사용합니다.● 컴파일러 설치 예시$ sudo apt install gcc-aarch64-linux-gnu또는 Li..

u-boot 2025.12.03

U-Boot 소스코드 구조 분석 – RK3399 기반으로 이해하기

U-Boot 소스코드 구조 분석 – RK3399 기반으로 이해하기임베디드 리눅스 시스템에서 U-Boot는 가장 널리 사용되는 오픈소스 부트로더입니다. SoC 초기화부터 커널 로딩까지, 시스템 부팅의 핵심을 담당하는 제어 지점이기 때문에 U-Boot 구조를 이해하는 것은 플랫폼 포팅과 부트 문제 해결에 큰 도움이 됩니다.이번 글에서는 RK3399 플랫폼을 예시로 U-Boot 디렉토리 구조, 구성 파일, 빌드 과정, 생성되는 이미지 파일을 분석해 보겠습니다.1. U-Boot 디렉토리 구조U-Boot는 플랫폼별·아키텍처별로 구분된 계층적 구조를 가지고 있습니다. 핵심 디렉토리를 하나씩 살펴보겠습니다.u-boot/ ├─ arch/ ├─ board/ ├─ cmd/ ├─ drivers/ ├─ include/ ├─ ..

u-boot 2025.12.02

U-Boot란 무엇인가?

U-Boot란 무엇인가?임베디드 시스템을 처음 접하면 가장 먼저 마주치는 소프트웨어가 바로 U-Boot입니다. 개발자의 입장에서 U-Boot는 단순한 부트로더가 아니라, 시스템을 이해하고 제어하는 데 매우 중요한 역할을 합니다. 본 글에서는 U-Boot의 개념부터 구조, 임베디드 환경에서 필요한 이유, 그리고 Rockchip RK3399 기반 예제를 중심으로 상세히 설명드리겠습니다.U-Boot의 역할과 개념U-Boot는 _Universal Boot Loader_의 약자로, 임베디드 시스템에서 가장 널리 사용하는 오픈소스 부트로더입니다. 부트로더는 하드웨어가 전원을 켠 직후 실행되는 소프트웨어로서, 하드웨어 초기화, 메모리 설정, 커널 로딩 등 운영체제를 실행하기 위한 준비를 담당합니다.U-Boot는 다음..

u-boot 2025.12.01
728x90
반응형