Version 5 (modified by balister, 6 years ago)

--

Start to Finish Installation of OSSIE (from subversion)

This page gives instructions for installing OSSIE using the subversion trunk and is likely to change with the progression of the source code. For instructions on previous static releases, please see

Assumptions:

  1. You have Fedora Core 4, 5, or 6 installed. For instructions on installing on Mac OS X, refer to InstallationGuideOSX.
  2. You have subversion installed and SSL support is enabled.
  3. You have access to the OSSIE subversion repository, if not, see below. If you are installing OSSIE version 0.6.0 or 0.6.1, please refer to the directions in the corresponding user guide, which are different from those below.
  4. You are comfortable with building your own binaries from source.

-Other configurations/methods are possible, but this is the most common used by the OSSIE Team.

Create an account (using the register button at the top of this page) and email PhilipBalister with the user id. If you are outside MPRG include a statement saying you have read and understood the licensing terms ( GPL/ LGPL).

Install omniORB

Download omniORB

Grab version 4.0.7 of omniORB (This is no longer the latest version but newer versions have not yet been tested) off of  omniORB's site an unzip it wherever you like.

Configure, Compile and Install

$ cd <omniORB-V.V.V> (referred to from here on as OMNIORB_TOP)
$ mkdir build
$ cd build
$ ../configure
$ make
$ su -c 'make install'

-where V.V.V is the version of omniORB that you downloaded

Edit omniORB Configuration

You may need to copy and edit as Root

$ cp $OMNIORB_TOP/sample.cfg /etc/omniORB.cfg

Edit the omniORB.cfg file and go to line 317 (or around there) and change the line:

InitRef = NameService=corbaname::my.host.name

to

InitRef = NameService=corbaname::localhost

and make sure the line is uncommented.

Check for localhost resolution

If your DNS is flaky, /etc/hosts might not be configured correctly. Test to see if your localhost resolves by pinging it:

$ ping localhost

If it fails, as root, edit /etc/hosts and make sure 127.0.0.1 is set as localhost:

127.0.0.1   localhost.localdomain   localhost

*Note: Alternatively, you can change line 317 in /etc/omniORB.conf to

InitRef = NameService=corbaname::127.0.0.1

Update Locations of Shared Libraries

Perform this step as Root

Edit the file /etc/ld.so.conf and add the line

/usr/local/lib

Run ldconfig in the /sbin/ directory

omniNames Configuration

Make a directory named "logs" in the location of your choice

$ mkdir /any/path/to/logs

You can put the log files anywhere you want to. Just make the appropriate changes to the below script file.

Create omniNames.sh

Create a file called omniNames.sh and put the following it:

#!/bin/sh

killall omniNames [omniEvents]
rm /path/to/logs/omninames*

omniNames -start -logdir /path/to/logs &

Now as root:

# chmod 755 omniNames.sh
# cp omniNames.sh /usr/local/bin

now this script (omniNames.sh) is accessible as your user from any shell.

Checkout, Build and Install the OSSIE Framework

Follow these steps checkout the source and build OSSIE

$ mkdir ~/src
$ cd ~/src
$ svn co https://ossie.wireless.vt.edu/repos/ossie/ossie/trunk/ossie
$ cd ossie
$ ./reconf
$ ./configure
$ make
$ su -c "make install"

Checkout, Build and Install Standard Interfaces, SigProc? library, Node Booter, the domain, the default node and the GPP Device

