
如何為 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
您需要的套件。