Skip to content

Loading builds...

Changes

#560 (Mar 18, 2026, 3:51:09 PM)

transceiver: add optional WebSDR device support

- Add support for WebSDR devices enabled via the --with-websdr
configure flag.
- add libosmo-trx-websdr library and pkg-config file
- update .gitignore for wasm and pkg-config artifacts

Change-Id: Ia0d340c323c2eea28fbe82601ba0af7cfbd68f6d
dtv.comp at

#559 (Mar 18, 2026, 3:51:09 PM)

transceiver: split control command handling from socket I/O

- move control command parsing/response generation into ctrl_cmd_handle()
- keep ctrl_sock_handle_rx() focused on socket read/write

Change-Id: I5413aa511e951522270c75635e89448395fc429e
dtv.comp at

#558 (Mar 18, 2026, 3:51:09 PM)

proto_trxd: add helpers to prepare burst indication packets

- introduce trxd_prepare_burst_ind_v0() and trxd_prepare_burst_ind_v1()
- reuse prepared packet size in send helpers
- handle idle frames during packet preparation
- use ssize_t consistently for prepared/write sizes

Change-Id: Ie94a1df4879cbf6056cd05c9621c46db1ed972fd
dtv.comp at

#557 (Mar 18, 2026, 1:11:34 PM)

transceiver: add optional WebSDR device support

- Add support for WebSDR devices enabled via the --with-websdr
configure flag.
- add libosmo-trx-websdr library and pkg-config file
- update .gitignore for wasm and pkg-config artifacts

Change-Id: Ia0d340c323c2eea28fbe82601ba0af7cfbd68f6d
dtv.comp at

#556 (Mar 18, 2026, 12:46:58 PM)

transceiver: split control command handling from socket I/O

- move control command parsing/response generation into ctrl_cmd_handle()
- keep ctrl_sock_handle_rx() focused on socket read/write

Change-Id: I5413aa511e951522270c75635e89448395fc429e
dtv.comp at

#555 (Mar 18, 2026, 12:46:57 PM)

proto_trxd: add helpers to prepare burst indication packets

- introduce trxd_prepare_burst_ind_v0() and trxd_prepare_burst_ind_v1()
- reuse prepared packet size in send helpers
- handle idle frames during packet preparation
- use ssize_t consistently for prepared/write sizes

Change-Id: Ie94a1df4879cbf6056cd05c9621c46db1ed972fd
dtv.comp at

#554 (Mar 18, 2026, 12:46:57 PM)

transceiver: add optional WebSDR device support

- Add support for WebSDR devices enabled via the --with-websdr
configure flag.
- add libosmo-trx-websdr library and pkg-config file
- update .gitignore for wasm and pkg-config artifacts

Change-Id: Ia0d340c323c2eea28fbe82601ba0af7cfbd68f6d
dtv.comp at

#553 (Mar 18, 2026, 12:17:55 PM)

transceiver: add optional WebSDR device support

- Add support for WebSDR devices enabled via the --with-websdr
configure flag.
- add libosmo-trx-websdr library and pkg-config file
- update .gitignore for wasm and pkg-config artifacts

Change-Id: Ia0d340c323c2eea28fbe82601ba0af7cfbd68f6d
dtv.comp at

#552 (Mar 18, 2026, 9:53:33 AM)

transceiver: split control command handling from socket I/O

- move control command parsing/response generation into ctrl_cmd_handle()
- keep ctrl_sock_handle_rx() focused on socket read/write
- switch response formatting from sprintf() to snprintf()

Change-Id: I5413aa511e951522270c75635e89448395fc429e
dtv.comp at

#551 (Mar 17, 2026, 11:02:04 AM)

transceiver: replace sprintf() with snprintf() in ctrl_sock_handle_rx

Change-Id: I7b725534c83a759e7b8f72f605dbcc38d778b1f2
dtv.comp at

#550 (Mar 17, 2026, 11:02:04 AM)

transceiver: return -EINVAL for invalid SETSLOT

Change-Id: I90bda68268abdeee9c766a3bf4189fba8f13da53
dtv.comp at

#549 (Mar 17, 2026, 11:02:04 AM)

proto_trxd: add helpers to prepare burst indication packets

- introduce trxd_prepare_burst_ind_v0() and trxd_prepare_burst_ind_v1()
- reuse prepared packet size in send helpers
- handle idle frames during packet preparation
- use ssize_t consistently for prepared/write sizes

Change-Id: Ie94a1df4879cbf6056cd05c9621c46db1ed972fd
dtv.comp at

#548 (Mar 17, 2026, 11:02:04 AM)

transceiver: make control command parsing arguments const

Change-Id: I2f3aa5363c337791451a388f394d7351d3183908
dtv.comp at

#547 (Mar 17, 2026, 11:02:04 AM)

transceiver: split control command handling from socket I/O

- move control command parsing/response generation into ctrl_cmd_handle()
- keep ctrl_sock_handle_rx() focused on socket read/write
- switch response formatting from sprintf() to snprintf()

Change-Id: I5413aa511e951522270c75635e89448395fc429e
dtv.comp at

