Skip to content

Commit

Permalink
Updated Makefile and README to reflect the image name changes (geonte…
Browse files Browse the repository at this point in the history
…ch/redhawk-ubuntu- prefix)
  • Loading branch information
Thomas Goodwin committed Jun 12, 2017
1 parent 9d670da commit abdf9ab
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 26 deletions.
16 changes: 14 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -44,17 +44,29 @@ REST_PYTHON_BRANCH := master
image_check = $(strip $(shell docker images -q $1))
image_build = docker build --rm \
$2 \
-f ./Dockerfiles/$(subst geontech/redhawk-,,$1).Dockerfile \
-f ./Dockerfiles/$(subst $(image_prefix)-,,$1).Dockerfile \
-t $1:$(VERSION) \
./Dockerfiles \
&& \
docker tag $@:$(VERSION) $@:latest

.PHONY: all clean $(all_images)
.PHONY: all_pulled deliver clean $(all_images)

# Everything
all: $(redhawk_images) $(redhawk_webserver) $(linked_scripts) $(omni)

all_pulled: $(linked_scripts)
$(foreach image,$(all_images),\
$(shell docker pull $(image):$(VERSION)) \
$(shell docker tag $(image):$(VERSION) $(image):latest) \
)

deliver: $(all_images)
$(eval result := $(foreach image,$(all_images),\
$(shell docker push $(image):$(VERSION)) \
$(shell docker push $(image):latest))\
)

# Image building targets
$(base):
$(call image_build,$@)
Expand Down
50 changes: 26 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,30 @@
# Docker-REDHAWK
# Docker-REDHAWK Ubuntu Edition

This repository builds a series of Docker images and scripts for standing up an installation of REDHAWK SDR as well as several example devices and a web server.
This repository builds a series of Docker images and scripts for standing up an installation of REDHAWK SDR as well as several example devices and a web server. If you're familiar with [Docker-REDHAWK](http://github.com/GeonTech/docker-redhawk), this document will seem very familiar except for this:

For the USRP image (geontech/redhawk-usrp), the UHD driver is recompiled to a newer version and the USRP_UHD Device is compiled from source against that newer driver. The result is access to the latest Ettus Research USRPs from the container.
> **IMPORTANT NOTE:** This version's Components will not be binary compatible with a CentOS 7 or RPM -based installation. You cannot deploy Components from one installation type onto the GPP of another. That said, nothing should limit you from having an Ubuntu -borne Node join a CentOS 7 Domain or vice versa.
For the USRP image (geontech/redhawk-ubuntu-usrp), the UHD driver is recompiled to a newer version and the USRP_UHD Device is compiled from source against that newer driver. The result is access to the latest Ettus Research USRPs from the container.

## Building

To build all images, simply type `make`. At the command line, you can also specify the variables: `REST_PYTHON` and `REST_PYTHON_BRANCH`, which specifically apply to the `geontech/redhawk-webserver`.
To build all images, simply type `make`. At the command line, you can also specify the variables: `REST_PYTHON` and `REST_PYTHON_BRANCH`, which specifically apply to the `geontech/redhawk-ubuntu-webserver`.

You will end up with the following images that are meant't to be run individually.

* `geontech/redhawk-base`: This is the repository installation, omni services (non-running), and an `/etc/omniORB.cfg` update script.
* `geontech/redhawk-runtime`: The typical "REDHAWK Runtime" group install. It is the basis for the `domain` and various device launchers.
* `geontech/redhawk-ubuntu-base`: This is the repository installation, omni services (non-running), and an `/etc/omniORB.cfg` update script.
* `geontech/redhawk-ubuntu-runtime`: The typical "REDHAWK Runtime" group install. It is the basis for the `domain` and various device launchers.

The remaining images are derived and come with helper scripts for deploying your system:

* `geontech/redhawk-omniserver`: Inherits from `geontech/redhawk-base`, it has OmniORB and OmniEvents services wrapped in a single image, intended to be run as a singleton in the network. If you have an Omni server running elsewhere, you do not need this.
* `geontech/redhawk-development`: Configured to expose a workspace volume and run the IDE.
* `geontech/redhawk-domain`: Configured to run as a Domain.
* `geontech/redhawk-gpp`: Configured to run as a GPP -bearing Node.
* `geontech/redhawk-rtl2832u`: Configured to run as an RTL2832U -bearing Node.
* `geontech/redhawk-usrp`: Configured to run as an USRP_UHD -bearing Node.
* `geontech/redhawk-bu353s4`: Configured to run as a BU353S4 -bearing Node.
* `geontech/redhawk-webserver`: Instantiates a rest-python web server.
* `geontech/redhawk-ubuntu-omniserver`: Inherits from `geontech/redhawk-ubuntu-base`, it has OmniORB and OmniEvents services wrapped in a single image, intended to be run as a singleton in the network. If you have an Omni server running elsewhere, you do not need this.
* `geontech/redhawk-ubuntu-development`: Configured to expose a workspace volume and run the IDE.
* `geontech/redhawk-ubuntu-domain`: Configured to run as a Domain.
* `geontech/redhawk-ubuntu-gpp`: Configured to run as a GPP -bearing Node.
* `geontech/redhawk-ubuntu-rtl2832u`: Configured to run as an RTL2832U -bearing Node.
* `geontech/redhawk-ubuntu-usrp`: Configured to run as an USRP_UHD -bearing Node.
* `geontech/redhawk-ubuntu-bu353s4`: Configured to run as a BU353S4 -bearing Node.
* `geontech/redhawk-ubuntu-webserver`: Instantiates a rest-python web server.

