Commit Graph

21 Commits

Author SHA1 Message Date
eric1tran 778d85e75f Start dump1090-fa after installing due to behavioral change in compat 10 2022-01-11 19:19:33 +00:00
Oliver Jowett bff71dc820
Move all converters to starch-based implementations (#97)
* Switch all conversion routines to use starch.

main user-visible changes:

 * ensure you check out submodules ('git clone --recurse-submodules")
 * --version shows the CPU features and DSP implementations in use
 * --wisdom allows overriding of the built-in architecture wisdom
 * --dcfilter no longer supported
 * "starch-benchmark" binary will benchmark all options on the
   current machine and can produce a wisdom file to feed to
   the --wisdom option

If you have a usecase for --dcfilter, please get in touch and
let me know - it's an edge case and for now there's no starch/DSP
support for it, but support can be written if needed.

In almost all cases the new conversion routines are slightly or
substantially faster than the old conversion routines. The only case
that is slower is SC16/SC16Q11 on a Pi 0, which is around 10% slower
due to changing from heavily approximated lookup tables to higher
quality results (but SC16 is probably already out of reach of a Pi 0)

* No need to build with SC16Q11_TABLE_BITS any more

* Add oneoff/uc8_capture_stats

(reads a UC8 capture; measures min/max/mean I and Q)

* Switch UC8 conversion to 127.4 center, 128 range.

Looking at actual UC8 captures from a RTL2832, the mean I and Q
are actually at 127.4, so use that as the zero point.

This means that the resulting I/Q maximum values could be as large as
127.6. Switch to 128 for simplicity.

* Switch to the new UC8 zero offset in benchmarks, fix some bugs

* Fix some bugs in SC16/SC16Q11 validation, tighten the max error requirements

* Ditch UC8 approximation path, add a NEON VRQSQRTE path.

* Tweak the SC16 exact path, add a new impl that uses a mix of
u32 & floats.

* SC16Q11 impl tweaks:

 * add a u32->float exact path
 * ditch the approximation path
 * add a NEON VRSQRTE path
 * add a 12-bit table path (using the full signed I/Q value, not absolute value)

* Ditch SC16 approximation path, add NEON vrsqrte path

* Add oneoff/dsp_error_measurement

This runs sample input through the DSP functions that are
allowed to be inexact and dumps the results as a TSV suitable for
feeding to gnuplot to look at the actual errors.

* Update make clean, make wisdom targets

* Update wisdom based on benchmarking

* Preserve the raw wisdom benchmark data

* Update to latest starch

* Update .gitignore for new wisdom files

* Update starch generated code

* Build starch-benchmark as part of the 'all' target

* Use wisdom from /etc/dump1090-fa/wisdom.local if present

* Package starch-benchmark and a helper script to generate local wisdom data

* Remove submodules in preparation for importing them directly

* Import cpu_features v0.6.0 from https://github.com/google/cpu_features/releases/tag/v0.6.0

* Import starch at commit a725c8491dc33a321565d451b385131e589d8490
from https://github.com/flightaware/starch
2021-01-21 19:45:00 +08:00
Oliver Jowett c8d96acbdc Add support for custom builds that don't include all SDRs, to
reduce dependency requirements a little.

(Ideally we'd have some sort of module system here, and split
the dependencies out nicely into separate packages, but that's a
problem for other day; for now I can live with custom packages
having the same name as the full build, since we'll never
distribute them ourselves)
2020-08-06 14:06:20 +08:00
Oliver Jowett f1bd1a5829 Packaging updates for limesdr support 2020-08-05 20:04:25 +08:00
Carlos Pizarro 1223f7f29a
[HackRF] Added missing build configs and changed some functions to go along with the rest of the project. 2019-12-14 21:40:43 -03:00
Michael Tatarinov 196ef89aca Cleanup after removed internal webserver code.
Fixes: 52464b97c1
2017-07-28 11:35:26 +04:00
Oliver Jowett 7700cd90d3 Build/packaging work for the bladeRF 2017-02-03 00:36:46 +00:00
Oliver Jowett 2a8d6db055 Build with -DSC16Q11_TABLE_BITS=8 on armhf 2017-02-03 00:36:41 +00:00
Oliver Jowett bef563b8a3 More hacking on the Makefile to get it working nicely on both jessie + wheezy. 2016-09-16 17:16:28 +01:00
Oliver Jowett 238b9d9e22 Plan C: Back to dynamic linking! We'll build a separate wheezy package. 2016-07-11 18:46:28 +01:00
Oliver Jowett 0dde884ac7 Turn on static linking of librtlsdr
(an experiment to see if we can use the same packages on jessie and wheezy)
2016-07-11 11:38:43 +01:00
Oliver Jowett b433a521bf Start trimming dump1090-mutability down for use in piaware. 2016-01-13 00:00:08 +00:00
Oliver Jowett af3eb3df2b Move to a simpler versioning scheme (the one derived from upstream
is going to break the ordering that Debian expects very soon).

When building from source not via debian/rules, derive a version from
git describe.
2015-01-22 13:19:15 +00:00
Oliver Jowett 3af0fb51b5 Raspbian's dpkg-changelog doesn't understand -S, use some sed magic instead. 2014-12-10 21:07:45 +00:00
Oliver Jowett f707f2cdce More version reporting tweaks. 2014-12-10 12:44:00 +00:00
Oliver Jowett c6077b1e6c Use the package version as the version number compiled into the binary. 2014-12-10 12:25:43 +00:00
Oliver Jowett 125158b30a Big rearrangement to add debconf support.
/etc/default/dump1090-mutability is now generated in postinst,
if it doesn't exist, from a template in /usr/share/dump1090-mutability.
Subsequently, the config file is updated in place if debconf-driven
changes are made.

Static HTML/javascript have moved to a "html" subdir to avoid exposing
the template via the webserver.
2014-12-09 20:36:24 +00:00
Oliver Jowett b4b1c0b920 Update packaging to build a -mutability package. 2014-12-06 21:47:46 +00:00
Oliver Jowett 77912fb087 Install binaries with -mr suffix. 2014-12-05 21:36:51 +00:00
Oliver Jowett 35a382e3ce Set HTMLPATH correctly when compiling.
Put static files in /usr/share/dump1090-mr not /usr/share/dump1090
2014-12-05 21:36:02 +00:00
Oliver Jowett 0ae1d72e83 Initial work on raspbian packaging. 2014-12-05 20:18:57 +00:00