#546 (Mar 17, 2026, 11:02:04 AM)

device/websdr: add WebSDR transceiver backend and build target

- add libosmo-trx-websdr library and pkg-config file
- integrate WebSDR device into the autotools build system
- update .gitignore for wasm and pkg-config artifacts

Change-Id: Ia0d340c323c2eea28fbe82601ba0af7cfbd68f6d
dtv.comp at

#545 (Mar 16, 2026, 6:17:39 PM)

transceiver: add optional Laurent burst LUT modulation (int16)

Introduce an optional Burst LUT optimization for Laurent-based burst
modulation, enabled via --with-burst-lut.

- Add precomputed Laurent LUT tables (float and int16 I/Q variants)
- Generate LUT at initialization (prepareBurstLUT)
- Use LUT-based modulation for sps=4 when enabled
- Keep original modulateBurstLaurent() as fallback
- Add configure.ac option and USE_BURST_LUT define

This reduces runtime computation by replacing per-burst Laurent
processing with memcpy-based LUT lookups.

Change-Id: I1715c2d33dc55fe1c7be5c6e7259d378ea5e80b2
dtv.comp at

#544 (Mar 16, 2026, 5:01:19 PM)

transceiver: make control command parsing arguments const

Change-Id: I2f3aa5363c337791451a388f394d7351d3183908
dtv.comp at

#543 (Mar 16, 2026, 5:01:19 PM)

transceiver: return -EINVAL for invalid SETSLOT and preserve original behavior

Change-Id: I90bda68268abdeee9c766a3bf4189fba8f13da53
dtv.comp at

#542 (Mar 16, 2026, 5:01:19 PM)

transceiver: add optional Laurent burst LUT modulation (int16)

Introduce an optional Burst LUT optimization for Laurent-based burst
modulation, enabled via --with-burst-lut.

- Add precomputed Laurent LUT tables (float and int16 I/Q variants)
- Generate LUT at initialization (prepareBurstLUT)
- Use LUT-based modulation for sps=4 when enabled
- Keep original modulateBurstLaurent() as fallback
- Add configure.ac option and USE_BURST_LUT define

This reduces runtime computation by replacing per-burst Laurent
processing with memcpy-based LUT lookups.

Change-Id: I1715c2d33dc55fe1c7be5c6e7259d378ea5e80b2
dtv.comp at

#541 (Mar 16, 2026, 5:01:19 PM)

device/websdr: add WebSDR transceiver backend and build target

- add libosmo-trx-websdr library and pkg-config file
- integrate WebSDR device into the autotools build system
- update .gitignore for wasm and pkg-config artifacts

Change-Id: Ia0d340c323c2eea28fbe82601ba0af7cfbd68f6d
dtv.comp at

#540 (Mar 16, 2026, 5:01:19 PM)

transceiver: split control command handling from socket I/O

- move control command parsing/response generation into ctrl_cmd_handle()
- keep ctrl_sock_handle_rx() focused on socket read/write
- switch response formatting from sprintf() to snprintf()

Change-Id: I5413aa511e951522270c75635e89448395fc429e
dtv.comp at

#539 (Mar 16, 2026, 9:46:07 AM)

transceiver: split control command handling from socket I/O

- move control command parsing/response generation into ctrl_cmd_handle()
- keep ctrl_sock_handle_rx() focused on socket read/write
- make command input read-only where applicable
- switch response formatting from sprintf() to snprintf()

Change-Id: I5413aa511e951522270c75635e89448395fc429e
dtv.comp at

#538 (Mar 16, 2026, 9:46:07 AM)

transceiver: add optional Laurent burst LUT modulation (int16)

Introduce an optional Burst LUT optimization for Laurent-based burst
modulation, enabled via --with-burst-lut.

- Add precomputed Laurent LUT tables (float and int16 I/Q variants)
- Generate LUT at initialization (prepareBurstLUT)
- Use LUT-based modulation for sps=4 when enabled
- Keep original modulateBurstLaurent() as fallback
- Add configure.ac option and USE_BURST_LUT define

This reduces runtime computation by replacing per-burst Laurent
processing with memcpy-based LUT lookups.

Change-Id: I1715c2d33dc55fe1c7be5c6e7259d378ea5e80b2
dtv.comp at

#537 (Mar 16, 2026, 9:46:07 AM)

device/websdr: add WebSDR transceiver backend and build target

- add libosmo-trx-websdr library and pkg-config file
- integrate WebSDR device into the autotools build system
- update .gitignore for wasm and pkg-config artifacts

Change-Id: Ia0d340c323c2eea28fbe82601ba0af7cfbd68f6d
dtv.comp at

#536 (Mar 16, 2026, 9:35:18 AM)

device/websdr: add WebSDR transceiver backend and build target

- add libosmo-trx-websdr library and pkg-config file
- integrate WebSDR device into the autotools build system
- update .gitignore for wasm and pkg-config artifacts

Change-Id: Ia0d340c323c2eea28fbe82601ba0af7cfbd68f6d
dtv.comp at

#535 (Mar 16, 2026, 9:35:18 AM)

transceiver: split control command handling from socket I/O

