web-dev-qa-db-fra.com

VMware Workstation 12 ne compilera pas les modules sur le noyau Linux 4.6

J'ai récemment dû installer le noyau 4.6 dans mon Ubuntu 16.04 pour arrêter les plantages aléatoires de "suspendre".

Après l'installation, j'ai exécuté:

Sudo vmware-modconfig --console --install-all

et j'ai eu l'erreur:

<snip>

from /tmp/modconfig-VKdGcJ/vmmon-only/linux/hostif.c:32:
/tmp/modconfig-VKdGcJ/vmmon-only/linux/hostif.c: In function ‘HostIFGetUserPages’:
./Arch/x86/include/asm/current.h:17:17: warning: passing argument 1 of ‘get_user_pages’ makes integer from pointer without a cast [-Wint-conversion]
 #define current get_current()


<snip>
from /tmp/modconfig-VKdGcJ/vmmon-only/linux/hostif.c:32:
./Arch/x86/include/asm/current.h:17:17: warning: passing argument 2 of ‘get_user_pages’ makes integer from pointer without a cast [-Wint-conversion]
#define current get_current()

<snip>

from /tmp/modconfig-VKdGcJ/vmnet-only/userif.c:26:
/tmp/modconfig-VKdGcJ/vmnet-only/userif.c: In function ‘UserifLockPage’:
./Arch/x86/include/asm/current.h:17:17: warning: passing argument 1 of ‘get_user_pages’ makes integer from pointer without a cast [-Wint-conversion]
#define current get_current()

<snip>
scripts/Makefile.build:291: recipe for target '/tmp/modconfig-VKdGcJ/vmnet-only/userif.o' failed
make[2]: *** [/tmp/modconfig-VKdGcJ/vmnet-only/userif.o] Error 1
make[2]: *** Waiting for unfinished jobs....
Makefile:1434: recipe for target '_module_/tmp/modconfig-VKdGcJ/vmnet-only' failed
make[1]: *** [_module_/tmp/modconfig-VKdGcJ/vmnet-only] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.6.0-040600-generic'
Makefile:120: recipe for target 'vmnet.ko' failed
make: *** [vmnet.ko] Error 2
make: Leaving directory '/tmp/modconfig-VKdGcJ/vmnet-only'
Unable to install all modules.  See log for details.

Les machines virtuelles ne fonctionneraient pas avec une erreur concernant l'impossibilité de charger vmmon

4
Rqomey

Il semble que get_user_pages a été remplacé par get_user_pages_remote

Avec ce patch: https://lkml.org/lkml/2016/2/10/555

Résoudre:

(Extrait du wiki Arch Linux :)

https://wiki.archlinux.org/index.php/VMware#Kernel_modules_fail_to_build_after_Linux_4.6

cd /usr/lib/vmware/modules/source
tar xf vmmon.tar
mv vmmon.tar vmmon.old.tar
sed -i -e 's/get_user_pages/get_user_pages_remote/g' vmmon-only/linux/hostif.c
tar cf vmmon.tar vmmon-only
rm -r vmmon-only
tar xf vmnet.tar
mv vmnet.tar vmnet.old.tar
sed -i -e 's/get_user_pages/get_user_pages_remote/g' vmnet-only/userif.c
tar cf vmnet.tar vmnet-only
rm -r vmnet-only

Pour moi, il semble que ce soit un correctif Linux brisant l'espace utilisateur, est-ce que je me trompe?

1
Rqomey