在Debian jessie上安装VMware时,模块编译失败,在网上多方搜索,找到了下面的解决方法。原文转自:arch
安装
1.安装依赖包:gtkmm(图形界面依赖),linux-headers(编译内核模块使用)。
2.下载最新的VMware
Workstation。
3.开始安装(如果想在命令行TUI代替GUI可以添加 --consola
选项)
$ chmod +x VMware-edition-version.release.architecture.bundle
# ./VMware-edition-version.release.architecture.bundle --consoleTips:如果希望忽略中间的错误提示信息可以加
-I / --ignore-errors
Note:安装的时候,可能会看到错误提示
"No rc*.d style init script directories"
,如果你所使用的发行版使用的是systemd,可以忽略它。Tips:想在命令行中编译内核模块可以使用:
# vmware-modconfig --console --install-all
配置
Tips:补丁均已上传到github,下面命令不能使用的可以自己去github下载。
给VMware模块打补丁并安装
VMware Workstation 10.0.1和Player (Plus) 6.0.1已经支持3.12以及以下的内核了
3.13内核
Network packet
filtering framework (Netfilter)会导致vmnet
模块在3.13内核上编译失败
下载补丁:
$ curl http://pastie.org/pastes/8989390/download -o /tmp/vmnet.patch
解压模块源代码:
$ cd /usr/lib/vmware/modules/source
# tar -xf vmnet.tar
打补丁:
# patch -p0 -i /tmp/vmnet.patch
将源代码重新打包:
# tar -cf vmnet.tar vmnet-only
删掉剩余的文件:
# rm -r vmnet-only
重新编译内核:
# vmware-modconfig --console --install-all
3.14内核
在3.14版内核,vmblock
,vmci
和vsock
模块都会编译失败。
下载补丁文件:
$ curl http://pastie.org/pastes/8997055/download -o /tmp/vmware-3.14.patch
解压模块源代码:
$ cd /usr/lib/vmware/modules/source
# for i in *.tar; do tar -xf $i; done
打补丁:
# patch -p0 -i /tmp/vmware-3.14.patch
将打好补丁的源码重新打包:
# for i in *-only; do tar -cf ${i/-only}.tar $i; done
删掉无用的文件:
# rm -r *-only
重新编译模块:
# vmware-modconfig --console --install-all
Note:
Tar
不支持同时多个操作,所以这里使用for
循环
Systemd服务
4.(可选操作)如果不想使用 # /etc/init.d/vmware
{start|stop|status|restart}
来管理VM服务,你可以新建一个.service
文件:
/etc/systemd/system/vmware.service
[Unit]
Description=VMware daemon[Service]
ExecStart=/etc/init.d/vmware start
ExecStop=/etc/init.d/vmware stop
PIDFile=/var/lock/subsys/vmware
TimeoutSec=0
RemainAfterExit=yes[Install]
WantedBy=multi-user.target
然后你就可以在开机之后来启动它:
# systemctl enable vmware
运行程序
打开VMware Workstation:
$ vmware
或者打开VMware Player (Plus):
$ vmplayer
提示和技巧
输入Workstation的许可证
在终端中
# /usr/lib/vmware/bin/vmware-vmx-debug --new-sn
5F29M-48312-8ZDF9-A8A5K-2AM0Z
Note:
-debug
程序提示用户输入不正确的许可证
在GUI中如果上面的命令不能正常使用,你可以试试下面的:
# /usr/lib/vmware/bin/vmware-enter-serial