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顺利编译通过。

另外,在编译示例程序2时,出现如下错误:

mkdir .emanegentransportxml &&
cd .emanegentransportxml &&
emanegentransportxml …/platform.xml &&
for i in $(ls *.xml); do chmod g-w,u-w $i; cp -f $i …; done &&
cd … &&
rm -rf .emanegentransportxml
error: Error reading file ‘rfpipenem.xml’: failed to load external entity “rfpipenem.xml”

经分析是rules.mk中的编译脚本的问题,参考https://github.com/adjacentlink/emane-tutorial/issues/29中修改方法进行解决,即不再创建一个临时目录 .emanegentransportxml,直接进行编译。
至此,完成了整个CORE与EMANE相关内容的编译,记录并共享。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值