- move control command parsing/response generation into ctrl_cmd_handle()
- keep ctrl_sock_handle_rx() focused on socket read/write
- make command input read-only where applicable
- switch response formatting from sprintf() to snprintf()

Change-Id: I5413aa511e951522270c75635e89448395fc429e
dtv.comp at

#534 (Mar 16, 2026, 9:35:17 AM)

transceiver: add optional Laurent burst LUT modulation (int16)

Introduce an optional Burst LUT optimization for Laurent-based burst
modulation, enabled via --with-burst-lut.

- Add precomputed Laurent LUT tables (float and int16 I/Q variants)
- Generate LUT at initialization (prepareBurstLUT)
- Use LUT-based modulation for sps=4 when enabled
- Keep original modulateBurstLaurent() as fallback
- Add configure.ac option and USE_BURST_LUT define

This reduces runtime computation by replacing per-burst Laurent
processing with memcpy-based LUT lookups.

Change-Id: I1715c2d33dc55fe1c7be5c6e7259d378ea5e80b2
dtv.comp at

#533 (Mar 16, 2026, 9:18:52 AM)

transceiver: split control command handling from socket I/O

- move control command parsing/response generation into ctrl_cmd_handle()
- keep ctrl_sock_handle_rx() focused on socket read/write
- make command input read-only where applicable
- switch response formatting from sprintf() to snprintf()

Change-Id: I5413aa511e951522270c75635e89448395fc429e
dtv.comp at

#532 (Mar 16, 2026, 9:18:52 AM)

transceiver: add optional Laurent burst LUT modulation (int16)

Introduce an optional Burst LUT optimization for Laurent-based burst
modulation, enabled via --with-burst-lut.

- Add precomputed Laurent LUT tables (float and int16 I/Q variants)
- Generate LUT at initialization (prepareBurstLUT)
- Use LUT-based modulation for sps=4 when enabled
- Keep original modulateBurstLaurent() as fallback
- Add configure.ac option and USE_BURST_LUT define

This reduces runtime computation by replacing per-burst Laurent
processing with memcpy-based LUT lookups.

Change-Id: I1715c2d33dc55fe1c7be5c6e7259d378ea5e80b2
dtv.comp at

#531 (Mar 16, 2026, 9:18:52 AM)

device/websdr: add WebSDR transceiver backend and build target

- add libosmo-trx-websdr library and pkg-config file
- integrate WebSDR device into the autotools build system
- update .gitignore for wasm and pkg-config artifacts

Change-Id: Ia0d340c323c2eea28fbe82601ba0af7cfbd68f6d
dtv.comp at

#530 (Mar 13, 2026, 8:28:59 PM)

transceiver: add optional Laurent burst LUT modulation (int16)

Introduce an optional Burst LUT optimization for Laurent-based burst
modulation, enabled via --with-burst-lut.

- Add precomputed Laurent LUT tables (float and int16 I/Q variants)
- Generate LUT at initialization (prepareBurstLUT)
- Use LUT-based modulation for sps=4 when enabled
- Keep original modulateBurstLaurent() as fallback
- Add configure.ac option and USE_BURST_LUT define

This reduces runtime computation by replacing per-burst Laurent
processing with memcpy-based LUT lookups.

Change-Id: I1715c2d33dc55fe1c7be5c6e7259d378ea5e80b2
dtv.comp at

#529 (Mar 13, 2026, 8:28:59 PM)

proto_trxd: add helpers to prepare burst indication packets

- introduce trxd_prepare_burst_ind_v0() and trxd_prepare_burst_ind_v1()
- reuse prepared packet size in send helpers
- handle idle frames during packet preparation
- use ssize_t consistently for prepared/write sizes

Change-Id: Ie94a1df4879cbf6056cd05c9621c46db1ed972fd
dtv.comp at

#528 (Mar 13, 2026, 8:01:19 PM)

transceiver: add optional Laurent burst LUT modulation (int16)

Introduce an optional Burst LUT optimization for Laurent-based burst
modulation, enabled via --with-burst-lut.

- Add precomputed Laurent LUT tables (float and int16 I/Q variants)
- Generate LUT at initialization (prepareBurstLUT)
- Use LUT-based modulation for sps=4 when enabled
- Keep original modulateBurstLaurent() as fallback
- Add configure.ac option and USE_BURST_LUT define

This reduces runtime computation by replacing per-burst Laurent
processing with memcpy-based LUT lookups.

Change-Id: I1715c2d33dc55fe1c7be5c6e7259d378ea5e80b2
dtv.comp at

#527 (Mar 13, 2026, 8:01:14 PM)

proto_trxd: add helpers to prepare burst indication packets

- introduce trxd_prepare_burst_ind_v0() and trxd_prepare_burst_ind_v1()
- reuse prepared packet size in send helpers
- handle idle frames during packet preparation
- use ssize_t consistently for prepared/write sizes

Change-Id: Ie94a1df4879cbf6056cd05c9621c46db1ed972fd
dtv.comp at

#526 (Mar 11, 2026, 2:09:49 PM)

build: add --disable-multi-arfcn configure option

