Actions
Bug #4636
closedosmo-trx-uhd crashes with 3 channels multi-ARFCN mode
Start date:
06/29/2020
Due date:
% Done:
100%
Spec Reference:
Description
The user manual [1] (section 13.2 "Multi-ARFCN mode") states:
Up to three ARFCN’s is supported for multi-TRX
[1] http://ftp.osmocom.org/docs/latest/osmotrx-usermanual.pdf
I have a USRP B210, and 2 channels in multi-TRX work fine:
trx ... multi-arfcn enable rx-sps 4 tx-sps 4 chan 0 tx-path TX/RX rx-path RX2 chan 1 tx-path TX/RX rx-path RX2
Trying to start osmo-trx with 3 channels:
trx ... multi-arfcn enable rx-sps 4 tx-sps 4 chan 0 tx-path TX/RX rx-path RX2 chan 1 tx-path TX/RX rx-path RX2 chan 2 tx-path TX/RX rx-path RX2
leads to the following error:
DDEV DEBUG UHDDevice.cpp:207 [tid=140737288886144][chan=0] Configuring Tx antenna TX/RX DDEV DEBUG UHDDevice.cpp:207 [tid=140737288886144][chan=1] Configuring Tx antenna TX/RX DDEV DEBUG UHDDevice.cpp:207 [tid=140737288886144][chan=2] Configuring Tx antenna TX/RX terminate called after throwing an instance of 'uhd::index_error' what(): LookupError: IndexError: multi_usrp: TX channel 2 out of range for configured TX frontends Program received signal SIGABRT pwndbg> bt #0 0x00007ffff6821355 in raise () from /usr/lib/libc.so.6 #1 0x00007ffff680a853 in abort () from /usr/lib/libc.so.6 #2 0x00007ffff6ba186a in __gnu_cxx::__verbose_terminate_handler () at /build/gcc/src/gcc/libstdc++-v3/libsupc++/vterminate.cc:95 #3 0x00007ffff6badd8a in __cxxabiv1::__terminate (handler=<optimized out>) at /build/gcc/src/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:48 #4 0x00007ffff6baddf7 in std::terminate () at /build/gcc/src/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:58 #5 0x00007ffff6bae09e in __cxxabiv1::__cxa_throw (obj=<optimized out>, tinfo=0x7ffff7a563a8 <typeinfo for uhd::index_error>, dest=0x7ffff70d5990) at /build/gcc/src/gcc/libstdc++-v3/libsupc++/eh_throw.cc:95 #6 0x00007ffff71b8315 in ?? () from /usr/lib/libuhd.so.3.15.0 #7 0x00007ffff71b83cb in ?? () from /usr/lib/libuhd.so.3.15.0 #8 0x00007ffff71b9da1 in ?? () from /usr/lib/libuhd.so.3.15.0 #9 0x000055555556ecaf in uhd_device::setTxAntenna (this=0x5555555e4ae0, ant="TX/RX", chan=2) at /usr/include/boost/smart_ptr/shared_ptr.hpp:732 #10 0x00005555555747f6 in RadioDevice::set_antennas (this=this@entry=0x5555555e4ae0) at /usr/include/c++/10.1.0/bits/stl_vector.h:1043 #11 0x000055555557298b in uhd_device::open (this=0x5555555e4ae0, args=..., ref=0, swap_channels=<optimized out>) at UHDDevice.cpp:564 #12 0x0000555555563826 in trx_start (trx=0x5555555e4150) at osmo-trx.cpp:516 #13 main (argc=<optimized out>, argv=<optimized out>) at osmo-trx.cpp:645 #14 0x00007ffff680c002 in __libc_start_main () from /usr/lib/libc.so.6 #15 0x0000555555565a2e in _start () at osmo-trx.cpp:657
Either our documentation is wrong and 2 channels is the maximum in multi-ARFCN mode, or it's a bug somewhere in osmo-trx / UHD driver.
P.S. I just tested setting 3 channels for a "UHD Source" block in GNU Radio (see attachment) - same error.
Files
Actions