|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
- You have Fedora Core 4, 5, or 6 installed. For instructions on installing on Mac OS X, refer to InstallationGuideOSX.
- You have subversion installed and SSL support is enabled.
- 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.
- 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).
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 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
Run ldconfig in the /sbin/ directory
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 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
Testing the installation
In a new terminal window, start omniNames.
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"
$ 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:
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.
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.