Chinaunix首页 | 论坛 | 博客
  • 博客访问: 401065
  • 博文数量: 77
  • 博客积分: 3149
  • 博客等级: 中校
  • 技术积分: 828
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-25 11:48
文章存档

2012年(5)

2011年(2)

2010年(11)

2009年(44)

2008年(15)

我的朋友

分类: LINUX

2009-03-18 16:30:55

Zebra的各种编译

Zebralinux环境下很好的一款路由软件,完全仿照Cisco公司的路由器开发。笔者对网络略有研究,目前专攻嵌入式,刚好,做一个小型的嵌入式路由器正好把两者融合在了一起。

       遗憾的是,很多买到的很多开发板都只有一个网口,而作为路由器,一般需要2个(含)以上。笔者正在做一块基于arm9的双网卡开发板,正在设计原理图,还需要一段时间。

       zebra下载地址:   目前的最新版本是zebra-0.95.tar.gz,这是2005年的版本,有四年多没有更新了。

 

1PC上编译

       编译之前,需要了解一些注意事项,首先要安装GCCaclocalautoconfautomake等,有人说,这个还用说吗?有些人在网上提问,其中遇到的问题就有automake没安装造成的。

       另外,由于zebra软件的开发时间离现在很远了,当时的gcc编译器版本还不高,对语法结构、数据类型检查还不是很严格,如果用现在的最新的gcc版本去编译,会出现大量的警告、甚至错误,所以,建议用低版本去编译,如果你有时间,也可以逐一去修改原代码,这是一个漫长的过程。如果做产品,值得这样做。

       笔者前后在fedora core 5red hat linux 9上实验,前者编译时报错,后者编译通过。

fedora core 5下的gcc版本

[root@localhost /]# gcc -v

使用内建: specs

配置为:i386-redhat-linux

配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=i386-redhat-linux

线程模型:posix

gcc 版本 4.1.0 20060304 (Red Hat 4.1.0-3)

 

red hat linux 9下的gcc版本

[root@srv3 sbin]# gcc -v

Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.2.2/specs

Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --host=i386-redhat-linux

Thread model: posix

gcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5)

 

具体流程很简单

 

shell> tar xzf zebra-0.92a.tar.gz

  shell> cd zebra-0.92a

  shell> ./configure  --prefix=/routing

  shell> make

shell> make install

 

routing目录下将出现sbinetc 等几个目录,说明编译成功,至于如何使用,请参考网上的其他文档,参考之前最好对网络及路由略有了解。

2ARM上编译

同样,以下的编译也不能在4.0以上的gcc以上版本上编译,报错。

(摘自http://blog.chinaunix.net/u2/65122/showart.php?id=1226474

[root@vm-dev router]# tar xzf zebra-0.94a.tar.gz
[root@vm-dev router]# cd zebra-0.94
[root@vm-dev zebra-0.94]# ./configure --host=arm-linux --prefix=/routing

make

make install
[root@vm-dev zebra-0.94]# 

[root@localhost sbin]# arm-linux-gcc -v

Reading specs from /usr/local/arm/3.3.2/lib/gcc-lib/arm-linux/3.3.2/specs

Configured with: ../gcc-3.3.2/configure --target=arm-linux --with-cpu=strongarm1100 --prefix=/usr/local/arm/3.3.2 i686-pc-linux-gnu --with-headers=/work/kernel.h3900/include --enable-threads=pthreads --enable-shared --enable-static --enable-languages=c,c++

Thread model: posix

gcc version 3.3.2

 

3MIPS上编译

[root@localhost sbin]# mipsel-linux-gcc -v

Reading specs from /Cross/target/local/lib/gcc-lib/mipsel-linux/2.96/specs

gcc version 2.96 20000731 (Red Hat Linux 7.3 2.96-113.2) neon

 

[root@vm-dev router]# tar xzf zebra-0.94a.tar.gz
[root@vm-dev router]# cd zebra-0.94
[root@vm-dev zebra-0.94]#
./configure --host=mipsel-linux   --prefix=/routing

make

make install
[root@vm-dev zebra-0.94]# 

 

阅读(4000) | 评论(6) | 转发(2) |
给主人留下些什么吧!~~

chinaunix网友2010-05-04 14:51:38

您好!我现在想用zebra做个产品,但是在移植的中不知道那些文件该移植,那些文件不需要,我只需要做普通的rip 和ospf,请问我该移植那些文件到板子中?

chinaunix网友2009-06-12 18:03:54

Linux中如何自动启动服务收藏 linux自动启动服务很简单,最简单的是把启动命令放到/etc/rc.d/rc.local文件里这样就可以每次启动的时候自动启动服务了,例如对于 apache,编译好apache后会在安装目录的bin下生成apachectl文件,这是个启动教本,我们只需要把这个命令加到rc.local里就 可以了 echo /usr/local/apache/bin/apachectl >> /etc/rc.d/rc.local

chinaunix网友2009-06-11 22:00:23

请教一下徐老师,通过 ./configure --host=arm-linux --prefix=/routing 进行交叉编译后,我把编译后/routging 文件夹下etc和sbin 中的文件download 到arm板子中,但如何使arm板linux系统启动时自动配置zebra 中的路由协议(在PC机上是通过telnet 127.0.0.1 2601/2去配置)?谢谢!

chinaunix网友2009-06-10 14:58:26

谢谢回答!

chinaunix网友2009-06-09 22:52:55

/routing下的所有文件