커널 소스 준비
모듈을 작성하기 위해서는 라즈베리파이에서 현재 사용중인 커널 버전과 같은 버전의 커널 소스가 필요합니다. 버전을 맞추기 위해서 라즈베리파이에 커널을 최근 버전으로 변경하고 진행했습니다.
자세한 커널 컴파일 방법은 다음 포스팅에서 소개하고 있습니다.
Raspberry Pi 3를 위해 커널 크로스 컴파일하기(http://webnautes.tistory.com/547 )
모듈 작성
PC에서 hello.c라는 파일 이름으로 아래 내용을 작성합니다.
#include <linux/module.h> MODULE_INFO(intree, "Y"); |
hello.c파일이 있는 위치에 Makefile을 작성합니다.
KDIR을 미리 받아 놓은 커널 소스 디렉토리로 지정하면 됩니다.
obj-m := hello.o |
현재 두 개의 파일이 hello 디렉토리에 작성된 상태입니다.
모듈 컴파일 및 테스트
make 명령을 실행하여 컴파일을 진행합니다.
hello.ko 이름의 모듈 파일이 생성됩니다.
라즈베리파이로 모듈 파일을 복사해줍니다.
$ scp hello.ko pi@192.168.43.142:/home/pi |
라즈베리파이로 ssh 접속을 한 후..
다음 명령을 라즈베리파이에서 실행하면 모듈이 커널에 로드됩니다.
pi@raspberrypi:~ $ sudo insmod hello.ko |
lsmod 명령으로 로드된 모듈을 확인가능합니다.
dmesg 명령으로 모듈이 로드되면서 출력한 메시지를 확인할 수 있습니다.
다음 명령을 라즈베리파이에서 실행하면 모듈이 커널에 언로드됩니다.
pi@raspberrypi:~ $ sudo rmmod hello |
dmesg 명령으로 모듈이 언로드되면서 출력한 메시지를 확인할 수 있습니다.
참고로 make clean 명령으로 생성되었던 파일들을 삭제할 수 있습니다.
'Raspberry Pi > Raspberry Pi 개발환경' 카테고리의 다른 글
Raspberry Pi에서 쉽게 코드 작성하는 방법(Sublime Text 3 사용) (4) | 2019.04.17 |
---|---|
Raspberry Pi 3에 LAMP (Linux, Apache, MySQL, PHP) 설치하는 방법 (36) | 2018.09.06 |
Raspberry PI 3에서 시스템 호출(system call ) 구현 (4) | 2017.11.11 |
Raspberry Pi 3를 위해 커널 크로스 컴파일하기 (3) | 2017.11.11 |
Visual Studio 2017에서 Raspberry Pi 3를 위한 Windows 10 IoT App 작성하는 방법 (4) | 2017.08.23 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!