From 80fb09ba218a46de08f5463886795b6cd1f66e0c Mon Sep 17 00:00:00 2001 From: Reem Bahsoun Date: Tue, 3 Mar 2026 08:22:38 +0100 Subject: [PATCH 1/2] Build BladeRF strictly from source. To avoid version mismatch between built Docker image and BladeRF FW. --- cmake_targets/tools/build_helper | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index 64c171276c..298977d7e9 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -338,7 +338,7 @@ install_bladerf_driver_from_source(){ rm -rf /tmp/bladeRF git clone https://github.com/Nuand/bladeRF.git cd bladeRF - git checkout tags/2016.06 + git checkout tags/2025.10 mkdir -p build cd build $CMAKE ../ @@ -350,14 +350,12 @@ install_bladerf_driver_from_source(){ check_install_bladerf_driver(){ if [[ "$OS_BASEDISTRO" == "debian" ]]; then - $SUDO apt-get install -y bladerf libbladerf-dev - $SUDO apt-get install -y bladerf-firmware-fx3 - $SUDO apt-get install -y bladerf-fpga-hostedx40 - elif [[ "$OS_BASEDISTRO" == "fedora" ]]; then - install_bladerf_driver_from_source - else - echo_error "BladeRF Installer for OAI does not support automatic build. Install BladeRF compiling sources manually from BladeRF website" - fi + $SUDO apt-get update + $SUDO apt-get install -y libcurl4-openssl-dev + elif [[ "$OS_BASEDISTRO" == "fedora" ]]; then + $SUDO dnf -y install libcurl-devel + fi + install_bladerf_driver_from_source } check_install_lmssdr_driver(){ @@ -371,8 +369,6 @@ check_install_lmssdr_driver(){ echo_info "https://wiki.myriadrf.org/Lime_Suite" echo_fatal "Cannot compile lmssdr device" fi - - } install_soapy_from_source(){ From 243cd8e9e10611403e5abaee8fa037f8f7d883e9 Mon Sep 17 00:00:00 2001 From: Reem Bahsoun Date: Tue, 3 Mar 2026 08:24:34 +0100 Subject: [PATCH 2/2] Add BladeRF libraries to gNB and UE Docker image builder --- docker/Dockerfile.gNB.ubuntu | 5 +++++ docker/Dockerfile.nrUE.ubuntu | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/docker/Dockerfile.gNB.ubuntu b/docker/Dockerfile.gNB.ubuntu index ded38324d7..bdf5783860 100644 --- a/docker/Dockerfile.gNB.ubuntu +++ b/docker/Dockerfile.gNB.ubuntu @@ -83,6 +83,7 @@ COPY --from=gnb-build \ /oai-ran/cmake_targets/ran_build/build/liboai_eth_transpro.so \ /oai-ran/cmake_targets/ran_build/build/librfsimulator.so \ /oai-ran/cmake_targets/ran_build/build/liboai_usrpdevif.so \ + /oai-ran/cmake_targets/ran_build/build/liboai_bladerfdevif.so \ /oai-ran/cmake_targets/ran_build/build/libcoding.so \ /oai-ran/cmake_targets/ran_build/build/libparams_libconfig.so \ /oai-ran/cmake_targets/ran_build/build/libdfts.so \ @@ -104,6 +105,9 @@ COPY --from=gnb-base /usr/local/lib/uhd/utils/uhd_images_downloader.py /opt/oai- ## Copy E2 SM models COPY --from=gnb-build /usr/local/lib/flexric /usr/local/lib/flexric +# Copy BladeRF runtime from base image +COPY --from=gnb-base /usr/local/lib/libbladeRF* /usr/local/lib/ + RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so /usr/local/lib/liboai_device.so" && \ ldconfig && \ echo "---- ldd on nr-softmodem ----" && \ @@ -112,6 +116,7 @@ RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so /usr/local/lib/liboai ldd /usr/local/lib/liboai_eth_transpro.so \ /usr/local/lib/librfsimulator.so \ /usr/local/lib/liboai_usrpdevif.so \ + /usr/local/lib/liboai_bladerfdevif.so \ /usr/local/lib/libcoding.so \ /usr/local/lib/libparams_libconfig.so \ /usr/local/lib/libdfts.so \ diff --git a/docker/Dockerfile.nrUE.ubuntu b/docker/Dockerfile.nrUE.ubuntu index 08c83899b7..8605ca60a5 100644 --- a/docker/Dockerfile.nrUE.ubuntu +++ b/docker/Dockerfile.nrUE.ubuntu @@ -86,6 +86,7 @@ COPY --from=nr-ue-build \ /oai-ran/cmake_targets/ran_build/build/liboai_eth_transpro.so \ /oai-ran/cmake_targets/ran_build/build/librfsimulator.so \ /oai-ran/cmake_targets/ran_build/build/liboai_usrpdevif.so \ + /oai-ran/cmake_targets/ran_build/build/liboai_bladerfdevif.so \ /oai-ran/cmake_targets/ran_build/build/libcoding.so \ /oai-ran/cmake_targets/ran_build/build/libparams_libconfig.so \ /oai-ran/cmake_targets/ran_build/build/libdfts.so \ @@ -102,6 +103,9 @@ COPY --from=nr-ue-base /usr/local/bin/uhd_find_devices /usr/local/bin COPY --from=nr-ue-base /usr/local/lib/libuhd.so.4.8.0 /usr/local/lib COPY --from=nr-ue-base /usr/local/lib/uhd/utils/uhd_images_downloader.py /opt/oai-nr-ue/bin +# Copy BladeRF runtime from base image +COPY --from=nr-ue-base /usr/local/lib/libbladeRF* /usr/local/lib/ + RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so /usr/local/lib/liboai_device.so" && \ ldconfig && \ echo "---- ldd on nr-uesoftmodem ----" && \ @@ -110,6 +114,7 @@ RUN /bin/bash -c "ln -s /usr/local/lib/liboai_usrpdevif.so /usr/local/lib/liboai ldd /usr/local/lib/liboai_eth_transpro.so \ /usr/local/lib/librfsimulator.so \ /usr/local/lib/liboai_usrpdevif.so \ + /usr/local/lib/liboai_bladerfdevif.so \ /usr/local/lib/libcoding.so \ /usr/local/lib/libparams_libconfig.so \ /usr/local/lib/libdfts.so \