Top

Embedded Linux Projects Using Yocto Project Cookbook [임베디드 리눅스 전문가들의 Yocto 노하우 70가지 레시피]

  • 원서명Embedded Linux Projects Using Yocto Project Cookbook (ISBN 9781784395186)
  • 지은이알렉스 곤잘레스(Alex Gonzalez)
  • 옮긴이배창혁, 손현수, 조주희
  • ISBN : 9788960779389
  • 35,000원
  • 2016년 11월 30일 펴냄
  • 페이퍼백 | 408쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

책 소개

소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(https://github.com/AcornPublishing/embedded-linux-yocto-cookbook)

요약

임베디드 리눅스 개발을 위한 Yocto 프로젝트의 사용법과 노하우를 제시한다. Yocto 빌드 시스템의 기본 개념을 다루며 임베디드 리눅스 개발자들이 쉽게 따라 할 수 있는 다수의 예제를 통해 프리스케일 완드보드를 이용한 BSP, 소프트웨어, 애플리케이션 레이어의 구성 방법을 보여준다. 후반부에는 Yocto를 사용하여 디버깅 환경을 구성하는 방법을 설명한다. 이 책을 읽고 나면, 임베디드 리눅스 개발을 위해 Yocto 프로젝트를 실무에서 어떻게 활용할 수 있는지 배울 수 있다.

이 책에서 다루는 내용

■ 빌드 이슈를 디버깅하고 개발 속도를 높이기 위한 욕토 설정 최적화

■ 디버깅에서 최적화 방법까지 기술된 U-Boot와 리눅스 커널 개발 작업 절차 소개

■ 욕토 패키지를 이용한 루트 파일 시스템 커스터마이즈 방법

■ 오픈소스 라이선스 요구사항과 지적재산권 프로그램에서의 라이선스 요구사항 준수 방법

■ 출시 일정에 맞춘 전문 임베디드 욕토 제품 개발

■ 리눅스 커널과 루트 파일 시스템의 크기 축소를 통한 제품 시스템의 최적화 방법

이 책의 대상 독자

이 책은 임베디드 리눅스와 욕토 프로젝트에 대해 배우려는 임베디드 개발자가 임베디드 개발에 바로 적용 가능한 예제를 이용해서 지식을 숙달하고 확장하기 위해 적합한 책이다. 개발 경험이 많은 임베디트 욕토 개발자는 ARM 개발 능력과 작업 방법에 대한 새로운 통찰력을 얻을 수 있다.

이 책의 구성

1장, ‘빌드 시스템’에서는 포키 빌드 시스템의 사용법을 알아보고, 프리스케일 BSP 커뮤니티 레이어로 확장한다. 또한 빌드 시스템 설정과 타깃 이미지 빌드 최적화에 사용하는 기능을 설명한다.
2장, ‘BSP 레이어’에서는 제품을 위한 BSP의 커스터마이징에 대해 알아본다. 그러고 나서 유부트(U-boot), 리눅스 커널과 디바이스 트리를 설정, 수정, 빌드, 디버깅하는 방법을 설명한다.
3장, ‘소프트웨어 레이어’에서는 라이선스 준수를 위한 릴리스 프로세스에 대해 알아보고, 새로운 애플리케이션, 서비스, 기존 패키지를 수정하기 위해 새로운 소프트웨어 레이어를 생성하는 방법을 설명한다.
4장, ‘애플리케이션 개발’에서는 애플리케이션 개발 키트(ADT, Application Development Toolkit)와 툴 체인으로 시작해서 이클립스나 Qt 크리에이터(creater)와 같은 개발 환경을 포함한 애플리케이션 개발에 대해 설명한다.
5장, ‘디버깅, 추적, 프로파일’에서는 디버깅 도구와 기술에 대해 알아보고, 사용자 공간 추적이나 프로파일을 위한 여러 도구와 함께 리눅스 커널에서 제공하는 트레이싱 기능을 설명한다.

저자/역자 소개

지은이의 말

임베디드 리눅스는 신뢰성 높은 제품을 만들기 위한 최고의 통합 프레임워크로 욕토 프로젝트 중심의 표준화를 진행하고 있다. 욕토 프로젝트를 통해 임베디드 리눅스의 개발 및 유지보수 시간을 효과적으로 단축하며 이미 검증된 컴포넌트를 재사용함으로써 제품의 신뢰성과 견고함을 높일 수 있다.
이 책은 전문 임베디드 욕토 설치 방법을 비롯하여 우수한 예제들을 다루고 있다. 또한 저렴하고 소스가 공개된 완드보드를 사용하여 프리스케일 ARM 에코시스템 및 커뮤니티 레이어를 활용하는 방법도 소개한다.

지은이 소개

알렉스 곤잘레스(Alex Gonzalez)

디지 인터내셔널(Digi international)의 소프트웨어 엔지니어링 감독관이고, 디지(Digi) 임베디드 욕토 배포판의 관리자 중 한 사람이다.
1999년에 전문적으로 임베디드 시스템 일을 시작했고, 2004년에 리눅스 커널에 IP 네트워크를 통한 음성과 영상을 위한 제품 디자인을 시작했다. 그 후 관심사는 M2M 기술과 사물 인터넷으로 이어졌다.
스페인의 빌바오(Bibao)에서 태어나서 자랐고, 영국에 두 번째 집을 보유하고 있다. 그곳에서 10년 넘게 살고 있고, 포츠머츠(Portxmouth) 대학에서 통신 시스템 석사 학위를 받았다.

옮긴이의 말

가전, 모바일, 차량, IoT 등 산업 전반에 걸쳐 임베디드 리눅스를 채택하는 움직임이 확산되고 있다. 특히 차량용 인포테이먼트와 텔레메틱스 분야에서는 기존 RTOS 등에서 임베디드 리눅스로 옮겨 가려는 움직임이 더욱 거세지고 있다.
욕토 프로젝트는 임베디드 리눅스 프로젝트를 위한 툴 체인, 커널과 BSP, 애플리케이션의 통합된 개발 환경을 지원하는 좋은 솔루션이다. 임베디드 리눅스 프로젝트에 Yocto를 활용하면 최신 버전의 툴 체인과 보안 패치가 적용된 오픈 소스 컴포넌트를 비교적 쉽게 제품 개발에 적용할 수 있다. 또한 검증을 거친 공개된 소프트웨어를 자신의 프로젝트 빌드 환경에 쉽게 포함시킬 수 있다. 이처럼 욕토 프로젝트는 확장성 높은 개발 환경을 제공하지만, 추천의 글에서도 언급했듯이 개발자가 욕토 활용 노하우를 익히기까지의 진입 장벽이 높은 편이다.
이 책은 욕토 레시피의 기본 문법을 자세하게 다루지는 않는다. 하지만 임베디드 리눅스 시스템 개발을 위한 BSP 레이어, 소프트웨어 레이어, 애플리케이션 개발 시나리오에 맞는 다양한 예제(레시피) 작성 사례를 단계별로 보여준다. 저자는 책에 언급된 사례들을 통해 실제 개발에서 부딪히는 문제를 해결하기 위한 노하우를 공유하고, 욕토에서 제공하는 다양한 이미지 특성(feature)을 설명하며, 이를 손쉽게 빌드에 포함시키는 방법을 소개한다. 이 책을 읽고 나면 개발자는 요구 사항에 맞는 이미지를 구성하는 방법을 배울 수 있다.
이 책을 임베디드 리눅스 시스템 개발자뿐만 아니라 임베디드 리눅스 제품 배포판의 커스터마이즈 방법을 고민하고 있는 개발자에게도 권하고 싶다. 이 책을 통해 실전에 적용하기 위한 욕토 활용 방법을 체득할 수 있기를 바란다.

옮긴이 소개

배창혁

현재 LG전자 소프트웨어 플랫폼 연구소에서 빌드/시스템 개발자로 근무하면서 SCM 관련 업무를 하고 있다. GDPGENIVI Development Platform의 메인테이너, 오픈임베디드 TSCTechnical Steering Commitee 멤버로 활동 중이며, LG전자를 대표해 Yocto 프로젝트 이사회 멤버로 참여하고 있다. 에이콘출판사에 서 출간한 , <비글본>을 번역했다.

손현수

LG전자에서 16년간 근무하면서 아날로그 TV에서 시작해 디지털 TV를 거쳐 스마트 TV까지 TV의 변천사와 함께 해오고 있으며, 언제나 변화를 두려워하지 않는 용기를 가진 엔지니어가 되기 위해 오늘도 노력 중이다. 우연한 기회로 욕토를 접하게 됐으며, 이와 관련된 TV 개발 업무를 수행하고 있다.

조주희

LG전자 HE연구소에서 욕토 기반의 TV 소프트웨어 빌드 시스템 개발 관련 업무를 하고 있다. 욕토 노하우를 활용해 소프트웨어 개발 환경을 개선하는 활동을 하고 있으며, 빌드 시스템 커스터마이즈를 통해 개발 업무를 효율화할 수 있는 방안에 대해 고민하고 있다.

목차

목차
  • 1장. 빌드 시스템
    • 소개
    • 호스트 시스템 설정
    • 포키 설치
    • 빌드 디렉토리 생성
    • 이미지 빌드
    • 프리스케일 욕토 에코시스템 설명
    • 프리스케일 하드웨어 지원 패키지 설치
    • 완드보드 이미지 빌드
    • 완드보드 부팅 문제 해결
    • 개발을 위한 네트워크 부팅 환경 설정
    • 다운로드 디렉토리 공유
    • 셰어드 스테이트 캐시 공유
    • 패키지 피드 설정
    • 빌드 히스토리 사용
    • 빌드 통계 사용
    • 빌드 시스템 디버깅

  • 2장. BSP 레이어
    • 소개
    • 커스텀 BSP 레이어 생성
    • 시스템 개발 작업 흐름 소개
    • 커스텀 커널과 부트로더 추가
    • U-Boot 부트로더 빌드
    • 욕토 리눅스 커널 지원
    • 리눅스 빌드 시스템
    • 리눅스 커널 설정
    • 리눅스 커널 빌드
    • 외부 커널 모듈 빌드
    • 리눅스 커널와 모듈 디버깅
    • 커널 부팅 프로세스 디버깅
    • 커널 함수 추적 시스템 사용
    • 디바이스 트리 관리
    • 디바이스 트리 디버깅

  • 3장. 소프트웨어 레이어
    • 소개
    • 이미지 내용 파헤치기
    • 새로운 소프트웨어 레이어 추가
    • 특정 패키지 버전과 프로바이더 선택
    • 지원하는 패키지 추가
    • 새로운 패키지 추가
    • 데이터, 스크립트, 설정 파일 추가
    • 사용자와 그룹 관리
    • sysvinit 초기화 관리자 사용
    • systemd 초기화 관리자 사용
    • 패키지 설치 스크립트 설치
    • 리눅스 커널 이미지 크기 줄이기
    • 루트 파일 시스템 이미지 크기 줄이기
    • 소프트웨어 릴리스
    • 라이선스 준수를 위한 시스템 분석
    • 오픈소스와 지적 재산권 코드로 작업

  • 4장. 애플리케이션 개발
    • 소개
    • 툴체인 소개
    • SDK 준비와 사용
    • 애플리케이션 개발 툴킷 사용
    • 이클립스 IDE 사용
    • GTK+ 애플리케이션 개발
    • Qt 크리에이터 IDE 사용
    • Qt 애플리케이션 개발
    • 애플리케이션 개발 작업 흐름
    • GNU make로 작업
    • GNU 빌드 시스템으로 작업
    • CMake 빌드 시스템으로 작업
    • Scons 빌더로 작업
    • 라이브러리 개발
    • 리눅스 프레임버퍼 작업
    • X 윈도우 시스템 사용
    • Wayland 사용
    • 파이썬 애플리케이션 추가
    • 오라클 자바 런타임 환경 통합
    • 오픈 자바 개발 도구 통합
    • 자바 애플리케이션 통합

  • 5장. 디버깅, 추적, 프로파일
    • 소개
    • 코어 덤프 분석
    • 네이티브 GDB 디버깅
    • 크로스GDB 디버깅
    • 애플리케이션 디버깅을 위한 strace 사용
    • 커널 성능 카운터 사용
    • 정적 커널 추적
    • 동적 커널 추적
    • 동적 커널 이벤트 사용
    • 준비
    • 쿡구
    • 욕토의 추적과 프로파일링 도구
    • perf를 사용한 추적 및 프로파일링
    • SystemTab 사용
    • 오프로파일 사용
    • LTTng 사용

도서 오류 신고

도서 오류 신고

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

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

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

정오표

정오표

[p.87 : 3번째 행]
map-bsp-custom
->
meta-bsp-custom

[p.88 : 부연설명 4번째 행 ]
강조된 줄은 conf/layers.conf
->
강조된 줄은 conf/bblayers.conf

[p.102 : 아래에서 2번째 행]
Freescale/u-bootimx.
->
Freescale/u-boot-imx.

[p.157 : 위에서 1행]
- Open Firmward에서 온
->
Open Firmware에서 온