VMware Communities
sjmp
Contributor
Contributor

Worstation 12.1.1 on linux install problem - GCC

I am running linux kernel 4.6 w/ gcc 6.1.1

Is there a way to get workstation 12.1.1. installed on my system with this kernel and gcc version? Can anyone help me with this?

The bundle installs without issue but if I try to run it says cannot find compatible gcc looking for 5.3.1.

Really did not want to go back to 5.3.1 was wondering if anyone knew how to get it working with 6.1

Thanks,

20 Replies
gruna
Enthusiast
Enthusiast

  1. cd /usr/lib/vmware/modules/source
  2. unpack vmnet.tar
  3. cd vmnet-only
  4. make
  5. cd ..
  6. unpack vmmon.tar
  7. cd vmmon-only
  8. make
  9. cd ..
  10. cp vmmon.o /lib/modules/`uname -r`/misc/vmmon.ko
  11. cp vmnet.o /lib/modules/`uname -r`/misc/vmnet.ko
  12. depmod -a
  13. /etc/init.d/vmware restart
mfelker
Expert
Expert

What host are you running??

Reply
0 Kudos
sjmp
Contributor
Contributor

I have tried that - but it fails

vmnet-only # make

Using kernel build system.

make -C /lib/modules/4.6.0-040600-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \

      MODULEBUILDDIR= modules

make[1]: Entering directory `/usr/src/linux-headers-4.6.0-040600-generic'

  CC [M]  /usr/lib/vmware/modules/source/vmnet-only/userif.o

In file included from ./arch/x86/include/asm/processor.h:15:0,

                 from ./arch/x86/include/asm/cpufeature.h:4,

                 from ./arch/x86/include/asm/thread_info.h:52,

                 from include/linux/thread_info.h:54,

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

                 from include/linux/preempt.h:59,

                 from include/linux/spinlock.h:50,

                 from include/linux/wait.h:8,

                 from include/linux/fs.h:5,

                 from include/linux/highmem.h:4,

                 from /usr/lib/vmware/modules/source/vmnet-only/userif.c:26:

/usr/lib/vmware/modules/source/vmnet-only/userif.c: In function ‘UserifLockPage’:

./arch/x86/include/asm/current.h:17:17: warning: passing argument 1 of ‘get_user_pages’ makes integer from pointer without a cast [-Wint-conversion]

#define current get_current()

                 ^

/usr/lib/vmware/modules/source/vmnet-only/userif.c:116:28: note: in expansion of macro ‘current’

    retval = get_user_pages(current, current->mm, addr,

                            ^~~~~~~

In file included from include/linux/highmem.h:7:0,

                 from /usr/lib/vmware/modules/source/vmnet-only/userif.c:26:

include/linux/mm.h:1266:6: note: expected ‘long unsigned int’ but argument is of type ‘struct task_struct *’

long get_user_pages(unsigned long start, unsigned long nr_pages,

      ^~~~~~~~~~~~~~

In file included from ./arch/x86/include/asm/processor.h:15:0,

                 from ./arch/x86/include/asm/cpufeature.h:4,

                 from ./arch/x86/include/asm/thread_info.h:52,

                 from include/linux/thread_info.h:54,

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

                 from include/linux/preempt.h:59,

                 from include/linux/spinlock.h:50,

                 from include/linux/wait.h:8,

                 from include/linux/fs.h:5,

                 from include/linux/highmem.h:4,

                 from /usr/lib/vmware/modules/source/vmnet-only/userif.c:26:

./arch/x86/include/asm/current.h:17:17: warning: passing argument 2 of ‘get_user_pages’ makes integer from pointer without a cast [-Wint-conversion]

#define current get_current()

                 ^

/usr/lib/vmware/modules/source/vmnet-only/userif.c:116:37: note: in expansion of macro ‘current’

    retval = get_user_pages(current, current->mm, addr,

                                     ^~~~~~~

In file included from include/linux/highmem.h:7:0,

                 from /usr/lib/vmware/modules/source/vmnet-only/userif.c:26:

include/linux/mm.h:1266:6: note: expected ‘long unsigned int’ but argument is of type ‘struct mm_struct *’

long get_user_pages(unsigned long start, unsigned long nr_pages,

      ^~~~~~~~~~~~~~

/usr/lib/vmware/modules/source/vmnet-only/userif.c:117:10: warning: passing argument 5 of ‘get_user_pages’ makes pointer from integer without a cast [-Wint-conversion]

       1, 1, 0, &page, NULL);

          ^

In file included from include/linux/highmem.h:7:0,

                 from /usr/lib/vmware/modules/source/vmnet-only/userif.c:26:

include/linux/mm.h:1266:6: note: expected ‘struct page **’ but argument is of type ‘int’

long get_user_pages(unsigned long start, unsigned long nr_pages,

      ^~~~~~~~~~~~~~

/usr/lib/vmware/modules/source/vmnet-only/userif.c:116:13: error: too many arguments to function ‘get_user_pages’

    retval = get_user_pages(current, current->mm, addr,

             ^~~~~~~~~~~~~~

In file included from include/linux/highmem.h:7:0,

                 from /usr/lib/vmware/modules/source/vmnet-only/userif.c:26:

include/linux/mm.h:1266:6: note: declared here

long get_user_pages(unsigned long start, unsigned long nr_pages,

      ^~~~~~~~~~~~~~

make[2]: *** [/usr/lib/vmware/modules/source/vmnet-only/userif.o] Error 1

make[1]: *** [_module_/usr/lib/vmware/modules/source/vmnet-only] Error 2

make[1]: Leaving directory `/usr/src/linux-headers-4.6.0-040600-generic'

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

