Course Outline

  1. 시작하기
    1. Buildroot을 얻다
    2. 시스템 요구 사항 빌드
    3. 크로스 컴파일러 용어: 빌드, 호스트, 타겟, sysroot
    4. 올바른 타겟 선택하기
    5. 최소한의 임베디드 시스템 구축 및 부팅
    6. 결과 파일 시스템 이미지의 내용
    7. 병렬 빌드
    8. 전체 및 부분 재건
  2. Buildroot의 디자인 목표
  3. 선택해야 할 것들
    1. C 라이브러리: glibc, uClibc 또는 musl?
    2. Init 시스템: busybox 대 sysVinit 대 systemd
    3. /dev에서 장치 노드 관리
    4. 다른 패키지 선택
  4. 빌드 지침 이해
    1. Kconfig(Confog.in) 파일의 구문
    2. Buidroot Makefiles에서 사용하는 GNU Make의 기능
    3. Config.in 및 *.mk 파일에 대한 스타일 가이드
    4. 간단한 Autotools 기반 패키지를 추가하는 방법
    5. 스테이징 디렉토리와 타겟 디렉토리의 차이점
    6. 호스트 패키지의 필요성
    7. 종속성과 선택적 기능을 표현하는 방법
    8. C 이외의 언어 및 Autotools 이외의 빌드 시스템 지원
    9. Makefile 디버깅
    10. 단일 패키지 재구축
  5. 빌드 결과 분석
    1. 왜 이렇게 많은 제작 시간이 걸렸을까?
    2. 왜 이렇게 많은 디스크 공간이 필요했을까?
    3. 이 패키지는 왜 만들어졌나요?
  6. 외부 패키지 트리 구성
  7. 애플리케이션 개발자를 위한 워크플로
    1. 로컬 소스 디렉토리를 사용하는 방법
    2. 빌드 지침 재정의
    3. 애플리케이션 디버깅
    4. 재구축 속도 향상
    5. 빌드 로그 보기
  8. 일반적인 교차 컴파일 문제 처리
    1. 크로스 컴파일러에 친화적인 자체 소프트웨어를 작성하는 방법
  9. 커널 개발자를 위한 워크플로
    1. 임베디드 시스템에서 커널이 부팅되는 방법
    2. 구성 옵션 변경 및 패치 추가
    3. 모듈 로딩 메커니즘
  10. 완제품 만들기
    1. 시작 시 데몬 실행
    2. 사용자 정의 구성 파일 제공
    3. 사용 가능한 펌웨어 업데이트 메커니즘
    4. 새로운 Buildroot 버전으로 업그레이드
    5. 오픈소스 라이센스 준수

Requirements

  • 참가자는 기존 데스크톱(비임베디드) Linux 시스템에 대해 최소한 한 번은 커널을 빌드했어야 합니다.
  • 데스크톱 시스템의 Linux 사용자 공간이 어떤 구성 요소로 구성되어 있는지 알고 있습니다.
  • 패치를 생성하고 사용하는 방법을 알고 있습니다.
  • GNU Make, Autotools가 무엇인지, 다른 빌드 시스템이 무엇인지 설명할 수 있어야 합니다.
  • 이상적으로는 업스트림 작성자 또는 기존 Linux 데스크톱 배포판으로 최소한 하나의 Linux 패키지를 유지 관리합니다.
  • 임베디드 개발에 대한 사전 경험은 필요하지 않으며 위에 명시된 기존 Linux 데스크톱에 대한 지식을 대체하지 않습니다.
 7 Hours

Number of participants


Price per participant

Upcoming Courses