openairinterface5g 调试环境搭建

openairinterface5g 调试环境搭建:

        OAI 5G的代码看起来比较困难,一个是nrUE和gNB的代码并没有分离,耦合度比较紧,另外用了大量的宏定义,以匹配LOG/telnet/t-tracer等调试手段和cuda/arm/x86等硬件平台,所以代码看起来没有那么清晰。

   用sourceinsight + gdb,结合起来理解和调试代码,就容易多了。环境搭建如下:

  1. 使用1~2台pc安装ubuntu,用来分别运行nrUE和gNB。也可以在一台设备上使用两个终端分别运行nrUE和gNB。
  2. 另外再准备一台电脑安装windows。

1~2台电脑安装OAI运行环境:

  • Ubuntu环境下安装OAI。 
    1. 在github下载develop 或者master分支的代码。Develop更新周期以周计算,master以月计算。
    2. 在主目录下有 .md文件 。其中CHANGELOG.md是更新说明,不过好像也不更新。readme.md可以看一看,建议在windows环境下用typora工具,阅读编辑md文件比较方便。
    3. 打开How to build  和 How to run the modems说明如何编译和运行。Typora中,用ctrl+鼠标左健可以打开md中的文件的链接

openairinterface5g 调试环境搭建_第1张图片

1、先安装uhd驱动,再通过./build_oai –i来安装oai需要的外部linux库。库安装好后,每次编译就可以不加-i参数了。

2、外部库的配置文件在cmake_targets\tools\build_helper,其中某些库需要翻~*墙,或者需要反复下载,比较容易下载失败。可以先通过浏览器下载后放到指定目录中,或者注释相关行脚本代码:

   下面这个需要翻~*墙,可以直接注释build_helper里的脚本:

  Asn1也是容易失败,可以注释相关行脚本代码,然后浏览器下载后按照脚本的方式放到tmp目录中。

openairinterface5g 调试环境搭建_第2张图片

3、编译的时候,./build_oai 后要添加 -g参数,以便于gdb调试。gcc编译需要的参数配置在./cmake_targets/CMakeLists.txt里面修改。

4、OAI的宏定义比较多,gdb过程中可以用macro exp ***来展开宏定义,用gdb – args或者进入gdb后set args来设置传入参数。 另外RFSIMULATOR=127.0.0.1这种参数,是通过c里面的getenv来获取的环境变量,在gdb里面通过set enviroment可以设置。

这个是gdb调试过程中用macro exp展开的宏定义:

openairinterface5g 调试环境搭建_第3张图片

5、Ubuntu环境下安装cgdb或者gdbgui。 由于gdb –tui存在运行花屏且无法语法高亮的问题,因此安装cgdb或者gdbgui,使用起来都比较方便。

Cgdb的运行界面,语法可以高亮,代码可以用vim的部分快捷键。

openairinterface5g 调试环境搭建_第4张图片

  • Windows下环境的搭建

Windows下安装的软件:

  1. Typora 工具,查看.md文件
  2. Sourceinsight工具,代码查看和编辑工具。
  3. SFTP Net Driver Free,可以直接将ubuntu下面的文件映射成z盘,从而sourceinsight在windows电脑上直接修改ubuntu电脑上代码。profile setting里面charset选择utf-8以解决文件夹乱码问题。
  4. MobaXterm工具,通过ssh远程ubuntu终端并执行代码。

你可能感兴趣的:(笔记,OAI,ubuntu,windows,linux)