LimeSDR osmo-trx no work

the Linux Call Router was a bear but I got something working - the current branch used in the obsolete network from scratch SDR OsmoTRX network from scratch - Cellular Network Infrastructure - Open Source Mobile Communications is

git clone git://git.misdn.eu/lcr.git/

but that fails to compile on Ubuntu 16.04 - some bizarre #warning Please apply the sofia-sip-gcc-4.8.patch. So go back a few years to an older head

$ git checkout jolly/handover
Branch jolly/handover set up to track remote branch jolly/handover from origin.
Switched to a new branch ‘jolly/handover’

That’ll build and install, but for one small mismatch:

000000 ERROR (in gsm.cpp/mncc_fd_read() line 1366): MNCC version different. BSC version is 5

so just edit lcr/mncc.h and change the version from 3 to 5

#define MNCC_SOCK_VERSION 5

rebuild and install and now handsets can call each other.

1 Like

Very cool and thanks for sharing! Which OsmoTRX version/commit are you using?

It was the repo referenced here: https://osmocom.org/projects/osmotrx/wiki/LimeSDR_Family

or https://github.com/osmocom/osmo-trx

$ git tag
0.2.0
fairwaves/0.1.10-1
fairwaves/0.1.10-2
fairwaves/0.1.10-3
fairwaves/0.1.11
fairwaves/0.1.9
fairwaves/0.1.9-1

Well i tried to get this to work in lubuntu osmotrx fails after this
ERR 139798566057728 13:58:15.6 UHDDevice.cpp:350:uhd_msg_handler: MCU error code(5): Loopback signal weak, not connected?
WARNING 139798179600128 13:58:16.7 UHDDevice.cpp:347:uhd_msg_handler: popping from TX, samples popped 0/1020
WARNING 139798358517504 13:58:16.7 UHDDevice.cpp:347:uhd_msg_handler: L
ALERT 139798566024960 13:59:42.7 UHDDevice.cpp:1067:writeSamples: UHD: Device send timed out

https://pastebin.com/71F9Ed51

I burned lots of hours trying to make this work including IgnasJ configs and dozen of variations as well as countless number of code forks. Best I could accomplish was clean Tx of GSM signal, phones can see the network as “PLMN Test 1” but at no point have I had any success registering any phone to it. The whole thing is experimental, I get it, it was fun trying to make it work but it never did on my side. Perhaps there exists some “unique” combination of OS environment, osmo-nitb/osmo-bts/osmo-trx code versions/forks, and config settings that make it work but I have not discovered it yet.

Just got gprs working with an old phone, enough to (slowly) upload a photo of the LimeSDR to Facebook :slight_smile:

I’m running all on one box with USB3 to the radio and ethernet to a nat gateway, Ubuntu 16.04 - so here are all my config files that work. There are tricks, like the example cfg in the source have different unit-id’s for the bts and the nitb bsc, plus the aforementioned rx-gain is 1 and needs cranked up to 43 or so.

My last challenge was disable the ufw (uncomplicated firewall), flush all rules out of iptables and load the one nat rule, then it started working - you can watch the traffic with tcpdump -i tun4 - it’s amazing what a cheap watch is accessing.

Watching the 2 videos in the Readme below helped explain a lot.

3 Likes

Hey, could you share your config files? I have tried to set this up but without any success. I was only able to setup the GSM network but no GPRS.

Just published my working omsocom gsm comfig files with osmo-pcu, sgsn and ggsn in https://github.com/myriadrf/cellular-network-configs/

I will update details, add versions etc, this weekend.

Helps a bit to watch their presentation also: https://www.youtube.com/watch?v=Y5Jww5BWRx4

1 Like

Also, fwiw, I just tried switching FROM: osmo-nitb (the old openbsc) & openbsc.cfg

TO: osmo-hlr & osmo-hlr.cfg - home location register (users)
osmo-mgw & osmo-mgw.cfg - media gateway (hopefully route to asterisk someday?)
osmo-msc & osmo-msc.cfg - mobile switching center
osmo-bsc & osmo-bsc.cfg - base station controller

