| Version 25 (modified by mcarrick, 17 months ago) |
|---|
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.