内核更新,vmware-player又编译出错了。

就是vmnet这个家伙,正式的要等vmware-player更新了。

和以前一样使用patch。

$ curl http://pastie.org/pastes/9934018/download -o /tmp/vmnet-3.19.patch
但,这常常是不可以的。

可以从AUR下载最新的vmware-patch。

我就手动了,直接下载tar.gz文件,取其中的vmnet-11.1.0-3.19.patch,放在 ~/Downloads下,这里只需要这个,手动补丁也便于下次有更新不及时可以自己修改解决。

patch内容为:

diff -ur vmnet-only.a/driver.c vmnet-only/driver.c
--- vmnet-only.a/driver.c	2014-11-20 20:13:56.000000000 -0500
+++ vmnet-only/driver.c	2015-02-09 15:40:10.916640592 -0500
@@ -265,10 +265,17 @@
 {
    int ret = -ENOTTY;
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
    if (filp && filp->f_op && filp->f_op->ioctl == VNetFileOpIoctl) {
       ret = VNetFileOpIoctl(filp->f_dentry->d_inode, filp, iocmd, ioarg);
    }
    return ret;
+#else 
+   if (filp && filp->f_op && filp->f_op->ioctl == VNetFileOpIoctl) {
+      ret = VNetFileOpIoctl(filp->f_path.dentry->d_inode, filp, iocmd, ioarg);
+   }
+   return ret;
+#endif
 }
 
 
@@ -1191,11 +1198,19 @@
    struct inode *inode = NULL;
    long err;
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
    if (filp && filp->f_dentry) {
       inode = filp->f_dentry->d_inode;
    }
    err = VNetFileOpIoctl(inode, filp, iocmd, ioarg);
    return err;
+#else 
+   if (filp && filp->f_path.dentry) {
+      inode = filp->f_path.dentry->d_inode;
+   }
+   err = VNetFileOpIoctl(inode, filp, iocmd, ioarg);
+   return err;
+#endif
 }
 #endif
 
diff -ur vmnet-only.a/userif.c vmnet-only/userif.c
--- vmnet-only.a/userif.c	2014-11-20 20:13:56.000000000 -0500
+++ vmnet-only/userif.c	2015-02-09 15:41:02.150847338 -0500
@@ -523,7 +523,13 @@
       .iov_base = buf,
       .iov_len  = len,
    };
+#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
 }

解压vmnet源代码:

$ cd /usr/lib/vmware/modules/source
# tar -xf vmnet.tar

应用补丁:

# patch -p0 -i ~/Downloads/vmnet-3.19.patch

重新压缩:

# tar -cf vmnet.tar vmnet-only

删除源代码:

# rm -r *-only

重新编译模块

# vmware-modconfig --console --install-all


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值