문의를 보내주셔서 감사합니다! 팀원이 곧 연락드리겠습니다.
예약을 보내주셔서 감사합니다! 저희 팀 멤버 중 한 분이 곧 연락드리겠습니다.
코스 개요
1. 리눅스 커널 소개
- 임베디드 리눅스 개요
- 리눅스 커널 아키텍처
- 사용자 공간과 커널 공간의 차이점
- 커널의 주요 역할
- 커널 개발 워크플로우
- 지원되는 임베디드 플랫폼 소개
2. 개발 환경 설정
- 개발용 워크스테이션 준비하기
- 크로스 컴파일의 기본 개념
- 필요한 개발 도구 설치하기
- BeagleBone Black 개발 보드 세팅하기
- 시리얼 콘솔 구성 방법
- 타겟 장치 부팅 절차
3. 커널 소스 획득 및 이해
- 리눅스 커널 소스 트리 구조
- 안정화 버전과 장기 지원 버전의 차이점
- 커널 소스 다운로드 방법
- 소스 코드 구조 탐색하기
- 커널 관련 문서들
- 커널 버전 관리 방법
4. 커널 설정, 컴파일 및 부팅
- menuconfig를 활용한 커널 설정법
- 커널 기능 선택하기
- 크로스 컴파일을 통한 커널 빌드
- 커널 이미지 생성 방법
- 커널 모듈 설치 절차
- 부트로더의 기본 개념
- 직접 만든 커널으로 부팅하기
5. 디바이스 트리 기초
- 디바이스 트리의 목적과 역할
- 디바이스 트리 소스(DTS) 파일 개요
- 디바이스 트리 blob(DTB)에 대하여
- 하드웨어 설명 방식 이해하기
- 디바이스 트리 파일 수정 방법
- 디바이스 트리 빌드 및 배포 절차
6. 리눅스 커널 모듈
- 커널 모듈의 구조적 원리
- 로드 가능한 커널 모듈 제작 방법
- 모듈을 로드하고 언로드하는 과정
- 모듈 매개변수 설정법
- 모듈 간 의존성 관리하기
- 커널 모듈과의 상호작용 방식
- 모듈 디버깅 기법
7. 리눅스 커널 디버깅
- printk()를 이용한 커널 로그 생성
- dmesg 명령어 활용법
- 동적 디버깅 기법
- 커널 패닉 원인 분석 방법
- Oops 메시지 해석하기
- GDB를 통한 커널 디버깅
- 기본적인 성능 추적 도구 사용법
8. 캐릭터 디바이스 드라이버
- 리눅스의 디바이스 드라이버 모델 개요
- 캐릭터 디바이스에 관하여
- 드라이버 등록 절차
- 파일 작업 처리 메커니즘
- 읽기 및 쓰기 동작 구현 방법
- IOCTL 인터페이스의 이해와 활용
- 메모리 관리 방식
- 드라이버 종료 처리 절차
9. 드라이버 통합 및 하드웨어 접근 방법
- 플랫폼 디바이스와 드라이버 관계
- GPIO 프로그래밍 기초
- 인터럽트 처리 방식
- 타이머 및 지연 작업 활용법
- 하드웨어 레지스터 접근 방법
- 메모리 매핑 입출력 활용하기
10. Git을 이용한 버전 관리
- Git의 기본 개념과 작동 원리
- 커널 소스 코드 관리 전략
- 브랜치 생성 및 병합 절차
- 패치 파일 만들기 방법
- 코드 변경사항 검토 기법
- 커널 개발 분야에서의 협업 방식
11. 실습 중심의 커널 개발 연습
- 직접 제작한 커널 구성하기
- 커널 빌드 및 배포 체험하기
- 간단한 커널 모듈 하나 만들어보기
- 기본적인 캐릭터 디바이스 드라이버 개발 연습
- 디바이스 트리 파일 수정 및 적용 시도해보기
- BeagleBone Black에서 커널 문제 점검하기
12. 모범 사례 및 요약
- 커널 코딩 스타일 기준
- 유지보수 가능한 드라이버 작성법
- 개발 시 자주 발생하는 실수 유형들
- 커널 관련 문서 활용법
- 오픈소스 프로젝트 기여 절차 안내
- 핵심 개념들에 대한 정리
- 질의응답 시간
- 향후 리눅스 커널 개발을 위한 로드맵 제시
요건
GNU/리눅스 시스템 사용법에 대한 기본적인 이해가 필요합니다.
14 시간
회원 평가 (2)
트레이너의 지식. 그는 모든 제 질문, 심지어 우리 플랫폼에 대한 질문까지도 답변해주었습니다. 또한 우리는 모두 자료를 이해할 때까지 계속 도와주었습니다.
James O'Donnell - Tennant Company
코스 - Embedded Linux Kernel and Driver Development
기계 번역됨
I liked the hands-on nature of it.
Maurice Egan
코스 - Embedded Linux Kernel and Driver Development
기계 번역됨