Reply
0 Kudos
sjmp
Contributor
Contributor

mint 17.3

Reply
0 Kudos
gruna
Enthusiast
Enthusiast

Then you have two issues.

1. Vmware does not find your gcc

2. You need to change two lines in the code.

So first do this:

1) vmmon.tar

  - untar

  - change ./vmmon-only/linux/hostif.c

  - replace all:

  "get_user_pages" to "get_user_pages_remote"

  - tar and replace original

2) vmnet.tar

  - untar

  - change ./vmnet-only/userif.c

  - replace all:

  "get_user_pages" to "get_user_pages_remote"

  - tar and replace original

And after do my first proposal

Reply
0 Kudos
toninhonunes
Contributor
Contributor

Hi,

It do not solve the problem, I'm beginning to hate wmware workstation, I use Linux Mint 17.3, kernel 4.5.2, if I upgrade to kernel 4.5.5 or 4.6, it does not works more. Also there are other problems, freezing is a issue. I will go back to VirtualBox. My computer is a Dell Vostro 3550.

Thanks.

toninhonunes

Reply
0 Kudos
sjmp
Contributor
Contributor

Thanks gruna -

Anything else I can do to get monitor and networking to run. They are both in the failed state when I restart vmware

[sudo] password for sco:

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

Starting VMware services:

   Virtual machine monitor                                                      failed

   Virtual machine communication interface                             done

   VM communication interface socket family                            done

   Blocking file system                                                          done

   Virtual ethernet                                                                  failed

   VMware Authentication Daemon                                        done

Reply
0 Kudos
sjmp
Contributor
Contributor

Assume this is still a gcc issue

When I run vmware-modconfig --console --install-all

I am getting:

Failed to get gcc information.

Reply
0 Kudos
sjmp
Contributor
Contributor

sudo cp vmmon.o  /lib/modules/4.6.0-040600-generic/kernel/drivers/misc/vmmon.ko

sudo cp vmnet.o  /lib/modules/4.6.0-040600-generic/kernel/drivers/misc/vmnet.ko

depmod -a

/etc/init.d/vmware restart

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

Starting VMware services:

   Virtual machine monitor                                            failed

   Virtual machine communication interface                             done

   VM communication interface socket family                            done

   Blocking file system                                                done

   Virtual ethernet                                                   failed

   VMware Authentication Daemon                                        done

Reply
0 Kudos
sjmp
Contributor
Contributor

Any help would be greatly appreciated

Reply
0 Kudos
sjmp
Contributor
Contributor

Is there any more information I can gather to resolve this?

Reply
0 Kudos
sjmp
Contributor
Contributor

Stopping VMware services:

   VMware Authentication Daemon                                             done

   VM communication interface socket family                              done

   Virtual machine communication interface                                done

   Virtual machine monitor                                            1`           done

   Blocking file system                                                                   done

Starting VMware services:

   Virtual machine monitor                                            failed

   Virtual machine communication interface                 done

   VM communication interface socket family               done

   Blocking file system                                                  done

   Virtual ethernet                                                         failed

   VMware Authentication Daemon                              done

Reply
0 Kudos
cryptodan
Contributor
Contributor

Does not work on vmmon, and this is the error that I am now getting:

//

alphacentari vmmon-only # make

Using kernel build system.

make -C /lib/modules/4.6.3-040603-lowlatency/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \

   MODULEBUILDDIR= modules

make[1]: Entering directory `/usr/src/linux-headers-4.6.3-040603-lowlatency'

  CC [M]  /usr/lib/vmware/modules/source/vmmon-only/linux/driver.o

