PF_RING编译到内核实验

来源:互联网 发布:kindle电子书软件下载 编辑:程序博客网 时间:2024/05/22 18:49
这个链接包括PF_RING所需的文件和资料
http://blogimg.chinaunix.net/blog/upfile2/080607115132.rar
原下载地址在
http://www.ntop.org/PF_RING.html
我用文中所说的方法svn co https://svn.ntop.org/svn/ntop/trunk/PF_RING/
结果下载不下来,于是就手动下载下来。
用户使用时,可以先参看一下文档和说明,老外给的都是英文的。可参考kernel/README和UsersGuide.pdf以及内核源码目录下的说明文档。学会看文档是个好习惯。很多东西都没有人给你翻译,所以,只有辛苦点了。
下面是我的实验结果,我的系统是ubuntu的,当然很多编译内核需要的工具我都已经装好了,如果用户不知道先装什么,你可以参考一下这位大侠的
http://hi.baidu.com/wmsnet/blog/item/28c38caf58d62bc87dd92a61.html
用户需要根据自己的实际情况编译自己的内核,毕竟linux版本很多,我也没有实验过所有的系统。但是编译内核方法其实大致一样的。
然后将这个压缩包解压出来,命令行进PF_RING目录
可先修改mkpatch.sh的内容为你需要的内核名称,我喜欢这么用gedit mkpatch.sh&
VERSION=${VERSION:-2}
PATCHLEVEL=${PATCHLEVEL:-6}
SUBLEVEL=${SUBLEVEL:-25.3}
那么这下载的内核将为2.6.25.3的内核,具体的用户可参见www.kernel.org所能提供的内核版本。
运行bash mkpatch.sh
正确运行后补丁将自动被打好,生成一个叫workspace的目录,里面有个以-1-686-smp-PF_RING为结尾的目录,这就是打好PF_RING补丁的目录。进入这个目录。
make mrproper
cp /boot/config-`uname -r` ./                
包围uname -r的`在数字键1的左边,不是我们平时用的单引号
然后配置内核,我使用的是
make menuconfig
//配置内核时首先载入刚才拷过来的内核文件,然后保存为.config(这是默认的),我第一次就没有使用现有的内核配置,所以导致了很惨烈的结果,很多驱动程序都没有,有ring.ko这个模块,modprobe ring.ko可以,但是遗憾的是,以太网卡识别不了了,没有网卡要这个PF_RING有个P用。所以前人的经验还是多多参考的好。
  - Enable RTIRQ (if you use it)//这个补丁我没找到,所以选不了
   - Enable 'Code maturity level options'
             -> ' Prompt for development and/or incomplete code/drivers'
这个选项,我在2.6.25.3的默认配置中是没有的,改用2.6.22时是默认选上的。
然后在Networking下
  'Networking options'
           -> 'PF_RING'(选上这个)
           -> 'Socket Filtering'(没有这个,只有一个netfilter的,默认选上的)
对于内核其他的东西,如果你不知道它的意义,那就最好别动。
然后
make
make modules-install
make install
补充一下,ubuntu,不能这样编译,编译出的东西没有initrd,真是太垃圾了,也怪我没有去网上查一下编译内核的方法,下面是ubuntu的编译方法
参见http://blog.163.com/tribell_maggic/blog/static/93462152008029104422498/
这是我的结果
make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
fakeroot类似于sudo,我喜欢直接用root帐户,这样可以直接不用fakeroot。
完了后,cd ..返回到上级目录,发现有两个.deb的文件,
dpkg -i linux-image-xxx.deb
dpkg -i linux-headers-xxx.deb
xxx随你自己的自己内容而定。
然后将新内核加入到启动项上来,这个可以编辑/boot/grub/menu.lst,将它那个recovery的复制一下,然后再改成新内核的名字。其他系统用其他方式引导的比如lilo的我就不知道了。
另外贴上一个高手的帖子,我在国内就找到这一篇,真是感谢这位大侠。
http://blog.chinaunix.net/u1/39370/showart_389814.html
有关快速编译内核的帖子
google一下
快速编译Linux内核所需模块新方法
不知道原帖出自谁之手了,读者,自己搜,很多,不过都是一样的。
在一点,关于网卡的问题,我编译后内核网卡找不到了,ifconfig,只有lo,找到一帖子正好能解决我问题
http://blog.sina.com.cn/s/print_3f3422fd010086ky.html
我的modinfo pcnet32,是broadcom 440x的网卡,modinfo,很好用,modinfo ring,就可以查看ring的另一个名字,因为insmod直接找不到ring.ko的。
唉,中国的软件真是。。。唉,光是别人几年前的技术我们都要这么大费周折,做实际研究的学者还不够多。
另外一点,中国人搞linux的人是不是很少啊,基本上我碰到的很多问题只有在国外的网站上才能找到答案。唉,希望读者能够向你身边的人宣传下linux,毕竟中国用windows的人太多了。碰到开源的技术也不知道学习,可悲!
阅读(1286) | 评论(0) | 转发(0) |
0

上一篇:linux常用命令简单用法---chmod

下一篇:linux和windows的文件共享-使用ssh

相关热门文章
  • procfs(从0开始,内核态和用...
  • 本科毕业设计(论文)选题...
  • 基于uboot lzma压缩文件解压到...
  • FUSE: 用户空间文件系统, 在用...
  • 进程上下文VS中断上下文...
  • "没有找到COMRes.dll,应用程...
  • 如何给文件夹设置密码?...
  • 免费使用正版卡巴斯基-最新key...
  • 卡巴斯基激活码
  • 最新PUBWIN2007破解(QQ讨论群:...
  • ChinaUnix & ITPUB社区12周年...
  • ssh连接出现以下提示,求解...
  • 如何扩展MYSQL
  • 准备做一个大型门户,用户什么...
  • gbk or utf8
给主人留下些什么吧!~~