Hello all,
I’ve installed openSUSE 11.1 (Kernel 2.6.27.21-0.1-pae). The bonding-module has the version 3.3.0. In the new 2.6.29-kernel, I found a newer version of the bonding-module.
So, I have downloaded the kernel-source (2.6.29) and tried to compile only the bonding-module/driver.
I have created the following Makefile:
opensuse:/tmp/linux-2.6.29/drivers/net/bonding # cat Makefile
#
# Makefile for the Ethernet Bonding driver
#
obj-m := bonding.o
bonding-objs := bond_main.o bond_3ad.o bond_alb.o bond_sysfs.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
When I start a “make”, I always receive errors:
opensuse:/tmp/linux-2.6.29/drivers/net/bonding # make
make -C /lib/modules/2.6.27.21-0.1-pae/build M=/tmp/linux-2.6.29/drivers/net/bonding modules
make[1]: Entering directory `/usr/src/linux-2.6.27.21-0.1-obj/i386/pae'
make -C /usr/src/linux-2.6.27.21-0.1 O=/usr/src/linux-2.6.27.21-0.1-obj/i386/pae/. modules
CC [M] /tmp/linux-2.6.29/drivers/net/bonding/bond_main.o
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c: In function âbond_vlan_rx_registerâ:
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:456: error: âstruct net_deviceâ has no member named ânetdev_opsâ
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:459: error: dereferencing pointer to incomplete type
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:460: error: dereferencing pointer to incomplete type
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c: In function âbond_vlan_rx_add_vidâ:
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:478: error: âstruct net_deviceâ has no member named ânetdev_opsâ
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:481: error: dereferencing pointer to incomplete type
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:482: error: dereferencing pointer to incomplete type
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c: In function âbond_vlan_rx_kill_vidâ:
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:508: error: âstruct net_deviceâ has no member named ânetdev_opsâ
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:511: error: dereferencing pointer to incomplete type
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:516: error: dereferencing pointer to incomplete type
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c: In function âbond_add_vlans_on_slaveâ:
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:532: error: âstruct net_deviceâ has no member named ânetdev_opsâ
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:540: error: dereferencing pointer to incomplete type
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:541: error: dereferencing pointer to incomplete type
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:544: error: dereferencing pointer to incomplete type
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:548: error: dereferencing pointer to incomplete type
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c: In function âbond_del_vlans_from_slaveâ:
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:556: error: âstruct net_deviceâ has no member named ânetdev_opsâ
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:566: error: dereferencing pointer to incomplete type
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:574: error: dereferencing pointer to incomplete type
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:580: error: dereferencing pointer to incomplete type
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:581: error: dereferencing pointer to incomplete type
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c: In function âbond_check_dev_linkâ:
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:690: error: âstruct net_deviceâ has no member named ânetdev_opsâ
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:698: error: dereferencing pointer to incomplete type
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c: In function âbond_compute_featuresâ:
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:1350: error: âNETIF_F_ONE_FOR_ALLâ undeclared (first use in this function)
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:1350: error: (Each undeclared identifier is reported only once
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:1350: error: for each function it appears in.)
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:1353: error: implicit declaration of function ânetdev_increment_featuresâ
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:1362: error: implicit declaration of function ânetdev_fix_featuresâ
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c: In function âbond_enslaveâ:
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:1388: error: âstruct net_deviceâ has no member named ânetdev_opsâ
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:1397: error: dereferencing pointer to incomplete type
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:1479: error: dereferencing pointer to incomplete type
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c: In function âbond_get_statsâ:
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:3906: error: implicit declaration of function âdev_get_statsâ
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:3906: warning: initialization makes pointer from integer without a cast
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c: In function âbond_neigh_setupâ:
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4129: error: âstruct net_deviceâ has no member named ânetdev_opsâ
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4130: error: dereferencing pointer to incomplete type
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4131: error: dereferencing pointer to incomplete type
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c: In function âbond_change_mtuâ:
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4165: error: âstruct net_deviceâ has no member named ânetdev_opsâ
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c: In function âbond_set_mac_addressâ:
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4252: error: âstruct net_deviceâ has no member named ânetdev_opsâ
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4255: error: dereferencing pointer to incomplete type
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c: At top level:
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4585: error: variable âbond_netdev_opsâ has initializer but incomplete type
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4586: error: unknown field ândo_openâ specified in initializer
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4586: warning: excess elements in struct initializer
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4586: warning: (near initialization for âbond_netdev_opsâ)
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4587: error: unknown field ândo_stopâ specified in initializer
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4587: warning: excess elements in struct initializer
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4587: warning: (near initialization for âbond_netdev_opsâ)
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4588: error: unknown field ândo_start_xmitâ specified in initializer
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4588: warning: excess elements in struct initializer
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4588: warning: (near initialization for âbond_netdev_opsâ)
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4589: error: unknown field ândo_get_statsâ specified in initializer
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4589: warning: excess elements in struct initializer
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4589: warning: (near initialization for âbond_netdev_opsâ)
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4590: error: unknown field ândo_do_ioctlâ specified in initializer
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4590: warning: excess elements in struct initializer
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4590: warning: (near initialization for âbond_netdev_opsâ)
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4591: error: unknown field ândo_set_multicast_listâ specified in initializer
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4591: warning: excess elements in struct initializer
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4591: warning: (near initialization for âbond_netdev_opsâ)
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4592: error: unknown field ândo_change_mtuâ specified in initializer
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4592: warning: excess elements in struct initializer
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4592: warning: (near initialization for âbond_netdev_opsâ)
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4593: error: unknown field ândo_set_mac_addressâ specified in initializer
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4593: warning: excess elements in struct initializer
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4593: warning: (near initialization for âbond_netdev_opsâ)
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4594: error: unknown field ândo_neigh_setupâ specified in initializer
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4594: warning: excess elements in struct initializer
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4594: warning: (near initialization for âbond_netdev_opsâ)
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4595: error: unknown field ândo_vlan_rx_registerâ specified in initializer
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4595: warning: excess elements in struct initializer
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4595: warning: (near initialization for âbond_netdev_opsâ)
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4596: error: unknown field ândo_vlan_rx_add_vidâ specified in initializer
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4596: warning: excess elements in struct initializer
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4596: warning: (near initialization for âbond_netdev_opsâ)
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4597: error: unknown field ândo_vlan_rx_kill_vidâ specified in initializer
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4597: warning: excess elements in struct initializer
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4597: warning: (near initialization for âbond_netdev_opsâ)
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c: In function âbond_initâ:
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4632: error: âstruct net_deviceâ has no member named ânetdev_opsâ
/tmp/linux-2.6.29/drivers/net/bonding/bond_main.c:4643: error: âIFF_MASTER_ARPMONâ undeclared (first use in this function)
make[4]: *** [/tmp/linux-2.6.29/drivers/net/bonding/bond_main.o] Error 1
make[3]: *** [_module_/tmp/linux-2.6.29/drivers/net/bonding] Error 2
make[2]: *** [sub-make] Error 2
make[1]: *** [all] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.27.21-0.1-obj/i386/pae'
make: *** [all] Error 2
What’s the reason, that I always receive this errors? Is it not possible, to compile only one module/driver?
Thanks a lot.
Tom