srsRAN 安装部署
本指南介绍在 Ubuntu 22.04 上编译安装 srsRAN Project。
安装依赖
基础依赖
bash
sudo apt update
sudo apt install -y \
build-essential \
cmake \
make \
gcc \
g++ \
pkg-config \
libfftw3-dev \
libmbedtls-dev \
libsctp-dev \
libyaml-cpp-dev \
libgtest-dev可选依赖
bash
# ZeroMQ (用于虚拟射频)
sudo apt install -y libzmq3-dev
# USRP 驱动
sudo apt install -y libuhd-dev uhd-host
# 调试工具
sudo apt install -y libdw-dev下载 UHD FPGA 镜像
如果使用 USRP,需要下载 FPGA 镜像:
bash
sudo uhd_images_downloader验证 USRP 连接:
bash
uhd_find_devices编译 srsRAN
克隆源码
bash
cd ~
git clone https://github.com/srsran/srsRAN_Project.git
cd srsRAN_Project创建构建目录
bash
mkdir build
cd build配置 CMake
基础配置:
bash
cmake ..带可选功能的配置:
bash
cmake .. \
-DENABLE_EXPORT=ON \
-DENABLE_ZEROMQ=ON \
-DENABLE_UHD=ON \
-DAUTO_DETECT_ISA=ON编译
bash
make -j$(nproc)提示
编译可能需要 10-30 分钟,取决于 CPU 性能。
安装
bash
sudo make install
sudo ldconfig验证安装
检查可执行文件
bash
which gnb
gnb --help检查示例配置
bash
ls /usr/local/share/srsran/ZMQ 虚拟射频测试
在没有 SDR 硬件的情况下,可以使用 ZMQ 进行测试。
启动 gNB (ZMQ 模式)
创建 gnb_zmq.yaml:
yaml
gnb_id: 411
gnb_id_bit_length: 22
cell_cfg:
dl_arfcn: 368500
band: 3
channel_bandwidth_MHz: 20
common_scs: 15
plmn: "00101"
tac: 1
cu_cp:
amf:
addr: 127.0.0.5
port: 38412
bind_addr: 127.0.0.1
ru_sdr:
device_driver: zmq
device_args: tx_port=tcp://127.0.0.1:2000,rx_port=tcp://127.0.0.1:2001,base_srate=23.04e6
srate: 23.04
tx_gain: 50
rx_gain: 40启动 gNB:
bash
sudo gnb -c gnb_zmq.yamlDocker 安装
使用预构建镜像
bash
docker pull srsran/srsran_project
docker run -it --rm \
--privileged \
--net=host \
srsran/srsran_project \
gnb -c /path/to/config.yaml构建本地镜像
bash
cd srsRAN_Project
docker build -t srsran-local .性能优化
CPU 调度器
bash
# 设置为 performance 模式
sudo cpupower frequency-set -g performance
# 或者
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor实时优先级
编辑 /etc/security/limits.conf:
* soft rtprio 99
* hard rtprio 99禁用 CPU 节能
bash
# 禁用 C-states
sudo cpupower idle-set -D 0内核参数
编辑 /etc/sysctl.conf:
# 增加网络缓冲区
net.core.rmem_max = 33554432
net.core.wmem_max = 33554432应用更改:
bash
sudo sysctl -p故障排除
UHD 找不到设备
bash
# 检查 USB 权限
sudo uhd_find_devices
# 如果权限问题,添加 udev 规则
sudo cp /usr/lib/uhd/utils/uhd-usrp.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger编译错误
bash
# 清理并重新编译
cd build
make clean
cmake ..
make -j$(nproc)运行时性能警告
[PHY ] [ 0.0] Late: 15 events这表示实时性能不足:
- 检查 CPU 调度器设置
- 使用低延迟内核
- 增加 SDR 缓冲区大小
- 减少系统负载