目录
虚拟机安装
由于使用的统信系统作为宿主机器,在上面貌似只有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分区的使用
二、手动执行命令
make install-dep #安装依赖
make install-ext-deps #安装额外依赖
非首次直接编译
make build #编译debug版本 ,也使用 make build-release 编译release 版本
可以在vpp/build-root下面看到生成目录install-vpp_debug-native/vpp以及build-vpp_debug-native/vpp目录,其中第一个目录为运行安装文件目录,所有编译好的运行及配置等文件已准备好;第二个目录为编译时运行目录,里面很多编译过程中采用的文件。
make pkg-deb #构建deb安装包