我的系统内核:
:~$ uname -a
Linux xxxxx-Lenovo-3000-G530 4.13.0-26-generic #29~16.04.2-Ubuntu SMP Tue Jan 9 22:00:44 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
尝试这个:
sudo vmware-modconfig --console --install-all [sudo] 指定 xxxxxxx: 停止 VMware 服务: VMware 身份验证守护进程已完成 VM 通信接口套接字系列完成 虚拟机通信接口完成 虚拟机监控完成 阻止文件系统已完成 make:进入目录‘/tmp/modconfig-7G9QrA/vmmon-only’ 使用内核构建系统。 /usr/bin/make -C /lib/modules/4.13.0-26-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/.\ MODULEBUILDDIR= 模块 make[1]: 进入目录 '/usr/src/linux-headers-4.13.0-26-generic' CC [M] /tmp/modconfig-7G9QrA/vmmon-only/linux/driverLog.o CC [M] /tmp/modconfig-7G9QrA/vmmon-only/linux/driver.o CC [M] /tmp/modconfig-7G9QrA/vmmon-only/linux/hostif.o 在 /tmp/modconfig-7G9QrA/vmmon-only/./common/vmx86.h:32:0 中包含的文件中, 来自 /tmp/modconfig-7G9QrA/vmmon-only/linux/driver.h:31, 来自 /tmp/modconfig-7G9QrA/vmmon-only/linux/driver.c:48: /tmp/modconfig-7G9QrA/vmmon-only/./include/x86msr.h:111:0: 警告:“MSR_MISC_FEATURES_ENABLES”重新定义 #定义 MSR_MISC_FEATURES_ENABLES 0x140 ^ 在从 ./arch/x86/include/asm/msr.h:4:0 包含的文件中, 来自 ./arch/x86/include/asm/processor.h:20, 来自 ./arch/x86/include/asm/cpufeature.h:4, 来自 ./arch/x86/include/asm/thread_info.h:63, 来自 ./include/linux/thread_info.h:37, 来自./arch/x86/include/asm/preempt.h:6, 来自./include/linux/preempt.h:80, 来自 ./include/linux/spinlock.h:50, 来自./include/linux/wait.h:8, 来自 ./include/linux/wait_bit.h:7, 来自 ./include/linux/fs.h:5, 来自./include/linux/highmem.h:4, 来自 /tmp/modconfig-7G9QrA/vmmon-only/linux/driver.c:25: ./arch/x86/include/asm/msr-index.h:569:0: 注意:这是前一个定义的位置 #定义 MSR_MISC_FEATURES_ENABLES 0x00000140 ^ 在从 /tmp/modconfig-7G9QrA/vmmon-only/./include/vm_asm_x86.h:41:0 包含的文件中, 来自 /tmp/modconfig-7G9QrA/vmmon-only/./include/vm_asm_x86_64.h:39, 来自 /tmp/modconfig-7G9QrA/vmmon-only/./include/vm_asm.h:46, 来自 /tmp/modconfig-7G9QrA/vmmon-only/linux/driver.c:50: /tmp/modconfig-7G9QrA/vmmon-only/./include/x86_basic_defs.h:65:0: 警告:“CR3_PCID_MASK”重新定义 #定义 CR3_PCID_MASK 0xFFF ^ 在从 ./arch/x86/include/asm/processor.h:4:0 包含的文件中, 来自 ./arch/x86/include/asm/cpufeature.h:4, 来自 ./arch/x86/include/asm/thread_info.h:63, 来自 ./include/linux/thread_info.h:37, 来自./arch/x86/include/asm/preempt.h:6, 来自./include/linux/preempt.h:80, 来自 ./include/linux/spinlock.h:50, 来自./include/linux/wait.h:8, 来自 ./include/linux/wait_bit.h:7, 来自 ./include/linux/fs.h:5, 来自./include/linux/highmem.h:4, 来自 /tmp/modconfig-7G9QrA/vmmon-only/linux/driver.c:25: ./arch/x86/include/asm/processor-flags.h:37:0: 注意:这是前一个定义的位置 #定义 CR3_PCID_MASK 0xFFFull ^ /tmp/modconfig-7G9QrA/vmmon-only/linux/driver.c:1291:1: 警告:always_inline 函数可能无法内联 [-Wattributes] LinuxDriverSyncReadTSCs(uint64 *delta) //输出:TSC 最大值 - TSC 最小值 ^ 在从 /tmp/modconfig-7G9QrA/vmmon-only/./include/vm_asm.h:43:0 包含的文件中, 来自 /tmp/modconfig-7G9QrA/vmmon-only/linux/hostif.c:83: /tmp/modconfig-7G9QrA/vmmon-only/./include/x86msr.h:111:0: 警告:“MSR_MISC_FEATURES_ENABLES”重新定义 #定义 MSR_MISC_FEATURES_ENABLES 0x140 ^ 在从 ./arch/x86/include/asm/msr.h:4:0 包含的文件中, 来自 ./arch/x86/include/asm/processor.h:20, 来自 ./arch/x86/include/asm/cpufeature.h:4, 来自 ./arch/x86/include/asm/thread_info.h:63, 来自 ./include/linux/thread_info.h:37, 来自./arch/x86/include/asm/preempt.h:6, 来自./include/linux/preempt.h:80, 来自 ./include/linux/spinlock.h:50, 来自 ./include/linux/mmzone.h:7, 来自 ./include/linux/gfp.h:5, 来自 ./include/linux/mm.h:9, 来自 /tmp/modconfig-7G9QrA/vmmon-only/./include/compat_page.h:23, 来自 /tmp/modconfig-7G9QrA/vmmon-only/linux/hostif.c:32: ./arch/x86/include/asm/msr-index.h:569:0: 注意:这是前一个定义的位置 #定义 MSR_MISC_FEATURES_ENABLES 0x00000140 ^ 在从 /tmp/modconfig-7G9QrA/vmmon-only/./include/vm_asm_x86.h:41:0 包含的文件中, 来自 /tmp/modconfig-7G9QrA/vmmon-only/./include/vm_asm_x86_64.h:39, 来自 /tmp/modconfig-7G9QrA/vmmon-only/./include/vm_asm.h:46, 来自 /tmp/modconfig-7G9QrA/vmmon-only/linux/hostif.c:83: /tmp/modconfig-7G9QrA/vmmon-only/./include/x86_basic_defs.h:65:0: 警告:“CR3_PCID_MASK”重新定义 #定义 CR3_PCID_MASK 0xFFF ^ 在从 ./arch/x86/include/asm/processor.h:4:0 包含的文件中, 来自 ./arch/x86/include/asm/cpufeature.h:4, 来自 ./arch/x86/include/asm/thread_info.h:63, 来自 ./include/linux/thread_info.h:37, 来自./arch/x86/include/asm/preempt.h:6, 来自./include/linux/preempt.h:80, 来自 ./include/linux/spinlock.h:50, 来自 ./include/linux/mmzone.h:7, 来自 ./include/linux/gfp.h:5, 来自 ./include/linux/mm.h:9, 来自 /tmp/modconfig-7G9QrA/vmmon-only/./include/compat_page.h:23, 来自 /tmp/modconfig-7G9QrA/vmmon-only/linux/hostif.c:32: ./arch/x86/include/asm/processor-flags.h:37:0: 注意:这是前一个定义的位置 #定义 CR3_PCID_MASK 0xFFFull ^ /tmp/modconfig-7G9QrA/vmmon-only/linux/driver.c: 在函数“LinuxDriver_Ioctl”中: /tmp/modconfig-7G9QrA/vmmon-only/linux/driver.c:1986:1: 警告:1168 字节的帧大小大于 1024 字节 [-Wframe-larger-than=] } ^ /tmp/modconfig-7G9QrA/vmmon-only/linux/hostif.c: 在函数“HostIFGetUserPages”中: /tmp/modconfig-7G9QrA/vmmon-only/linux/hostif.c:1169:35:警告:传递“get_user_pages_remote”的第 1 个参数会将整数转换为指针,无需强制转换 [-Wint-conversion] retval = get_user_pages_remote((无符号长整型)uvAddr,numPages,0,ppages,NULL); ^ 在从 /tmp/modconfig-7G9QrA/vmmon-only/./include/compat_page.h:23:0 包含的文件中, 来自 /tmp/modconfig-7G9QrA/vmmon-only/linux/hostif.c:32: ./include/linux/mm.h:1339:6:注意:预期为“struct task_struct *”,但参数类型为“long unsigned int” 长 get_user_pages_remote (结构 task_struct *tsk,结构 mm_struct *mm, ^ /tmp/modconfig-7G9QrA/vmmon-only/linux/hostif.c:1169:58: 警告:传递“get_user_pages_remote”的参数 2 会使整数变成指针,无需强制转换 [-Wint-conversion] retval = get_user_pages_remote((无符号长整型)uvAddr,numPages,0,ppages,NULL); ^ 在从 /tmp/modconfig-7G9QrA/vmmon-only/./include/compat_page.h:23:0 包含的文件中, 来自 /tmp/modconfig-7G9QrA/vmmon-only/linux/hostif.c:32: ./include/linux/mm.h:1339:6:注意:预期为“struct mm_struct *”,但参数类型为“unsigned int” 长 get_user_pages_remote (结构 task_struct *tsk,结构 mm_struct *mm, ^ /tmp/modconfig-7G9QrA/vmmon-only/linux/hostif.c:1169:71:警告:传递“get_user_pages_remote”的第 4 个参数,使指针变为整数,无需强制转换 [-Wint-conversion] retval = get_user_pages_remote((无符号长整型)uvAddr,numPages,0,ppages,NULL); ^ 在从 /tmp/modconfig-7G9QrA/vmmon-only/./include/compat_page.h:23:0 包含的文件中, 来自 /tmp/modconfig-7G9QrA/vmmon-only/linux/hostif.c:32: ./include/linux/mm.h:1339:6:注意:预期为“long unsigned int”,但参数类型为“struct page **” 长 get_user_pages_remote (结构 task_struct *tsk,结构 mm_struct *mm, ^ 在从 ./include/uapi/linux/posix_types.h:4:0 包含的文件中, 来自 ./include/uapi/linux/types.h:13, 来自 ./include/linux/types.h:5, 来自 /tmp/modconfig-7G9QrA/vmmon-only/./include/driver-config.h:71, 来自 /tmp/modconfig-7G9QrA/vmmon-only/linux/hostif.c:29: ./include/linux/stddef.h:7:14: 警告:传递“get_user_pages_remote”的第 5 个参数会将指针转换为整数,无需强制转换 [-Wint-conversion] #定义 NULL ((void *)0) ^ /tmp/modconfig-7G9QrA/vmmon-only/linux/hostif.c:1169:79:注意:在宏“NULL”的扩展中 retval = get_user_pages_remote((无符号长整型)uvAddr,numPages,0,ppages,NULL); ^ 在从 /tmp/modconfig-7G9QrA/vmmon-only/./include/compat_page.h:23:0 包含的文件中, 来自 /tmp/modconfig-7G9QrA/vmmon-only/linux/hostif.c:32: ./include/linux/mm.h:1339:6:注意:预期为“unsigned int”,但参数类型为“void *” 长 get_user_pages_remote (结构 task_struct *tsk,结构 mm_struct *mm, ^ /tmp/modconfig-7G9QrA/vmmon-only/linux/hostif.c:1169:13:错误:函数“get_user_pages_remote”的参数太少 retval = get_user_pages_remote((无符号长整型)uvAddr,numPages,0,ppages,NULL); ^ 在从 /tmp/modconfig-7G9QrA/vmmon-only/./include/compat_page.h:23:0 包含的文件中, 来自 /tmp/modconfig-7G9QrA/vmmon-only/linux/hostif.c:32: ./include/linux/mm.h:1339:6: 注意:在此处声明 长 get_user_pages_remote (结构 task_struct *tsk,结构 mm_struct *mm, ^ CC [M] /tmp/modconfig-7G9QrA/vmmon-only/common/apic.o scripts/Makefile.build:308: 目标‘/tmp/modconfig-7G9QrA/vmmon-only/linux/hostif.o’的配方失败 make[2]: *** [/tmp/modconfig-7G9QrA/vmmon-only/linux/hostif.o] 错误 1 make[2]: ** 期望其他终止过程。 Makefile:1550:目标“_module_/tmp/modconfig-7G9QrA/vmmon-only”的配方失败 make[1]: *** [_module_/tmp/modconfig-7G9QrA/vmmon-only] 错误 2 make[1]:离开目录‘/usr/src/linux-headers-4.13.0-26-generic’ Makefile:120:目标“vmmon.ko”的配方失败 make: *** [vmmon.ko] 错误 2 make:离开目录‘/tmp/modconfig-7G9QrA/vmmon-only’ make:进入目录“/tmp/modconfig-7G9QrA/vmnet-only” 使用内核构建系统。 /usr/bin/make -C /lib/modules/4.13.0-26-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/.\ MODULEBUILDDIR= 模块 make[1]: 进入目录 '/usr/src/linux-headers-4.13.0-26-generic' CC [M] /tmp/modconfig-7G9QrA/vmnet-only/driver.o CC [M] /tmp/modconfig-7G9QrA/vmnet-only/hub.o CC [M] /tmp/modconfig-7G9QrA/vmnet-only/userif.o CC [M] /tmp/modconfig-7G9QrA/vmnet-only/netif.o /tmp/modconfig-7G9QrA/vmnet-only/userif.c: 在函数“UserifLockPage”中: /tmp/modconfig-7G9QrA/vmnet-only/userif.c:120:35:警告:传递“get_user_pages_remote”的第 1 个参数会将整数转换为指针,无需强制转换 [-Wint-conversion] retval = get_user_pages_remote(地址, 1, FOLL_WRITE,&page, NULL); ^ 在./include/linux/highmem.h:7:0 包含的文件中, 来自 /tmp/modconfig-7G9QrA/vmnet-only/userif.c:26: ./include/linux/mm.h:1339:6:注意:预期为“struct task_struct *”,但参数类型为“VA {aka long unsigned int}” 长 get_user_pages_remote (结构 task_struct *tsk,结构 mm_struct *mm, ^ /tmp/modconfig-7G9QrA/vmnet-only/userif.c:120:41:警告:传递“get_user_pages_remote”的参数 2 使整数变成指针,无需强制转换 [-Wint-conversion] retval = get_user_pages_remote(地址, 1, FOLL_WRITE,&page, NULL); ^ 在./include/linux/highmem.h:7:0 包含的文件中, 来自 /tmp/modconfig-7G9QrA/vmnet-only/userif.c:26: ./include/linux/mm.h:1339:6:注意:预期为“struct mm_struct *”,但参数为“int”类型 长 get_user_pages_remote (结构 task_struct *tsk,结构 mm_struct *mm, ^ /tmp/modconfig-7G9QrA/vmnet-only/userif.c:120:56:警告:传递“get_user_pages_remote”的第 4 个参数,使指针变为整数,无需强制转换 [-Wint-conversion] retval = get_user_pages_remote(地址, 1, FOLL_WRITE,&page, NULL); ^ 在./include/linux/highmem.h:7:0 包含的文件中, 来自 /tmp/modconfig-7G9QrA/vmnet-only/userif.c:26: ./include/linux/mm.h:1339:6:注意:预期为“long unsigned int”,但参数类型为“struct page **” 长 get_user_pages_remote (结构 task_struct *tsk,结构 mm_struct *mm, ^ 在从 ./include/uapi/linux/posix_types.h:4:0 包含的文件中, 来自 ./include/uapi/linux/types.h:13, 来自 ./include/linux/types.h:5, 来自 /tmp/modconfig-7G9QrA/vmnet-only/driver-config.h:71, 来自 /tmp/modconfig-7G9QrA/vmnet-only/userif.c:19: ./include/linux/stddef.h:7:14: 警告:传递“get_user_pages_remote”的第 5 个参数会将指针转换为整数,无需强制转换 [-Wint-conversion] #定义 NULL ((void *)0) ^ /tmp/modconfig-7G9QrA/vmnet-only/userif.c:120:63: 注意:在宏“NULL”的扩展中 retval = get_user_pages_remote(地址, 1, FOLL_WRITE,&page, NULL); ^ 在./include/linux/highmem.h:7:0 包含的文件中, 来自 /tmp/modconfig-7G9QrA/vmnet-only/userif.c:26: ./include/linux/mm.h:1339:6:注意:预期为“unsigned int”,但参数类型为“void *” 长 get_user_pages_remote (结构 task_struct *tsk,结构 mm_struct *mm, ^ /tmp/modconfig-7G9QrA/vmnet-only/userif.c:120:13:错误:函数“get_user_pages_remote”的参数太少 retval = get_user_pages_remote(地址, 1, FOLL_WRITE,&page, NULL); ^ 在./include/linux/highmem.h:7:0 包含的文件中, 来自 /tmp/modconfig-7G9QrA/vmnet-only/userif.c:26: ./include/linux/mm.h:1339:6: 注意:在此处声明 长 get_user_pages_remote (结构 task_struct *tsk,结构 mm_struct *mm, ^ scripts/Makefile.build:308: 目标‘/tmp/modconfig-7G9QrA/vmnet-only/userif.o’的配方失败 make[2]: *** [/tmp/modconfig-7G9QrA/vmnet-only/userif.o] 错误 1 make[2]: ** 期望其他终止过程。 在从 ./include/linux/pci.h:36:0 包含的文件中, 来自 /tmp/modconfig-7G9QrA/vmnet-only/compat_netdevice.h:27, 来自 /tmp/modconfig-7G9QrA/vmnet-only/netif.c:43: ./include/linux/pci_ids.h:2260:0:警告:“PCI_VENDOR_ID_VMWARE”已重新定义 #定义 PCI_VENDOR_ID_VMWARE 0x15ad ^ 在 /tmp/modconfig-7G9QrA/vmnet-only/net.h:38:0 包含的文件中, 来自 /tmp/modconfig-7G9QrA/vmnet-only/vnetInt.h:26, 来自 /tmp/modconfig-7G9QrA/vmnet-only/netif.c:42: /tmp/modconfig-7G9QrA/vmnet-only/vm_device_version.h:56:0: 注意:这是先前定义的位置 #定义 PCI_VENDOR_ID_VMWARE 0x15AD ^ 在从 ./include/linux/pci.h:36:0 包含的文件中, 来自 /tmp/modconfig-7G9QrA/vmnet-only/compat_netdevice.h:27, 来自 /tmp/modconfig-7G9QrA/vmnet-only/netif.c:43: ./include/linux/pci_ids.h:2261:0:警告:“PCI_DEVICE_ID_VMWARE_VMXNET3”已重新定义 #定义 PCI_DEVICE_ID_VMWARE_VMXNET3 0x07b0 ^ 在 /tmp/modconfig-7G9QrA/vmnet-only/net.h:38:0 包含的文件中, 来自 /tmp/modconfig-7G9QrA/vmnet-only/vnetInt.h:26, 来自 /tmp/modconfig-7G9QrA/vmnet-only/netif.c:42: /tmp/modconfig-7G9QrA/vmnet-only/vm_device_version.h:73:0: 注意:这是先前定义的位置 #定义 PCI_DEVICE_ID_VMWARE_VMXNET3 0x07B0 ^ Makefile:1550:目标“_module_/tmp/modconfig-7G9QrA/vmnet-only”的配方失败 make[1]: *** [_module_/tmp/modconfig-7G9QrA/vmnet-only] 错误 2 make[1]:离开目录‘/usr/src/linux-headers-4.13.0-26-generic’ Makefile:120:目标“vmnet.ko”的配方失败 make:*** [vmnet.ko] 错误 2 make:离开目录‘/tmp/modconfig-7G9QrA/vmnet-only’ 无法安装所有模块。请参阅日志了解详细信息。
如何解决这个问题?
答案1
正如 Linux Mint 所述论坛:
内核 4.13 系列对于 VMware Workstation Player 12 来说太新了,现在有更新版本 VMware Workstation Player 14,但发现一个错误,创建的虚拟机不会出现在主窗口中(仍然可以通过双击相应文件夹中的 .vmx 文件来启动虚拟机)
– 最新版本 2018 年 1 月 9 日 VMware-Player-14.1.1-7528167.x86_64.bundle
我现在已经安装了它并且它可以工作了。
编辑:如果遇到错误:“没有足够的物理内存来启动此虚拟机”
尝试所述这里:
cd /tmp
cp /usr/lib/vmware/modules/source/vmmon.tar .
tar xf vmmon.tar
rm vmmon.tar
wget https://raw.githubusercontent.com/mkubecek/vmware-host-modules/fadedd9c8a4dd23f74da2b448572df95666dfe12/vmmon-only/linux/hostif.c
mv -f hostif.c vmmon-only/linux/hostif.c
tar cf vmmon.tar vmmon-only
rm -fr vmmon-only
sudo mv -f vmmon.tar /usr/lib/vmware/modules/source/vmmon.tar
sudo vmware-modconfig --console --install-all
我希望它有帮助。