内核模块编译问题

C、C++和Java语言
回复
头像
qlhn
帖子: 736
注册时间: 2006-08-25 10:37
送出感谢: 0
接收感谢: 0
联系:

内核模块编译问题

#1

帖子 qlhn » 2008-10-14 16:35

在下最近在研究netlink(即内核与用户空间的通信)问题。在网上找到了一篇名为《Linux 系统内核空间与用户空间通信的实现与分析》的文章,里面有一个例子。于是下载了代码,着手编译。下面是makefile的内容:(本人是这方面的新手,请不要见笑)

obj-m :=imp2_k.o
imp2_k.o:imp2.h imp2_k.c

下面则是make的过程:

$make -C /usr/src/linux-headers-2.6.24-16-generic M=$(pwd) modules
/home/zz/c/netlink/imp2/imp2_k.c: 在函数‘kernel_receive’中:
/home/zz/c/netlink/imp2/imp2_k.c:43: 错误: ‘struct sock’没有名为‘receive_queue’的成员
/home/zz/c/netlink/imp2/imp2_k.c:56: 警告: 传递参数 1 (属于‘_write_lock_bh’)时在不兼容的指针类型间转换
/home/zz/c/netlink/imp2/imp2_k.c:58: 警告: 传递参数 1 (属于‘_write_unlock_bh’)时在不兼容的指针类型间转换
/home/zz/c/netlink/imp2/imp2_k.c:62: 警告: 传递参数 1 (属于‘_write_lock_bh’)时在不兼容的指针类型间转换
/home/zz/c/netlink/imp2/imp2_k.c:65: 警告: 传递参数 1 (属于‘_write_unlock_bh’)时在不兼容的指针类型间转换
/home/zz/c/netlink/imp2/imp2_k.c:73: 错误: ‘struct sock’没有名为‘receive_queue’的成员
/home/zz/c/netlink/imp2/imp2_k.c: 在函数‘send_to_user’中:
/home/zz/c/netlink/imp2/imp2_k.c:98: 错误: ‘struct netlink_skb_parms’没有名为‘dst_groups’的成员
/home/zz/c/netlink/imp2/imp2_k.c: 在函数‘get_icmp’中:
/home/zz/c/netlink/imp2/imp2_k.c:118: 错误: ‘struct sk_buff’没有名为‘nh’的成员
/home/zz/c/netlink/imp2/imp2_k.c: 在文件层:
/home/zz/c/netlink/imp2/imp2_k.c:140: 警告: 从不兼容的指针类型初始化
/home/zz/c/netlink/imp2/imp2_k.c: 在函数‘init’中:
/home/zz/c/netlink/imp2/imp2_k.c:150: 警告: 传递参数 1 (属于‘netlink_kernel_create’)时将整数赋给指针,未作类型转换
/home/zz/c/netlink/imp2/imp2_k.c:150: 警告: 传递参数 2 (属于‘netlink_kernel_create’)时将指针赋给整数,未作类型转换
/home/zz/c/netlink/imp2/imp2_k.c:150: 错误: 提供给函数‘netlink_kernel_create’的实参太少
/home/zz/c/netlink/imp2/imp2_k.c: 在函数‘fini’中:
/home/zz/c/netlink/imp2/imp2_k.c:164: 错误: ‘struct sock’没有名为‘socket’的成员
make[1]: *** [/home/zz/c/netlink/imp2/imp2_k.o] 错误 1
make: *** [_module_/home/zz/c/netlink/imp2] 错误 2


我自觉头文件放置的目录应该没错(/usr/src/linux-headers-2.6.24-16-generic),我当前使用的就是这个内核版本。是不是内核版本不兼容?我看他那篇文章是2004年写的,难道编译这个程序非要用2。4内核不成?望高手们提出解决办法。
头像
windwiny
帖子: 2254
注册时间: 2007-03-13 17:26
送出感谢: 0
接收感谢: 1 次

Re: 内核模块编译问题

#2

帖子 windwiny » 2008-10-14 18:03

编译内核make 要设相关的宏


搜索
有回过好几个Make
头像
qlhn
帖子: 736
注册时间: 2006-08-25 10:37
送出感谢: 0
接收感谢: 0
联系:

Re: 内核模块编译问题

#3

帖子 qlhn » 2008-10-16 14:02

不太明白,能不能说具体点?
回复

回到 “C/C++/Java”