Raspberry Pi 2에서 Linux Kernel Module 작성하기Raspberry Pi/Raspberry Pi 활용2015. 10. 17. 22:20
Table of Contents
반응형
먼저 라즈베리파이2에 설치되어 있는 커널의 버전을 확인해보고
아래 명령으로 같은 버전의 커널 헤더가 있는지 확인해봤습니다.
sudo apt-cache search linux-headers-$(uname -r)
하지만 버전에 맞는 커널 헤더가 저장소에 없어서 따로 다운로드 받아서 설치했습니다.
sudo apt-get update
sudo apt-get install gcc-4.7 cpp-4.7 dkms
sudo dpkg -i linux-headers-3.18.11-v7+_3.18.11-v7+-2_armhf.deb
설치 후.. 간단한 모듈 프로그램을 작성해서 테스트해봅니다.
작성한 모듈 프로그램 소스코드입니다.
- #include <linux/init.h>
- #include <linux/module.h>
- #include <linux/kernel.h>
- static int __init hello_init(void)
- {
- printk(KERN_INFO "Hello world\n");
- return 0;
- }
- static void __exit hello_exit(void)
- {
- printk(KERN_INFO "Goodbye world");
- }
- module_init(hello_init);
- module_exit(hello_exit);
컴파일시 필요한 Makefile입니다.
- obj-m+=hello.o
- ARCH :=arm
- PWD := $(shell pwd)
- all:
- make -C /lib/modules/$(shell uname -r)/build/ M=$(PWD) ARCH=$(ARCH) modules
- clean:
- make -C /lib/modules/$(shell uname -r)/build/ M=$(PWD) ARCH=$(ARCH) clean
이제 컴파일을 해봅니다.
실행 결과입니다.
반응형
'Raspberry Pi > Raspberry Pi 활용' 카테고리의 다른 글
python으로 raspberry pi 2 제어 - 1. LED (0) | 2015.11.10 |
---|---|
Raspberry Pi 2에서 character device driver 예제 테스트 (0) | 2015.10.17 |
Raspberry Pi 2에서 NFS 사용하여 리눅스 컴퓨터의 디렉토리 공유하기 (0) | 2015.09.28 |
raspberry pi 2에서 bcm2835 데이터 시트를 사용할 수 있다는데... (0) | 2015.09.15 |
리눅스 문자 디바이스 드라이버 예제 (0) | 2015.02.22 |