[[Include(WikiToC)]] == Amarisoft 4G/5G System in weeks.cosmos == === Description === This tutorial contains instructions for setting up a 4G/5G network in weeks.cosmos domain. Amarisoft software based eNb/gNb, MME run on the USRP-2974 === Prerequisites === In order to access the test bed, create a reservation and have it approved by the reservation service. Access to the resources is granted after the reservation is confirmed. Please follow the process shown on the COSMOS [wiki:GettingStarted getting started] page to get started. === Resources required === 1 USRP-2974, 1 COSMOS node with SIM8200 modem. in [https://wiki.cosmos-lab.org/wiki/Architecture/Domains/cosmos_weekshall COSMOS Weeks hall] domain === Tutorial Setup === Follow the steps below to gain access to the [wiki:/Architecture/Domains/cosmos_sb1 Weeks hall console] and set up nodes with appropriate images. 1. If you don't have one already, sign up for a [https://www.cosmos-lab.org/portal-2/ COSMOS account] 1. [wiki:/GettingStarted#MakeaReservation Create a resource reservation] on sandbox 1 1. [wiki:/GettingStarted#LogintoyourReservation Login] into sandbox 1 console (console.sb1.cosmos-lab.org) with two SSH sessions. 1. Make sure all the resources in the domain are turned off: {{{#!shell omf tell -a offh -t system:topo:allres }}} For this tutorial we will be using a USRP-2974 sdr2-s1-lg1 and a COSMOS node srv1-in1. srv1-in1 has a [https://www.waveshare.com/sim8200-m2.htm Waveshare SIM8200 modem] attached over USB. 1. Load amarisoft-2974.ndz on sdr2-s1-lg1 {{{#!shell omf load -i amarisoft-2974.ndz -t sdr2-s1-lg1 }}} {{{#!shell omf load -i waveshare-sim8200.ndz -t srv1-in1 }}} 1. Turn all the required resources on and check the status {{{#!shell omf tell -a on -t srv1-in1,sdr2-s1-lg1 }}} {{{#!shell omf stat -t system:topo:allres }}} 1. ssh to the nodes, use option -Y for using GUI. === Tutorial Execution === ==== Run the Amarisoft base station ==== * Upon logging into sdr2-s1-lg1, run uhd_find_devices to check the USRP. {{{#!shell root@sdr2-s1-lg1:~# uhd_find_devices --args="resource=RIO0" [INFO] [UHD] linux; GNU C++ version 7.5.0; Boost_106501; UHD_3.15.0.0-release -------------------------------------------------- -- UHD Device 0 -------------------------------------------------- Device Address: serial: 318F215 fpga: XG name: product: X310 resource: RIO0 type: x300 }}} * Run the MME {{{#!shell root@sdr2-s1-lg1:~# cd /opt/amarisoft/ltemme-linux-2021-09-18 root@sdr2-s1-lg1:/opt/amarisoft/ltemme-linux-2021-09-18# ./ltemme config/mme.cfg Core version 2021-09-18, Copyright (C) 2012-2021 Amarisoft This software is licensed to Rutgers University (The State University of New Jersey). License server: license.orbit-lab.org (0b-b4-46-dc-2f-83-58-cb) Support and software update available until 2022-08-18. (mme) }}} * Run the eNodeb in another ssh session. {{{#!shell root@sdr2-s1-lg1:~# cd /opt/amarisoft/lteenb-linux-2021-09-18 root@sdr2-s1-lg1:/opt/amarisoft/lteenb-linux-2021-09-18# ./lteenb config/enb-2974.cfg Base Station version 2021-09-18, Copyright (C) 2012-2021 Amarisoft This software is licensed to Rutgers University (The State University of New Jersey). License server: license.orbit-lab.org (0b-b4-46-dc-2f-83-58-cb) Support and software update available until 2021-12-02. [INFO] [UHD] linux; GNU C++ version 7.5.0; Boost_106501; UHD_3.15.0.0-release [INFO] [MPMD FIND] Found MPM devices, but none are reachable for a UHD session. Specify find_all to find all devices. [INFO] [X300] X300 initialization sequence... [INFO] [X300] Connecting to niusrpriorpc at localhost:5444... [INFO] [X300] Using LVBITX bitfile /usr/share/uhd/images/usrp_x310_fpga_XG.lvbitx [INFO] [X300] Radio 1x clock: 184.32 MHz [INFO] [GPS] Found an internal GPSDO: LC_XO, Firmware Rev 0.929b [INFO] [0/DmaFIFO_0] Initializing block control (NOC ID: 0xF1F0D00000000000) [INFO] [0/DmaFIFO_0] BIST passed (Throughput: 1312 MB/s) [INFO] [0/DmaFIFO_0] BIST passed (Throughput: 1318 MB/s) [INFO] [0/Radio_0] Initializing block control (NOC ID: 0x12AD100000000001) [INFO] [0/Radio_1] Initializing block control (NOC ID: 0x12AD100000000001) [INFO] [0/DDC_0] Initializing block control (NOC ID: 0xDDC0000000000000) [INFO] [0/DDC_1] Initializing block control (NOC ID: 0xDDC0000000000000) [INFO] [0/DUC_0] Initializing block control (NOC ID: 0xD0C0000000000000) [INFO] [0/DUC_1] Initializing block control (NOC ID: 0xD0C0000000000000) RF0: sample_rate=11.520 MHz dl_freq=2140.000 MHz ul_freq=1950.000 MHz (band 1) dl_ant=1 ul_ant=1 (enb) WARNING: The GPS is not locked. If you need time synchronization, you should restart the program when the GPS is locked. Chan Gain(dB) Freq(MHz) TX1 30.0 2140.000000 RX1 30.0 1950.000000 (enb) t Press [return] to stop the trace }}} ==== SIM8200 UE ==== * As the base station runs,SIM8200 modem on srv1-in1 communicates with the base station and registers to the network. You can see eNodeb trace similar to the one below. {{{#!shell (enb) t Press [return] to stop the trace PRACH: cell=01 seq=20 ta=11 snr=16.0 dB ----DL----------------------- --UL------------------------------------------------ UE_ID CL RNTI C cqi ri mcs retx txok brate snr puc1 mcs rxko rxok brate #its phr pl ta 1 001 003d 1 7 1 6.8 0 5 708 16.1 -1.0 10.0 12 7 2.55k 1/4.5/6 0 24 -0.3 1 001 003d 1 9 1 13.8 1 23 6.46k 11.7 2.9 17.2 19 21 18.7k 1/4.1/6 5 24 -0.2 1 001 003d 1 7 1 15.4 0 5 960 11.4 14.7 9.0 0 1 628 1/1.0/1 2 25 -0.4 1 001 003d 1 7 1 11.0 0 4 312 7.2 -8.9 16.0 0 1 612 2/2.0/2 5 24 -0.1 1 001 003d 1 7 1 11.8 0 4 336 9.2 11.4 - 0 0 0 - 5 24 -1.0 1 001 003d 1 5 1 11.8 0 4 336 12.5 18.2 11.0 0 1 516 1/1.0/1 3 24 -0.4 1 001 003d 1 8 1 11.8 0 4 372 4.3 16.8 - 0 0 0 - 3 24 -0.4 }}} * In the MME session you can check the eNodeb and registered ue. The modem has a SIM card with IMSI 310014000000017 as shown in the MME log below. IP address 192.168.2.2 has been alloted to the modem. {{{#!shell (mme) enb PLMN eNB_ID IP:Port #UEctx TACs 310014 0x1a2d0 127.0.1.1:47633 0 0x1 (mme) ue SUPI IMEISV CN M-TMSI/5G-TMSI REG TAC #BEARER IP_ADDR 310014000000017 8642840402500300 EPC 0xa592c726 Y 310014. 0x1 2 192.168.2.2 192.168.4.2 2001:468:3000:1:: (mme) }}} ==== Test ====