efivar A versão 0.23 precisa de um patch para funcionar com cabeçalhos de kernel a partir de 4.4 (e kernels posteriores), porque o cabeçalho define NVME_IOCTL_ID alterado (foi renomeado de nvme.h para nvme_ioctl.h ).
Para criar efivar em seu sistema, você precisará da "Alternativa para renomear linux / nvme.h" patch. Para aplicar isso, vá para o diretório que contém o código-fonte efivar (com a fonte 0.23 e nenhuma alteração) e execute
curl https://github.com/rhinstaller/efivar/commit/3a0ae7189fe96355d64dc2daf91cf85282773c66.patch | patch -p1
Então você deve ser capaz de construir efivar corretamente com cabeçalhos do kernel 4.4.
Já que você tem um arquivo de cabeçalho nvme.h , provavelmente ainda terá problemas com NVME_IOCTL_ID neste momento. Você pode aplicar outro patch que evite usá-lo completamente, "libefiboot: reprojetar o NVME, de modo que tenhamos a EUI correta e não precisemos de cabeçalhos de kernel " (este patch requer o anterior):
curl https://github.com/rhinstaller/efivar/commit/8910f45c27fadba0904f707e7c40ad80bf828f7e.patch | patch -p1
Com esses dois patches, você pode criar efivar , independentemente de onde (e se) os cabeçalhos do kernel definem NVME_IOCTL_ID .