免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3288 | 回复: 11
打印 上一主题 下一主题

[内核模块] ipt_ACCOUNT编译过程是? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-03-06 16:47 |只看该作者 |倒序浏览

论坛徽章:
0
2 [报告]
发表于 2013-03-06 21:28 |只看该作者
回复 1# 251300891


    求回复

论坛徽章:
0
3 [报告]
发表于 2013-03-07 19:23 |只看该作者

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
4 [报告]
发表于 2013-03-08 09:18 |只看该作者
回复 1# 251300891
下载下来,修改Makefile里面的kernel目录,make出相应的.ko内核模块。

libipt部分依赖iptables-devel,或者直接下载iptables源码,把libipt_ACCOUT.c放到里面编译,生成.so的用户态库。

   

论坛徽章:
0
5 [报告]
发表于 2013-03-12 16:43 |只看该作者
回复 4# 瀚海书香


    没有makefile啊,官网用./runme。是不是把.c放到内核源代码里面编(include头文件ipt_ACCOUNT.h),目录为/net/ipv4/netfilter/,在改Makefile,obj-m +=ipt_ACCOUNT.o
我之前增加xt_AAA模块放在/net/netfilter下,ipt_AAA放在/net/ipv4/netfilter/

论坛徽章:
0
6 [报告]
发表于 2013-03-12 16:50 |只看该作者
本帖最后由 251300891 于 2013-03-12 16:54 编辑

回复 3# wjlkoorey258


    看了, 受教了,现在3.6.0的模块都是xt_AAA.c,放在/net/netfilter下,比如xt_connmark.c
iptables -I OUTPUT -m connmark --mark 111 -j LOG,规则下完后,自动加载xt_connmark.ko

现在iptables会检测是否有加载模块,再动态加载/lib/xtables目录下的 libxt_connmark.so

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
7 [报告]
发表于 2013-03-12 17:30 |只看该作者
回复 5# 251300891
没有makefile啊,官网用./runme。是不是把.c放到内核源代码里面编(include头文件ipt_ACCOUNT.h),目录为/net/ipv4/netfilter/,在改Makefile,obj-m +=ipt_ACCOUNT.o
我之前增加xt_AAA模块放在/net/netfilter下,ipt_AAA放在/net/ipv4/netfilter/


如果对netfilter框架没有改动的话(不用添加patch),不建议放到kernel目录下编译,最好是单独编译成模块。这样编译的效率要高很多,尤其是需要频繁修改代码编译的情况。
   

论坛徽章:
0
8 [报告]
发表于 2013-03-13 07:39 |只看该作者
回复 7# 瀚海书香


    大牛,问题是我现在不知道runme怎么用,而且官网给你的代码,目录一层层的,还没有makefile,也没有configure来创建makefile,能否看看官网给的编译描述,网上有兄弟也遇到过这样的问题,急求编译独立模块过程(只想要insmod ipt_ACCOUT.ko)~

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
9 [报告]
发表于 2013-03-13 08:09 |只看该作者
回复 8# 251300891
   大牛,问题是我现在不知道runme怎么用,而且官网给你的代码,目录一层层的,还没有makefile,也没有configure来创建makefile,能否看看官网给的编译描述,网上有兄弟也遇到过这样的问题,急求编译独立模块过程(只想要insmod ipt_ACCOUT.ko)~


1. 提取出里面的ipt_ACCOUNT.h和ipt_ACCOUNT.c文件,编写Makefile文件
2. 修改ipt_ACCOUNT.c中的头文件引用
3.将linux-2.6.patch的改动添加到ipt_ACCOUNT.h中

具体改动见图片

   

论坛徽章:
0
10 [报告]
发表于 2013-03-15 09:39 |只看该作者
回复 9# 瀚海书香

果然厉害,修改开源的代码,重新写Makefile,还是要看linux-2.6.patch这个文件,diff看哪些代码需要手动加到头文件ipt_ACCOUNT.h。
非常感谢,大牛~


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP