본문 바로가기

Embedded/Embedded Linux5

Metadata, Bitbake 용어정리 Metadata 안에 들어 있는 요소 4가지이 4가지가 합쳐져 하나의 “빌드 정의서(=메타데이터 집합)”가 된다. Metadata(메타데이터)란?Yocto에서 “메타데이터”는 무엇을 어떻게 빌드할지에 대한 설계 도면 전체를 말한다.즉, 레시피(.bb), 레이어 설정(conf), 클래스(.bbclass), 패치, 이미지 정의 같은 것들이 전부 메타데이터이다. ① Layer(Meta layers)메타데이터를 묶어둔 논리적인 단위.여러 레시피/클래스/설정 파일들이 들어 있는 폴더 단위 패키지예: meta-poky, meta-yocto-bsp, meta-raspberrypi, meta-webos각 레이어에 레시피/클래스/설정이 들어 있음. 예를 들어 “BSP 레이어(하드웨어 의존)”, “UI 레이어”, “프로.. 2026. 2. 16.
Yocto 빌드 프로세스를 단계 별로 이해해보자. Source Fetching부터 SDK Generation까지 Yocto 빌드 프로세스 전체를 한 문장으로 설명하면“수많은 소프트웨어 조각들을 자동으로 가져오고, 고치고, 조립하고, 패키지화하고, 검증해서, 하나의 OS 이미지와 SDK까지 만들어내는 대규모 생산 파이프라인”이다.이제 단계별로 명확히 보자.“왜 이 작업을 하는가(목적)” + “무슨 일이 벌어지는가(기능)” + “특징/주의점(특성)”1. Source Fetching무엇을 위한 단계인가?Yocto는 다른 리눅스 빌드 시스템과 달리 모든 소스의 원본을 직접 가져온다.→ 그래야 어떤 환경에서도 재현 가능한 빌드(reproducible build)가 가능해진다.즉, “패키지를 가져와서 그냥 빌드"가 아니라,Yocto가 스스로 모든 소스의 출발점을 통제하는 것이다.이 단계에서 실제로 일어나는 일은?소스 코드 위.. 2026. 2. 9.
리눅스 커널 디렉터리 1. 리눅스 커널 디렉터리운영체제(OS)에서 커널은 하드웨어와 사용자 응용프로그램 사이를 연결하는 핵심 소프트웨어입니다. 커널은 시스템의 자원(메모리, CPU, 디바이스 등)을 관리하고, 응용프로그램이 하드웨어를 안전하게 쓸 수 있도록 도와줍니다. 즉, '운영체제의 뇌'이자, 하드웨어와 소프트웨어 그 사이에 있는 관리자 역할을 합니다.왜 필요할까?하드웨어 직접 접근을 막아 안전성 확보여러 프로그램이 자원을 나눠쓰도록 제어다양한 장치들을 자유롭게 연결/제어2. 커널 소스코드 디렉터리 구조의 큰 그림리눅스 커널의 소스코드는 주요 기능별로 디렉터리(Tree)로 구성되어 있습니다. 이 구조를 이해하면, 각각의 디렉터리가 OS의 핵심 역할에서 어떤 부분을 담당하는지 파악할 수 있습니다.디렉터리역할arch/CPU별.. 2025. 12. 15.
디바이스 드라이버의 역할과 주요 특징에 대해 알아보자 디바이스 드라이버는 특정 하드웨어와 운영체제(OS) 사이에서 통신을 가능하게 하는, 커널의 일부분으로 동작하는 소프트웨어로, 하드웨어의 기능을 추상화하여 응용 프로그램이 하드웨어와 상호작용할 수 있도록 돕습니다. OS는 디바이스 드라이버를 통해 마우스, 키보드, 프린터, 네트워크 카드 등 다양한 주변 장치들을 인식하고 제어합니다.역할하드웨어 추상화: 실제 하드웨어의 복잡한 작동 방식을 숨기고, 응용 프로그램이 표준화된 인터페이스를 통해 하드웨어에 접근할 수 있게 합니다.OS와 하드웨어 연결: 운영체제의 핵심 부분인 커널의 일부로서, 하드웨어의 고유한 명령을 OS가 이해할 수 있는 형식으로 번역하고, OS의 명령을 하드웨어에 맞게 전달합니다.표준화된 기능 제공: 파일 입출력 함수와 같은 일반적인 시스템 .. 2025. 12. 8.
커널은 모듈(디바이스 드라이버)를 삽입 제거 점검하는 기능을 지원한다: insmod, rmmod, lsmod 1. 커널 모듈이란?커널의 일부 기능(예: 장치 드라이버, 파일시스템, 네트워크 프로토콜 등) 을 별도 .ko 파일 형태로 분리해둔 것.필요할 때만 커널에 동적으로 적재(insmod/modprobe) 하거나 제거(rmmod) 할 수 있음.그래서 커널 전체를 다시 컴파일하거나 부팅할 필요가 없음.lsmod, insmod, rmmod는 도대체 뭘까? 명령어야? c언어?정리하자면 — lsmod, insmod, rmmod는 “터미널 명령어(유저 공간에서 실행)”이고, 커널 내부에서는 그 명령을 처리하는 “시스템 콜 함수”가 동작한다.아래에서 계층을 나눠서 보면 바로 이해할 수 있다.1. 사용자 공간(User Space)우리가 터미널에 입력하는 명령어:insmod mydriver.ko lsmod rmmod myd.. 2025. 12. 1.