VMware Workstation tools在新Linux内核(3.19)无法运行的修改方法

有些结构定义发生了变化,导致vmnet无法编译,我们只能手动修改一下源代码并期待官方新版。

参考文章:
https://communities.vmware.com/message/2469395

1、解压vmnet源代码
cd /usr/lib/vmware/modules/source
tar xvf vmnet.tar
解压之后目录名为:vmnet-only
不能忘记备份:cp vmnet.tar vmnet.tar.bak

2、修改userif.c,找到VNetCopyDatagram函数,改为:

#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
   return skb_copy_datagram_iovec(skb, 0, &iov, len);
#else
   struct iov_iter to;
   iov_iter_init(&to, READ, &iov, 1, len);
   return skb_copy_datagram_iter(skb, 0, &to, len);
#endif



3、修改driver.c,原来的1194和1195行改为:
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
   if (filp && filp->f_dentry) {
      inode = filp->f_dentry->d_inode;
   }
#else 
   if (filp && filp->f_path.dentry) {
      inode = filp->f_path.dentry->d_inode;
   }
#endif



4、打包并再次运行VMware Workstation
tar cv vmnet.tar vmnet-only

也可以直接下载补丁文件:
http://forums.fedoraforum.org/showthread.php?t=303726

你可能感兴趣的:(VMware Workstation tools在新Linux内核(3.19)无法运行的修改方法)