Installation
This chapter explains how to install the Core Framework (CF), the IDE, and the basic assets. The CF is the software back-end of REDHAWK. The IDE is a GUI for development and interaction with REDHAWK systems. The basic assets are a collection of components, devices, and waveforms that developers can use to create simple software-defined radio applications.
To configure and install REDHAWK and associated dependencies, you must have root permissions. The REDHAWK installation is compatible with 64-bit versions of RHEL, CentOS 6, and CentOS 7. The current REDHAWK release was tested against CentOS 6.9 (64-bit) and CentOS 7.4 (64-bit).
Installing REDHAWK from RPMs
This section provides step-by-step instructions for installing a REDHAWK release using the YUM command-line package management tool. The installation process includes:
- Configuring the host system to install REDHAWK dependencies from Fedora EPEL
- Downloading and configuring the REDHAWK YUM repository on the host system
- Installing the REDHAWK software
- Setting up the user environment for immediate REDHAWK runtime or development use
Before beginning the installation process, if you are upgrading from a 1.8.x version of REDHAWK or for more information about external dependencies, refer to External Dependencies.
Configuring the Host System to Install REDHAWK EPEL Dependencies
REDHAWK has several open-source software dependencies from the EPEL repository. If your system is not configured to receive software packages from EPEL, you can configure it as follows:
For RHEL/CentOS 7:
sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
For RHEL/CentOS 6:
sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
Downloading and Configuring the REDHAWK Yum Repository on the Host System
The following conventions are used in the instructions that follow.
Variable | Description | Example |
---|---|---|
<version> |
REDHAWK version | 2.0.3 |
<dist> |
Linux distribution as represented by rpm macros | el6 (for CentOS 6) |
<arch> |
host architecture | x86_64 |
Adjust the variables to match the desired REDHAWK version, host Linux distribution, and host machine architecture. For example, for REDHAWK version 2.0.3, 64-bit CentOS 6, redhawk-yum-2.0.3-el6-x86_64.tar.gz
.
Downloading the YUM Archive of REDHAWK
Download the archive of the desired version of REDHAWK for your host OS and architecture.
wget https://github.com/RedhawkSDR/redhawk/releases/download/<version>/redhawk-yum-<version>-<dist>-<arch>.tar.gz
Setting Up the REDHAWK Repository
In the directory that you want to use for the REDHAWK yum repository, extract the contents of the tar file.
tar xzvf redhawk-yum-<version>-<dist>-<arch>.tar.gz cd redhawk-<version>-<dist>-<arch>
Install the redhawk-release package (containing the REDHAWK GPG signing key):
sudo yum install -y redhawk-release*.rpm
Enter the following commands to add the following file,
/etc/yum.repos.d/redhawk.repo
:cat<<EOF|sed 's@LDIR@'`pwd`'@g'|sudo tee /etc/yum.repos.d/redhawk.repo [redhawk] name=REDHAWK Repository baseurl=file://LDIR/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhawk EOF
Installing REDHAWK
Use one of the following options to install the IDE, CF, and accompanying dependencies from RPMs.
To install only the runtime REDHAWK software, enter the following command:
sudo yum groupinstall "REDHAWK Runtime"
To install the REDHAWK development software, enter the following command:
sudo yum groupinstall "REDHAWK Development"
If you want to be more selective about the packages you install, refer to REDHAWK Yum Repository and Packages for a list of packages that can be installed. You can also install a stand-alone IDE. Additionally, individual RPMs released in the REDHAWK Updates repository may be installed. For more information, refer to Installing RPMs from the REDHAWK Updates Repository.
For installation issues with the GPP, refer to REDHAWK Installation Issues.
Setting Up the User Environment
Enter the following commands to set up the environment variables:
. /etc/profile.d/redhawk.sh . /etc/profile.d/redhawk-sdrroot.sh
Use the following command to add each REDHAWK user to the
redhawk
group:sudo /usr/sbin/usermod -a -G redhawk <username>
Where
<username>
is the name of a user to add to the group. If you are logged into an account that you modify withusermod
, you must log out and back in for the changes to take effect.
Configuring omniORB
The omniORB configuration file (/etc/omniORB.cfg
) must be edited to provide information about how to reach the CORBA Name Service. By default, the config file contains the following entries:
InitRef = NameService=corbaname::127.0.0.1:2809
supportBootstrapAgent = 1
The NameService
line provides information about how to reach the CORBA Naming Service. The number is an IP address followed by a colon and a port number. The port number is used as a default if no other number is specified. SupportBootstrapAgent
is a server side option. This enables omniORB servers and Sun’s JavaIDL clients to work together. When set to 1, an omniORB server responds to a bootstrap agent request.
Add the following line to the config file to configure the CORBA Event Service (this requires root permissions):
InitRef = EventService=corbaloc::127.0.0.1:11169/omniEvents
The first number is the IP address followed by a colon and a port number.
omniEvents
is the object key.Enter the following command to start the
omniNames
andomniEvents
services:sudo $OSSIEHOME/bin/cleanomni
For CentOS 6 systems, to have
omniNames
andomniEvents
start automatically at system boot (recommended), enter the following commands:sudo /sbin/chkconfig --level 345 omniNames on sudo /sbin/chkconfig --level 345 omniEvents on
For CentOS 7 systems, to have
omniNames
andomniEvents
start automatically at system boot (recommended), enter the following commands:sudo systemctl enable omniNames.service sudo systemctl enable omniEvents.service
For more information about omniORB configuration file settings (/etc/omniORB.cfg
), refer to Chapter 4 of the omniORB User’s Guide (http://omniorb.sourceforge.net/omni41/omniORB/omniORB004.html) (CentOS 6) and (http://omniorb.sourceforge.net/omni42/omniORB/omniORB004.html) (CentOS 7) or on your local system at file:///usr/share/doc/omniORB-devel-4.1.6/doc/omniORB/omniORB004.html (CentOS 6) and at file:///usr/share/doc/omniORB-devel-4.2.0/doc/omniORB/omniORB004.html (CentOS 7).
Configuring omniORB for Distributed Systems
If you want to run a Domain Manager and Device Manager from two different computers, the following procedure explains how to configure omniORB for distributed systems.
On the computer from which you want to run the Domain Manager, start
omniNames
andomniEvents
and then launch a Domain Manager.The firewall may need to be disabled to allow the Device Manager to connect.
On the computer from which you want to run the Device Manager, modify the
omniORB.cfg
file so that the IP address for theNameService
andEventService
is the address of the computer running the Domain Manager.The following example is a modified Domain Manager
omniORB.cfg
file:InitRef = NameService=corbaname::127.0.0.1: InitRef = EventService=corbaloc::127.0.0.1:11169/omniEvents
The following example is a modified Device Manager
omniORB.cfg
file:InitRef = NameService=corbaname::<IP address of Domain Manager>: InitRef = EventService=corbaloc::<IP address of Domain Manager>:11169/omniEvents
Neither
omniEvents
noromniNames
needs to be running on this computer.On the computer running the Device Manager, test that you can see the Domain Manager by running
nameclt list
.The name of the Domain Manager is displayed.
Start the Device Manager.
Any devices in the node are registered with the Domain Manager.
To verify that you can view both the Device Manager and Domain Manager, from either computer, run
nameclt list <Domain Manager Name>
.The Device Manager and Domain Manager are displayed.
omniORB may have trouble automatically resolving its location. In this case, it may be necessary to set the endpoints in the omniORB.cfg
files by adding the following to each omniORB.cfg
file: endpoint = giop:tcp:<IP address of machine>
. You must restart omniEvents
and omniNames
for these changes to take effect.
Run rh_net_diag
to help diagnose any problems. Refer to Diagnosing Problems Using the rh_net_diag
Script for more information on how to use rh_net_diag
.
Configuring JacORB to Support the IDE
The IDE uses JacORB version 3.3 for CORBA communication. The IDE includes a configuration file for JacORB in the IDE’s directory (in configuration/jacorb.properties
). The file includes explanations and examples for many of JacORB’s configuration options. For more information, refer to chapter 3 of the JacORB 3.3 Programming Guide. Typically, there is no need to adjust any JacORB settings.