Yocto 프로젝트를 활용한 임베디드 리눅스 개발
- 원서명Embedded Linux Development with Yocto Project (ISBN 9781783282333)
- 지은이오타비우 살바도르, 다이앤 앤골리니
- 옮긴이배창혁, 이상욱
- ISBN : 9788960776517
- 18,800원
- 2014년 12월 23일 펴냄
- 페이퍼백 | 180쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 임베디드 시스템
판매처
개정판책 소개
요약
이 책은 욕토 프로젝트(Yocto Project)나 오픈임베디드(OpenEmbedded)로 임베디드 리눅스 개발을 처음 시작하는 개발자를 위해 세계 최초로 출간된 기본서다. 욕토 프로젝트에 대한 기본 개념들부터 시작해서 실제 디바이스에 적용하는 방법까지 예제와 유용한 팁을 제시하며 읽기 쉽게 설명되어 있다
이 책에서 다루는 내용
■ 오픈임베디드(OpenEmbedded), 욕토 프로젝트(Yocto Project), 비트베이크(BitBake)의 차이점
■ 비트베이크 메타데이타 문법
■ 사용자만의 애플리케이션 개발환경 설정 방법
■ 크로스컴파일 환경에서의 애플리케이션 디버깅 방법
■ 리눅스 커널에 기능을 추가하거나 제거하는 방법
■ 손쉽게 프로젝트 라이선스 규약을 준수하는 방법
■ 욕토 프로젝트를 이용하여 임베디드 리눅스 시스템을 만드는 방법
이 책의 대상 독자
이 책은 욕토 프로젝트 툴을 알아보거나 비교하고, 실제 프로젝트에 사용하기 위해 이를 배우고 싶은 엔지니어들과 임베디드 리눅스에 경험과 열정을 가진 사람들을 목표로 한다. 이 책의 목표는 독자를 빨리 배우게 하고 학습 정체에 빠지는 것을 막는 데 있다.
이 책의 구성
1장. ‘욕토 프로젝트 소개’에서는 욕토 프로젝트의 역사와 구성에 대해 알아본다.
2장. ‘포키 시스템’에서는 첫 빌드(build)를 위한 환경을 설명한다.
3장. ‘Hob을 사용한 이미지 생성’에서는 환경 설정과 빌드 툴로 쓸 수 있는 사용자에게 편안한 그래픽 인터페이스를 살펴본다.
4장. ‘비트베이크 툴’에서는 욕토 프로젝트의 모든 조각들을 조작하기 위한 툴의 첫 개념과 기반에 대해 알아본다.
5장. ‘임시 빌드 폴더’에서는 빌드의 결과 폴더(folder) 구조에 대해 알아보고 특히 tmp 폴더에 대해 상세히 알아본다.
6장. ‘패키지 지원 고찰’에서는 패키지 개념을 설명하고 욕토 프로젝트에서 사용되는 패키지 지원 방식에 대해 상세히 알아본다.
7장. ‘비트베이크 메타데이터 나누기’에서는 욕토 프로젝트 메타데이터(metadata)(레시피와 환경 설정 파일)에서 사용되는 개념과 문법에 대해 상세히 알아본다.
8장. ‘욕토 프로젝트를 이용한 개발’에서는 욕토 프로젝트를 사용하여 커스텀(custom) 개발 환경을 생성하는 것에 대해 알아본다.
9장. ‘욕토 프로젝트 디버깅’에서는 욕토 프로젝트가 제공하는 디버그(debug) 툴과 사용법을 알아본다.
10장. ‘외부 레이어’에서는 욕토 프로젝트의 가장 중요한 개념 중 하나인 외부 레이어 사용에 대해 알아본다.
11장. ‘사용자 레이어 생성’에서는 레이어를 만드는 법을 연습해본다.
12장. ‘레시피 커스터마이즈’에서는 레시피를 커스터마이즈하는 일반적인 유스케이스(use case)와 이를 어떻게 달성하는지 알아본다.
13장. ‘GPL 규정 준수’에서는 카피레프트(copyleft)를 지키는 제품에 연관된 작업과 개념에 대해 알아본다.
14장. ‘커스텀 임베디드 리눅스 부팅’에서는 욕토 프로젝트 툴과 실제 하드웨어를 사용해본다.
본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
목차
목차
- 1장 욕토 프로젝트 소개
- 욕토 프로젝트의 의미
- 욕토 프로젝트의 상세 소개
- 포키의 의미
- 비트베이크의 사용
- 오픈임베디드 코어
- 메타데이터
- 욕토 프로젝트와 오픈임베디드의 연합
- 정리
- 2장 포키 시스템
- 호스트 시스템 환경설정
- 데비안에 포키 설치
- 페도라에 포키 설치
- 포키 소스코드 다운로드
- 빌드 환경 준비
- local.conf
- 타깃 이미지 빌드
- QEMU에서 이미지 실행
- 정리
- 호스트 시스템 환경설정
- 3장 Hob을 사용해 이미지 생성
- Hob을 사용해 이미지 빌드
- Hob을 사용해 이미지 편집
- 정리
- 4장 비트베이크 툴
- 비트베이크 툴
- 메타데이터
- 메타데이터 파싱
- 의존성
- 레시피 프로바이더와 프레퍼런스
- 소스코드 다운로드
- 원격 파일 다운로드
- 깃 저장소
- 다른 저장소
- 소스코드 다운로드 최적화
- 네트워크 접근 제한
- 비트베이크 태스크
- 태스크 확장
- 루트 파일시스템 이미지 생성
- 정리
- 5장 임시 빌드 폴더
- 빌드 폴더
- 빌드 폴더 구성
- 임시 빌드 폴더 분석
- work 폴더
- sysroot 폴더
- 정리
- 6장 패키지 지원 고찰
- 지원되는 패키지 포맷 이용
- 지원 가능한 패키지 포맷
- 패키지 포맷 선택
- 패키지 설치 시점의 코드 실행
- 셰어드 스테이트 캐시
- 패키지 버전 선택
- 패키지 피드
- 패키지 피드 사용
- 정리
- 지원되는 패키지 포맷 이용
- 7장 비트베이크 메타데이터 나누기
- 메타데이터 사용
- 메타데이터 작업
- 기본 변수 설정
- 변수 확장
- ?=를 사용한 기본 값 설정
- ??를 사용한 기본 값 설정
- 즉시 변수 적용
- 앞 뒤 추가
- 조건을 가진 메타데이터 집합
- 조건적 추가
- 파일 포함
- 파이썬 변수 설정
- 실행 가능한 메타데이터 정의
- 전역 네임스페이스에서 파이썬 함수 정의
- 상속 시스템
- 정리
- 8장 욕토 프로젝트를 이용한 개발
- 소프트웨어 개발 키트
- 포키 SDK 이용
- 이미지 기반 SDK 이용
- 범용적 SDK: meta-toolchain
- SDK 이용
- 타깃에서 애플리케이션 개발
- 이클립스와 통합
- 정리
- 9장 욕토 프로젝트 디버깅
- 메타데이터와 애플리케이션 디버깅
- 이미지, 패키지, SDK 콘텐츠 추적
- 패키지 디버깅
- 작업 실행 기간의 로그 정보
- 개발 셸 이용
- 디버깅을 위해 GNU 프로젝트 디버거 사용
- 정리
- 10장 외부 레이어
- 레이어를 이용한 유연성 확보
- 레이어의 소스코드에 대한 고찰
- 메타레이어 추가
- 정리
- 11장 사용자 레이어 생성
- 새로운 레이어 추가
- 레이어에서 메타데이터 추가
- 이미지 생성
- 패키지 레시피 추가
- 머신 정의 작성
- 커스텀 배포 사용
- 머신 기능과 배포 기능 비교
- 변수의 범위
- 정리
- 12장 레시피 커스터마이즈
- 일반적인 유스케이스
- Autoconf에 기반을 둔 레시피에 추가 옵션 적용
- 패치 적용
- 존재하는 패키지에 추가 파일 적용
- 파일 탐색 경로
- 레시피의 피처 변경
- BusyBox 커스터마이제이션
- 리눅스 욕토 프레임워크 커스터마이징
- 정리
- 13장 GPL 규정 준수
- 카피레프트
- 카피레프트 규약과 상용화 코드의 비교
- 라이선스 규약의 가이드라인
- 포키에 포함된 소프트웨어 라이선스 관리
- 상업 라이선스
- 카피레프트 규약을 지키기 위한 포키의 사용
- 라이선스 검사
- 소스코드 제공
- 컴파일 스크립트와 수정된 소스코드 제공
- 라이선스 문구 제공
- 정리
- 카피레프트
- 14장 커스텀 임베디드 리눅스 부팅
- Wandboard
- Freescale ARM BSP 발견
- 욕토 프로젝트에서 Wandboard 사용
- Wandboard를 위한 이미지 빌드
- SD 카드를 이용하여 Wandboard 부팅
- 정리
도서 오류 신고
정오표
정오표
2016. 3. 7 수정사항
[p. 64: 노트 박스 1-2행]
2016. 10. 27 수정사항
[p.38: 2행]
BPS(Board Support Packgage)에서
->
BSP(Board Support Packgage)에서
[p.96: 아래에서 5행]
이 예제에서 B는 additionaldata를
->
이 예제에서 B는 bvaladditionaldata를