torocko
Contributor
Contributor

Linux 3.17-rc compatibility

Jump to solution

Hi,

To get dual monitors working with my dell latitude e7440 I had to install the 3.17-rc kernel in Ubuntu 14.04. which unfortunately does not work with VMware Player 6.0.3 (build-1895310). After installing vmplayer compiling vmnet fails in netif.c with error 'macro "alloc_netdev" requires 4 arguments, but only 3 given'. Is there a workaround? Complete output:

Stopping VMware services:

   VMware Authentication Daemon                                        done

   VM communication interface socket family                            done

   Virtual machine communication interface                             done

   Virtual machine monitor                                             done

   Blocking file system                                                done

Using 2.6.x kernel build system.

make: Entering directory `/tmp/modconfig-xxBLCy/vmnet-only'

/usr/bin/make -C /lib/modules/3.17.0-031700rc4-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \

      MODULEBUILDDIR= modules

make[1]: Entering directory `/usr/src/linux-headers-3.17.0-031700rc4-generic'

  CC [M]  /tmp/modconfig-xxBLCy/vmnet-only/driver.o

  CC [M]  /tmp/modconfig-xxBLCy/vmnet-only/hub.o

  CC [M]  /tmp/modconfig-xxBLCy/vmnet-only/userif.o

  CC [M]  /tmp/modconfig-xxBLCy/vmnet-only/netif.o

In file included from /tmp/modconfig-xxBLCy/vmnet-only/monitorAction_exported.h:31:0,

                 from /tmp/modconfig-xxBLCy/vmnet-only/vnet.h:29,

                 from /tmp/modconfig-xxBLCy/vmnet-only/vnetInt.h:24,

                 from /tmp/modconfig-xxBLCy/vmnet-only/hub.c:43:

/tmp/modconfig-xxBLCy/vmnet-only/vm_assert.h:259:0: warning: "DEPRECATED" redefined [enabled by default]

    #define DEPRECATED(_fix) do {} while (0)

^

In file included from include/linux/kernel.h:13:0,

                 from /tmp/modconfig-xxBLCy/vmnet-only/hub.c:23:

include/linux/printk.h:106:0: note: this is the location of the previous definition

#define DEPRECATED "[Deprecated]: "

^

In file included from /tmp/modconfig-xxBLCy/vmnet-only/monitorAction_exported.h:31:0,

                 from /tmp/modconfig-xxBLCy/vmnet-only/vnet.h:29,

                 from /tmp/modconfig-xxBLCy/vmnet-only/vnetInt.h:24,

                 from /tmp/modconfig-xxBLCy/vmnet-only/netif.c:42:

/tmp/modconfig-xxBLCy/vmnet-only/vm_assert.h:259:0: warning: "DEPRECATED" redefined [enabled by default]

    #define DEPRECATED(_fix) do {} while (0)

^

In file included from include/linux/kernel.h:13:0,

                 from /tmp/modconfig-xxBLCy/vmnet-only/netif.c:23:

include/linux/printk.h:106:0: note: this is the location of the previous definition

#define DEPRECATED "[Deprecated]: "

^

In file included from /tmp/modconfig-xxBLCy/vmnet-only/monitorAction_exported.h:31:0,

                 from /tmp/modconfig-xxBLCy/vmnet-only/vnet.h:29,

                 from /tmp/modconfig-xxBLCy/vmnet-only/vnetInt.h:24,

                 from /tmp/modconfig-xxBLCy/vmnet-only/driver.c:51:

/tmp/modconfig-xxBLCy/vmnet-only/vm_assert.h:259:0: warning: "DEPRECATED" redefined [enabled by default]

    #define DEPRECATED(_fix) do {} while (0)

^

In file included from include/linux/kernel.h:13:0,

                 from /tmp/modconfig-xxBLCy/vmnet-only/driver.c:23:

include/linux/printk.h:106:0: note: this is the location of the previous definition

#define DEPRECATED "[Deprecated]: "

^

/tmp/modconfig-xxBLCy/vmnet-only/netif.c: In function ‘VNetNetIf_Create’:

/tmp/modconfig-xxBLCy/vmnet-only/netif.c:152:64: error: macro "alloc_netdev" requires 4 arguments, but only 3 given

    dev = alloc_netdev(sizeof *netIf, deviceName, VNetNetIfSetup);

                                                                ^

/tmp/modconfig-xxBLCy/vmnet-only/netif.c:152:10: error: ‘alloc_netdev’ undeclared (first use in this function)

    dev = alloc_netdev(sizeof *netIf, deviceName, VNetNetIfSetup);

          ^

/tmp/modconfig-xxBLCy/vmnet-only/netif.c:152:10: note: each undeclared identifier is reported only once for each function it appears in

/tmp/modconfig-xxBLCy/vmnet-only/netif.c: At top level:

/tmp/modconfig-xxBLCy/vmnet-only/netif.c:85:1: warning: ‘VNetNetIfSetup’ defined but not used [-Wunused-function]

VNetNetIfSetup(struct net_device *dev)  // IN:

^

In file included from /tmp/modconfig-xxBLCy/vmnet-only/monitorAction_exported.h:31:0,

                 from /tmp/modconfig-xxBLCy/vmnet-only/vnet.h:29,

                 from /tmp/modconfig-xxBLCy/vmnet-only/vnetInt.h:24,

                 from /tmp/modconfig-xxBLCy/vmnet-only/userif.c:45:

/tmp/modconfig-xxBLCy/vmnet-only/vm_assert.h:259:0: warning: "DEPRECATED" redefined [enabled by default]

    #define DEPRECATED(_fix) do {} while (0)

^

In file included from include/linux/kernel.h:13:0,

                 from ./arch/x86/include/asm/percpu.h:44,

                 from ./arch/x86/include/asm/preempt.h:5,

                 from include/linux/preempt.h:18,

                 from include/linux/spinlock.h:50,

                 from include/linux/wait.h:8,

                 from include/linux/fs.h:6,

                 from include/linux/highmem.h:4,

                 from /tmp/modconfig-xxBLCy/vmnet-only/userif.c:26:

include/linux/printk.h:106:0: note: this is the location of the previous definition

#define DEPRECATED "[Deprecated]: "

^

make[2]: *** [/tmp/modconfig-xxBLCy/vmnet-only/netif.o] Error 1

make[2]: *** Waiting for unfinished jobs....

make[1]: *** [_module_/tmp/modconfig-xxBLCy/vmnet-only] Error 2

make[1]: Leaving directory `/usr/src/linux-headers-3.17.0-031700rc4-generic'

make: *** [vmnet.ko] Error 2

make: Leaving directory `/tmp/modconfig-xxBLCy/vmnet-only'

Failed to build vmnet.  Failed to execute the build command.

Starting VMware services:

   Virtual machine monitor                                             done

   Virtual machine communication interface                             done

   VM communication interface socket family                            done

   Blocking file system                                                done

   Virtual ethernet                                                   failed

   VMware Authentication Daemon                                        done

1 Solution

Accepted Solutions
pLastikpLu
Contributor
Contributor

Change this line in netif.c in /usr/lib/vmware/modules/source/vmnet.tar:

from

   dev = alloc_netdev(sizeof *netIf, deviceName, VNetNetIfSetup);

to

   dev = alloc_netdev(sizeof *netIf, deviceName, NET_NAME_UNKNOWN, VNetNetIfSetup);

View solution in original post

11 Replies
pLastikpLu
Contributor
Contributor

Change this line in netif.c in /usr/lib/vmware/modules/source/vmnet.tar:

from

   dev = alloc_netdev(sizeof *netIf, deviceName, VNetNetIfSetup);

to

   dev = alloc_netdev(sizeof *netIf, deviceName, NET_NAME_UNKNOWN, VNetNetIfSetup);

torocko
Contributor
Contributor

Thanks, now it works!

0 Kudos
Roger_Bergling
Contributor
Contributor

Great !

Works for Workstion 10.0.3 and ubuntu with kernel 3.17 also...nice work... // Roger

0 Kudos
Pavlinux
Enthusiast
Enthusiast

insmod vmblock ? :smileygrin:

0 Kudos
lovetide
Contributor
Contributor