still use the same osmo-pcu,sgsn,ggsn,trx and osmo-bts-trx is started up last.
Was not too painful and GPRS is working :slight_smile:

Very cool, thanks for doing this!

Nice. Trying out the new architecture has been on my to-do list for a while and I suspect this will probably save me a bit of time :slight_smile:

Thanks for the cfg files . but if you explained what to install and where that would be great !!
I changed the install.sh script a bit to add the missing dependencies , Now he install all without problems


#!/bin/bash
echo “Install required packages”
sudo apt-add-repository ppa:myriadrf/drivers -y
sudo apt-add-repository ppa:ettusresearch/uhd -y
wget http://download.opensuse.org/repositories/network:/osmocom:/nightly/xUbuntu_16.04/Release.key
sudo apt-key add Release.key
sudo rm Release.key
echo “deb http://download.opensuse.org/repositories/network:/osmocom:/nightly/xUbuntu_16.04/ ./” | sudo tee /etc/apt/sources.list.d/osmocom-nightly.list
sudo apt-get update

sudo apt-get --yes --force-yes install git autoconf cmake libtool osmocom-nitb osmo-bts-trx uhd-soapysdr libuhd-dev libfftw3-dev libsqlite3-dev libusb-1.0-0-dev libboost-all-dev libsoapysdr-dev libpcsclite-dev libtalloc-dev gnutls-bin gnutls-dev
sudo apt-get -y install swig doxygen build-essential libboost-all-dev libtool libusb-1.0-0 libusb-1.0-0-dev libncurses5-dev libfftw3-bin libfftw3-dev libfftw3-doc libcppunit-1.13-0v5 libcppunit-dev libcppunit-doc ncurses-bin cpufrequtils python-numpy python-numpy-doc python-numpy-dbg python-scipy python-docutils qt4-bin-dbg qt4-default qt4-doc libqt4-dev libqt4-dev-bin python-qt4 python-qt4-dbg python-qt4-dev python-qt4-doc python-qt4-doc libqwt6abi1 libfftw3-bin libfftw3-dev libfftw3-doc ncurses-bin libncurses5 libncurses5-dev libncurses5-dbg libfontconfig1-dev libxrender-dev libpulse-dev swig g++ automake autoconf libtool python-dev libfftw3-dev libcppunit-dev libboost-all-dev libusb-dev libusb-1.0-0-dev fort77 libsdl1.2-dev python-wxgtk3.0 git-core libqt4-dev python-numpy ccache python-opengl libgsl-dev python-cheetah python-mako python-lxml doxygen qt4-default qt4-dev-tools libusb-1.0-0-dev libqwt5-qt4-dev libqwtplot3d-qt4-dev pyqt4-dev-tools python-qwt5-qt4 cmake git-core wget libxi-dev gtk2-engines-pixbuf r-base-dev python-tk liborc-0.4-0 liborc-0.4-dev libasound2-dev python-gtk2 libzmq-dev libzmq1 python-requests python-sphinx libcomedi-dev python-zmq uhd-host

echo “Install UHD”
git clone https://github.com/EttusResearch/uhd
cd uhd
cd host
mkdir build
cd build
cmake …/
make
sudo make install
sudo ldconfig
export LD_LIBRARY_PATH=/usr/local/lib

echo “Install libosmocore”
git clone git://git.osmocom.org/libosmocore.git
cd libosmocore/
autoreconf -i
./configure
make
sudo make install
sudo ldconfig -i
cd …

echo "Install LimeSuite"os
rm -rf LimeSuite
git clone https://github.com/myriadrf/LimeSuite
cd LimeSuite/build/
cmake …
make -j8
sudo make install
sudo ldconfig
cd …/…/

echo “Install osmo-trx”
git clone https://github.com/osmocom/osmo-trx.git
cd osmo-trx
autoreconf -fi
./configure
make -j5
make check
sudo make install
sudo ldconfig
cd …/

