aboutsummaryrefslogtreecommitdiffstats
path: root/INSTALL.md
diff options
context:
space:
mode:
Diffstat (limited to 'INSTALL.md')
-rw-r--r--INSTALL.md170
1 files changed, 99 insertions, 71 deletions
diff --git a/INSTALL.md b/INSTALL.md
index 5cb5a04..f75e81f 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -1,41 +1,88 @@
-Required dependencies:
-======================
-
-* A C++11 capable compiler
-* pkg-config
-* FFTW 3.x
-* autoconf
-* Optional UHD for USRP
-* Optional LimeSuite for LimeSDR support
-* Optional SoapySDR (see below)
-* Optional bladerf (see below)
-* Optional ZeroMQ http://www.zeromq.org
-
-Simple install procedure:
-=========================
-
- % tar xjf odr-dabmod-X.Y.Z.tar.bz2 # Unpack the source
- % cd odr-dabmod-X.Y.Z # Change to the source directory
- % ./configure
- # Run the configure script
- % make # Build ODR-DabMod
- [ as root ]
- % make install # Install ODR-DabMod
-
-Configure options
-=================
-
+You have 3 ways to install odr-dabmod on your host:
+
+# Using binary debian packages
+If your host is running a debian-based OS and its cpu is one of amd64, arm64 or arm/v7, then you can install odr-dabmod using the standard debian packaging system:
+1. Update the debian apt repository list:
+ ```
+ curl -fsSL http://debian.opendigitalradio.org/odr.asc | sudo tee /etc/apt/trusted.gpg.d/odr.asc 1>/dev/null
+ curl -fsSL http://debian.opendigitalradio.org/odr.list | sudo tee /etc/apt/sources.list.d/odr.list 1>/dev/null
+ ```
+1. Refresh the debian packages list:
+ ```
+ apt update
+ ```
+1. Install odr-audioenc:
+ ```
+ sudo apt install --yes odr-dabmod
+ ```
+
+**Attention**: odr- (2.6.0-1) does not include the web-based GUI and Digital Predistortion Computation engine
+
+# Using the dab-scripts
+You can compile odr-dabmod as well as the other main components of the mmbTools set with an installation script:
+1. Clone the dab-scripts repository:
+ ```
+ git clone https://github.com/opendigitalradio/dab-scripts.git
+ ```
+1. Follow the [instructions](https://github.com/Opendigitalradio/dab-scripts/tree/master/install)
+
+# Compiling manually
+Unlike the 2 previous options, this one allows you to compile odr-dabmod with the features you really need.
+
+## Dependencies
+### Debian Bullseye-based OS:
+```
+# Required packages
+## C++11 compiler
+sudo apt-get install --yes build-essential automake libtool
+
+## FFTW 3.x
+sudo apt-get install --yes libfftw3-dev
+
+# optional packages
+## ZeroMQ http://www.zeromq.org
+sudo apt-get install --yes libzmq3-dev libzmq5
+
+## UHD for USRP
+sudo apt-get install --yes libuhd-dev
+
+## LimeSuite for LimeSDR support
+sudo apt-get install --yes liblimesuite-dev
+
+## SoapySDR (see below)
+sudo apt-get install --yes libsoapysdr-dev
+
+## bladerf (see below)
+sudo apt-get install --yes libbladerf-dev
+```
+
+## Compilation
+1. Clone this repository:
+ ```
+ # stable version:
+ git clone https://github.com/Opendigitalradio/ODR-DabMod.git
+
+ # or development version (at your own risk):
+ git clone https://github.com/Opendigitalradio/ODR-DabMod.git -b next
+ ```
+1. Configure the project
+ ```
+ cd ODR-DabMod
+ ./bootstrap
+ ./configure
+ ```
+1. Compile and install:
+ ```
+ make
+ sudo make install
+ ```
+
+### Configure options
The configure script can be launched with a variety of options:
-
-Disable ZeroMQ input (to be used with ODR-DabMux), output and remotecontrol: `--disable-zeromq`
-
-Disable the binding to the UHD driver for USRPs: `--disable-output-uhd`
-
-Compile using the `-ffast-math` option that gives a substantial speedup at the cost of floating point correctness: `--enable-fast-math`
-
-On some ARM systems you might need `--with-boost-libdir=/usr/lib/arm-linux-gnueabihf` so that boost gets found.
-
-Do not pass `-march=native` to the compiler: `--disable-native`
+- Disable ZeroMQ input (to be used with ODR-DabMod), output and remotecontrol: `--disable-zeromq`
+- Disable the binding to the UHD driver for USRPs: `--disable-output-uhd`
+- Compile using the `-ffast-math` option that gives a substantial speedup at the cost of floating point correctness: `--enable-fast-math`
+- Do not pass `-march=native` to the compiler by using the argument: `--disable-native`
**Remark:** Do not compile ODR-DabMod with `-march=native` compiler option. This is meant for distribution package maintainers who want to use their own march option, and for people running into compilation issues due to `-march=native`. (e.g. GCC bug 70132 on ARM systems)
@@ -44,11 +91,11 @@ Do not pass `-march=native` to the compiler: `--disable-native`
Create debugging files for each DSP block for data analysis: `--enable-trace`
For more information, call:
+```
+./configure --help
+```
- % ./configure --help
-
-Performance optimisation
-------------------------
+#### Performance optimisation
While the performance of modern systems is good enough in most cases to
run ODR-DabMod, it is sometimes necessary to increase the compilation
optimisation if all features are used or on slow systems.
@@ -61,45 +108,28 @@ Tricks for best performance:
* Disable assertions with `-DNDEBUG`
Applying all together:
+```
+./configure CFLAGS="-O3 -DNDEBUG" CXXFLAGS="-O3 -DNDEBUG" --enable-fast-math
+```
- % ./configure CFLAGS="-O3 -DNDEBUG" CXXFLAGS="-O3 -DNDEBUG" --enable-fast-math
-
-Checking for memory usage issues
---------------------------------
+#### Checking for memory usage issues
If your compiler supports it, you can enable the address sanitizer to check for memory
issues:
-
- % ./configure CFLAGS="-fsanitize=address -g -O2" CXXFLAGS="-fsanitize=address -g -O2"
+```
+./configure CFLAGS="-fsanitize=address -g -O2" CXXFLAGS="-fsanitize=address -g -O2"
+```
The resulting binary will be instrumented with additional memory checks, which have a
measurable overhead. Please report if you get warnings or errors when using the sanitizer.
-Nearly as simple install procedure using repository:
-====================================================
-
-* Download and install dependencies as above
-* Clone the git repository
-* Bootstrap autotools:
-
- % ./bootstrap.sh
-
- In case this fails, try:
-
- % aclocal && automake --gnu --add-missing && autoconf
-
-* Then use `./configure` as above
-
-SoapySDR support and required dependencies
-==========================================
-
+## SoapySDR support and required dependencies
SoapySDR is a vendor-neutral library to drive SDR devices. It can be used to
drive the HackRF and the LimeSDR among others.
Required dependencies that need to be installed are, in order:
-
1. SoapySDR itself from https://github.com/pothosware/SoapySDR
-2. The LimeSuite for the LimeSDR from https://github.com/myriadrf/LimeSuite
-3. HackRF support for SoapySDR from https://github.com/pothosware/SoapyHackRF
+1. The LimeSuite for the LimeSDR from https://github.com/myriadrf/LimeSuite
+1. HackRF support for SoapySDR from https://github.com/pothosware/SoapyHackRF
ODR-DabMod will automatically recognise if the SoapySDR library is installed on
your system, and will print at the end of `./configure` if support is enabled or
@@ -107,7 +137,5 @@ not.
A configuration example is available in `doc/example.ini`
-BladeRF support
-===============
-
+## BladeRF support
In order to use `--enable-bladerf`, you need to install the `libbladerf2` including the -dev package.