- add configure flag to disable Multi ARFCN support
- compile Channelizer, Synthesis, RadioInterfaceMulti and fft.c only when enabled
- guard Multi ARFCN-specific code with ENABLE_MULTI_ARFCN
- avoid requiring fftw3f when Multi ARFCN support is disabled

Change-Id: I2495c5b5c79f2fe74bef83902058e1d2207c1f3c
dtv.comp at

#525 (Mar 11, 2026, 2:09:49 PM)

transceiver: add optional Laurent burst LUT modulation (int16)

Introduce an optional Burst LUT optimization for Laurent-based burst
modulation, enabled via --with-burst-lut.

- Add precomputed Laurent LUT tables (float and int16 I/Q variants)
- Generate LUT at initialization (prepareBurstLUT)
- Use LUT-based modulation for sps=4 when enabled
- Keep original modulateBurstLaurent() as fallback
- Add configure.ac option and USE_BURST_LUT define

This reduces runtime computation by replacing per-burst Laurent
processing with memcpy-based LUT lookups.

Change-Id: I1715c2d33dc55fe1c7be5c6e7259d378ea5e80b2
dtv.comp at

#524 (Mar 11, 2026, 11:27:31 AM)

build: add --disable-multi-arfcn configure option

- add configure flag to disable Multi ARFCN support
- compile Channelizer, Synthesis, RadioInterfaceMulti and fft.c only when enabled
- guard Multi ARFCN-specific code with ENABLE_MULTI_ARFCN
- avoid requiring fftw3f when Multi ARFCN support is disabled

Change-Id: I2495c5b5c79f2fe74bef83902058e1d2207c1f3c
dtv.comp at

#523 (Mar 11, 2026, 11:27:26 AM)

transceiver: add optional Laurent burst LUT modulation (int16)

Introduce an optional Burst LUT optimization for Laurent-based burst
modulation, enabled via --with-burst-lut.

- Add precomputed Laurent LUT tables (float and int16 I/Q variants)
- Generate LUT at initialization (prepareBurstLUT)
- Use LUT-based modulation for sps=4 when enabled
- Keep original modulateBurstLaurent() as fallback
- Add configure.ac option and USE_BURST_LUT define

This reduces runtime computation by replacing per-burst Laurent
processing with memcpy-based LUT lookups.

Change-Id: I1715c2d33dc55fe1c7be5c6e7259d378ea5e80b2
dtv.comp at

#522 (Mar 11, 2026, 11:00:40 AM)

transceiver: add optional Laurent burst LUT modulation (int16)

Introduce an optional Burst LUT optimization for Laurent-based burst
modulation, enabled via --with-burst-lut.

- Add precomputed Laurent LUT tables (float and int16 I/Q variants)
- Generate LUT at initialization (prepareBurstLUT)
- Use LUT-based modulation for sps=4 when enabled
- Keep original modulateBurstLaurent() as fallback
- Add configure.ac option and USE_BURST_LUT define

This reduces runtime computation by replacing per-burst Laurent
processing with memcpy-based LUT lookups.

Change-Id: I1715c2d33dc55fe1c7be5c6e7259d378ea5e80b2
dtv.comp at

#521 (Mar 11, 2026, 11:00:40 AM)

build: add --disable-multi-arfcn configure option

- add configure flag to disable Multi ARFCN support
- compile Channelizer, Synthesis, RadioInterfaceMulti and fft.c only when enabled
- guard Multi ARFCN-specific code with ENABLE_MULTI_ARFCN
- avoid requiring fftw3f when Multi ARFCN support is disabled

Change-Id: I2495c5b5c79f2fe74bef83902058e1d2207c1f3c
dtv.comp at

#520 (Mar 11, 2026, 12:35:30 AM)

build: add --disable-multi-arfcn configure option

- add configure flag to disable Multi ARFCN support
- compile Channelizer, Synthesis, RadioInterfaceMulti and fft.c only when enabled
- guard Multi ARFCN-specific code with ENABLE_MULTI_ARFCN
- avoid requiring fftw3f when Multi ARFCN support is disabled

Change-Id: I2495c5b5c79f2fe74bef83902058e1d2207c1f3c
dtv.comp at

#519 (Mar 11, 2026, 12:35:30 AM)

transceiver: add optional Laurent burst LUT modulation (int16)

Introduce an optional Burst LUT optimization for Laurent-based burst
modulation, enabled via --with-burst-lut.

- Add precomputed Laurent LUT tables (float and int16 I/Q variants)
- Generate LUT at initialization (prepareBurstLUT)
- Use LUT-based modulation for sps=4 when enabled
- Keep original modulateBurstLaurent() as fallback
- Add configure.ac option and USE_BURST_LUT define

This reduces runtime computation by replacing per-burst Laurent
processing with memcpy-based LUT lookups.

Change-Id: I1715c2d33dc55fe1c7be5c6e7259d378ea5e80b2
dtv.comp at

#518 (Mar 11, 2026, 12:22:35 AM)

transceiver: add optional Laurent burst LUT modulation (int16)

Introduce an optional Burst LUT optimization for Laurent-based burst
modulation, enabled via --with-burst-lut.

- Add precomputed Laurent LUT tables (float and int16 I/Q variants)
- Generate LUT at initialization (prepareBurstLUT)
- Use LUT-based modulation for sps=4 when enabled
- Keep original modulateBurstLaurent() as fallback
- Add configure.ac option and USE_BURST_LUT define

This reduces runtime computation by replacing per-burst Laurent
processing with memcpy-based LUT lookups.

Change-Id: I1715c2d33dc55fe1c7be5c6e7259d378ea5e80b2
dtv.comp at

#517 (Mar 11, 2026, 12:22:35 AM)

build: add --disable-multi-arfcn configure option

- add configure flag to disable Multi ARFCN support
- compile Channelizer, Synthesis, RadioInterfaceMulti and fft.c only when enabled
- guard Multi ARFCN-specific code with ENABLE_MULTI_ARFCN
- avoid requiring fftw3f when Multi ARFCN support is disabled

Change-Id: I2495c5b5c79f2fe74bef83902058e1d2207c1f3c
dtv.comp at

#516 (Mar 9, 2026, 7:32:40 PM)

feat(usdr): add USDR backend support (osmo-trx-usdr)

- Implement USDRDevice backend for Transceiver52M
- Add --with-usdr configure option and build integration
- Add systemd service unit (osmo-trx-usdr.service)
- Add Debian packaging files for osmo-trx-usdr
- Provide example configuration file
- Extend manuals and device documentation with USDR backend section

Change-Id: I5d1d25921514954c4929ae6e7352168b3ceb05df
dtv.comp at

#515 (Mar 9, 2026, 7:21:25 PM)

feat(usdr): add USDR backend support (osmo-trx-usdr)

- Implement USDRDevice backend for Transceiver52M
- Add --with-usdr configure option and build integration
- Add systemd service unit (osmo-trx-usdr.service)
- Add Debian packaging files for osmo-trx-usdr
- Provide example configuration file
- Extend manuals and device documentation with USDR backend section

Change-Id: I5d1d25921514954c4929ae6e7352168b3ceb05df
dtv.comp at

#514 (Mar 9, 2026, 7:21:25 PM)

radio: improve API documentation in RadioDevice

Change-Id: I7b41c549d743ad180a1ddcd8c0313e1003860070
dtv.comp at

#513 (Mar 9, 2026, 5:46:22 PM)

build: install common/GSM/transceiver libraries for emscripten and add pkg-config files

Expose previously internal libs (libcommon, libGSM, libtransceiver_common)
when building with emscripten, install headers and generate .pc files.
Keep them noinst for native builds.

Change-Id: I2495c5b5c79f2fe74bef83902058e1d2207c1f3c
dtv.comp at

#512 (Mar 9, 2026, 5:46:21 PM)

transceiver: add optional Laurent burst LUT modulation (int16)

Introduce an optional Burst LUT optimization for Laurent-based burst
modulation, enabled via --with-burst-lut.

- Add precomputed Laurent LUT tables (float and int16 I/Q variants)
- Generate LUT at initialization (prepareBurstLUT)
- Use LUT-based modulation for sps=4 when enabled
- Keep original modulateBurstLaurent() as fallback
- Add configure.ac option and USE_BURST_LUT define

This reduces runtime computation by replacing per-burst Laurent
processing with memcpy-based LUT lookups.

Change-Id: I1715c2d33dc55fe1c7be5c6e7259d378ea5e80b2
dtv.comp at

#511 (Mar 9, 2026, 5:38:52 PM)

radio: improve API documentation in RadioDevice

Change-Id: I7b41c549d743ad180a1ddcd8c0313e1003860070
dtv.comp at

#510 (Mar 9, 2026, 5:38:51 PM)

feat(usdr): add USDR backend support (osmo-trx-usdr)

- Implement USDRDevice backend for Transceiver52M
- Add --with-usdr configure option and build integration
- Add systemd service unit (osmo-trx-usdr.service)
- Add Debian packaging files for osmo-trx-usdr
- Provide example configuration file
- Extend manuals and device documentation with USDR backend section

Change-Id: I5d1d25921514954c4929ae6e7352168b3ceb05df
dtv.comp at

#509 (Mar 3, 2026, 4:29:27 PM)

Drop libusb dependency

We aren't using libusb anywhere directly, so drop checks for it, plus
incorrect USB_INCLUDES which was empty.

Change-Id: I600db0bfe6f746024a329f2972879563d2a013b0
Pau Espin Pedrol at

#508 (Mar 3, 2026, 3:34:17 PM)

ipc: Makefile.am: Pick already compiled UHDDevice.o object

Take the chance to reorder LDADD, since it expects dependencies to be in
inversed-tree order.

Change-Id: I344309cb7264caf1622b70e87bb44ad3f32edb88
Pau Espin Pedrol at

#507 (Mar 3, 2026, 3:26:52 PM)

ipc: Makefile.am: Pick already compiled UHDDevice.o object

Take the chance to reorder LDADD, since it expects dependencies to be in
inversed-tree order.

