Enable PowerTools repo:
$ sudo sed -i "s/enabled=0/enabled=1/g" /etc/yum.repos.d/CentOS-PowerTools.repo
Enable EPEL repo:
$ sudo dnf -y update
# CentOS 8 Redhawk Build | |
FROM centos:8 | |
# enable PowerTools repo | |
RUN sed -i "s/enabled=0/enabled=1/g" /etc/yum.repos.d/CentOS-PowerTools.repo | |
RUN dnf -y update && \ | |
dnf -y install epel-release | |
RUN dnf -y install bzip2 gcc-c++ make libtool expat-devel python2 python2-devel xsd apr-devel apr-util-devel sqlite-devel libuuid-devel boost-devel diffutils git cmake libusb1-devel libusb-devel uhd-devel fftw-devel && \ |
Lattices are hard. As someone who doesn't consider mathematics his primary interest I take solice in the words of whoever wrote the NTL LLL documentation:
I think it is safe to say that nobody really understands how the LLL algorithm works. The theoretical analyses are a long way from describing what "really" happens in practice. Choosing the best variant for a certain application ultimately is a matter of trial and error.
There are a few libraries with LLL support:
/* | |
c++ -o test test.cpp -I/usr/local/redhawk/core/include -I/usr/local/redhawk/core/include/ossie -L/usr/local/redhawk/core/lib64 -L/usr/lib64 -lbulkio-2.1 -lbulkioInterfaces -lossiecf -lossieidl -lomniORB4 -lomnithread -DHAVE_BOOST -lboost_system-mt | |
*/ | |
#include <string> | |
#include <iostream> | |
#include <boost/thread.hpp> | |
//#include <ossie/Component.h> | |
#include <ossie/PortSupplier_impl.h> | |
#include <bulkio/bulkio.h> |
One option for compiling Redhawk for the Raspberry Pi is using QEMU on a host to compile it into the image before loading on the rpi hardware - this takes advantage of the superior hardware on your host to decrease compile time. These instructions verified for host system Ubuntu 16.04, Raspberry Pi image Raspbian Stretch 2017-09-07, and Redhawk 2.0.7.
It is important to note that Redhawk is only officially supported on CentOS 6 and 7 and therefore any time you try to compile it for other OS's it's possible (likely on systems like Ubuntu/Debian) that you'll have issues with newer versions of dependencies, the most likely offenders in the past have been:
Library | CentOS 6.9 | CentOS 7.4 | Ubuntu 16.04 | Debian 9.2 | Raspbian Stretch | Fedora 28 |
---|---|---|---|---|---|---|
gcc | 4.4.7 | 4.8.5 | 5.4.0 | 6.3.0 | 6.3.0 | 8.1.1 |
libstdc++ | 4.4.7 | 4.8.5 | 5.4.0 | 6.3.0 | 6.3.0 | 8.1.1 |