$ mkdir /sdr
$ chown yourusername.yourgroupname /sdr
$ cd ~/src
$ svn co https://ossie.wireless.vt.edu/repos/ossie/standardInterfaces/trunk/standardInterfaces
$ svn co https://ossie.wireless.vt.edu/repos/ossie/SigProc/trunk/SigProc
$ svn co https://ossie.wireless.vt.edu/repos/ossie/platform/nodebooter/trunk/nodebooter
$ svn co https://ossie.wireless.vt.edu/repos/ossie/platform/GPP/trunk/GPP
$ svn co https://ossie.wireless.vt.edu/repos/ossie/platform/domain/trunk/domain
$ svn co https://ossie.wireless.vt.edu/repos/ossie/nodes/default_GPP_node/trunk/default_GPP_node
$ cd standardInterfaces
$ ./reconf
$ ./configure
$ make
$ su -c "make install"
$ cd ../SigProc
$ ./reconf
$ ./configure
$ make
$ su -c "make install"
$ cd ../nodebooter
$ ./reconf
$ ./configure
$ make
$ su -c "make install"
$ cd ../domain
$ ./reconf
$ ./configure
$ su -c "make install"
$ cd ../default_GPP_node
$ ./reconf
$ ./configure
$ su -c "make install"
$ cd ../GPP
$ ./reconf
$ ./configure
$ make
$ su -c "make install"

At this point, you should once again run ldconfig as root from the /sbin directory

# /sbin/ldconfig

Testing the installation

In a new terminal window, start omniNames.

$ omniNames.sh

nb_test is obsolete, download and install the generic_GPP_node .... source:/nodes/default_GPP_node/trunk/default_GPP_node

In a second terminal, get attachment:nb_test.tar.gz and unpack in the xml directory.

$ cd /sdr/xml
$ su -c "tar -xzvf <path-to-nb_test.tar.gz>"

In the second terminal window, enter the /sdr directory and start the nodebooter.

$ cd /sdr/dom
$ nodeBooter -D -d /nodes/default_GPP_node/DeviceManager.dcd.xml -P /sdr/dom -p /sdr/dev

At this point the nodebooter should print a lot of informative data while starting up, start the GPP device, and wait for commands from other programs. Install c_wavloader using configure, make, install. Skip to installing the OSSIE demo waveform.

If the test succeeds, the last line will read "Device Registered"

Use control-C to exit the nodebooter.

Use control-C to end onniNames

Part 2, Installing wavLoader

wavLoader is now obsolete, use c_wavloader instead source/platform/c_wavLoader/trunk/c_wavLoader, you no longer need to install omniORBPy for core OSSIE.

wavLoader is a python script that enables easy loading and running of waveforms.

First, install omniORBpy

Get omniORBpy and Decompress

Download the omniORBpy v2.7 source (tar.gz file) from  http://omniorb.sourceforge.net/. Later versions have not been tested.

$ tar -xzvf omniORBpy-2.7.tar.gz

Build and Install omniORBpy

$ ./configure
$ make
$ su -c "make install"

or

$ cd [omniORBpy directory]
$ mkdir build
$ cd build
$ ../configure [configure options]
$ make
$ su -c "make install"

Create the python bindings for omniORB

You can create the bindings directory somewhere in your user directory and list the directory in a .pth file as shown here, or you copy the compiled idl to the local site-packages directory.