Thanks, this works for VMware-Player-6.0.4-2249910.x86_64 on linux kernel 3.17.2 (Fedora 20)

linux newbie, vmware fan, 囧rz..
0 Kudos
hydenzhang
Contributor
Contributor

it works. great.

0 Kudos
kevhead82
Contributor
Contributor

How did you get the dual displays working!?  I just installed the 3.17.2 kernel and I still can't get them detected.

0 Kudos
antus
Contributor
Contributor

Works perfectly for fedora 20 kernel 3.17.7-200.fc20.x86_64 and vmware workstation 10.0.4 build-2249910

Thanks!

0 Kudos
meheezen
Contributor
Contributor

It worked for VMware Workstation 10.0.5 build-2443746 on 3.17.8-200.fc20.x86_64.

Many thanks.

0 Kudos
udsieg
Contributor
Contributor

Hi,

I have the same problem installing Ws 9.0.4 at SUSE 13.2. I applied the patch above to netif.c , but the error is still there.

In file included from /tmp/modconfig-7sLPDH/vmnet-only/monitorAction_exported.h:31:0,

                 from /tmp/modconfig-7sLPDH/vmnet-only/vnet.h:29,

                 from /tmp/modconfig-7sLPDH/vmnet-only/vnetInt.h:24,

                 from /tmp/modconfig-7sLPDH/vmnet-only/bridge.c:52:

/tmp/modconfig-7sLPDH/vmnet-only/monitorAction_exported.h: In function ‘MonitorActionSet_AtomicInclude’:

/tmp/modconfig-7sLPDH/vmnet-only/vm_assert.h:320:20: warning: typedef ‘AssertOnCompileFailed’ locally defined but not used [-Wunused-local-typedefs]

       typedef char AssertOnCompileFailed[AssertOnCompileMisused]; \

                    ^

/tmp/modconfig-7sLPDH/vmnet-only/monitorAction_exported.h:91:4: note: in expansion of macro ‘ASSERT_ON_COMPILE’

    ASSERT_ON_COMPILE((ACTION_WORD_SIZE & (ACTION_WORD_SIZE - 1)) == 0);

    ^

/usr/src/linux-3.16.7-7/Makefile:1359: recipe for target '_module_/tmp/modconfig-7sLPDH/vmnet-only' failed

make[3]: *** [_module_/tmp/modconfig-7sLPDH/vmnet-only] Error 2

Makefile:195: recipe for target 'sub-make' failed

make[2]: *** [sub-make] Error 2

Makefile:24: recipe for target '__sub-make' failed

make[1]: *** [__sub-make] Error 2

make[1]: Leaving directory '/usr/src/linux-3.16.7-7-obj/x86_64/desktop'

Makefile:130: recipe for target 'vmnet.ko' failed

make: *** [vmnet.ko] Error 2

make: Leaving directory '/tmp/modconfig-7sLPDH/vmnet-only'

Failed to build vmnet.  Failed to execute the build command.

Starting VMware services:

   Virtual machine monitor                                             done

   Virtual machine communication interface                             done

   VM communication interface socket family                            done

   Blocking file system                                                done

   Virtual ethernet                                                   failed

   VMware Authentication Daemon                                        done

0 Kudos
puckhead1
Contributor
Contributor

Hi,

I'm having the same issue with the netif.c requiring 4 or 3 arguments. The difference though is I'm running VMware 12.1.1 with Red Hat 6.x. Kernel 2.6.32-573.22 and this works and compiles just fine. As soon as I booted up the latest Red Hat Kernel (2.6.32-642) the vmnet.ko would no longer build properly. I was able to untar the source code and look at netif.c, but at or around line 153 we have issues again. Here's the catch, I'm not running a 3.x kernel, I'm running a 2.6.x kernel. I don't think I should even be in this part of the source code.  I tried the suggested fix, but was still unable to get netif.c to compile.  Without getting too crazy, is there a supported fix out there for this yet?  Perhaps I can compile the source code under the old kernel save it off and then add it to the new kernel, but what I don't know is A) how reliable this will be? and B) Will it corrupt my VM ins some way? I need a supported solution.

0 Kudos