ubuntu 20.04 编译安装 p4 详解

  • A+
所属分类:linux技术
摘要

鉴于以上原因,我开始自己对p4安装的专研。。这个是我自己写的shell脚本,已经在 ubuntu 20.04上测试通过


事情的起因

  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脚本对应的解释
ubuntu 20.04 编译安装 p4 详解
设置各个模块的版本(因为各个版本之间有特定的以来关系)

ubuntu 20.04 编译安装 p4 详解
配置 ovs 并将安装日志写入对应文件

ubuntu 20.04 编译安装 p4 详解
mininet 的安装,最后一行是 mininet 的测试,需要启动 ovs ( ovs-ctl start )

ubuntu 20.04 编译安装 p4 详解
p4 安装中重要的依赖关系:protobuf

ubuntu 20.04 编译安装 p4 详解
p4安装中重要的依赖关系:grpc

ubuntu 20.04 编译安装 p4 详解
bmv2 和 PI 模块的重要依赖
中国计算机学会推
ubuntu 20.04 编译安装 p4 详解
PI 模块的编译安装

ubuntu 20.04 编译安装 p4 详解
bmv2 模块的编译安装

ubuntu 20.04 编译安装 p4 详解
p4c 的编译安装

ubuntu 20.04 编译安装 p4 详解
p4 使用参考文档

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