drm的atomic操作在老版本的libdrm中没有支持,需要下载最新的libdrm,我这里下载的是libdrm-2.4.109版本
下载链接:https://dri.freedesktop.org/libdrm/
新版本的libdrm不再采用configure && make的方式编译,而是改用meson && ninja编译方式。
meson 与ninja的安装如下:
sudo apt-get install python3 python3-pip ninja-build
pip3 install --user meson
我的编译环境是ubuntu16.04, 可能是版本太老的缘故,安装的ninja版本是1.5,而libdrm-2.4.109需要ninja的版本大于1.8.2,所以只能手动下载编译,如下:
#ninja依赖re2c,需要先安装
apt-get install re2c
#下载ninja
git clone https://github.com/ninja-build/ninja.git
#进入ninja目录,编译
./configure.py --bootstrap
cp ./ninja /usr/bin
我下载的ninja版本为1.10.2.git
安装好meson及ninja之后,进入libdrm-2.4.109目录下,创建如下编译脚本:
#!/bin/bash
set -e
if [ -d _build ];then
rm -r _build
fi
mkdir _build
if [ -d _bin ];then
rm -r _bin
fi
mkdir _bin
arch='arm-linux-gnueabi-'
prefix_path=`pwd`/_bin
#sys_root='/home/username/build_root/devel'
#创建交叉编译配置文件cross_file.txt
#还可设置c_args等等类似 CFLAGS
ec

本文介绍如何编译最新版的libdrm库,包括使用meson和ninja进行编译的过程,以及针对嵌入式系统的交叉编译配置。
3833

被折叠的 条评论
为什么被折叠?



