说实在话 , vmware for linux 对 CentOS 8 以后的系统的适应性,真的很有问题,闲话不说了,直接贴修改的代码吧。
首先下载 vmware workstation pro 17 for linux 的安装介质。
从 vmware 官方网站下载,不用我再多说了吧。
在 CentOS 9 系统上进行安装,安装的方式为直接执行 ./VMware-Workstation-Full-17.0.2-21581411.x86_64.bundle 文件,安装的过程中会有部分的错误信息,不管它,{BANNED}最佳后会提示安装成功的。
修改 vmware workstation pro 的源码。
=========
这是因为 vmware workstation pro 17 for linux 会根据操作系统的情况,进行一些新的编译链接,生成 vmware mon 和 vmware net 组件的核心驱动。
=========
进入 /usr/lib/vmware/modules/source 目录,
step 1 : 修改 vmmom.tar 文件的内容
1. 展开 vmmon.tar 文件
# tar xvf vmmon.tar
2. 对 vmmon.tar 进行换名
# mv vmmon.tar vmmon.tar#
3. 修改
/usr/lib/vmware/modules/source/vmmon-only/common/apic.h 文件
在其中的前面部分加入如下内容:
-
#ifndef KERNEL_DS
-
#define KERNEL_DS (-1)
-
#endif
4. 修改
/usr/lib/vmware/modules/source/vmmon-only/linux/hostif.c 文件
找到:
#define PERF_CTR_VECTOR ERROR_APIC_VECTOR
在其下面加入:
-
static inline mm_segment_t get_fs(void) { return 0; }
-
static inline void set_fs(mm_segment_t seg) { (void)seg; }
5. 重新压缩打包,生成 vmmon.tar 文件
# tar cvf vmmon.tar vmmon-only
step 2:修改 vmnet.tar 文件的内容
1. 展开 vmnet.tar 文件
# tar xvf vmnet.tar
2. 对 vmnet.tar 文件进行换名
# mv vmnet.tar vmnet.tar#
3. 修改 /usr/lib/vmware/modules/source/vmnet-only/netif.c 文件
找到 :
#if LINUX_VERSION_CODE < KERNEL_VERSION( 5 , 18 , 0 )
netif_rx_ni(skb);
修改成:
-
#if LINUX_VERSION_CODE < KERNEL_VERSION( 5 , 18 , 0 )
-
netif_rx(skb);
4. 修改 /usr/lib/vmware/modules/source/vmnet-only/bridge.c 文件
找到:
#if LINUX_VERSION_CODE < KERNEL_VERSION( 5 , 18 , 0 )
netif_rx_ni(clone);
修改成:
-
#if LINUX_VERSION_CODE < KERNEL_VERSION( 5 , 18 , 0 )
-
netif_rx(clone);
5. 重新压缩打包,生成 vmnet.tar 文件
# tar cvf vmnet.tar vmnet-only
step 3 . 命令行编译生成所有 vmware workstation pro 17 的驱动包
# vmware-modconfig --console --install-all
阅读(1134) | 评论(0) | 转发(0) |