不能`make install` ovs

时间:2016-08-30 12:18:17

标签: ubuntu makefile debian openvswitch dpdk

我正在关注this指南以安装带DPDK的OVS。
我管理直到 2.3安装OVS

 cd $OVS_DIR
 ./boot.sh
 ./configure --with-dpdk=$DPDK_BUILD

所有运行正常,没有任何错误,但当我做

make install

失败了。

这是输出

root@ubuntu:/usr/src/openvswitch-2.5.0# make install
make  install-recursive
make[1]: Entering directory '/usr/src/openvswitch-2.5.0'
Making install in datapath
make[2]: Entering directory '/usr/src/openvswitch-2.5.0/datapath'
make[3]: Entering directory '/usr/src/openvswitch-2.5.0/datapath'
make[4]: Entering directory '/usr/src/openvswitch-2.5.0/datapath'
make[4]: Nothing to be done for 'install-exec-am'.
make[4]: Nothing to be done for 'install-data-am'.
make[4]: Leaving directory '/usr/src/openvswitch-2.5.0/datapath'
make[3]: Leaving directory '/usr/src/openvswitch-2.5.0/datapath'
make[2]: Leaving directory '/usr/src/openvswitch-2.5.0/datapath'
make[2]: Entering directory '/usr/src/openvswitch-2.5.0'
depbase=`echo lib/netdev-dpdk.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.    -I ./include -I ./include -I ./lib -I ./lib -I/usr/include   -Wstrict-prototypes -Wall -Wextra -Wno-sign-compare -Wpointer-arith -Wformat-security -Wswitch-enum -Wunused-parameter -Wbad-function-cast -Wcast-align -Wmissing-prototypes -Wmissing-field-initializers -fno-strict-aliasing -mssse3 -I/usr/src/dpdk-16.07/x86_64-native-linuxapp-gcc/include -D_FILE_OFFSET_BITS=64  -g -O2 -MT lib/netdev-dpdk.lo -MD -MP -MF $depbase.Tpo -c -o lib/netdev-dpdk.lo lib/netdev-dpdk.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I ./include -I ./include -I ./lib -I ./lib -I/usr/include -Wstrict-prototypes -Wall -Wextra -Wno-sign-compare -Wpointer-arith -Wformat-security -Wswitch-enum -Wunused-parameter -Wbad-function-cast -Wcast-align -Wmissing-prototypes -Wmissing-field-initializers -fno-strict-aliasing -mssse3 -I/usr/src/dpdk-16.07/x86_64-native-linuxapp-gcc/include -D_FILE_OFFSET_BITS=64 -g -O2 -MT lib/netdev-dpdk.lo -MD -MP -MF lib/.deps/netdev-dpdk.Tpo -c lib/netdev-dpdk.c -o lib/netdev-dpdk.o
lib/netdev-dpdk.c: In function ‘__rte_pktmbuf_init’:
lib/netdev-dpdk.c:293:5: warning: implicit declaration of function ‘RTE_MBUF_ASSERT’ [-Wimplicit-function-declaration]
     RTE_MBUF_ASSERT(mp->elt_size >= sizeof(struct dp_packet));
     ^
lib/netdev-dpdk.c: In function ‘netdev_dpdk_vhost_user_construct’:
lib/netdev-dpdk.c:708:11: error: too few arguments to function ‘rte_vhost_driver_register’
     err = rte_vhost_driver_register(netdev->vhost_id);
           ^
In file included from lib/netdev-dpdk.c:56:0:
/usr/src/dpdk-16.07/x86_64-native-linuxapp-gcc/include/rte_virtio_net.h:95:5: note: declared here
 int rte_vhost_driver_register(const char *path, uint64_t flags);
     ^
lib/netdev-dpdk.c: In function ‘is_vhost_running’:
lib/netdev-dpdk.c:995:32: error: dereferencing pointer to incomplete type ‘struct virtio_net’
     return (dev != NULL && (dev->flags & VIRTIO_DEV_RUNNING));
                                ^
lib/netdev-dpdk.c:995:42: error: ‘VIRTIO_DEV_RUNNING’ undeclared (first use in this function)
     return (dev != NULL && (dev->flags & VIRTIO_DEV_RUNNING));
                                          ^
lib/netdev-dpdk.c:995:42: note: each undeclared identifier is reported only once for each function it appears in
lib/netdev-dpdk.c: In function ‘netdev_dpdk_vhost_rxq_recv’:
lib/netdev-dpdk.c:1049:37: warning: passing argument 1 of ‘rte_vhost_dequeue_burst’ makes integer from pointer without a cast [-Wint-conversion]
     nb_rx = rte_vhost_dequeue_burst(virtio_dev, qid * VIRTIO_QNUM + VIRTIO_TXQ,
                                     ^
In file included from lib/netdev-dpdk.c:56:0:
/usr/src/dpdk-16.07/x86_64-native-linuxapp-gcc/include/rte_virtio_net.h:194:10: note: expected ‘int’ but argument is of type ‘struct virtio_net *’
 uint16_t rte_vhost_dequeue_burst(int vid, uint16_t queue_id,
          ^
lib/netdev-dpdk.c: In function ‘__netdev_dpdk_vhost_send’:
lib/netdev-dpdk.c:1138:43: warning: passing argument 1 of ‘rte_vhost_enqueue_burst’ makes integer from pointer without a cast [-Wint-conversion]
         tx_pkts = rte_vhost_enqueue_burst(virtio_dev, vhost_qid,
                                           ^
In file included from lib/netdev-dpdk.c:56:0:
/usr/src/dpdk-16.07/x86_64-native-linuxapp-gcc/include/rte_virtio_net.h:174:10: note: expected ‘int’ but argument is of type ‘struct virtio_net *’
 uint16_t rte_vhost_enqueue_burst(int vid, uint16_t queue_id,
          ^
lib/netdev-dpdk.c:1157:21: warning: implicit declaration of function ‘rte_vring_available_entries’ [-Wimplicit-function-declaration]
             while (!rte_vring_available_entries(virtio_dev, vhost_qid)) {
                     ^
lib/netdev-dpdk.c: In function ‘netdev_dpdk_get_stats’:
lib/netdev-dpdk.c:1526:33: error: ‘struct rte_eth_stats’ has no member named ‘imcasts’
     stats->multicast = rte_stats.imcasts;
                                 ^
lib/netdev-dpdk.c: In function ‘netdev_dpdk_get_features’:
lib/netdev-dpdk.c:1569:29: error: ‘ETH_LINK_AUTONEG_DUPLEX’ undeclared (first use in this function)
     if (link.link_duplex == ETH_LINK_AUTONEG_DUPLEX) {
                             ^
lib/netdev-dpdk.c:1574:32: error: ‘ETH_LINK_SPEED_10’ undeclared (first use in this function)
         if (link.link_speed == ETH_LINK_SPEED_10) {
                                ^
lib/netdev-dpdk.c:1577:32: error: ‘ETH_LINK_SPEED_100’ undeclared (first use in this function)
         if (link.link_speed == ETH_LINK_SPEED_100) {
                                ^
lib/netdev-dpdk.c:1580:32: error: ‘ETH_LINK_SPEED_1000’ undeclared (first use in this function)
         if (link.link_speed == ETH_LINK_SPEED_1000) {
                                ^
lib/netdev-dpdk.c:1593:32: error: ‘ETH_LINK_SPEED_10000’ undeclared (first use in this function)
         if (link.link_speed == ETH_LINK_SPEED_10000) {
                                ^
lib/netdev-dpdk.c: In function ‘set_irq_status’:
lib/netdev-dpdk.c:1825:45: warning: passing argument 1 of ‘rte_vhost_enable_guest_notification’ makes integer from pointer without a cast [-Wint-conversion]
         rte_vhost_enable_guest_notification(dev, idx + VIRTIO_RXQ, 0);
                                             ^
In file included from lib/netdev-dpdk.c:56:0:
/usr/src/dpdk-16.07/x86_64-native-linuxapp-gcc/include/rte_virtio_net.h:89:5: note: expected ‘int’ but argument is of type ‘struct virtio_net *’
 int rte_vhost_enable_guest_notification(int vid, uint16_t queue_id, int enable);
     ^
lib/netdev-dpdk.c:1826:45: warning: passing argument 1 of ‘rte_vhost_enable_guest_notification’ makes integer from pointer without a cast [-Wint-conversion]
         rte_vhost_enable_guest_notification(dev, idx + VIRTIO_TXQ, 0);
                                             ^
In file included from lib/netdev-dpdk.c:56:0:
/usr/src/dpdk-16.07/x86_64-native-linuxapp-gcc/include/rte_virtio_net.h:89:5: note: expected ‘int’ but argument is of type ‘struct virtio_net *’
 int rte_vhost_enable_guest_notification(int vid, uint16_t queue_id, int enable);
     ^
In file included from /usr/include/string.h:630:0,
                 from ./lib/string.h:20,
                 from lib/netdev-dpdk.c:19:
lib/netdev-dpdk.c: In function ‘new_device’:
lib/netdev-dpdk.c:1906:52: error: ‘IF_NAME_SZ’ undeclared (first use in this function)
         if (strncmp(dev->ifname, netdev->vhost_id, IF_NAME_SZ) == 0) {
                                                    ^
lib/netdev-dpdk.c:1915:27: error: ‘VIRTIO_DEV_RUNNING’ undeclared (first use in this function)
             dev->flags |= VIRTIO_DEV_RUNNING;
                           ^
lib/netdev-dpdk.c: In function ‘destroy_device’:
lib/netdev-dpdk.c:1953:16: error: dereferencing pointer to incomplete type ‘volatile struct virtio_net’
             dev->flags &= ~VIRTIO_DEV_RUNNING;
                ^
lib/netdev-dpdk.c:1953:28: error: ‘VIRTIO_DEV_RUNNING’ undeclared (first use in this function)
             dev->flags &= ~VIRTIO_DEV_RUNNING;
                            ^
In file included from /usr/include/string.h:630:0,
                 from ./lib/string.h:20,
                 from lib/netdev-dpdk.c:19:
lib/netdev-dpdk.c: In function ‘vring_state_changed’:
lib/netdev-dpdk.c:1996:55: error: ‘IF_NAME_SZ’ undeclared (first use in this function)
         if (strncmp(dev->ifname, vhost_dev->vhost_id, IF_NAME_SZ) == 0) {
                                                       ^
lib/netdev-dpdk.c: At top level:
lib/netdev-dpdk.c:2036:20: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
     .new_device =  new_device,
                    ^
lib/netdev-dpdk.c:2036:20: note: (near initialization for ‘virtio_net_device_ops.new_device’)
lib/netdev-dpdk.c:2037:23: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
     .destroy_device = destroy_device,
                       ^
lib/netdev-dpdk.c:2037:23: note: (near initialization for ‘virtio_net_device_ops.destroy_device’)
lib/netdev-dpdk.c:2038:28: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
     .vring_state_changed = vring_state_changed
                            ^
lib/netdev-dpdk.c:2038:28: note: (near initialization for ‘virtio_net_device_ops.vring_state_changed’)
lib/netdev-dpdk.c: In function ‘dpdk_vhost_cuse_class_init’:
lib/netdev-dpdk.c:2069:11: error: too few arguments to function ‘rte_vhost_driver_register’
     err = rte_vhost_driver_register(cuse_dev_name);
           ^
In file included from lib/netdev-dpdk.c:56:0:
/usr/src/dpdk-16.07/x86_64-native-linuxapp-gcc/include/rte_virtio_net.h:95:5: note: declared here
 int rte_vhost_driver_register(const char *path, uint64_t flags);
     ^
lib/netdev-dpdk.c: In function ‘is_vhost_running’:
lib/netdev-dpdk.c:996:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
Makefile:4027: recipe for target 'lib/netdev-dpdk.lo' failed
make[2]: *** [lib/netdev-dpdk.lo] Error 1
make[2]: Leaving directory '/usr/src/openvswitch-2.5.0'
Makefile:4679: recipe for target 'install-recursive' failed
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory '/usr/src/openvswitch-2.5.0'
Makefile:4985: recipe for target 'install' failed
make: *** [install] Error 2

我不明白我错过了什么 DPDK是dpdk-16.07 OpenVSwitch是openvswitch-2.5.0 Ubuntu是Ubuntu 16.04.1 LTS

任何帮助将不胜感激 谢谢。

2 个答案:

答案 0 :(得分:1)

OVS-2.5.0不支持dpdk-16.07。 从8月3日开始,使用比提交netdev-dpdk: Add support for DPDK 16.07更新的OVS主数据。此提交将对dpdk-16.07的支持添加到OVS。

答案 1 :(得分:1)

失败是因为OVS2.5"稳定释放"不支持dpdk 16.07(仅支持dpdk2.1)。您可以在下载的目录文件INSTALL.DPDK.md中确认dpdk版本支持。

话虽这么说,你可以用dpdk16.07运行ovs2.5,使用"当前开发的ovs"文档中的选项,而不是"稳定版本"选项。

因此,在this doc中,跳过以下选项

* OVS稳定版本可以从Download OVS下载压缩格式

cd / usr / src

wget http://openvswitch.org/releases/openvswitch-。tar.gz

tar -zxvf openvswitch-.tar.gz

导出OVS_DIR = / usr / src / openvswitch - *

执行此操作

* OVS当前的开发可以使用' git'克隆。工具

cd / usr / src /

git clone https://github.com/openvswitch/ovs.git

导出OVS_DIR = / usr / src / ovs *

错误将被解决!!