open-vm-tools-kernel
This commit is contained in:
parent
65630b8159
commit
f628546d1e
|
@ -0,0 +1,74 @@
|
||||||
|
From 08836a47c56b47b658025e41a20027c5d915f836 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Scott M. Kroll" <skroll@gmail.com>
|
||||||
|
Date: Fri, 15 Aug 2014 10:40:38 -0400
|
||||||
|
Subject: [PATCH 1/3] Fix vmxnet module on kernels >= 3.16
|
||||||
|
|
||||||
|
* Add compat check for ethtool_ops in net_device struct.
|
||||||
|
* SET_ETHTOOL_OPS is no longer defined, but can be manually.
|
||||||
|
---
|
||||||
|
open-vm-tools/modules/linux/shared/compat_netdevice.h | 4 ++++
|
||||||
|
open-vm-tools/modules/linux/vmxnet/vmxnet.c | 13 ++++++++-----
|
||||||
|
2 files changed, 12 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/open-vm-tools/modules/linux/shared/compat_netdevice.h b/open-vm-tools/modules/linux/shared/compat_netdevice.h
|
||||||
|
index 3aec25b..a65d59b 100644
|
||||||
|
--- a/open-vm-tools/modules/linux/shared/compat_netdevice.h
|
||||||
|
+++ b/open-vm-tools/modules/linux/shared/compat_netdevice.h
|
||||||
|
@@ -337,4 +337,8 @@ typedef netdev_features_t compat_netdev_features_t;
|
||||||
|
typedef u32 compat_netdev_features_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 0) || defined(SET_ETHTOOL_OPS)
|
||||||
|
+#define VMW_HAVE_ETHTOOL_OPS 1
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
#endif /* __COMPAT_NETDEVICE_H__ */
|
||||||
|
diff --git a/open-vm-tools/modules/linux/vmxnet/vmxnet.c b/open-vm-tools/modules/linux/vmxnet/vmxnet.c
|
||||||
|
index 33afb9b..40abde5 100644
|
||||||
|
--- a/open-vm-tools/modules/linux/vmxnet/vmxnet.c
|
||||||
|
+++ b/open-vm-tools/modules/linux/vmxnet/vmxnet.c
|
||||||
|
@@ -279,8 +279,7 @@ vmxnet_change_mtu(struct net_device *dev, int new_mtu)
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-
|
||||||
|
-#ifdef SET_ETHTOOL_OPS
|
||||||
|
+#ifdef VMW_HAVE_ETHTOOL_OPS
|
||||||
|
/*
|
||||||
|
*----------------------------------------------------------------------------
|
||||||
|
*
|
||||||
|
@@ -526,7 +525,7 @@ vmxnet_ethtool_ops = {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
-#else /* !defined(SET_ETHTOOL_OPS) */
|
||||||
|
+#else /* !defined(VMW_HAVE_ETHTOOL_OPS) */
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
@@ -739,7 +738,7 @@ vmxnet_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
|
||||||
|
}
|
||||||
|
return -EOPNOTSUPP;
|
||||||
|
}
|
||||||
|
-#endif /* SET_ETHTOOL_OPS */
|
||||||
|
+#endif /* !defined(VMW_HAVE_ETHTOOL_OPS) */
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
@@ -1142,8 +1141,12 @@ vmxnet_probe_device(struct pci_dev *pdev, // IN: vmxnet PCI device
|
||||||
|
dev->watchdog_timeo = VMXNET_WATCHDOG_TIMEOUT;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#ifdef SET_ETHTOOL_OPS
|
||||||
|
+#ifdef VMW_HAVE_ETHTOOL_OPS
|
||||||
|
+# ifdef SET_ETHTOOL_OPS
|
||||||
|
SET_ETHTOOL_OPS(dev, &vmxnet_ethtool_ops);
|
||||||
|
+# else
|
||||||
|
+ dev->ethtool_ops = &vmxnet_ethtool_ops;
|
||||||
|
+# endif
|
||||||
|
#else
|
||||||
|
dev->do_ioctl = vmxnet_ioctl;
|
||||||
|
#endif
|
||||||
|
--
|
||||||
|
2.3.4
|
||||||
|
|
|
@ -0,0 +1,86 @@
|
||||||
|
From 122f184d946a007a7ba3ae68386a20f33ed62e1e Mon Sep 17 00:00:00 2001
|
||||||
|
From: lotan <lotan@gmx.de>
|
||||||
|
Date: Mon, 8 Jun 2015 14:20:06 +0200
|
||||||
|
Subject: [PATCH] Support backing dev info kernel 4.0.
|
||||||
|
|
||||||
|
---
|
||||||
|
open-vm-tools/modules/linux/vmhgfs/filesystem.c | 16 ++++++++++++++++
|
||||||
|
open-vm-tools/modules/linux/vmhgfs/module.h | 4 ++++
|
||||||
|
open-vm-tools/modules/linux/vmhgfs/super.c | 3 +++
|
||||||
|
3 files changed, 23 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/open-vm-tools/modules/linux/vmhgfs/filesystem.c b/open-vm-tools/modules/linux/vmhgfs/filesystem.c
|
||||||
|
index 10dd8ab..3148091 100644
|
||||||
|
--- a/open-vm-tools/modules/linux/vmhgfs/filesystem.c
|
||||||
|
+++ b/open-vm-tools/modules/linux/vmhgfs/filesystem.c
|
||||||
|
@@ -398,8 +398,21 @@ HgfsReadSuper(struct super_block *sb, // OUT: Superblock object
|
||||||
|
return PTR_ERR(si);
|
||||||
|
}
|
||||||
|
HGFS_SET_SB_TO_COMMON(sb, si);
|
||||||
|
+
|
||||||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 0, 0)
|
||||||
|
+ memset(&si->bdi, 0, sizeof(si->bdi));
|
||||||
|
+ result = bdi_setup_and_register(&si->bdi, "vmhgfs");
|
||||||
|
+ if (result) {
|
||||||
|
+ kfree(si->shareName);
|
||||||
|
+ kfree(si);
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
sb->s_magic = HGFS_SUPER_MAGIC;
|
||||||
|
sb->s_op = &HgfsSuperOperations;
|
||||||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 0, 0)
|
||||||
|
+ sb->s_bdi = &si->bdi;
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38)
|
||||||
|
sb->s_d_op = &HgfsDentryOperations;
|
||||||
|
@@ -439,6 +452,9 @@ HgfsReadSuper(struct super_block *sb, // OUT: Superblock object
|
||||||
|
exit:
|
||||||
|
if (result) {
|
||||||
|
dput(rootDentry);
|
||||||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 0, 0)
|
||||||
|
+ bdi_destroy(&si->bdi);
|
||||||
|
+#endif
|
||||||
|
kfree(si->shareName);
|
||||||
|
kfree(si);
|
||||||
|
}
|
||||||
|
diff --git a/open-vm-tools/modules/linux/vmhgfs/module.h b/open-vm-tools/modules/linux/vmhgfs/module.h
|
||||||
|
index b673dc1..f3eeffc 100644
|
||||||
|
--- a/open-vm-tools/modules/linux/vmhgfs/module.h
|
||||||
|
+++ b/open-vm-tools/modules/linux/vmhgfs/module.h
|
||||||
|
@@ -29,6 +29,7 @@
|
||||||
|
#include "driver-config.h"
|
||||||
|
|
||||||
|
#include <asm/atomic.h>
|
||||||
|
+#include <linux/backing-dev.h>
|
||||||
|
#include "compat_fs.h"
|
||||||
|
#include "compat_semaphore.h"
|
||||||
|
#include "compat_slab.h"
|
||||||
|
@@ -144,6 +145,9 @@ typedef struct HgfsSuperInfo {
|
||||||
|
char *shareName; /* Mounted share name. */
|
||||||
|
size_t shareNameLen; /* To avoid repeated strlen() calls. */
|
||||||
|
uint32 mntFlags; /* HGFS mount flags */
|
||||||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 0, 0)
|
||||||
|
+ struct backing_dev_info bdi;
|
||||||
|
+#endif
|
||||||
|
} HgfsSuperInfo;
|
||||||
|
|
||||||
|
/*
|
||||||
|
diff --git a/open-vm-tools/modules/linux/vmhgfs/super.c b/open-vm-tools/modules/linux/vmhgfs/super.c
|
||||||
|
index 04a2192..41f8713 100644
|
||||||
|
--- a/open-vm-tools/modules/linux/vmhgfs/super.c
|
||||||
|
+++ b/open-vm-tools/modules/linux/vmhgfs/super.c
|
||||||
|
@@ -152,6 +152,9 @@ HgfsPutSuper(struct super_block *sb) // IN: The superblock
|
||||||
|
|
||||||
|
si = HGFS_SB_TO_COMMON(sb);
|
||||||
|
|
||||||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 0, 0)
|
||||||
|
+ bdi_destroy(&si->bdi);
|
||||||
|
+#endif
|
||||||
|
kfree(si->shareName);
|
||||||
|
kfree(si);
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.3.6
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
From fbb6fe5ec57a2a0a9464ec5c433fc18793ebb05f Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?D=C4=81vis?= <davispuh@gmail.com>
|
||||||
|
Date: Thu, 17 Sep 2015 18:05:29 +0300
|
||||||
|
Subject: [PATCH] Remove new_sync for Linux >= 4.1
|
||||||
|
|
||||||
|
---
|
||||||
|
open-vm-tools/modules/linux/vmhgfs/file.c | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/open-vm-tools/modules/linux/vmhgfs/file.c b/open-vm-tools/modules/linux/vmhgfs/file.c
|
||||||
|
index 0bc5ee3..ada3eee 100644
|
||||||
|
--- a/open-vm-tools/modules/linux/vmhgfs/file.c
|
||||||
|
+++ b/open-vm-tools/modules/linux/vmhgfs/file.c
|
||||||
|
@@ -169,8 +169,10 @@ struct file_operations HgfsFileFileOperations = {
|
||||||
|
.flush = HgfsFlush,
|
||||||
|
#if defined VMW_USE_AIO
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 0)
|
||||||
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0)
|
||||||
|
.read = new_sync_read,
|
||||||
|
.write = new_sync_write,
|
||||||
|
+#endif // LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0)
|
||||||
|
.read_iter = HgfsFileRead,
|
||||||
|
.write_iter = HgfsFileWrite,
|
||||||
|
#else // LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 0)
|
||||||
|
---
|
||||||
|
2.5.2
|
||||||
|
|
|
@ -0,0 +1,93 @@
|
||||||
|
From b3a634a491da35d47a5e6e6120a21cba514fc3ec Mon Sep 17 00:00:00 2001
|
||||||
|
From: JackM
|
||||||
|
Date: Wed, 30 Sep 2015 23:16:40 +0300
|
||||||
|
Subject: [PATCH] vmhgfs support linux 4.2.x kernel
|
||||||
|
|
||||||
|
---
|
||||||
|
modules/linux/vmhgfs/link.c | 30 +++++++++++++++++++++++++-----
|
||||||
|
1 file changed, 25 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/open-vm-tools/modules/linux/vmhgfs/link.c b/open-vm-tools/modules/linux/vmhgfs/link.c
|
||||||
|
index 06f693b..72e97ff 100644
|
||||||
|
--- a/open-vm-tools/modules/linux/vmhgfs/link.c
|
||||||
|
+++ b/open-vm-tools/modules/linux/vmhgfs/link.c
|
||||||
|
@@ -35,7 +35,9 @@
|
||||||
|
#include "vm_assert.h"
|
||||||
|
|
||||||
|
/* HGFS symlink operations. */
|
||||||
|
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
|
||||||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0)
|
||||||
|
+static void *HgfsFollowlink(struct dentry *dentry, void **cookie, struct nameidata *nd);
|
||||||
|
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
|
||||||
|
static void *HgfsFollowlink(struct dentry *dentry,
|
||||||
|
struct nameidata *nd);
|
||||||
|
#else
|
||||||
|
@@ -45,7 +47,10 @@ static int HgfsFollowlink(struct dentry *dentry,
|
||||||
|
static int HgfsReadlink(struct dentry *dentry,
|
||||||
|
char __user *buffer,
|
||||||
|
int buflen);
|
||||||
|
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
|
||||||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0)
|
||||||
|
+static void HgfsPutlink(struct dentry *dentry,
|
||||||
|
+ void *cookie);
|
||||||
|
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
|
||||||
|
static void HgfsPutlink(struct dentry *dentry,
|
||||||
|
struct nameidata *nd,
|
||||||
|
void *cookie);
|
||||||
|
@@ -85,7 +90,9 @@ struct inode_operations HgfsLinkInodeOperations = {
|
||||||
|
*----------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
|
||||||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0)
|
||||||
|
+static void *HgfsFollowlink(struct dentry *dentry, void **cookie, struct nameidata *nd)
|
||||||
|
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
|
||||||
|
static void *
|
||||||
|
HgfsFollowlink(struct dentry *dentry, // IN: Dentry containing link
|
||||||
|
struct nameidata *nd) // OUT: Contains target dentry
|
||||||
|
@@ -124,7 +131,11 @@ HgfsFollowlink(struct dentry *dentry, // IN: Dentry containing link
|
||||||
|
} else {
|
||||||
|
LOG(6, (KERN_DEBUG "VMware hgfs: %s: calling nd_set_link %s\n",
|
||||||
|
__func__, fileName));
|
||||||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0)
|
||||||
|
+ *cookie = fileName;
|
||||||
|
+#else
|
||||||
|
nd_set_link(nd, fileName);
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
out:
|
||||||
|
@@ -219,7 +230,10 @@ HgfsReadlink(struct dentry *dentry, // IN: Dentry containing link
|
||||||
|
*----------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
|
||||||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0)
|
||||||
|
+static void HgfsPutlink(struct dentry *dentry,
|
||||||
|
+ void *cookie)
|
||||||
|
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
|
||||||
|
static void
|
||||||
|
HgfsPutlink(struct dentry *dentry, // dentry
|
||||||
|
struct nameidata *nd, // lookup name information
|
||||||
|
@@ -235,11 +249,17 @@ HgfsPutlink(struct dentry *dentry, // dentry
|
||||||
|
LOG(6, (KERN_DEBUG "VMware hgfs: %s: put for %s\n",
|
||||||
|
__func__, dentry->d_name.name));
|
||||||
|
|
||||||
|
- fileName = nd_get_link(nd);
|
||||||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0)
|
||||||
|
+ fileName = cookie;
|
||||||
|
+#else
|
||||||
|
+ fileName = nd_get_link(nd);
|
||||||
|
+#endif
|
||||||
|
if (!IS_ERR(fileName)) {
|
||||||
|
LOG(6, (KERN_DEBUG "VMware hgfs: %s: putting %s\n",
|
||||||
|
__func__, fileName));
|
||||||
|
kfree(fileName);
|
||||||
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 2, 0)
|
||||||
|
nd_set_link(nd, NULL);
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.5.0.windows.1
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
# Tanım: Open Virtual Machine Tools kernel modules
|
||||||
|
# URL: http://open-vm-tools.sourceforge.net/
|
||||||
|
# Paketçi: milisarge
|
||||||
|
# Gerekler: kernel
|
||||||
|
# Grup:
|
||||||
|
|
||||||
|
isim=open-vm-tools-kernel
|
||||||
|
_isim=open-vm-tools
|
||||||
|
surum=10.0.0
|
||||||
|
_altsurum=3000743
|
||||||
|
_surum="${surum}-${_altsurum}"
|
||||||
|
_tamisim="${_isim}-${_surum}"
|
||||||
|
_dkms_surum='2015.01.29'
|
||||||
|
devir=1
|
||||||
|
kaynak=(http://downloads.sourceforge.net/open-vm-tools/open-vm-tools-10.0.0-3000743.tar.gz
|
||||||
|
0001-Fix-vmxnet-module-on-kernels-3.16.patch
|
||||||
|
0004-Support-backing-dev-info-kernel-4.0.patch
|
||||||
|
0005-Remove-new_sync-for-Linux-4.1.patch
|
||||||
|
0006-vmhgfs-support-linux-4.2.x-kernel.patch)
|
||||||
|
|
||||||
|
derle() {
|
||||||
|
patch -d "$SRC/${_tamisim}" -Np2 -i "$SRC/0001-Fix-vmxnet-module-on-kernels-3.16.patch"
|
||||||
|
patch -d "$SRC/${_tamisim}" -Np2 -i "$SRC/0004-Support-backing-dev-info-kernel-4.0.patch"
|
||||||
|
patch -d "$SRC/${_tamisim}" -Np2 -i "$SRC/0005-Remove-new_sync-for-Linux-4.1.patch"
|
||||||
|
patch -d "$SRC/${_tamisim}" -Np2 -i "$SRC/0006-vmhgfs-support-linux-4.2.x-kernel.patch"
|
||||||
|
cd "$SRC/${_tamisim}"
|
||||||
|
[ -f /usr/src/linux-$(uname -r)/vmlinux ] && rm /usr/src/linux-$(uname -r)/vmlinux
|
||||||
|
sed -i "s/${_dkms_surum}/${surum}/g" ./modules/linux/dkms.sh
|
||||||
|
sh ./modules/linux/dkms.sh ./ "${PKG}/usr/src"
|
||||||
|
#for _module in {"vmblock","vmci","vmsync","vsock"}; do
|
||||||
|
# rm -rf "${PKG}/usr/src/${_isim}-${surum}/${_module}"
|
||||||
|
#done
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
#!/bin/sh
|
||||||
|
cd /usr/src/vmware-14*
|
||||||
|
mv /usr/src/linux-$(uname -r)/vmlinux /opt
|
||||||
|
make KVERSION=$(uname -r) VM_KBUILD=yes -C vmmon-only
|
||||||
|
cp vmmon-only/vmmon.ko lib/modules/$(uname -r)/extra/
|
||||||
|
|
||||||
|
make KVERSION=$(uname -r) VM_KBUILD=yes -C vmnet-only
|
||||||
|
cp vmnet-only/vmnet.ko lib/modules/$(uname -r)/extra/
|
||||||
|
|
||||||
|
mv /opt/vmlinux /usr/src/linux-$(uname -r)/
|
||||||
|
depmod
|
||||||
|
modprobe vmmon
|
||||||
|
modprobe vmnet
|
Loading…
Reference in New Issue