hv_vmbus: invalid module format on SLES 10 SP4 latest kernel

Hi,

Sorry if this is the wrong place.

I have a SLES 10 SP4 machine that got virtualized in Hyper-V 2008 R2 a few months ago. I’s been runing with only minor problems, until we needed to move it to another hypervisor that is running Hyper-V 2012.

After that, we found that it doesn’t recognizes the integration modules (vmbus, netvsc, etc). I managed to recompile and load the integration modules in a way that I could even update the machine, but I noticed that the system is trying to load some native modules, like hv_vmbus, hv_netvsc, etc.

But when system tries to load these modules, it throws these errors:

venus:~ # modprobe -v hv_vmbus
insmod /lib/modules/2.6.16.60-0.103.1-smp/kernel/drivers/staging/hv/hv_vmbus.ko
FATAL: Error inserting hv_vmbus (/lib/modules/2.6.16.60-0.103.1-smp/kernel/drivers/staging/hv/hv_vmbus.ko): Invalid module format
venus:~ #

I noticed that these modules are part of the kernel package:

venus:~ # rpm -qf /lib/modules/2.6.16.60-0.103.1-smp/kernel/drivers/staging/hv/hv_vmbus.ko
kernel-smp-2.6.16.60-0.103.1
venus:~ #

Does anybody knows why does this happen?

Hi jqueiroz,

FATAL: Error inserting hv_vmbus (/lib/modules/2.6.16.60-0.103.1-smp/kernel/drivers/staging/hv/hv_vmbus.ko): Invalid module format
Does anybody knows why does this happen?

Is there any additional output in “dmesg” when you insmod (i.e. via modprobe) the module? Typically these messages result from some unsatisfied dependency, like other modules that need to be loaded first, and the resulting symbol resolution problems.

Regards,
Jens

Good catch.

venus:/home/JQueiroz # modprobe -v hv_vmbus
insmod /lib/modules/2.6.16.60-0.103.1-smp/kernel/drivers/staging/hv/hv_vmbus.ko
FATAL: Error inserting hv_vmbus (/lib/modules/2.6.16.60-0.103.1-smp/kernel/drivers/staging/hv/hv_vmbus.ko): Invalid module format
venus:/home/JQueiroz # dmesg | tail
hv_vmbus: module not supported by Novell, setting U taint flag.
hv_vmbus: exports duplicate symbol vmbus_get_interface (owned by vmbus)
hv_vmbus: module not supported by Novell, setting U taint flag.
hv_vmbus: exports duplicate symbol vmbus_get_interface (owned by vmbus)
hv_vmbus: module not supported by Novell, setting U taint flag.
hv_vmbus: exports duplicate symbol vmbus_get_interface (owned by vmbus)
hv_vmbus: module not supported by Novell, setting U taint flag.
hv_vmbus: exports duplicate symbol vmbus_get_interface (owned by vmbus)
hv_vmbus: module not supported by Novell, setting U taint flag.
hv_vmbus: exports duplicate symbol vmbus_get_interface (owned by vmbus)
venus:/home/JQueiroz #

The duplicate symbol probably comes from the vmbus module installed by ‘Linux IC 2.1’. Could it be the cause of the ‘invalid module format’, also?

Hi jqueiroz,

[QUOTE=jqueiroz;13891]Good catch.

venus:/home/JQueiroz # modprobe -v hv_vmbus
insmod /lib/modules/2.6.16.60-0.103.1-smp/kernel/drivers/staging/hv/hv_vmbus.ko
FATAL: Error inserting hv_vmbus (/lib/modules/2.6.16.60-0.103.1-smp/kernel/drivers/staging/hv/hv_vmbus.ko): Invalid module format
venus:/home/JQueiroz # dmesg | tail
hv_vmbus: module not supported by Novell, setting U taint flag.
hv_vmbus: exports duplicate symbol vmbus_get_interface (owned by vmbus)
hv_vmbus: module not supported by Novell, setting U taint flag.
hv_vmbus: exports duplicate symbol vmbus_get_interface (owned by vmbus)
hv_vmbus: module not supported by Novell, setting U taint flag.
hv_vmbus: exports duplicate symbol vmbus_get_interface (owned by vmbus)
hv_vmbus: module not supported by Novell, setting U taint flag.
hv_vmbus: exports duplicate symbol vmbus_get_interface (owned by vmbus)
hv_vmbus: module not supported by Novell, setting U taint flag.
hv_vmbus: exports duplicate symbol vmbus_get_interface (owned by vmbus)
venus:/home/JQueiroz #

The duplicate symbol probably comes from the vmbus module installed by ‘Linux IC 2.1’. Could it be the cause of the ‘invalid module format’, also?[/QUOTE]

that’s one of those cases of misleading error messages… “Invalid module format” ought to be “could not insert the module, although it exists and I can access it - maybe the module format is wrong (perhaps it was build for another architecture)”. Still wouldn’t cover all possible error causes and who’d read such long error messages anyhow… :wink:

Regards,
Jens