Top

Yocto 프로젝트를 활용한 임베디드 리눅스 개발 2/e [유연하고 확장성 좋은 Yocto 프로젝트 첫 단계]

  • 원서명Embedded Linux Development using Yocto Projects - Second Edition: Learn to leverage the power of Yocto Project to build efficient Linux-based products (ISBN 9781788470469)
  • 지은이오타비우 살바도르(Otavio Salvador), 다이앤 앤골리니(Daiane Angolini)
  • 옮긴이배창혁
  • ISBN : 9791161751894
  • 20,000원
  • 2018년 08월 31일 펴냄
  • 페이퍼백 | 196쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 임베디드 시스템

판매처

개정판

책 소개

본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약

Yocto 프로젝트나 오픈임베디드로 임베디드 리눅스 개발을 처음 시작하는 개발자를 위한 기본서다. Yocto 프로젝트에 대한 기본 개념부터 시작해 실제 디바이스에 적용하는 방법까지 예제와 유용한 팁을 제시하며 읽기 쉽게 설명한다. Toaster 소개 및 라즈베리파이3 개발 보드 활용 등과 같이 Yocto 프로젝트의 최신 업데이트된 기술과 내용을 소개하고 있다.

이 책에서 다루는 내용

■ 포키 작업 흐름의 기본 개념을 이해하고 포키 빌드 환경을 구성하고 준비하는 방법
■ 빌드 서버 설정과 Toaster를 사용한 이미지 커스터마이즈 방법
■ 이미지 생성과 비트베이크를 사용해 생성된 이미지에 패키지를 다루는 방법
■ 패키지 피드를 설정하고 사용한 개발 과정 지원 방법
■ 포키를 설정해 Yocto 프로젝트를 디버깅하는 방법
■ 비글본 블랙, 라즈베리파이3, 완드보드 이미지 빌드 및 SD 카드를 사용한 부팅 방법

이 책의 대상 독자

Yocto 프로젝트 도구를 알아보거나 비교하고, 실제 프로젝트에 사용하기 위해 배우고 싶은 엔지니어들과 임베디드 리눅스에 경험과 열정을 가진 사람들을 대상으로 한다. 독자가 이 책의 내용을 빠르게 익힐 수 있도록 돕고 학습 정체에 빠지는 것을 막는 것이 이 책의 목표이다.

이 책의 구성

1장, ‘Yocto 프로젝트 소개’에서는 Yocto 프로젝트와 주요 도구를 소개하기 위한 개념과 전제를 제시한다.
2장, ‘포키 시스템’에서는 첫 빌드를 위한 환경을 설명한다.
3장, ‘Toaster을 사용한 이미지 생성’에서는 환경설정과 빌드 도구로 쓸 수 있는 사용자에게 편한 웹 인터페이스를 설명한다.
4장, ‘비트베이크’에서는 비트베이크 도구와 이 도구가 태스크와 그 의존성을 관리하는 방법을 설명한다.
5장, ‘임시 빌드 디렉토리’에서는 빌드 임시 결과 디렉토리를 자세히 설명한다.
6장, ‘패키지 지원 고찰’에서는 모든 바이너리 패키지를 만들고 관리하기 위한 기반으로 사용하는 패키징 메커니즘을 설명한다.
7장, ‘비트베이크 메타데이터’에서는 이 책 전반에 걸쳐 사용하는 비트베이크 메타데이터 언어를 설명한다.
8장, ‘Yocto 프로젝트를 이용한 개발’에서는 개발 환경을 만들기 위해 필요한 작업 흐름을 설명한다.
9장, ‘Yocto 프로젝트 디버깅’에서는 포키로 디버깅 환경을 만들고 사용하는 방법을 설명한다.
10장, 외부 레이어’에서는 Yocto 프로젝트의 가장 중요한 개념 중 하나인 외부 레이어의 사용법을 설명한다.
11장, ‘사용자 레이어 생성’에서는 레이어를 만드는 방법을 설명한다.
12장, ‘레시피 커스터마이즈’에서는 기존 레시피를 커스터마이즈하는 방법을 예제와 함께 설명한다.
13장, ‘GPL 규정 준수’에서는 카피레프트를 지키는 제품에 연관된 작업과 개념을 설명한다.
14장. ‘커스텀 임베디드 리눅스 부팅’에서는 Yocto 프로젝트 도구로 실제 하드웨어를 사용해본다.

저자/역자 소개

지은이의 말

현재의 기술 트렌드를 보면 리눅스는 앞으로 주역이 될 것이다. 리눅스는 지속적으로 기술을 선도하는 오픈소스 제품을 내놓고 있으며 임베디드 시스템은 어느 곳에서든 찾아볼 수 있다.
Yocto 프로젝트는 이러한 프로젝트를 위한 최적의 선택이다. 개발에 필요한 도구 개발 시간을 줄이고 제품 개발에만 에너지를 집중할 수 있게 다양한 툴과 리소스를 제공한다.
임베디드 리눅스 기반 제품과 이를 개발하는 개발 팀의 일반적인 작업 요구 사항이 이 책에서 개념을 잡는 가이드라인이 됐다. 활발히 활동하는 커뮤니티 구성원의 실질적이고 명료한 접근을 통해 쓰여진 이 책은 프로젝트 및 개인의 학습에 있어서 발전을 위한 주춧돌이 될 것이다.

지은이 소개

오타비우 살바도르(Otavio Salvador)

기술을 좋아하며 1999년에 오픈소스 활동을 시작했다. 2002년에 임베디드 시스템 개발 회사이자 세계적 컨설팅 회사인 OS 시스템을 창립했으며, 커스터마이즈된 BSP를 개발 유지하고, 릴리스 관리를 한다. 2008년 오픈임베디드 커뮤니티에 참여한 결과로 오픈임베디드 프로젝트에 활동적인 기여자가 됐다.

다이앤 앤골리니(Daiane Angolini)

2008년부터 임베디드 리눅스에서 작업을 했다. NXP에서 애플리케이션 엔지니어로 일을 하면서 내부 개발, 안드로이드에서 커스텀 애플리케이션 포팅, 리눅스 커널, u-boot, 안드로이드, Yocto 프로젝트, 사용자 공간 애플리케이션과 같은 영역에서 i.MX 아키텍처에 대한 현장 고객 지원을 담당했다. 그 후, Yocto 프로젝트에 자리를 잡았다.

옮긴이의 말

이 책의 1판 『Yocto 프로젝트를 활용한 임베디드 리눅스 개발』를 출간할 때, 과연 국내외에서 Yocto 프로젝트를 사용하는 제품이나 회사가 많이 있을지 의문을 품었다. 4년이 지나는 동안 많은 오픈소스 프로젝트의 기여자로 활동하고 국내외 콘퍼런스에 참여하면서 Yocto 프로젝트를 사용하는 많은 개발자 및 프로젝트를 만나면서 Yocto 프로젝트를 사용하는 곳이 점점 더 많아지고 있다는 것을 알게 됐다.
강연을 하며 Yocto 프로젝트를 왜 사용하고 무엇이 좋은지에 대한 질문이많았다. 그에 대해거의 모든 SoC 업체(intel, Qualcomm, Renesas, NVIDIA 등)가 BSP를 Yocto 프로젝트 기반으로 릴리스하며, Yocto 프로젝트는 유연하고 확장성이 좋기 때문이라고 답해줬다.
Yocto 프로젝트를 사용하는 대표적인 오픈소스 프로젝트는 webOS OSE(Open Source Edition), AGL(Automotive Grade Linux), GENIVI Baseline, RDK 등이 있고, 상용 제품 중 가전에서는 LG webOS TV, 차량에서는 BMW, 벤츠, 현대자동차 등에 들어가는 IVI 및 Telematics 시스템 등에서 Yocto 프로젝트가 다양하게 사용되고 있다.
많은 개발자가 여전히 Yocto 프로젝트를 사용하는 데 많은 어려움을 겪고 있다. 저자뿐만 아니라 Yocto 프로젝트 오픈소스 진영에서도 이런 문제를 해결해 많은 개발자의 진입 장벽을 낮추기 위해 문서화, 개발하기 쉬운 도구를 제공하기 위해 노력 중이다.
기본적으로 임베디드 OS를 만드는 데는 많은 지식이 필요하고, 거기에 Yocto 프로젝트에서 사용하는 문법을 익혀야 하기 때문에 나 또한 6년 이상 사용하면서도 어려움을 겪고 계속 배워나가고 있다. 가장 좋은 시작은 이 책과 같은 기본서로 시작해서 실제 제품에 적용해가며 필요한 것을 배워나가는 것이다.

옮긴이 소개

배창혁

현재 전자 소프트웨어 플랫폼 연구소에서 빌드 LG /시스템 개발자로 근무하면서 SCM 관련 업무를 하고 있다. KOSSLAB에서 오픈소스 프론티어로도 활동 중이며, 오픈임베디드 TSC(Technical Steering Committee) 멤버 및 Yocto 프로젝트 이사회 멤버로도 참여하고 있다. 에이콘 출판사에서 출간한 『Yocto 프로젝트를 활용한 임베디드 리눅스 개발』(2014), 『BeagleBone Black을 사용한 Yocto 프로젝트』(2015), 『Embedded Linux Projects Using Yocto Project Cookbook』(2016)을 번역했다.

목차

