操作系统 Fedora 25
内核4.9.13-200.fc25.x86_64
我输入命令
sudo vmware-modconfig --console --install-all
错误:
Stopping vmware (via systemctl): [ OK ]
make: вход в каталог «/tmp/modconfig-yWthRK/vmmon-only»
Using kernel build system.
/bin/make -C /lib/modules/4.9.13-200.fc25.x86_64/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
MODULEBUILDDIR= modules
make[1]: вход в каталог «/usr/src/kernels/4.9.13-200.fc25.x86_64»
CC [M] /tmp/modconfig-yWthRK/vmmon-only/linux/driver.o
CC [M] /tmp/modconfig-yWthRK/vmmon-only/linux/hostif.o
CC [M] /tmp/modconfig-yWthRK/vmmon-only/linux/driverLog.o
CC [M] /tmp/modconfig-yWthRK/vmmon-only/common/memtrack.o
CC [M] /tmp/modconfig-yWthRK/vmmon-only/common/apic.o
CC [M] /tmp/modconfig-yWthRK/vmmon-only/common/vmx86.o
CC [M] /tmp/modconfig-yWthRK/vmmon-only/common/cpuid.o
/tmp/modconfig-yWthRK/vmmon-only/linux/hostif.c: В функции «HostIFGetUserPages»:
/tmp/modconfig-yWthRK/vmmon-only/linux/hostif.c:1166:67: ошибка: в передаче аргумента 5 «get_user_pages»: несовместимый тип указателя [-Werror=incompatible-pointer-types]
retval = get_user_pages((unsigned long)uvAddr, numPages, 0, 0, ppages, NULL);
^~~~~~
In file included from /tmp/modconfig-yWthRK/vmmon-only/./include/compat_page.h:23:0,
from /tmp/modconfig-yWthRK/vmmon-only/linux/hostif.c:32:
./include/linux/mm.h:1280:6: замечание: ожидался тип «struct vm_area_struct **», но аргумент имеет тип «struct page **»
long get_user_pages(unsigned long start, unsigned long nr_pages,
^~~~~~~~~~~~~~
/tmp/modconfig-yWthRK/vmmon-only/linux/hostif.c:1166:13: ошибка: слишком много аргументов в вызове функции «get_user_pages»
retval = get_user_pages((unsigned long)uvAddr, numPages, 0, 0, ppages, NULL);
^~~~~~~~~~~~~~
In file included from /tmp/modconfig-yWthRK/vmmon-only/./include/compat_page.h:23:0,
from /tmp/modconfig-yWthRK/vmmon-only/linux/hostif.c:32:
./include/linux/mm.h:1280:6: замечание: объявлено здесь
long get_user_pages(unsigned long start, unsigned long nr_pages,
^~~~~~~~~~~~~~
/tmp/modconfig-yWthRK/vmmon-only/linux/driver.c:1283:1: предупреждение: always_inline функция, возможно, не годится для подстановки [-Wattributes]
LinuxDriverSyncReadTSCs(uint64 *delta) // OUT: TSC max - TSC min
^~~~~~~~~~~~~~~~~~~~~~~
CC [M] /tmp/modconfig-yWthRK/vmmon-only/common/task.o
cc1: некоторые предупреждения считаются ошибками
scripts/Makefile.build:293: ошибка выполнения рецепта для цели «/tmp/modconfig-yWthRK/vmmon-only/linux/hostif.o»
make[2]: *** [/tmp/modconfig-yWthRK/vmmon-only/linux/hostif.o] Ошибка 1
make[2]: *** Ожидание завершения заданий…
/tmp/modconfig-yWthRK/vmmon-only/common/task.o: warning: objtool: .text: unexpected end of section
Makefile:1494: ошибка выполнения рецепта для цели «_module_/tmp/modconfig-yWthRK/vmmon-only»
make[1]: *** [_module_/tmp/modconfig-yWthRK/vmmon-only] Ошибка 2
make[1]: выход из каталога «/usr/src/kernels/4.9.13-200.fc25.x86_64»
Makefile:120: ошибка выполнения рецепта для цели «vmmon.ko»
make: *** [vmmon.ko] Ошибка 2
make: выход из каталога «/tmp/modconfig-yWthRK/vmmon-only»
make: вход в каталог «/tmp/modconfig-yWthRK/vmnet-only»
Using kernel build system.
/bin/make -C /lib/modules/4.9.13-200.fc25.x86_64/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
MODULEBUILDDIR= modules
make[1]: вход в каталог «/usr/src/kernels/4.9.13-200.fc25.x86_64»
CC [M] /tmp/modconfig-yWthRK/vmnet-only/driver.o
CC [M] /tmp/modconfig-yWthRK/vmnet-only/hub.o
CC [M] /tmp/modconfig-yWthRK/vmnet-only/userif.o
CC [M] /tmp/modconfig-yWthRK/vmnet-only/netif.o
/tmp/modconfig-yWthRK/vmnet-only/userif.c: В функции «UserifLockPage»:
/tmp/modconfig-yWthRK/vmnet-only/userif.c:117:43: ошибка: в передаче аргумента 5 «get_user_pages»: несовместимый тип указателя [-Werror=incompatible-pointer-types]
retval = get_user_pages(addr, 1, 1, 0, &page, NULL);
^
In file included from ./include/linux/highmem.h:7:0,
from /tmp/modconfig-yWthRK/vmnet-only/userif.c:26:
./include/linux/mm.h:1280:6: замечание: ожидался тип «struct vm_area_struct **», но аргумент имеет тип «struct page **»
long get_user_pages(unsigned long start, unsigned long nr_pages,
^~~~~~~~~~~~~~
/tmp/modconfig-yWthRK/vmnet-only/userif.c:117:13: ошибка: слишком много аргументов в вызове функции «get_user_pages»
retval = get_user_pages(addr, 1, 1, 0, &page, NULL);
^~~~~~~~~~~~~~
In file included from ./include/linux/highmem.h:7:0,
from /tmp/modconfig-yWthRK/vmnet-only/userif.c:26:
./include/linux/mm.h:1280:6: замечание: объявлено здесь
long get_user_pages(unsigned long start, unsigned long nr_pages,
^~~~~~~~~~~~~~
In file included from ./include/linux/pci.h:35:0,
from /tmp/modconfig-yWthRK/vmnet-only/compat_netdevice.h:27,
from /tmp/modconfig-yWthRK/vmnet-only/netif.c:43:
./include/linux/pci_ids.h:2253:0: предупреждение: «PCI_VENDOR_ID_VMWARE» переопределён
#define PCI_VENDOR_ID_VMWARE 0x15ad
In file included from /tmp/modconfig-yWthRK/vmnet-only/net.h:38:0,
from /tmp/modconfig-yWthRK/vmnet-only/vnetInt.h:26,
from /tmp/modconfig-yWthRK/vmnet-only/netif.c:42:
/tmp/modconfig-yWthRK/vmnet-only/vm_device_version.h:56:0: замечание: это расположение предыдущего определения
#define PCI_VENDOR_ID_VMWARE 0x15AD
cc1: некоторые предупреждения считаются ошибками
scripts/Makefile.build:293: ошибка выполнения рецепта для цели «/tmp/modconfig-yWthRK/vmnet-only/userif.o»
make[2]: *** [/tmp/modconfig-yWthRK/vmnet-only/userif.o] Ошибка 1
make[2]: *** Ожидание завершения заданий…
Makefile:1494: ошибка выполнения рецепта для цели «_module_/tmp/modconfig-yWthRK/vmnet-only»
make[1]: *** [_module_/tmp/modconfig-yWthRK/vmnet-only] Ошибка 2
make[1]: выход из каталога «/usr/src/kernels/4.9.13-200.fc25.x86_64»
Makefile:120: ошибка выполнения рецепта для цели «vmnet.ko»
make: *** [vmnet.ko] Ошибка 2
make: выход из каталога «/tmp/modconfig-yWthRK/vmnet-only»
Unable to install all modules. See log for details.
我用源码补丁解决了这个问题
vmnet
,vmmon
我自己解决了。一切正常此问题已针对内核 4.9.xx 解决 https://communities.vmware.com/message/2644813#2644813 我是这样安装的:
几个 Fedora 更新是无痛的,但在 4.9.11-200.fc25.x86_64 x86_64 vmnet 上“消失”,拆除和重新安装 vmware 没有帮助,打手鼓。突然一切又好了(我不能指定原因),现在我不会更新,而我正在游泳 4.9.11-200