Archlinux 下的 VMWare Workstation 维护笔记
印象中 Archlinux 下的 VMWare Workstation 总是出问题, 因此写这个帖子, 记录出问题时间/原因/解决方案.
PS: 每次更新内核后可能需要重新编译 vmware 的内核模块, 并且可能会影响到 openconnect(VPN) 的使用, 因此只有在重启电脑前才更新内核, 其他情况下只更新应用程序:
yaourt -Syua --ignore linux* --noconfirm
2017-02-26
内核由 linux-lts(4.4) 切换 linux(4.9), 导致编译 vmware 内核模块 vmnet 出错:
$ sudo vmware
Stopping VMware services:
VMware Authentication Daemon done
VM communication interface socket family done
Virtual machine communication interface done
Virtual machine monitor done
Blocking file system done
make: 进入目录“/tmp/modconfig-8XIMI8/vmmon-only”
Using kernel build system.
/sbin/make -C /lib/modules/4.9.11-1-ARCH/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
MODULEBUILDDIR= modules
make[1]: 进入目录“/usr/lib/modules/4.9.11-1-ARCH/build”
CC [M] /tmp/modconfig-8XIMI8/vmmon-only/linux/driver.o
CC [M] /tmp/modconfig-8XIMI8/vmmon-only/linux/hostif.o
CC [M] /tmp/modconfig-8XIMI8/vmmon-only/linux/driverLog.o
CC [M] /tmp/modconfig-8XIMI8/vmmon-only/common/memtrack.o
CC [M] /tmp/modconfig-8XIMI8/vmmon-only/common/apic.o
CC [M] /tmp/modconfig-8XIMI8/vmmon-only/common/vmx86.o
CC [M] /tmp/modconfig-8XIMI8/vmmon-only/common/cpuid.o
/tmp/modconfig-8XIMI8/vmmon-only/linux/hostif.c: 在函数‘HostIFGetUserPages’中:
/tmp/modconfig-8XIMI8/vmmon-only/linux/hostif.c:1166:67: 错误:传递‘get_user_pages’的第 5 个参数时在不兼容的指针类型间转换 [-Werror=incompatible-pointer-types]
retval = get_user_pages((unsigned long)uvAddr, numPages, 0, 0, ppages, NULL);
^~~~~~
In file included from /tmp/modconfig-8XIMI8/vmmon-only/./include/compat_page.h:23:0,
from /tmp/modconfig-8XIMI8/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-8XIMI8/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-8XIMI8/vmmon-only/./include/compat_page.h:23:0,
from /tmp/modconfig-8XIMI8/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-8XIMI8/vmmon-only/linux/driver.c:1283:1: 警告:always_inline function might not be inlinable [-Wattributes]
LinuxDriverSyncReadTSCs(uint64 *delta) // OUT: TSC max - TSC min
^~~~~~~~~~~~~~~~~~~~~~~
cc1:有些警告被当作是错误
make[2]: *** [scripts/Makefile.build:293:/tmp/modconfig-8XIMI8/vmmon-only/linux/hostif.o] 错误 1
make[2]: *** 正在等待未完成的任务....
make[1]: *** [Makefile:1490:_module_/tmp/modconfig-8XIMI8/vmmon-only] 错误 2
make[1]: 离开目录“/usr/lib/modules/4.9.11-1-ARCH/build”
make: *** [Makefile:120:vmmon.ko] 错误 2
make: 离开目录“/tmp/modconfig-8XIMI8/vmmon-only”
...
解决方案:
#!/bin/sh
cd /usr/lib/vmware/modules/source
tar xf vmmon.tar
mv vmmon.tar vmmon.old.tar
sed -r -i -e 's/KERNEL_VERSION\(4, 6, 0\)/KERNEL_VERSION\(4, 9, 0\)/g' vmmon-only/linux/hostif.c
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
tar cf vmmon.tar vmmon-only
rm -r vmmon-only
tar xf vmnet.tar
mv vmnet.tar vmnet.old.tar
sed -r -i -e 's/KERNEL_VERSION\(4, 6, 0\)/KERNEL_VERSION\(4, 9, 0\)/g' vmnet-only/userif.c
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
tar cf vmnet.tar vmnet-only
rm -r vmnet-only
Archlinux 下的 VMWare Workstation 维护笔记的更多相关文章
- Ubuntu 14.04/14.10下安装VMware Workstation 11图文教程
VMware workstation 是一个可以进行桌面操作的虚拟软件.它可以让我们在一台电脑或者虚拟机中运行多个虚拟机. 由VMware公司研发和维护.由于是商业软件,我们需要买他们家的许可证或者说 ...
- [转] Ubuntu 14.04/14.10下安装VMware Workstation 11图文教程
点击这里查看原文 译者:GuiltyMan 本文由 Linux公社翻译组 原创翻译 Linux公社 诚意奉献 更多请访问此处博客网站 VMware workstation 是一个可以进行桌面操作的虚 ...
- windows 下使用VMware Workstation Pro 工具,ubuntu创建虚拟机
本文记录windows 下使用VMware Workstation Pro 工具,ubuntu创建虚拟机 的步骤 第一步 [文件] --- [新建虚拟机] 第二步 弹出的新建虚拟机向导对话框 标准 ...
- win8.1下使用vmware workstation 来编译ffmpeg
先吐槽下,T440预装的win8.1 采用 UEFI+GPT分区导致 无法使用传统的EasyBCD来达到win+ubuntu双系统效果, 尝试了2天全部失败,等以后有时间了 买块U盘再干掉win8 现 ...
- linux主机下的Vmware Workstation配置NAT设置 端口映射-Ubuntu为例
最近折腾虚拟机,由于是在linux下进行的,而相关资料比较少,所以遇到了一些问题. 一个就是配置vmware workstation的NAT设置.因为一般来说,NAT可以共享主机的ip,从而能以主机身 ...
- 【转】Windows 7下用VMware Workstation 10虚拟机安装 Ubuntu 14.04
一.软件下载 1.VMware Workstation v10.0.1虚拟机官方简体中文版下载(附永久KEY注册密钥) http://www.linuxidc.com/Linux/2012-11/73 ...
- windows 10 下安装VMware Workstation Pro 15.0(亲测可用!)
参考链接:https://blog.csdn.net/qq_39016934/article/details/90285915 VMware Workstation Pro 15.0的下载官网:htt ...
- VMware Workstation 学习笔记
1. 什么是虚拟机:虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的.可以运行在一个完全隔离环境中的完整计算机系统. 2. 虚拟机的用途:测试软件.搭建某种特定需求的环境 ...
- 解决Ubuntu系统下的VMware Workstation无法打开虚拟网络编辑器界面的问题
本文由荒原之梦原创,原文链接:http://zhaokaifeng.com/?p=630 操作环境: Ubuntu 17 VMware 14 pro for Linux 问题描述: 我在Ubuntu ...
随机推荐
- 发行说明 - Kafka - 版本1.0.0
发行说明 - Kafka - 版本1.0.0 以下是Kafka 1.0.0发行版中解决的JIRA问题的摘要.有关该版本的完整文档,入门指南以及有关该项目的信息,请参阅Kafka项目网站. 有关升级的注 ...
- Linux下调试段错误 (gdb,core,ulimit)
Linux环境下经常遇到某个进程挂掉而找不到原因,我们可以通过生成core file文件加上gdb来定位. (1)首先 在makefile中要增加编译调试选项 -g,才可以利用下面的gdb来调试 gc ...
- springboot 2.0配置集成thymeleaf的坑
Servlet.service() for servlet [dispatcherServlet] in context with path [] java.lang.NoClassDefFoundE ...
- MFC 对话框阴影效果
在 OnInitDialog(Cdialog)里面添加 SetClassLong(this->m_hWnd, GCL_STYLE, GetClassLong(this->m_hWnd, G ...
- mysql 各种级联查询后更新(update select).
mysql 各种级联查询后更新(update select). CREATE TABLE `tb1` ( `id` int(11) NOT NULL, `A` varchar(100) de ...
- ofbiz数据库表结构设计(1)- PARTY
ofbiz的精华就在于其数据结构(表结构)的设计.数据结构的通用性也决定了ofbiz几乎可以适用任何企业应用.我们首先来看看PARTY相关的表结构设计. 在ofbiz中,PARTY是个抽象概念,它可以 ...
- Entity Framework context per request
原文发布时间为:2011-09-24 -- 来源于本人的百度文章 [由搬家工具导入] http://www.blog.cyberkinetx.com/2011/05/15/entity-framewo ...
- Push pull, open drain circuit, pull up, pull down resistor
Push pull 就以下面這個 電路來說, 因為沒有 pull up resistor, 所以 output voltage 由 low 往 high 的速度會較快. 有兩個電晶體,一個on,一個 ...
- 移动GIS技术在城市信息采集中的应用
1 引言 随着移动平板电脑和手机(以下简称移动终端)在软硬件上的更新换代,和3G.4G通讯网络的升级,传统测绘和和数据服务方式正在发生巨大变化.以城市中的外业踏勘和信息采集为例,移动终端正成为主要的外 ...
- 涂色问题(Python)
题目:将一个圆形等分成N个小扇形,将这些扇形标记为1,2,3,-,N.现在使用M种颜色对每个扇形进行涂色,每个扇形涂一种颜色,且相邻的扇形颜色不同,问有多少种不同的涂法?(N≥1,M≥3) 参考:ht ...