The following scripts will also be linked into the main directory. Each script supports `-h` and `--help` to learn the usage of the script, and running the script with no arguments provides a status update.

Expand Down Expand Up @@ -57,7 +59,7 @@ If you would like to log into the Domain container, use `login`:

You will enter a bash shell as the `redhawk` user.

> **Note:** Not all images have this user defined. For example, the only user in the `geontech/redhawk-omniserver` image is `root`, the default.
> **Note:** Not all images have this user defined. For example, the only user in the `geontech/redhawk-ubuntu-omniserver` image is `root`, the default.
> **Note:** For containers where the name is derived from the Node and Domain names (e.g., GPP), you have to specify the full container name (in this example, `GPP1-REDHAWK_DEV1`).
Expand All @@ -72,13 +74,13 @@ The result will be a Domain with a persistent SDRROOT.

## Running the IDE

The `geontech/redhawk-development` image provides the development libraries necessary to develop components and devices. Use the `rhide` script to map your SDRROOT volume and workspace (absolute path or volume name):
The `geontech/redhawk-ubuntu-development` image provides the development libraries necessary to develop components and devices. Use the `rhide` script to map your SDRROOT volume and workspace (absolute path or volume name):

./rhide --sdrroot MY_REDHAWK --workspace /home/me/workspace

## REST-Python Web Server

The following section contains information about the `geontech/redhawk-webserver` REST-Python server image.
The following section contains information about the `geontech/redhawk-ubuntu-webserver` REST-Python server image.

### Running

Expand All @@ -92,14 +94,14 @@ Additionally, if an alternate version of REST-Python should be mounted, use `--r

### Customizing the Image

Building the REST-Python `geontech/redhawk-webserver` image has a two options:
Building the REST-Python `geontech/redhawk-ubuntu-webserver` image has a two options:

* `REST_PYTHON`: URL to a git server where the REST-Python source is located (default is [Geon's](http://github.com/geontech/rest-python)).
* `REST_PYTHON_BRANCH`: Branch name of the preferred REST-Python source tree (default is master).

Specifying no options (`make geontech/redhawk-webserver`) bakes in the default REST-Python server and branch. The above options can be specified by passing the variables at make time:
Specifying no options (`make geontech/redhawk-ubuntu-webserver`) bakes in the default REST-Python server and branch. The above options can be specified by passing the variables at make time:

make geontech/redhawk-webserver REST_PYTHON=http://my_other_target/repo
make geontech/redhawk-ubuntu-webserver REST_PYTHON=http://my_other_target/repo

## Device Node Controllers

Expand All @@ -109,14 +111,14 @@ In each case, similar to running `./domain` with no arguments, each of these dev

### GPP

The `geontech/redhawk-gpp` image provides a Node running a GPP Device for your system. The `gpp` script provides only a few options for naming the device, setting the Domain name, etc. See the `--help` for usage. Starting with the default domain:
The `geontech/redhawk-ubuntu-gpp` image provides a Node running a GPP Device for your system. The `gpp` script provides only a few options for naming the device, setting the Domain name, etc. See the `--help` for usage. Starting with the default domain:

./gpp start MyGPP


### USRP_UHD

The `geontech/redhawk-usrp` image compiles the 3.10 version of UHD and then compiles the USRP_UHD from source. The resulting device is capable of working with many of the latest Ettus Research USRPs like the USB-attached B205mini. The associated `usrp` script allows you to configure the Device in its Node when starting an instance of it.
The `geontech/redhawk-ubuntu-usrp` image compiles the 3.10 version of UHD and then compiles the USRP_UHD from source. The resulting device is capable of working with many of the latest Ettus Research USRPs like the USB-attached B205mini. The associated `usrp` script allows you to configure the Device in its Node when starting an instance of it.

For the B205mini, it identifies as the `b200` type. With it connected to a powered USB 3.0 port:

Expand All @@ -130,7 +132,7 @@ This will start a container attached to REDHAWK_DEV (the default Domain). The c

### RTL2832U

The `geontech/redhawk-rtl2832u` image provides the RTL2832U Device. The associated launcher script is `rtl2832u`:
The `geontech/redhawk-ubuntu-rtl2832u` image provides the RTL2832U Device. The associated launcher script is `rtl2832u`:

./rtl2832u start MyRTL

Expand All @@ -152,7 +154,7 @@ To make the change permanent, one creates a configuration (`.conf`) file in `/et

### BU353S4

The `geontech/redhawk-bu353s4` image provides Geon's BU353S4 FEI 2.0 -compliant USB-attached serial GPS receiver. Like the Device, it has only one option: the path to the serial device in `/dev`. The default is `/dev/ttyUSB0`. Starting an instance on the default REDHAWK_DEV Domain is:
The `geontech/redhawk-ubuntu-bu353s4` image provides Geon's BU353S4 FEI 2.0 -compliant USB-attached serial GPS receiver. Like the Device, it has only one option: the path to the serial device in `/dev`. The default is `/dev/ttyUSB0`. Starting an instance on the default REDHAWK_DEV Domain is:

./bu353s4 start MyGPS

Expand Down

0 comments on commit abdf9ab

Please sign in to comment.