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:
# 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:
$ 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:
# 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)
it doesn't work on my machine:
ReplyDelete[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]#
Hi Jayjay, yes, sorry. It's in /usr/lib/vmware/lib, not /usr/lib/vmware
ReplyDeleteRegards,
It works :D, thank you sir
ReplyDeletethe vm fail to start again since upgrade to kernel 4.7.2-201, i've to start it with kernel 4.6.7-300
DeleteOK it works now, have to dnf install kernel-headers kernel-devel gcc glibc-headers again with the new kernel
Deletenew fedora user trying to use vmware...this is as far as I got...
ReplyDelete[root@localhost ~]# vmware-modconfig --console --install-all
Failed to setup build environment.
help???
Hi Brad,
ReplyDeleteDo 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
I think so, laptop at work will check tomorrow thanks...
DeleteI 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.
DeleteHi Brad,
ReplyDeleteDo 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
seem they are already installed...
Deleteroot@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!
Is the output of vmware-modconfig pointing to any log files?
DeleteYou 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
thanks for the continued help. yes it is the trial version version 12...here is the output...
Delete[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.
Hi Brad,
DeleteAnd 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,
actually....thank you :) btw I have selinux in permissive mode
Delete[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)
Hi Brad,
DeleteI 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
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 :)
DeleteThis doesnt work for me, same problem
ReplyDeleteTry to 'dnf install kernel-headers glibc-headers kernel-devel' first..
ReplyDeleteThank 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.
ReplyDeleteIt's working now.
hello
ReplyDeletei have this error when i install it
i try your post but nothing work with me
thats my output
ReplyDelete[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
libpk-gtk-module.so
ReplyDeletelibcanberra-gtk-module.so
this package installed
Hi Hareth,
ReplyDeleteI 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
did not work for me, because of newer libs.
ReplyDeletethis 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
Hi George,
DeleteThanks for the heads up.. I have updated the instructions accordingnly.
Regards,
This comment has been removed by the author.
Deletehi there:
ReplyDeletei 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
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"
ReplyDeleteThank you, it works for me too.
ReplyDeleteWorking 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
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteThere is a simpler way without copying. Just run the following from the command line -
ReplyDeleteLD_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
This worked for me! Thanks.
DeleteThanks Andy, this worked perfectly for me using VMWare WS 11.1.3 on FC23.
Delete// Peter
This comment has been removed by the author.
DeleteThanks, this works.
DeleteI just upgraded to 12.1 on FC23 and now vmblock does not load:
ReplyDeletevmware-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;
^
...
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.
DeleteDevon,
DeleteI 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
Bruno Vachon, Malterie Frontenac inc.
ReplyDeleteThanks 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.
Thanks a lot.
ReplyDeleteI confirm this working on Workstation 11 as well
ReplyDeleteThanks a lot saved it worked as a charm
ReplyDeleteYour script worked perfect on 12.1 .
ReplyDeleteDo you have any idea how to get the tray icon working with ws12 on f23 with kde?
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.
ReplyDeleteThank you! It works for me as well.
ReplyDeleteThank you so much , it worked for me :)
ReplyDeleteI 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.
ReplyDeleteI 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.
Hi Ed,
DeleteI 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
Hi Ed,
DeleteI 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
I see a lot of errors when I run 'vmware-modconfig --console --install-all'.
DeleteHi Vincent,
ReplyDeleteI 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
Thanks a lot, it worked.
ReplyDeleteThanks so much, you saved me a lot of time!!!!!! :D
ReplyDeleteI set the DNS to use Google DNS and that fixed that.
ReplyDeleteit is working for me, thank you
ReplyDeleteIT's still not working...gething this error while running VMWARE_USE_SHIPPED_LIBS=force vmware
ReplyDelete2016-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
it's still on working on my fedora 23 even after following each of your steps..
ReplyDeletelog 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..!!!!
What version of VMW are you using? I don't see that issue on 12.1.0:
Delete[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
hi vincent..
DeleteI 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
Hi Sanjeev,
DeleteCould 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..
Hi Vincent,
DeleteIt 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
This works perfectly !!!
DeleteThank you!
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;
ReplyDeletesudo 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.
Thanks dude!
ReplyDeleteThis works perfectly !!!
Your solution perfectly works for me:
ReplyDeleteVMware® 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!
Thank you Sir for a solid easy to follow solution, worked as stated
ReplyDeleteVMWARE Player 12.1.0 build-3272444
Fedora 23 4.4.6-301.fc23.x86_64
With your script I fixed also VMware Workstation 12 Player 12.1.1 build-3770994 on Fedora 23.
ReplyDeleteThanks alot!
Thanks! Worked for me.
ReplyDelete+1
The vmware-netcfg can't work.
ReplyDeleteIt does.
DeleteAdd this to /etc/vmware/bootstrap:
export VMWARE_USE_SHIPPED_LIBS=force
You are the man! Thanks for this!
ReplyDeleteThanks. It's work on Fedora 24 Beta...
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteAw, man. Thank you for this. Much appreciated.
ReplyDeleteFor me it'ok now... Thanks very much.
ReplyDeletedo u have any solution for kernel 4.5.7 ?
ReplyDeleteWhat's the issue with 4.5.7?
Delete[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.
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
DeleteThe above trick still works with Fedora 24, just the version of the libs has changed to 4800.1, as such the commands are;
ReplyDelete# 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
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).
ReplyDeleteregards
Thank you. Worked like a charm on Fedora 24.
ReplyDeleteThank you. I have been looking for a solution compatible with Fedora 24. Much appreciated!
ReplyDeleteThis 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'.
ReplyDeleteSorry. I forgot to state that I am running Fedora 24.
DeleteHi 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.
ReplyDeleteYou 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
Actually, this will be better as it will take into account any existing LD_PRELOAD libraries -
Deleteecho '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.
This update script does not complete for me running kernel 4.6.4-301.fc24.x86_64.
Delete(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:
Which version of VMWare workstation are you running?
Deletethanks 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.
ReplyDeleteThank you. I have been looking for a solution compatible with Fedora 24. Much appreciated!
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteMy 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?
ReplyDeleteA 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):
Delete2016-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.
Hi Jan,
DeleteMy 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
@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?
DeleteVincent -
Deletenot completely confident it's not corrupted, but it was working before the kernel upgrade.
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@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?
DeleteI 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!
ReplyDeleteThank you!
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.
ReplyDeleteThanks a lot!
It worked for me. Thanks a lot!!!
ReplyDeleteAfter upgrade to Fedora 24 vmware stop starting service shows
ReplyDeleteTried 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?
David Lee, there is a program called "patch" by the GNU people. You can install it with "dnf install patch".
DeleteError: Unable to start services. Keep asking for installing kernel module updater & failing.
ReplyDeleteI'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.
ReplyDeleteWas able to fix the problem with these:
Deletehttps://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
I encounter the same problem when I run the command
ReplyDeletesudo 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
This comment has been removed by the author.
DeleteYour kernel headers (rpm -q kernel-headers) have to match the running kernel (uname -r).
Deleterpm -q kernel-headers
Deletekernel-headers-4.5.5-300.fc24.x86_64
yes, it is same with the uname -r
At the end of your strace output, there's this:
Delete3514 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
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.
DeleteIn 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.
Found the solution, let me try it and talk it later.
Deletehttps://communities.vmware.com/thread/536705?tstart=0
It works now!!
DeleteI 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
Forgot to thank you very much!!
Deletewhen first build the vmware-service is started failed, but when I start the application again, it work.
DeleteXin, 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.
DeleteNo, just modify these codes
DeleteThis comment has been removed by the author.
ReplyDeleteHaving 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
DeleteAlso 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.
ReplyDeleteBumping 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!
DeleteIt works :D Thank you so much :D
ReplyDeleteTuan, 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.
DeleteThis solution worked very well. Thank you very much.
ReplyDeletei use the script but it write...
ReplyDelete(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..
This comment has been removed by the author.
ReplyDeleteIs 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.
ReplyDeleteYou need to describe the detail of your error.
DeleteI'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.
DeleteOkay, 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):
Delete#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.
yes, that's right. This method is not available in the new kernel.
Deletehttp://rglinuxtech.com/?p=1746
Thanks Vincent for a great script that I use and point others toward regularly!
ReplyDeleteI 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! :)
Hi everyone,
ReplyDeleteI'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
Hi,
ReplyDeleteI updated the script. Please pull down the new version.
This was tested on FC24 with kernel 4.7.2.
Regards,
Vincent
Did you just update the version from 20160630 or should there be a new link at the top of the blog?
DeleteYes, it's the same link. I updated the script on github, just pull down the new version.
DeleteRegards,
Vincent
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
DeleteHi John,
DeleteI 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
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:
DeletePer 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
Man!!! It's saved my life!!!
ReplyDeleteThank you!!!!
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.
ReplyDeleteThanks 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!"
ReplyDeleteCheck 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.
I did an inplace upgrade from fc23 to fc24 and vmware workstation 12.5 does not work.
ReplyDeleteI was struggling everytime Fedora updates. This makes life a lot easier.
ReplyDeleteMuch thanks.
As always thanks a lot for this!
ReplyDelete(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.
+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.
ReplyDeleteMirko's solution is the -proper- solution. This kind of issue is better solved by the vendor itself.
ReplyDeleteIt'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
new issue for kernel 4.8, see http://rglinuxtech.com/?p=1788
ReplyDeleteIn ~/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);
VMWare not work with Fedora 25 with kernel 4.9.3-200
ReplyDeleteor with kernel 4.9.8-201. there are errors in vmmon-only/linux/hostif.c
Delete/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.
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)
DeleteNew issue, Kernel 4.9.11:
ReplyDeletemake[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
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