
Как собрать драйвер Vulkan для Linux Mint?
Я использую Linux Mint Rafaella, 17.2, с Intel Graphics 5th gen, 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
на тот пакет, который вам нужен.