Open GoogleCodeExporter opened 9 years ago
就算是用http://code.google.com/p/napt66/issues/detail?id=26的方法编译��
�模块也是会导致自动重启。
究竟加载napt66.ko有些什么前提条件?
Original comment by aurora6...@gmail.com
on 19 Sep 2011 at 5:39
编译内核模块需要对应内核的源代码,
> 双网卡x86主机刷官方rc5,uname -r查到内核是2.6.32.27
所以你需要这个版本的内核源码才能编译出匹配的内核模块��
�
Original comment by Mzwei...@gmail.com
on 19 Sep 2011 at 10:51
[deleted comment]
[deleted comment]
我知道要相应的内核源码,所以我是用svn co
-r27608来获取openwrt源码的,这样得到的源码里面的内核版本和
uname
-r看到的是一致的~我再描述一下我的思路和实践吧,麻烦你
再帮忙看看,感谢~
(我按照issue26的方法编译了x86的napt66.ko):
1、编译一次trunk,编译后生成/trunk/build_dir/(相应的平台目录
)/linux-2.6.39.4,这个是交叉编译后的linux内核源码,其实就是
makefile中“KDIR
:=”后面应该填的路径吧?(还是我的想法错了?)
2、trunk/staging_dir/(相应的平台)/bin/xxxxx-openwrt-linux-这个就是
工具链,也就是“ARCH=xxxx
CROSS_COMPILE=”后面应该填写的路径。
3、按照上面得到的路径,修改napt66的makefile,然后make就可以�
��到napt66.ko了
这样得到的ko,上传到openwrt后,insmod就会重启(也就是帖子��
�描述的问题)
=====================================================================
我的makefile(编译openwrt-x86平台的napt66.ko,这个是trunk的,和��
�楼说的内核版本不同)
# Makefile under 2.6.25
ifneq ($(KERNELRELEASE),)
#kbuild syntax. dependency relationshsip of files and target modules are listed
here.
obj-m := napt66.o
napt66-objs := napt66_main.o napt66_conntrack.o napt66_nat.o
napt66_hash_table.o napt66_ftp_alg.o
else
PWD := $(shell pwd)
KVER ?= $(shell uname -r)
KDIR := /media/STsuse/openwrt/trunk/build_dir/linux-x86_generic/linux-2.6.39.4
all:
$(MAKE) -C $(KDIR) M=$(PWD) modules ARCH=x86 CROSS_COMPILE=/media/STsuse/openwrt/trunk/staging_dir/toolchain-i386_gcc-4.5-linaro_uClibc-0.9.32/bin/i486-openwrt-linux-
clean:
rm -rf .*.cmd *.o *.mod.c *.ko .tmp_versions *.symvers *.order
endif
===========================================================================
Original comment by aurora6...@gmail.com
on 25 Sep 2011 at 6:04
我猜测是NAPT66模块的缺陷导致与新内核的兼容性问题。NAPT66��
�核心部分是去年在UBUNTU10.04中开发的,我不敢保证跟现在的Li
nux内核完美兼容。当时赶时间,甚至没有考虑地址转换表资��
�的同步与互斥,也许是一个隐患,欢迎热心网友贡献代码修�
��这个问题。
Original comment by Mzwei...@gmail.com
on 25 Sep 2011 at 2:15
再反馈:
1、在backfire rc5的固件上面重新操作了一次,平台Broadcom
BCM6358
,内核2.6.32.27,是用issue26的方法编译得到napt66.ko,这次没有�
��装ip6tables,直接开启ipv6转发然后insmod napt66
wan_if=eth1.1,这次成功了,没有出问题。可能之前的情况是因�
��编译的模块和固件太多了,上传的时候没有分清楚内核版本
,所以插入的时候才会down机。
2、我在centos
6上面也按照wiki的说明编译得到napt66.ko,可以正常工作,但是
要注意ip6tables的规则,我是直接ip6tables -F && service ip6tables
save。
3、ubuntu10.10 server上面也没有问题,但是ubuntu11.04
server需要安装linux-headers才能编译,我apt-get安装了对应headers��
�能够编译出ko,但是加载后会死机,这里应该是这个版本的he
aders的兼容性问题。
4、综上,napt66对backfire的支持还是很好的啦~而且在我的ubunt
u10.10 PC上面和centos
server上面都能正常工作。至于新内核的兼容性问题就等各位��
�手继续完善了。
我是一只做了很多试验的菜鸟,以上经验希望对大家有帮助��
�
Original comment by aurora6...@gmail.com
on 27 Sep 2011 at 5:43
Original issue reported on code.google.com by
aurora6...@gmail.com
on 19 Sep 2011 at 5:23