Hello everyone,
I am experiencing problems when trying to run osmotrx with a b205mini and I connect another USB device to a different port on the machine. When I do this, osmotrx crashes instantly. Also, when I have the other device already plugged in when I start osmotrx, it takes ~20 seconds to crash.
Sometimes it just crashes without giving a reason, like here:
DLGLOBAL NOTICE Setting SCHED_RR priority 18 (cpu_sched_vty.c:471)
DLGLOBAL NOTICE Setting SCHED_RR priority 18 (cpu_sched_vty.c:471)
DLGLOBAL NOTICE Available via telnet 127.0.0.1 4237 (telnet_interface.c:88)
DLCTRL NOTICE CTRL at 127.0.0.1 4236 (control_if.c:1024) [INFO] [UHD] linux; GNU C++ version 11.2.0; Boost_107400; UHD_4.1.0.5-3
DMAIN NOTICE -- Transceiver active with 1 channel(s) (osmo-trx.cpp:621)
DLSTATS NOTICE Stats timer expire_count=7: We missed 6 timers (stats.c:169)
DLGLOBAL NOTICE Stats timer expire_count=31: We missed 30 timers (rate_ctr.c:350)
DTRXCTRL NOTICE Changing TSC from 0 to 7 (Transceiver.cpp:1032)
DTRXCTRL NOTICE [chan=0] switching to TRXD version 1 (Transceiver.cpp:1059)
DMAIN NOTICE Starting the transceiver (Transceiver.cpp:287)
LLDTRXCLK NOTICE Sending CLOCK indications (Transceiver.cpp:1198)
UDDEV ERROR No packet received, implementation timed-out (UHDDevice.cpp:782)
DDEV FATAL UHD: Receive timed out (UHDDevice.cpp:786)
DMAIN FATAL Receive error 0 (radioInterface.cpp:340)
DTRXDUL FATAL Something went wrong in thread RxLower, requesting stop (Transceiver.cpp:1359)
DMAIN NOTICE Shutting down transceiver... (osmo-trx.cpp:588)
DMAIN NOTICE Stopping the transceiver (Transceiver.cpp:345) terminate called without an active exception Aborted
And sometimes it reports an USB error and shows the talloc report:
DMAIN NOTICE -- Transceiver active with 1 channel(s) (osmo-trx.cpp:621)
DLSTATS NOTICE Stats timer expire_count=6: We missed 5 timers (stats.c:169)
DLGLOBAL NOTICE Stats timer expire_count=26: We missed 25 timers (rate_ctr.c:350)
DTRXCTRL NOTICE Changing TSC from 0 to 7 (Transceiver.cpp:1032)
DTRXCTRL NOTICE [chan=0] switching to TRXD version 1 (Transceiver.cpp:1059)
DMAIN NOTICE Starting the transceiver (Transceiver.cpp:287)
DTRXCLK NOTICE Sending CLOCK indications (Transceiver.cpp:1198)
LLUterminate called after throwing an instance of 'uhd::io_error'
what(): EnvironmentError: IOError: usb rx6 transfer status: LIBUSB_TRANSFER_OVERFLOW
signal 6 received
talloc report on 'OsmoTRX' (total 8531 bytes in 29 blocks)
rate_ctr.c:233 contains 1160 bytes in 1 blocks (ref 0) 0x559c72388720
trx_rate_ctr.cpp:343 contains 8 bytes in 1 blocks (ref 0) 0x559c723886b0
trx_rate_ctr.cpp:342 contains 40 bytes in 1 blocks (ref 0) 0x559c72389540
trx_rate_ctr.cpp:341 contains 32 bytes in 1 blocks (ref 0) 0x559c723895d0
telnet_connection contains 1 bytes in 1 blocks (ref 0) 0x559c723893d0
struct sched_vty_opts contains 72 bytes in 1 blocks (ref 0) 0x559c723489f0
logging contains 6197 bytes in 13 blocks (ref 0) 0x559c722c5d10
struct trx_ctx contains 1021 bytes in 8 blocks (ref 0) 0x559c722a0e80
msgb contains 0 bytes in 1 blocks (ref 0) 0x559c722c3ac0
full talloc report on 'OsmoTRX' (total 8531 bytes in 29 blocks)
rate_ctr.c:233 contains 1160 bytes in 1 blocks (ref 0) 0x559c72388720
trx_rate_ctr.cpp:343 contains 8 bytes in 1 blocks (ref 0) 0x559c723886b0
trx_rate_ctr.cpp:342 contains 40 bytes in 1 blocks (ref 0) 0x559c72389540
trx_rate_ctr.cpp:341 contains 32 bytes in 1 blocks (ref 0) 0x559c723895d0
telnet_connection contains 1 bytes in 1 blocks (ref 0) 0x559c723893d0
struct sched_vty_opts contains 72 bytes in 1 blocks (ref 0) 0x559c723489f0
logging contains 6197 bytes in 13 blocks (ref 0) 0x559c722c5d10
vty_logp_doc_str contains 1377 bytes in 1 blocks (ref 0) 0x559c7231c040
vty_logp_cmd_str contains 260 bytes in 1 blocks (ref 0) 0x559c7231ba00
vty_log_level_doc_str contains 1170 bytes in 1 blocks (ref 0) 0x559c722ff430
vty_log_level_cmd_str contains 236 bytes in 1 blocks (ref 0) 0x559c722ff2d0
vty_log_level_doc_str contains 1305 bytes in 1 blocks (ref 0) 0x559c722fc610
vty_log_level_cmd_str contains 257 bytes in 1 blocks (ref 0) 0x559c722fc4a0
struct log_target contains 330 bytes in 3 blocks (ref 0) 0x559c7220c550
struct osmo_wqueue contains 96 bytes in 1 blocks (ref 0) 0x7ff689ff4090
struct log_category contains 74 bytes in 1 blocks (ref 0) 0x559c722c6290
struct log_info contains 1261 bytes in 3 blocks (ref 0) 0x559c722ac370
uint8_t contains 37 bytes in 1 blocks (ref 0) 0x559c722c6350
struct log_info_cat contains 1184 bytes in 1 blocks (ref 0) 0x559c722c5d80
struct trx_ctx contains 1021 bytes in 8 blocks (ref 0) 0x559c722a0e80
127.0.0.1 contains 10 bytes in 1 blocks (ref 0) 0x559c722c5c20
127.0.0.1 contains 10 bytes in 1 blocks (ref 0) 0x559c722c5ba0
struct cmd_element contains 122 bytes in 2 blocks (ref 0) 0x559c72369030
logging level lms (debug|info|notice|error|fatal) contains 50 bytes in 1 blocks (ref 0) 0x559c7236c1a0
utils.c:386 contains 405 bytes in 1 blocks (ref 0) 0x559c7225e5b0
utils.c:386 contains 65 bytes in 1 blocks (ref 0) 0x559c723524f0
contains 1 bytes in 1 blocks (ref 0)
msgb contains 0 bytes in 1 blocks (ref 0)
On the BTS side I see several messages of missed timers, but this is something I see also when I don't have the USB plugged in:
<0006> scheduler_trx.c:489 GSM clock started, waiting for clock indications
<0006> scheduler_trx.c:578 GSM clock skew: old fn=0, new fn=2555007
<0006> scheduler_trx.c:428 FN timer expire_count=4: We missed 3 timers
<0006> scheduler_trx.c:606 We were 1 FN slower than TRX, compensated
<0006> scheduler_trx.c:606 We were 1 FN slower than TRX, compensated
<0006> scheduler_trx.c:428 FN timer expire_count=6: We missed 5 timers
<0006> scheduler_trx.c:593 We were 1 FN faster than TRX, compensating
<0006> scheduler_trx.c:606 We were 1 FN slower than TRX, compensated
<0006> scheduler_trx.c:593 We were 1 FN faster than TRX, compensating
<0006> scheduler_trx.c:606 We were 2 FN slower than TRX, compensated
<0006> scheduler_trx.c:428 FN timer expire_count=7: We missed 6 timers
<0006> scheduler_trx.c:593 We were 1 FN faster than TRX, compensating
<0006> scheduler_trx.c:606 We were 1 FN slower than TRX, compensated
<0006> scheduler_trx.c:593 We were 1 FN faster than TRX, compensating
<0006> scheduler_trx.c:606 We were 1 FN slower than TRX, compensated
<0006> scheduler_trx.c:428 FN timer expire_count=7: We missed 6 timers
<0006> scheduler_trx.c:593 We were 1 FN faster than TRX, compensating
<0006> scheduler_trx.c:606 We were 1 FN slower than TRX, compensated
<0006> scheduler_trx.c:428 FN timer expire_count=7: We missed 6 timers
<0006> scheduler_trx.c:435 No more clock from transceiver
Does anyone know if this is a software or hardware problem? I am thinking maybe it is related to the power supply of the USB port, but I have no idea. I really need to have both devices connected at the same time.
Any help or suggestion is appreciated,
Jonathan
Hi all,
we're planning to tag a new libosmocore release.
If anyone has concerns about some APIs not being stable in master, then
please speak up :)
Best regards,
Oliver
--
- Oliver Smith <osmith(a)sysmocom.de> https://www.sysmocom.de/
=======================================================================
* sysmocom - systems for mobile communications GmbH
* Siemensstr. 26a
* 10551 Berlin, Germany
* Sitz / Registered office: Berlin, HRB 134158 B
* Geschaeftsfuehrer / Managing Director: Harald Welte
I'm happy to announce that [finally], the osmo-epdg development has
reached its first release: 0.1.0.
[Link to news item: https://osmocom.org/news/262]
osmo-epdg[1] is combined ePDG and AAA to support Voice over Wifi (VoWiFi) calls.
An ePDG allows a UE to connect over regular wireless networks to an IMS
(untrusted non-3GPP network access).
The combined ePDG/AAA is using a modified strongSwan[2] together with
osmo-epdg[3], a daemon written in erlang/OTP.
The osmo-epdg has been tested with open5gs as EPC and kamailio as IMS.
To allow an easy setup of a fully working ePDG/epc/IMS there are ansible
playbooks[4] which has been used to create our Hosted ePDG playground
Thanks a lot to NLNet[5] for funding development of this project.
Thanks also to the main developers of this project:
Alexander "lynxis" Couzens and Pau "pespin" Espin Pedrol.
Best regards,
Harald
[1] https://osmocom.org/projects/osmo-epdg/wiki
[2] https://gitea.osmocom.org/ims-volte-vowifi/strongswan-epdg
[3] https://gitea.osmocom.org/Erlang/osmo-epdg
[4] https://gitea.osmocom.org/ims-volte-vowifi/ansible-prototype
[5] https://nlnet.nl/project/Osmocom-ePDG/
--
- Harald Welte <laforge(a)osmocom.org> https://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
Hi,
I am using osmo-bts-trx with a B205-mini-i, using only CS services. I am currently running the following elements on Ubuntu 22.04, all built from source from the latest version:
- osmo-trx-uhd
- osmo-bts-trx
- osmo-bsc
- osmo-msc
- osmo-hlr
- osmo-mgw
- osmo-stp
- osmo-sip-connector
I have been testing the range of the cell, and I can't seem to get more than around 50 meters, even when I transmit at ~21 dBm using a power amplifier at TX. I find this range too low, since I am used to getting 200-300 meters out of the box when running 4G and 5G networks with the same device, so I suspect I am not configuring the network correctly. I've tried looking at every parameter, so far I've only noticed improvements when setting the min-qual-* to the minimum values and ms_max_power to the maximum.
These are my configs for TRX, BTS and BSC:
OsmoTRX:
```
log stderr
...
!
line vty
no login
!
cpu-sched
policy rr 18
trx
bind-ip 127.0.0.1
remote-ip 127.0.0.1
egprs disable
tx-sps 4
rx-sps 4
clock-ref gpsdo
chan 0
```
```
!
! OsmoBTS () configuration saved from vty
!!
!
log stderr
...
!
line vty
no login
!
phy 0
instance 0
osmotrx tx-attenuation 0
osmotrx rx-gain 50
osmotrx ip local 127.0.0.1
osmotrx ip remote 127.0.0.1
bts 0
band GSM900
ipa unit-id 1234 0
oml remote-ip 127.0.0.1
gsmtap-remote-host 127.0.0.1
gsmtap-sapi enable-all
min-qual-rach -100
min-qual-norm -100
trx 0
phy 0 instance 0
nominal-tx-power 10
```
```
! osmo-bsc default configuration
! (assumes STP to run on 127.0.0.1 and uses default point codes)
!
log stderr
logging color 1
logging print category-hex 0
logging print category 1
logging timestamp 0
logging print file basename last
logging print level 1
e1_input
e1_line 0 driver ipa
network
network country code 1
mobile network code 1
encryption a5 0
neci 1
paging any use tch 0
handover 0
handover algorithm 1
handover1 window rxlev averaging 10
handover1 window rxqual averaging 1
handover1 window rxlev neighbor averaging 10
handover1 power budget interval 6
handover1 power budget hysteresis 3
handover1 maximum distance 9999
! T3212 is in units of 6min, so below we set 5 * 6 = 30min
timer net T3212 5
mgw 0
remote-ip 127.0.0.1
remote-port 2427
local-port 2727
bts 0
type osmo-bts
band GSM900
cell_identity 1234
location_area_code 0x0001
base_station_id_code 63
ms max power 40
!default: cell reselection hysteresis 4
cell reselection hysteresis 14
radio-link-timeout 32
channel allocator mode set-all ascending
rxlev access min 0
rach tx integer 9
rach max transmission 7
channel-description attach 1
channel-description bs-pa-mfrms 5
channel-description bs-ag-blks-res 1
early-classmark-sending forbidden
ipa unit-id 1234 0
oml ipa stream-id 255 line 0
codec-support fr
gprs mode none
trx 0
rf_locked 0
! 945M DL/900M UL
arfcn 50
nominal power 10
max_power_red 0
rsl e1 tei 0
timeslot 0
phys_chan_config CCCH+SDCCH4
hopping enabled 0
timeslot 1
phys_chan_config TCH/F
hopping enabled 0
timeslot 2
phys_chan_config TCH/F
hopping enabled 0
timeslot 3
phys_chan_config TCH/F
hopping enabled 0
timeslot 4
phys_chan_config TCH/F
hopping enabled 0
timeslot 5
phys_chan_config TCH/F
hopping enabled 0
timeslot 6
phys_chan_config TCH/F
hopping enabled 0
timeslot 7
phys_chan_config TCH/F
hopping enabled 0
ms-power-control
mode dyn-bts
rxlev-thresh lower 0 upper 63
msc 0
allow-emergency allow
amr-config 12_2k forbidden
amr-config 10_2k forbidden
amr-config 7_95k forbidden
amr-config 7_40k forbidden
amr-config 6_70k forbidden
amr-config 5_90k allowed
amr-config 5_15k forbidden
amr-config 4_75k forbidden
bsc
mid-call-timeout 0
```
You might notice I am using the gpsdo as the clock-ref. That's because I've also tried with a B210 with the internal GPSDO, but the results are the same.
Thanks in advance,
Jonathan Pichel