VPP 编译记录

目录

虚拟机安装

VPP编译

下载一些工具

下载vpp源码

编译

首次构建

非首次直接编译


虚拟机安装

由于使用的统信系统作为宿主机器,在上面貌似只有VM virtualBox软件,先在应用商店安装此应用。

下载ubuntu 64位镜像

下载好后配置网络链接,使用简单的桥接方式链接网络,确保虚拟系统能联网。

安装虚拟机,装好了后发现VM virtualBox 不能全屏,网上有哥们儿安装增强功能可以解决,嫌麻烦,在ubuntu中安装openssh-server服务,开启SSH,在宿主机中使用SSH远程链接。

apt-get update -y #更新apt

apt install openssh-server  #下载ssh server,下载好后会自动启动,然后就能在宿主机远程玩耍了。

新安装的系统root 秘密是随机的,sudo passwd设置root密码。

VPP编译

下载一些工具

apt install git #安装git

apt install vim #安装vim

apt install make #安装make

apt install build-essential #安装gcc / g++

下载vpp源码

git clone https://gerrit.fd.io/r/vpp 

编译

参考官方文档:VPP/Pulling, Building, Running, Hacking and Pushing VPP Code - fd.io

首次构建

git checkout stable/1908 #使用19版本

为了确保首次设置和构建的最新说明,VPP有一个脚本安装一些必要的软件:

第一次安装首先运行 下面的脚本,官方推荐将下载所需依赖

一、使用脚本  ./extras/vagrant/build.sh #期间会下载各种依赖包。

问题1:

在下载 http://github.com/linux-rdma/rdma-core/releases/download/v25.0/rdma-core-25.0.tar.gz 可能出错

解决方式:在外面浏览器中使用此链接(http://github.com/linux-rdma/rdma-core/releases/download/v25.0/rdma-core-25.0.tar.gz )手动下载rdma-core-25.0.tar.gz包,需要校验MD5值,所以不能随便下载。然后将此压缩包放在vpp/build/external/downloads中。

在下载   可能出错,解决方式同上。

最终 vpp/build/external/downloads 文件夹中会有以下几个包

问题2:

由于我的虚拟机只有4G内存,在编译时出现内存不足,报如下错误:“killed signal terminated program cc1”

解决方式:

1、既然是虚拟机则可以增加内存完事。

2、也可增加swap分区。

mkdir -p /var/cache/swap/ # 创建swap分区路径

dd if=/dev/zero of=/var/cache/swap/swap_2g bs=1M count=2048 # 设置swap分区的大小

chmod 0600 /var/cache/swap/swap_2g # 设置该目录权限

mkswap /var/cache/swap/swap_2g  # 创建swap文件

swapon /var/cache/swap/swap_2g  # 激活swap文件

swapon -s # 查看swap信息是否正确

此后的编译过程中可以看到swap分区的使用

VPP 编译记录_第1张图片

二、手动执行命令

make install-dep #安装依赖

make install-ext-deps  #安装额外依赖

非首次直接编译

make build #编译debug版本 ,也使用 make build-release 编译release 版本

VPP 编译记录_第2张图片

可以在vpp/build-root下面看到生成目录install-vpp_debug-native/vpp以及build-vpp_debug-native/vpp目录,其中第一个目录为运行安装文件目录,所有编译好的运行及配置等文件已准备好;第二个目录为编译时运行目录,里面很多编译过程中采用的文件。

make pkg-deb #构建deb安装包

VPP 编译记录_第3张图片

你可能感兴趣的:(VPP+DPDK,vpp)