리눅스 디바이스 드라이버 커널 모듈 예제 소스
※ 순서
1. 커널 오브젝트(.ko)를 만들기 위한 소스코드(디바이스 초기화, 등록, 제거, 읽기, 쓰기 등)
2. Make file
3. make ▶ xxx.ko 커널 오브젝트 생성
4. 디바이스 파일 생성
5. 커널에 커널 오브젝트(.ko) 적재
6. 테스트 응용 프로그램 작성 및 실행
1. 커널 오브젝트(.ko)를 만들기 위한 소스코드(디바이스 초기화, 등록, 제거, 읽기, 쓰기 등)
디바이스 초기화에서 디바이스 등록/제거 시,
주 번호와 디바이스 파일 명을 파라미터로 넣는다
2. Make file
Makefile 작성
- 컴파일 옵션, 커널오브젝트(.ko)명 등을 작성하여 많은 수의 파일을 컴파일 할 경우, 용이하게 해준다
3. make ▶ xxx.ko 커널 오브젝트 생성
컴파일하여 커널오브젝트(.ko)를 생성한다
4. 디바이스 파일 생성
- mknod /dev/xxx(디바이스파일) c(character device driver) 240(Major Number) 32(Minor Number)
- /dev/ 에서 생성된 디바이스 파일 확인
5. 커널에 커널 오브젝트(.ko) 적재
- insmod xxx.ko 커널 오브젝트(.ko)적재
- lsmod 명령어로 적재된 모듈 확인
6. 테스트 응용 프로그램 작성 및 실행
- 응용 어플리케이션에서 디바이스파일 open
- 실행
- 커널 메시지 버퍼 출력(display message)
: 정상적으로 커널 적재 및 디바이스 드라이버가 동작한다
※ 참고 : 디바이스 파일 제거 및 모듈 제거
- 디바이스 파일 제거 : rm /dev/xxx.ko
- 모듈 제거 : rmmod xxx
누군가에겐 도움이 되었길...
'Raspberry Pi 3 > Linux Device Driver' 카테고리의 다른 글
| /lib/modules//build no such file or directory (0) | 2018.07.03 |
|---|