How To Install
From GeoSharing
Line 1: | Line 1: | ||
- | This installation manual is divided into two parts. The first part presents preliminary configurations that must be done before starting any development on the Opemoko Neo FreeRunner (GTA02). The second part describes the technical steps to follow in order to install the GeoSharing project on the Neo FreeRunner. | + | This installation manual is divided into two parts. The first part presents preliminary configurations that must be done before starting any development on the [[FreeRunner|Opemoko Neo FreeRunner (GTA02)]]. The second part describes the technical steps to follow in order to install the GeoSharing project on the [[FreeRunner|Neo FreeRunner]]. |
All those steps have been tested on a Neo FreeRunner and on a laptop running Ubuntu 10.10 with access to root privileges. | All those steps have been tested on a Neo FreeRunner and on a laptop running Ubuntu 10.10 with access to root privileges. | ||
Line 22: | Line 22: | ||
The easiest way to set up the connection with the Openmoko is to create a new connection (called Openmoko here) in the wired networks tab of the computer network manager. For this new connection, choose a static (manual) IP address: '''192.168.0.200'''. | The easiest way to set up the connection with the Openmoko is to create a new connection (called Openmoko here) in the wired networks tab of the computer network manager. For this new connection, choose a static (manual) IP address: '''192.168.0.200'''. | ||
+ | <div style="text-align: center;"> | ||
[[File:Screenshot-Editing Openmoko.png|350px]] | [[File:Screenshot-Editing Openmoko.png|350px]] | ||
+ | </div> | ||
==== Without the network manager ==== | ==== Without the network manager ==== | ||
Line 58: | Line 60: | ||
3) The application is now running and the interface looks like: | 3) The application is now running and the interface looks like: | ||
- | [[File:Neotool-1.png| | + | <div style="text-align: center;"> |
+ | [[File:Neotool-1.png|350px]] | ||
+ | </div> | ||
4) On the computer, download the latest version of the SHR operating system. The version of SHR used to realise this manual is the version SHR-testing 2.6.29-oe11. Images of the SHR operating system can be found at http://build.shr-project.org/shr-testing/images/om-gta02/. Two files are required: | 4) On the computer, download the latest version of the SHR operating system. The version of SHR used to realise this manual is the version SHR-testing 2.6.29-oe11. Images of the SHR operating system can be found at http://build.shr-project.org/shr-testing/images/om-gta02/. Two files are required: | ||
Line 66: | Line 70: | ||
5) In neoTool (which is running on the computer), select the second item '''Flash your Neo''' and click '''OK'''. The interface looks like: | 5) In neoTool (which is running on the computer), select the second item '''Flash your Neo''' and click '''OK'''. The interface looks like: | ||
- | [[File:Neotool-2.png| | + | <div style="text-align: center;"> |
+ | [[File:Neotool-2.png|170px]] | ||
+ | </div> | ||
On the next screen, don't change anything and click `OK'. | On the next screen, don't change anything and click `OK'. | ||
Line 75: | Line 81: | ||
8) When the process is done, the Neo FreeRunner restarts automatically and the new operating system is ready to be used. | 8) When the process is done, the Neo FreeRunner restarts automatically and the new operating system is ready to be used. | ||
- | |||
=== Internet connectivity === | === Internet connectivity === | ||
+ | [[File:Internet-on-your-neo-1.png|thumb|400px|Internet on FreeRunner via USB]] | ||
When the operating system is installed and running, the configuration steps required in order to share the internet connectivity of the computer with the Neo FreeRunner via the USB cable are the followings. These steps must be done on the computer connected to the Neo FreeRunner. | When the operating system is installed and running, the configuration steps required in order to share the internet connectivity of the computer with the Neo FreeRunner via the USB cable are the followings. These steps must be done on the computer connected to the Neo FreeRunner. | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | + | 1) On the computer, edit the file '''/etc/sysctl.conf''' | |
- | + | ||
- | + | ||
- | + | ||
- | + | $ gedit /etc/sysctl.conf | |
- | + | 2) Look for the following line in this file: | |
- | + | ||
- | + | ||
- | + | ||
- | + | #net.ipv4.conf.default.forwarding=1 | |
- | + | and uncomment it (remove the # character if not already done). | |
- | + | ||
- | + | ||
- | and | + | 3) The iptables of the computer must be configured such that the computer behaves as a simple router for the Openmoko. The computer must forward packets coming from the Neo FreeRunner to the internet and the other way around. Edit the file '''/etc/rc.local''': |
- | + | $ gedit /etc/rc.local | |
- | / | + | |
- | + | ||
- | + | ||
- | + | and add these lines at the end of the file: | |
- | + | ||
- | + | ||
- | + | /sbin/iptables -P FORWARD ACCEPT | |
+ | /sbin/iptables --table nat -A POSTROUTING -s 192.168.0.202/32 -o iface -j MASQUERADE | ||
- | + | where iface corresponds to the interface of the computer connected to the internet (wlan0, eth0, eth1, ...). | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
+ | 4) The computer have now to be rebooted. | ||
- | + | The internet connection of the computer is now shared with the Neo FreeRunner. In order to check if the sharing of the internet connection is well configured, from the Neo FreeRunner, perform a '''ping''' to '''www.google.com''' and the results should look like this: | |
- | + | ||
- | + | ||
- | + | root@om-gta02 ~ # ping www.google.com | |
- | + | PING www.google.com (66.102.13.103): 56 data bytes | |
+ | 64 bytes from 66.102.13.103: seq=0 ttl=55 time=19.548 ms | ||
+ | 64 bytes from 66.102.13.103: seq=1 ttl=55 time=35.519 ms | ||
+ | (...) | ||
- | + | == GeoSharing project installation == | |
+ | Since the GeoSharing project is based on the OLSRd Linux daemon and on tangoGPS, it is mandatory to compile and install those two applications as well as the GeoSharing application. | ||
- | + | Before going any further, extra packages such as a C compiler ('''gcc''') and libraries ('''libglib''', '''libconfig''', '''libgps''', etc.) need to be installed on the Neo FreeRunner. In order to install these packages, an internet connection is required. The following commands must then be executed on the Neo FreeRunner. | |
- | + | ||
- | root@om-gta02 ~ # opkg | + | root@om-gta02 ~ # opkg update |
- | + | root@om-gta02 ~ # opkg upgrade | |
- | root@om-gta02 ~ # opkg install make gcc gcc-symlinks libc6 libc6-dev binutils binutils-symlinks coreutils kernel-module-tun kernel-module-tunnel4 mdbus libglib-2.0-dev libdbus-glib-1-dev gconf orbit2 libidl-2-0 policykit eggdbus libexif12 libgps gpsd-dev gtk+ gconf libxml2-dev libsoup-2.4-dev bluez4-dev curl curl-dev libexif-dev libconfig-dev | + | root@om-gta02 ~ # opkg install make gcc gcc-symlinks libc6 libc6-dev binutils binutils-symlinks coreutils kernel-module-tun kernel-module-tunnel4 mdbus libglib-2.0-dev |
- | + | libdbus-glib-1-dev gconf orbit2 libidl-2-0 policykit eggdbus libexif12 libgps gpsd-dev gtk+ gconf libxml2-dev libsoup-2.4-dev bluez4-dev curl curl-dev | |
+ | libexif-dev libconfig-dev | ||
Now that the needed packages are installed, OLSRd, tangoGPS and the GeoSharing application can be compiled and installed on the Neo FreeRunner. | Now that the needed packages are installed, OLSRd, tangoGPS and the GeoSharing application can be compiled and installed on the Neo FreeRunner. | ||
- | + | === OLSRd Linux daemon === | |
- | + | The compilation process of OLSRd requires '''bison''' and '''flex''' packages to compile the syntactical analyser used inside OLSRd. Since the version of SHR proposed in this manual does not provide those packages ('''bison''' and '''flex''') in the package repository, the compilation of the syntactical analyser have to be done on another version of the OS. | |
- | The entire compilation and installation process of OLSRd on the Neo FreeRunner is detailed in the following steps. Some steps are performed on a Neo FreeRunner running the SHR-unstable version of the operating system while some other steps are performed on the SHR-testing version. The SHR-unstable version provides much more packages in the package repository. | + | The entire compilation and installation process of OLSRd on the Neo FreeRunner is detailed in the following steps. Some steps are performed on a Neo FreeRunner running the SHR-unstable version of the operating system while some other steps are performed on the SHR-testing version. The SHR-unstable version provides much more packages in the package repository. '''Bison''' and '''flex''' are fortunately part of the list. On the Neo FreeRunner running the SHR-unstable version, all the packages previously listed have been installed. In addition to them, '''bison''' and '''flex''' have been installed as well. |
A computer is used to easily manage file transfers between the Neo FreeRunner devices. | A computer is used to easily manage file transfers between the Neo FreeRunner devices. | ||
- | + | 1) On the computer, download the last stable release of OLSRd (*.tar.gz file) from http://www.olsrd.org. The version of OLSRd used to realise this manual is the version 0.6. | |
- | + | ||
- | + | ||
- | + | 2) Extract the archive content on the computer filesystem and open a terminal pointing to the folder that has just been extracted. | |
- | + | ||
- | + | 3) At this time, only the Neo FreeRunner running SHR-unstable must be connected to the computer. From the computer, copy the entire olsrd folder to the Neo FreeRunner running SHR-unstable. | |
- | + | $ scp -r olsrd-0.6.0 root@openmoko:/home/root/ | |
- | + | 4) On the Neo FreeRunner running SHR-unstable, open a terminal, go in the olsrd folder and compile the project. This process may take a while. | |
- | + | ||
- | + | ||
- | + | root@om-gta02 ~ # cd olsrd-0.6.0 | |
+ | root@om-gta02 ~ # make | ||
- | + | 5) From the computer, it is now necessary to collect the generated files from the SHR-unstable device. | |
- | + | ||
- | + | ||
- | + | ||
- | + | $ scp -r root@openmoko:/home/root/olsrd-0.6.0 /home/user/ | |
- | + | 6) The Neo FreeRunner running SHR-unstable must be disconnected from the computer and may be shut down. This device is never used anymore. | |
- | + | ||
- | + | ||
- | + | 7) The Neo FreeRunner running SHR-testing has to be connected to the computer. | |
- | + | 8) From the computer, copy the entire olsrd folder to the Neo FreeRunner running SHR-testing. | |
- | + | $ scp -r olsrd-0.6.0 root@openmoko:/home/root/ | |
- | + | 9) On the Neo FreeRunner running SHR-testing, open a terminal, go in the olsrd folder and install the compiled OLSRd d\ae mon. | |
- | + | ||
- | + | ||
- | + | root@om-gta02 ~ # cd olsrd-0.6.0 | |
+ | root@om-gta02 ~ # make install | ||
- | + | The OLSRd daemon is now installed on the Neo FreeRunner. | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | In the scope of the GeoSharing project, the BMF plugin (always provided in the OLSRd archive file) is required. Its compilation and its installation are quite easier than for the OLSRd daemon. On the Neo FreeRunner, open a terminal, go in the folder located at '''/home/root/olsrd-0.6.0/lib/bmf''', compile and install the plugin. | |
- | + | root@om-gta02 ~ # cd /home/root/olsrd-0.6.0/lib/bmf | |
- | + | root@om-gta02 ~ # make | |
- | + | root@om-gta02 ~ # make install | |
- | + | The final configuration required for the daemon to be fully effective is a configuration file. This file is located at '''/etc/olsrd.conf'''. There are two things to adapt for the GeoSharing project: | |
- | + | 1) At the end of the file, the OLSRd interface must be specified. Since OLSRd must be running on the Wi-Fi interface of the Neo FreeRunner, the OLSRd interface should be '''eth0'''. On the Neo FreeRunner, the '''VI''' editor can be used to edit this file accordingly. | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | Interface "eth0" | |
- | + | { | |
- | + | Mode "mesh" | |
- | + | } | |
- | Interface "eth0" | + | |
- | { | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | 2) In the plugin section of the file, an entry must be added to load the BMF plugin when the d\ae mon is launched. On the Neo FreeRunner, the '''VI''' editor can be used to edit this file accordingly. | |
- | + | LoadPlugin "olsrd_bmf.so.1.7.0" | |
- | + | { | |
+ | # no option | ||
+ | } | ||
- | + | The OLSRd Linux daemon is now ready to serve the GeoSharing objectives in terms of network topology management. | |
- | + | ||
- | + | ||
- | + | === TangoGPS application === | |
- | + | TangoGPS is provided in some editions of the SHR-testing version. But a modified version of tangoGPS has been developed in the scope of the GeoSharing project. This new version adds a plugins interface allowing plugins to easily interact with tangoGPS. The compilation and the installation of the modified version of tangoGPS is described in the following steps. | |
- | + | ||
- | + | ||
- | + | ||
- | + | 1) Before going any further, make sure that the Neo FreeRunner is free of any version of tangoGPS. On the Neo FreeRunner, open a terminal and execute the following command: | |
- | + | root@om-gta02 ~ # opkg remove tangogps | |
- | + | 2) On the computer, download the latest version of tangoGPS-modified from http://download.geosharing-project.org. | |
- | + | 3) Extract the archive content on the computer filesystem and open a terminal pointing to the folder that has just been extracted. | |
- | + | ||
- | + | ||
- | + | 4) From the computer, copy the entire tangogps folder to the Neo FreeRunner. | |
- | + | $ scp -r tangogps root@openmoko:/home/root/ | |
- | root@om-gta02 ~ # cd tangogps | + | |
- | root@om-gta02 ~ # sh configure | + | 5) On the Neo FreeRunner, open a terminal, go in the tangogps folder, compile and install the project. Pay attention to the third, fourth and fifth commands. They are really important to avoid compilation issues. This process may take a while. |
- | root@om-gta02 ~ # CFLAGS="-march=armv4t" | + | |
- | root@om-gta02 ~ # PACKAGE_CFLAGS="-lconfig" | + | root@om-gta02 ~ # cd tangogps |
- | root@om-gta02 ~ # PACKAGE_LIBS="-lconfig" | + | root@om-gta02 ~ # sh configure |
- | root@om-gta02 ~ # make | + | root@om-gta02 ~ # CFLAGS="-march=armv4t" |
- | root@om-gta02 ~ # make install | + | root@om-gta02 ~ # PACKAGE_CFLAGS="-lconfig" |
- | + | root@om-gta02 ~ # PACKAGE_LIBS="-lconfig" | |
- | + | root@om-gta02 ~ # make | |
+ | root@om-gta02 ~ # make install | ||
TangoGPS is now ready to serve the GeoSharing objectives in terms of graphical display. | TangoGPS is now ready to serve the GeoSharing objectives in terms of graphical display. | ||
- | + | === WEP security === | |
- | On the Neo FreeRunner, the wireless interface is denoted as | + | On the Neo FreeRunner, the wireless interface is denoted as '''eth0'''. The following lines need to be added in the configuration file of the device interfaces in order to set the wireless network in ad hoc mode with the WEP security enabled. On the Neo FreeRunner, the '''VI''' editor can be used to edit the file located at '''/etc/network/interfaces''' accordingly. |
- | + | auto eth0 | |
- | auto eth0 | + | iface eth0 inet static |
- | iface eth0 inet static | + | address 10.0.0.1 |
- | + | netmask 255.0.0.0 | |
- | + | network 10.0.0.0 | |
- | + | wireless-mode ad-hoc | |
- | + | wireless-essid GeoSharing | |
- | + | wireless-key F4C3DEB3BE | |
- | + | ||
- | + | ||
Once the configuration file has been modified, the network interfaces have to be restarted. The simplest solutions are to restart the device or execute the following command in a terminal of the device: | Once the configuration file has been modified, the network interfaces have to be restarted. The simplest solutions are to restart the device or execute the following command in a terminal of the device: | ||
- | + | root@om-gta02 ~ # /etc/init.d/networking restart | |
- | root@om-gta02 ~ # /etc/init.d/networking restart | + | |
- | + | ||
- | + | === GeoSharing === | |
- | Now that OLSRd Linux | + | Now that OLSRd Linux daemon and tangoGPS are correctly installed, the main module of the GoeSharing project must be installed as well. This installation is detailed in the following steps. |
- | + | 1) On the computer, download the latest version of the GeoSharing application from http://download.geosharing-project.org. | |
- | + | ||
- | + | 2) Extract the archive content on the computer filesystem and open a terminal pointing to the folder that has just been extracted. | |
- | + | 3) From the computer, copy the entire geo_sharing folder to the Neo FreeRunner. | |
- | + | $ scp -r geo_sharing root@openmoko:/home/root/ | |
- | $ scp -r geo_sharing root@openmoko:/home/root/ | + | |
- | + | ||
- | + | 4) On the computer, download the latest version of the run_geosharing.sh script from http://download.geosharing-project.org. | |
- | + | 5) From the computer, copy the run_geosharing.sh script to the Neo FreeRunner. | |
- | + | $ scp run_geosharing.sh root@openmoko:/home/root/ | |
- | $ scp run_geosharing.sh root@openmoko:/home/root/ | + | |
- | + | ||
- | + | ||
- | This script (shown in Listing~\ref{list:run}) is the entry point of the GeoSharing application. It first configures the wireless network interface. Then, it launches the OLSRd d\ae mon. Finally, it compiles the GeoSharing application if it is not already done and launches it. | + | This script (shown in Listing~\ref{list:run}) is the entry point of the GeoSharing application. It first configures the wireless network interface. Then, it launches the OLSRd d\ae mon. Finally, it compiles the GeoSharing application if it is not already done and launches it. |
- | + | #!/bin/sh | |
- | + | cd /home/root/ | |
- | ./geo_sharing -m dbus | + | CURRENT_STATE=`mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.GetResourceState WiFi` |
- | + | ||
+ | if [ $CURRENT_STATE = "False" ]; then | ||
+ | echo WiFi is currently down ... Setting it up now ... | ||
+ | mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.SetResourcePolicy WiFi enabled | ||
+ | mdbus -s org.freesmartphone.ousaged /org/freesmartphone/Usage org.freesmartphone.Usage.RequestResource WiFi | ||
+ | ifconfig eth0 up | ||
+ | /etc/init.d/networking restart | ||
+ | else | ||
+ | echo WiFi is already up ! | ||
+ | fi | ||
+ | |||
+ | echo "0" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts | ||
+ | |||
+ | mkdir -p /dev/net | ||
+ | mknod /dev/net/tun c 10 200 | ||
+ | chmod 0700 /dev/net/tun | ||
+ | olsrd | ||
+ | |||
+ | cd /home/root/geo_sharing/ | ||
+ | make | ||
+ | clear | ||
+ | ./geo_sharing -m dbus | ||
- | + | Two methods for GPS data retrieval have been implemented. By default, the D-Bus method is used to retrieve GPS data. To use the TCP method instead, on the Neo FreeRunner, using '''VI''', edit the script '''run_geosharing.sh''' and replace the last line: | |
- | + | ./geo_sharing -m dbus | |
- | ./geo_sharing -m | + | |
- | + | ||
- | + | by | |
- | + | ||
- | + | ||
- | + | ./geo_sharing -m tcp | |
- | + | ||
- | + | ||
- | + | ||
- | + | This script eases the launch of the GeoSharing application. Besides, it can be executed for two different purposes. | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | * The GeoSharing application can be launched by tangoGPS when an end-user clicks on the GeoSharing entry of the plugins menu. The interactions with the end-user takes place through the graphical interface provided by tangoGPS. In order to provide to tangoGPS the path to the run_geosharing.sh script, the tangoGPS configuration file (located at '''/etc/tangogps_plugins.conf''') has to be filled accordingly. | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | # TangoGPS Plugins Interface | |
- | # TangoGPS Plugins Interface | + | nbr_plugins = 1; |
- | nbr_plugins = 1; | + | |
- | + | Plugin1 = { | |
- | Plugin1 = { | + | name = "GeoSharing"; |
- | + | path = "sh /home/root/run_geosharing.sh"; | |
- | + | options = ""; | |
- | + | running = "/tmp/geosharing.run"; | |
- | + | }; | |
- | }; | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
+ | * The GeoSharing application can also be launched alone in a terminal. The interactions with the end-user takes place through messages displayed in the terminal. | ||
- | + | Information about using the application can be found [[Run_GeoSharing|here]]. |