Installation de srsRAN 4G (via PPA ou sources)

1. Installation rapide via PPA (Ubuntu)

sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:srsran/ppa
sudo apt update
sudo apt install -y srsran

Vérifie l’install :

srsenb --version

2. Compilation depuis les sources

sudo apt update
sudo apt install -y git cmake build-essential libfftw3-dev libmbedtls-dev \
  libboost-program-options-dev libconfig++-dev libsctp-dev \
  libuhd-dev libpcsclite-dev pkg-config python3 python3-pip

git clone https://github.com/srsran/srsRAN_Project.git
cd srsRAN_Project
mkdir build && cd build
cmake ../
make -j$(nproc)
sudo make install

3. Générer/Configurer une SIM (IMSI, Ki, OPC)

Pour connecter un téléphone réel ou un UE logiciel, il faut une SIM dont les paramètres sont connus du core srsEPC.

a. Générer un profil SIM standard

  • IMSI : identifiant unique (ex: 001010123456789)

  • Ki : clé de 16 octets (ex: 00112233445566778899aabbccddeeff)

  • OPC : clé d’opérateur de 16 octets (ex: 0102030405060708090a0b0c0d0e0f10)

  • MSISDN (optionnel) : numéro de tel virtuel

Tu peux utiliser un générateur en ligne (Free5GC SIM Generator), ou générer aléatoirement :

# Générer un IMSI au hasard
IMSI="001010$(shuf -i 100000000-999999999 -n 1)"
# Générer une clé Ki et OPC
KI=$(openssl rand -hex 16)
OPC=$(openssl rand -hex 16)
echo "IMSI: $IMSI"
echo "KI:   $KI"
echo "OPC:  $OPC"

b. Ajouter l’abonné dans srsEPC

Ouvre le fichier de conf des abonnés, typiquement :

nano /etc/srsran/epc_user_db.csv

Ou dans ton dossier local srsRAN_Project/config/user_db.csv

Exemple d’entrée :

IMSI,  Ki,                       OPC,                      MSISDN,     AMF,   SQN
001010123456789,00112233445566778899aabbccddeeff,0102030405060708090a0b0c0d0e0f10,1234567890,8000,000000

Champ obligatoire : IMSI, Ki, OPC (les autres = valeur par défaut si besoin).


4. Programmer une carte SIM réelle (optionnel)

Si tu utilises une carte programmable (Sysmocom, MagicSIM, etc.) :

  • Utilise pySIM (Python)

  • Lance :

pysim-prog.py --ki $KI --opc $OPC --imsi $IMSI

(Adapté selon ton lecteur et modèle de carte)


5. Lancer srsENB (eNodeB) et srsEPC (core)

Dans deux terminaux :

# Terminal 1 (eNodeB)
srsenb enb.conf

# Terminal 2 (EPC)
srsepc epc.conf

6. Tester l’attachement UE

  • Allume ton téléphone (SIM insérée, mode réseau “4G/auto”)

  • Vérifie la détection dans les logs

  • Si besoin, ajuste le PLMN dans enb.conf et epc.conf pour matcher l’IMSI de la SIM (ex: MCC/MNC = 001/01)


Docs utiles