aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* configure.ac: check if LIBTRXCON_DIR (submodule) existsfixeria/msVadim Yanitskiy2022-12-281-1/+6
| | | | | | | Fail during the configure stage if the submodule is not fetched. Change-Id: I06456c2087e160032f5bf8b36304477390f117d0 Related: OS#5599
* configure.ac: make use of AC_MSG_CHECKING and AC_MSG_RESULTVadim Yanitskiy2022-12-281-1/+3
| | | | | | | Always log whether the MS TRX is going to be built, event if it's not. Change-Id: I1c5648b8090ba2b6638b71f2d3332dfae87b2772 Related: OS#5599
* configure.ac: cosmetic: rearrange MS TRX related logicVadim Yanitskiy2022-12-281-13/+12
| | | | | | | Make it consistent with the existing AS_IF/AM_CONDITIONAL locations. Change-Id: I760b93c1b07989b02c4c38cd20ab40e45650f2c1 Related: OS#5599
* configure.ac: allow building without cloning submodulesVadim Yanitskiy2022-12-282-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The MS TRX was intentionally added [1] as an optional feature, which requires a git submodule to be present in order to build libtrxcon. This feature can be enabled by passing --with-mstrx to the configure. But autoconf/automake is a mess. Despite in the root Makefile.am we are adding full submodule path to the SUBDIRS *conditionally*, the configure script would still fail if the submodule is not fetched: Makefile.am:32: error: required directory ./osmocom-bb/src/host/trxcon does not exist It would not even enter that directory if it's present, but somehow it's still required to exist. For the end user this means that cloning the submodule becomes a *necessary* step in order to build osmo-trx from source, even when the MS TRX is not really needed. The fact that we're unconditionally requiring the submodule, which is meant to be used by an optional feature feels wrong to me. It's also unusual for osmocom projects to require submodules, so it may (and already did) cause build failures when cloning as usual. Let's work this problem around by defining LIBTRXCON_DIR variable in configure.ac and using it in the root Makefile.am. If the MS TRX is not enabled explicitly, make autoconf/automake happy by assigning LIBTRXCON_DIR the submodule's root directory, which is always present but empty if the submodule is not fetched. Change-Id: I02ae2b37c82ae2f55e7d9bd92e226f2b8b023968 Related: [1] b7253c6fdc88a3e2e0c8b441dc3c34dfb1c15d24 Related: OS#5599, OS#5846
* configure.ac: fix: properly check whether to enable ms-trxVadim Yanitskiy2022-12-231-1/+1
| | | | | | | | | | Condition 'test ENABLE_MS_TRX' is always true because 'ENABLE_MS_TRX' is a string literal, not a variable... Because of this, automeke will unconditionally try to configure the submodule. Change-Id: Icbb9278c688bfe506d5ad726f16a6c200572de1b Fixes: b7253c6fdc88a3e2e0c8b441dc3c34dfb1c15d24 Related: OS#5599
* ipc: remove old autotools workaroundEric2022-12-231-9/+1
| | | | | Closes: OS#5845 Change-Id: I3f8a0204b1fda52d1228add8afde620274b164a5
* clang-format: proper c++ standardEric2022-12-231-1/+1
| | | | Change-Id: I9828093a08ed8b4c2a11f482f674368ac137d4dc
* ipc: add missing overrideEric2022-12-231-1/+1
| | | | Change-Id: Ib1493ac10b40d24372075d4cebd67015192675e0
* clean up mutex, scopedlock, and signal classesEric2022-12-2313-238/+97
| | | | | | | | | | | | This also uncovers very interesting design decisions like the copying of mutexes and condition vars depending on recursive locks that were previously hidden by shady c function calls.. We have perfectly good c++11 versions for all of that. While we're at it, also use the initialization list for the other (still copy constructable) vectors, which cleans up the radio interfaces. Change-Id: Idc9e3b1144c5b93f5dad2f8e0e30f1058477aa52
* ms-trx supportEric2022-12-2322-9/+3538
| | | | | | | | | | | | | | | | | | This is basically a trxcon that includes a transceiver, and can just be used with existing and future apps supporting the trxcon interface, i.e. mobile or ccch_scan. Supports bladerf and uhd. Currently using hardcoded sched/prios aimed at a setup with working, reliable usb and reserved cores, for example a raspi 4 (ONLY 4, not 3, not 2, not any other version) Additionally builds test tools used for development: osmo-trx-syncthing* see https://osmocom.org/projects/baseband/wiki/MS-side_GPRS for the project description and details Change-Id: I36c65a8c725c4da76dc70006cd96b0a2b6878e84
* contrib/jenkins.sh: dump submodule status before buildingVadim Yanitskiy2022-12-221-0/+1
| | | | Change-Id: I0f9d8f9213fd59605172fac011306c96c39bd5eb
* properly update osmocom-bb submodule, for real this time..Eric2022-12-222-1/+0
| | | | Change-Id: Icb3ba575cf5235db7e6c03df3d7d45133d535c50
* ctrl: take both address and port from vty configMax2022-12-171-1/+1
| | | | Change-Id: Id7d1425e603cc62a62a63d1057291861f02782ba
* vita demod by piotr krysik, modifiedEric2022-12-135-0/+969
| | | | | | | | Grabbed from gr-gsm 2de47e28ce1fb9a518337bfc0add36c8e3cff5eb Had a few rounds of extensive cleanup (not the va itself). Uses gcc multiversioning for x86 targets. Change-Id: I5466c522cf4de984a4810ec46df43a10b52ed78f
* update osmocom-bb submodule to fix make distcheckEric2022-12-131-1/+1
| | | | | | see https://gerrit.osmocom.org/c/osmocom-bb/+/30563 Change-Id: Ie7b10891b69c3dc863c76284f422f9e9509ac244
* bladerf xa4 supportEric2022-12-067-0/+920
| | | | | | | | | This is not really finished, there are multiple reasons to not use this: 1) main clock is not a gsm multiple, so it will continously drift 2) small buffer sizes lead to tx gaps that are hard to detect and break everything. Change-Id: I455c34bb9520d5f09eeb1ac76fceb4bdea94d1ac
* add checkpatch configEric2022-12-021-0/+4
| | | | | | | | | | - do not lint the submodule - do not lint the grgsm code - do not lint headers, checkpatch does not understand that this is a c++ project and any change to existing headers will cause issues. - also do not do arcane C varargs checks that do not apply to C++ Change-Id: Ie7a9fbd021e12a88db30212240af2332c6cdcb37
* osmocom-bb for ms-trx side trxcon integrationEric2022-12-012-0/+4
| | | | Change-Id: I784a3d66b68f6458056d92db2ec596755b704e61
* rename noisevector class -> avgvectorEric2022-11-303-6/+9
| | | | | | The vectors feature is averaging, and not adding noise. Change-Id: I05def8ab9ea7a2cece8db09c36c303e13ef40927
* ignore vscode dirsEric2022-11-281-0/+3
| | | | Change-Id: Iad9fd20924b7cfc6dbbfb708aa9c692a3cab574c
* Add realtime scheduling and set priority in service fileMax2022-11-114-0/+20
| | | | | | | This sets highest realtime priority among all Osmocom services. Related: OS#5687 Change-Id: Id74acf201d4388493f0eeb38909641c662551164
* Transceiver::expectedCorrType(): RACH is always 8-bit on PTCCH/UVadim Yanitskiy2022-10-261-1/+1
| | | | | | | It does not make sense for the MS to use 11-bit Access Bursts on PTCCH/U because the payload does not matter, only the ToA does. Change-Id: I5fb9f1c6810cdcd26a885b183e414d01d422eb28
* Set working directory in systemd service fileMax2022-09-094-0/+8
| | | | | | | | | | | By default systemd will execute service with root directory (or home directory for user instance) which might result in attempts to create files in unexpected place. Let's set it to 'osmocom' subdir of state directory (/var/lib for system instance) instead. Related: OS#4821 Change-Id: I041bb9e0b4250826d2d15d0ea2cdb93d7a0cd04b
* threshold_timer_update_intv(): call osmo_timer_del() unconditionallyVadim Yanitskiy2022-08-061-2/+1
| | | | | | osmo_timer_del() does check if a timer is active internally. Change-Id: Icaf6f31a3235a3fb6993fa2bb35190150e35c2c2
* contrib/jenkins: don't run "make distcheck" on armOliver Smith2022-07-111-2/+5
| | | | | | | | | | | Avoid building osmo-trx a second time on arm during "make distcheck". If the build of osmo-trx already passed on arm, running "make distcheck" should give the exact same result as on x86_64. This should shorten the build time significantly for osmo-trx jobs running on raspberry pis, currently they take half an hour. Change-Id: Ib4fbf7d54d479bbdda3c1415493bfc57b37d3971
* gitignore: add uhddev_ipc.cppOliver Smith2022-07-081-0/+1
| | | | | | This file gets generated during the build. Change-Id: I70bfb456e309daa4436767b2e55bce0c038a4975
* configure.ac: add -lboost_thread for uhd < 4.2.0Oliver Smith2022-07-081-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | Fix for the following error we see since building master-osmo-trx on debian 10 instead of 9: /usr/bin/ld: ipc_driver_test-uhdwrap.o: undefined reference to symbol '_ZTIN5boost6detail16thread_data_baseE' /usr/bin/ld: //usr/lib/x86_64-linux-gnu/libboost_thread.so.1.67.0: error adding symbols: DSO missing from command line After spending a lot of time on researching this, my understanding is now that uhd.pc should have had "-lboost_thread" in versions up to the latest release 4.2.0 because before that it would include boost thread headers in its logging code: https://github.com/EttusResearch/uhd/commit/04a83b6e76beef970854da69ba882d717669b49c ld is able to figure out which library provides the missing symbol, and apparently depending on the binutils version and linker flags, it may just ignore this and not show an error. This is why apparently it worked with debian 9 and still does work in OBS (different flags), and why it was not fixed upstream in uhd.pc. By now fixing it is not needed in the latest version anymore, and there are already versions of uhd.pc in various linux distributions without -lboost_thread, so I think it's appropriate to add the workaround here in configure.ac. Fixes: OS#5608 Related: https://stackoverflow.com/q/19901934 Change-Id: I0367f1c2981bf56252e7514d5993cbbec960b21b
* Bump version: 1.4.0.3-9a3e → 1.4.11.4.1Pau Espin Pedrol2022-06-291-0/+13
| | | | Change-Id: I9a930264b7c40b3e205c9818634597cc21364a50
* update git URLs (git -> https; gitea)Harald Welte2022-06-183-5/+5
| | | | Change-Id: I1ac62853250a6717f502959bd96fdc3e9ead7a91
* tests: use 'check_PROGRAMS' instead of 'noinst_PROGRAMS'2022q2Vadim Yanitskiy2022-04-132-3/+3
| | | | | | | | When using 'check_PROGRAMS', autoconf/automake generates smarter Makefiles, so that the test programs are not being compiled during the normal 'make all', but only during 'make check'. Change-Id: I816689e2aeac9decbc44ba210956a929cc7a3169
* treewide: remove FSF address2022q12021q4Oliver Smith2021-12-1425-100/+0
| | | | | | | | | Remove the paragraph about writing to the Free Software Foundation's mailing address. The FSF has changed addresses in the past, and may do so again. In 2021 this is not useful, let's rather have a bit less boilerplate at the start of source files. Change-Id: I8ba71ab9ccde4ba25151ecbeb2a323f706b57d43
* Bump version: 1.3.1.28-019d-dirty → 1.4.01.4.0Pau Espin Pedrol2021-11-165-10/+49
| | | | Change-Id: Ie675909593b0c383b59b7b4a4edd46cd93283622
* LMSDevice: LMS_GetDeviceList() may return a negative numberVadim Yanitskiy2021-10-251-3/+4
| | | | | Change-Id: I855bd8ea6d9cb0f285f4dbbf3bcd09bff4e71044 Fixes: CID#240718
* IPCDevice: check value returned from select()Vadim Yanitskiy2021-10-251-1/+6
| | | | | Change-Id: I1c823317659547bb2391c57ac4d7931de1a383e3 Fxies: CID#240744
* IPCDevice: use thread safe strerror_r() instead of strerror()Vadim Yanitskiy2021-10-251-3/+7
| | | | Change-Id: Ia51ffa51ec7729572faca0282ae41c1e4968049f
* trx_rate_ctr: use thread safe strerror() in device_sig_cb()Vadim Yanitskiy2021-10-251-2/+5
| | | | Change-Id: Ibd52af22bbe99652f402ada87410de167a124b73
* lms,uhd: Allow changing band between poweroff & poweronPau Espin Pedrol2021-09-214-7/+16
| | | | | | | | | | Before this patch, reconnecting to osmo-trx and attempting to configure it for another band is not going to work without restarting the process. The new variable is added in order to still allow POWEROFF followed by a POWERON without need to reconfigure the device. In that case, previous configuration is kept. Change-Id: I43e5e1e4dcb36be605c6bd25dd6a5f3649e244e7
* lms,uhd: Skip re-assigning same bandPau Espin Pedrol2021-09-212-4/+8
| | | | | | | There's no need to spend time looking up again the same band description. Change-Id: I6f5631c9e64b9c261d52a856d757d08d2f336947
* lms,uhd: Validate band of RxFreq tooPau Espin Pedrol2021-09-212-0/+34
| | | | | | | So far the validation is only done on TxFreq for all TRX. Let's also do it for RxFreq. Change-Id: I30eef2727ee96b1344aa1416edd66e2302b88964
* lms: Drop duplicated checkPau Espin Pedrol2021-09-211-6/+0
| | | | | | Same check is already done by set_band(). Change-Id: I48d14f35e83fa17d1a8f4154479f0a5cee0f816d
* computeCI: Document hardcoded multiplierPau Espin Pedrol2021-09-031-1/+7
| | | | | | | Logarithm change of base rule is used. Document it so it's clear where it comes from. Change-Id: Ia588e8dafda4e1abe0721f12491661949339a1ba
* d/patches/build-for-debian8.patch: removeOliver Smith2021-09-033-66/+0
| | | | | | | | Remove this workaround, as we are not building for debian 8 anymore. Related: OS#5223 Depends: osmo-ci Ibe7ba124557969df62798ba49c4489e9606c2341 Change-Id: I5519075a7f95fa61b0b5f1825e4e9324b9eede76
* cosmetic: Fix typo in commentPau Espin Pedrol2021-09-011-1/+1
| | | | Change-Id: I33f4253cecab8d92eec75af49e1671874b8cc111
* detectGeneralBurst(): Increase log level about clipping to INFOPau Espin Pedrol2021-09-011-1/+1
| | | | | | | | | | There's another related logging line also at INFO level in the caller path in Transceiver.cpp, but it only prints if detectBurst() failed. Let's print this one as INFO too, which proved to be a good logging level. This way user also notices gain is too high despite osmo-trx is still able to decode bursts. Change-Id: Ieca4f19ae1099a430e9b838f8b6780b1c61a87a9
* computeCI(): Constify read-only variablePau Espin Pedrol2021-09-011-3/+1
| | | | Change-Id: Ia157b970db92eef252c3657b35607307b7ebf988
* computeCI(): Rename verbose repeated getter to constantPau Espin Pedrol2021-09-011-4/+5
| | | | Change-Id: I9b426d01a282f572c0b915c5666642dce4c60475
* computeCI(): Constify param and pass it as referencePau Espin Pedrol2021-09-011-1/+1
| | | | Change-Id: Icba5fce57c858bd16196ae3012c100c7e4134335
* detectBurst(): constify parameterPau Espin Pedrol2021-09-011-2/+2
| | | | Change-Id: I3d8738b492a175f2ef0c570579e335e7b7695694
* detectBurst(): Clear downsampling code pathPau Espin Pedrol2021-09-011-8/+12
| | | | | | | downsampleBurst() and the Resampler below it clearly only support or are confgiured for 1<->4 setup currently. Change-Id: Iebaff7a34bd24e56627f148182859918accbfa82
* lms: init bandEric2021-07-111-1/+3
| | | | | | | | Gain setting without a band was apparently led to a very low output level, thanks to defog for pointing this out. Change-Id: I8b59d38dd7b0781776c9e61226185879541fdc53 Related: OS#3342