aboutsummaryrefslogtreecommitdiffstats
path: root/INSTALL.md
diff options
context:
space:
mode:
Diffstat (limited to 'INSTALL.md')
-rw-r--r--INSTALL.md85
1 files changed, 49 insertions, 36 deletions
diff --git a/INSTALL.md b/INSTALL.md
index b53e204..5ec1fc0 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -1,25 +1,22 @@
-You have 3 ways to install odr-dabmod on your host:
+# Installation
-# Using your linux distribution packaging system
-`odr-dabmod` is available on the official repositories of several debian-based distributions, such as Debian
-(from Debian 12), Ubuntu (from 24.10), Opensuse and Arch.
+You have 2 ways to install odr-dabmod on your host:
-If you are using Debian 12 (Bookworm), you will need to
-[add the backports repository](https://backports.debian.org/Instructions/)
+## Installing binary packages on some linux distributions
+
+[![Packaging status](https://repology.org/badge/vertical-allrepos/odr-dabmod.svg)](https://repology.org/project/odr-dabmod/versions)
**Notice**: this package does not include the web-based GUI and Digital Predistortion Computation engine
-# Using installation scripts
-If your linux distribution is debian-based, you can install odr-dabmod
-as well as the other main components of the mmbTools set with the
-[Opendigitalradio dab-scripts](https://github.com/opendigitalradio/dab-scripts.git)
+## Compiling manually
-# Compiling manually
-Unlike the 2 previous options, this one allows you to compile odr-dabmod with the features you really need.
+Unlike the previous option, this one allows you to compile odr-dabmod with the features you really need.
-## Dependencies
-### Debian Bullseye-based OS:
-```
+### Dependencies
+
+#### Debian Bullseye-based OS
+
+```sh
# Required packages
## C++11 compiler
sudo apt-get install --yes build-essential automake libtool
@@ -29,7 +26,7 @@ sudo apt-get install --yes libfftw3-dev
# optional packages
## ZeroMQ http://www.zeromq.org
-sudo apt-get install --yes libzmq3-dev libzmq5
+sudo apt-get install --yes libzmq3-dev
## UHD for USRP
sudo apt-get install --yes libuhd-dev
@@ -44,29 +41,37 @@ sudo apt-get install --yes libsoapysdr-dev
sudo apt-get install --yes libbladerf-dev
```
-## Compilation
+### Compilation
+
1. Clone this repository:
- ```
+
+ ```sh
# 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
- ```
+
+ ```sh
cd ODR-DabMod
- ./bootstrap
+ ./bootstrap.sh
./configure
```
+
1. Compile and install:
- ```
+
+ ```sh
make
sudo make install
```
-### Configure options
+#### Configure options
+
The configure script can be launched with a variety of options:
+
- 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`
@@ -79,45 +84,52 @@ The configure script can be launched with a variety of options:
Create debugging files for each DSP block for data analysis: `--enable-trace`
For more information, call:
-```
+
+```sh
./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.
Tricks for best performance:
-* Do not use `--disable-native`
-* Use `--enable-fast-math`
-* Add `-O3` to compiler flags
-* Disable assertions with `-DNDEBUG`
+- Do not use `--disable-native`
+- Use `--enable-fast-math`
+- Add `-O3` to compiler flags
+- Disable assertions with `-DNDEBUG`
Applying all together:
-```
+
+```sh
./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:
-```
+
+```sh
./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.
-## 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
-1. The LimeSuite for the LimeSDR from https://github.com/myriadrf/LimeSuite
-1. HackRF support for SoapySDR from https://github.com/pothosware/SoapyHackRF
+
+1. SoapySDR itself from <https://github.com/pothosware/SoapySDR>
+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
@@ -125,5 +137,6 @@ 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.