zoukankan      html  css  js  c++  java
  • Running OLSR on Android Phones

    http://www.olsr.org/?q=olsr_on_android


    Android App

    As part of the Commotion project, there is an Android app being developed to make it easy to install and run OLSR mesh networking on Android devices. You can follow the automated builds here:
    https://build.safermobile.org/job/commotion-android

    Or you can download the successful builds here:
    https://guardianproject.info/builds/OLSRMeshTether/

    Building olsrd for Android

    In order to build olsrd and the plugins for Android, you will need to download the free (as in beer, and mostly as in speech) Android NDK (the pud plugin requires NDK r8, everything else you can build with r6 or maybe earlier). Once you have that installed, run this in your terminal:

    make OS=android NDK_BASE=/path/to/your/android-ndk-r8 build_all

    Then you can find olsrd in the root, and the plugin files in lib/*/*.so*

    Getting ad-hoc mode on Android

    In order to run OLSR mesh networking, you need to first have IP connectivity between first-hop nodes. Using olsrd, that is done using ad-hoc wifi networking to associate the nodes into a single network, then using a common IP range and netmask between all the nodes. So usually by default, each node will use the same IP range with large netmask like 255.255.0.0 (/16) or 255.255.255.0 (/24). Then once the nodes talk to each other, they can get the specific routes to each node, overriding the large netmask.

    That means that the first thing that needs to happen is getting ad-hoc mode setup. Android officially does not support Ad-hoc mode, so we have to resort to command line hacking. This is unfortunately different between different devices and ROMS.

    The german page android-hilfe.de describes quite nicely how to get ad-hoc mode running on the Samsung Galaxy.
    For the non-german speakers here is a summary:

    The trick is to use the wpa-supplication settings file to force the driver to go to ad-hoc mode. By the default the tiwlan cmd line utility does not understand ad-hoc mode.

    1. turn on Wi-Fi and start the adb shell
    2. go to wpa_cli command shell:
      su -c "/system/bin/wpa_cli -p /data/misc/wifi/"
    3. scan_results shows you the existing networks.
    4. add_network add a new network. Shows a number. Here the number is "2"
    5. set_network 2 mode 1
      set_network 2 ssid "olsr.freifunk.net"
      set_network 2 bssid 02:ca:ff:ee:ba:be
      set_network 2 frequency 2457
      set_network 2 key_mgmt NONE
      enable_network 2
    6. ap_scan 2
    7. select_network 2
    8. if this did not work, then try again: ap_scan 2
    9. This is now what you get:
      su -c "/system/bin/wpa_cli -p /data/misc/wifi/"
      wpa_cli v0.5.10                                  
      Copyright (c) 2004-2008, Jouni Malinen  and contributors
      
      This program is free software. You can distribute it and/or modify it
      under the terms of the GNU General Public License version 2.         
      
      Alternatively, this software may be distributed under the terms of the
      BSD license. See README and COPYING for more details.                 
      
      
      Selected interface 'eth0'
      
      Interactive mode
      
      > 
      <2>CTRL-EVENT-SCAN-RESULTS  Ready
      scan_results                     
      bssid / frequency / signal level / flags / ssid
      00:16:38:e6:38:31       2412    -49     [WPA2-PSK-TKIP+CCMP]    Sven-Ola
      00:16:38:e6:38:31       2412    -50     [WPA2-PSK-TKIP+CCMP]    Sven-Ola
      02:ca:ff:ee:ba:be       2457    -40     [IBSS]          olsr.freifunk.net
      >                                                                        
      <2>CTRL-EVENT-SCAN-RESULTS  Ready                                        
      add_network                                                              
      2                                                                        
      >                                                                        
      <2>CTRL-EVENT-SCAN-RESULTS  Ready                                        
      set_network 2 mode 1                                                     
      OK                                                                       
      > set_network 2 ssid "olsr.freifunk.net"                                 
      OK                                                                       
      > set_network 2 bssid 02:ca:ff:ee:ba:be                                  
      OK                                                                       
      > set_network 2 frequency 2457                                           
      OK                                                                       
      > set_network 2 key_mgmt NONE                                            
      OK                                                                       
      > enable_network 2                                                       
      OK                                                                       
      > ap_scan 2                                                              
      <2>CTRL-EVENT-SCAN-RESULTS  Ready                                        
      OK                                                                       
      > select_network 2                                                       
      OK                                                                       
      <2>CTRL-EVENT-STATE-CHANGE id=1 state=0                                  
      >
      <2>CTRL-EVENT-DISCONNECTED - Disconnect event - remove keys
      <2>CTRL-EVENT-STATE-CHANGE id=-1 state=0
      <2>CTRL-EVENT-STATE-CHANGE id=-1 state=2
      <2>Trying to associate with SSID 'olsr.freifunk.net'
      <2>CTRL-EVENT-STATE-CHANGE id=-1 state=3
      <2>CTRL-EVENT-STATE-CHANGE id=2 state=4
      <2>Associated with 02:ca:ff:ee:ba:be
      <2>CTRL-EVENT-STATE-CHANGE id=2 state=7
      <2>CTRL-EVENT-CONNECTED - Connection to 02:ca:ff:ee:ba:be completed (reauth) [id=2 id_str=]
      
      <2>CTRL-EVENT-SCAN-RESULTS  Ready
      
      <2>CTRL-EVENT-STATE-CHANGE id=2 state=8
      <2>CTRL-EVENT-DISCONNECTED - Disconnect event - remove keys
      <2>CTRL-EVENT-STATE-CHANGE id=-1 state=8
      
      <2>CTRL-EVENT-STATE-CHANGE id=-1 state=2
      
      <2>CTRL-EVENT-SCAN-RESULTS  Ready
      
      <2>CTRL-EVENT-SCAN-RESULTS  Ready
      



    Installing Olsr

    For the Samsung Galaxy you can use the following file: pre compiled samsung android version of olsrd.
    You might have to edit the data/local/etc/olsrd.conf file to suite your needs.

    Starting olsr

    From the Terminal or adb shell: olsrd -f /data/local/etc/olsrd.conf -d 1. You should see some routes in your kernel routing table if you are connected to an ad-hoc network which has other olsr nodes.

    Credits: thanks to Sven-Ola Tücke for finding all this out!


    <script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
    阅读(124) | 评论(0) | 转发(0) |
    给主人留下些什么吧!~~
    评论热议
  • 相关阅读:
    什么是动态链接库
    <<TCP/IP高效编程>>读书笔记
    C++ 函数
    我的vim配置
    FastReport4.6程序员手册_翻译
    DUnit研究初步
    ADO BUG之'无法为更新定位行....' 解决之道
    极限编程的集成测试工具Dunit
    总结
    项目管理检查清单项目启动
  • 原文地址:https://www.cnblogs.com/ztguang/p/12649194.html
Copyright © 2011-2022 走看看