-
Notifications
You must be signed in to change notification settings - Fork 18
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.pyinstead ofscripts/prepare_nvram.py. Internally,prepare_nvram2.pyuses 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-parserfailed.