При линковке ядра с драйвером этой версии возникает следующая ошибка:
if_igb.o(.text+0x372e): In function `igb_setup_vlan_hw_support':
/usr/pfSensesrc/src/sys/dev/e1000/if_igb.c:4544: undefined reference to `e1000_v
fta_set_vf'
if_igb.o(.text+0x975d): In function `igb_ioctl':
/usr/pfSensesrc/src/sys/dev/e1000/if_igb.c:1833: undefined reference to `e1000_p
romisc_set_vf'
if_igb.o(.text+0x357e): In function `igb_set_promisc':
/usr/pfSensesrc/src/sys/dev/e1000/if_igb.c:1811: undefined reference to `e1000_p
romisc_set_vf'
if_igb.o(.text+0x37a9): In function `igb_setup_vlan_hw_support':
/usr/pfSensesrc/src/sys/dev/e1000/if_igb.c:4551: undefined reference to `e1000_r
lpml_set_vf'
e1000_api.o(.text+0xc6d): In function `e1000_setup_init_funcs':
/usr/pfSensesrc/src/sys/dev/e1000/e1000_api.c:357: undefined reference to `e1000
_init_mbx_ops_generic'
e1000_api.o(.text+0xce3):/usr/pfSensesrc/src/sys/dev/e1000/e1000_api.c:407: undefined reference to `e1000_init_function_pointers_vf'
*** Error code 1
1 error
*** Error code 2
1 error
*** Error code 2
1 error |
if_igb.o(.text+0x372e): In function `igb_setup_vlan_hw_support':
/usr/pfSensesrc/src/sys/dev/e1000/if_igb.c:4544: undefined reference to `e1000_v
fta_set_vf'
if_igb.o(.text+0x975d): In function `igb_ioctl':
/usr/pfSensesrc/src/sys/dev/e1000/if_igb.c:1833: undefined reference to `e1000_p
romisc_set_vf'
if_igb.o(.text+0x357e): In function `igb_set_promisc':
/usr/pfSensesrc/src/sys/dev/e1000/if_igb.c:1811: undefined reference to `e1000_p
romisc_set_vf'
if_igb.o(.text+0x37a9): In function `igb_setup_vlan_hw_support':
/usr/pfSensesrc/src/sys/dev/e1000/if_igb.c:4551: undefined reference to `e1000_r
lpml_set_vf'
e1000_api.o(.text+0xc6d): In function `e1000_setup_init_funcs':
/usr/pfSensesrc/src/sys/dev/e1000/e1000_api.c:357: undefined reference to `e1000
_init_mbx_ops_generic'
e1000_api.o(.text+0xce3):/usr/pfSensesrc/src/sys/dev/e1000/e1000_api.c:407: undefined reference to `e1000_init_function_pointers_vf'
*** Error code 1
1 error
*** Error code 2
1 error
*** Error code 2
1 error
Дело в том, что в фре выше 8.0 в стандартном драйвере исчезли два исходника e1000_vf и e1000_mbx, но в версии от яндекса они всё еще используются.
Для корректной сборки необходимо внести изменения в следующие файлы:
1. /usr/src/sys/conf/files
> dev/e1000/e1000_vf.c optional em | igb \
> compile-with "${NORMAL_C} -I$S/dev/e1000"
> dev/e1000/e1000_mbx.c optional em | igb \
> compile-with "${NORMAL_C} -I$S/dev/e1000" |
> dev/e1000/e1000_vf.c optional em | igb \
> compile-with "${NORMAL_C} -I$S/dev/e1000"
> dev/e1000/e1000_mbx.c optional em | igb \
> compile-with "${NORMAL_C} -I$S/dev/e1000"
2. /usr/src/sys/modules/em/Makefile
< COMMON_SHARED = e1000_api.c e1000_phy.c e1000_nvm.c e1000_mac.c e1000_manage.c
---
> COMMON_SHARED = e1000_api.c e1000_phy.c e1000_nvm.c e1000_mac.c \
> e1000_manage.c e1000_vf.c e1000_mbx.c |
< COMMON_SHARED = e1000_api.c e1000_phy.c e1000_nvm.c e1000_mac.c e1000_manage.c
---
> COMMON_SHARED = e1000_api.c e1000_phy.c e1000_nvm.c e1000_mac.c \
> e1000_manage.c e1000_vf.c e1000_mbx.c
3. /usr/src/sys/modules/igb/Makefile
< SHARED_SRCS += e1000_82575.c
---
> SHARED_SRCS += e1000_82575.c e1000_vf.c e1000_mbx.c |
< SHARED_SRCS += e1000_82575.c
---
> SHARED_SRCS += e1000_82575.c e1000_vf.c e1000_mbx.c
Благодарим Andy52280 с форума nag.ru