将olsr路由协议移植到android上

olsrd是ad hoc网络中的一种路由协议,本文针对android1.5的SDK来实现的,其它版本的未试过。

准备工作:

从olsr.org上get olsrd-0.5.6-r7代码

安装好android1.5 NDK

 

开始:

1:在make/Makefile.android中设置NDK、NDK_ARCH路径:

如:
NDK = /home/zhongping/work/tools/android-ndk-1.6_r1
NDK_ARCH = $(NDK)/build/platforms/android-4/arch-arm

 

2) 在make/Makefile.android中设置 CROSS_COMPILE and CC:

因为我之前已经设置过了NDK NDK_ARCH,且我用的是android1.5的NDK,所以此步不用操作,其它版本的NDK中,路径

不一样,需要更改。

 

3)在make/Makefile.android的第48行左右,添加如下行<重要>:
CFLAGS += -D'setbuf(a,b)='

如:
CFLAGS += -D'setbuf(a,b)='

CFLAGS += -I$(NDK_ARCH)/usr/include

这样做的目的是由于android中setbuf()这条命令执行会导致olsrd目标文件运行时中断,这里将使olsrd中与setbuf相关的地方

屏蔽掉,更深层的原因我也不了解。应该也可以直接在olsrd的代码中屏蔽掉setbuf,调用的地方不多,有时间可试一试

 

4) 在 Makefile.inc中设置DESTDIR ?= ./data         //欲将生成的有效文件存放的路径
5) make OS=android DEBUG=1 build_all
6) make install_all //将目标文件拷贝至./data
 可以看到如下文件:

./data/usr/sbin

./data/usr/lib

./data/usr/share
./data/etc/olsrd.conf
 
7) 修改olsrd.conf <重要:这个地方的设置很重要,需要设置的地方挺多的,什么时候有时间我再把我的设置贴上来>:


8) Push all the files in ./data after compiled to G1:
./adb push ./data /data/local/olsr_test

9)开启ad hoc网络

10) 运行 olsrd:
./adb shell
cd /data/local/olsr_test
export OLSRD_ROOT=/data/local/olsr_test
export LD_LIBRARY_PATH=$OLSRD_ROOT/usr/lib:$LD_LIBRARY_PATH
./usr/sbin/olsrd -f ./etc/olsrd.conf


完成。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值