Module

Education/Device Driver 2009. 8. 26. 19:46

Major :  장치의 종류
장치의 Interface
어떤 장치 드라이버와 연관이 되어 있는지를 알려준다.
장치 드라이버를 찾아주는 역할
Minor:  실제 장치들에 대한 식별
실제 장치 구분


 
<hello_mod.c>

#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>

int hello_init(void)
{
printk("<0>Hello Module Loaded \n");
return 0;
}
void hello_exit(void)
{
printk("<0>Hello Module Unloaded\n");
return ;
}

module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");



<Makefile>

obj := hello_mod.o

KDIR := /lib/modules/$(shell uname -r)/bild               // directory module compile -> 모듈 설치
lib/moudles/ 해당 커널 버젼 Directory
PWD := $(shell pwd)

all :
$(MAKE) -C (KIDR)SUBDIRS=$(PWD)modules
clean:
rm -f *.ko
rm -f *.mod.*
rm -f Mod.*
rm -f *.o


 
#make

# insmod hello.ko
# lsmod | grep hello
# rmmod hello_mod
#lsmod |grep hello
dmesg | tail -2



Module shell Commands

1) insmod (insert module) 

2) rmmod (removemodule)

3) lsmod  (list of module)

4) modprobe ( dependency of module)
- depmod에 위해서 생성
- module 적재와 관련된 명령어
5) depmod 
- module's dependency 를 구축하기 위해 사용하는 모듈

 


 
Posted by 초상큼발랄
l