Hi, I'm running Fedora workstation 24 with headers (kernel-headers-4.6.6-300.fc24.x86_64) and uname -r (kernel-headers-4.6.6-300.fc24.x86_64). I installed vmware (Workstation 12 Player version 12.1.1 build-3770994) from root and of course it didn't work, so I researched and found this post. From a clean install, I ran the latest script (Update_VMW.sh) posted on https://vcojot.blogspot.com/2015/11/vmware-worksation-12-on-fedora-core-23.html?showComment=1471807760938 as root followed by the "vmware-modconfig --console --install-all" command, then vmplayer.
Upon the above, the vmware GUI launched which was an improvement over just doing the vmware install (no launch). I receive the following errors, sequentially, though when trying to actually play a VM from the GUI:
1) Could not open /dev/vmmon: No such file or directory. Please make sure that the kernel module `vmmon' is loaded.
2) Failed to initialize monitor device.
I saw several posts regarding needing to update the ‘get_user_pages’ calls to ‘get_user_pages_remote’ in the following two archives in /usr/lib/vmware/modules/source:
1) vmmon.tar (vmmon-only/linux/hostif.c)
2) vmnet.tar (vmnet-only/userif.c)
I noticed that the above script seemed to modify this portion of the files by adding a conditional statement around these calls depending on what version of kernal was in place.
I modified the above-referenced file in the vmmon.tar archive include the "..._remote" version of the call. After updating the calls, I commented-out the conditional statements b/c I was getting an error on the "...--install-all" command indicating there were not enough paramaters passed in the call and it seemed the 2nd of the two calls, where the condition executes if kernel < 4.6.0, seems to be the original that was provided and mysteriously had the correct # of arguments:
/*#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)
retval = get_user_pages_remote((unsigned long)uvAddr,
numPages, 0, 0, ppages, NULL);
#else
*/
retval = get_user_pages_remote(current, current->mm, (unsigned long)uvAddr,
numPages, 0, 0, ppages, NULL);
/*#endif*/
Similarily, here's the modified version of the above-referenced file in the vmnet.tar archive. You'll see I had the same error and resolved it in the same way:
/*#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)
retval = get_user_pages_remote(addr, 1, 1, 0, &page, NULL);
#else
*/
retval = get_user_pages_remote(current, current->mm, addr,
1, 1, 0, &page, NULL);
/*#endif*/
I say I resolved this intermediate issue (not sure how accurately, though), but this still doesn't work as I described above. For reference here is the output of running the "vmware-modconfig --console --install-all" command after:
Configuration A: The originally-corrected version of the archives from running the Update_VMW.sh script (comments removed from my above and the "_remote" removed from the calls)
Configuration B: With the above-shown file arrangement in the archives.
Any help would be greatly appreciated as I really need to get this up and running quickly for school.
Output from config A: https://gist.github.com/JohnTheLearner/9fe38d5570bcb7e142d6eb9a0d634e43
Output from config B: https://gist.github.com/JohnTheLearner/667603eb59d71820af3184e4ecc77318
Note the main difference between these two outputs I provided at the bottom are that config A make enters directory '/tmp/modconfig-HWVk4H/vmmon-only' while B uses '/tmp/modconfig-QQztra/vmmon-only'. There are some other diffs between these two outputs that seem to follow that main change.