
Wie kann ich den Vulkan-Treiber für Linux Mint erstellen?
Ich verwende Linux Mint Rafaella, 17.2, mit Intel Graphics 5th gen, i3-5010U. Ich habe versucht zu kompilierenhttps://cgit.freedesktop.org/mesa/mesa/tree/?h=vulkan, aber es schlug fehl mit:
anv_allocator.c:32:25: fatal error: linux/memfd.h: No such file or directory
#include <linux/memfd.h>
Ich habe mit der Installation verschiedener Versionen von Linux-Headern herumgespielt, aber selbst wenn ich diesen Fehler beheben konnte, sind andere aufgetreten.
Welche Version der Linux-Header sollte ich verwenden und wie muss ich sie konfigurieren, damit sie funktionieren? Oder was sollte ich sonst zuerst tun, um Vulkan auf meinem Betriebssystem kompilierbar zu machen?
bearbeiten:
Ich habe beschlossen, einen kleinen Einblick in meinen Kompilierungsprozess zu geben. Ich habe $VULKAN/src/vulkan/Makefile erweitert mit
CFLAGS += -I"/usr/src/linux-headers-3.19.0-49/include/uapi"
und für CXXFLAGS habe ich dasselbe gemacht. Es ist ein neuer Fehler aufgetreten, der besagt, dass linux/compiler.h fehlt. Eine weitere Verbesserung des Makefiles sah folgendermaßen aus:
CFLAGS += -I"/usr/src/linux-headers-3.19.0-49/include/uapi" -I"/usr/src/linux-headers-3.19.0-49/include"
und für CXXFLAGS habe ich dasselbe getan. Den nächsten Fehler kann ich überhaupt nicht beheben, hauptsächlich aus Mangel an Wissen:
anv_allocator.c:137:19: error: 'SYS_memfd_create' undeclared (first use in this function) return syscall(SYS_memfd_create, name, flags);
Aufgrund dieses Fehlers frage ich mich, welche Version der Linux-Header ich verwenden soll. Außerdem scheint es mir nicht richtig, dass memfd.h unter uapi liegt.
Antwort1
Das sieht nach einem Job für aus apt-file
!
apt-file search linux/memfd.h
Dadurch wird eine Liste mit Paketen ausgegeben. Hier ist etwas Erfahrung gefragt, um das richtige Paket auszuwählen. Normalerweise foo-dev
ist das gut, und die Ausgabe dieses Befehls lässt es so aussehen, als linux-libc-dev
wäre es das Paket, das Sie benötigen.