Thursday, November 5, 2015

VMWare Worksation 12 on Fedora Core 23/24 (fc23 and fc24)


Update (20170321): VMware released VMW 12.5.4, which fixes all of the current issues with Fedora and the latest kernels (AFAIK). The hacks described on this page ARE NO LONGER NEEDED NOR MAINTAINED.

Update (20160921): VMware released VMW 12.5, which is supposed to work fine out of the box. I updated Update_VMW.sh to avoid patch anything -else- than VMW 11.x or 12.{0,1}. Please report back if you need assistance.

Update (20160630): I updated Update_VMW.sh to support Fedora Core 24 (fc24) for which the changes needed are the same. Please report back if you need assistance.


Update (20160525): I updated my Update_VMW.sh script to patch the VMware kernel modules so they work on kernel 4.4.x and above (FC23+). Tested successfully with VMW 12.1.1.


Update (20151209): This is still needed on 12.1.0 but I wrote a small tool to make everyone's life easier: Update_VMW.sh

VMWare workstation 12.0.1 Pro stopped working when I upgraded my FC22 desktop to FC23. 
This is a chicken and egg issue with the bundled VMWare libs missing some symbols that used to be present in FC22. The relevant part of the logs when it fails to start is:

Unable to load image-loading module: /usr/lib/vmware/libconf/lib/gtk-2.0/2.10.0/loaders/svg_loader.so: /usr/lib64/librsvg-2.so.2: undefined symbol: g_type_class_adjust_private_offset

This symbol ('g_type_class_adjust_private_offset') is a glib symbol.
Unfortunately, the glib version provided by VMware in VMW12 doesn't provide this symbol if you use the VMware-provided libs (VMWARE_USE_SHIPPED_LIBS=yes).
Alas, if you don't use the VMWare libs you'll run into other issues.

I got things working by doing by replacing VMWare's bundled glib with that from FC23 and forcing VMW12 to use the VMware libs. Please note that these instructions work for VMW11 as well.

  • Become root:

$ sudo su -


  • Install required packages and force rebuild of VMWare modules:
# dnf install kernel-headers kernel-devel gcc glibc-headers  
vmware-modconfig --console --install-all  


1) get and run this script: Update_VMW.sh , then skip to 3)


$ sudo ./Update_VMW.sh 
[sudo] password for user1: 
(II) /usr/lib/vmware/lib/libvmwareui.so/libvmwareui.so present, continuing...
(II) /etc/vmware/bootstrap already has VMWARE_USE_SHIPPED_LIBS, skip..
(II) Replacing /usr/lib/vmware/lib/libgio-2.0.so.0/libgio-2.0.so.0 ...
?/usr/lib64/libgio-2.0.so.0? -> ?/usr/lib/vmware/lib/libgio-2.0.so.0/libgio-2.0.so.0?
(II) Replacing /usr/lib/vmware/lib/libglib-2.0.so.0/libglib-2.0.so.0 ...
?/usr/lib64/libglib-2.0.so.0? -> ?/usr/lib/vmware/lib/libglib-2.0.so.0/libglib-2.0.so.0?
(II) Replacing /usr/lib/vmware/lib/libgmodule-2.0.so.0/libgmodule-2.0.so.0 ...
?/usr/lib64/libgmodule-2.0.so.0? -> ?/usr/lib/vmware/lib/libgmodule-2.0.so.0/libgmodule-2.0.so.0?
(II) Replacing /usr/lib/vmware/lib/libgobject-2.0.so.0/libgobject-2.0.so.0 ...
?/usr/lib64/libgobject-2.0.so.0? -> ?/usr/lib/vmware/lib/libgobject-2.0.so.0/libgobject-2.0.so.0?
(II) Replacing /usr/lib/vmware/lib/libgthread-2.0.so.0/libgthread-2.0.so.0 ...

?/usr/lib64/libgthread-2.0.so.0? -> ?/usr/lib/vmware/lib/libgthread-2.0.so.0/libgthread-2.0.so.0?

Or 2) Use the older/manual method:

  • First, find the version suffix of your GLIB library:
On FC23:
$ ls -l /usr/lib64/libglib-2.0.so.0.*
-rwxr-xr-x. 1 root root 1290352 Oct 19 16:52 /usr/lib64/libglib-2.0.so.0.4600.1

On FC23 + updates (20151125):
ls -l /usr/lib64/libglib-2.0.so.0.*
-rwxr-xr-x. 1 root root 1290352 Nov  9 06:36 /usr/lib64/libglib-2.0.so.0.4600.2

  • Next, replace the vmware glib version with the fedora version found above:
# cd /usr/lib/vmware/lib
# for mylib in $(ls /usr/lib64/lib*4600*); do /bin/cp -afv $mylib $(basename $mylib .4600.2 )/$(basename $mylib .4600.2 ); done

This expands to the following:
# cd /usr/lib/vmware/lib
# /bin/cp -afv /usr/lib64/libgio-2.0.so.0.4600.2 libgio-2.0.so.0/libgio-2.0.so.0
# /bin/cp -afv /usr/lib64/libglib-2.0.so.0.4600.2 libglib-2.0.so.0/libglib-2.0.so.0
# /bin/cp -afv /usr/lib64/libgmodule-2.0.so.0.4600.2 libgmodule-2.0.so.0/libgmodule-2.0.so.0
# /bin/cp -afv /usr/lib64/libgobject-2.0.so.0.4600.2 libgobject-2.0.so.0/libgobject-2.0.so.0
# /bin/cp -afv /usr/lib64/libgthread-2.0.so.0.4600.2 libgthread-2.0.so.0/libgthread-2.0.so.0


  • Start VMware or VMplayer:

$ VMWARE_USE_SHIPPED_LIBS=force vmware
or:
$ VMWARE_USE_SHIPPED_LIBS=force vmplayer



  • For ease of use/convenience, you might also want to do this:

# cd /usr/bin/
# mv -iv vmplayer vmplayer.bin
# mv -iv vmware vmware.bin

Then create two scripts replacing the previous scripts/tools:
$ cat /usr/bin/vmplayer
#!/bin/bash
export VMWARE_USE_SHIPPED_LIBS=force
/usr/bin/vmplayer.bin $*

$ cat /usr/bin/vmware
#!/bin/bash
export VMWARE_USE_SHIPPED_LIBS=force
/usr/bin/vmware.bin $*

chmod 755 /usr/bin/vmware /usr/bin/vmplayer


  • Next, edit /usr/bin/vmware-netcfg and add the env workaround toward the top:


$ cat /usr/bin/vmware-netcfg 
#!/usr/bin/env bash
[....]
ROOT_REQUIRED=yes
export VMWARE_USE_SHIPPED_LIBS=force
[....]


3) Enjoy!

  • Please note that should the kernel get an update (think 4.2.5-300.fc23) then VMW12 will prompt to rebuild the kernel modules. This won't work (or so it seems) and you may have to run the kernel build manually again:


vmware-modconfig --console --install-all  



  • The above instructions work for VMWare Workstation 11.x as well (reported by Jeroen De Meerleer, many thanks for that)





