pbatard / EfiFs

EFI FileSystem drivers
https://efi.akeo.ie
GNU General Public License v3.0
506 stars 77 forks source link

EFI_DEVICE_PATH_TO_TEXT_PROTOCOL is not guaranteed to be available #21

Closed pbatard closed 4 years ago

pbatard commented 4 years ago

Currently, EfiFs uses EFI_DEVICE_PATH_TO_TEXT_PROTOCOL to convert a DevicePath to a string, since we need an immutable element to differentiate our file system devices, and since grub_open() took a string, the obvious choice was to use the Device Path derived string.

However this protocol is not guaranteed to be available versions of the UEFI firmware, and some older UEFI firmwares (e.g. ca. 2010-2012 Dell Optiplex and Dell Laptops) don't provide it at all, which results in FSBindingStart() returning with an error.

The easiest way to solve this issue might be to drop the DevicePath string altogether in EfiFs and use a fake string pointed to a DevicePath instead...