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 ...
随机推荐
- no for & 100 Array & Uint8Array & Typed Arrays
no for & 100 Array http://hiluluke.cn/ bad function generate100Array() { var arr = new Array(100 ...
- 第六篇:python基础_6 内置函数与常用模块(一)
本篇内容 内置函数 匿名函数 re模块 time模块 random模块 os模块 sys模块 json与pickle模块 shelve模块 一. 内置函数 1.定义 内置函数又被称为工厂函数. 2.常 ...
- AGC 26 D Histogram Coloring
题目 将柱子的高度离散化$\DeclareMathOperator{\dp}{dp}$ 设第 $i$ 根柱子实际高度是 $h_i$,离散化之后的高度是 $g_i$:第 $i$ 高的高度是 $H_i$, ...
- HashMap实现原理及源码分析(jdk1.8)
HashMap底层由数组+链表+红黑树组成,可接受null值,非线程安全 1.基本属性 transient Node<K,V>[] table; //hashmap数组 static fi ...
- element el-cascader设置默认值
原文:https://www.jianshu.com/p/b690d7fe6ec0 注意两点就行了 <el-form-item label="AP名称"> <el ...
- 分配问题(cogs 740)
«问题描述: 有n件工作要分配给n个人做.第i 个人做第j 件工作产生的效益为c[i][j] .试设计一个将n件工作分配给n个人做的分配方案,使产生的总效益最大. «编程任务: 对于给定的n件工作和 ...
- ubuntu 配置虚拟主机
ubuntu下Apache虚拟主机的配置 启用站点停用站点方法 a2ensite/a2dissite 比如添加一个ecshop 的虚拟机 首先到/etc/apache2/site-availa ...
- python commands 模块
commands 模块 通过python调用系统命令 只适用于linux commands是提供linux系统环境下支持使用shell命令的一个模块 commands.getoutput(cmd) 只 ...
- hdu 3657 最小割的活用 / 奇偶方格取数类经典题 /最小割
题意:方格取数,如果取了相邻的数,那么要付出一定代价.(代价为2*(X&Y))(开始用费用流,敲升级版3820,跪...) 建图: 对于相邻问题,经典方法:奇偶建立二分图.对于相邻两点连边2 ...
- Android 设置图片倒影效果
首先,贴出效果图: 1.布局文件main.xml <?xml version="1.0" encoding="utf-8"?> <Linear ...