반응형

 

uname 명령으로 비글본 블랙에 설치된 리눅스 커널 버전을 확인합니다.

root@beaglebone:~# uname -a

Linux beaglebone 3.8.13-bone70 #1 SMP Fri Jan 23 02:15:42 UTC 2015 armv7l GNU/Linux

 

현재 설치된 커널과 일치하는 헤더파일을 설치해주었습니다.

root@beaglebone:~# apt-get update

root@beaglebone:~# apt-cache search linux-headers-$(uname -r)

linux-headers-3.8.13-bone70 - Linux kernel headers for 3.8.13-bone70 on armhf

root@beaglebone:~# apt-get install linux-headers-$(uname -r)

 

헤더파일은 다음 경로에 설치되네요..

root@beaglebone:~# cd /usr/src/linux-headers-3.8.13-bone70/

root@beaglebone:/usr/src/linux-headers-3.8.13-bone70# ls

Documentation arch firmware ipc net sound

Kconfig block fs kernel samples tools

Makefile crypto include lib scripts usr

Module.symvers drivers init mm security virt

 

간단한 모듈 프로그램을 hello.c라는 이름으로 작성해주었습니다.

  1. #include <linux/init.h>  
  2. #include <linux/module.h>  
  3. #include <linux/kernel.h>  
  4.     
  5. MODULE_LICENSE("GPL");  
  6. MODULE_AUTHOR("webnautes");  
  7. MODULE_DESCRIPTION("helloworld module.");  
  8.     
  9. static int __init mod_init(void){  
  10.    printk( KERN_INFO "[module_helloworld] Load a module\n");  
  11.    return 0;  
  12. }  
  13.     
  14. static void __exit mod_exit(void){  
  15.    printk(KERN_INFO "[module_helloworld] Unload a module\n");  
  16. }  
  17.     
  18.     
  19. module_init(mod_init);  
  20. module_exit(mod_exit);  

 

그리고 컴파일을 하기 위해서 Makefile도 작성해주었습니다.

obj-m+=hello.o

 

all:

    make -C /lib/modules/$(shell uname -r)/build/ M=$(PWD) modules

clean:

    make -C /lib/modules/$(shell uname -r)/build/ M=$(PWD) clean

 

 

Make 명령으로 컴파일을 하게 되면 hello.ko라는 파일이 생성됩니다.

 

insmod 명령으로 모듈을 커널에 올리면

root@beaglebone:~/hello# insmod hello.ko

 

dmesg 명령 실행해서 아래와 같은 메시지를 확인 할 수 있습니다.

[13059.841466] [module_helloworld] Load a module

 

마찬가지로 rmmod 명령으로 커널에서 모듈을 내리면

root@beaglebone:~/hello# rmmod hello.ko

 

dmesg 명령으로 아래와 같은 메시지를 확인 할 수 있습니다.

[13080.492742] [module_helloworld] Unload a module


반응형

문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.

도움이 되셨다면 토스아이디로 후원해주세요.
https://toss.me/momo2024


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts