-
Notifications
You must be signed in to change notification settings - Fork 17
Troubleshooting
assafcarlsbad edited this page Dec 20, 2020
·
1 revision
Q: How can I know if the script for generating the emulated NVRAM environment succeeded?
A: Use python -m pickle [dict]
, where [dict]
is the output file of prepare_nvram.py
. If execution was successful, you should see a bunch of variables with their respective values.
Q: The script for generating the emulated NVRAM (prepare_nvram.py
) keeps generating an empty dictionary. What can I do?
A: Under the hood, prepare_nvram.py
uses the uefi-firmware-parser
library to parse the UEFI firmware image and extract the values of the various NVRAM variables. Unfortunately, at the moment uefi-firmware-parser
doesn't support certain formats of the NVRAM variable store such as VSS, VSS2, etc. To workaround this problem, try the following:
- Check out the type of the variable store in your firmware image. This can be done simply by opening your firmware image in UEFITool.
- If the type of the variable store is not supported by
uefi-firmware-parser
, try to generate the emulated NVRAM environment by executingscripts/prepare_nvram2.py
instead ofscripts/prepare_nvram.py
. Internally,prepare_nvram2.py
uses an embedded copy of UEFIExtract to do all the heavy-lifting of parsing the volume and extracting individual files, so it might succeed whereuefi-firmware-parser
failed.