我加了MODULE_LICENSE("GPL")这句还是会出错: -1 Unknown symbol in module

汗晕倒 2010-10-18 10:54:59
RT
这个是为什么呢?????????
#ifndef __kernel__
#define __kernel__
#endif

#ifndef MODULE
#define MODULE
#endif

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



static struct dentry *root_entry, *total_pages_entry;
static u64 total_pages;

extern long vm_total_pages;
static int __init debugfs_test_init(void)
{
total_pages = (u64)vm_total_pages;
root_entry = debugfs_create_dir("debugfs-root", NULL);
if (!root_entry) {
printk("Fail to create proc dir: debugfs-root\n");
return 1;
}

total_pages_entry = debugfs_create_u64("total_pages", 0644, root_entry, &total_pages);

return 0;
}

static void __exit debugfs_test_exit(void)
{
debugfs_remove(total_pages_entry);
debugfs_remove(root_entry);
}

module_init(debugfs_test_init);
module_exit(debugfs_test_exit);
MODULE_LICENSE( "GPL" );

这个是网上的一段代码
...全文
572 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
deep_pro 2010-10-18
  • 打赏
  • 举报
回复
http://www.360doc.com/content/10/0628/12/36491_35718619.shtml 最后一段话

还是要导出符号vm_total_pages 才行啊
汗晕倒 2010-10-18
  • 打赏
  • 举报
回复
make的时候是提示 warning没有定义vm_total_pages这个变量
汗晕倒 2010-10-18
  • 打赏
  • 举报
回复
还是不行~~还是那样
deep_pro 2010-10-18
  • 打赏
  • 举报
回复
#include <linux/swap.h>
汗晕倒 2010-10-18
  • 打赏
  • 举报
回复
#Makefile 
obj-m += debugfs.o
CURRENT_PATH:=$(shell pwd)
LINUX_KERNEL:=$(shell uname -r)
LINUX_KERNEL_PATH := /lib/modules/`uname -r`/build
all:
make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) modules
clean:
make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) clean


这个是Makefile,我刚才查了下dmesg,提示[ 7361.113055] debugfs: Unknown symbol vm_total_pages
vm_total_pages这个变量定义在2.6.26/mm/vmscanf.c下,我怎么去应该到这个变量。
deep_pro 2010-10-18
  • 打赏
  • 举报
回复
lz倒是把错误信息沾全啊

编译模块用的MAkefile里,指定的内核头文件目录,从哪来的
汗晕倒 2010-10-18
  • 打赏
  • 举报
回复
要在内核里面加啊,我晕,先试试看。。
deep_pro 2010-10-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 shisi 的回复:]

加了也不行还是那样,警告没有定义vm_total_pages这个变量
[/Quote]

怎么加的啊,那是要在内核源码里加,加了之后再编译,作为当前内核运行
同时编译模块的makefile里LINUX_KERNEL_PATH 要指向这个新编译的内核目录
汗晕倒 2010-10-18
  • 打赏
  • 举报
回复
加了也不行还是那样,警告没有定义vm_total_pages这个变量

4,441

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