/usr/lib/vmware/modules/source/vmmon-only/linux/driver.c: In function ‘cleanup_module’:

/usr/lib/vmware/modules/source/vmmon-only/linux/driver.c:390:8: error: void value not ignored as it ought to be

    if (misc_deregister(&linuxState.misc)) {

        ^~~~~~~~~~~~~~~

At top level:

/usr/lib/vmware/modules/source/vmmon-only/linux/driver.c:1285:1: warning: always_inline function might not be inlinable [-Wattributes]

LinuxDriverSyncReadTSCs(uint64 *delta) // OUT: TSC max - TSC min

^~~~~~~~~~~~~~~~~~~~~~~

make[2]: *** [/usr/lib/vmware/modules/source/vmmon-only/linux/driver.o] Error 1

make[1]: *** [_module_/usr/lib/vmware/modules/source/vmmon-only] Error 2

make[1]: Leaving directory `/usr/src/linux-headers-4.6.3-040603-lowlatency'

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

//

So what is the purposed fix?  I got the vmnet to work

via doing make

Reply
0 Kudos
jiml888
Contributor
Contributor

The kernel modules have to be compiled with the same version of gcc taht compiled the kernel.  Either compile the vmware modules with that gcc, or recompile your kernel with the gcc you want to use.

For the record, I have a Mint 17.3 VM that I created about 3 months ago, using a default iso that I downloaded from the Mint site.  It is presently fully patched and updated.  It has gcc 4.8.4 and kernel 3.19.0-32-generic.  So, while I don't really keep up with the goings-on of Mint, I am wondering how you got to kernel 4.6 and gcc 6-something (which I was not even aware existed).

As for your other issues compiling, I recently posted a patch to make Workstation 11 function with kernel 4.4.  The post is on this board someplace in the last couple of weeks.  The mods were all to kernel drivers, and it is possible that 4.4 and 4.6 are similar enough that this patch will work.  No guarantees, but you might want to look at it.

Reply
0 Kudos
cryptodan
Contributor
Contributor

I got vmmon working, but vmnet is failing to create /dev/vmnet0. why can't vmware keep up with the latest kernels and gcc's.

Reply
0 Kudos
dcharlespyle
Contributor
Contributor

I had the same issue with the kernel update to 4.6 in Fedora 24.  Doing as suggested in post #5 got VMWare Player 7.1.4 working again for me on Fedora 24.  I do not see why it wouldn't work with
Workstation 12.1.1, too.  I used to use VMWare Player 12.1.1 but went back to 7.1.4 because I needed Unity Mode to work for my purposes.  Workstation 12 also removed the Unity Mode functionality in Linux, last I checked.

Of course, I also do have in my vmplayer file the following line:

export VMWARE_USE_SHIPPED_LIBS=force

This forces VMWare Player to use the shipped libraries rather than the native ones.  VMWare Player wouldn't even launch without this modification in the file, which modification usually also works for Workstation.  I had to do the same thing in Ubuntu 16.04 so it should theoretically work in Mint, which is based on Ubuntu.  After modifying the files mentioned in post #5 I ran the following command in a terminal:

sudo vmware-modconfig --console --install-all

After that everything started working again.

Fedora 24 uses the following kernel and gcc:

kernel 4.6.3-300

gcc 6.1.1-3

Reply
0 Kudos
albert_robert_g
Contributor
Contributor

@gruna That worked for me! Registered specifically to say thanks gruna!

Reply
0 Kudos
cryptodan
Contributor
Contributor

I had to remove VMWare Workstation and then reinstall, and then manually compile VMWare Modules vmmon and vmnet to get it to work on the following system:

http://paste.linuxmint.com/view/19l6

dpaste: 1A0N7HQ

Reply
0 Kudos
Kalegley
Contributor
Contributor

There is a simpler way without copying. Just run the following from the command line -

LD_PRELOAD=/usr/lib/vmware/lib/libglibmm-2.4.so.1/libglibmm-2.4.so.1 /usr/bin/vmware

Or, edit /usr/bin/vmware and put in the following line somewhere near the top (close to the existing export statements)-

export LD_PRELOAD=/usr/lib/vmware/lib/libglibmm-2.4.so.1/libglibmm-2.4.so.1

Thanks !!

Kaleigh@Redgage

Reply
0 Kudos