我正在尝试构建适用于 Intel X710-da2 的网络驱动程序,可以下载这里在 FreeBSD 9.3 上。
我遵循了英特尔自述文件,但在运行 make 命令后仍然出现以下编译错误:
Warning: Object directory not changed from original /usr/home/miadmin/ix-2.8.2/src
cc -O2 -pipe -DSMP -DIXGBE_FDIR -DINET -DINET6 -DIXGBE_STANDALONE_BUILD -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -c if_ix.c
cc1: warnings being treated as errors
if_ix.c:208: warning: redundant redeclaration of 'ixgbe_stop_mac_link_on_d3_82599' [-Wredundant-decls]
ixgbe_common.h:168: warning: previous declaration of 'ixgbe_stop_mac_link_on_d3_82599' was here
if_ix.c: In function 'ixgbe_setup_interface':
if_ix.c:2560: warning: integer overflow in expression [-Woverflow]
if_ix.c:2560: warning: overflow in implicit constant conversion [-Woverflow]
if_ix.c:2600: error: 'IFCAP_HWSTATS' undeclared (first use in this function)
if_ix.c:2600: error: (Each undeclared identifier is reported only once
if_ix.c:2600: error: for each function it appears in.)
*** [if_ix.o] Error code 1
这些错误可能是什么问题?
我的最终目标是编译驱动程序以便集成它(稍后将描述这里) 在我的 FreeNAS 9.3 环境中,因为集成驱动程序存在问题 (错误 #9117) 与X710-da2网卡。
提前感谢任何形式的帮助。
答案1
if.h
在不同的环境中检查文件的 9.x 版本时FreeBSD 内核版本l,缺少“IFCAP_HWSTATS”。在版本 10 中它再次出现,也许 FreeBSD 开发人员在版本 9.x 中更改或破坏了它?作为英特尔在版本 10 中的最新驱动程序,2.8.2需要这个声明,编译就会中断--不幸的是。
因此,您应该尝试使用驱动程序版本2.5.25,如司机描述https://downloadcenter.intel.com/product/83949/Intel-Ethernet-Converged-Network-Adapter-X710-Series状态:
此驱动程序适用于 FreeBSD 7.2 或更高版本
相比之下,驱动程序 2.8.2 似乎仅为 FreeBSD 10.x 及更高版本编写。
希望这可以帮助。