Ubuntu 16.04 VMware 12.5 无法启动(编译失败)

Ubuntu 16.04 VMware 12.5 无法启动(编译失败)

我的系统内核:

:~$ 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

我希望它有帮助。

相关内容