Change-Id: I344309cb7264caf1622b70e87bb44ad3f32edb88
Pau Espin Pedrol at

#506 (Mar 3, 2026, 2:38:27 PM)

ipc: Makefile.am: Pick already compiled UHDDevice.o object

Take the chance to reorder LDADD, since it expects dependencies to be in
inversed-tree order.

Change-Id: I344309cb7264caf1622b70e87bb44ad3f32edb88
Pau Espin Pedrol at

#505 (Mar 3, 2026, 2:38:27 PM)

Depend on libosmogsm explicitly

Transceiver52M/device/common/bandmanager.h uses gsm_freq102arfcn() from
libosmogsm, so we should include libosmogsm.

Change-Id: I379b7e285ea9c124709de32d6e8a44b819f62111
Pau Espin Pedrol at

#504 (Mar 3, 2026, 2:38:27 PM)

configure.ac: Avoid building shared libraries by default

Those libraries are internal to osmo-trx and won't be installed,
so there's no use in building them.

Change-Id: I93c8ace45008b6ab8fba070c174bcec11e3b106e
Pau Espin Pedrol at

#503 (Mar 3, 2026, 1:47:16 PM)

configure.ac: Update deprecated AC_PROG_LIBTOOL to LT_INIT

As mentioned in
https://www.gnu.org/software/libtool/manual/html_node/LT_005fINIT.html.

Change-Id: I3b811b11ee4bbd5856329a5bdbcb5a8d2776495a
Pau Espin Pedrol at

#502 (Mar 3, 2026, 1:47:16 PM)

Depend on libosmogsm explicitly

Transceiver52M/device/common/bandmanager.h uses gsm_freq102arfcn() from
libosmogsm, so we should include libosmogsm.

Change-Id: I379b7e285ea9c124709de32d6e8a44b819f62111
Pau Espin Pedrol at

#501 (Mar 3, 2026, 1:47:16 PM)

configure.ac: Avoid building shared libraries by default

Those libraries are internal to osmo-trx and won't be installed,
so there's no use in building them.

Change-Id: I93c8ace45008b6ab8fba070c174bcec11e3b106e
Pau Espin Pedrol at

#500 (Mar 2, 2026, 11:37:27 PM)

transceiver: add optional Laurent burst LUT modulation (int16)

Introduce an optional Burst LUT optimization for Laurent-based burst
modulation, enabled via --with-burst-lut.

- Add precomputed Laurent LUT tables (float and int16 I/Q variants)
- Generate LUT at initialization (prepareBurstLUT)
- Use LUT-based modulation for sps=4 when enabled
- Keep original modulateBurstLaurent() as fallback
- Add configure.ac option and USE_BURST_LUT define

This reduces runtime computation by replacing per-burst Laurent
processing with memcpy-based LUT lookups.

Change-Id: I1715c2d33dc55fe1c7be5c6e7259d378ea5e80b2
dtv.comp at

#499 (Mar 2, 2026, 11:23:12 PM)

transceiver: add optional Laurent burst LUT modulation (int16)

Introduce an optional Burst LUT optimization for Laurent-based burst
modulation, enabled via --with-burst-lut.

- Add precomputed Laurent LUT tables (float and int16 I/Q variants)
- Generate LUT at initialization (prepareBurstLUT)
- Use LUT-based modulation for sps=4 when enabled
- Keep original modulateBurstLaurent() as fallback
- Add configure.ac option and USE_BURST_LUT define

This reduces runtime computation by replacing per-burst Laurent
processing with memcpy-based LUT lookups.

Change-Id: I1715c2d33dc55fe1c7be5c6e7259d378ea5e80b2
dtv.comp at

#498 (Mar 2, 2026, 11:23:12 PM)

build: install common/GSM/transceiver libraries for emscripten and add pkg-config files

Expose previously internal libs (libcommon, libGSM, libtransceiver_common)
when building with emscripten, install headers and generate .pc files.
Keep them noinst for native builds.

Change-Id: I2495c5b5c79f2fe74bef83902058e1d2207c1f3c
dtv.comp at

#497 (Mar 2, 2026, 2:44:04 PM)

build: install common/GSM/transceiver libraries for emscripten and add pkg-config files

Expose previously internal libs (libcommon, libGSM, libtransceiver_common)
when building with emscripten, install headers and generate .pc files.
Keep them noinst for native builds.

Change-Id: I2495c5b5c79f2fe74bef83902058e1d2207c1f3c
dtv.comp at

#496 (Mar 2, 2026, 2:35:54 PM)

feat(usdr): add USDR backend support (osmo-trx-usdr)

- Implement USDRDevice backend for Transceiver52M
- Add --with-usdr configure option and build integration
- Add systemd service unit (osmo-trx-usdr.service)
- Add Debian packaging files for osmo-trx-usdr
- Provide example configuration file
- Extend manuals and device documentation with USDR backend section

Change-Id: I5d1d25921514954c4929ae6e7352168b3ceb05df
dtv.comp at

#495 (Mar 2, 2026, 1:10:22 PM)

