커널모듈간의 심볼참조 질문
글쓴이: declspec / 작성시간: 목, 2012/05/17 - 11:55오후
우분투 10.04 에서
2개의 커널모듈을 컴파일해서 한놈의 export 한 함수를
다른커널모듈이 호출하는 간단한 테스트를 하려합니다.
아래는 심볼을 EXPORT 하는 모듈입니다.
그 아래는 이것을 호출하는 모듈입니다.
하지만 두번째 모듈을 컴파일하고 insmod 할때
undefind 심볼때문에 에러가나는데
왜 참조가 안되는걸까요??
그리고 인터넷에 보면 심볼등록이 됬는지
/proc/ksyms
/proc/kallsyms
를 통해 알수있다는데
우분투 10.04에서는 ksyms 같은경우는 아예없고
kallsyms 는 루트로도 액세스가 안되던데 이건 어떻게된걸까요...
조언 부탁합니다~!
#include<linux/module.h> #include<linux/init.h> void my_func(void); EXPORT_SYMBOL(my_func); int test_val=300; void my_func() { printk("This is my_func()\n "); printk("test_val = %d",test_val); printk("End of my_func()\n "); } int my_init(void) { printk("module loaded\n "); return 0; } void my_exit(void) { printk("module unloaded\n "); } module_init(my_init); module_exit(my_exit); MODULE_AUTHOR("LEARNING LINUX KERNEL"); MODULE_DESCRIPTION("EXPORTING SYMBOLS"); MODULE_LICENSE();
#include<linux/module.h> #include<linux/init.h> void my_func(); int my_init(void) { printk("call global symbol my_func...\n"); my_func(); return 0; } void my_exit(void) { printk("module unloaded2\n "); } module_init(my_init); module_exit(my_exit); MODULE_AUTHOR("LEARNING LINUX KERNEL"); MODULE_DESCRIPTION("EXPORTING SYMBOLS"); MODULE_LICENSE();
Forums:
댓글 달기