임베디드 리눅스 시스템, 교차 개발 환경과 부트로더

임베디드 리눅스 시스템, 교차 개발 환경과 부트로더


이 포스트는 MDS 교육 자료 요약본입니다.


1. 임베디드 리눅스


리눅스 개요


리눅스 커널 버전


주 버전, 부 버전, 패치 레벨로 구성

- 현재 3.8.1이 최신 버전


커널 및 관련 커뮤니티

- kernel.org (커널 다운로드) [링크]

- vger.kernel.org (메일링 리스트) [링크]

- freshmeat.net (오픈 소스 다운로드)


임베디드 리눅스 특징

- 일반 리눅스 커널에서 특정 부분을 다시 맞춘 커널을 이용

- 일반 리눅스의 축소판

  : 임베디드 리눅스 시스템의 제약 사항을 고려해 패치

- 크로스 컴파일러, 디버거, 관리 소프트웨어가 필요

임베디드 리눅스 시스템 구성 순서

- 시스템 컴포넌트 결정

- 커널 설정 및 빌드

- 루트 파일 시스템 설정 및 빌드


시스템 구성 시 고려 사항

- 하드웨어에 의존적인 코딩

- 검증된 커널의 사용 (짝수 버전)

- 루트 파일 시스템에 포함할 사항을 신중히 결정


리눅스 소스 주요 디렉토리 구성


리눅스 폴더 구성리눅스 폴더 구성


- arch : CPU와 관련된 소스

- init : 커널 시작 및 초기화 관련 소스

- kernel : 스케쥴러 등의 핵심 소스

- mm : 메모리 관리 소스

- fs : 가상 파일 시스템 관리 소스

- drivers : 장치 드라이버 소스 (serial, IDE 등)

- include : 하드웨어 헤더 (프로세스별 소스)


2. 임베디드 리눅스 시스템 개발 환경


교차개발 환경 개요


상세


리눅스 교차 개발환경 자세히리눅스 교차 개발환경 자세히


요약


리눅스 교차 개발환경 요약리눅스 교차 개발환경 요약


실제 S/W가 수행될 시스템과 개발하는 시스템이 다른 환경에서 필요

- 일반적으로 개발을 진행하는 호스트 시스템과 타깃 시스템이 다름

- 호스트 시스템 : 타깃 시스템을 개발하기 위한 개발 환경을 제공하는 시스템

  : 개발자 영역

- 타깃 시스템 : 개발하고자 하는 임베디드 리눅스 시스템

  : 제품의 영역

교차 개발 환경 구축


VMware에 리눅스(Ubuntu, Fedora 등) 설치


Putty, TeraTerm(Serial) 등으로 타깃 보드의 부트로더 명령, 디버깅 메시지 등을 확인

- 부트로더 : OS 실행에 필요한 환경 설정, OS 이미지를 메모리에 복사

- u-boot : ARM에 기반을 둔 부트로더로 현재 대부분의 CPU를 지원

- 보드의 플래쉬 디스크로 u-boot를 복사해야함


호스트 서버 구동 (NFS)

- 임베디드 리눅스용 응용 프로그램의 실행 파일은 램 디스크에 로딩해야함

- 네트워크를 통해 host의 작업 디렉터리를 보드의 램 디스크에 mount

  : 설정 방법은 교육 책자 36p ~ 43p


윈도우 리눅스 putty 설정윈도우 리눅스 putty 설정


교차개발 툴 패키지

- GCC (Gnu Compiler Collection)

- C, C++, Java, Objective-C 등을 지원


glibc

- 교차 컴파일러를 위한 기본 라이브러리

  : ftp://ftp.kernel.org

  : ftp://ftp.gnu.org

- 설정 방법은 교육 책자 48p ~ 56p


3. 부트로더


기능


하드웨어 초기화

메모리 초기화

커널 적재 후 실행 (RAM)

- 압축된 커널 이미지를 해제하여 램에 적재 후 실행


관련 사이트

- http://sourceforge.net/projects/u-boot/ [링크]

- ftp://ftp.denx.de/pub/u-boot [링크]


보드 포팅

- Reference 보드의 메모리 맵이나 주변 장치 등의 사항을 반영해야함

- 새롭게 부트로더 소스를 작성하는 것은 매우 긴 시간이 필요

- 기존의 소스를 복사/수정하여 사용

  : 설정 사항에 대한 내용은 83p ~ 110p


임베디드 리눅스 시스템, 교차 개발 환경과 부트로더

이 글을 공유하기

댓글(0)

Designed by JB FACTORY