This is a GPLv3+ implementation of standalone EFI File System drivers, based on the GRUB 2.0 read-only drivers.
For additional info as well as precompiled drivers, see http://efi.akeo.ie
-
Requirements:
- gcc v4.7 or later
- Visual Studio 2013 or later
- QEMU for testing in Visual Studio
-
Compilation:
- [Common] Fetch the git submodules with
git submodule init
andgit submodule update
. - [Visual Studio] Apply the included patch to the
grub\
subdirectory. - [Visual Studio] Open the solution file and hit
F5
to compile and debug the default driver. - [gcc] Run
make
in the top directory. This creates the gnu-efi and grub libraries. - [gcc] Go to the
src
directory and runmake
ormake install
.
- [Common] Fetch the git submodules with
-
Testing:
The Visual Studio solution automatically sets QEMU up to run and will test the drivers (by also downloading a sample image for each target file system). For testing with gcc, make sure you have at least one disk with a target partition using the target filesystem, that is not being handled by other EFI filesystem drivers. Then boot into the EFI shell and run the following:load fs0:\<fs_name>_<arch>.efi
or wherever your driver was copiedmap -r
this should make a newfs#
available, egfs2:
- You should now be able to navigate and access content (in read-only mode)
- For logging output, set the
FS_LOGGING
shell variable to 1 or more - To unload use the
drivers
command, thenunload
with the driver ID
-
Notes:
This is a pure GPLv3+ implementation of an EFI driver. Great care was taken not to use non GPLv3 compatible sources, such as rEFInd'sfsw_efi
(GPLv2 only) or Intel's FAT driver (requires an extra copyright notice).
Also note that the EDK2 files from the include directory use a BSD 2-Clause license, which is compatible with the GPL.