목차
  • 1장. Yocto 프로젝트 소개
    • Yocto 프로젝트 의미
    • Yocto 프로젝트 상세 소개
    • 포키의 의미
    • 비트베이크 사용
    • 오픈임베디드 코어
    • 메타데이터
    • Yocto 프로젝트와 오픈임베디드 연합
    • 요약

  • 2장. 포키 시스템
    • 호스트 시스템 환경설정
      • 데비안에 포키 설치
      • 페도라에 포키 설치
    • 포키 소스코드 다운로드
    • 빌드 환경 준비
    • local.conf
    • 타깃 이미지 빌드
    • QEMU에서 이미지 실행
    • 요약

  • 3장. Toaster를 사용한 이미지 생성
    • Toaster 소개
    • Toaster 설치
    • Toaster 시작
    • QEMU 이미지 빌드
    • 요약

  • 4장. 비트베이크
    • 비트베이크 이해
    • 메타데이터
    • 메타데이터 파싱
    • 의존성
    • 레시피 프로바이더와 프레퍼런스
    • 소스코드 다운로드
      • 원격 파일 다운로드
      • 깃 저장소
      • 소스코드 다운로드 최적화
      • 네트워크 접근 제한
    • 비트베이크 태스크
      • 태스크 확장
    • 루트 파일시스템 이미지 생성
    • 요약

  • 5장. 임시 빌드 디렉토리
    • 빌드 디렉토리
    • 빌드 디렉토리 구성
    • 임시 빌드 디렉토리 분석
    • work 디렉토리
    • sysroot 디렉토리
    • 요약

  • 6장. 패키지 지원 고찰
    • 지원하는 패키지 형식 이용
      • 지원 가능한 패키지 형식
      • 패키지 형식 선택
      • 패키지 설치 시점의 코드 실행
    • 셰어드 스테이트 캐시
    • 패키지 버전 선택
    • 런타임 패키지 의존성
    • 패키지 피드
      • 패키지 피드 사용
    • 요약

  • 7장. 비트베이크 메타데이터
    • 메타데이터 사용
      • 메타데이터 작업
      • 기본 변수 설정
      • 변수 확장
      • ?=를 사용한 기본 값 설정
      • ??=를 사용한 기본 값 설정
      • 즉시 변수 적용
      • 앞뒤 추가
      • 오버라이드 문법 연산자
      • 조건을 가진 메타데이터 설정
      • 조건적 추가
      • 파일 포함
      • 파이썬 변수 설정
      • 실행 가능한 메타데이터 정의
      • 전역 네임스페이스에서 파이썬 함수 정의
      • 상속 시스템
    • 요약

  • 8장. Yocto 프로젝트를 이용한 개발
    • 소프트웨어 개발 키트
    • 포키 SDK 이용
      • 이미지 기반 SDK 이용
      • 범용적 SDK: meta-toolchain
      • SDK 생성
      • 타깃에서 애플리케이션 개발
    • 이클립스와 통합
    • 요약

  • 9장. Yocto 프로젝트 디버깅
    • 메타데이터와 애플리케이션 디버깅
    • 이미지, 패키지, SDK 내용 추적
    • 패키지 디버깅
    • 작업 실행 기간의 로그 정보
    • devshell 이용
    • GNU 프로젝트 디버거 사용
    • 요약

  • 10장. 외부 레이어
    • 레이어를 이용한 유연성 확보
    • 레이어의 소스코드에 대한 고찰
    • 메타레이어 추가
    • Yocto 프로젝트 레이어 에코시스템
    • 요약

  • 11장. 사용자 레이어 생성
    • 새로운 레이어 추가
    • 레이어에서 메타데이터 추가
    • 이미지 생성
    • 패키지 레시피 추가
      • recipetool을 사용해 기본 패키지 레시피 자동 생성
    • 신규 머신 추가
    • 머신에 이미지 배치
    • 커스텀 배포
    • MACHINEFEATURES와DISTROFEATURES비교
    • 변수의 범위
    • 요약

  • 12장. 레시피 커스터마이즈
    • 일반적인 사용 사례
    • Autoconf 사용 레시피에 추가 옵션 적용
    • 패치 적용
    • 존재하는 패키지에 추가 파일 적용
      • 파일 탐색 경로
    • 레시피 설정 변경
    • BusyBox 커스터마이제이션
    • linux-yocto 프레임워크 커스터마이징
    • 요약

  • 13장. GPL 규정 준수
    • 카피레프트
      • 카피레프트 규약과 상용화 코드의 비교
      • 라이선스 규약의 가이드라인
    • 포키에 포함된 소프트웨어 라이선스 관리
      • 상업 라이선스
    • 카피레프트 규약을 지키기 위한 포키의 사용
      • 라이선스 검사
      • 소스코드 제공
      • 컴파일 스크립트와 수정된 소스코드 제공
      • 라이선스 문구 제공
    • 요약

  • 14장. 커스텀 임베디드 리눅스 부팅
    • 개발 보드 살펴보기
    • 올바른 BSP 레이어 찾기
    • 하드웨어 사용
      • 비글본 블랙
      • 라즈베리파이 3
      • 완드보드
    • 생성한 이미지 부팅
      • SD 카드를 사용한 비글본 블랙 부팅
      • SD 카드를 사용한 라즈베리파이 3 부팅
      • SD 카드를 사용한 완드보드 부팅
    • 다음 단계
    • 요약

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

[p.32]
데비안에 포키 설치
->
데비안에 패키지 설치

[p.33]
페도라에 포키 설치
->
페도라에 패키지 설치