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장, ‘디버깅, 추적, 프로파일’에서는 디버깅 도구와 기술에 대해 알아보고, 사용자 공간 추적이나 프로파일을 위한 여러 도구와 함께 리눅스 커널에서 제공하는 트레이싱 기능을 설명한다.
목차
목차
- 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.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에서 온