最近在虚拟机上搞vpp的编译安装,遇到很多问题,先记录下来。。。。。。
vpp编译一定要联网,切记!!!不联网的话一个个的依赖包会让你怀疑人生的。
1.源码获取
git clone https://gerrit.fd.io/r/vpp,获取当前最新代码
2.安装各种软件依赖包
源码获取后,假设放在/home目录下
cd /home/vpp
执行make后,会出现很多选项,先执行mke install-dep来安装各种软件依赖包。需要几分钟的时间下载安装。
3.清除之前编译残留(如果是第一次编译安装,可以忽略)
执行make wipe或者是make wipe-release
4.执行编译
执行make build或者是make build-release(推荐带release编译)
5.生成、安装rpm包
编译完成后,可以直接执行make run来查看vpp框架是否可以正常运行。然后执行make pkg-rpm。完成后进入bulid-root目录,在此目录下安装生成的全部rpm包.rpm -ivh *rpm。
6.配置启动配置文件
配置文件在/etc/vpp目录下
7.运行vpp
./home/vpp/build-root/install-vpp-native/vpp/vpp -c /etc/vpp/startup.conf
遇到的问题:
1.关于dpdk的编译。
查看网上的资料,在执行make build的时候会自动下载dpdk源码并进行编译。确实会下载dpdk的源码,但是不确定是不是会编译。如果编译成功的话会生成igb_uio.ko文件,但是并没有生成该文件。我查看系统巨页的时候发现巨页已经配置好了,不知道是不是centos7.6已经默认启动巨页。我用下载好的dpdk源码进行编译,可以生成igb_uio.ko文件。执行make build后,会发现存在x86_64-native-linuxapp-gcc这个目录,但是没有kmod这个文件夹。而用源码编译后会有kmod文件夹,里面有生成的igb_uio.ko文件。非常不解。
2.make后面有个选项是install-ext-deps,我执行该命令后也会下载dpdk的源码和一个rpm包。暂不了解这个rpm包有什么用。
3.运行vpp后,键入show int,会出现本地环回口已经被dpdk接管的网卡。被Linux内核控制的网卡没有显示。不知道是不是因为没有安装相关的插件。还有一点,网卡的状态是down,不知道怎么up该网卡。