Привычка VMware Workstation 12 компилирует модули на ядре Linux 4.6

Я недавно должен был установить ядро 4.6 в моей Ubuntu 16.04 для остановки, случайные "приостанавливают" катастрофические отказы.

После установки я работал:

sudo vmware-modconfig --console --install-all

и получил ошибку:

<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.

VMs не работал бы с ошибкой относительно, не могущего загрузить vmmon

4
задан 9 August 2016 в 17:40

2 ответа

Похоже, get_user_pages был заменен на get_user_pages_remote

С этим патчем: https://lkml.org/lkml/2016/2/10/555

Решить:

(из Arch linux wiki:)

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

Мне кажется, что это патч linux, нарушающий пользовательское пространство, я не прав?

1
ответ дан 1 December 2019 в 10:36

Ответ Праяга Сангоде на Прежде чем вы сможете запустить VMware, необходимо скомпилировать несколько модулей — Unix и Linux решили проблему в Ubuntu 18 (VMware версии 15.5).

Клон git https://github.com/mkubecek/vmware-host-modules
cd vmware-хост-модули
рабочая станция Git Checkout-15.5.6
судо сделать ; судо сделать установить
0
ответ дан 25 July 2020 в 06:45

Другие вопросы по тегам:

Похожие вопросы: