[20.04] VMware Workstation/Player fails to build kernel modules VMMON & VMNET

Hi,

I've probably done something wrong, because I get this result (Ubuntu 20.04.5 LTS, VmWare 15.0.2):

[AppLoader] Use shipped Linux kernel AIO access library.
An up-to-date "libaio" or "libaio1" package from your system is preferred.
[AppLoader] GLib does not have GSettings support.
Stopping VMware services:
VMware Authentication Daemon done
VM communication interface socket family done
Virtual machine communication interface done
Virtual machine monitor done
Blocking file system done
make : on entre dans le répertoire « /tmp/modconfig-w52dnH/vmmon-only »
Using kernel build system.
/usr/bin/make -C /lib/modules/5.4.0-139-generic/build/include/.. M=$PWD SRCROOT=$PWD/.
MODULEBUILDDIR= modules
make[1] : on entre dans le répertoire « /usr/src/linux-headers-5.4.0-139-generic »
CC [M] /tmp/modconfig-w52dnH/vmmon-only/linux/driverLog.o
CC [M] /tmp/modconfig-w52dnH/vmmon-only/linux/driver.o
CC [M] /tmp/modconfig-w52dnH/vmmon-only/linux/hostif.o
CC [M] /tmp/modconfig-w52dnH/vmmon-only/common/apic.o
CC [M] /tmp/modconfig-w52dnH/vmmon-only/common/memtrack.o
CC [M] /tmp/modconfig-w52dnH/vmmon-only/common/vmx86.o
CC [M] /tmp/modconfig-w52dnH/vmmon-only/common/cpuid.o
CC [M] /tmp/modconfig-w52dnH/vmmon-only/common/task.o
CC [M] /tmp/modconfig-w52dnH/vmmon-only/common/comport.o
CC [M] /tmp/modconfig-w52dnH/vmmon-only/common/phystrack.o
CC [M] /tmp/modconfig-w52dnH/vmmon-only/vmcore/moduleloop.o
CC [M] /tmp/modconfig-w52dnH/vmmon-only/bootstrap/monLoaderVmmon.o
CC [M] /tmp/modconfig-w52dnH/vmmon-only/bootstrap/monLoader.o
CC [M] /tmp/modconfig-w52dnH/vmmon-only/bootstrap/vmmblob.o
CC [M] /tmp/modconfig-w52dnH/vmmon-only/bootstrap/bootstrap.o
/tmp/modconfig-w52dnH/vmmon-only/linux/hostif.c: In function ‘HostIF_SetFastClockRate’:
/tmp/modconfig-w52dnH/vmmon-only/linux/hostif.c:3382:10: error: too many arguments to function ‘force_sig’
3382 | force_sig(SIGKILL, linuxState.fastClockThread);
| ^~~~~~~~~
In file included from ./include/linux/taskstats_kern.h:12,
from /tmp/modconfig-w52dnH/vmmon-only/linux/hostif.c:56:
./include/linux/sched/signal.h:341:13: note: declared here
341 | extern void force_sig(int);
| ^~~~~~~~~
make[2]: *** [scripts/Makefile.build:270 : /tmp/modconfig-w52dnH/vmmon-only/linux/hostif.o] Erreur 1
make[2]: *** Attente des tùches non terminées....
make[1]: *** [Makefile:1767 : /tmp/modconfig-w52dnH/vmmon-only] Erreur 2
make[1] : on quitte le répertoire « /usr/src/linux-headers-5.4.0-139-generic »
make: *** [Makefile:110 : vmmon.ko] Erreur 2
make : on quitte le répertoire « /tmp/modconfig-w52dnH/vmmon-only »
make : on entre dans le répertoire « /tmp/modconfig-w52dnH/vmnet-only »
Using kernel build system.
/usr/bin/make -C /lib/modules/5.4.0-139-generic/build/include/.. M=$PWD SRCROOT=$PWD/.
MODULEBUILDDIR= modules
make[1] : on entre dans le répertoire « /usr/src/linux-headers-5.4.0-139-generic »
CC [M] /tmp/modconfig-w52dnH/vmnet-only/driver.o
CC [M] /tmp/modconfig-w52dnH/vmnet-only/hub.o
CC [M] /tmp/modconfig-w52dnH/vmnet-only/userif.o
CC [M] /tmp/modconfig-w52dnH/vmnet-only/netif.o
CC [M] /tmp/modconfig-w52dnH/vmnet-only/bridge.o
CC [M] /tmp/modconfig-w52dnH/vmnet-only/procfs.o
CC [M] /tmp/modconfig-w52dnH/vmnet-only/smac_compat.o
CC [M] /tmp/modconfig-w52dnH/vmnet-only/smac.o
CC [M] /tmp/modconfig-w52dnH/vmnet-only/vnetEvent.o
CC [M] /tmp/modconfig-w52dnH/vmnet-only/vnetUserListener.o
/tmp/modconfig-w52dnH/vmnet-only/userif.c: In function ‘VNetCsumCopyDatagram’:
/tmp/modconfig-w52dnH/vmnet-only/userif.c:568:15: error: ‘skb_frag_t’ {aka ‘const struct bio_vec’} has no member named ‘size’
568 | if (frag->size > 0) {
| ^~
/tmp/modconfig-w52dnH/vmnet-only/userif.c:572:29: error: ‘skb_frag_t’ {aka ‘const struct bio_vec’} has no member named ‘page’; did you mean ‘bv_page’?
572 | vaddr = compat_kmap(frag->page);
| ^~~~
/tmp/modconfig-w52dnH/vmnet-only/userif.c:84:36: note: in definition of macro ‘compat_kmap’
84 | # define compat_kmap(page) kmap((page).p)
| ^~~~
/tmp/modconfig-w52dnH/vmnet-only/userif.c:573:49: error: ‘skb_frag_t’ {aka ‘const struct bio_vec’} has no member named ‘page_offset’; did you mean ‘bv_offset’?
573 | tmpCsum = csum_and_copy_to_user(vaddr + frag->page_offset,
| ^~~~~~~~~~~
| bv_offset
/tmp/modconfig-w52dnH/vmnet-only/userif.c:574:17: error: ‘skb_frag_t’ {aka ‘const struct bio_vec’} has no member named ‘size’
574 | curr, frag->size, 0, &err);
| ^~
/tmp/modconfig-w52dnH/vmnet-only/userif.c:575:23: error: ‘skb_frag_t’ {aka ‘const struct bio_vec’} has no member named ‘page’; did you mean ‘bv_page’?
575 | compat_kunmap(frag->page);
| ^~~~
/tmp/modconfig-w52dnH/vmnet-only/userif.c:85:40: note: in definition of macro ‘compat_kunmap’
85 | # define compat_kunmap(page) kunmap((page).p)
| ^~~~
/tmp/modconfig-w52dnH/vmnet-only/userif.c:581:15: error: ‘skb_frag_t’ {aka ‘const struct bio_vec’} has no member named ‘size’
581 | curr += frag->size;
| ^~
make[2]: *** [scripts/Makefile.build:270 : /tmp/modconfig-w52dnH/vmnet-only/userif.o] Erreur 1
make[2]: *** Attente des tùches non terminées....
make[1]: *** [Makefile:1767 : /tmp/modconfig-w52dnH/vmnet-only] Erreur 2
make[1] : on quitte le répertoire « /usr/src/linux-headers-5.4.0-139-generic »
make: *** [Makefile:110 : vmnet.ko] Erreur 2
make : on quitte le répertoire « /tmp/modconfig-w52dnH/vmnet-only »
Unable to install all modules. See log for details.

1 Like

Welcome @debutant95 to the community!

1 Like

Thank you @Bombilla !

1 Like