Wednesday 23 January 2013

Compiling and executing OLSR for Android on Ubuntu 12.04

Hi all,

This is another start to yet another problem that i have faced during my thesis and this time is making OLSR run over an android Phone,
To achieve the said task i want you to follow the following steps carefully and in the end you will be running the OLSR protocol over an android phone.
The OS of android doesnt matter wether it be GB or ICS or JB.
This method is compatible for all ( Cross Checked )
The pre-requistes are listed as follows,
1. bison
2. flex
3. libc6
4. Android SDK
5. Android NDK
6. git-core

Download the SDK and NDK, untar them to /opt folder in the base directory otherwise you are gonna go thru lot of errors.

ok lets get down to business,

open terminal and start like this,

$sudo su
# apt-get install bison flex libc6 git-core
#git clone git://olsr.org/olsrd.git
#cd olsrd
#cd make
# gedit makefile.android

Edit it from these places -

NDK_BASE ?= /opt/android-ndk

Place the location of NDK here on this line - make it match your untarred location other wise u r gonna go thru lot of issues.

save it close it and go back to terminal

#make OS=android DEBUG=0 NDK_BASE=/opt/android-ndk
#sudo make OS=android DEBUG=0 install_all

Once this is done, the hunting for created files start -

Im listing down the location and files u need to place them in a separate folder of whatever name you like -

/bin/sgw_policy_routing_setup.sh
/bin/olsrd
/etc/olsrd.conf
/lib/ ( there are altogether 18 files that get created - sort them according to date modified, they shud cluster together because of the same time and same date creation and copy them to whatever desired folder you want )
/usr/share/doc/olsrd
/usr/share/man/man5
/usr/share/man/man8

now thats done put them together in some place more easily findable,

now push these files into the android phone

you will need a root explorer to do that with root privileges

put the contents of the bin folder to the /system/bin of the phone
put the contents of the etc folder to the /system/etc of the phone
like wise for the next two as well where lib contents goes to /system/libs and contents of /user/share goes to /system/usr/share

that's it - now u need to modify ur olsrd.conf file to suit the phone

open terminal emulator - its a small application available freely on the market

and start doing this,

$su
#netcfg

This will list down your interface which is responsible for wifi connectivity

i used this on three devices separately , im listing there names and the interface found and modified the olsrd.conf accordingly to adjust to your situation

1. Samsung Galaxy S2 - eth0 ( running Gingerbread 2.3.5 )
2. Samsung Galaxy Y - eth0 ( running Gingerbread 2.3.6 )
3. Ainol Tab Aurora II - wlan0 ( running IceCreamSandwich 4.0.3 )

Once the olsrd.conf is properly edited according to ur device just go back to terminal emulator and enter

#olsrd

Thats it - the olsrd will be up and running.

No comments:

Post a Comment