CORE EMU初接触

1 关于CORE与EMANE

由于个人兴趣,研究了一下模拟仿真工具CORE与EMANE的用法。作为一位入门者,还是遇到不少问题,记录下来,以供后来者参考。
CORE与EMANE是两款开源软件,其官方的代码与文件都托管在github上,查找CORE相关资料是时注意使用coreemu关键字进行搜索。

2 CORE安装

CORE与EMANE通常搭配起来使用,所以在CORE的安装说明中包括了ENAME的安装与配置,建议按照CORE给出的安装步骤进行,不然会导致一些编译或者运行上的问题。

安装CORE时,我参考的安装步骤在https://coreemu.github.io/core/install_ubuntu.html中。这个安装过程基本没有遇到什么问题。

3 ENAME安装

从GITHUB克隆并编译EMANE。编译时执行configure命令时一定要指定prefix=/usr ,也就是将emane相关文件安装在/usr目录下,否则默认会安装在/usr/local目录下。虽然安装在/usr/local目录下,通过修改/etc/core/core.conf中的配置项emane_prefix也能向CORE指示EMANE的安装位置,但仍然存在一个尚未规避的问题,那就是XML中指定一些模板文件的位置使用得是以/usr开头的绝对路径,如果安装在/usr/local下则无法找到对应的模板文件。

4 PYTHON Bindings安装

在执行make install安装EMANE之后,并没有全部完成EMANE的安装,还有一个python bindings相关的安装,如安装步骤所述,进入EMANE的src/python,再进行编译安装python bindings。如果没有编译安装这部分代码,在CORE中添加EMANE节点后无法正常运行,会弹出出错窗口, 提示无法找到emane python bindings相关组件。

这里也需要注意下,要按照安装步骤,在编译src/python之前,还要下载
protoc-3.19.6-linux-x86_64.zip,并设置环境变量使protoc命令指向这个下载的文件。原因是,如果本地系统中已经安装的protoc版本低于3.19.0,会导致编译出错。

完成如上步骤完成后,就可以正常运行CORE与EMANE。因为我还要运行emane-tutorial中的示例程序,从GITHUB下载此项目后,还需要在此项目下运行make命令进行编译。在编译时总发现有错误导致无法编译完成:

pkg_resources.ResolutionError: Script ‘scripts/emanegentransportxml’ not found in >>> metadata at ‘/opt/core/venv/lib/python3.10/site-packages/emane-1.4.1.egg-info’

这个问题研究了半天,感觉还是和emane python组件相关,终于在EMANE的src/python/dist目录下发现已经生成的emane-1.4.1-py3.10.egg文件,将其解压后的内容复制到/opt/core/venv/lib/python3.10/site-packages/emane-1.4.1.egg-info目录下,终于解决问题,emane-tutorial顺利编译通过。

至此,完成了整个CORE与EMANE相关内容的编译,记录并共享。

你可能感兴趣的:(linux)