$ mkdir idl_py
$ cd idl_py
$ cp <path to ossie idl files>/*.idl .
$ omniidl -p<path to omniORBpy backend> -bpython *
  • <path to ossie idl files> is typically /usr/local/include/ossie/ if installing from subversion but may be elsewhere if installed by another method.
  • <path to omniORBpy backend> is typically /usr/local/lib/python<version>/site-packages.

As root, create ossie.pth

# cd /usr/lib/python<version>/site-packages/
# vim ossie.pth
  • Create the ossie.pth file to look as follows
<path to idl_py>
/usr/local/lib/python2.x/site-packages/

Get a copy of WavLoader?

$ cd ~/src
$ svn co https://ossie.wireless.vt.edu/repos/ossie/platform/wavLoader/trunk/wavLoader

You now have a copy of wavLoader that must be copied into the directory of each waveform that you intend to run as shown below.

$ cp wavLoader/wavLoader.py /sdr/waveforms/<waveform name>
  • Alternatively, you can copy wavLoader.py to /usr/bin. It will then be available to run from any directory.
$ su -c "cp wavLoader/wavLoader.py /usr/bin"

If you did not run the Node Booter test, get the domain xml files

$ cd ~/src
$ svn co https://ossie.wireless.vt.edu/repos/ossie/platform/domain/trunk/domain
$ cd domain
$ ./reconf
$ ./configure
$ make install

Installing the OSSIE demo

This demo consists of three components: TxDemo?, ChannelDemo?, and RxDemo?. TxDemo? generates to sequences of data and sends them to ChannelDemo?, then ChannelDemo? adds a small number to each element of data and sends the sequences to RxDemo?. Although trivial in use, this code demonstrates components communicating, threading, and the basic layout of a waveform.

Get and install the ossie_demo wavform

$ cd ~/src
$ mkdir waveforms
$ cd waveforms
$ svn co https://ossie.wireless.vt.edu/repos/ossie/waveforms/ossie_demo/trunk/ossie_demo
$ cd ossie_demo
$ ./reconf
$ ./configure
$ make install

Get and install TxDemo?, ChannelDemo? and RxDemo? to complete the component chain for the ossie_demo waveform

First, create a directory for your components

$ cd ~/src
$ mkdir components
$ cd components

Now download and install the appropriate components necessary to run the ossie_demo waveform

$ cd ~/src/components
$ svn co https://ossie.wireless.vt.edu/repos/ossie/components/TxDemo/trunk/TxDemo
$ cd TxDemo
$ ./reconf
$ ./configure
$ make
$ make install
$ cd ~/src/components
$ svn co https://ossie.wireless.vt.edu/repos/ossie/components/ChannelDemo/trunk/ChannelDemo
$ cd ChannelDemo
$ ./reconf
$ ./configure
$ make
$ make install
$ cd ~/src/components
$ svn co https://ossie.wireless.vt.edu/repos/ossie/components/RxDemo/trunk/RxDemo
$ cd RxDemo
$ ./reconf
$ ./configure
$ make
$ make install

Time to Run the Waveform!

It is recommended that you execute the following commands in seperate shell windows. Do not close any of the windows because closing a window will kill processes that were started from that window.

Start the Naming Service

In the first terminal:

$ omniNames.sh

In the second terminal:

Start the nodeBooter

$ cd /sdr
$ nodeBooter -D -d /nodes/default_GPP_node.dcd.xml -P /sdr/dom -p /sdr/dev

At this point the nodebooter should print a lot of informative data while starting up, start the GPP device, and wait for commands from other programs. Use control-C to exit the nodebooter.

Run the waveform

In the third terminal:

$ cd /sdr/dom
$ c_wavLoader

You need to cd to /sdr/dom due to ticket #54. When this ticket is closed, c_wavLoader should start from anywhere.

Choose waveform number 1 when presented with the option. Select 's' to start the waveform.

Congratulations, OSSIE is now installed on your machine.

Other Notes

When you install OWD you'll also need to remember to add the path to the top level OWD directory to the ossie.pth file you create.

Finding your away around the Subversion repository

Paths relative to  https://ossie.wireless.vt.edu/repos/ossie/

  • ossie - contains the core framework.
  • platform - contains control programs and hardware device code.
  • waveforms - contains waveform specific code and xml.
  • components - contains resuable library component code.

The following installation instructions assume you plan to follow active OSSIE development using the trunk directory for each package. In addition to the trunk development path, there are tags and branches. Each package may have several branches and tags. For each release version, a branch is created for maintenance change sets. For each release a tag is created to provide easy access to the exact file revisions in each release. changes made in the release branches fix bugs and add new features, with a very strong effort made to not break code developed against the specific release. The first release in a branch is tagged 0.x.0. Subsequent releases will be 0.x.1, 0.x.2, etc.

Rebuilding a tree checked out from subversion

It can be a real nuisance rebuilding the framework, supporting libraries, platform, component and waveform code. We have created a useful updater tool that can be checked out from the repository. Please see OSSIEUpdater for details.