For 0.6.1 installation, use the guide at http://ossie.wireless.vt.edu/download/user_guides/

Start to Finish Installation of OSSIE (version 0.6.1)

Only use these for version 0.6.1!

Other installation instructions:


1) You have at least Fedora Core 4, or something more recent, installed.

2) You have subversion installed and SSL support is enabled.

3) You have access to the OSSIE subversion repository, if not, see 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 for this wiki 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).

First, install Xerces-C and omniORB

Download Xerces-C

Download the latest Xerces-C (about 7.5MB). Follow the link and look for the .tar.gz file under "Current Source Releases" under "Downloads" - make sure you get the source distribution.

Tip: If you run *ix OS, get the .tar.gz source, .zip file is for MS Windows. The shell script .zip's version runConfigure will give you a 'bad interpreter' in non-Windows OS environment due to end of line issue.

Setup your build environment variables

You can customize some of these environment variables to fit your system if you need to:

$ export CC=my-supper-fast-CC
$ export CXX=my-super-fast-C++

(You would replace "my-super-fast..." with the name of the compiler you intend to use)

By default, Xerces-C will use gcc and g++ if CC and CXX are not set, respectively.

Set XERCESCROOT to the absolute path of the directory that you un-gziped your tar ball (no ending '/'):

$ export XERCESCROOT=full/path/xerces-c-src_2_7_0
Configure, compile, and install
$ cd $XERCESCROOT/src/xercesc
$ ./runConfigure -plinux
$ make
$ su
# make install
# exit
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


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 is set as localhost:   localhost.localdomain   localhost

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

InitRef = NameService=corbaname::
Update Locations of Shared Libraries

Perform this step as Root

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


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:


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/tags/ossie-0.6.1/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/tags/standardInterfaces-0.6.1/standardInterfaces/
$ svn co https://ossie.wireless.vt.edu/repos/ossie/SigProc/tags/SigProc-0.6.1/SigProc/
$ svn co https://ossie.wireless.vt.edu/repos/ossie/platform/nodebooter/tags/nodebooter-0.6.1/nodebooter/
$ svn co https://ossie.wireless.vt.edu/repos/ossie/platform/GPP/tags/GPP-0.6.1/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

Testing the installation

In a new terminal window, start omniNames.

$ omniNames.sh

In a second terminal, get 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
$ nodeBooter -D -d nodes/default_GPP_node/DeviceManager.dcd.xml

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.

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 a python script that enables easy loading and running of waveforms.

First, install omniORBpy and Amara

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"


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

Amara is an XML Toolkit that provides pythonic tools for xml parsing, creation, and editing.

-You will have to right-click on the link and select "save-as"

Now from the directory where you saved the script, run it:

$ su -c "python ez_setup.py"
  • Next, install Amara using easy_install
$ su -c "easy_install amara"
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>
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 separate 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/waveforms
$ ./wavLoader.py ossie_demo_DAS.xml

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 WaveDev, you'll also need to remember to add the path to the top level WaveDev 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.