研究了好几天终于把P4编程环境成功搭建好,特此记录
安装时间:2020-10-29
主要参考P4官网github的安装流程
https://github.com/p4lang/tutorials/blob/master/vm/user-bootstrap.sh
参考神秘网友安装教程
https://www.tqwba.com/x_d/jishu/175044.html
参考jiang1436的博客运行P4案例程序
https://www.cnblogs.com/jiang1436/p/12055436.html
对以上教程进行一些补充
安装过程
编译环境
Ubuntu16.04(内核4.10.0)
Python 2.7.12
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
建议将虚拟机设置为4核8G内存以及足够多的硬盘空间这样make命令可以改为make -j4加快速度
注意:一些安装过程中的报错可能是因为网络原因所导致,建议使用良好的网络来配置P4环境,以免出现一些意料之外的错误。
建立工作目录
mkdir ~/P4
cd ~/P4
echo "P4_HOME=$(pwd)" >> ~/.bashrc
source ~/.bashrc
安装依赖项
sudo apt-get update
sudo apt-get install automake cmake libjudy-dev libpcap-dev libboost-dev libboost-test-dev libboost-program-options-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libevent-dev libtool flex bison pkg-config g++ libssl-dev-y
sudo apt-get install cmake g++ git automake libtool libgc-dev bison flex libfl-dev libgmp-dev libboost-dev libboost-iostreams-dev libboost-graph-dev llvm pkg-config python python-scapy python-ipaddr python-ply tcpdump curl-y
sudo apt-get install libreadline6 libreadline6-devpython-pip-y
sudo pip install psutil
sudo pip install crcmod
设置版本信息
版本相当重要,每一步的checkout都十分关键,如果使用新的版本可能会出现各种问题,严格按照教程中使用2019的旧版本
P4_HOME=$HOME/P4
BMV2_COMMIT="b447ac4c0cfd83e5e72a3cc6120251c1e91128ab"# August 10, 2019
PI_COMMIT="41358da0ff32c94fa13179b9cee0ab597c9ccbcc"# August 10, 2019
P4C_COMMIT="69e132d0d663e3408d740aaf8ed534ecefc88810" # August 10, 2019
PROTOBUF_COMMIT="v3.2.0"
GRPC_COMMIT="v1.3.2"
Mininet部分
#--- Mininet ---
git clone git://github.com/mininet/mininet mininet
sudo ./mininet/util/install.sh -nwv
protobuf部分
git clone https://github.com/google/protobuf.git
cd protobuf
git checkout ${PROTOBUF_COMMIT}
./autogen.sh
./configure --prefix=/usr
Make
sudo make install<