Chinaunix首页 | 论坛 | 博客
  • 博客访问: 975073
  • 博文数量: 192
  • 博客积分: 3070
  • 博客等级: 中校
  • 技术积分: 1861
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-27 23:44
个人简介

Start Linux Leave Linux a while Back to Linux

文章分类

全部博文(192)

文章存档

2023年(18)

2022年(11)

2021年(8)

2020年(14)

2019年(7)

2018年(13)

2017年(16)

2016年(4)

2012年(2)

2011年(13)

2010年(26)

2009年(13)

2008年(27)

2007年(20)

我的朋友

分类: LINUX

2017-01-18 16:57:15

VMware 客户机 GL 驱动

本文将介绍如何从最新的源码编译,安装及使用 VMware Linux客户机的 GL 驱动(也叫做 SVGA或者 SVGA3D 驱动)。此驱动让 Linux 客户虚拟机拥有能访问主机 GPU 以获得 3D 硬件加速的能力。Linux 或者 Windows 平台上的VMware Workstation 以及 MacOS 平台上的 VMware Fusion均可支持。

 

随着 20158 Workstation 12 以及 Fusion 8 的发布,OpenGL 3.3 已经能够在客户机得到支持。这需要:

  • VM 客户机的虚拟硬件配置为最新的版本12
  • 主机操作系统,GPU 及显卡驱动支持 DX11Windows)或者 OpenGL 4.0LinuxMac
  •  Linux 上,vmwgfx 内核模块版本必须是 2.9.0 或更高
  • 最新版本的 Mesa 3D 图形库及 svga 驱动

不然,会默认OpenGL 2.1

 OpenGL 3.3 的支持可以通过设置环境变量 SVGA_VGPU10=0 来关闭。之后,你就能恢复默认的 OpenGL 2.1。这会在调试应用程序 bug 时有用。

多数当前的 Linux 发行版都包含了 SVGA3D 驱动,所以终端用户不必太关心这些。但是如果你的发行版限制了驱动功能或者你希望更新到最新的版本,这个教程将告诉你要做哪些。

更多有关 X 组件的资讯,请访问x.org 的维基页面:

组件

此升级包括的组件有:

  • Linux kernel module: vmwgfx
  • X server 2D driver: xf86-video-vmware
  • User-space libdrm library
  • Mesa/gallium OpenGL driver: "svga"

所有以上组件都是放到 Linux 客户虚拟机里。在主机上,你只需要保持 VMware Workstation 或者Fusion 运行就行了。

前期准备

  • 内核版本 >= 2.6.25
  • Xserver 版本 >= 1.7
  • Ubuntu 你需要先安装一些编译工具。

    sudo apt-get install git-core

    sudo apt-get install automake libtool libpthread-stubs0-dev

    sudo apt-get install xserver-xorg-dev x11proto-xinerama-dev libx11-xcb-dev

    sudo apt-get install libxcb-glx0-dev libxrender-dev

    sudo apt-get build-dep libgl1-mesa-dri libxcb-glx0-dev

     

  • Fedora:同样需要先装一些编译工具:

    sudo yum install mesa-libGL-devel xorg-x11-server-devel xorg-x11-util-macros

    sudo yum install libXrender-devel.i686

    sudo yum install automake gcc libtool expat-devel kernel-devel git-core

    sudo yum install makedepend flex bison

     

根据你Linux 发行版的不同,别的一些软件包也会用到。configure配置脚本会告诉你还需要哪些。

获取最新源码

首先保存你的当前路径:

 

export TOP=$PWD

 

  • Mesa/Gallium 主干。此代码用于编译 libGL,和libGL的直接渲染 svga 驱动 vmwgfx_dri.so,还有 X 加速库 libxatracker.so.x.x.x.

    git clone git://anongit.freedesktop.org/git/mesa/mesa

     

  • VMware Linux 客户机内核模块。这个分支里包含完整的 DRM  TTM 代码。真正属于vmware 驱动的只有那些前缀为 vmwgfx 的文件。

    git clone git://anongit.freedesktop.org/git/mesa/vmwgfx

     

  • libdrm,一个和 drm 接口的用户空间库。多数发行版都已经囊括了它,但装一个更新的版本总是最安全的做法。从 git 得到最新版:

    git clone git://anongit.freedesktop.org/git/mesa/drm

     

  • xf86-video-vmware。链载驱动vmware_drv.so,传统驱动 vmwlegacy_drv.so,和vmwgfx 驱动vmwgfx_drv.so

    git clone git://anongit.freedesktop.org/git/xorg/driver/xf86-video-vmware

     

编译代码

  • 根据你系统上 GL 相关库的所在路径设置 LIBDIR 环境变量。

     

    32  Ubuntu 系统:

    export LIBDIR=/usr/lib/i386-linux-gnu

    64  Ubuntu 系统:

    export LIBDIR=/usr/lib/x86_64-linux-gnu

    32  Fedora 系统:

    export LIBDIR=/usr/lib

    64  Fedora 系统:

    export LIBDIR=/usr/lib64

  • 编译 libdrm

    cd $TOP/drm

    ./autogen.sh --prefix=/usr --libdir=${LIBDIR}
    提示如下错误:
    configure.ac:36: error: must install xorg-macros 1.10 or later before running autoconf/autogen
    # apt install xutils-dev
    重新运行:
    ./autogen.sh --prefix=/usr --libdir=${LIBDIR}
    make
    sudo make install

    编译 Mesa  vmwgfx_dri.so 驱动,xorg vmwgfx_drv.so 驱动,X 加速库 libxatracker。驱动vmwgfx_dri.so OpenGL 直接渲染和 Xorg server 的加速间接GL 渲染时调用。库libxatracker X server 在渲染,复制及视频加速时独立调用。以下的配置选项没有编译 EGL 系统。
    cd $TOP/mesa
    ./autogen.sh --prefix=/usr --libdir=${LIBDIR} --with-gallium-drivers=svga --with-dri-drivers=swrast --enable-xa --disable-dri3 --enable-glx-tls
    提示:
    configure: error: bison not found - unable to compile glcpp-parse.y
    apt-get install bison

    apt-get install flex
    apt install python-pip
    pip install Mako
    apt install llvm
    make

    sudo make install

     

    在这个过程中,你可能需要安装其他 Mesa 依赖的包,如果你的系统中不曾安装有,配置脚本会告知你还需要哪些。

    Xf86-video-vmware:好了,一旦库 libxatracker 装好,我们就能进一步编译以替换当前的Xorg 驱动。首先检查下你的系统是32位还是64位。

    cd $TOP/xf86-video-vmware

    ./autogen.sh --prefix=/usr --libdir=${LIBDIR}

    make

    sudo make install







阅读(7805) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~