当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 1 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : insmod: Unknown symbol in module or no symbol version for
帖子发表于 : 2011-04-29 9:41 

注册: 2011-04-29 9:30
帖子: 6
送出感谢: 0 次
接收感谢: 0 次
在unbuntu 2.6.28-11的系统下。
我做了两个模块:mod1.mod2.
mod1一个func1作为全局函数:EXPORT_SYMBOL(func1);
mod2使用了mod1一个函数func1.
先insmod mod1.ko是没有问题。在cat /proc/kallsyms | grep "mod1" 或是 lsmod | grep "mod1" 都有mod1的信息。
但是在此基础上insmod mod2.ko时。
会提示:-1 Unknown symbol in module。
tail /var/log/messages 命令后,在日志中会有:no symbol version for func1 的提示。

但在red hat 下的以上操作,没有问题。是可以成功的。
请高人指点。

以下是主要代码:
mod1.c
#include<linux/init.h>
#include<linux/module.h>
#include<linux/kernel.h>

static int func1(void)
{
printk("In Func: %s...\n",__func__);
return 0;
}

EXPORT_SYMBOL(func1);

static int __init hello_init(void)
{
printk("Module 1,Init!\n");
return 0;
}

static void __exit hello_exit(void)
{
printk("Module 1,Exit!\n");
}

module_init(hello_init);
module_exit(hello_exit);


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

static int func2(void)
{
extern int func1(void);
func1();
printk("In Func: %s...\n",__func__);
return 0;
}

static int __init hello_init(void)
{
printk("Module 2,Init!\n");
func2();
return 0;
}

static void __exit hello_exit(void)
{
printk("Module 2,Exit!\n");
}

module_init(hello_init);
module_exit(hello_exit);

################################################################
Makefile
ifneq ($(KERNELRELEASE),)
obj-m := XXXX.o
else
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)

default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules

clean:
rm -rf Module.symvers *.ko *.o *.mod.c .*.cmd .tmp_versions

endif
附件:
截图1304041540.jpg
截图1304041540.jpg [ 77.53 KiB | 被浏览 974 次 ]

附件:
截图1304041482.jpg
截图1304041482.jpg [ 17.6 KiB | 被浏览 974 次 ]



页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 1 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译