Installer vmware workstation 9/10 sur un noyau 3.1x

L’installation se passe sans problème mais lors du lancement, le programme ne peut pas fonctionner sans le module vmnet.
Pour compiler le module vmnet sous debian7, il faut patcher le code source.
Je précise que ce qui suit n’est pas un tuto à appliquer les yeux fermés, mais un aide mémoire histoire de retrouver le patch.

vmnet.filter.c.313.patch

[code]— vmnet-only/filter.c 2013-10-18 23:11:55.000000000 +0400
+++ vmnet-only/filter.c 2013-12-03 04:16:31.751352170 +0400
@@ -27,6 +27,7 @@
#include “compat_module.h”
#include <linux/mutex.h>
#include <linux/netdevice.h>
+#include <linux/version.h>
#if COMPAT_LINUX_VERSION_CHECK_LT(3, 2, 0)

include <linux/module.h>

#else
@@ -203,7 +204,11 @@
#endif

static unsigned int
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
VNetFilterHookFn(unsigned int hooknum, // IN:
+#else
+VNetFilterHookFn(const struct nf_hook_ops *ops, // IN:
+#endif
#ifdef VMW_NFHOOK_USES_SKB
struct sk_buff *skb, // IN:
#else
@@ -252,7 +257,14 @@

/* When the host transmits, hooknum is VMW_NF_INET_POST_ROUTING. */
/* When the host receives, hooknum is VMW_NF_INET_LOCAL_IN. */
  • transmit = (hooknum == VMW_NF_INET_POST_ROUTING);

+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)

  • transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
    +#else
  • transmit = (ops->hooknum == VMW_NF_INET_POST_ROUTING);
    +#endif
  • packetHeader = compat_skb_network_header(skb);
    ip = (struct iphdr*)packetHeader;[/code]

#Se déplacer la ou se trouve le code du module

#on décompresse l’archive

tar -xvf vmnet.tar cd vmnet-only
#Appliquer le patch

#Re-tar le code source pour l’install

cd .. tar -uvf vmnet.tar vmnet-only
#On relance l’installation des modules

Attention lors des mises à jour, on pourrait se retrouver à nouveau avec un filter.c buggé et il faudra probablement ré-appliquer le patch.