161 comments:

  1. it doesn't work on my machine:
    [root@opene2e root2016]# cd /usr/lib/vmware
    [root@opene2e vmware]# for mylib in $(ls /usr/lib64/*4600*); do /bin/cp -afv $mylib $(basename $mylib .4600.1 )/$(basename $mylib .4600.1 ); done
    ‘/usr/lib64/libgio-2.0.so.0.4600.1’ -> ‘libgio-2.0.so.0/libgio-2.0.so.0’
    /bin/cp: cannot create regular file ‘libgio-2.0.so.0/libgio-2.0.so.0’: No such file or directory
    ‘/usr/lib64/libglib-2.0.so.0.4600.1’ -> ‘libglib-2.0.so.0/libglib-2.0.so.0’
    /bin/cp: cannot create regular file ‘libglib-2.0.so.0/libglib-2.0.so.0’: No such file or directory
    ‘/usr/lib64/libgmodule-2.0.so.0.4600.1’ -> ‘libgmodule-2.0.so.0/libgmodule-2.0.so.0’
    /bin/cp: cannot create regular file ‘libgmodule-2.0.so.0/libgmodule-2.0.so.0’: No such file or directory
    ‘/usr/lib64/libgobject-2.0.so.0.4600.1’ -> ‘libgobject-2.0.so.0/libgobject-2.0.so.0’
    /bin/cp: cannot create regular file ‘libgobject-2.0.so.0/libgobject-2.0.so.0’: No such file or directory
    ‘/usr/lib64/libgthread-2.0.so.0.4600.1’ -> ‘libgthread-2.0.so.0/libgthread-2.0.so.0’
    /bin/cp: cannot create regular file ‘libgthread-2.0.so.0/libgthread-2.0.so.0’: No such file or directory
    [root@opene2e vmware]#

    ReplyDelete
  2. Hi Jayjay, yes, sorry. It's in /usr/lib/vmware/lib, not /usr/lib/vmware
    Regards,

    ReplyDelete
  3. Replies
    1. the vm fail to start again since upgrade to kernel 4.7.2-201, i've to start it with kernel 4.6.7-300

      Delete
    2. OK it works now, have to dnf install kernel-headers kernel-devel gcc glibc-headers again with the new kernel

      Delete
  4. new fedora user trying to use vmware...this is as far as I got...
    [root@localhost ~]# vmware-modconfig --console --install-all
    Failed to setup build environment.


    help???

    ReplyDelete
  5. Hi Brad,
    Do you have gcc and the kernel headers installed?
    The modconfig step isn't required if the pre-built modules load fine on your environment (I can't remember if they did on mine)
    Try 'dnf install gcc kernel-headers glibc-headers'.
    Vincent

    ReplyDelete
    Replies
    1. I think so, laptop at work will check tomorrow thanks...

      Delete
    2. I ran into this problem on a server. It looks like I had upgraded the kernel but not rebooted. The kernel-headers were therefore out of sync because I was on an older kernel but the kernel headers installed were for the newer kernel. A reboot help me at least.

      Delete
  6. Hi Brad,
    Do you have gcc and the kernel headers installed?
    The modconfig step isn't required if the pre-built modules load fine on your environment (I can't remember if they did on mine)
    Try 'dnf install gcc kernel-headers glibc-headers'.
    Vincent

    ReplyDelete
    Replies
    1. seem they are already installed...

      root@localhost ~]# dnf install gcc kernel-headers glibc-headers
      RPM Fusion for Fedora 23 - Nonfree - Test Updat 88 kB/s | 24 kB 00:00
      RPM Fusion for Fedora 23 - Free - Test Updates 273 kB/s | 234 kB 00:00
      google-chrome 17 kB/s | 3.4 kB 00:00
      Fedora 23 - x86_64 - Updates 3.1 MB/s | 6.6 MB 00:02
      negativo17 - Steam 33 kB/s | 8.2 kB 00:00
      Last metadata expiration check performed 0:00:00 ago on Mon Nov 16 15:20:07 2015.
      Package gcc-5.1.1-4.fc23.x86_64 is already installed, skipping.
      Package kernel-headers-4.2.5-300.fc23.x86_64 is already installed, skipping.
      Package glibc-headers-2.22-5.fc23.x86_64 is already installed, skipping.
      Dependencies resolved.
      Nothing to do.
      Complete!

      Delete
    2. Is the output of vmware-modconfig pointing to any log files?
      You are doing this with VMW 12, right? (the VMW 11 modules are known not to build under FC23).
      Can you try running the shell script with debug on, as in:
      # bash -x vmware-modconfig --console --install-all

      Delete
    3. thanks for the continued help. yes it is the trial version version 12...here is the output...

      [root@localhost ~]# bash -x vmware-modconfig --console --install-all
      + set -e
      + ETCDIR=/etc/vmware
      + . /etc/vmware/bootstrap
      ++ PREFIX=/usr
      ++ BINDIR=/usr/bin
      ++ SBINDIR=/usr/sbin
      ++ LIBDIR=/usr/lib
      ++ DATADIR=/usr/share
      ++ SYSCONFDIR=/etc
      ++ DOCDIR=/usr/share/doc
      ++ MANDIR=/usr/share/man
      ++ INCLUDEDIR=/usr/include
      ++ INITDIR=/etc/rc.d
      ++ INITSCRIPTDIR=/etc/rc.d/init.d
      + VMISETCDIR=/etc/vmware-installer
      + . /etc/vmware-installer/bootstrap
      ++ VMWARE_INSTALLER=/usr/lib/vmware-installer/2.1.0
      ++ VERSION=2.1.0
      ++ VMISVERSION=2.1.0
      ++ VMISBUILDNUM=3126152
      ++ VMISPYVERSION=25
      + libdir=/usr/lib/vmware
      + export VMWARE_INSTALLER
      + args=
      + uiType=
      + useConsole=0
      + for i in '"$@"'
      + '[' --console = --console ']'
      + useConsole=1
      + for i in '"$@"'
      + '[' --install-all = --console ']'
      + args=' --install-all'
      + '[' -z :0 ']'
      + '[' 1 = 1 ']'
      + uiType=-console
      + export PATH=/sbin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
      + PATH=/sbin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
      + exec /usr/lib/vmware/bin/vmware-modconfig-console --install-all
      Failed to setup build environment.

      Delete
    4. Hi Brad,
      And thanks for your patience.. :)
      On my system, the last few lines of output below yours mention this:
      + exec /usr/lib/vmware/bin/vmware-modconfig-console --install-all
      Stopping vmware (via systemctl): [ OK ]
      make: Entering directory '/tmp/modconfig-3sQNuP/vmmon-only'
      Using kernel build system.
      /usr/bin/make -C /lib/modules/4.2.5-300.fc23.x86_64/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
      MODULEBUILDDIR= modules

      Alternatively, could you try to run the following?
      # bash -x vmware-modconfig --console --build-mod vmnet

      If you type 'dmesg' after running the above, do you have any kind of relevant output in the last few lines?

      Do you have SELinux enabled?
      Check its status with 'sestatus'.

      Alternatively, we could do an strace but that would generate a very huge debug file..
      # strace -f -s1024 -o /tmp/strace.txt vmware-modconfig --console --install-all

      # ls -al /tmp/strace.txt
      -rw-r--r--. 1 root root 81267653 Nov 17 09:50 /tmp/strace.txt

      At least we'd know what killed /usr/lib/vmware/bin/vmware-modconfig-console (it's a 64bit binary)

      Regards,

      Delete
    5. actually....thank you :) btw I have selinux in permissive mode

      [root@localhost ~]# bash -x vmware-modconfig --console --build-mod vmnet
      + set -e
      + ETCDIR=/etc/vmware
      + . /etc/vmware/bootstrap
      ++ PREFIX=/usr
      ++ BINDIR=/usr/bin
      ++ SBINDIR=/usr/sbin
      ++ LIBDIR=/usr/lib
      ++ DATADIR=/usr/share
      ++ SYSCONFDIR=/etc
      ++ DOCDIR=/usr/share/doc
      ++ MANDIR=/usr/share/man
      ++ INCLUDEDIR=/usr/include
      ++ INITDIR=/etc/rc.d
      ++ INITSCRIPTDIR=/etc/rc.d/init.d
      + VMISETCDIR=/etc/vmware-installer
      + . /etc/vmware-installer/bootstrap
      ++ VMWARE_INSTALLER=/usr/lib/vmware-installer/2.1.0
      ++ VERSION=2.1.0
      ++ VMISVERSION=2.1.0
      ++ VMISBUILDNUM=3126152
      ++ VMISPYVERSION=25
      + libdir=/usr/lib/vmware
      + export VMWARE_INSTALLER
      + args=
      + uiType=
      + useConsole=0
      + for i in '"$@"'
      + '[' --console = --console ']'
      + useConsole=1
      + for i in '"$@"'
      + '[' --build-mod = --console ']'
      + args=' --build-mod'
      + for i in '"$@"'
      + '[' vmnet = --console ']'
      + args=' --build-mod vmnet'
      + '[' -z :0 ']'
      + '[' 1 = 1 ']'
      + uiType=-console
      + export PATH=/sbin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
      + PATH=/sbin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
      + exec /usr/lib/vmware/bin/vmware-modconfig-console --build-mod vmnet
      Failed to get needed kernel information.
      [root@localhost ~]#


      and the dmesg (last lines which were input after running the command...which don't mean anything to me :) )

      d
      [41837.670713] snd_hda_intel 0000:01:00.1: Enabling via VGA-switcheroo
      [41843.144125] snd_hda_intel 0000:01:00.1: Disabling via VGA-switcheroo
      [41843.251202] snd_hda_intel 0000:01:00.1: Cannot lock devices!
      [41843.251214] ACPI Warning: \_SB_.PCI0.PEGP.DGFX._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20150619/nsarguments-95)
      [41843.251536] ACPI: \_SB_.PCI0.PEGP.DGFX: failed to evaluate _DSM
      [41843.251539] ACPI Warning: \_SB_.PCI0.PEGP.DGFX._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20150619/nsarguments-95)

      Delete
    6. Hi Brad,
      I just discovered there's a log at /var/log/vmware-installer.
      Do you have more information inside that log?
      I find it interesting that it says 'Failed to get needed kernel information'.
      Do you have kernel-devel and kernel-headers installed for the currently booted kernel?
      Regards,
      Vincent

      Delete
    7. I was ready to put ubuntu on my laptop....but I did not hve kernel-devel. I followed all the instructions (which to me are just cut and paste I dont' understand anything) and it works...so I guess I should be happy...stuff to learn with linux and god knows I have much to learn. thanks for sticking with me I will check back for sure if things don't work. now to get gns3 going, integrate vmware and really get down to learning :)

      Delete
  7. This doesnt work for me, same problem

    ReplyDelete
  8. Try to 'dnf install kernel-headers glibc-headers kernel-devel' first..

    ReplyDelete
  9. Thank you - i did that, then "For ease of use/convenience, you might also want to do this:" and then chmod +x then gave my user permissions.

    It's working now.

    ReplyDelete
  10. hello

    i have this error when i install it
    i try your post but nothing work with me

    ReplyDelete
  11. thats my output


    [root@RH Downloads]# ./VMware-Player-12.0.1-3160714.x86_64.bundle
    Extracting VMware Installer...done.

    (vmware-installer.py:11488): Gtk-WARNING **: Unable to locate theme engine in module_path: "adwaita",

    (vmware-installer.py:11488): Gtk-WARNING **: Unable to locate theme engine in module_path: "adwaita",
    /usr/share/themes/Adwaita/gtk-2.0/gtkrc:1163: error: unexpected identifier `direction', expected character `}'
    Gtk-Message: Failed to load module "pk-gtk-module": libpk-gtk-module.so: cannot open shared object file: No such file or directory
    Gtk-Message: Failed to load module "canberra-gtk-module": libcanberra-gtk-module.so: cannot open shared object file: No such file or directory
    [root@RH Downloads]# ./VMware-Workstation-Full-12.0.1-3160714.x86_64.bundle
    Extracting VMware Installer...done.

    (vmware-installer.py:11575): Gtk-WARNING **: Unable to locate theme engine in module_path: "adwaita",

    (vmware-installer.py:11575): Gtk-WARNING **: Unable to locate theme engine in module_path: "adwaita",
    /usr/share/themes/Adwaita/gtk-2.0/gtkrc:1163: error: unexpected identifier `direction', expected character `}'
    Gtk-Message: Failed to load module "pk-gtk-module": libpk-gtk-module.so: cannot open shared object file: No such file or directory
    Gtk-Message: Failed to load module "canberra-gtk-module": libcanberra-gtk-module.so: cannot open shared object file: No such file or directory

    ReplyDelete
  12. libpk-gtk-module.so
    libcanberra-gtk-module.so
    this package installed

    ReplyDelete
  13. Hi Hareth,
    I don't think that's the issue here.. I have the same error message but VMW12 works for me.
    Could you try running the setup like this:
    VMWARE_USE_SHIPPED_LIBS=force ./VMware-Workstation-Full-12.0.1-3160714.x86_64.bundle

    ReplyDelete
  14. did not work for me, because of newer libs.
    this helped :
    cd /usr/lib/vmware/lib
    LIB=.4600.2
    for mylib in $(ls /usr/lib64/lib*4600*); do /bin/cp -afv $mylib $(basename $mylib $LIB )/$(basename $mylib $LIB ); done

    ReplyDelete
    Replies
    1. Hi George,
      Thanks for the heads up.. I have updated the instructions accordingnly.
      Regards,

      Delete
  15. hi there:
    i did this and untill now is working, im repeating this process cause the first time worked well and now, it seems to work again so, here it is:
    Upgrade to FEDORA 23

    run (as root) #vmplayer (dont start, dont work, do nothing)

    unninstall vmrare: VMWARE_USE_SHIPPED_LIBS=force vmware-installer --uninstall-product vmware-player

    Donk keep the system files

    install vmplayer again: VMWARE_USE_SHIPPED_LIBS=force ./VMware-Player-7.1.3-3206955.x86_64.bundle

    install internal components of VMPLAYER: VMWARE_USE_SHIPPED_LIBS=force vmware-modconfig --console --install-all

    run VMPLAYER VMWARE_USE_SHIPPED_LIBS=force vmplayer

    the machine i compile is going, i will reboot and offer mor details soon

    thanks

    ReplyDelete
  16. Please mention this fix also works for Workstation 11 on FC23. No need for additional commands or edits. fix is working "out-of-the-box"

    ReplyDelete
  17. Working now! Thank you so much! Tested in Fedora 23 with kernel 4.2.6-301.fc23.x86_64 using VMware® Workstation 12 Player 12.1.0 build-3272444

    ReplyDelete
  18. This comment has been removed by the author.

    ReplyDelete
  19. 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

    ReplyDelete
    Replies
    1. Thanks Andy, this worked perfectly for me using VMWare WS 11.1.3 on FC23.
      // Peter

      Delete
    2. This comment has been removed by the author.

      Delete
  20. I just upgraded to 12.1 on FC23 and now vmblock does not load:

    vmware-modconfig --console --build-mod vmblock
    make: Entering directory '/tmp/modconfig-xlQV55/vmblock-only'
    Using kernel build system.
    /usr/bin/make -C /lib/modules/4.2.6-301.fc23.x86_64/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
    MODULEBUILDDIR= modules
    make[1]: Entering directory '/usr/src/kernels/4.2.6-301.fc23.x86_64'
    CC [M] /tmp/modconfig-xlQV55/vmblock-only/linux/filesystem.o
    CC [M] /tmp/modconfig-xlQV55/vmblock-only/linux/dentry.o
    CC [M] /tmp/modconfig-xlQV55/vmblock-only/linux/stubs.o
    CC [M] /tmp/modconfig-xlQV55/vmblock-only/linux/file.o
    CC [M] /tmp/modconfig-xlQV55/vmblock-only/linux/block.o
    /tmp/modconfig-xlQV55/vmblock-only/linux/dentry.c:38:20: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
    .d_revalidate = DentryOpRevalidate,
    ^
    /tmp/modconfig-xlQV55/vmblock-only/linux/dentry.c:38:20: note: (near initialization for ‘LinkDentryOps.d_revalidate’)
    /tmp/modconfig-xlQV55/vmblock-only/linux/dentry.c: In function ‘DentryOpRevalidate’:
    /tmp/modconfig-xlQV55/vmblock-only/linux/dentry.c:66:21: error: storage size of ‘actualNd’ isn’t known
    struct nameidata actualNd;
    ^
    ...

    ReplyDelete
    Replies
    1. Just to let everyone know, I commented out the startup of vmblock from the /etc/init.d/vmware service file and everything started up fine for me.

      Delete
    2. Devon,
      I found a link to a procdure that worked for me to patch vmblock so it would compile on F23:

      http://forums.fedoraforum.org/showthread.php?t=307490

      The procedure is copied here:
      $ cd /usr/lib/vmware/modules/source
      $ cp vmblock.tar{,.orig}
      $ tar xvf vmblock.tar
      $ cd vmblock-only
      $ curl -O https://gist.githubusercontent.com/eru/f3352e728d6661491462/raw/be1c373c3a4e6032e54b12e9075fafc88cd48a0c/vmblock.patch
      $ patch -p0 < vmblock.patch
      $ cd ..
      $ tar cvf vmblock.tar vmblock-only
      $ vmware-modconfig --console --build-mod vmblock
      $ vmware-modconfig --console --install-pbm vmblock

      Delete
  21. Bruno Vachon, Malterie Frontenac inc.

    Thanks so much Vincent for the info and the Update_VMW.sh Script. Was struggling to Get Workstation 12.1 to work on Fedora 23. After a clean Install of Fedora, did a complete update ( # dnf update) rebooted, did # dnf install kernel-headers kernel-devel gcc, installed VMware, ran your scipt. And Voila!!!! it worked.

    ReplyDelete
  22. I confirm this working on Workstation 11 as well

    ReplyDelete
  23. Thanks a lot saved it worked as a charm

    ReplyDelete
  24. Your script worked perfect on 12.1 .
    Do you have any idea how to get the tray icon working with ws12 on f23 with kde?

    ReplyDelete
  25. Thank you; for the past several years, it's always been a struggle to get vmware working on Fedora. The recipe worked great for me.

    ReplyDelete
  26. Thank you so much , it worked for me :)

    ReplyDelete
  27. Hi, Is there a way to fix the DNS issue on Windows Guest machines?

    ReplyDelete
    Replies
    1. I set the DNS to use Google DNS and that fixed that.

      Delete
  28. I know this is outside the scope of this post (and thanks for this post, by the way) but I'm trying to install VMware Workstation 10 on Fedora 23 and am having issues. I went through the install process and I believe it installs but when I run 'VMWARE_USE_SHIPPED_LIBS=force vmware' (because selecting the icon in Gnome doesn't launch anything) I get a window prompt 'Before you can run VMware, several modules must be compiled and loaded into the running kernel'. I select Install, type my password and nothing happens.
    I had already run your first steps:

    $ sudo su -

    # dnf install kernel-headers kernel-devel gcc glibc-headers
    # vmware-modconfig --console --install-all

    And the last entry from that states 'Unable to install all modules. See log for details.'

    I can send logs, if it helps.

    ReplyDelete
    Replies
    1. Hi Ed,
      I am not sure if the VMW10 kernel modules will compile on F23 (gcc5, kernel 4.[23].x, etc..)
      Do you get any compile errors when you run the above commands?
      If so, then you may have to patch the source files under /usr/lib/vmware/modules/source/*tar to get your VMW10 modules to compile on F23.
      Regards,
      Vincent

      Delete
    2. Hi Ed,
      I am not sure if the VMW10 kernel modules will compile on F23 (gcc5, kernel 4.[23].x, etc..)
      Do you get any compile errors when you run the above commands?
      If so, then you may have to patch the source files under /usr/lib/vmware/modules/source/*tar to get your VMW10 modules to compile on F23.
      Regards,
      Vincent

      Delete
    3. I see a lot of errors when I run 'vmware-modconfig --console --install-all'.

      Delete
  29. Hi Vincent,

    I followed your guide, but when I execute "sudo vmware-modconfig --console --install-all" I got an error at the end: "Unable to install all modules. See log for details." I installed all the stuffs at the beginning of your guide

    ReplyDelete
  30. Thanks so much, you saved me a lot of time!!!!!! :D

    ReplyDelete
  31. it is working for me, thank you

    ReplyDelete
  32. IT's still not working...gething this error while running VMWARE_USE_SHIPPED_LIBS=force vmware


    2016-03-02T15:30:58.714+05:30| vthread-4| I125: found symbol version file /lib/modules/4.4.2-301.fc23.x86_64/build/Module.symvers
    2016-03-02T15:30:58.714+05:30| vthread-4| I125: Reading symbol versions from /lib/modules/4.4.2-301.fc23.x86_64/build/Module.symvers.
    2016-03-02T15:30:58.730+05:30| vthread-4| I125: Read 16483 symbol versions
    2016-03-02T15:30:58.730+05:30| vthread-4| I125: Invoking modinfo on "vmmon".
    2016-03-02T15:30:58.732+05:30| vthread-4| I125: "/sbin/modinfo" exited with status 256.
    2016-03-02T15:30:58.808+05:30| vthread-4| I125: Setting destination path for vmmon to "/lib/modules/4.4.2-301.fc23.x86_64/misc/vmmon.ko".
    2016-03-02T15:30:58.808+05:30| vthread-4| I125: Extracting the vmmon source from "/usr/lib/vmware/modules/source/vmmon.tar".
    2016-03-02T15:30:58.815+05:30| vthread-4| I125: Successfully extracted the vmmon source.
    2016-03-02T15:30:58.815+05:30| vthread-4| I125: Building module with command "/usr/bin/make -j4 -C /tmp/modconfig-53zSTc/vmmon-only auto-build HEADER_DIR=/lib/modules/4.4.2-301.fc23.x86_64/build/include CC=/usr/bin/gcc IS_GCC_3=no"
    2016-03-02T15:31:00.159+05:30| vthread-4| W115: Failed to build vmmon. Failed to execute the build command.


    can somebody help ???
    thanks in advance

    ReplyDelete
  33. it's still on working on my fedora 23 even after following each of your steps..

    log file is showing as follow



    [root@localhost ~]# tail /tmp/vmware-root/vmware-9637.log
    2016-03-02T19:46:54.725+05:30| vthread-4| I125: found symbol version file /lib/modules/4.4.2-301.fc23.x86_64/build/Module.symvers
    2016-03-02T19:46:54.725+05:30| vthread-4| I125: Reading symbol versions from /lib/modules/4.4.2-301.fc23.x86_64/build/Module.symvers.
    2016-03-02T19:46:54.740+05:30| vthread-4| I125: Read 16483 symbol versions
    2016-03-02T19:46:54.740+05:30| vthread-4| I125: Invoking modinfo on "vmmon".
    2016-03-02T19:46:54.744+05:30| vthread-4| I125: "/sbin/modinfo" exited with status 256.
    2016-03-02T19:46:54.904+05:30| vthread-4| I125: Setting destination path for vmmon to "/lib/modules/4.4.2-301.fc23.x86_64/misc/vmmon.ko".
    2016-03-02T19:46:54.904+05:30| vthread-4| I125: Extracting the vmmon source from "/usr/lib/vmware/modules/source/vmmon.tar".
    2016-03-02T19:46:54.916+05:30| vthread-4| I125: Successfully extracted the vmmon source.
    2016-03-02T19:46:54.916+05:30| vthread-4| I125: Building module with command "/usr/bin/make -j1 -C /tmp/modconfig-PTTmjZ/vmmon-only auto-build HEADER_DIR=/lib/modules/4.4.2-301.fc23.x86_64/build/include CC=/usr/bin/gcc IS_GCC_3=no"
    2016-03-02T19:46:56.751+05:30| vthread-4| W115: Failed to build vmmon. Failed to execute the build command.


    please help me..!!!!

    ReplyDelete
    Replies
    1. What version of VMW are you using? I don't see that issue on 12.1.0:
      [root@skullcap source]# tar xf vmmon.tar
      [root@skullcap source]# cd vmmon-only/
      [root@skullcap vmmon-only]# gmake
      Using kernel build system.
      gmake -C /lib/modules/4.4.2-301.fc23.x86_64/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
      MODULEBUILDDIR= modules
      gmake[1]: Entering directory '/usr/src/kernels/4.4.2-301.fc23.x86_64'
      CC [M] /usr/lib/vmware/modules/source/vmmon-only/linux/driverLog.o
      CC [M] /usr/lib/vmware/modules/source/vmmon-only/linux/driver.o
      /usr/lib/vmware/modules/source/vmmon-only/linux/driver.c:1283:1: warning: always_inline function might not be inlinable [-Wattributes]
      LinuxDriverSyncReadTSCs(uint64 *delta) // OUT: TSC max - TSC min
      ^
      CC [M] /usr/lib/vmware/modules/source/vmmon-only/linux/hostif.o
      CC [M] /usr/lib/vmware/modules/source/vmmon-only/common/memtrack.o
      CC [M] /usr/lib/vmware/modules/source/vmmon-only/common/apic.o
      CC [M] /usr/lib/vmware/modules/source/vmmon-only/common/vmx86.o
      CC [M] /usr/lib/vmware/modules/source/vmmon-only/common/cpuid.o
      CC [M] /usr/lib/vmware/modules/source/vmmon-only/common/task.o
      CC [M] /usr/lib/vmware/modules/source/vmmon-only/common/hashFunc.o
      CC [M] /usr/lib/vmware/modules/source/vmmon-only/common/comport.o
      CC [M] /usr/lib/vmware/modules/source/vmmon-only/common/phystrack.o
      CC [M] /usr/lib/vmware/modules/source/vmmon-only/vmcore/moduleloop.o
      LD [M] /usr/lib/vmware/modules/source/vmmon-only/vmmon.o
      Building modules, stage 2.
      MODPOST 1 modules
      CC /usr/lib/vmware/modules/source/vmmon-only/vmmon.mod.o
      LD [M] /usr/lib/vmware/modules/source/vmmon-only/vmmon.ko
      gmake[1]: Leaving directory '/usr/src/kernels/4.4.2-301.fc23.x86_64'
      gmake -C $PWD SRCROOT=$PWD/. \
      MODULEBUILDDIR= postbuild
      gmake[1]: Entering directory '/usr/lib/vmware/modules/source/vmmon-only'
      gmake[1]: 'postbuild' is up to date.
      gmake[1]: Leaving directory '/usr/lib/vmware/modules/source/vmmon-only'
      cp -f vmmon.ko ./../vmmon.o

      Delete
    2. hi vincent..


      I am using VMW v12.0.0

      and below is the error i got when i excuted this command..


      [root@sanjeev-fedora vmmon-only]# gmake
      Using kernel build system.
      gmake -C /lib/modules/4.4.2-301.fc23.x86_64/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
      MODULEBUILDDIR= modules
      gmake[1]: Entering directory '/usr/src/kernels/4.4.2-301.fc23.x86_64'
      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
      ^
      scripts/Makefile.build:258: recipe for target '/usr/lib/vmware/modules/source/vmmon-only/linux/driver.o' failed
      gmake[2]: *** [/usr/lib/vmware/modules/source/vmmon-only/linux/driver.o] Error 1
      Makefile:1388: recipe for target '_module_/usr/lib/vmware/modules/source/vmmon-only' failed
      gmake[1]: *** [_module_/usr/lib/vmware/modules/source/vmmon-only] Error 2
      gmake[1]: Leaving directory '/usr/src/kernels/4.4.2-301.fc23.x86_64'
      Makefile:120: recipe for target 'vmmon.ko' failed
      gmake: *** [vmmon.ko] Error 2

      Delete
    3. Hi Sanjeev,
      Could you try the following payload: https://drive.google.com/file/d/0B_pJCAvWyfVqNHYxc2NReFVuM1E/view?usp=sharing
      extract as root under '/'. This is a copy of the modules code on my machine and it seems to work fine on F23 with 4.4.x kernels..

      Delete
    4. Hi Vincent,

      It worked for me, vmmon module started loading and my VMwareworkstation 12 is working fine now..
      Thank you very very much Vincent as i was looking for help for a long time, i am happy that i came acrosss this website..

      Keep helping people like this Vincent

      Thanks

      Delete
  34. Just want to add that on my system with vmplayer 12.1 there is no /usr/bin/vmware-netcfg file. Here is what I get when I try to locate it;
    sudo find /usr -name vmware-netcfg
    /usr/lib/vmware/bin/vmware-netcfg
    $ file /usr/lib/vmware/bin/vmware-netcfg
    /usr/lib/vmware/bin/vmware-netcfg: symbolic link to /usr/lib/vmware/bin/appLoader
    $ file /usr/lib/vmware/bin/appLoader
    /usr/lib/vmware/bin/appLoader: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.9, BuildID[sha1]=00c0aaa034694f10a70c27b5c6fda84963a054a6, stripped

    For now I just worked around it by setting a static DNS in the virtual machine, but this is problematic as it does not pick up DNS changes due to VPN's and such.

    ReplyDelete
  35. Thanks dude!
    This works perfectly !!!

    ReplyDelete
  36. Your solution perfectly works for me:

    VMware® Workstation 12 Player 12.1.0 build-3272444
    Linux w550s.vatev 4.4.5-300.fc23.x86_64+debug #1 SMP Thu Mar 10 17:37:59 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

    using Update_VMW.sh - no complications


    Thank you!

    ReplyDelete
  37. Thank you Sir for a solid easy to follow solution, worked as stated

    VMWARE Player 12.1.0 build-3272444
    Fedora 23 4.4.6-301.fc23.x86_64

    ReplyDelete
  38. With your script I fixed also VMware Workstation 12 Player 12.1.1 build-3770994 on Fedora 23.
    Thanks alot!

    ReplyDelete
  39. The vmware-netcfg can't work.

    ReplyDelete
    Replies
    1. It does.
      Add this to /etc/vmware/bootstrap:
      export VMWARE_USE_SHIPPED_LIBS=force

      Delete
  40. You are the man! Thanks for this!

    ReplyDelete
  41. Thanks. It's work on Fedora 24 Beta...

    ReplyDelete
  42. This comment has been removed by the author.

    ReplyDelete
  43. Aw, man. Thank you for this. Much appreciated.

    ReplyDelete
  44. For me it'ok now... Thanks very much.

    ReplyDelete
  45. do u have any solution for kernel 4.5.7 ?

    ReplyDelete
    Replies
    1. What's the issue with 4.5.7?
      [root@skullcap ~]# modinfo vmmon
      filename: /lib/modules/4.5.7-200.fc23.x86_64/misc/vmmon.ko
      supported: external
      license: GPL v2
      description: VMware Virtual Machine Monitor.
      author: VMware, Inc.
      depends:
      vermagic: 4.5.7-200.fc23.x86_64 SMP mod_unload
      [root@skullcap ~]# systemctl status vmware
      ● vmware.service - SYSV: This service starts and stops VMware services
      Loaded: loaded (/etc/rc.d/init.d/vmware)
      Active: active (running) since Mon 2016-06-20 18:53:08 EDT; 2 days ago
      Docs: man:systemd-sysv-generator(8)
      Process: 5669 ExecStart=/etc/rc.d/init.d/vmware start (code=exited, status=0/SUCCESS)
      CGroup: /system.slice/vmware.service
      ├─1728 /usr/sbin/vmware-authdlauncher
      ├─5823 /usr/bin/vmnet-bridge -s 6 -d /var/run/vmnet-bridge-0.pid -n 0 -ienp0s25
      ├─5825 /usr/bin/vmnet-bridge -s 6 -d /var/run/vmnet-bridge-1.pid -n 1 -iwlp3s0
      ├─6462 /usr/bin/vmnet-netifup -s 6 -d /var/run/vmnet-netifup-vmnet12.pid /dev/vmnet12 ...
      ├─6530 /usr/bin/vmnet-dhcpd -s 6 -cf /etc/vmware/vmnet12/dhcpd/dhcpd.conf -lf /etc/vmw...
      ├─6558 /usr/bin/vmnet-natd -s 6 -m /etc/vmware/vmnet14/nat.mac -c /etc/vmware/vmnet14/...
      ├─6578 /usr/bin/vmnet-netifup -s 6 -d /var/run/vmnet-netifup-vmnet14.pid /dev/vmnet14 ...
      └─6608 /usr/bin/vmnet-dhcpd -s 6 -cf /etc/vmware/vmnet14/dhcpd/dhcpd.conf -lf /etc/vmw...

      Jun 20 18:53:08 skullcap vmnet-dhcpd[6581]: Please contribute if you find this software useful.
      Jun 20 18:53:08 skullcap vmnet-dhcpd[6581]: For info, please visit http://www.isc.org/dhcp-con...tml
      Jun 20 18:53:08 skullcap vmnet-dhcpd[6581]:
      Jun 20 18:53:08 skullcap vmware[5669]: Virtual ethernet[ OK ]
      Jun 20 18:53:08 skullcap vmware[5669]: VMware Authentication Daemon[ OK ]
      Jun 20 18:53:08 skullcap vmware[5669]: Shared Memory Available[ OK ]
      Jun 20 18:53:08 skullcap systemd[1]: Started SYSV: This service starts and stops VMware services.
      Jun 21 15:53:10 skullcap vmnet-natd[6558]: RTM_NEWADDR: index:2, addr:10.17.17.218
      Jun 22 05:53:11 skullcap vmnet-natd[6558]: RTM_NEWADDR: index:2, addr:10.17.17.218
      Jun 22 22:30:39 skullcap vmnet-natd[6558]: RTM_NEWADDR: index:2, addr:10.17.17.218
      Hint: Some lines were ellipsized, use -l to show in full.

      Delete
    2. actually i can open vmware without problem but when i log in to my mac os el capitan , whole the system session got crashed and it throw me to login screen on host system!!! i really need help! plz tell me where to check for the problem! it works fine till i upgrade kernel

      Delete
  46. The above trick still works with Fedora 24, just the version of the libs has changed to 4800.1, as such the commands are;

    # cd /usr/lib/vmware/lib
    # /bin/cp -afv /usr/lib64/libgio-2.0.so.0.4800.1 libgio-2.0.so.0/libgio-2.0.so.0
    # /bin/cp -afv /usr/lib64/libglib-2.0.so.0.4800.1 libglib-2.0.so.0/libglib-2.0.so.0
    # /bin/cp -afv /usr/lib64/libgmodule-2.0.so.0.4800.1 libgmodule-2.0.so.0/libgmodule-2.0.so.0
    # /bin/cp -afv /usr/lib64/libgobject-2.0.so.0.4800.1 libgobject-2.0.so.0/libgobject-2.0.so.0
    # /bin/cp -afv /usr/lib64/libgthread-2.0.so.0.4800.1 libgthread-2.0.so.0/libgthread-2.0.so.0

    ReplyDelete
  47. This also is working on Fedora 24, you should edit Update_VMW.sh Line 12 replacing this KVER=$(uname -r|grep fc23) by KVER=$(uname -r|grep fc24).

    regards

    ReplyDelete
  48. Thank you. Worked like a charm on Fedora 24.

    ReplyDelete
  49. Thank you. I have been looking for a solution compatible with Fedora 24. Much appreciated!

    ReplyDelete
  50. This worked until Workstation 12 upgraded to 12.1. Now I get a message that 'several modules must be compiled and loaded into the running kernel'.

    ReplyDelete
    Replies
    1. Sorry. I forgot to state that I am running Fedora 24.

      Delete
  51. Hi Vincent. I've updated your script to use the LD_PRELOAD method in my previous post, so the libraries don't need to be copied.

    You can find it here -

    http://pastebin.com/UgKQukVb

    The trick is to use LD_PRELOAD to load the libglibmm included with VMware -

    echo "export LD_PRELOAD=/usr/lib/vmware/lib/libglibmm-2.4.so.1/libglibmm-2.4.so.1" >> /etc/vmware/bootstrap

    ReplyDelete
    Replies
    1. Actually, this will be better as it will take into account any existing LD_PRELOAD libraries -

      echo 'export LD_PRELOAD=/usr/lib/vmware/lib/libglibmm-2.4.so.1/libglibmm-2.4.so.1:$LD_PRELOAD' >> /etc/vmware/bootstrap

      I've updated the script and it should be working as expected.

      Delete
    2. This update script does not complete for me running kernel 4.6.4-301.fc24.x86_64.

      (II) /usr/lib/vmware/lib/libvmwareui.so/libvmwareui.so present, continuing...
      (II) Patching /etc/vmware/bootstrap...
      (II) Extracting /usr/lib/vmware/modules/source/vmmon.tar into /tmp/VMWFedora232425O1rprue...
      (II) Extracting /usr/lib/vmware/modules/source/vmnet.tar into /tmp/VMWFedora232425O1rprue...
      (II) Extracting /usr/lib/vmware/modules/source/vmblock.tar into /tmp/VMWFedora232425O1rprue...
      (II) Patching modules...
      patching file vmblock-only/linux/control.c
      patching file vmblock-only/linux/dentry.c
      patching file vmblock-only/linux/file.c
      patching file vmblock-only/linux/filesystem.c
      patching file vmblock-only/linux/inode.c
      patching file vmblock-only/shared/compat_namei.h
      can't find file to patch at input line 282
      Perhaps you used the wrong -p or --strip option?
      The text leading up to this was:
      --------------------------
      |diff -ur vmw_mods.orig/vmmon-only/linux/hostif.c vmw_mods/vmmon-only/linux/hostif.c
      |--- vmw_mods.orig/vmmon-only/linux/hostif.c 2016-04-14 19:48:44.000000000 -0400
      |+++ vmw_mods/vmmon-only/linux/hostif.c 2016-05-25 10:51:47.677306367 -0400
      --------------------------
      File to patch:

      Delete
    3. Which version of VMWare workstation are you running?

      Delete
  52. thanks so much. I was dead in the water until I reviewed then used your script update from 20160525, now I'm back up and working.

    ReplyDelete
  53. Thank you. I have been looking for a solution compatible with Fedora 24. Much appreciated!

    ReplyDelete
  54. This comment has been removed by the author.

    ReplyDelete
  55. This comment has been removed by the author.

    ReplyDelete
  56. My kernel got upgraded to 4.6.4 today and my VMWare Workstion 12 stopped working. I got the error message about needing to re-compile the kernal modules, so I ran the latest version of the script and now VMWare will start but the GUI is screwed up and none of the menu items on the top bar (control functions) are functioning correctly. Has anyone else seen this?

    ReplyDelete
    Replies
    1. A little more information: I've been running Fedora 23 and Workstation 12 with 4.5.x without any issues once I followed the instructions above. I did the kernel upgrade earlier today, and Workstation 12 wouldn't start and told me I needed to recompile the Kernel Modules. First I went back to the old kernel and checked to make sure that Workstation would at least start (it did, but networking didn't work). So I rebooted back to the new kernel and ran Andy's modified version of Vincent's script. Now VMWare workstation 12 will start and the guests run and have network access but the VMWare GUI/management tabs are not working correctly (lots of red X boxes instead of icons for things like PowerDown, Suspend, Unity, etc.) When I checked the logs at /var/log/vmware/vmware-usbarb-x I found the following (not sure if it's related to the GUI issue or not):

      2016-07-22T23:46:44.607-04:00| usbArb| I125: DictionaryLoad: Cannot open file "/usr/lib/vmware/settings": No such file or directory.
      2016-07-22T23:46:44.607-04:00| usbArb| I125: PREF Optional preferences file not found at /usr/lib/vmware/settings. Using default values.
      2016-07-22T23:46:44.608-04:00| usbArb| I125: Could not expand environment variable HOME.
      2016-07-22T23:46:44.608-04:00| usbArb| I125: DictionaryLoad: Cannot open file "~/.vmware/config": No such file or directory.
      2016-07-22T23:46:44.608-04:00| usbArb| I125: PREF Optional preferences file not found at ~/.vmware/config. Using default values.
      2016-07-22T23:46:44.608-04:00| usbArb| I125: Could not expand environment variable HOME.
      2016-07-22T23:46:44.608-04:00| usbArb| I125: PREF Disabling user preferences because disableUserPreferences is set.
      2016-07-22T23:46:44.608-04:00| usbArb| I125: PREF Failed to load user preferences.

      Delete
    2. Hi Jan,
      My kernel got upgraded to 4.6.4 as well and I hadn't noticed an issue with VMW 12.1.1. I'll check this monday.
      The warnings about the missing files do not look too good to me. And also your HOME env variable seems missing.
      Are you confident that your VMW install isn't corrupted?
      Regards,
      Vincent

      Delete
    3. @Alexandre I am also running Fedora 24 but had an issue after upgrading to Workstation 12.1.1. What did you do to get yours working?

      Delete
    4. Vincent -

      not completely confident it's not corrupted, but it was working before the kernel upgrade.

      Delete
    5. So, after some challenges trying to re-install VMWare Workstation - it doesn't completely clean up even if you tell it to delete all the system files (make sure to remove /etc/vmware and the files that were created by the script above), my VMWare Workstation 12 is fully functional again, so somehow, my install did get corrupted.

      Delete
    6. @Jan Bohrer Perhaps I need to go that route also. What did you do to uninstall and reinstall? Also, are you running 12.1.1?

      Delete
  57. I upgrade to fedora 24 with the DNF system, then when trying to recompile modules VMWARE, errors were found, and only use the script here, then turned to run and recompile everything!

    Thank you!

    ReplyDelete
  58. It worked for me. I used the "Update_VMW.sh" (20160630) for VMWare Workstation Player 12.1.1 on Korora 24 (Kernel 4.6.4-301). Please, excuse my bad english.

    Thanks a lot!

    ReplyDelete
  59. VMware's desktop software runs on Microsoft Windows, Linux, and Mac OS X, while its enterprise software hypervisors for servers, VMware ESX and VMware ESXi, are bare-metal hypervisors that run directly on server hardware without requiring an additional underlying operating system and this blog has great idea on VMware. Learn VMware from the best VMware Online Training in your locality at CatchExperts.com

    ReplyDelete
  60. It worked for me. Thanks a lot!!!

    ReplyDelete
  61. After upgrade to Fedora 24 vmware stop starting service shows
    Tried to run latest sh file shows "Please install GNU patch (/usr/bin/patch) to patch the VMWare kernel modules."
    May I ask what's the GNU patch for vmware kernel?

    ReplyDelete
    Replies
    1. David Lee, there is a program called "patch" by the GNU people. You can install it with "dnf install patch".

      Delete
  62. Error: Unable to start services. Keep asking for installing kernel module updater & failing.

    ReplyDelete
  63. I'm using VMware Workstation 12.1.1 build 3770994 on Fedora 24. I just updated to kernel 4.6.5-300.fc24.x86_64, but the latest Update_VMW.sh (20160630) fails to patch the source tar files correctly resulting in fatal compile errors for vmnet.ko and vmmon.ko. The error in both cases during the make is "too many arguments to function 'get_user_pages'". I'll keep doing research for a solution, but if anyone knows how to fix or patch, let me know. Thanks.

    ReplyDelete
    Replies
    1. Was able to fix the problem with these:
      https://wiki.archlinux.org/index.php/VMware#Kernel_modules_fail_to_build_after_Linux_4.6
      https://bugzilla.redhat.com/show_bug.cgi?id=1278896
      https://communities.vmware.com/thread/536705?start=0&tstart=0

      Script I use:

      #!/bin/bash

      cd /usr/lib/vmware/modules/source || exit 1

      tar xf vmmon.tar
      [ ! -f vmmon.old.tar ] && mv vmmon.tar vmmon.old.tar
      # In case you've run this before, remove extra _remote
      sed -i -e 's/get_user_pages\(_remote\)*/get_user_pages_remote/g' vmmon-only/linux/hostif.c
      tar cf vmmon.tar vmmon-only
      rm -rf vmmon-only

      tar xf vmnet.tar
      [ ! -f vmnet.old.tar ] && mv vmnet.tar vmnet.old.tar
      # In case you've run this before, remove extra _remote
      sed -i -e 's/get_user_pages\(_remote\)*/get_user_pages_remote/g' vmnet-only/userif.c
      # The line below doesn't compile on kernel 4.6.5, so I removed it for now. Might be for 4.7 kernel.
      #sed -i -e 's/dev->trans_start = jiffies/netif_trans_update\(dev\)/g' vmnet-only/netif.c
      tar cf vmnet.tar vmnet-only
      rm -rf vmnet-only

      Delete
  64. I encounter the same problem when I run the command

    sudo vmware-modconfig --console --install-all
    Failed to setup build environment.

    I have got the strace.txt log, but I have no idea how to analyse it.

    https://www.dropbox.com/s/37ultmmagtp00at/strace.txt?dl=0

    ReplyDelete
    Replies
    1. This comment has been removed by the author.

      Delete
    2. Your kernel headers (rpm -q kernel-headers) have to match the running kernel (uname -r).

      Delete
    3. rpm -q kernel-headers
      kernel-headers-4.5.5-300.fc24.x86_64
      yes, it is same with the uname -r

      Delete
    4. At the end of your strace output, there's this:
      3514 write(5, "2016-08-18T18:26:24.553+01:00| modconfig| W115: Header path \"(null)\" is not suitale for building.\n", 98) = 98
      3514 write(2, "Failed to setup build environment.\n", 35) = 35
      It's difficult to say what went wrong without further details..

      Ditch strace and use this instead:

      bash -x /usr/bin/vmware-modconfig

      Delete
    5. I update my Fedora 24 and the kernel is 4.6.6 now, and this command is work now. However, when I try to run the command, the build is failed(The log is as follow), according to the log, I found it is the error for get_user_pages() arguments is wrong.


      In file included from include/linux/highmem.h:7:0,
      from /tmp/modconfig-1AKzle/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,
      ^~~~~~~~~~~~~~
      /tmp/modconfig-1AKzle/vmnet-only/userif.c:116:13: error: too many arguments to function ‘get_user_pages’
      retval = get_user_pages(current, current->mm, addr,
      ^~~~~~~~~~~~~~
      ....

      scripts/Makefile.build:291: recipe for target '/tmp/modconfig-1AKzle/vmnet-only/userif.o' failed
      make[2]: *** [/tmp/modconfig-1AKzle/vmnet-only/userif.o] Error 1
      make[2]: *** Waiting for unfinished jobs....
      Makefile:1433: recipe for target '_module_/tmp/modconfig-1AKzle/vmnet-only' failed
      make[1]: *** [_module_/tmp/modconfig-1AKzle/vmnet-only] Error 2
      make[1]: Leaving directory '/usr/src/kernels/4.6.6-300.fc24.x86_64'
      Makefile:120: recipe for target 'vmnet.ko' failed
      make: *** [vmnet.ko] Error 2
      make: Leaving directory '/tmp/modconfig-1AKzle/vmnet-only'
      Unable to install all modules. See log for details.

      Delete
    6. Found the solution, let me try it and talk it later.

      https://communities.vmware.com/thread/536705?tstart=0

      Delete
    7. It works now!!

      I think you can update your solution

      1. Check the kernel, because the command "dnf install kernel-headers kernel-devel gcc glibc-headers" will install the latest kernel, so the system kernel should match it (update the Fedora will help)
      2. If the kernel updated to >4.4 (such as 4.6.6-300.fc24.x86_64), using the solution with the link below. I have shared the updated source code for the vmnet.tar and vmmon.tar, replace them with the original under the "/usr/lib/vmware/modules/source/".


      https://communities.vmware.com/thread/536705?tstart=0

      Delete
    8. Forgot to thank you very much!!

      Delete
    9. when first build the vmware-service is started failed, but when I start the application again, it work.

      Delete
    10. Xin, I've got a similar configuration as you...kernel 4.6.6 on Fedora 24. Did you do anything other than adding the "_remote" to one line to one file in each: vmmon.tar and vmnet.tar as referenced by RonanM Aug 9, 2016 7:24 AM on the link you provided above? I've done and re-done that change quite a few times (see notes below) and am still turning up no luck.

      Delete
  65. This comment has been removed by the author.

    ReplyDelete
    Replies
    1. Having difficulty with my post sticking here...please see below link with followup questions/problems using this script on Fedora 24... https://communities.vmware.com/message/2615771#2615771

      Delete
  66. Also note that when running the "systemctl status vmware.service" command, it shows the vmware.service as failed and that the "Virtual machine monitor" and "Virtual ethernet" services are failed, but the other three services (comm interface, socket family, and auth' daemon) are all ok.

    ReplyDelete
    Replies
    1. Bumping this as I'm still having issues (above) with 12.1.1 workstation player, FC24, and kernel version 4.6.6 I'm trying to see if anyone else has been successful with this configuration and what I might be able to do to resolve it. Any help is appreciated!

      Delete
  67. Replies
    1. Tuan, what version of VMware, Fedora, and the kernel are you running? I'm trying to see if anyone else has been successful with this configuration and what I might be able to do to resolve it.

      Delete
  68. This solution worked very well. Thank you very much.

    ReplyDelete
  69. i use the script but it write...
    (II) /usr/lib/vmware/lib/libvmwareui.so/libvmwareui.so present, continuing...
    (II) /etc/vmware/bootstrap already has VMWARE_USE_SHIPPED_LIBS, skipping..
    (II) Replacing /usr/lib/vmware/lib/libgio-2.0.so.0/libgio-2.0.so.0 ...
    '/usr/lib64/libgio-2.0.so.0' -> '/usr/lib/vmware/lib/libgio-2.0.so.0/libgio-2.0.so.0'
    (II) Replacing /usr/lib/vmware/lib/libglib-2.0.so.0/libglib-2.0.so.0 ...
    '/usr/lib64/libglib-2.0.so.0' -> '/usr/lib/vmware/lib/libglib-2.0.so.0/libglib-2.0.so.0'
    (II) Replacing /usr/lib/vmware/lib/libgmodule-2.0.so.0/libgmodule-2.0.so.0 ...
    '/usr/lib64/libgmodule-2.0.so.0' -> '/usr/lib/vmware/lib/libgmodule-2.0.so.0/libgmodule-2.0.so.0'
    (II) Replacing /usr/lib/vmware/lib/libgobject-2.0.so.0/libgobject-2.0.so.0 ...
    '/usr/lib64/libgobject-2.0.so.0' -> '/usr/lib/vmware/lib/libgobject-2.0.so.0/libgobject-2.0.so.0'
    (II) Replacing /usr/lib/vmware/lib/libgthread-2.0.so.0/libgthread-2.0.so.0 ...
    '/usr/lib64/libgthread-2.0.so.0' -> '/usr/lib/vmware/lib/libgthread-2.0.so.0/libgthread-2.0.so.0'
    (EE) Please install GNU patch (/usr/bin/patch) to patch the VMWare kernel modules..

    ReplyDelete
  70. This comment has been removed by the author.

    ReplyDelete
  71. Is there an updated version of the update_VMW.sh script that fixes some of the issues above... Once again a kernel update has killed my ability to run VMWare Workstation Pro 12 on Fedora 23. I tried the tricks that worked last time: reinstalling VMWare Workstation, deleteing /etc/vmware and /usr/lib/vmware and then running the update script from late June but that's not working.

    ReplyDelete
    Replies
    1. You need to describe the detail of your error.

      Delete
    2. I'm getting the error with the 2 kernel modules (fatal compile errors for vmnet.ko and vmmon.ko). I tried using the fix described in the Archwiki and it didn't work. I was hoping that Vincent's script had been updated to include the correct fix.

      Delete
    3. Okay, so I've got it working again. Turns out there were multiple issues with the vmnet.tar files. So I documented the steps I took to get my system working again (Fedora 23 with 4.7.2 kernel):

      #start in the source directory
      cd /usr/lib/vmware/modules/source

      #create a temp directory to work in and copy the files you need there
      mkdir -p /tmp/kernel_fixes
      cp vmnet.tar vmmon.tar /tmp/kernel_fixes

      #switch to the temp directory
      cd /tmp/kernel_fixes

      # fix the issues with vmmon.tar
      tar xf vmmon.tar
      mv vmmon.tar vmmon.old.tar
      sed -i -e 's/get_user_pages/get_user_pages_remote/g' vmmon-only/linux/hostif.c
      tar cf vmmon.tar vmmon-only

      #fix the issues with vmnet.tar (there are 2 issues here)
      tar xf vmnet.tar
      mv vmnet.tar vmnet.old.tar
      sed -i -e 's/get_user_pages/get_user_pages_remote/g' vmnet-only/userif.c
      sed -i -e 's/dev->trans_start = jiffies/netif_trans_update(dev)/g' vmnet-only/netif.c
      tar cf vmnet.tar vmnet-only

      mv /usr/lib/vmware/modules/source/vmmon.tar /usr/lib/vmware/modules/source/vmmon.tar.bak
      mv /usr/lib/vmware/modules/source/vmnet.tar /usr/lib/vmware/modules/source/vmnet.tar.bak

      cp vmmon.tar vmnet.tar /usr/lib/vmware/modules/source

      Then I ran Vincent's script and the vmware-modconfig command.

      Delete
    4. yes, that's right. This method is not available in the new kernel.

      http://rglinuxtech.com/?p=1746

      Delete
  72. Thanks Vincent for a great script that I use and point others toward regularly!

    I just upgraded to Fedora 24 (4.7.2-201.fc24.x86_64) and tried to rebuild the kernel modules using the great script linked from this post, however vmnet failed to build with the following error:
    /tmp/modconfig-2ExKq0/vmnet-only/netif.c: In function ‘VNetNetifStartXmit’:
    /tmp/modconfig-2ExKq0/vmnet-only/netif.c:468:7: error: ‘struct net_device’ has no member named ‘trans_start’; did you mean ‘mem_start’?
    dev->trans_start = jiffies;
    ^~
    scripts/Makefile.build:289: recipe for target '/tmp/modconfig-2ExKq0/vmnet-only/netif.o' failed
    make[2]: *** [/tmp/modconfig-2ExKq0/vmnet-only/netif.o] Error 1
    make[2]: *** Waiting for unfinished jobs....
    Makefile:1461: recipe for target '_module_/tmp/modconfig-2ExKq0/vmnet-only' failed
    make[1]: *** [_module_/tmp/modconfig-2ExKq0/vmnet-only] Error 2
    make[1]: Leaving directory '/usr/src/kernels/4.7.2-201.fc24.x86_64'
    Makefile:120: recipe for target 'vmnet.ko' failed
    make: *** [vmnet.ko] Error 2
    make: Leaving directory '/tmp/modconfig-2ExKq0/vmnet-only'
    Starting vmware (via systemctl): Job for vmware.service failed because the control process exited with error code. See "systemctl status vmware.service" and "journalctl -xe" for details.
    [FAILED]

    After some digging I found the following https://bbs.archlinux.org/viewtopic.php?id=215808 which indicates the fix is to edit netif.c and replace "dev->trans_start = jiffies" with "netif_trans_update(dev)".

    I made an inexpert addition to the script in order to make this change along with the other changes to that file, by adding the following after line 369:
    diff -ur vmw_mods.orig/vmnet-only/netif.c vmw_mods/vmnet-only/netif.c
    --- vmw_mods/vmnet-only/netif.c 2016-05-25 12:07:14.959944026 -0400
    +++ vmw_mods/vmnet-only/netif.c 2016-09-04 18:13:12.228212610 +0100
    @@ -465,7 +465,8 @@
    VNetSend(&netIf->port.jack, skb);

    netIf->stats.tx_packets++;
    - dev->trans_start = jiffies;
    + //dev->trans_start = jiffies;
    + netif_trans_update(dev); // Only for kernel 4.7 or later

    return 0;
    }

    After uninstalling vmware, deleting the .orig files which the script creates, reinstalling vmware, running my modified version of the script, and running `vmware-modconfig --console --install-all`; I am back up and running.

    I hope you can update your script when you have time, and can only dream that vmware will update their installer at some point! :)

    ReplyDelete
  73. Hi everyone,
    I'll be updating the script later tonight so that it fixes all of the latest (4.6.x and 4.7.x) issues.
    Please stay tuned.
    Regards,
    Vincent

    ReplyDelete
  74. Hi,
    I updated the script. Please pull down the new version.
    This was tested on FC24 with kernel 4.7.2.
    Regards,
    Vincent

    ReplyDelete
    Replies
    1. Did you just update the version from 20160630 or should there be a new link at the top of the blog?

      Delete
    2. Yes, it's the same link. I updated the script on github, just pull down the new version.
      Regards,
      Vincent

      Delete
    3. Vincent, thanks for the update! I'm still having problems (using FC24 and 4.7.2 also). I uninstalled VMW, deleted the /usr/lib/VMWare directory, did a fresh install of 12.1.1 player, and followed the above instructions using your new script. I'm not an expert at the inner workings of Linux, so any help would be greatly appreciated! I'd like to think I'm close, but am obviously missing something. Please see a capture of the terminal for all of this at the following link: https://gist.github.com/JohnTheLearner/b8bf0528a04b067f28d21498dd1c1347

      Delete
    4. Hi John,
      I read your capture (useful, thanks).
      I noticed you are using VMware player, not workstation.
      I'm only testing with VMware workstation.
      Also, after uninstalling vmware, I'd advise to:
      1) remove the vmware modules (they're most likely under /lib/modules/4.7.2-201.fc24.x86_64/misc)
      2) depmod -a
      3) reboot.

      then you could start again using the latest script..
      Regards,
      Vincent

      Delete
    5. Vincent, thanks for all your help...it works now. Here's what I was getting, and what I did, in case anyone else has the same challenges:
      Per your #1 above, I didn't see the modules there after uninstalling, but they do re-appear after installing and building the modules, etc. I did 2 & 3 before running everything again, but same results. When I run vmplayer, it launches the GUI just fine, but gives the following error: "Could not open /dev/vmmon: No such file or directory. Please make sure that the kernel module `vmmon' is loaded".

      I tried to use modprobe to load the vmmon and vmnet modules because of the above error, but was getting the following error: "modprobe -v vmmon
      insmod /lib/modules/4.7.2-201.fc24.x86_64/misc/vmmon.ko
      modprobe: ERROR: could not insert 'vmmon': Required key not available"
      I did some research (below link) and found that UEFI was what was disallowing the modules to load into the kernel. When I disable, they do work, but this isn't terribly peaceful as I know I've run VMware player before on the same machine without having to disable secure boot (on Ubuntu, then). If anyone has a fix for that, I'd be happy to try it...somehow get keys or indicate to the system that these two modules are ok??
      https://communities.vmware.com/thread/498399?start=0&tstart=0

      Delete
  75. Man!!! It's saved my life!!!
    Thank you!!!!

    ReplyDelete
  76. I just want to say thank you for saving my life several times now with this script, it just works and you keep it updated because Fedora breaks VMware with almost every other kernel update (not that it's their fault anyway). Thank you sir, beer is on me if I ever meet you in real life.

    ReplyDelete
  77. Thanks Vincent, this script saves my work every 2 or 3 months, when i update my fc24 and vmware stop working. Just to help if anyone else are having this problem, when run the script and the message show "(**) VMWare Workstation not detected, exit!"
    Check the lib directory on script "#Check presence of VMW", in script, the lib is "/usr/lib/vmware/lib/libvmwareui.so/libvmwareui.so" to detect your VMW, but in my case are "/usr/lib/vmware/lib/libvmwareui.so.0/libvmwareui.so.0", check your lib and change that line.

    ReplyDelete
  78. I did an inplace upgrade from fc23 to fc24 and vmware workstation 12.5 does not work.

    ReplyDelete
  79. I was struggling everytime Fedora updates. This makes life a lot easier.
    Much thanks.

    ReplyDelete
  80. As always thanks a lot for this!
    (for vmware-player users:)
    in the Update 20160921, you check for vmware.workstation (line 26), but that leaves out vmware-player users.
    i changed `vmware.workstation` to `vmware-player` like a cave man and the patch worked like charm.

    ReplyDelete
  81. I just upgraded to FC23 (from FC22) and had the same issue. The simplest fix is to uninstall vmware and install the latest version from VMWare.

    Uninstall vmware:
    https://pubs.vmware.com/workstation-9/topic/com.vmware.ws.get_started.doc/GUID-05E4C876-F32C-49D2-82B4-8C759691E7F5.html

    Get latest version (Workstation Player 12.5):
    https://www.vmware.com/products/player/playerpro-evaluation.html

    ReplyDelete
    Replies
    1. +1 to Mirko's solution for VMware Player: Uninstalling 12.1.1 and installing 12.5.1 solved my problems after fc24 updated from kernel 4.7.xx >> 4.8.4.

      Delete
    2. Mirko's solution is the -proper- solution. This kind of issue is better solved by the vendor itself.
      It's just too bad it took them so long to fix it.. :(
      I modified my script to only execute on VMW 12.0.x and 12.1.x as soon as they released 12.5.x
      Thanks

      Delete
  82. new issue for kernel 4.8, see http://rglinuxtech.com/?p=1788

    In ~/vmmon-only/linux/hostif.c, around line 1594, change
    unsigned int anonPages = global_page_state(NR_ANON_PAGES);
    to
    unsigned int anonPages = global_page_state(NR_ANON_MAPPED);


    ReplyDelete
  83. VMWare not work with Fedora 25 with kernel 4.9.3-200

    ReplyDelete
    Replies
    1. or with kernel 4.9.8-201. there are errors in vmmon-only/linux/hostif.c

      /tmp/modconfig-eLKgyV/vmmon-only/linux/hostif.c: In function ‘HostIFGetUserPage’:
      /tmp/modconfig-eLKgyV/vmmon-only/linux/hostif.c:1166:67: error: passing argument 5 of ‘get_user_pages’ from incompatible pointer type [-Werror=incompatible-pointer-types]
      retval = get_user_pages((unsigned long)uvAddr, numPages, 0, 0, ppages, NULL);
      ^~~~~~
      In file included from /tmp/modconfig-eLKgyV/vmmon-only/./include/compat_page.h:23:0,
      from /tmp/modconfig-eLKgyV/vmmon-only/linux/hostif.c:32:
      ./include/linux/mm.h:1280:6: note: expected ‘struct vm_area_struct **’ but argument is of type ‘struct page **’
      long get_user_pages(unsigned long start, unsigned long nr_pages,
      ^~~~~~~~~~~~~~
      /tmp/modconfig-eLKgyV/vmmon-only/linux/hostif.c:1166:13: error: too many arguments to function ‘get_user_pages’
      retval = get_user_pages((unsigned long)uvAddr, numPages, 0, 0, ppages, NULL);
      ^~~~~~~~~~~~~~
      In file included from /tmp/modconfig-eLKgyV/vmmon-only/./include/compat_page.h:23:0,
      from /tmp/modconfig-eLKgyV/vmmon-only/linux/hostif.c:32:
      ./include/linux/mm.h:1280:6: note: declared here
      long get_user_pages(unsigned long start, unsigned long nr_pages,
      ^~~~~~~~~~~~~~

      and a similar problem in vmnet-only/userif.c

      I've had a look, but the issue is a little too deep in the kernel for me.

      Delete
    2. Hi ndd, yes, this is currently broken, I am aware of that. I will fix that in the next few days. Please use VMW 12.5.2 instead (I believe it -should- work fine on kernels 4.9.x)

      Delete
  84. New issue, Kernel 4.9.11:


    make[1]: Entering directory '/tmp/modconfig-QMjGTH/vmnet-only'
    make[1]: 'postbuild' is up to date.
    make[1]: Leaving directory '/tmp/modconfig-QMjGTH/vmnet-only'
    cp -f vmnet.ko ./../vmnet.o
    make: Leaving directory '/tmp/modconfig-QMjGTH/vmnet-only'
    Starting vmware (via systemctl): Job for vmware.service failed because the control process exited with error code.
    See "systemctl status vmware.service" and "journalctl -xe" for details.
    [FAILED]
    Unable to start services

    ReplyDelete
    Replies
    1. Hi Jonatan, yes, this is currently broken, I am aware of that. I will fix that in the next few days. Please use VMW 12.5.2 instead (should be ok for 4.9.x kernels)

      Delete

LVM2 bootdisk encapsulation on RHEL7/Centos7

Introduction Hi everyone, Life on overcloud nodes was simple back then and everybody loved that single 'root' partition on th...