记录如何在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编译规则
- 打开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
|
- 更新
- 获取DEBIAN规则
1
2
| $ cd ${workspace}
$ apt source mesa
|
获取的源码里面,有一个debian文件夹,就是需要的编译规则,复制到mesa源码包中
1
| $ cp -ravx ${workspace}/mesa-20.2.6/debian ${workspace}/mesa
|
编译准备
- 安装编译依赖选项
1
| $ sudo apt-get install devscripts build-essential lintian
|
- 安装编译依赖库
1
| $ sudo apt install libxcb-shm0-dev
|
- 准备编译环境
1
2
| $ cd ${workspace}/mesa
$ sudo apt build-dep mesa
|
这一步会生成用于编译mesa包的环境配置
编译
- 清理缓存的编译
1
| $ debuild -i -us -uc -b
|
- 不清除缓存的编译
1
| $ debuild -i -us -uc -b -nc
|
编译报错,一般都是DEBIAN规则不使用新版本的源码,修改以后, 需要使用清理缓存的编译
Picturs
link