全部博文(77)
分类: LINUX
2009-03-18 16:30:55
Zebra的各种编译
Zebra是linux环境下很好的一款路由软件,完全仿照Cisco公司的路由器开发。笔者对网络略有研究,目前专攻嵌入式,刚好,做一个小型的嵌入式路由器正好把两者融合在了一起。
遗憾的是,很多买到的很多开发板都只有一个网口,而作为路由器,一般需要2个(含)以上。笔者正在做一块基于arm9的双网卡开发板,正在设计原理图,还需要一段时间。
zebra下载地址: 目前的最新版本是zebra-0.95.tar.gz,这是2005年的版本,有四年多没有更新了。
(1)PC上编译
编译之前,需要了解一些注意事项,首先要安装GCC,aclocal,autoconf,automake等,有人说,这个还用说吗?有些人在网上提问,其中遇到的问题就有automake没安装造成的。
另外,由于zebra软件的开发时间离现在很远了,当时的gcc编译器版本还不高,对语法结构、数据类型检查还不是很严格,如果用现在的最新的gcc版本去编译,会出现大量的警告、甚至错误,所以,建议用低版本去编译,如果你有时间,也可以逐一去修改原代码,这是一个漫长的过程。如果做产品,值得这样做。
笔者前后在fedora core 5和red 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-
线程模型:posix
gcc 版本 4.1.0 20060304 (Red Hat
red hat linux 9下的gcc版本
[root@srv3 sbin]# gcc -v
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
具体流程很简单
shell> tar xzf zebra
shell> cd zebra
shell> ./configure --prefix=/routing
shell> make
shell> make install
在routing目录下将出现sbin及etc 等几个目录,说明编译成功,至于如何使用,请参考网上的其他文档,参考之前最好对网络及路由略有了解。
(2)ARM上编译
同样,以下的编译也不能在4.0以上的gcc以上版本上编译,报错。
(摘自http://blog.chinaunix.net/u2/65122/showart.php?id=1226474)
[root@vm-dev router]# tar xzf zebra
[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
Configured with: ../gcc-
Thread model: posix
gcc version
(3)MIPS上编译
[root@localhost sbin]# mipsel-linux-gcc -v
gcc version 2.96 20000731 (Red Hat Linux 7.3 2.96-113.2) neon
[root@vm-dev router]# tar xzf zebra
[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]#
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去配置)?谢谢!