Chinaunix首页 | 论坛 | 博客
  • 博客访问: 831613
  • 博文数量: 137
  • 博客积分: 3477
  • 博客等级: 中校
  • 技术积分: 1409
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-30 21:53
文章分类

全部博文(137)

文章存档

2024年(8)

2023年(10)

2022年(4)

2021年(10)

2020年(9)

2018年(1)

2017年(1)

2014年(4)

2013年(3)

2012年(12)

2011年(24)

2010年(2)

2009年(8)

2008年(6)

2007年(34)

2006年(1)

分类: LINUX

2023-07-27 10:07:54

说实在话 , 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 文件
           在其中的前面部分加入如下内容:
                 

点击(此处)折叠或打开

  1. #ifndef KERNEL_DS
  2. #define KERNEL_DS (-1)
  3. #endif
      4. 修改 /usr/lib/vmware/modules/source/vmmon-only/linux/hostif.c 文件
            找到:
             #define PERF_CTR_VECTOR ERROR_APIC_VECTOR
              在其下面加入:
 

点击(此处)折叠或打开

  1. static inline mm_segment_t get_fs(void) { return 0; }
  2. 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);
          修改成:

点击(此处)折叠或打开

  1. #if LINUX_VERSION_CODE < KERNEL_VERSION( 5 , 18 , 0 )
  2.     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);
           修改成:

点击(此处)折叠或打开

  1. #if LINUX_VERSION_CODE < KERNEL_VERSION( 5 , 18 , 0 )
  2.     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) |
给主人留下些什么吧!~~