| Version 36 (modified by mcarrick, 17 months ago) |
|---|
Download
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 Enable sudo for your user
Follow these steps to enable sudo for your user account:
$ su -c "/usr/sbin/visudo"
This opens a text editor to edit the sudoers file.
Find the line that allows people in group wheel to run all commands.
With the cursor on this line, type "i" (without the quotes) to enter insert mode. Uncomment this line by removing the # and space at the beginning of the line.
Type <ESC> to exit insert mode, then type ":wq" (without the quotes) to save the file and exit visudo.
Now add your user <user> to group wheel:
$ su -c "usermod -a -G wheel <user>"
This user should now be able to run commands with root privileges using sudo.
1.2 Update 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.3 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
$ cd Python-2.7.2
$ ./configure
$ make
$ sudo make install
1.4 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 ..
$ sudo cp sample.cfg /etc/omniORB.cfg
Change the InitRef on line 347 of /etc/omniORB.cfg from:
# InitRef = NameService=corbaname::my.host.name
To:
InitRef = NameService=corbaname::127.0.0.1
1.5 Install omniORBpy 3.4
$ wget http://omniorb.sourceforge.net/releases/omniORBpy-3.4.tar.gz
$ tar -xf omniORBpy-3.4.tar.gz
$ cd omniORBpy-3.4/
$ mkdir build
$ cd build
$ ../configure
$ make
$ sudo make install
1.6 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
OSSIE needs to be linked against omniORB and Boost libraries. To do so, open the following file:
$ sudo vi /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
$ cd ossie-embedded
$ ./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
$ sudo /sbin/ldconfig
The installation is now complete.
Start the naming service:
$ mkdir /sdr/logs
$ omniNames -start -logdir /sdr/logs &
Start nodeBooter:
$ cd /sdr
$ 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.