Troubleshooting srsRAN
Діагностика та вирішення проблем srsRAN.
Проблеми з SDR
LimeSDR не визначається
# Перевірка
LimeUtil --find
# Якщо пусто:
lsusb | grep 0403
# Перевірити udev правила
ls /etc/udev/rules.d/*lime*
# Перезавантажити правила
sudo udevadm control --reload-rules
sudo udevadm trigger
# Перевірити права
sudo usermod -aG dialout $USER
# Перелогінитись
LimeQuickTest failed
Типові причини:
1. Поганий USB кабель
2. USB 2.0 замість 3.0
3. Перегрів
4. Firmware проблема
Рішення:
1. Замінити кабель
2. Підключити до USB 3.0 напряму
3. Забезпечити охолодження
4. Оновити firmware: LimeUtil --update
USRP не працює
# Перевірка
uhd_find_devices
uhd_usrp_probe
# Якщо "No UHD Devices Found":
sudo uhd_images_downloader
# Перепідключити пристрій
No Sync / PHY проблеми
Симптоми
srsUE:
Waiting for PSS...
(нескінченно)
srsENB:
(немає RACH від UE)
Діагностика
# Перевірити частоту
grep dl_earfcn ~/.config/srsran/enb.conf
grep dl_earfcn ~/.config/srsran/ue.conf
# Мають співпадати!
# Перевірити сигнал (spectrum analyzer)
# Або SDR# / GQRX на частоті DL
Рішення
| Причина |
Рішення |
| Різні EARFCN |
Вирівняти в конфігах |
| Немає антени |
Підключити антену |
| Низький gain |
Збільшити tx_gain |
| Перешкоди |
Змінити частоту |
| Відстань |
Зменшити відстань |
Late Packets
Симптоми
srsENB:
Late (0/0): L=10 CFO=0.0 Hz SNR=20.1 dB EPRE=-10.0 dBm
Причини
1. CPU не встигає
2. USB overrun
3. Занадто високий bandwidth
4. Інші процеси
Рішення
# 1. Зменшити bandwidth
# enb.conf:
n_prb = 15 # 3 MHz замість 5 MHz
# 2. Зменшити tx_amplitude
tx_amplitude = 0.5
# 3. Підвищити пріоритет
sudo chrt -r 99 srsenb enb.conf
# 4. Закрити інші програми
# Особливо браузери, Docker
# 5. Перевірити CPU
top
# srsEnb має використовувати < 80% одного ядра
Real-time налаштування
# Права на real-time
sudo setcap cap_sys_nice=eip $(which srsenb)
# Або через limits.conf
echo "@dialout - rtprio 99" | sudo tee /etc/security/limits.d/realtime.conf
echo "@dialout - memlock unlimited" | sudo tee -a /etc/security/limits.d/realtime.conf
Authentication Failed
Симптоми
srsEPC:
Authentication Failure: IMSI: 001010000000001
srsUE:
NAS: Authentication Reject
Діагностика
# Перевірити параметри в EPC
cat ~/.config/srsran/user_db.csv
# Перевірити параметри в UE
grep -E "imsi|k|opc" ~/.config/srsran/ue.conf
# Або на реальній SIM
pySim-read.py -p 0
Причини
| Параметр |
Перевірити |
| IMSI |
15 цифр, співпадає |
| Ki |
32 hex символи, співпадає |
| OPc |
32 hex символи, співпадає |
| algo |
mil vs xor |
Рішення
# Правильний формат user_db.csv:
ue1,mil,001010000000001,465B5CE8B199B49FAA5F0A2EE238A6BC,opc,E8ED289DEBA952E4283B54E88E6183CA,8000,000000000000,9,dynamic
Attach Reject
Симптоми
srsUE:
NAS: Attach Reject - Cause: <reason>
Причини за кодом
| Код |
Причина |
Рішення |
| 2 |
IMSI unknown |
Додати в HSS |
| 3 |
Illegal UE |
Перевірити IMEI |
| 6 |
Illegal ME |
Перевірити IMEI |
| 11 |
PLMN not allowed |
Перевірити MCC/MNC |
| 15 |
No suitable cells |
Перевірити TAC |
Діагностика
# Логи EPC
tail -f /tmp/epc.log | grep -i "attach\|reject"
# Перевірити PLMN
grep -E "mcc|mnc" ~/.config/srsran/enb.conf
grep -E "mcc|mnc" ~/.config/srsran/epc.conf
# Мають співпадати!
S1 Connection Failed
Симптоми
srsENB:
S1 Setup Request sent. Waiting for S1 Setup Response...
S1 Setup Failure
Або:
Could not connect to MME
Діагностика
# Перевірити чи EPC слухає
sudo ss -lpn | grep 36412
# Перевірити адресу
grep mme_addr ~/.config/srsran/enb.conf
grep mme_bind_addr ~/.config/srsran/epc.conf
# Тест з'єднання
nc -z 127.0.1.100 36412
Рішення
# 1. Перевірити що EPC запущено
ps aux | grep srsepc
# 2. Firewall
sudo ufw allow 36412/sctp
sudo iptables -I INPUT -p sctp --dport 36412 -j ACCEPT
# 3. Правильні адреси
# epc.conf:
mme_bind_addr = 127.0.1.100
# enb.conf:
mme_addr = 127.0.1.100
UE не бачить мережу
На реальному телефоні
1. Перевірити підтримку Band
- Settings → About → LTE bands
- Потрібен Band 7 для EARFCN 3350
2. Перевірити SIM
- PLMN = 001 01
- Правильні Ki/OPc
3. Manual Network Selection
- Settings → Network → Select manually
- Шукати "Test PLMN" або "001 01"
Діагностика eNB
# Перевірити що eNB передає
# Логи мають показувати:
# - DL frame transmission
# - SIB broadcasting
# Перевірити RF вихід
# Spectrum analyzer на DL частоті
# Має бути LTE сигнал
Низька швидкість
Очікувані значення
| Bandwidth |
DL (Mbps) |
UL (Mbps) |
| 1.4 MHz |
1-2 |
0.5-1 |
| 3 MHz |
5-7 |
2-3 |
| 5 MHz |
15-20 |
5-10 |
| 10 MHz |
35-40 |
15-20 |
| 20 MHz |
75-100 |
30-50 |
Причини низької швидкості
1. BLER > 10% — поганий сигнал
2. Низький MCS — автоадаптація
3. CPU overload — late packets
4. Retransmissions — інтерференція
Діагностика
srsUE метрики (натиснути 't'):
---------Signal-----------|-----------------DL---------------
cc pci rsrp pl cfo | mcs snr iter brate bler
Важливо:
- rsrp > -80 dBm
- snr > 15 dB
- bler < 10%
- mcs > 10
Покращення
# 1. Покращити сигнал
# - Ближче до eNB
# - Краща антена
# - Вище tx_gain (обережно!)
# 2. Зменшити інтерференцію
# - Інша частота
# - Екранування
# 3. Оптимізувати конфіг
# rr.conf - scheduler параметри
Читання логів
Рівні логування
# Для детальної діагностики:
[log]
all_level = debug
# Для production:
all_level = warning
Важливі патерни
# S1 проблеми
grep -i "s1\|sctp\|mme" /tmp/enb.log
# RRC проблеми
grep -i "rrc\|connection\|release" /tmp/enb.log
# NAS проблеми
grep -i "nas\|attach\|auth" /tmp/epc.log
# PHY проблеми
grep -i "late\|sync\|snr" /tmp/enb.log
PCAP аналіз
# Увімкнути в конфігах:
[pcap]
enable = true
filename = /tmp/enb.pcap
# Аналіз
wireshark /tmp/enb.pcap
# Фільтри: lte-rrc, s1ap, diameter
Швидка діагностика
Чекліст
□ SDR
LimeUtil --find ✓
LimeQuickTest ✓
□ EPC
sudo srsepc → "Initialized" ✓
ss -lpn | grep 36412 ✓
□ eNB
sudo srsenb → "started" ✓
S1 Setup Response ✓
□ UE/Phone
Network visible ✓
Attach success ✓
IP assigned ✓
□ Connectivity
ping 172.16.0.1 ✓
ping 8.8.8.8 ✓
Скрипт діагностики
#!/bin/bash
echo "=== SDR ==="
LimeUtil --find
echo "=== EPC ==="
ss -lpn | grep -E "36412|2152"
ip addr show srs_spgw_sgi 2>/dev/null
echo "=== Logs ==="
tail -5 /tmp/epc.log 2>/dev/null
tail -5 /tmp/enb.log 2>/dev/null
echo "=== Network ==="
ip route
iptables -t nat -L POSTROUTING -n