debian/*.install: make paths consistent

Some of the paths start with a leading slash and some don't. Both
variants work, but this is confusing. Let's go without the leading
slash, because the paths are releative (in this case to debian/tmp where
"make install" puts the files during debian packaging).

Related: https://gerrit.osmocom.org/c/osmo-trx/+/42198/comment/ae98245f_98e51337/
Related: https://www.debian.org/doc/manuals/maint-guide/dother.en.html#install
Related: https://manpages.debian.org/testing/debhelper/dh_install.1.en.html#debian/
Change-Id: I4b9de40e1fc6d3935ae8ff82804d94cb863663e9
Oliver Smith at

#494 (Mar 2, 2026, 12:01:21 PM)

feat(usdr): add USDR backend support (osmo-trx-usdr)

- Implement USDRDevice backend for Transceiver52M
- Add --with-usdr configure option and build integration
- Add systemd service unit (osmo-trx-usdr.service)
- Add Debian packaging files for osmo-trx-usdr
- Provide example configuration file
- Extend manuals and device documentation with USDR backend section

Change-Id: I5d1d25921514954c4929ae6e7352168b3ceb05df
dtv.comp at

#493 (Feb 28, 2026, 9:57:15 PM)

build: install common/GSM/transceiver libraries for emscripten and add pkg-config files

Expose previously internal libs (libcommon, libGSM, libtransceiver_common)
when building with emscripten, install headers and generate .pc files.
Keep them noinst for native builds.

Change-Id: I2495c5b5c79f2fe74bef83902058e1d2207c1f3c
dtv.comp at

#492 (Feb 28, 2026, 9:11:23 PM)

radio: improve API documentation in RadioDevice

Change-Id: I7b41c549d743ad180a1ddcd8c0313e1003860070
dtv.comp at

#491 (Feb 28, 2026, 9:11:20 PM)

feat(usdr): add USDR backend support (osmo-trx-usdr)

- Implement USDRDevice backend for Transceiver52M
- Add --with-usdr configure option and build integration
- Add systemd service unit (osmo-trx-usdr.service)
- Add Debian packaging files for osmo-trx-usdr
- Provide example configuration file
- Extend manuals and device documentation with USDR backend section

Change-Id: I5d1d25921514954c4929ae6e7352168b3ceb05df
dtv.comp at

#490 (Feb 26, 2026, 6:38:07 PM)

fix(threads): centralize portable strerror handling

- Move strerror_r portability logic to Utils
- Add strerror_buf() helper
- Simplify thread error logging in Threads.cpp

Change-Id: I642aff8a9f98823e117c4debd19384ddf5975039
dtv.comp at

#489 (Feb 26, 2026, 5:53:31 PM)

feat(usdr): add USDR backend support (osmo-trx-usdr)

- Implement USDRDevice backend for Transceiver52M
- Add --with-usdr configure option and build integration
- Add systemd service unit (osmo-trx-usdr.service)
- Add Debian packaging files for osmo-trx-usdr
- Provide example configuration file
- Extend manuals and device documentation with USDR backend section

Change-Id: I5d1d25921514954c4929ae6e7352168b3ceb05df
dtv.comp at

#488 (Feb 26, 2026, 1:09:26 PM)

checkpatch.conf: lint more code

The current linter configuration misses to find lots of formatting
errors as we've seen here:
https://gerrit.osmocom.org/c/osmo-trx/+/42198/comments/f8f1b5a2_3c7e1389

This is caused by the following exclude rules in .checkpatch.conf, which
were added there to avoid that some of the checkpatch rules don't work
correctly with C++ code:

  ---exclude .*h
  ---exclude Transceiver52M/grgsm_vitac/.*
  ---exclude utils/va-test/.*

Fix this by splitting the .checkpatch.conf into two files,
.checkpatch.c.conf and .checkpatch.c++.conf. Let the C version use the
default rules. Let the C++ version ignore the rules that don't work with
C++ code:

* SPACING
  Fails on:
    std::vector<std::string>
  With:
    ERROR:SPACING: spaces required around that '<' (ctx:VxV)
    ERROR:SPACING: spaces required around that '>' (ctx:VxW)

* FUNCTION_ARGUMENTS
  Fails on:
    ScopedLock lock(mLock);
  With:
    WARNING:FUNCTION_ARGUMENTS: function definition argument 'mLock' should also have an identifier name

* INDENTED_LABEL
  Fails on:
    private:
    protected:
  With:
    WARNING:INDENTED_LABEL: labels should not be indented

* NEW_TYPEDEFS
  Fails on:
    typedef std::map<K,D*> Map;
  With:
    WARNING:NEW_TYPEDEFS: do not add new typedefs

With the new config, the linter only complains about the following
things across the existing C++ code, which seem to be legitimate linting
problems (and if not, can be ignored as well):

  BRACES_NOT_NECESSARY, CODE_INDENT, LEADING_SPACE,
  MULTISTATEMENT_MACRO_USE_DO_WHILE, OPEN_BRACE, POINTER_LOCATION,
  PRINTF_I_OSMO, SINGLE_STATEMENT_DO_WHILE_MACRO, SPACE_BEFORE_TAB,
  STATIC_CONST_CHAR_ARRAY, TABSTOP, TRAILING_WHITESPACE

Depends: osmo-ci Ia2e75d9783382cefc3900a4ab51a5a919a2cbbbc
Change-Id: I0df5b6f2f0bf1469a80a1f5859809c30f523f683
Oliver Smith at

#487 (Feb 25, 2026, 7:31:51 PM)

fix(threads): centralize portable strerror handling

- Move strerror_r portability logic to Utils
- Add strerror_buf() helper
- Simplify thread error logging in Threads.cpp

Change-Id: I642aff8a9f98823e117c4debd19384ddf5975039
dtv.comp at

#486 (Feb 25, 2026, 7:18:56 PM)

fix(threads): centralize portable strerror handling

- Move strerror_r portability logic to Utils
- Add strerror_buf() helper
- Simplify thread error logging in Threads.cpp

Change-Id: I642aff8a9f98823e117c4debd19384ddf5975039
dtv.comp at

#485 (Feb 25, 2026, 4:34:08 PM)

fix(threads): centralize portable strerror handling

- Move strerror_r portability logic to Utils
- Add strerror_buf() helper
- Add strerror_str() wrapper using std::error_code
- Simplify thread error logging in Threads.cpp

Change-Id: I642aff8a9f98823e117c4debd19384ddf5975039
dtv.comp at

#484 (Feb 25, 2026, 2:11:15 PM)

checkpatch.conf: lint more code

The current linter configuration leads to too many linting errors, as
seen here:
https://gerrit.osmocom.org/c/osmo-trx/+/42198/comments/f8f1b5a2_3c7e1389

Fix this by not excluding files where the linter generates false
positives. But instead ignoring specific rules that generate these false
positives (mostly related to this being a C++ code base). The following
rules are now ignored:

* SPACING
  Fails on:
    std::vector<std::string>
  With:
    ERROR:SPACING: spaces required around that '<' (ctx:VxV)
    ERROR:SPACING: spaces required around that '>' (ctx:VxW)

* FUNCTION_ARGUMENTS
  Fails on:
    ScopedLock lock(mLock);
  With:
    WARNING:FUNCTION_ARGUMENTS: function definition argument 'mLock' should also have an identifier name

* INDENTED_LABEL
  Fails on:
    private:
    protected:
  With:
    WARNING:INDENTED_LABEL: labels should not be indented

* NEW_TYPEDEFS
  Fails on:
    typedef std::map<K,D*> Map;
  With:
    WARNING:NEW_TYPEDEFS: do not add new typedefs

With the new config, the linter only complains about the following
things across the existing code, which seem to be legitimate linting
problems (and if not, can be ignored as well):

  BRACES_NOT_NECESSARY, CODE_INDENT, LEADING_SPACE,
  MULTISTATEMENT_MACRO_USE_DO_WHILE, OPEN_BRACE, POINTER_LOCATION,
  PRINTF_I_OSMO, SINGLE_STATEMENT_DO_WHILE_MACRO, SPACE_BEFORE_TAB,
  STATIC_CONST_CHAR_ARRAY, TABSTOP, TRAILING_WHITESPACE

Change-Id: I0df5b6f2f0bf1469a80a1f5859809c30f523f683
Oliver Smith at

#483 (Feb 25, 2026, 8:47:45 AM)

fix(threads): support GNU and POSIX strerror_r variants

- Add required headers
- Use correct handling for GNU-specific strerror_r
- Provide fallback error string for portability

Change-Id: I642aff8a9f98823e117c4debd19384ddf5975039
dtv.comp at

#482 (Feb 25, 2026, 6:31:55 AM)

feat(usdr): add USDR backend support (osmo-trx-usdr)

- Implement USDRDevice backend for Transceiver52M
- Add --with-usdr configure option and build integration
- Add systemd service unit (osmo-trx-usdr.service)
- Add Debian packaging files for osmo-trx-usdr
- Provide example configuration file
- Extend manuals and device documentation with USDR backend section

Change-Id: I5d1d25921514954c4929ae6e7352168b3ceb05df
dtv.comp at

#481 (Feb 24, 2026, 10:06:31 PM)

feat(usdr): add USDR backend support (osmo-trx-usdr)

- Implement USDRDevice backend for Transceiver52M
- Add --with-usdr configure option and build integration
- Add systemd service unit (osmo-trx-usdr.service)
- Add Debian packaging files for osmo-trx-usdr
- Provide example configuration file
- Extend manuals and device documentation with USDR backend section

Change-Id: I5d1d25921514954c4929ae6e7352168b3ceb05df
dtv.comp at

#480 (Feb 24, 2026, 10:01:31 PM)

feat(usdr): add USDR backend support (osmo-trx-usdr)

- Implement USDRDevice backend for Transceiver52M
- Add --with-usdr configure option and build integration
- Add systemd service unit (osmo-trx-usdr.service)
- Add Debian packaging files for osmo-trx-usdr
- Provide example configuration file
- Extend manuals and device documentation with USDR backend section

Change-Id: I5d1d25921514954c4929ae6e7352168b3ceb05df
dtv.comp at