Встановлення srsRAN 4G

Інструкція з встановлення srsRAN 4G на Ubuntu.

Підготовка системи

Підтримувані ОС

ОС Статус
Ubuntu 22.04 LTS ✓ Рекомендовано
Ubuntu 24.04 LTS ✓ Підтримується
Debian 12 ✓ Підтримується
Fedora 38+ ○ Можливо

Оновлення системи

sudo apt update && sudo apt upgrade -y

Базові залежності

sudo apt install -y \
  build-essential \
  cmake \
  git \
  libfftw3-dev \
  libmbedtls-dev \
  libboost-program-options-dev \
  libconfig++-dev \
  libsctp-dev \
  libpcsclite-dev \
  libzmq3-dev

Встановлення SDR драйверів

LimeSuite (для LimeSDR)

# PPA
sudo add-apt-repository -y ppa:myriadrf/drivers
sudo apt update
sudo apt install -y limesuite limesuite-udev soapysdr-module-lms7

# Перевірка
LimeUtil --find

UHD (для USRP)

sudo apt install -y uhd-host libuhd-dev

# Завантажити firmware
sudo uhd_images_downloader

# Перевірка
uhd_find_devices

SoapySDR (універсальний)

sudo apt install -y \
  soapysdr-tools \
  libsoapysdr-dev

# Перевірка модулів
SoapySDRUtil --probe

Збірка srsRAN 4G

Клонування

cd ~
git clone https://github.com/srsran/srsRAN_4G.git
cd srsRAN_4G

Конфігурація

mkdir build
cd build

# Базова конфігурація
cmake ../

# З підтримкою GUI (опціонально)
cmake ../ -DENABLE_GUI=ON

# З ZeroMQ (для тестів без SDR)
cmake ../ -DENABLE_ZEROMQ=ON

Компіляція

# Використовуємо всі ядра
make -j$(nproc)

Встановлення

sudo make install

# Оновити бібліотеки
sudo ldconfig

# Скопіювати конфігурації
sudo srsran_install_configs.sh user

Docker варіант

Dockerfile

FROM ubuntu:22.04

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y \
    build-essential cmake git \
    libfftw3-dev libmbedtls-dev \
    libboost-program-options-dev \
    libconfig++-dev libsctp-dev \
    soapysdr-module-lms7 \
    limesuite \
    && rm -rf /var/lib/apt/lists/*

RUN git clone https://github.com/srsran/srsRAN_4G.git /opt/srsRAN_4G \
    && cd /opt/srsRAN_4G \
    && mkdir build && cd build \
    && cmake ../ \
    && make -j$(nproc) \
    && make install \
    && ldconfig \
    && srsran_install_configs.sh user

WORKDIR /root/.config/srsran

Docker Compose

version: '3.8'

services:
  srsran:
    build: .
    container_name: srsran
    privileged: true
    network_mode: host
    devices:
      - /dev/bus/usb
    volumes:
      - ./config:/root/.config/srsran
      - /dev/bus/usb:/dev/bus/usb
    cap_add:
      - NET_ADMIN
      - SYS_NICE

Запуск

docker compose build
docker compose run --rm srsran srsenb

Перевірка встановлення

SDR

# LimeSDR
LimeUtil --find

# Очікуваний вивід:
# * [LimeSDR Mini, ...]

# Тест
LimeQuickTest

srsRAN

# Перевірити версію
srsenb --version
srsepc --version
srsue --version

# Перевірити конфіги
ls ~/.config/srsran/
# enb.conf  epc.conf  ue.conf  ...

Real-time права

# Перевірити
ulimit -r

# Якщо 0, додати права:
sudo usermod -aG dialout $USER

# Створити файл limits
sudo tee /etc/security/limits.d/srsran.conf << EOF
@dialout - rtprio 99
@dialout - memlock unlimited
EOF

# Перелогінитись

Конфігураційні файли

Розташування

~/.config/srsran/
├── enb.conf          # srsENB конфігурація
├── epc.conf          # srsEPC конфігурація
├── ue.conf           # srsUE конфігурація
├── user_db.csv       # База абонентів (для srsEPC)
├── drb.conf          # Data Radio Bearers
├── rr.conf           # Radio Resources
├── rb.conf           # Radio Bearers
└── sib.conf          # System Information Blocks

Базова перевірка enb.conf

cat ~/.config/srsran/enb.conf | grep -E "^(device|tx_gain|rx_gain|dl_earfcn|n_prb)"

Типові проблеми встановлення

Не знаходить LimeSDR

# Перевірити USB
lsusb | grep 0403

# Перевірити правила udev
ls /etc/udev/rules.d/*lime*

# Перезавантажити правила
sudo udevadm control --reload-rules
sudo udevadm trigger

Помилка компіляції

# Очистити та перезібрати
cd ~/srsRAN_4G/build
rm -rf *
cmake ../
make -j$(nproc)

Немає real-time пріоритету

# Помилка: "Unable to set real-time priority"

# Рішення:
sudo setcap cap_sys_nice=eip $(which srsenb)
sudo setcap cap_sys_nice=eip $(which srsue)

libsrsran не знайдено

# Помилка: "error while loading shared libraries: libsrsran_common.so"

# Рішення:
sudo ldconfig
# Або додати шлях:
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

Оновлення

cd ~/srsRAN_4G
git pull
cd build
make -j$(nproc)
sudo make install
sudo ldconfig

Видалення

cd ~/srsRAN_4G/build
sudo make uninstall

# Або повністю
rm -rf ~/srsRAN_4G
rm -rf ~/.config/srsran

Шлях: ran/installation.md

UMTC Wiki © 2026 | Ukrainian Military Tactical Communications