프로그래밍(94)
-
커널 포팅 (1. 개요 및 준비 / 1.1 커널이란 무엇인가?)
1.1 커널이란 무엇인가?커널(Kernel)은 운영체제의 핵심(Core)으로, 하드웨어와 소프트웨어를 연결하는 중간 역할을 담당하는 프로그램입니다. 커널은 CPU, 메모리, 디스크, 네트워크, 프로세스 관리 등을 수행하며, 사용자 프로그램이 하드웨어에 직접 접근하지 못하도록 보호하는 역할을 합니다.🔹 운영체제와 커널의 차이점운영체제(OS, Operating System)와 커널은 밀접한 관계가 있지만, 개념적으로 차이가 있습니다. 구분 운영체제(OS)커널(Kernel)정의컴퓨터의 자원을 관리하고 응용 프로그램이 실행될 수 있도록 하는 소프트웨어 전체운영체제의 핵심 부분으로 하드웨어와 사용자 애플리케이션을 연결하는 역할구성 요소커널(Kernel), 사용자 인터페이스(Shell), 시스템 유틸리티 등프로..
2025.03.06 -
U-Boot 포팅 (마무리 및 학습 자료 / 추가 학습을 위한 추천 실습)
추가 학습을 위한 추천 실습U-Boot 포팅이 완료되었다면, 추가적으로 부팅 속도 최적화 및 NAND Flash/eMMC 환경에서의 적용 실습을 진행하면 더욱 실용적인 경험을 쌓을 수 있습니다.이 문서에서는 커널과 연동하여 부팅 속도를 최적화하는 방법과 NAND Flash 또는 eMMC에서 U-Boot를 적용하는 실습 과정을 설명합니다.1. 커널과 연동하여 부팅 속도 최적화임베디드 시스템에서는 부팅 속도를 최적화하는 것이 중요하며, 이를 위해 U-Boot와 커널의 설정을 조정할 수 있습니다.🔹 1) U-Boot에서 불필요한 지연 요소 제거📌 부팅 딜레이 최소화 (bootdelay 값 수정)setenv bootdelay 0saveenv✅ 자동 부팅 대기 시간을 제거하여 즉시 부팅 가능📌 환경 변수에서..
2025.03.05 -
U-Boot 포팅 (마무리 및 학습 자료 / U-Boot 공식 문서 및 관련 자료 정리)
U-Boot 공식 문서 및 관련 자료 정리U-Boot를 포팅하고 디버깅하는 과정에서 공식 문서와 다양한 커뮤니티 자료를 활용하면 더욱 효율적으로 개발을 진행할 수 있습니다.아래는 U-Boot 공식 문서, GitHub 저장소, 그리고 부트로더 및 커널 포팅과 관련된 블로그 및 커뮤니티를 정리한 목록입니다.1. U-Boot 공식 문서U-Boot 공식 문서는 U-Boot의 구조, 빌드 방법, 환경 변수, 디바이스 드라이버, 보드 포팅, 네트워크 설정 등 다양한 내용을 포함하고 있습니다.📌 U-Boot 공식 문서 (DENX 웹사이트)U-Boot 공식 문서 📖U-Boot 개요 및 사용법환경 변수 및 커맨드 설명네트워크 부팅(TFTP, NFS) 설정저장 장치(eMMC, NAND, NOR) 설정보드 포팅 및 디바..
2025.03.05 -
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