印象中 Archlinux 下的 VMWare Workstation 总是出问题, 因此写这个帖子, 记录出问题时间/原因/解决方案.

PS: 每次更新内核后可能需要重新编译 vmware 的内核模块, 并且可能会影响到 openconnect(VPN) 的使用, 因此只有在重启电脑前才更新内核, 其他情况下只更新应用程序:

  1. yaourt -Syua --ignore linux* --noconfirm

2017-02-26

内核由 linux-lts(4.4) 切换 linux(4.9), 导致编译 vmware 内核模块 vmnet 出错:

  1. $ sudo vmware
  2. Stopping VMware services:
  3. VMware Authentication Daemon done
  4. VM communication interface socket family done
  5. Virtual machine communication interface done
  6. Virtual machine monitor done
  7. Blocking file system done
  8. make: 进入目录“/tmp/modconfig-8XIMI8/vmmon-only
  9. Using kernel build system.
  10. /sbin/make -C /lib/modules/4.9.11-1-ARCH/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
  11. MODULEBUILDDIR= modules
  12. make[1]: 进入目录“/usr/lib/modules/4.9.11-1-ARCH/build
  13. CC [M] /tmp/modconfig-8XIMI8/vmmon-only/linux/driver.o
  14. CC [M] /tmp/modconfig-8XIMI8/vmmon-only/linux/hostif.o
  15. CC [M] /tmp/modconfig-8XIMI8/vmmon-only/linux/driverLog.o
  16. CC [M] /tmp/modconfig-8XIMI8/vmmon-only/common/memtrack.o
  17. CC [M] /tmp/modconfig-8XIMI8/vmmon-only/common/apic.o
  18. CC [M] /tmp/modconfig-8XIMI8/vmmon-only/common/vmx86.o
  19. CC [M] /tmp/modconfig-8XIMI8/vmmon-only/common/cpuid.o
  20. /tmp/modconfig-8XIMI8/vmmon-only/linux/hostif.c: 在函数‘HostIFGetUserPages’中:
  21. /tmp/modconfig-8XIMI8/vmmon-only/linux/hostif.c:1166:67: 错误:传递‘get_user_pages’的第 5 个参数时在不兼容的指针类型间转换 [-Werror=incompatible-pointer-types]
  22. retval = get_user_pages((unsigned long)uvAddr, numPages, 0, 0, ppages, NULL);
  23. ^~~~~~
  24. In file included from /tmp/modconfig-8XIMI8/vmmon-only/./include/compat_page.h:23:0,
  25. from /tmp/modconfig-8XIMI8/vmmon-only/linux/hostif.c:32:
  26. ./include/linux/mm.h:1280:6: 附注:需要类型‘struct vm_area_struct **’,但实参的类型为‘struct page **’
  27. long get_user_pages(unsigned long start, unsigned long nr_pages,
  28. ^~~~~~~~~~~~~~
  29. /tmp/modconfig-8XIMI8/vmmon-only/linux/hostif.c:1166:13: 错误:提供给函数‘get_user_pages’的实参太多
  30. retval = get_user_pages((unsigned long)uvAddr, numPages, 0, 0, ppages, NULL);
  31. ^~~~~~~~~~~~~~
  32. In file included from /tmp/modconfig-8XIMI8/vmmon-only/./include/compat_page.h:23:0,
  33. from /tmp/modconfig-8XIMI8/vmmon-only/linux/hostif.c:32:
  34. ./include/linux/mm.h:1280:6: 附注:在此声明
  35. long get_user_pages(unsigned long start, unsigned long nr_pages,
  36. ^~~~~~~~~~~~~~
  37. /tmp/modconfig-8XIMI8/vmmon-only/linux/driver.c:1283:1: 警告:always_inline function might not be inlinable [-Wattributes]
  38. LinuxDriverSyncReadTSCs(uint64 *delta) // OUT: TSC max - TSC min
  39. ^~~~~~~~~~~~~~~~~~~~~~~
  40. cc1:有些警告被当作是错误
  41. make[2]: *** [scripts/Makefile.build:293:/tmp/modconfig-8XIMI8/vmmon-only/linux/hostif.o] 错误 1
  42. make[2]: *** 正在等待未完成的任务....
  43. make[1]: *** [Makefile:1490_module_/tmp/modconfig-8XIMI8/vmmon-only] 错误 2
  44. make[1]: 离开目录“/usr/lib/modules/4.9.11-1-ARCH/build
  45. make: *** [Makefile:120vmmon.ko] 错误 2
  46. make: 离开目录“/tmp/modconfig-8XIMI8/vmmon-only
  47. ...

解决方案:

  1. #!/bin/sh
  2. cd /usr/lib/vmware/modules/source
  3. tar xf vmmon.tar
  4. mv vmmon.tar vmmon.old.tar
  5. sed -r -i -e 's/KERNEL_VERSION\(4, 6, 0\)/KERNEL_VERSION\(4, 9, 0\)/g' vmmon-only/linux/hostif.c
  6. sed -r -i -e 's/retval = get_user_pages\(\(unsigned long\)uvAddr, numPages, 0, 0, ppages, NULL\);/retval = get_user_pages\(\(unsigned long\)uvAddr, numPages, 0, ppages, NULL\);/g' vmmon-only/linux/hostif.c
  7. tar cf vmmon.tar vmmon-only
  8. rm -r vmmon-only
  9. tar xf vmnet.tar
  10. mv vmnet.tar vmnet.old.tar
  11. sed -r -i -e 's/KERNEL_VERSION\(4, 6, 0\)/KERNEL_VERSION\(4, 9, 0\)/g' vmnet-only/userif.c
  12. sed -r -i -e 's/retval = get_user_pages\(addr, 1, 1, 0, \&page, NULL\);/retval = get_user_pages\(addr, 1, 0, \&page, NULL\);/g' vmnet-only/userif.c
  13. tar cf vmnet.tar vmnet-only
  14. rm -r vmnet-only

Archlinux 下的 VMWare Workstation 维护笔记的更多相关文章

  1. Ubuntu 14.04/14.10下安装VMware Workstation 11图文教程

    VMware workstation 是一个可以进行桌面操作的虚拟软件.它可以让我们在一台电脑或者虚拟机中运行多个虚拟机. 由VMware公司研发和维护.由于是商业软件,我们需要买他们家的许可证或者说 ...

  2. [转] Ubuntu 14.04/14.10下安装VMware Workstation 11图文教程

    点击这里查看原文 译者:GuiltyMan 本文由 Linux公社翻译组 原创翻译  Linux公社 诚意奉献 更多请访问此处博客网站 VMware workstation 是一个可以进行桌面操作的虚 ...

  3. windows 下使用VMware Workstation Pro 工具,ubuntu创建虚拟机

    本文记录windows 下使用VMware Workstation Pro 工具,ubuntu创建虚拟机 的步骤 第一步 [文件] --- [新建虚拟机]   第二步 弹出的新建虚拟机向导对话框 标准 ...

  4. win8.1下使用vmware workstation 来编译ffmpeg

    先吐槽下,T440预装的win8.1 采用 UEFI+GPT分区导致 无法使用传统的EasyBCD来达到win+ubuntu双系统效果, 尝试了2天全部失败,等以后有时间了 买块U盘再干掉win8 现 ...

  5. linux主机下的Vmware Workstation配置NAT设置 端口映射-Ubuntu为例

    最近折腾虚拟机,由于是在linux下进行的,而相关资料比较少,所以遇到了一些问题. 一个就是配置vmware workstation的NAT设置.因为一般来说,NAT可以共享主机的ip,从而能以主机身 ...

  6. 【转】Windows 7下用VMware Workstation 10虚拟机安装 Ubuntu 14.04

    一.软件下载 1.VMware Workstation v10.0.1虚拟机官方简体中文版下载(附永久KEY注册密钥) http://www.linuxidc.com/Linux/2012-11/73 ...

  7. windows 10 下安装VMware Workstation Pro 15.0(亲测可用!)

    参考链接:https://blog.csdn.net/qq_39016934/article/details/90285915 VMware Workstation Pro 15.0的下载官网:htt ...

  8. VMware Workstation 学习笔记

    1. 什么是虚拟机:虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的.可以运行在一个完全隔离环境中的完整计算机系统. 2. 虚拟机的用途:测试软件.搭建某种特定需求的环境 ...

  9. 解决Ubuntu系统下的VMware Workstation无法打开虚拟网络编辑器界面的问题

    本文由荒原之梦原创,原文链接:http://zhaokaifeng.com/?p=630 操作环境: Ubuntu 17 VMware 14 pro for Linux 问题描述: 我在Ubuntu ...

随机推荐

  1. WF 18 A 想法

    UPD:我理解错题意了. 考虑在时刻 $t$ 从站点 $u$ 出发的公交车,将这些车的集合记做 $B(u,t)$,$B(u,t)$ 是个随机变量. 令 $\mathrm{Pr}_{B(u,t)} = ...

  2. 实例对比 Julia, R, Python,谁是狼语言?

    对于一个平台来说,使用者对技术本身是不敏感的,所以我们需要增加一些限制来减少集群的一些不可控情况,例如不断的写入新表/新数据却不记得删除,大量不按规范创建的表名等情况.与此同时应尽量让技术对用户透明, ...

  3. Python 安装MySQLdb模块遇到报错及解决方案:_mysql.c(42) : fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory

    一.问题 系统:win7 64位 在下载MySQL-python-1.2.5.zip,使用python setup.py install 安装时,出现以下报错: _mysql.c(42) : fata ...

  4. 【HDOJ5510】Bazinga(KMP)

    题意:给定n个由小写字母组成的字符串,第i个字符串为a[i],求最大的j满足存在1<=i<j,a[i]不是a[j]的子串,无解输出-1 T<=50,n<=500,len[i]& ...

  5. C#中Hashtable的用法 转

    原文发布时间为:2009-04-14 -- 来源于本人的百度文章 [由搬家工具导入] 一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Coll ...

  6. 为了兼容性问题,本人一律淘汰不兼容如下三种浏览器的js

    原文发布时间为:2009-04-16 -- 来源于本人的百度文章 [由搬家工具导入] JavaScript: 不兼容 IE    FF火狐   Google 一律不作收藏了。。。。 最好还能兼容 Op ...

  7. Jobedin外企招聘网:6个要点不能不知道(转载)

    又到一年跳槽季,无数职场人士都在蠢蠢欲动,在工作之余,寻找更好的工作. Jobedin外企招聘网,特别提醒:年末跳槽,一定要在拿到新公司的Offer后,才能向现公司提出辞职.不然新工作没找到,却可能丢 ...

  8. Windows消息钩取

    @author: dlive @date: 2016/12/19 0x01 SetWindowsHookEx() HHOOK SetWindowsHookEx( int idHook, //hook ...

  9. Spring Boot学习——统一异常处理

    本随笔记录使用Spring Boot统一处理异常. 本文实例是从数据库中根据ID查询学生信息,要求学生的年龄在14——20岁之间.小于14岁,提示“你可能在上初中”:大于20岁,提示“呢可能在上大学” ...

  10. Python 复习-1

    #!/usr/bin/env python # -*- coding:utf-8 -*- # @Time : 2017/10/27 22:46 # @Author : lijunjiang # @Fi ...