From ea62587a4a300e898cadced0a2817ee82d853b28 Mon Sep 17 00:00:00 2001 From: FlUxIuS Date: Thu, 5 Jan 2023 17:58:39 +0100 Subject: [PATCH 01/35] Replacing submodules URLs --- .gitmodules | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index d1739a4c..d5e98870 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,8 +1,8 @@ [submodule "CommonLibs"] path = CommonLibs - url = https://github.com/RangeNetworks/CommonLibs.git + url = https://github.com/PentHertz/CommonLibs.git branch = master [submodule "NodeManager"] path = NodeManager - url = https://github.com/RangeNetworks/NodeManager.git + url = https://github.com/PentHertz/NodeManager.git branch = master From 14c13119ae4f6b9a06c2389739bdddcbf334675d Mon Sep 17 00:00:00 2001 From: FlUxIuS Date: Thu, 5 Jan 2023 18:43:02 +0100 Subject: [PATCH 02/35] Fixing build error in Ubuntu 22.04 with C++11 --- Control/L3StateMachine.cpp | 6 +++--- GPRS/MSInfo.cpp | 2 +- GSMShare/A51.h | 2 +- SGSNGGSN/Sgsn.cpp | 4 ++-- SIP/SIP2Interface.cpp | 2 +- SIP/SIPRtp.cpp | 4 ++-- Transceiver52M/UHDDevice.cpp | 6 +++--- 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Control/L3StateMachine.cpp b/Control/L3StateMachine.cpp index b0c8e207..9fe296b2 100644 --- a/Control/L3StateMachine.cpp +++ b/Control/L3StateMachine.cpp @@ -85,11 +85,11 @@ void MachineBase::machineErrorMessage(int level, int state, const L3Message *l3m // This kind sucks, digging into the Logger. The logger could be better. if (l3msg) { - Log(level).get() < 1) { std::ostringstream os; msDumpChannels(os); - LOG(INFO) << "Multislot assignment for "< #include #include -#include #ifdef HAVE_CONFIG_H #include "config.h" @@ -313,12 +312,13 @@ void *async_event_loop(uhd_device *dev) return NULL; } +// TODO: Use the new API to display new stuff /* Catch and drop underrun 'U' and overrun 'O' messages from stdout since we already report using the logging facility. Direct everything else appropriately. */ -void uhd_msg_handler(uhd::msg::type_t type, const std::string &msg) +/*void uhd_msg_handler(uhd::msg::type_t type, const std::string &msg) { switch (type) { case uhd::msg::status: @@ -333,7 +333,7 @@ void uhd_msg_handler(uhd::msg::type_t type, const std::string &msg) case uhd::msg::fastpath: break; } -} +}*/ uhd_device::uhd_device(int sps, bool skip_rx) : tx_gain(0.0), tx_gain_min(0.0), tx_gain_max(0.0), From 00d0e0ea8c2f1495baa254e5c3c9688e72128f52 Mon Sep 17 00:00:00 2001 From: FlUxIuS Date: Thu, 5 Jan 2023 18:51:23 +0100 Subject: [PATCH 03/35] Use new submodule version --- CommonLibs | 2 +- NodeManager | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CommonLibs b/CommonLibs index 76b71d50..95007dad 160000 --- a/CommonLibs +++ b/CommonLibs @@ -1 +1 @@ -Subproject commit 76b71d509bb5e6f146d7305d01b4c1cfec21302a +Subproject commit 95007dad00118aa1ea1f039ef2cb5fefcf1976a5 diff --git a/NodeManager b/NodeManager index 8c8a6e8f..720d812f 160000 --- a/NodeManager +++ b/NodeManager @@ -1 +1 @@ -Subproject commit 8c8a6e8f7a93543b60b85cea9fb2b3479cd57584 +Subproject commit 720d812f285e01e68ad18a49036b30ae132208cc From c89d1f6d156ba67ee1b970bd911783d723771295 Mon Sep 17 00:00:00 2001 From: FlUxIuS Date: Thu, 5 Jan 2023 18:52:41 +0100 Subject: [PATCH 04/35] Uploading a preinstall script for EASY BUILDING --- preinstall.sh | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100755 preinstall.sh diff --git a/preinstall.sh b/preinstall.sh new file mode 100755 index 00000000..689187ff --- /dev/null +++ b/preinstall.sh @@ -0,0 +1,45 @@ +#!/bin/sh + +# Installing compilation dependencies +sudo apt install autoconf libtool libosip2-dev libortp-dev libusb-1.0-0-dev g++ sqlite3 \ + libsqlite3-dev erlang libreadline6-dev libncurses5-dev git dpkg-dev debhelper \ + libssl-dev cmake build-essential wget libzmq3-dev + +# Installing HD driver 4.1.0 & tools from Ubuntu package manager +sudo apt install libuhd4.1.0 libuhd-dev uhd-host + +# Cloning submodules +git submodule init +git submodule update + +# Installing libcoredumper +git clone https://github.com/PentHertz/libcoredumper.git +cd libcoredumper +./build +cd coredumper-1.2.1 +./configure +make -j$(nproc) +sudo make install +cd ../.. + +# Installing subscriberRegistry +git clone https://github.com/PentHertz/subscriberRegistry.git +cd subscriberRegistry +git submodule init +git submodule update +./autogen.sh +./configure +make -j$(nproc) +cd ../ + +# Installing liba53 +git clone https://github.com/PentHertz/liba53.git +cd liba53 +make && make install +cd .. + +# Installing OpenBTS +#./autogen.sh +#./configure --with-uhd +#make -j$(nproc) +#make install From 75d8da0ef0bf3e3d8763453a55842301715f835f Mon Sep 17 00:00:00 2001 From: FlUxIuS Date: Thu, 5 Jan 2023 18:55:03 +0100 Subject: [PATCH 05/35] Commenting missing handler from old API --- Transceiver52M/UHDDevice.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Transceiver52M/UHDDevice.cpp b/Transceiver52M/UHDDevice.cpp index 59a93813..b37c1edf 100644 --- a/Transceiver52M/UHDDevice.cpp +++ b/Transceiver52M/UHDDevice.cpp @@ -664,7 +664,7 @@ bool uhd_device::start() setPriority(); // Register msg handler - uhd::msg::register_handler(&uhd_msg_handler); + //uhd::msg::register_handler(&uhd_msg_handler); // Start asynchronous event (underrun check) loop async_event_thrd.start((void * (*)(void*))async_event_loop, (void*)this); From e449095de917b9fe8ae2e66204a2e36a093a8d3a Mon Sep 17 00:00:00 2001 From: FlUxIuS Date: Thu, 5 Jan 2023 18:57:58 +0100 Subject: [PATCH 06/35] Fixing presintall script quickly --- preinstall.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/preinstall.sh b/preinstall.sh index 689187ff..6d093af3 100755 --- a/preinstall.sh +++ b/preinstall.sh @@ -1,9 +1,7 @@ #!/bin/sh # Installing compilation dependencies -sudo apt install autoconf libtool libosip2-dev libortp-dev libusb-1.0-0-dev g++ sqlite3 \ - libsqlite3-dev erlang libreadline6-dev libncurses5-dev git dpkg-dev debhelper \ - libssl-dev cmake build-essential wget libzmq3-dev +sudo apt install autoconf libtool libosip2-dev libortp-dev libusb-1.0-0-dev g++ sqlite3 libsqlite3-dev erlang libreadline6-dev libncurses5-dev git dpkg-dev debhelper libssl-dev cmake build-essential wget libzmq3-dev # Installing HD driver 4.1.0 & tools from Ubuntu package manager sudo apt install libuhd4.1.0 libuhd-dev uhd-host From 2e27be5c550ffaacd66528758d1545621b21eba6 Mon Sep 17 00:00:00 2001 From: FlUxIuS Date: Thu, 5 Jan 2023 19:01:03 +0100 Subject: [PATCH 07/35] Fix mistake in preinstall.sh script --- preinstall.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/preinstall.sh b/preinstall.sh index 6d093af3..5eabccee 100755 --- a/preinstall.sh +++ b/preinstall.sh @@ -13,7 +13,7 @@ git submodule update # Installing libcoredumper git clone https://github.com/PentHertz/libcoredumper.git cd libcoredumper -./build +./build.sh cd coredumper-1.2.1 ./configure make -j$(nproc) From 18e9416fe680aec9e643f82ca65f88425e683059 Mon Sep 17 00:00:00 2001 From: FlUxIuS Date: Thu, 5 Jan 2023 19:33:07 +0100 Subject: [PATCH 08/35] Updating preinstall script --- preinstall.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/preinstall.sh b/preinstall.sh index 5eabccee..f25281f3 100755 --- a/preinstall.sh +++ b/preinstall.sh @@ -28,6 +28,7 @@ git submodule update ./autogen.sh ./configure make -j$(nproc) +sudo make install cd ../ # Installing liba53 @@ -36,6 +37,17 @@ cd liba53 make && make install cd .. +# Installing smqueue +git clone https://github.com/PentHertz/smqueue.git +cd smqueue +git submodule init +git submodule update +./autogen.sh +./configure +make -j$(nproc) +sudo make install +cd ../ + # Installing OpenBTS #./autogen.sh #./configure --with-uhd From c15926b2ac4e6acafa16747820ebe350043bd61c Mon Sep 17 00:00:00 2001 From: FlUxIuS Date: Thu, 5 Jan 2023 19:48:32 +0100 Subject: [PATCH 09/35] Adding support for B205-mini*w : --- Transceiver52M/UHDDevice.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Transceiver52M/UHDDevice.cpp b/Transceiver52M/UHDDevice.cpp index b37c1edf..d2e56946 100644 --- a/Transceiver52M/UHDDevice.cpp +++ b/Transceiver52M/UHDDevice.cpp @@ -488,7 +488,7 @@ bool uhd_device::parse_dev_type() std::string mboard_str, dev_str; uhd::property_tree::sptr prop_tree; size_t usrp1_str, usrp2_str, b100_str, b200_str, - b210_str, x300_str, x310_str, umtrx_str; + b210_str, x300_str, x310_str, umtrx_str, b205mini_str; prop_tree = usrp_dev->get_device()->get_tree(); dev_str = prop_tree->access("/name").get(); @@ -498,6 +498,7 @@ bool uhd_device::parse_dev_type() usrp2_str = dev_str.find("USRP2"); b100_str = mboard_str.find("B100"); b200_str = mboard_str.find("B200"); + b205mini_str = mboard_str.find("B205mini"); b210_str = mboard_str.find("B210"); x300_str = mboard_str.find("X300"); x310_str = mboard_str.find("X310"); @@ -518,7 +519,9 @@ bool uhd_device::parse_dev_type() return true; } else if (b200_str != std::string::npos) { dev_type = B2XX; - } else if (b210_str != std::string::npos) { + } else if (b205mini_str != std::string::npos) { + dev_type = B2XX; + } else if (b210_str != std::string::npos) { dev_type = B2XX; } else if (x300_str != std::string::npos) { dev_type = X3XX; From 8d02a810dcc943289e08941d594ec582a7033855 Mon Sep 17 00:00:00 2001 From: FlUxIuS Date: Fri, 6 Jan 2023 10:01:27 +0100 Subject: [PATCH 10/35] Updating preinstall script --- preinstall.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/preinstall.sh b/preinstall.sh index f25281f3..2075833f 100755 --- a/preinstall.sh +++ b/preinstall.sh @@ -48,6 +48,13 @@ make -j$(nproc) sudo make install cd ../ +# Making rooms for subscriberRegistry and smqueue +sudo sqlite3 -init ./apps/OpenBTS.example.sql /etc/OpenBTS/OpenBTS.db ".quit" +sudo mkdir -p /var/lib/asterisk/sqlite3dir +sudo sqlite3 -init /etc/OpenBTS/sipauthserve.example.sql /etc/OpenBTS/sipauthserve.db ".quit" +sudo mkdir /var/lib/OpenBTS +sudo touch /var/lib/OpenBTS/smq.cdr + # Installing OpenBTS #./autogen.sh #./configure --with-uhd From 7149db6fe3538b943bfc67198bfef5c624886ffc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Dudek?= Date: Fri, 6 Jan 2023 10:06:44 +0100 Subject: [PATCH 11/35] Update README --- README | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 69 insertions(+), 3 deletions(-) diff --git a/README b/README index 0d1cb5cf..ea4cb1bb 100644 --- a/README +++ b/README @@ -1,5 +1,70 @@ -Welcome to the OpenBTS source code. +Welcome to the OpenBTS source code reloaded for 2023 supporting new UHD drivers and Ubuntu 22.04 LTS to be compiled against C++11 and C++17. +# What is this project? + +This projects provides a GSM+GPRS Radio Access Network Node with Software-Defined Radio. + +# Supported hardware + +* USRPs: + * USRP v1 (with 52 MHz clock -> but can be patched for default 64 MHz) + * USRP2 + * USRP B200/B210 and B205mini-* + * USRP N210 + * USRP X3*0 + * USRP N210 +* UmTRX +* LimeSDR with OsmoTRX transceiver by now + +# Quick usage + +## Setup + +Clone the repository and use the pre-installation script `preinstall.sh` to clone all other projects, submodules and install dependencies: + +``` +$ git clone https://github.com/PentHertz/OpenBTS.git +$ cd OpenBTS +$ ./preinstall.sh # note that for now libcoredumper will show some failures but we quickly bypass them forcing the compilation +``` + +Once it is finished, you can proceed with the installation of OpenBTS as follows: + +``` +$ ./autogen.sh +$ ./configure --with-uhd # use different options for other drivers +$ make -j$(nproc) +$ sudo make install +$ sudo ldconfig +``` + +And then we can launch everything! + +# Running everything + +Preferably run the probe UHD tool to load the firmware and FPGA into the USRP first: + +``` +$ uhd_usrp_probe +[INFO] [UHD] linux; GNU C++ version 11.2.0; Boost_107400; UHD_4.1.0.5-3 +[INFO] [B200] Loading firmware image: /usr/share/uhd/images/usrp_b200_fw.hex... +[INFO] [B200] Detected Device: B210 +[INFO] [B200] Loading FPGA image: /usr/share/uhd/images/usrp_b210_fpga.bin... +[...] +``` + +You can use `screen`, `tmux` or just laucnh everything except `OpenBTS` in background: + +``` +$ sudo smqueue & +$ sudo sipauthserve & +$ sudo /OpenBTS/OpenBTS +``` + +And voilà! + + +# Old README For free support, please subscribe to openbts-discuss@lists.sourceforge.net. See http://sourceforge.net/mailarchive/forum.php?forum_name=openbts-discuss @@ -58,8 +123,7 @@ normal GNU build process with the rest of OpenBTS. To build smqueue, go into the smqueue directory and just type "make -f Makefile.standalone". - -Release history: +# Release history: Release Name SVN Reposiory SVN Rev Comments @@ -178,3 +242,5 @@ Release Name SVN Reposiory SVN Rev Comments 2.9 Plaquemine Range socket-based remote CLI merge-in of "S" Release +5.0 ? ? ? +5.1 FlUxIuS Penthertz Release for 2023 compiling with fresh Ubuntu 22.04 From 4e5e5aadbeb1199b69b4ef573a46e6ab23324ddb Mon Sep 17 00:00:00 2001 From: FlUxIuS Date: Fri, 6 Jan 2023 10:07:21 +0100 Subject: [PATCH 12/35] Changing README format --- README => README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename README => README.md (100%) diff --git a/README b/README.md similarity index 100% rename from README rename to README.md From 0fe64ba3ee2fca7f38f7f09a23a47f4023f1f4d7 Mon Sep 17 00:00:00 2001 From: FlUxIuS Date: Fri, 6 Jan 2023 10:16:43 +0100 Subject: [PATCH 13/35] Including contribution headers --- Control/L3StateMachine.cpp | 1 + GPRS/MSInfo.cpp | 1 + GSMShare/A51.h | 2 +- SGSNGGSN/Sgsn.cpp | 1 + SIP/SIP2Interface.cpp | 1 + SIP/SIPRtp.cpp | 1 + Transceiver52M/UHDDevice.cpp | 2 +- preinstall.sh | 6 ++++++ 8 files changed, 13 insertions(+), 2 deletions(-) diff --git a/Control/L3StateMachine.cpp b/Control/L3StateMachine.cpp index 9fe296b2..33d9f55d 100644 --- a/Control/L3StateMachine.cpp +++ b/Control/L3StateMachine.cpp @@ -1,6 +1,7 @@ /**@file Declarations for Circuit Switched State Machine and related classes. */ /* * Copyright 2013, 2014 Range Networks, Inc. +* Renewed for 2023 by FlUxIuS @ Penthertz * * This software is distributed under multiple licenses; * see the COPYING file in the main directory for licensing diff --git a/GPRS/MSInfo.cpp b/GPRS/MSInfo.cpp index c0d87652..04492881 100644 --- a/GPRS/MSInfo.cpp +++ b/GPRS/MSInfo.cpp @@ -1,5 +1,6 @@ /* * Copyright 2011, 2014 Range Networks, Inc. +* Renewed for 2023 by FlUxIuS @ Penthertz * * This software is distributed under multiple licenses; * see the COPYING file in the main directory for licensing diff --git a/GSMShare/A51.h b/GSMShare/A51.h index 5f650d35..68583a25 100644 --- a/GSMShare/A51.h +++ b/GSMShare/A51.h @@ -1,4 +1,4 @@ - +// Renewed for 2023 by FlUxIuS @ Penthertz #include #include diff --git a/SGSNGGSN/Sgsn.cpp b/SGSNGGSN/Sgsn.cpp index f8b2a0c6..fadcceed 100644 --- a/SGSNGGSN/Sgsn.cpp +++ b/SGSNGGSN/Sgsn.cpp @@ -1,5 +1,6 @@ /* * Copyright 2011, 2014 Range Networks, Inc. +* Renewed for 2023 by FlUxIuS @ Penthertz * * This software is distributed under multiple licenses; * see the COPYING file in the main directory for licensing diff --git a/SIP/SIP2Interface.cpp b/SIP/SIP2Interface.cpp index d2ee0e7d..ae548ab6 100644 --- a/SIP/SIP2Interface.cpp +++ b/SIP/SIP2Interface.cpp @@ -1,6 +1,7 @@ /* * Copyright 2008, 2009, 2010 Free Software Foundation, Inc. * Copyright 2011, 2014 Range Networks, Inc. +* Renewed for 2023 by FlUxIuS @ Penthertz * * This software is distributed under multiple licenses; * see the COPYING file in the main directory for licensing diff --git a/SIP/SIPRtp.cpp b/SIP/SIPRtp.cpp index 12fb5f92..230c731c 100644 --- a/SIP/SIPRtp.cpp +++ b/SIP/SIPRtp.cpp @@ -1,5 +1,6 @@ /* * Copyright 2014 Range Networks, Inc. +* Renewed for 2023 by FlUxIuS @ Penthertz * * This software is distributed under multiple licenses; * see the COPYING file in the main directory for licensing diff --git a/Transceiver52M/UHDDevice.cpp b/Transceiver52M/UHDDevice.cpp index d2e56946..d2aaf29a 100644 --- a/Transceiver52M/UHDDevice.cpp +++ b/Transceiver52M/UHDDevice.cpp @@ -3,7 +3,7 @@ * Written by Thomas Tsou * * Copyright 2010,2011 Free Software Foundation, Inc. - * + * Renewed for 2023 by FlUxIuS @ Penthertz * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or diff --git a/preinstall.sh b/preinstall.sh index 2075833f..c2472fd1 100755 --- a/preinstall.sh +++ b/preinstall.sh @@ -1,5 +1,11 @@ #!/bin/sh +########################################################## +# This is a simple script made by FlUxIuS @ Penthertz # +# It is there to simplify the installation of this whole # +# project. # +########################################################## + # Installing compilation dependencies sudo apt install autoconf libtool libosip2-dev libortp-dev libusb-1.0-0-dev g++ sqlite3 libsqlite3-dev erlang libreadline6-dev libncurses5-dev git dpkg-dev debhelper libssl-dev cmake build-essential wget libzmq3-dev From 245f72e54fde7c53d569387ca4052923608f1a75 Mon Sep 17 00:00:00 2001 From: FlUxIuS Date: Fri, 6 Jan 2023 11:16:57 +0100 Subject: [PATCH 14/35] including ldconfig --- preinstall.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/preinstall.sh b/preinstall.sh index c2472fd1..114aeee0 100755 --- a/preinstall.sh +++ b/preinstall.sh @@ -24,6 +24,7 @@ cd coredumper-1.2.1 ./configure make -j$(nproc) sudo make install +sudo ldconfig cd ../.. # Installing subscriberRegistry @@ -35,12 +36,14 @@ git submodule update ./configure make -j$(nproc) sudo make install +sudo ldconfig cd ../ # Installing liba53 git clone https://github.com/PentHertz/liba53.git cd liba53 make && make install +sudo ldconfig cd .. # Installing smqueue @@ -52,6 +55,7 @@ git submodule update ./configure make -j$(nproc) sudo make install +sudo ldconfig cd ../ # Making rooms for subscriberRegistry and smqueue From fe05f7d3ff3e212e719a2ad4b2d3df38599701cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Dudek?= Date: Fri, 6 Jan 2023 11:28:48 +0100 Subject: [PATCH 15/35] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ea4cb1bb..61b6ecbd 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,7 @@ Clone the repository and use the pre-installation script `preinstall.sh` to clon ``` $ git clone https://github.com/PentHertz/OpenBTS.git $ cd OpenBTS +$ # Optionally, checkout 5.1.0 branch which is the stable one with `git checkout 5.1.0` $ ./preinstall.sh # note that for now libcoredumper will show some failures but we quickly bypass them forcing the compilation ``` From b1b7d2097978c896a6125f126a5e3046e892740d Mon Sep 17 00:00:00 2001 From: FlUxIuS Date: Fri, 6 Jan 2023 11:32:36 +0100 Subject: [PATCH 16/35] Backporting patch from @alexanderkjall for GPRS attach (https://github.com/RangeNetworks/openbts/pull/9/commits/09fa52468edb5791dbbeb037591ea54fe4c197dc) --- SGSNGGSN/GPRSL3Messages.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/SGSNGGSN/GPRSL3Messages.cpp b/SGSNGGSN/GPRSL3Messages.cpp index 62f1ccd5..17a542b6 100644 --- a/SGSNGGSN/GPRSL3Messages.cpp +++ b/SGSNGGSN/GPRSL3Messages.cpp @@ -367,6 +367,22 @@ void GMMAttach::gmParseIEs(L3GmmFrame &src, size_t &rp, const char *culprit) mTmsiStatus = iei & 1; continue; } + if ((iei & 0xf0) == 0xd0) { + // 10.5.7.8 Device properties. Ignore for now + continue; + } + if ((iei & 0xf0) == 0xe0) { + // 10.5.5.29 P-TMSI type. Ignore for now + continue; + } + if ((iei & 0xf0) == 0xc0) { + // 10.5.1.15 MS network feature support. Ignore for now + continue; + } + if ((iei & 0xf0) == 0xf0) { + // 10.5.5.0 Additional update type. Ignore for now + continue; + } switch (iei) { case 0x19: // TV Old P-TMSI signature. // Dont have a 3 byte 'read' function so use getField then advance rp by 3. @@ -385,6 +401,10 @@ void GMMAttach::gmParseIEs(L3GmmFrame &src, size_t &rp, const char *culprit) // The specified length is of the ie itself, excluding the iei type and length byte. // Get the length, but dont move rp - let the IEs do that, because // some of them need the length byte. + if (rp >= src.size()) { + SGSNERROR("invalid message size in "< Date: Fri, 6 Jan 2023 11:55:14 +0100 Subject: [PATCH 18/35] Fix bug with command lengths over 127 from @Will-W --- CLI/CLIServer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CLI/CLIServer.cpp b/CLI/CLIServer.cpp index 9f6ff2fe..debee4e2 100644 --- a/CLI/CLIServer.cpp +++ b/CLI/CLIServer.cpp @@ -202,7 +202,7 @@ void Parser::cliServer() close(i); continue; // go to next socket } - if (len < (int) sizeof(len)) // should never get here + if (nread < (int) sizeof(len)) // should never get here { char buf[BUFSIZ]; sprintf(buf, "Unable to read complete length, s.b. %d bytes, got %d bytes\n", sizeof(len), len); From c93cc1b06cbc41e1677d88b6d64bab089711209a Mon Sep 17 00:00:00 2001 From: FlUxIuS Date: Fri, 6 Jan 2023 12:00:49 +0100 Subject: [PATCH 19/35] Extending support for B200mini as well from @devnulling --- Transceiver52M/UHDDevice.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Transceiver52M/UHDDevice.cpp b/Transceiver52M/UHDDevice.cpp index d2aaf29a..fdd8fa78 100644 --- a/Transceiver52M/UHDDevice.cpp +++ b/Transceiver52M/UHDDevice.cpp @@ -488,7 +488,7 @@ bool uhd_device::parse_dev_type() std::string mboard_str, dev_str; uhd::property_tree::sptr prop_tree; size_t usrp1_str, usrp2_str, b100_str, b200_str, - b210_str, x300_str, x310_str, umtrx_str, b205mini_str; + b210_str, x300_str, x310_str, umtrx_str, b205mini_str, b200mini_str; prop_tree = usrp_dev->get_device()->get_tree(); dev_str = prop_tree->access("/name").get(); @@ -498,6 +498,7 @@ bool uhd_device::parse_dev_type() usrp2_str = dev_str.find("USRP2"); b100_str = mboard_str.find("B100"); b200_str = mboard_str.find("B200"); + b200mini_str = mboard_str.find("B200mini"); b205mini_str = mboard_str.find("B205mini"); b210_str = mboard_str.find("B210"); x300_str = mboard_str.find("X300"); @@ -519,6 +520,8 @@ bool uhd_device::parse_dev_type() return true; } else if (b200_str != std::string::npos) { dev_type = B2XX; + } else if (b200mini_str != std::string::npos) { + dev_type = B2XX; } else if (b205mini_str != std::string::npos) { dev_type = B2XX; } else if (b210_str != std::string::npos) { From c4ff920c85f65cb0dc766b1b016622aa9ae4c52c Mon Sep 17 00:00:00 2001 From: FlUxIuS Date: Sat, 7 Jan 2023 12:32:08 +0100 Subject: [PATCH 20/35] Updating UHD's thread header that was deprecated by new one --- Transceiver52M/UHDDevice.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Transceiver52M/UHDDevice.cpp b/Transceiver52M/UHDDevice.cpp index fdd8fa78..bb1ea79a 100644 --- a/Transceiver52M/UHDDevice.cpp +++ b/Transceiver52M/UHDDevice.cpp @@ -25,7 +25,7 @@ #include #include #include -#include +#include #ifdef HAVE_CONFIG_H #include "config.h" From d9ad8a5683c80b7640ada71ac6a523d1d72dff16 Mon Sep 17 00:00:00 2001 From: FlUxIuS Date: Sat, 7 Jan 2023 12:57:12 +0100 Subject: [PATCH 21/35] Fixing versions displayed --- Globals/GlobalVars.cpp | 1 + configure.ac | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Globals/GlobalVars.cpp b/Globals/GlobalVars.cpp index 30f6c0f2..3e4db76c 100644 --- a/Globals/GlobalVars.cpp +++ b/Globals/GlobalVars.cpp @@ -35,6 +35,7 @@ const char* gOpenBTSWelcome = "Copyright 2008, 2009, 2010 Free Software Foundation, Inc.\n" "Copyright 2010 Kestrel Signal Processing, Inc.\n" "Copyright 2011-2021 Range Networks, Inc.\n" + "Reloaded for 2023 by FlUxIuS @ Penthertz SAS.\n" "Release " VERSION "+" REPO_REV " " PROD_CAT " formal build date " TIMESTAMP_ISO "\n" "\"OpenBTS\" is a registered trademark of Range Networks, Inc.\n" "\nContributors:\n" diff --git a/configure.ac b/configure.ac index 19c1ba64..760e7d21 100644 --- a/configure.ac +++ b/configure.ac @@ -21,7 +21,7 @@ dnl AC_PREREQ([2.57]) # must be AC_INIT([openbts], [5.0-master]) -AC_INIT(openbts,5.0-master) +AC_INIT(openbts,5.1-master) AC_CANONICAL_BUILD AC_CANONICAL_HOST From 15636159ad28439c827cd7ef729adb1bedafcdd7 Mon Sep 17 00:00:00 2001 From: FlUxIuS Date: Sat, 7 Jan 2023 16:46:13 +0100 Subject: [PATCH 22/35] Adding support for subdevices from @STKFLT (https://github.com/RangeNetworks/openbts/pull/12/files) --- Transceiver52M/UHDDevice.cpp | 10 ++++++++-- Transceiver52M/radioDevice.h | 2 +- Transceiver52M/runTransceiver.cpp | 3 ++- apps/GetConfigurationKeys.cpp | 11 +++++++++++ apps/OpenBTS.example.sql | 1 + 5 files changed, 23 insertions(+), 4 deletions(-) diff --git a/Transceiver52M/UHDDevice.cpp b/Transceiver52M/UHDDevice.cpp index bb1ea79a..72d14583 100644 --- a/Transceiver52M/UHDDevice.cpp +++ b/Transceiver52M/UHDDevice.cpp @@ -210,7 +210,7 @@ class uhd_device : public RadioDevice { uhd_device(int sps, bool skip_rx); ~uhd_device(); - int open(const std::string &args, ReferenceType ref); + int open(const std::string &args, ReferenceType ref, const std::string &subdev); bool start(); bool stop(); void restart(uhd::time_spec_t ts); @@ -545,7 +545,7 @@ bool uhd_device::parse_dev_type() return true; } -int uhd_device::open(const std::string &args, ReferenceType ref) +int uhd_device::open(const std::string &args, ReferenceType ref, const std::string &subdev) { // Find UHD devices uhd::device_addr_t addr(args); @@ -570,6 +570,12 @@ int uhd_device::open(const std::string &args, ReferenceType ref) set_ref_clk(ref); + //specify subdevice (daughterboard) + if(!subdev.empty()) { + usrp_dev->set_tx_subdev_spec(subdev); + usrp_dev->set_rx_subdev_spec(subdev); + } + // Create TX and RX streamers uhd::stream_args_t stream_args("sc16"); tx_stream = usrp_dev->get_tx_stream(stream_args); diff --git a/Transceiver52M/radioDevice.h b/Transceiver52M/radioDevice.h index 40174395..7df91c9e 100644 --- a/Transceiver52M/radioDevice.h +++ b/Transceiver52M/radioDevice.h @@ -43,7 +43,7 @@ class RadioDevice { virtual ~RadioDevice() { } /** Initialize the USRP */ - virtual int open(const std::string &args, ReferenceType ref)=0; + virtual int open(const std::string &args, ReferenceType ref, const std::string &subdev = "")=0; /** Start the USRP */ virtual bool start()=0; diff --git a/Transceiver52M/runTransceiver.cpp b/Transceiver52M/runTransceiver.cpp index c06d3c34..8a6854b4 100644 --- a/Transceiver52M/runTransceiver.cpp +++ b/Transceiver52M/runTransceiver.cpp @@ -112,7 +112,7 @@ int testConfig(const char *filename) int main(int argc, char *argv[]) { int trxPort, radioType, fail = 0; - std::string deviceArgs, logLevel, trxAddr, refstr; + std::string deviceArgs, logLevel, trxAddr, refstr, subdev; RadioDevice *usrp = NULL; RadioDevice::ReferenceType refType; RadioInterface *radio = NULL; @@ -142,6 +142,7 @@ int main(int argc, char *argv[]) logLevel = gConfig.getStr("Log.Level"); trxPort = gConfig.getNum("TRX.Port"); trxAddr = gConfig.getStr("TRX.IP"); + subdev = gConfig.getStr("TRX.Subdevice"); if (gConfig.defines("TRX.Reference")) refstr = gConfig.getStr("TRX.Reference"); diff --git a/apps/GetConfigurationKeys.cpp b/apps/GetConfigurationKeys.cpp index 63606399..11b735f7 100644 --- a/apps/GetConfigurationKeys.cpp +++ b/apps/GetConfigurationKeys.cpp @@ -3078,6 +3078,17 @@ ConfigurationKeyMap getConfigurationKeys() map[tmp.getName()] = tmp; } + { ConfigurationKey tmp("TRX.Subdevice","", + "", + ConfigurationKey::CUSTOMERWARN, + ConfigurationKey::STRING, + "", + true, + "This value is a string that specifies a subdevice for Ettus Hardware." + ); + map[tmp.getName()] = tmp; + } + { ConfigurationKey tmp("TRX.Timeout.Clock","10", "seconds", ConfigurationKey::DEVELOPER, diff --git a/apps/OpenBTS.example.sql b/apps/OpenBTS.example.sql index 1610138e..421072e4 100644 --- a/apps/OpenBTS.example.sql +++ b/apps/OpenBTS.example.sql @@ -237,6 +237,7 @@ INSERT OR IGNORE INTO "CONFIG" VALUES('TRX.RadioFrequencyOffset','128',1,0,'Fine INSERT OR IGNORE INTO "CONFIG" VALUES('TRX.Timeout.Clock','10',0,0,'How long to wait during a read operation from the Transceiver before giving up.'); INSERT OR IGNORE INTO "CONFIG" VALUES('TRX.Timeout.Start','2',0,0,'How long to wait during system startup before checking to see if the Transceiver can be reached.'); INSERT OR IGNORE INTO "CONFIG" VALUES('TRX.TxAttenOffset','0',1,0,'Hardware-specific gain adjustment for transmitter, matched to the power amplifier, expessed as an attenuation in dB. Set at the factory. Do not adjust without proper calibration. Static.'); +INSERT OR IGNORE INTO "CONFIG" VALUES('TRX.Subdevice','',1,0,'Subdevice (Daughterboard) to use on Ettus hardware that supports it'); INSERT OR IGNORE INTO "CONFIG" VALUES('TRX.Reference','internal',0,0,'TRX reference type ("internal", "external", "gpsdo")'); INSERT OR IGNORE INTO "CONFIG" VALUES('Test.GSM.SimulatedFER.Downlink','0',0,0,'Probability (0-100) of dropping any downlink frame to test robustness.'); INSERT OR IGNORE INTO "CONFIG" VALUES('Test.GSM.SimulatedFER.Uplink','0',0,0,'Probability (0-100) of dropping any uplink frame to test robustness.'); From 720286d0300b681998943c50bedc7db22aa8000b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Dudek?= Date: Mon, 9 Jan 2023 11:30:48 +0100 Subject: [PATCH 23/35] Update README.md --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 61b6ecbd..ca12ef0a 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ $ sudo ldconfig And then we can launch everything! -# Running everything +## Running everything Preferably run the probe UHD tool to load the firmware and FPGA into the USRP first: @@ -64,6 +64,10 @@ $ sudo /OpenBTS/OpenBTS And voilà! +# Docker container + +A Docker images has been also generated for the backup and is ready to use with all installed tools: https://hub.docker.com/r/penthertz/openbts + # Old README From 4186c5d03749b09e80430574ec293ed8ea75438c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Dudek?= Date: Wed, 18 Jan 2023 17:04:42 +0100 Subject: [PATCH 24/35] Update README.md --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index ca12ef0a..c35b2e17 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,18 @@ And voilà! A Docker images has been also generated for the backup and is ready to use with all installed tools: https://hub.docker.com/r/penthertz/openbts +# Fuzzing with OpenBTS + +The Testcall feature has been reintroduced and includes also a SMS Fuzzing features thanks to @Djimmer work, and is under test with this new version of OpenBTS. + +You can already test it with the `fuzzing-dev` branch: + +``` +git checkout fuzzing-dev +``` + +Do not hesitate to send issue or pull requests in order to stabilize it. + # Old README From 137320dc0f92e647393a5c1ab3d7d819e7ea1163 Mon Sep 17 00:00:00 2001 From: FlUxIuS Date: Sat, 21 Jan 2023 12:53:16 +0100 Subject: [PATCH 25/35] fixing liba53 install --- preinstall.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/preinstall.sh b/preinstall.sh index 114aeee0..5e9ee4d5 100755 --- a/preinstall.sh +++ b/preinstall.sh @@ -42,7 +42,8 @@ cd ../ # Installing liba53 git clone https://github.com/PentHertz/liba53.git cd liba53 -make && make install +make -j$(nproc) +sudo make install sudo ldconfig cd .. From b5a8b6dfea991e1bee471c39eca9f3db05a25868 Mon Sep 17 00:00:00 2001 From: FlUxIuS Date: Sat, 21 Jan 2023 13:01:06 +0100 Subject: [PATCH 26/35] Experimental support for E200 (didn't tested as I don't owe a E200 yet...) --- Transceiver52M/UHDDevice.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Transceiver52M/UHDDevice.cpp b/Transceiver52M/UHDDevice.cpp index 72d14583..1035f4c0 100644 --- a/Transceiver52M/UHDDevice.cpp +++ b/Transceiver52M/UHDDevice.cpp @@ -44,6 +44,7 @@ enum uhd_dev_type { B2XX, X3XX, UMTRX, + ANTSDR_E200, NUM_USRP_TYPES, }; @@ -65,6 +66,9 @@ struct uhd_dev_offset { #define B2XX_TIMING_4SPS 6.9248e-5 #endif +#define E200_TIMING_1SPS 9.9692e-5 # TODO: probably to fix +#define E200_TIMING_4SPS 6.9248e-5 # TODO: probably to fix + /* * Tx / Rx sample offset values. In a perfect world, there is no group delay * though analog components, and behaviour through digital filters exactly @@ -88,6 +92,8 @@ static struct uhd_dev_offset uhd_offsets[NUM_USRP_TYPES * 2] = { { X3XX, 4, 1.1264e-4, "X3XX 4 SPS"}, { UMTRX, 1, 9.9692e-5, "UmTRX 1 SPS" }, { UMTRX, 4, 7.3846e-5, "UmTRX 4 SPS" }, + { ANTSDR_E200, 1, E200_TIMING_1SPS, "ANTSDR E200 1 SPS" }, + { ANTSDR_E200, 4, E200_TIMING_4SPS, "ANTSDR E200 4 SPS" }, }; static double get_dev_offset(enum uhd_dev_type type, int sps) @@ -125,6 +131,7 @@ static double select_rate(uhd_dev_type type, int sps) case B100: return B100_BASE_RT * sps; case B2XX: + case E200: case UMTRX: return GSMRATE * sps; default: @@ -487,7 +494,7 @@ bool uhd_device::parse_dev_type() { std::string mboard_str, dev_str; uhd::property_tree::sptr prop_tree; - size_t usrp1_str, usrp2_str, b100_str, b200_str, + size_t usrp1_str, usrp2_str, b100_str, b200_str, antsdr_e200_str, b210_str, x300_str, x310_str, umtrx_str, b205mini_str, b200mini_str; prop_tree = usrp_dev->get_device()->get_tree(); @@ -504,6 +511,7 @@ bool uhd_device::parse_dev_type() x300_str = mboard_str.find("X300"); x310_str = mboard_str.find("X310"); umtrx_str = dev_str.find("UmTRX"); + antsdr_e200_str = mboard_str.find("E200"); if (usrp1_str != std::string::npos) { LOG(ALERT) << "USRP1 is not supported using the UHD driver"; @@ -534,7 +542,9 @@ bool uhd_device::parse_dev_type() dev_type = USRP2; } else if (umtrx_str != std::string::npos) { dev_type = UMTRX; - } else { + } else if (antsdr_e200_str != std::string::npos) { + dev_type = ANTSDR_E200; + } else { LOG(ALERT) << "Unknown UHD device type " << dev_str; return false; } From 5bb98f78a65bfdcf88913af2e7c74dd03343afc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Dudek?= Date: Sat, 21 Jan 2023 13:03:43 +0100 Subject: [PATCH 27/35] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c35b2e17..56ebb57f 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ This projects provides a GSM+GPRS Radio Access Network Node with Software-Define * USRP N210 * UmTRX * LimeSDR with OsmoTRX transceiver by now +* ANTSDR E200: Warning! Super experimental as we don't own the hardware yet (send your captures centered on the used ARFCN for debug) # Quick usage From 3459ac0bf40a43c7924820689467a4a613d7ff11 Mon Sep 17 00:00:00 2001 From: FlUxIuS Date: Sat, 21 Jan 2023 13:08:45 +0100 Subject: [PATCH 28/35] Fixing an enum mistake for E200 --- Transceiver52M/UHDDevice.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Transceiver52M/UHDDevice.cpp b/Transceiver52M/UHDDevice.cpp index 1035f4c0..675dceb9 100644 --- a/Transceiver52M/UHDDevice.cpp +++ b/Transceiver52M/UHDDevice.cpp @@ -131,7 +131,7 @@ static double select_rate(uhd_dev_type type, int sps) case B100: return B100_BASE_RT * sps; case B2XX: - case E200: + case ANTSDR_E200: case UMTRX: return GSMRATE * sps; default: From 42f46da364b03f57c2c819b09f0f610c28a2c80a Mon Sep 17 00:00:00 2001 From: FlUxIuS Date: Sat, 21 Jan 2023 13:10:48 +0100 Subject: [PATCH 29/35] Fixing comment --- Transceiver52M/UHDDevice.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Transceiver52M/UHDDevice.cpp b/Transceiver52M/UHDDevice.cpp index 675dceb9..b5e511c8 100644 --- a/Transceiver52M/UHDDevice.cpp +++ b/Transceiver52M/UHDDevice.cpp @@ -66,8 +66,8 @@ struct uhd_dev_offset { #define B2XX_TIMING_4SPS 6.9248e-5 #endif -#define E200_TIMING_1SPS 9.9692e-5 # TODO: probably to fix -#define E200_TIMING_4SPS 6.9248e-5 # TODO: probably to fix +#define E200_TIMING_1SPS 9.9692e-5 // TODO: probably to fix +#define E200_TIMING_4SPS 6.9248e-5 // TODO: probably to fix /* * Tx / Rx sample offset values. In a perfect world, there is no group delay From 06d720436af98647503c69291a529eb4a0d70516 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Dudek?= Date: Fri, 28 Jun 2024 11:58:44 +0200 Subject: [PATCH 30/35] Update preinstall.sh --- preinstall.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/preinstall.sh b/preinstall.sh index 5e9ee4d5..6ed77ca6 100755 --- a/preinstall.sh +++ b/preinstall.sh @@ -7,7 +7,7 @@ ########################################################## # Installing compilation dependencies -sudo apt install autoconf libtool libosip2-dev libortp-dev libusb-1.0-0-dev g++ sqlite3 libsqlite3-dev erlang libreadline6-dev libncurses5-dev git dpkg-dev debhelper libssl-dev cmake build-essential wget libzmq3-dev +sudo apt install -y autoconf libtool libosip2-dev libortp-dev libusb-1.0-0-dev g++ sqlite3 libsqlite3-dev erlang libreadline6-dev libncurses5-dev git dpkg-dev debhelper libssl-dev cmake build-essential wget libzmq3-dev # Installing HD driver 4.1.0 & tools from Ubuntu package manager sudo apt install libuhd4.1.0 libuhd-dev uhd-host From d2ee00c797f2f761aade96ca7fc099d82dbd64e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Dudek?= Date: Thu, 4 Jul 2024 11:19:18 +0200 Subject: [PATCH 31/35] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 56ebb57f..033afbe0 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Welcome to the OpenBTS source code reloaded for 2023 supporting new UHD drivers and Ubuntu 22.04 LTS to be compiled against C++11 and C++17. +Welcome to the OpenBTS source code reloaded for 2024 supporting new UHD drivers and Ubuntu 22.04 LTS to be compiled against C++11 and C++17. # What is this project? From aff4e97367f95a4b540a0909de1fb8535d606f64 Mon Sep 17 00:00:00 2001 From: FlUxIuS Date: Thu, 6 Feb 2025 16:45:23 +0100 Subject: [PATCH 32/35] preinstall script update for Ubuntu 24.04 --- preinstall.sh | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/preinstall.sh b/preinstall.sh index 6ed77ca6..99a6c1e7 100755 --- a/preinstall.sh +++ b/preinstall.sh @@ -7,10 +7,16 @@ ########################################################## # Installing compilation dependencies -sudo apt install -y autoconf libtool libosip2-dev libortp-dev libusb-1.0-0-dev g++ sqlite3 libsqlite3-dev erlang libreadline6-dev libncurses5-dev git dpkg-dev debhelper libssl-dev cmake build-essential wget libzmq3-dev +sudo apt install -y autoconf libtool libosip2-dev libortp-dev libusb-1.0-0-dev g++ sqlite3 libsqlite3-dev erlang libreadline6-dev libncurses5-dev git dpkg-dev debhelper libssl-dev cmake build-essential wget libzmq3-dev cppzmq-dev -# Installing HD driver 4.1.0 & tools from Ubuntu package manager -sudo apt install libuhd4.1.0 libuhd-dev uhd-host +# Installing HD driver 4.1.0 (Ubuntu 22.04) or 4.6* (Ubuntu 24.04) & t ols from Ubuntu package manager +ubuntu_version=$(lsb_release -rs) +if (( $(echo "$ubuntu_version < 24.04" | bc -l) )); then + sudo apt install -y libuhd4.1.0 +fi +sudo apt install -y libuhd4.6.0t64 + +sudo apt install -y libuhd-dev uhd-host # Cloning submodules git submodule init From 9880583cb6edb16e33273407fe78e45aa2da7b06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Dudek?= Date: Thu, 6 Feb 2025 16:46:53 +0100 Subject: [PATCH 33/35] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 033afbe0..4c59c1b4 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Welcome to the OpenBTS source code reloaded for 2024 supporting new UHD drivers and Ubuntu 22.04 LTS to be compiled against C++11 and C++17. +Welcome to the OpenBTS source code reloaded for 2024-2025 supporting new UHD drivers and Ubuntu 22.04 & 24.04 LTS to be compiled against C++11 and C++17. # What is this project? From d1f486f9ea6824d839e123952a0fafaf9657ff64 Mon Sep 17 00:00:00 2001 From: FlUxIuS Date: Sat, 15 Feb 2025 20:24:31 +0100 Subject: [PATCH 34/35] Fixing preinstall tool depending on Ubuntu version --- preinstall.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/preinstall.sh b/preinstall.sh index 99a6c1e7..53f98c44 100755 --- a/preinstall.sh +++ b/preinstall.sh @@ -7,14 +7,15 @@ ########################################################## # Installing compilation dependencies -sudo apt install -y autoconf libtool libosip2-dev libortp-dev libusb-1.0-0-dev g++ sqlite3 libsqlite3-dev erlang libreadline6-dev libncurses5-dev git dpkg-dev debhelper libssl-dev cmake build-essential wget libzmq3-dev cppzmq-dev +sudo apt install -y bc autoconf libtool libosip2-dev libortp-dev libusb-1.0-0-dev g++ sqlite3 libsqlite3-dev erlang libreadline6-dev libncurses5-dev git dpkg-dev debhelper libssl-dev cmake build-essential wget # Installing HD driver 4.1.0 (Ubuntu 22.04) or 4.6* (Ubuntu 24.04) & t ols from Ubuntu package manager ubuntu_version=$(lsb_release -rs) if (( $(echo "$ubuntu_version < 24.04" | bc -l) )); then - sudo apt install -y libuhd4.1.0 + sudo apt install -y libuhd4.1.0 libzmq3-dev +else + sudo apt install -y libuhd4.6.0t64 cppzmq-dev fi -sudo apt install -y libuhd4.6.0t64 sudo apt install -y libuhd-dev uhd-host From edd1b86408319fd7e6b2e5064ec823f22bc0fff5 Mon Sep 17 00:00:00 2001 From: Steven Van Acker Date: Thu, 27 Feb 2025 12:21:17 +0100 Subject: [PATCH 35/35] fixed and simplified ubuntu version comparison --- preinstall.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/preinstall.sh b/preinstall.sh index 53f98c44..142e4715 100755 --- a/preinstall.sh +++ b/preinstall.sh @@ -7,11 +7,11 @@ ########################################################## # Installing compilation dependencies -sudo apt install -y bc autoconf libtool libosip2-dev libortp-dev libusb-1.0-0-dev g++ sqlite3 libsqlite3-dev erlang libreadline6-dev libncurses5-dev git dpkg-dev debhelper libssl-dev cmake build-essential wget +sudo apt install -y autoconf libtool libosip2-dev libortp-dev libusb-1.0-0-dev g++ sqlite3 libsqlite3-dev erlang libreadline6-dev libncurses5-dev git dpkg-dev debhelper libssl-dev cmake build-essential wget # Installing HD driver 4.1.0 (Ubuntu 22.04) or 4.6* (Ubuntu 24.04) & t ols from Ubuntu package manager ubuntu_version=$(lsb_release -rs) -if (( $(echo "$ubuntu_version < 24.04" | bc -l) )); then +if [ "$ubuntu_version" "<" "24.04" ]; then sudo apt install -y libuhd4.1.0 libzmq3-dev else sudo apt install -y libuhd4.6.0t64 cppzmq-dev