aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2018-10-02Transciever: Log values causing Tx underrunPau Espin Pedrol1-1/+2
Change-Id: I68e18075eade55034567d96fc774d00a794afeeb
2018-10-02CommonLibs/Makefile.am: Specify libcommon_la_LIBADDPau Espin Pedrol1-0/+1
This way the dependencies are passed after the .la object, which seems to be the correct order. Some setups may fail to find some symbols from libosmocore otherwise (OBS i586). Change-Id: I22c80055bcffd4179a0a8ca76533ba7aaa38c859
2018-09-28Use pthread_setname_np to name threadsPau Espin Pedrol6-4/+43
osmo-trx can start a considerable amount of threads that can make debugging it challenging at least. By using phtread_setname_np, the system sets a meaningful name to the thread which can be seen while debugging with gdb or by printing /proc/$pid/task/$tid/comm. Now we also log system TID when setting the name so we can identify different tasks in /proc even if pthread_setname_np fails. Change-Id: I84711739c3e224cb383fd12b6db933785b28209e
2018-09-25ensure well-formed example config filesHarald Welte4-24/+24
Change-Id: I9be2bab3b88a96e94e463e5ab22f9814bd6de950
2018-09-20device/lms/LMSDevice.cpp: fix compilation warningVadim Yanitskiy1-1/+1
The following warning was observed with GCC 4.8.5: make[4]: Entering directory `.../osmo-trx/Transceiver52M/device/lms' CXX LMSDevice.lo LMSDevice.cpp: In member function 'LMSDevice::writeSamples()': LMSDevice.cpp:582:22: warning: 'rc' may be used uninitialized in this function [-Wmaybe-uninitialized] samplesWritten += rc; Let's fix this by zero-initializing 'rc'. Change-Id: I4b4a061fc12e5fd1db8d1087d8e0c46ff1e23412
2018-09-13cosmetic: Use proper whitespace in several for loopsPau Espin Pedrol2-3/+3
Change-Id: I82bdeb8a3fa38f3d125e8cbccc3eddbf2b8d8f58
2018-09-12Install sample cfg file to /etc/osmocomPau Espin Pedrol5-1/+24
Change-Id: Ib871a3cd14386ef6e6b512a3d66e7e7a839295a5
2018-09-12Install systemd services with autotoolsPau Espin Pedrol12-6/+47
Change-Id: Ia1a4fb62dee35737ece1f3501f352501eba2449e
2018-09-10jenkins.sh: Add --enable-werror flag to osmo-trx configure stepPau Espin Pedrol1-1/+1
This way we catch newly introduced compilation warnings in osmo-trx. Change-Id: I7effaf243fd6e7fe69728cfce5f97e0b5bd4743c
2018-09-10Vector: Copy arrays in a sane way for non-trivially copyable typesPau Espin Pedrol2-6/+23
Avoids this type of compilation warnings: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of non-trivially copyable type ‘class Complex<float>’; use copy-assignment or copy-initialization instead [-Werror=class-memaccess] Change-Id: I9724454dfb7b87f74f39074e4004580ac3b5fe5c
2018-09-10radioInterfaceMulti:pullBuffer: Sanely convert float array to complex arrayPau Espin Pedrol1-3/+16
Fixes this type of compilation warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of non-trivially copyable type ‘class Complex<float>’; use copy-assignment or copy-initialization instead [-Werror=class-memaccess] Change-Id: Ibb2380a0a335ce798fe87221519fbbebade53054
2018-09-10cosmetic: Fix trailing whitespace in several filesPau Espin Pedrol2-10/+10
Change-Id: Ibf5a69f0a3a309e87814635fd903b114fe68890c
2018-09-10SigProcLib: Use available copyTo Vector API instead of memcopyPau Espin Pedrol2-7/+5
This change allows to remove some wrong use of code as per compilation warning: osmo-trx/Transceiver52M/sigProcLib.cpp:1266:40: error: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of non-trivially copyable type ‘class Complex<float>’; use copy-assignment or copy-initialization instead [-Werror=class-memaccess] midMidamble->size() * sizeof(complex)); Change-Id: Id446711349bec70fa4e7c8efe0f7f9faf7e4f277
2018-09-10UHHDDevice: Replace deprecated header uhd/utils/thread_priority.hppPau Espin Pedrol1-1/+3
Fixes compilation warning: In file included from osmo-trx/Transceiver52M/device/uhd/UHDDevice.cpp:31: /usr/include/uhd/utils/thread_priority.hpp:10:17: note: #pragma message: This header is deprecated - please use <uhd/utils/thread.hpp> instead. Header was moved in uhd.git c33928d2bbdd27688c3475e77fc461e7d16eba5a. Change-Id: I6299df48a5e14c54eaa07288d166c705eb9ebdbe
2018-09-04update git-version-gen to generate proper version numbersHarald Welte1-1/+2
We don't want the version of the last tagged version, but the version number uniquely representing the current HEAD. Use the script from libosmocore. I suspect that this somehow got broken in commit 00d5114717040fedd443e3f723385ede434c8b39 Related: OS#3517 Change-Id: Iba3212aa417dce4240c5c27eb4f12afcd9c95e5b
2018-09-04configure.ac: Specify default language as C++Pau Espin Pedrol1-0/+1
This is useful if we add more AC_CHECK_HEADER or similar configure tests including C++ header files or required C++ features, since otherwise gcc is used by default and test fail. Change-Id: Iee757c78b72290c5d2a4c31339800a4e72b6be23
2018-09-04radioInterface: Fix variable storing integer return valuePau Espin Pedrol1-2/+3
Change-Id: I0a0a06a6d16a228cfcb7bd746bab2d79f10ce244
2018-09-04osmo-trx: Add osmo_signal to stop whole transceiver chain correctly on errorPau Espin Pedrol5-2/+79
Transceiver::stop() can only be called from either CTRL iface thread or from main thread (running osmocom loop). That's because stop attempts to cancel and then join all the other threads, which would then lock if attempting to stop from some of them. As a result, the best option is to indicate to the user of the transceiver option (osmo-trx.cpp) to stop it in a correct fashion by destroying the object from the main thread. Change-Id: Iac1d2dbe2328e735db2d4b933cb67b1af1babca1
2018-09-03lms: Return error on device read timeoutPau Espin Pedrol1-3/+5
If LImeSDR device is unplugged or its fw crashes during operation, reading from the device will fail and will first receive short reads and finally 0 byte reads. Let's quickly notify these events to upper layers instead of trying to process the buffer and checking timestamps for something we know it's already not useful. Related: OS#3340 Change-Id: Ib1af8cdd6cdadf581b039882add4049eea45a0f7
2018-09-03radioInterface: forward errors from RadioDevice to Transceiver in recv pathPau Espin Pedrol4-18/+22
Change-Id: Id7b08b19d6575c79b4d57db656a17ff05bb61ee9
2018-09-03cosmetic: Fix trailing whitespacePau Espin Pedrol3-4/+4
Change-Id: Ia647cfed0acb35adeb9b3b7824170d06c0369ef7
2018-09-03Logger: Disable pthread cancel point inside Logger destructorPau Espin Pedrol1-0/+3
pthread_cancel is implemented in c++ using exception handlers. In destructor of Log object, the log function is called which will eventually call fputs() to write to a file. Since that function is considered a cancelation point, if pthread_cancel has been called the exception handler will start unstacking frames and calling destructors in the process. At some point this will cause a runtime exception in c++ which will call std::terminate() to abort the process. The solution is thus to avoid starting the cancellation process inside the destructor. This behavior was spotted while calling the destructor of Transceiver object in forthcoming patches. See a more detailed example here: https://skaark.wordpress.com/2010/08/26/pthread_cancel-considered-harmful/ Change-Id: I71ca90f3fbc73df58b878a03361f7b7831d838b4
2018-08-30configure.ac: Add --enable-werror optionPau Espin Pedrol1-0/+19
Change-Id: Ib2782aecd400398bf36427f255c2a427ef781e06
2018-08-27vty: Fix typo in gpsdo clock reference typePau Espin Pedrol1-1/+1
Change-Id: I3f553c2cec9689524728cacb15b7daaff8166925
2018-08-17logging: Introduce new "DDEV" category for device-specific codeHarald Welte5-172/+179
The DMAIN category got too overloaded. Let's have the code in Transceive52M/device/* use the new DDEV category. Also, in some cases the log levels have been adjusted to ensure that enabling INFO level should not result in a complete overflow of messages during normal operation. Change-Id: I844fe4a75bf277cd3cc5bd8fa06e06ad97b2ea95
2018-08-17configure.ac: Fix typo in with-lms help stringPau Espin Pedrol1-1/+1
Change-Id: I7777d027fffa50dddf3f0a3c0bf2173aa8497be3
2018-08-09debian: add patches for debian8Alexander Couzens2-0/+58
The osmocom-nightly/release can create debian8 package by patching rules and control files Change-Id: I261302d2ed16e76540073589504e7426e23d00a1
2018-07-31Fix config file saving of {tx,rx}-path VTY config stringsHarald Welte1-2/+2
We were missing one indent level when writing the rx-path and tx-path Change-Id: I5d5b02c71d39220cabc2a23d059908ef3c6350e0 Closes: OS#3435
2018-06-25debian: Explicitly enable osmo-trx-uhd buildPau Espin Pedrol1-1/+1
osmotrxuhd is already being built since it's enabled by default, but let's make it more explicit that we are building it too. Change-Id: Ie9c224485cce047cd3ee4600ff7fbdb082355cdc
2018-06-25debian: Enable build of osmo-trx-lmsPau Espin Pedrol1-1/+1
Change-Id: I4711e97c844e582601a588fdc359fc020bcee001
2018-06-25Use correct paths when installing example filesPau Espin Pedrol2-4/+4
Fixes: c7756e73b73f9e7c64a1391f13e65f4f9d227bf4 Change-Id: If55d14768727c7119d86da60413861674dd3538b
2018-06-20lms: Allow values diff than 34dB to be set by setRxGain()Pau Espin Pedrol1-3/+1
Until now, setRxGain in LMSDevice did not take into account the setter parameter and was always using hardcoded 34dB, which was experimentally found to be a good default value. Let's force that value during initialization, but still allow the upper layers (controlled by BTS) to set different values. osmo-bts only sends a SETRXGAIN command (which calls setRxGain in osmo-trx) if a value is explicitly set in its VTY config, so we are on the safe side if the user doesn't explicitly configure a desired dB. Change-Id: I5684e675281a3f581855dbb56d199a6fe238a712
2018-06-20Add -V param to print versionPau Espin Pedrol1-1/+8
Change-Id: I9f2d6c4b1a508aceb1ccc0559f0902eedf2ec5af
2018-06-19debian: Add cfg file examples for osmo-trx-{lms,uhd}Pau Espin Pedrol10-0/+54
Sort cfg files according to their osmo-trx binary. Install them during make install. Add the installed cfg files to related debian packages. Change-Id: I905cdac30b441e4df0a3f5c0924d1637b9f67b90
2018-06-19contrib: Add systemd services for all backendsPau Espin Pedrol6-0/+36
Change-Id: I38a7ff7b9dafc3d6aa0426777036e3d7666045a7
2018-06-19debian: Add package osmo-trx-lmsPau Espin Pedrol2-1/+22
Change-Id: I3213c66907fbf0c7e531835b4993fa1bdc89edc3
2018-06-14usrp1: Fail in case of unsupported configurationHarald Welte1-0/+12
There might be some configuration that's not supported by osmo-bts-usrp1, and we should reject that properly. Change-Id: Ic7308ce0c57439fe97668bd31801c4bf76b797ad Closes: OS#3348
2018-06-14lms: Fail in case of unsupported configurationHarald Welte1-0/+8
There might be some configuration that's not supported by osmo-bts-lms, and we should reject that properly. Change-Id: I6f82edce589030a4407f6150fb7e8abe6417c1f2 Closes: OS#3347
2018-06-14lms: Fix coding styleHarald Welte1-10/+10
In Change-Id Ib2fca81b76d027b08e2891056fa076d071597783 we introduced some coding style violations. Let's make newly-added code follows standard Osmocom coding style. Change-Id: Ib7ddd275014f03a2eed3cddc02b1356e2b00c0bc
2018-06-14radioDevice: better encapsulation in base classHarald Welte6-34/+38
It's not good style to have the derived classes initialize members inherited from the base class using "this->foo = bar". Rather, let's make the base class have a constructor, and call that constructor to initialize the members of the base class. While doing this * rename 'offset' to 'lo_offset' to avoid confusion with timestamp offset * move 'InterfaceType' into the base class * move 'chans' into the base class * move 'rx_sps' into the base class * mark base class members as 'protected' Change-Id: Ib885675a7612a392aa7f75fca81269ddcff2f6ab
2018-06-13radioDevice: Move tx_sps from derived into base classHarald Welte6-17/+18
All three derived classes use a tx_sps member, let's move this into the base class. Change-Id: I73b4aa2705c5049561e2d7b21301a0d2b3c96ced
2018-06-13lms: Call set_antennas() during open() methodHarald Welte1-0/+5
Without this call, the antenna/path configuration is not applied. Change-Id: I0bca58266b59f1315ec72b6407fe4f4495aff678
2018-06-13lms: Fix support for rx_paths / tx_pathsHarald Welte2-3/+10
Before this patch, any configuration in osmo-trx.cfg regarding the rx and tx "antenna" (path) would have been completely ignored, as the radioDevice::make() function would simply drop those arguments to the floor. Change-Id: Ie50f854abbc9dcf351cddc052d10206382e1d5d3
2018-06-13move set_antennas() from UHD to generic radioDevice base classHarald Welte4-33/+29
Change-Id: I806143e9db21f0be4dcc6a376b3a630be7aeb3ba
2018-06-13lms: Reduce Rx gain from 47 to 34 dBZydrunas Tamosevicius1-1/+1
Initially, Rx gain was hardcoded to be 47. This was too high for our setup and we were constantly getting "clipping detected" messages. Reducing Rx gain to 34 solved the issue. However, it looks like gains should be controlled through configuration files. Change-Id: I30580f18c4ad630c09f725b1d24c125fc3119809
2018-06-13lms: fix LMS_StartStream() handling for multiple channelsZydrunas Tamosevicius1-0/+5
LMS_StartStream() (in LMSDevice::start()) was moved to separate loop. It is because LMS_SetupStream() would fail for second channel if streaming has already been started (LMS_StartStream()) for single channel configuration. Change-Id: I6704bb92864aa81417507c4ae24a22f41dc529c1
2018-06-13lms: Reduce log level of "send buffer of len ..."Zydrunas Tamosevicius1-1/+1
Log level of "send buffer of len ..." messages was changed as it was causing problems on some machines. Change-Id: I605d50e81966c7bd169b27788d62af6fb54c84e1
2018-06-13lms: Use same timestamp offset like when using LimeSDR via UHDZydrunas Tamosevicius1-5/+2
The tx timestamp offset was not set. We set it to the same value as it was in UHD interface for LimeSDR Change-Id: I78bc40cd575097f71a5f82b63467fa81c3f8d837
2018-06-13lms: Check LPBFW to set is within supported rangePau Espin Pedrol1-6/+26
As of LimeSuite 618fbb9c3188b36d75ad5785a97b8887dcc468f6, it seems 5e6 is within the returned range, but LMS_SetLPFBW fails anyway. See for more information: https://github.com/myriadrf/LimeSuite/issues/184 Change-Id: I967e7da7c0e3e8138b76733ee4a0e6311d20b62e
2018-06-13lms: Makefile.am: Reorder params to fix link issuePau Espin Pedrol1-2/+2
It seems the order in which static code and -lfoo is passed to the linker matters. This commit is a lms specific follow-up of commit 2a8183bdf0dfd5c5a59c3933fb932e827ddf811c. Change-Id: I59c20d268ecac4c22689124165c47295bd9176d4