Version 25 (modified by mcarrick, 17 months ago)

formatting changes

Download

Embedded Source
Embedded VMware

Building an Embedded Distribution of OSSIE from Source

The aim of this embedded distribution is to provide a minimal OSSIE distribution. The current method simply builds the OSSIE core framework, the GPP device, and the ossie_demo waveform and it's associated components. The following things are examples of what has been left out of the embedded build: Sound card device, most components, and all USRP related code.

This is temporary page and the results will ultimately be integrated into the larger OSSIE development effort. It should also be noted that this work is targeted for the CentOS 5.7 operating system.

1. Installation of Dependencies:

OSSIE has two explicit dependencies:  omniORB and  Boost. omniORB is an open source CORBA implementation which provides interprocess communication capability. Boost is an open source filesystem.

There are additional implied dependencies such as g++ and autoconf which are outlined in the OSSIE user guide. These dependencies are being called 'implied' because they are typically available with a basic linux operating system distribution, or it is easily enabled within the operating system. One problem that arises with compiling for CentOS 5.7 is OSSIE requires a version of autoconf that is newer than the one provided with the operating system. The next steps will provide instructions for installing a new autoconf from source.

1.1 Updating Autoconf to 2.63

Upon first downloading the embedded tarball and running ./bootstrap, the user will see that CentOS provides an older autoconf than what OSSIE requires. The best scenario would be to install via yum a newer version of autoconf but that is currently not possible and it will have to be done from source. Installation instructions for updating autoconf are as follows:

Warning: selecting --prefix=/usr will overwrite the current version of autoconf.

$ wget  ftp://mirrors.kernel.org/gnu/autoconf/autoconf-2.63.tar.gz
$ tar -xf autoconf-2.63.tar.gz
$ cd autoconf-2.63
$ ./configure --prefix=/usr
$ make
$ sudo make install

1.2 Install omniORB 4.1.4

Install Python development files:

$ sudo yum install -y python-devel

omniORB is not available through yum install so it must be installed from source:

$ wget  http://omniorb.sourceforge.net/releases/omniORB-4.1.4.tar.gz
$ tar -xf omniORB-4.1.4.tar.gz
$ cd omniORB-4.1.4/
$ mkdir build
$ cd build
$ ../configure
$ make
$ sudo make install

Configure the omniORB.cfg file:

$ cd omniORB-4.1.4
$ sudo cp sample.cfg /etc/omniORB.cfg

Change the InitRef on line 348 from:

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

To:

InitRef = NameService=corbaname::127.0.0.1

1.3 Install Boost 1.37.0

Install Boost dependencies:

$ sudo yum install -y bzip2-devel zlib-devel

Install Boost:

$ wget  http://sourceforge.net/projects/boost/files/boost/1.37.0/boost_1_37_0.tar.bz2/download
$ tar -xvf boost_1_37_0.tar.bz2
$ cd boost_1_37_0/
$ ./configure --prefix=/usr/
$ make
$ sudo make install

2. Install OSSIE

Install Python 2.7.2:

$ wget  http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tar.bz2
$ tar -xf Python-2.7.2.tar.bz2
$ ./configure
$ make
$ sudo make install

OSSIE needs to be linked against omniORB and Boost libraries. To do so, open the following file:

$ sudo vim /etc/ld.so.conf

And then add the following line at the end of the file:

/usr/local/lib

Pull in the updated path:

$ sudo /sbin/ldconfig

Install OSSIE:

$ wget http://ossie.wireless.vt.edu/download/ossie-embedded/ossie-embedded.tar.bz2
$ tar -xf ossie-embedded.tar.bz2
$ ./bootstrap

Now, the installation directories must be selected. OSSIE's XML and binaries will be installed to the 'prefix' directory, and OSSIE libraries and header files will be installed to the 'libdir' and 'includedir' directories, respectively. Following the user guide, the configure line is as follows:

$ ./configure --prefix=/sdr --includedir=/usr/local/include --libdir=/usr/local/lib --with-boost --with-boost-filesystem

However, this can be modified to different directories using the following form:

$ ./configure --prefix=/INSTALLDIR --includedir=/INCLUDEDIR --libdir=/LIBDIR --with-boost --with-boost-filesystem

Now compile and install OSSIE:

$ make
$ sudo make install

The installation is now complete.

Start the naming service:

$ mkdir /sdr/logs $ omniNames -start -logdir /sdr/logs &

Start nodeBooter:

$ nodeBooter -D -d dev/nodes/default_GPP_node/DeviceManager.dcd.xml

In a new terminal, start a waveform:

$ c_wavLoader

Follow the prompts to run ossie_demo.