在Ubuntu 14.04上安装最新版mesa

来源:互联网 发布:自来也和佩恩 知乎 编辑:程序博客网 时间:2024/05/28 19:23

关于 mesa

mesa是一个开源的OpenGL的实现。它被广泛用于包括X-Windows在内的各种渲染系统中。 具体见官网:http://www.mesa3d.org/intro.html
现在,我们将在Ubuntu 14.04上编译并安装最新版mesa。

安装 LLVM/Clang 3.3

LLVM/Clang是构架编译器(compiler)的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time),它是编译mesa的依赖之一。目前,LLVM/Clang的最新版为3.4,在Ubuntu 14.04上,我们可以直接使用 sudo apt-get install llvm来安装最新版LLVM/Clang。但是,由于LLVM 3.4的一些bug会对之后的工作造成一定的麻烦,这里,我们自行编译、安装较为稳定的LLVM 3.3。
具体的,首先,我们从http://www.llvm.org/releases/上下载LLVM 3.3 和 Clang 3.3的源代码。源代码下载完成后,进行解压缩,然后将Clang 3.3的源代码目录命名为clang,并移动到llvm源代码目录下的tools目录下。具体的目录关系应如下所示:
<llvmsrc>    tools        clang
接下来我们使用configure来配置生成llvm的Makefile文件,然后就可以进行编译与安装。注意,这里llvm之后要被mesa所link,所以在配置是应开启--enable-shared选项。
cd llvm-3.3.src./configure --enable-shared=yesmakesudo make install

安装 libdrm-2.4.54

最新版的mesa的编译需要高于2.4.54的libdrm_radeon库,我们使用与上文介绍的相同的方法来编译和安装。
首先,从http://dri.freedesktop.org/libdrm/下载libdrm 2.4.54的源代码,解压缩后,运行如下命令。

cd libdrm-2.4.54./configuremakesudo make install

安装其他依赖包

mesa的编译还需要其他依赖包,如果这些包缺失,mesa的配置将会失败,我们可以从configure的错误信息中得出缺失的包的名字,然后自行安装,以下罗列了安装一些可能缺失的包的命令(Ubuntu下)。
sudo apt-get install x11proto-gl-devsudo apt-get install  x11proto-dri2-devsudo apt-get install  x11proto-dri3-devsudo apt-get install  x11proto-present-devsudo apt-get install libxdamage-devsudo apt-get install libxext-devsudo apt-get install libx11-xcb-devsudo apt-get install libxcb-glx0-devsudo apt-get install libxcb-dri2-0-devsudo apt-get install libxcb-dri3-devsudo apt-get install libxcb-present-devsudo apt-get install libxshmfence-devsudo apt-get install libudev-devsudo apt-get install autoreconfsudo apt-get install libtoolsudo apt-get install expatsudo apt-get install libexpat1-dev

获取mesa的最新源代码

我们使用git(git可以使用sudo apt-get install git来安装)来获取mesa的最新源代码。之后就可以进行配置,编译与安装。 需要注意的是,git master branch所获得的源代码中并不包含生成好的configure文件,作为替代,我们运行autogen.sh命令来生成和运行configure,因此configure的配置选项也应该加入到autogen.sh命令后。 
git clone git://anongit.freedesktop.org/git/mesa/mesacd mesasudo ./autogen.sh --enable-gbm --enable-glx-tlsmakesudo make install

至此mesa的编译与安装就成功了,在mesa目录下,我们可以使用git pull origin命令来获得最新版的mesa代码,并编译和安装。

1 0