如何为 linux mint 构建 Vulkan 驱动程序?
我正在运行 Linux Mint Rafaella 17.2,带有第五代英特尔显卡 i3-5010U。我尝试编译https://cgit.freedesktop.org/mesa/mesa/tree/?h=vulkan,但失败了:
anv_allocator.c:32:25: fatal error: linux/memfd.h: No such file or directory
#include <linux/memfd.h>
我尝试安装不同版本的 linux-headers,但即使我设法消除此错误,也会出现其他错误。
我应该使用哪个版本的 linux-headers 以及如何配置它们才能工作?或者,我还应该先做什么,让 Vulkan 在我的操作系统上可编译?
编辑:
我决定对我的编译过程进行一些深入的了解。我增强了 $VULKAN/src/vulkan/Makefile
CFLAGS += -I"/usr/src/linux-headers-3.19.0-49/include/uapi"
对于 CXXFLAGS 我也做了同样的事情。出现新错误,指出 linux/compiler.h 丢失。 Makefile 的另一个增强功能如下:
CFLAGS += -I"/usr/src/linux-headers-3.19.0-49/include/uapi" -I"/usr/src/linux-headers-3.19.0-49/include"
对于 CXXFLAGS 我也做了同样的事情。下一个错误是我根本无法摆脱的,主要是因为缺乏知识:
anv_allocator.c:137:19: error: 'SYS_memfd_create' undeclared (first use in this function) return syscall(SYS_memfd_create, name, flags);
这个错误让我怀疑我应该使用哪个版本的 linux-headers。另外,memfd.h 位于 uapi 下对我来说似乎不合适。
答案1
这看起来像是一份工作apt-file
!
apt-file search linux/memfd.h
这将输出一个包列表,这里是一些经验的发挥作用,选择正确的包。通常情况下foo-dev
会很好,并且该命令的输出使其看起来像是linux-libc-dev
您需要的包。