terminatorul / NvStrapsReBar

Resizable BAR for Turring GTX 1600 / RTX 2000 GPUs
MIT License
558 stars 12 forks source link

UEFI DXE driver status: Ambiguous Setup variable (0x00000000000000A5) #85

Open RipperPix00 opened 6 months ago

RipperPix00 commented 6 months ago

System

terminatorul commented 6 months ago

You motherboard firmware exposes (publishes) a number of EFI variables with some internal bits of information about the system configuration and the firmware capabilities. The format of these variables is internal to the motherboard firmware, they are not meant to be accessed by end-users directly.

One of these variables, called "Setup", holds all the choices you can make in UEFI Setup (UEFI Setup opens if you press Delete key during POST, or sometimes F2 key instead).

Because multiple vendors contribute to the motherboard firmware, EFI variables are identified by both their name and a numberic identifier with many hexadecimal digits (a GUID). This is because multiple vendors could create a variable with a simple name like "Setup". Without a numerical ID to distinguish them, variables from different vendors, with the same name, would conflict.

So the Setup variable is really named something like "Setup-f0556cb5-84e3-4a95-8fcc-480d8a202162"

Your motherboard firmware already has multiple variables named Setup (with different numerical IDs to distinguish them). You can see these variables in Linux, or if you just boot a Linux installer, under /sys/firmware/efi/efivars/ directory

NvStrapsReBar wants to use the Setup variable to compute the CRC-64 of the contents (all the choices from UEFI Setup). This is later used to detect changes made to UEFI Setup options, and automatically disable ReBAR after such changes. This is a safety measure, as there is a chance ReBAR will not work properly after some changes in UEFI Setup. In this case users will have to manually re-enable ReBAR after such changes.

However when there are multiple Setup variables, NvStrapsReBar does not know which one of them holds UEFI Setup options, and which are additional variables from other vendors, that happen to use the same name "Setup".

You did nothing wrong, this is all about the firmware of your motherboad, and the vendors that contribute to this firmware.

The solution is simple: use R in the main menu to disable the CRC-64 for Setup variable altogether. But remember to disable and re-enable ReBAR when you make changes to UEFI Setup.

RipperPix00 commented 6 months ago

屏幕截图 2024-05-28 002856 Thank you so much for your detailed answer, I disabled that thing, now I got the correct status.