Software Defined Radio
gnuradio
gnuradio is the framework the whole SDR field is built on. It’s a toolkit of
signal-processing blocks — sources, sinks, filters, demodulators, decoders — that
you wire together into a flowgraph to build a radio system from scratch. Its
graphical editor, GNU Radio Companion, lets you assemble that flowgraph visually
and run it live; many of the standalone SDR tools are, under the hood, GNU Radio
flowgraphs someone built and packaged. When you need to decode a protocol nothing
else handles, this is where you build the decoder.
Official-repo package; Security → Software Defined Radio → gnuradio. Launch
the visual editor with gnuradio-companion; the gnuradio-config-info utility
reports the installation’s paths and version.
The help it prints
Program options: gnuradio-config-info [options]:
-h [ --help ] print help message
--print-all print all information
--prefix print GNU Radio installation prefix
--sysconfdir print GNU Radio system configuration directory
--prefsdir print GNU Radio preferences directory
--userprefsdir print GNU Radio user preferences directory
--persistentdir print GNU Radio persistent state directory
--prefs print GNU Radio preferences
--builddate print GNU Radio build date (RFC2822 format)
--enabled-components print GNU Radio build time enabled components
--cc print GNU Radio C compiler version
--cxx print GNU Radio C++ compiler version
--cflags print GNU Radio CFLAGS
-v [ --version ] print GNU Radio version
--pybind print pybind11 version used in this build
Using it
# Open the visual flowgraph editor
gnuradio-companion
# Report install prefix, version, and enabled components
gnuradio-config-info --prefix --version --enabled-components
In Companion you drag blocks onto a canvas, connect them, set their sample rates and frequencies, and hit run — the flowgraph executes live, driving your SDR and showing scopes and waterfalls you added. It’s a build-your-own-radio environment rather than a point-and-listen tool; for the latter, start with gqrx.