echo “*********************************************”
echo “***********************************"
echo "
uhd_find_devices # Testing "
echo "
**************************************”
echo “osmo-nitb -c openbsc.cfg -l hlr.sqlite3 -P -C”
echo “osmo-bts-trx -c osmo-bts.cfg”
echo "sudo osmo-trx -e # or osmo-trx-uhd -c osmo-trx.cfg? "
echo “*********************************************”
echo “*********************************************”
echo “*********************************************”

exit


but after installation command sudo osmo-trx -e gives an error that the command was not found .
but osmo-trx-uhd -c osmo-trx.cfg almost works

Thankss

osmocom has been doing a lot of work recently, they just had a developers conference ( https://osmocom.org/projects/osmo-dev-con/wiki/OsmoDevCon2018 ) and are changing (and naturally breaking) a bunch of things, I’m not sure the reasoning behind some of the requirements. For one thing osmo-trx now requires libusrp-dev.

I just rolled back osmo-trx to commit 53bdb7f82abbbcd7ecbb31c12ba877661bc6852f which builds osmo-trx, not osmo-trx-uhd and had to set LimeSuite back to v17.12 commit fe53178a3c74ce983ca8314c582c0547f723ec20 to get it all to work.

You’re welcome to try out my docker image :slight_smile: Has LimeSuite, Soapy, uhd, osmoGSM stack, config files and startup scripts already sorted out. Much easier than trying to explain how it was done, which I’ve mostly forgotten :\

It’s only about 220MB: https://hub.docker.com/r/cswiger/limeosmogsm03/

2 Likes

Wow Thanks !! I did not know that docker can be installed on Raspberry PI “https://blog.hypriot.com/getting-started-with-docker-and-windows-on-the-raspberry-pi/” today I’ll definitely try it . My Limesdr mini will work with your docker ?
Just read that (docker for 64/86) on the ARM processor can not start
I will think further (which single board computer to buy)
Thanks

1 Like

Do not know about the LimeSDR-mini - I have one on order and waiting.

UDOO - was mentioned here as a sbc candidate.

Search this forum for Raspberry Pi turns up lots of interesting projects.

thank you, I’m looking to the UP Board

sudo osmo-trx-uhd -c osmo-trx.cfg gives an error message

linux; GNU C++ version 5.4.0 20160609; Boost_105800; UHD_3.11.0.1-36-ge7d011ee
Tue May 8 21:54:30 2018 DMAIN <0000> UHDDevice.cpp:662 [tid=140248111228864] No UHD devices found with address ‘’
Tue May 8 21:54:30 2018 DMAIN <0000> osmo-trx.cpp:446 [tid=140248111228864] Failed to create radio device
Shutting down transceiver…

I do not understand what’s going on…

Any luck with :
# LimeUtil --find
# SoapySDRUtil --find
# SoapySDRUtil --probe
# uhd_find_devices
# uhd_usrp_probe

yes ! SoapySDRUtil --find gives LimeSDR mini…

# SoapySDRUtil --info should show a ‘uhd’ factory

# SoapySDRUtil --info
######################################################
## Soapy SDR -- the SDR abstraction library
######################################################


Available factories… lime, uhd

as described on the osmo-trx LimeSDR page: https://osmocom.org/projects/osmotrx/wiki/LimeSDR_Family#OsmoTRX-on-LimeSDR

$ ./SoapySDRUtil --find
######################################################

Soapy SDR – the SDR abstraction library

######################################################

linux; GNU C++ version 6.3.0 20170221; Boost_106200; UHD_003.009.005-0-unknown

Found device 0
addr = 1d50:6108
driver = lime
label = LimeSDR-USB [USB 3.0] 9060B00462B1C
media = USB 3.0
module = STREAM
name = LimeSDR-USB
serial = 0009060B00xxyyzz

yes just like this

thanks for the help !!

Maybe it’s because I’m trying in Virtualbox ?. After sudo osmo-trx-uhd -c osmo-trx.cfg Virtualbox disables and enables USB back .
Today I’ll try on a physical hardware