Changes between Version 1 and Version 2 of Tutorials/Wireless/Channel SoundingMIMO


Ignore:
Timestamp:
Sep 21, 2020, 6:20:54 PM (4 years ago)
Author:
tingjunchen
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Tutorials/Wireless/Channel SoundingMIMO

    v1 v2  
    22
    33= MIMO Channel Sounding =
     4
     5=== Description ===
     6
     7In this tutorial, we demonstrate the TDD 2x2 MIMO channel sounding procedure using the USRP-2974s in the [https://wiki.cosmos-lab.org/wiki/Architecture/Domains/cosmos_sb2 COSMOS Sandbox2 (sb2)] and the [https://github.com/renew-wireless/RENEWLab/ RENEW Sounder software]
     8
     9* The instructions of the RENEW Platform Sounder software can be found [https://docs.renew-wireless.org/dev-suite/design-flows/cpp/sounder/ here] under [https://docs.renew-wireless.org/license/ RENEW license].
     10* The COSMOS team contributes to adding the UHD support for the Sounder software under the [https://github.com/EttusResearch/uhd/blob/master/LICENSE.md UHD license].
     11
     12Author: Tingjun Chen, Columbia University (tc2668[at]columbia.edu)
     13
     14Last updated: Sept. 21, 2020
     15
     16=== Prerequisites ===
     17
     18In order to access sb2, create a reservation in sb2 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 getting [https://wiki.cosmos-lab.org/wiki/GettingStarted started page] to get started.
     19
     20=== Resources Required ===
     21
     22* 2 USRP-2974 ({{{sdr2-s1-lg1}}} and {{{sdr2-md1}}})
     23* 1 Server ({{{srv2-lg1}}})
     24
     25=== Tutorial Setup ===
     26
     27Follow the steps below to gain access to the sb2 console and set up nodes with appropriate images.
     28 1. If you don't have one already, sign up for a [https://www.cosmos-lab.org/portal-2/ COSMOS account]
     29 1. [wiki:/GettingStarted#MakeaReservation Create a resource reservation] on COSMOS sb2
     30 1. [Documentation/Short/Login Login] into sb2 console ({{{console.sb2.cosmos-lab.org}}}) with two SSH sessions.
     31 1. Make sure all the nodes and devices used in the experiment are turned off:
     32{{{#!shell
     33omf tell -a offh -t sdr2-s1-lg1,sdr2-md1,srv2-lg1
     34}}}
     35 1. Use the {{{baseline_gr.ndz}}} node image (see [https://wiki.cosmos-lab.org/wiki/UserGuide/DiskImages#DiskImages here] for the list of pre-defined images) with Ubuntu 18.04, UHD 3.15, and gnuradio 3.8. Load {{{baseline_gr.ndz}}} on on the server. 
     36{{{#!shell
     37omf load -i baseline_gr.ndz -t srv2-lg1
     38}}}
     39 1. Turn all the required resources on and check the status
     40{{{#!shell
     41omf tell -a on -t sdr2-s1-lg1,sdr2-md1,srv2-lg1
     42}}}
     43{{{#!shell
     44omf stat -t system:topo:allres
     45}}}
     46 1. {{{ssh}}} to the the same server from two terminals, use option -Y for using GUI.
     47{{{#!shell
     48[Terminal 1] ssh -Y root@srv2-lg1,
     49[Terminal 2] ssh -Y root@srv2-lg1
     50}}}
     51
     52=== Experiment Execution ===
     53==== Find and prepare USRPs ====
     54* The IP addresses for Ethernet Port 1(10G) on {{{sdr2-s1-lg1}}} and {{{sdr2-md1}}} were hard-coded to {{{10.118.2.2}}} and {{{10.118.3.2}}} respectively. To access them from {{{srv2-lg1}}}, configure the network interface {{{eno2}}} as follows:
     55{{{#!shell
     56root@srv2-lg1:~# ifconfig eno2 10.118.1.2 netmask 255.255.0.0 mtu 9000 up
     57root@srv2-lg1:~# sudo sysctl -w net.core.wmem_max=24862979
     58net.core.wmem_max = 24862979
     59root@srv2-lg1:~# sudo sysctl -w net.core.rmem_max=24862979
     60net.core.rmem_max = 24862979
     61root@srv2-lg1:~# ifconfig
     62eno2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9000
     63        inet 10.118.1.2  netmask 255.255.0.0  broadcast 10.118.255.255
     64        inet6 fe80::9a03:9bff:fe61:9609  prefixlen 64  scopeid 0x20<link>
     65        ether 98:03:9b:61:96:09  txqueuelen 1000  (Ethernet)
     66        RX packets 4053772  bytes 17770502341 (17.7 GB)
     67        RX errors 0  dropped 0  overruns 0  frame 0
     68        TX packets 1727950  bytes 2972166223 (2.9 GB)
     69        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
     70
     71}}}
     72
     73* Run {{{und_find_devicec}}} to make sure that the USRP-2974s can be reached:
     74{{{#!shell
     75root@srv2-lg1:~# uhd_find_devices --args="addr=10.118.2.2"
     76[INFO] [UHD] linux; GNU C++ version 7.5.0; Boost_106501; UHD_3.15.0.HEAD-0-gaea0e2de
     77--------------------------------------------------
     78-- UHD Device 0
     79--------------------------------------------------
     80Device Address:
     81    serial: 318F20F
     82    addr: 10.118.2.2
     83    fpga: XG
     84    name:
     85    product: NI-2974
     86    type: x300
     87
     88root@srv2-lg1:~# uhd_find_devices --args="addr=10.118.3.2"
     89[INFO] [UHD] linux; GNU C++ version 7.5.0; Boost_106501; UHD_3.15.0.HEAD-0-gaea0e2de
     90--------------------------------------------------
     91-- UHD Device 0
     92--------------------------------------------------
     93Device Address:
     94    serial: 3165747
     95    addr: 10.118.3.2
     96    fpga: XG
     97    name:
     98    product: X310
     99    type: x300
     100}}}
     101
     102* Download and build the RENEW Sounder software **on the {{{develop}}} branch** at [https://github.com/renew-wireless/RENEWLab/ here] and follow the [https://docs.renew-wireless.org/dev-suite/design-flows/cpp/sounder/ instructions] to build it. Note that the {{{master}}} branch does not have UHD support.