解决linux kernerl3.13 安装vmware10 vnet错误
2016-05-23 12:14
459 查看
查找相关资料发现原因在于升级到ubuntu 14.04之后现在的Linux内核版本是3.13,这个内核版本修改了一些底层函数,而VMWare的相关源码包还没有来得及修改相关代码。由于是内核版本的问题,所以同样的问题也大量出现在Fedora等系统上。
因此同样的问题可以继续存在于3.14, 3.15等后续版本中。
解决方法为修改vmnet模块的源码包中的两处代码。
1,获取root权限,进入相关目录:
2,解压vmnet源码包(得到vmnet-only文件夹):
3,备份原来的文件:
4,修改源文件filter.c:
4.1,修改206行的:VNetFilterHookFn(const unsigned int hooknum // IN:
为:VNetFilterHookFn(const struct nf_hook_ops *ops, // IN:
4.2,修改255行的: transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
为: transmit = (ops->hooknum == VMW_NF_INET_POST_ROUTING);
5,打包修改过的文件,删除无用的文件
6,重新编译内核模块,启动vmware
可以直接点击vmware workstation的图标,启动自动检测和编译过程;也可以通过命令:
因此同样的问题可以继续存在于3.14, 3.15等后续版本中。
解决方法为修改vmnet模块的源码包中的两处代码。
1,获取root权限,进入相关目录:
su - root
cd /usr/lib/vmware/modules/source
2,解压vmnet源码包(得到vmnet-only文件夹):
tar -xf vmnet.tar
3,备份原来的文件:
mv vmnet.tar vmnet.tar.bak
4,修改源文件filter.c:
4.1,修改206行的:VNetFilterHookFn(const unsigned int hooknum // IN:
为:VNetFilterHookFn(const struct nf_hook_ops *ops, // IN:
4.2,修改255行的: transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
为: transmit = (ops->hooknum == VMW_NF_INET_POST_ROUTING);
5,打包修改过的文件,删除无用的文件
tar -uf vmnet.tar vmnet-only rm -rf vmnet-only
6,重新编译内核模块,启动vmware
可以直接点击vmware workstation的图标,启动自动检测和编译过程;也可以通过命令:
vmware-modconfig --console --install-all
相关文章推荐
- 【NetCore入门】centos7.x下搭建netcore环境和helloworld的demo
- Linux内核升级
- linux中java调用matlab环境安装
- 红帽64位下修改mysql 5.1密码
- Centos7.0环境部署文档
- linux 获得当前进程对应的可执行文件的绝对路径
- linux基础(23)--LVM快照--RHEL6.5
- Linux查看日志相关的命令
- linux 解压"thunderbird-45.1.0.tar.bz2"格式的命令
- CentOS设置程序开机自启动的方法
- Linux的进程优先级
- LinuxC/C++编程(1)—文件操作
- Linux环境内存泄漏工具vargrind
- CentOS修改主机名(hostname)
- 使用 SystemBack 备份/还原你的 Ubuntu/Linux Mint
- linux c++ 同步、异步简单实例
- linux基础(22)--LVM逻辑卷管理--RJEL6.5
- nc linux服务器常用命令
- Linux基础----vi操作
- linux:SUID、SGID详解