Arch(4)
-
커널 포팅 (2. 커널 소스 분석 및 빌드 / 2.3 크로스 컴파일러를 이용한 커널 빌드)
2.3 크로스 컴파일러를 이용한 커널 빌드리눅스 커널은 여러 하드웨어 아키텍처에서 실행될 수 있도록 설계되었습니다.하지만 커널을 빌드할 때는 개발 환경과 실행할 하드웨어의 아키텍처가 다를 수 있습니다.이런 경우 크로스 컴파일러(Cross Compiler) 를 사용하여 타겟 아키텍처에 맞게 커널을 빌드해야 합니다.🔹 크로스 컴파일러란?크로스 컴파일러(Cross Compiler) 는 개발 환경(Host)과 실행 대상(Target)의 CPU 아키텍처가 다른 경우 사용하는 컴파일러입니다.즉, x86 기반의 개발 PC(Host)에서 ARM 또는 RISC-V 기반의 임베디드 보드(Target)용 커널을 빌드할 때 사용됩니다.✅ 크로스 컴파일러가 필요한 이유x86 PC에서 ARM, RISC-V 등의 아키텍처용 커널..
2025.03.06 -
U-Boot 포팅 (4. U-Boot 포팅 개념 및 주요 수정 포인트 / U-Boot 디렉토리 구조 및 주요 파일)
U-Boot 디렉토리 구조 및 주요 파일U-Boot 소스 코드는 CPU 아키텍처, 보드 설정, 디바이스 드라이버, 공통 코드 등으로 구성되어 있습니다.새로운 보드를 추가하거나 U-Boot를 수정할 때는 해당 디렉토리와 주요 파일의 역할을 이해하는 것이 중요합니다.이 문서에서는 U-Boot의 디렉토리 구조와 각 주요 파일의 역할을 설명합니다.1. U-Boot 디렉토리 구조 개요📌 U-Boot 소스 코드 디렉토리 구조u-boot/├── arch/ # CPU 및 아키텍처별 코드│ ├── arm/│ ├── x86/│ ├── riscv/│ ├── mips/├── board/ # 특정 보드별 코드│ ├── raspberrypi/│ ├── beaglebon..
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는 임베디드 시스템에서 동작하는 부트로더이므로, 개발 환경(PC)과 타겟 보드(임베디드 프로세서)의 아키텍처가 다릅니다.따라서 크로스 컴파일러를 사용하여 타겟 보드에서 실행 가능한 U-Boot 바이너리를 빌드해야 합니다.이 과정에서 CROSS_COMPILE, ARCH 환경 변수 설정 및 make menuconfig를 활용한 설정 방법을 설명하겠습니다.1. 크로스 컴파일 환경 변수 설정🔹 환경 변수 설정의 필요성U-Boot를 빌드할 때 컴파일러와 타겟 아키텍처를 지정하는 환경 변수를 설정해야 합니다.이를 설정하지 않으면 호스트 시스템(x86)용 바이너리가 빌드되거나, 빌드 오류가 발생할 수 있습니다.🔹 주요 환경 변수환경 변수설명CROSS_COMPILE사용할 크로스 컴..
2025.02.26