P4环境配置

绝对是我配的最久的环境了,没有之一,快两周。刚开始参考了这些,试了很久很久还是不行。(18.04系统)
P4使用Ubuntu中安装教程
Ubuntu16.04中配置p4编程环境
P4使用Ubuntu中安装中的问题
Ubuntu P4编程环境搭建
Ubuntu16.04安装P4语言以及遇到的问题
P4编程环境安装(ubuntu16.04,p4c+bmv2+mininet+PI+tutorial)
ubuntu 20.04 编译安装 p4 详解
GRPC安装
配置p4的安装环境一共需要安装3个东西,分别是protobuf、p4c、bmv2

1、最终方案

参考
P4环境搭建-ubuntu 18.04
我用的v3版本,v2也可以。
问题解决参考
pip升级
python2&3 pip升级后报错
libboost-dev安装不了
grpcio安装不了

pip3 install --upgrade pip
python3 -m pip install --upgrade setuptools
pip3 install --no-cache-dir  --force-reinstall -Iv grpcio==<version_number>

cmake编译时需要增加虚拟内存,google吧。
Ubuntu升级gcc和g++到10
安装慢,换源,如

pip install libbpf --default-timeout=100 -i http://mirrors.aliyun.com.pypi/simple/
pip install libboost_filesystem-dev --default-timeout=100 -i http://mirrors.aliyun.com.pypi/simple/
pip install libboost_filesystem-dev -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
pip install libbpf  -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

配置成功后,结构应该是
P4环境配置
运行tutorials中例程验证。

2、失败解决

2.1 改完脚本中的仓库地址,子仓库依旧clone失败。
解决:
从github上clone下来后,先打开.gitmodules文件,更改子仓库地址;
接着用git submodule sync更新配置,再继续用git submodule update --init --recursive来clone子仓库;
如果依旧有子仓库,就继续进入third_party的各个文件中更新子仓库配置并clone。
有的库实在clone不下来,就直接去网上找压缩包,或者clone在本地电脑在拖进虚拟机。

2.2 脚本因为clone问题停滞,解决后再次跑脚本。
要注意环境变量的变化,把已经跑过的脚本注释了,环境变量一类的、与安装目录有关的一定要确认、设置好,不要随意删除。
我就因为删除了最初的安装目录变量导致后边安装的文件位置都不对。

2.3 3、运行例程时,先后出现了mininet、psutil、grpc、p4和p4.v1找不到模块,以grpc为例。
P4环境配置
解决
先检查这个包有没有被安装,没有安装就安装;
P4环境配置
安装后看这个包被安装在哪里了,把他叫做目录1吧。
P4环境配置
P4环境配置
这里看到是一致的,如果不一致,就把这个包从目录1复制到目录2,比如P4就不一致。
进入目录1
cp -r dir1/package/. dir2

测试一下。P4环境配置
P4环境配置
成功进入mininet。
我是发现不到p4包,安装之后找不到p4.v1,因为最后这一个问题,我重装了好几遍都不行,也没有找到解决办法,最后发现是安装包时太乱了,居然还能分好几个地方放,顺利解决。

上一篇:【李宏毅机器学习】Basic Concept 基础概念(p4) 学习笔记


下一篇:实验8:数据平面可编程实践——P4