Yan
Yan Just a simple man.

Ubuntu下编译mesa包

Ubuntu下编译mesa包

记录如何在ubuntu20.40上编译适配的mesa包

源码

mesa源码

mesa源码位于官方自构建的源码网站上,

1
2
$ mkdir ${workspace}
$ git clone https://gitlab.freedesktop.org/mesa/mesa

直接使用最新的代码,或者选择一个合适的tag,例如使用21.0.1

1
2
3
$ cd ${workspace}/mesa
$ git chechout 21.0.1
$ git checkout -b 21.0.1

## DEBIAN编译规则

  1. 打开source list的配置
1
$ vim /etc/apt/sources.list

将配置里面的deb-src全部打开

1
2
3
4
#deb-src http://ports.ubuntu.com/ focal main restricted universe multiverse --> deb-src http://ports.ubuntu.com/ focal main restricted universe multiverse
#deb-src http://ports.ubuntu.com/ focal-security main restricted universe multiverse --> deb-src http://ports.ubuntu.com/ focal-security main restricted universe multiverse
#deb-src http://ports.ubuntu.com/ focal-updates main restricted universe multiverse --> deb-src http://ports.ubuntu.com/ focal-updates main restricted universe multiverse
#deb-src http://ports.ubuntu.com/ focal-backports main restricted universe multiverse --> deb-src http://ports.ubuntu.com/ focal-backports main restricted universe multiverse
  1. 更新
1
$ sudo apt update
  1. 获取DEBIAN规则
1
2
$ cd ${workspace}
$ apt source mesa

获取的源码里面,有一个debian文件夹,就是需要的编译规则,复制到mesa源码包中

1
$ cp -ravx ${workspace}/mesa-20.2.6/debian ${workspace}/mesa

编译准备

  1. 安装编译依赖选项
1
$ sudo apt-get install devscripts build-essential lintian
  1. 安装编译依赖库
1
$ sudo apt install libxcb-shm0-dev
  1. 准备编译环境
1
2
$ cd ${workspace}/mesa
$ sudo apt build-dep mesa

这一步会生成用于编译mesa包的环境配置

编译

  1. 清理缓存的编译
1
$ debuild -i -us -uc -b
  1. 不清除缓存的编译
1
$ debuild -i -us -uc -b -nc

编译报错,一般都是DEBIAN规则不使用新版本的源码,修改以后, 需要使用清理缓存的编译

Picturs

link