Cómo comstackr efivar?

Estoy intentando comstackr efivar-0.23 para mi LFS , pero cuando lo desinstale, ejecute el siguiente command:

make libdir="/usr/lib/" bindir="/usr/bin/" mandir="/usr/share/man/" includedir=/usr/include/" V=1 -j1 

Me sale un error, que NVME_IOCTL_ID no está declarado. He buscado toda la respuesta en Internet, pero lo único que he encontrado es que necesito parchar el file. He encontrado varios parches, pero nada ayuda (tal vez los estoy instalando incorrectamente …). Este es el último parche que he probado: http://patchwork.openembedded.org/patch/117073/ .

He ingresado al directory efivar sin registrar y he ejecutado: patch -Np1 ../efivar.patch , pero estaba haciendo cualquier cosa. Fue como si estuviera haciendo algo, pero no pasó nada.

He intentado patch < ../efivar.patch efivar.patch del directory no procesado, pero luego el sistema comenzó a hacer preguntas …

 System: File to patch: Me: Makefile System: patching file Makefile Hunk #1 FAILED at 12. 1 out of 1 hunk FAILED -- saving rejects to file Makefile.rej The next patch would delete the file efivar-drop-options-not-supported-by-lower-version-gcc.patch, which does not exist! Assume -R? [n] Me: y System: patching file efivar-drop-options-not-supported-by-lower-version-gcc.patch The next patch would delete the file efivar_0.21.bb, which does not exist! Assume -R? [n] Me: y patching file efivar_0.21.bb patching file efivar_0.23.bb 

He probado diferentes combinaciones de respuestas y diferentes parches. También he escrito manualmente en los files que necesitan ser parcheados para asegurarme de que contiene lo que se necesita (porque no estoy seguro de si este parche funciona).

Así que, básicamente, estoy en el mismo punto con la variable no declarada y con un montón de time perdido sin saber qué hacer … ¿Alguna idea?

efivar versión 0.23 de efivar necesita un parche para trabajar con los encabezados del núcleo desde 4.4 (y kernels posteriores), porque el encabezado que define NVME_IOCTL_ID cambió (se renombró de nvme.h a nvme_ioctl.h ).

Para crear efivar en su sistema, necesitará el parche "Solución de cambio de nombre de Linux / nvme.h" . Para aplicar eso, vaya al directory que contiene el código fuente de efivar (con la fuente 0.23, y sin cambios), y ejecute

 curl https://github.com/rhinstaller/efivar/commit/3a0ae7189fe96355d64dc2daf91cf85282773c66.patch | patch -p1 

Entonces debería poder build efivar correctamente con los encabezados del núcleo 4.4.

nvme.h embargo, dado que tiene un file de encabezado nvme.h , probablemente todavía tenga problemas con NVME_IOCTL_ID en este momento. Puede aplicar otro parche que evite usarlo por completo, "libefiboot: reelabore NVME para que tengamos EUI correcto y no necesitemos encabezados kernel" (este parche requiere el anterior):

 curl https://github.com/rhinstaller/efivar/commit/8910f45c27fadba0904f707e7c40ad80bf828f7e.patch | patch -p1 

Con estos dos parches puedes build efivar independientemente de dónde (y si) los encabezados de tu kernel definen NVME_IOCTL_ID .