VMware是一个基于Linux的虚拟化系统,提供了丰富的功能。VMware受Windows、MacOSX、Linux等不同平台的支持。由于WMware是一个封闭源代码产品,我们需要在Linux系统上进行一些手动操作。如果我们使用的是Ubuntu、Fedora、Debian、Mint和类似的最新系统,而它们自己的内核比4.8版本更新,那么VMware就不能相应地工作。在本教程中,我们将研究这个问题以及如何解决它。
null
没有足够的物理内存可用错误
此错误与检查Linux内核版本的源代码有关。VMware检查内核4.8及更高版本。但据我们所知,目前流行发行版使用的Linux内核比4.8版本更新。这是错误的截图。

解决问题
我们需要修改问题的源代码。源代码位于名为 vmmon.tar
. 此文件将被卸载,并在内核更新或安装过程中编译。
$ cd /usr/lib/vmware/modules/source$ tar xf vmmon.tar$ cd vmmon-only/linux
然后我们将打开名为 hostif.c
. 我们需要根权限来保存对文件的更改。这样我们就可以开门了 hostif.c
具有 sudo
就像下面一样。
$ sudo nano hostif.c
在后面添加以下行 #include "versioned_atomic.h"
线路。
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0)# define global_zone_page_state global_page_state#endifstatic unsigned long get_nr_slab_unreclaimable(void){#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0) return global_node_page_state(NR_SLAB_UNRECLAIMABLE);#else return global_page_state(NR_SLAB_UNRECLAIMABLE);#endif}static unsigned long get_nr_unevictable(void){#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) return global_node_page_state(NR_UNEVICTABLE);#else return global_page_state(NR_UNEVICTABLE);#endif}static unsigned long get_nr_anon_mapped(void){#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) return global_node_page_state(NR_ANON_MAPPED);#else return global_page_state(NR_ANON_PAGES);#endif}
现在第二个变化是替换下面的行
unsigned int lockedPages = global_page_state(NR_PAGETABLE) + global_page_state(NR_SLAB_UNRECLAIMABLE) + global_page_state(NR_UNEVICTABLE) + hugePages + reservedPages; unsigned int anonPages =#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) global_page_state(NR_ANON_MAPPED);#else global_page_state(NR_ANON_PAGES);#endif
具有
unsigned int lockedPages = global_zone_page_state(NR_PAGETABLE) + get_nr_slab_unreclaimable() + get_nr_unevictable() + hugePages + reservedPages;unsigned int anonPages = get_nr_anon_mapped();
使用以下命令编译和加载更改。
$ cd ../..$ tar cf vmmon.tar vmmon-only$ rm -rf vmmon-only # cleanup$ sudo vmware-modconfig --console --install-all

现在,我们可以毫无问题或错误地使用VMware。
相关文章: Linux和Windows的FTP命令列表及示例
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END