geontech / docker-redhawk Goto Github PK
View Code? Open in Web Editor NEWDocker Images definitions and utility scripts for rapid development and deployment of REDHAWK SDR systems, Domains, and Devices.
License: GNU General Public License v3.0
Docker Images definitions and utility scripts for rapid development and deployment of REDHAWK SDR systems, Domains, and Devices.
License: GNU General Public License v3.0
I am using REDHAWK IDE 2.2.0 on a centos 7.2 machine, and I can't manage to display the data plot view right. I started a SigGen in Chalkborad, the Data List returns a series of numbers but when I clicked the Plot Port Data button on a out port, a blank panel pops out. Do you have idea what is wrong here?
Certain configurations of the Ettus x310 are unable to be found when using uhd_find_devices
without any arguments. If this happens then the supervisor.d/usrp.conf command line wait_for_domain uhd_find_devices && nodeBooter ...
fails before ever reaching the nodeBooter command and the device manager is never launched.
Possible solutions:
--usrpip <IP> --usrptype x300
; if the uhd_find_devices command were passed these arguments such as uhd_find_devices --args "type=x300, addr=<IP>"
then the command would successfully find our device and proceed to the nodeBooter command. This solution requires a bit more work as the argument string needs to be dynamically built based on which and how many of the four possible environment variables are used. A simpler solution that might work is including the addr argument if and only if the USRP_IP_ADDRESS variable is set, but this may not solve for all possible cases.REST_PYTHON is defaulted to http://github.com/GeonTech/rest-python.git
This results in RPC failure,
Fix: Update all instances of http://github.com/GeonTech/rest-python.git to https://github.com/GeonTech/rest-python.git
any chance you could get these to update to the latest version in the docker repository? maybe add a ci/cd pipeline to keep it that way?
Issue: GPP container requires additional arguments passed to the docker run
command that are unavailable in scripts/gpp.sh.
Examples:
Thread Count - GPP is unable to support new components due to max number of threads reading as "1". The non-container GPP normally has this value as 65536.
Using docker run ... --ulimit nproc=65536 ...
fixes this issue.
Shared Memory - Docker containers default to a 64MB /dev/shm directory. The non-container GPP normally uses 50% of the RAM size, but containers should use only what is required for the expected application environment.
Using docker run ... --shm-size=<desired memory> ...
fixes this issue.
Solution:
To prevent having to add every argument that is normally accepted by the docker run command, adding an --arg argument can offer users the ability to pass arguments through to the command. For the above two examples the gpp could be run via the following command:
./gpp start mGPP --args "--ulimit nproc=65536 --shm-size=256M"
This is possible by changing the scripts/gpp.sh file with the following diff:
--- a/scripts/gpp.sh
+++ b/scripts/gpp.sh
@@ -50,6 +50,7 @@ Usage: $0 start|stop NODE_NAME (options)
[-g|--gpp GPP_NAME] GPP Device name, default is GPP_[UUID]
[-d|--domain DOMAIN_NAME] Domain Name, default is REDHAWK_DEV
[-o|--omni OMNISERVER] IP to the OmniServer (detected: ${OMNISERVER})
+ [--args <ARGS>] Additional arguments passed to 'docker run'
[-p|--print] Just print resolved settings
Examples:
@@ -106,6 +107,10 @@ while [[ $# -gt 0 ]]; do
usage
exit 0
;;
+ --args)
+ ARGUMENTS="${2:?Missing ARGUMENTS Argument}"
+ shift
+ ;;
-p|--print)
JUST_PRINT=YES
;;
@@ -127,6 +132,7 @@ fi
# Enforce defaults
GPP_NAME=${GPP_NAME:-GPP_$(uuidgen)}
DOMAIN_NAME=${DOMAIN_NAME:-REDHAWK_DEV}
+ARGUMENTS=${ARGUMENTS:-""}
if ! [ -z ${JUST_PRINT+x} ]; then
cat <<EOF
@@ -185,6 +191,7 @@ if [[ $COMMAND == "start" ]]; then
-e DOMAINNAME=${DOMAIN_NAME} \
-e OMNISERVICEIP=${OMNISERVER} \
${NETWORK_ARGS} \
+ ${ARGUMENTS} \
--name ${CONTAINER_NAME} \
${IMAGE_NAME} &> /dev/null
Similar changes could be done to all of the launch scripts to prevent future issues of this same nature.
Issue:
docker-redhawk/scripts/usrp.sh sets environment variable USRP_IP in the container.
-e USRP_IP=${USRP_IP:-} \
docker-redhawk/Dockerfiles/files/usrp-node-init.sh expects the environment variable USRP_IP_ADDRESS to be set in the container
if ! [ -z ${USRP_IP_ADDRESS} ]; then
print_option IP\: ${USRP_IP_ADDRESS}
USRP_CONFIG_ARGS="${USRP_CONFIG_ARGS} --usrpip=${USRP_IP_ADDRESS}"
fi
Effects:
USRP FEI does not set the target_device.ip_address variable inside the USRP node. Without this setting the FEI is unable to find the device.
Recommended solutions:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.