首先说一下自己遇到的一个困扰了好一阵子的BUG。

由于实验室服务器需要用DPDK2.0.0 (现在版本都出18了),所以也就用了这个版本。Ubuntu18、Ubuntu14.04TLS都尝试装过DPDK2.0.0,但都遇到了同样的一个问题。在Build lib/librte_eal/linuxapp/igb_uio这一步骤时,出现报错:

在网上也没有找到解决方法,只是搜到了可能时linux内核版本的问题,而uio也是用户态驱动方面的东西。查了一下Ubuntu14.04TLS的内核版本:

之前在网上搜问题时又搜到了: 对于内核版本大于等于4.3的:Move msi_list from struct pci_dev to  struct device。

https://dev.dpdk.narkive.com/5ob6kipX/dpdk-dev-patch-v2-igb-uio-fix-igb-uio-s-access-to-pci-dev-msi-list-for-kernels-4-3

那么这个问题就很明显了。新的内核没有msi_list这个参数,所以DPDK编译不通过。解决方法就是要找一个内核版本低一些的Linux系统。至少Ubuntu14.04.1符合要求啦。

Logo

更多推荐