----my1.c-----
#ifndef __KERNEL__
# define __KERNEL__
#endif
#ifndef MODULE
# define MODULE
#endif
#include
#include
#include
int a = 2012;
EXPORT_SYMBOL(a);
int __init my_init(void)
{
printk("Hello %d!\n",a);
return 0;
}
void __exit my_exit(void)
{
printk("Hello Exit!\n");
}
module_init(my_init);
module_exit(my_exit);
----my2.c-----
#ifndef __KERNEL__
# define __KERNEL__
#endif
#ifndef MODULE
# define MODULE
#endif
#include
#include
#include
extern int a;
int __init my_init(void)
{
printk("This is mod2 ,Hello %d!\n",a);
return 0;
}
void __exit my_exit(void)
{
printk("mod2 Exit!\n");
}
module_init(my_init);
module_exit(my_exit);
说明:
在my1.c中导出的符号a,可以在my2.c中访问。
注意:
1 修改module后需要先rmmod后再insmod。
2 需要先insmod my1.ko 再insmod my2.ko
3 insmod my2.ko时提示错误Unknown symbol in module,请确认my1.ko已经insmod了。
我在修改了my1.c后,只make了而忘了insmod一直出错。
阅读(1761) | 评论(0) | 转发(0) |