事情的起因

  1. 实验需要安装 p4 环境
  2. 我考虑到我自己的电脑性能不足,因此打算在本机安装
  3. github上官方仓库的安装教程老旧,都是在 ubuntu14.04或者ubuntu16.04
  4. 我长时间用的linux系统是 ubuntu20.04

鉴于以上原因,我开始自己对p4安装的专研。。

这个是我自己写的shell脚本,已经在 ubuntu 20.04上测试通过


先放上官网

[p4 github](https://github.com/p4lang/)
[p4 官网](https://p4.org/)

然后是踩的坑

  1. 使用了anacond,使得后续找不到python库,另外使用sudo或root安装库会导致安装的位置混乱
  2. 按照官方教程安装,由于版本比较旧,导致源码编译不通过,通过更新编译不通过的源码包会因为p4各个模块的版本之间的依赖问题使得环境检测make check出错
  3. 计算机性能较差,编译卡死过很多次

解决方案

以p4c着手,倒推各个依赖源码的版本,当依赖的版本无法编译时,更新源码和依赖该源码的模块

以下是我自己写的shell脚本对应的解释
image
设置各个模块的版本(因为各个版本之间有特定的以来关系)

image
配置 ovs 并将安装日志写入对应文件

image
mininet 的安装,最后一行是 mininet 的测试,需要启动 ovs ( ovs-ctl start )

image
p4 安装中重要的依赖关系:protobuf

image
p4安装中重要的依赖关系:grpc

image
bmv2 和 PI 模块的重要依赖

image
PI 模块的编译安装

image
bmv2 模块的编译安装

image
p4c 的编译安装

image
p4 使用参考文档

至此就安装好了,脚本中有些 make check 可以安装好再测试…..
因为如果之前安装过 p4,但出现了错,注释掉的那些 make check 可能导致脚本报错停止。。。
由于时间比较匆忙,没有做过多的 p4 介绍,,有时间再添加内容吧。。。

版权声明:本文为mike1024原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/mike1024/p/14846544.html