EU ASRock Rack B450D4U-V1LQ5 mATX AM4

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

luckylinux

Active Member
Mar 18, 2012
486
136
43
So you are using files generated with this method?
I extracted the following for the last run but only 2 out of the 6 Files have something ifrextractor can extract:
Code:
Section_Volume_image_1DF36FF9-C7EA-47A3-BD5B-426C250DB776_body.vol
Section_Volume_image_3E3B6DC0-064D-4B01-9203-7836C9B498E7_body.vol
Section_Volume_image_9E21FD93-9C72-4C15-8C4B-E77F1DB2D792_body.vol
Section_Volume_image_54F7572F-1FD1-44DA-B635-0E49CAD1E4EF_body.vol
Section_Volume_image_84366C9E-CD61-4B6E-8BC7-384541382842_body.vol
Section_Volume_image_C0492C7F-75E2-487C-B2DD-000E6CF7B905_body.vol
When I took a look at some files extracted that way that also had "ECC Enable" in them, I saw that at least these two were not correct. Read through these two text files that I quoted below. The content does not make any sense to me.
The Script (to READ all Variables) is just parsing the File where there is a VarStoreId and VarOffSet Value in the Line. If it doesn't make sense, that we can discuss later. Do you want to process 72000 Entries by Hand ? I surely don't. And yes, there are THAT many in Total (NOT unique though) !

Edit 1: Also note that not all options are 1 byte (Size: 8 in .txt) some are larger for example 2 bytes (Size: 16)
And ?

Edit 2:
What you want to achieve with your script is kinda same that this project does: GitHub - linuxboot/uefisettings: The tool to read/get/extract and write/change/modify BIOS/UEFI settings from Linux terminal.
I have not tried if it works with the bios we have on our board. The readme says it will work with some:

And then suggests to use SCELNX as an alternative.
Yes I also pointed at that and @RolloZ170 said it's essentially what I'm doing but more visually. I didn't like that I need to somewhat use 2 different Binaries to get the Job done though ...

And yes, we can do the same Thing in 10000 Ways.

Just you thinking that me grabbing an Empty (or backing up + Formatting) Flashdrive or cloning an existing LiveUSB onto it and do the Job at that Desk without LAN Access is an easy or comfortable Experience ... Well ... It's NOT. I don't even think I have spare Flashdrives so then the question is which one to Backup and Format etc.

1 Task becoming 100 Tasks very easily.

And I was also trying to sell some of my old stuff out because I need SPACE for these new Systems but of course nobody wants to buy or even come forward with an Offer. Guess I'll just save the Cooler and sell everything Part by Part ...

EDIT 1: Ah no what I pointed out was UEFI Editor -> UEFI Editor

EDIT 2: And we won't get anywhere if we keep changing the System to be honest :rolleyes: . For uefisettings I need to build from source which means installing cargo which I probably don't have (and maybe the required Version is not in the Repositories) etc. And anyways I'm not sure if it supports listing all Items (list-strings is for hii but unsure if it's supported)

EDIT 3: to top it all Off it seems like my Front Panel USB Adapter (or the USB Controller itself) is very finicky since for the last 3 Attempts my Ubuntu LiveUSB appears corrupted (but had no Issues booting from inside a VM on my Desktop)
 
Last edited:

luckylinux

Active Member
Mar 18, 2012
486
136
43
@ALinden

It actually works quite well uefisettings

But not sure if it got the Data you were looking for a Comparison.

1. Install cargo
2. Build from Source according to Repository Instructions
3. Export Data
Code:
/root/.cargo/bin/uefisettings hii extract-db extract-db.db
/root/.cargo/bin/uefisettings hii show-ifr -f extract-db.db > show-ifr-from-extracted-db.txt
/root/.cargo/bin/uefisettings hii list-questions --json > list-questions.json
/root/.cargo/bin/uefisettings hii list-questions > list-questions.txt
/root/.cargo/bin/uefisettings hii list-strings --json > list-strings.json
/root/.cargo/bin/uefisettings hii list-strings > list-strings.txt
Example of Retrieving a single Setting:
Code:
/root/.cargo/bin/uefisettings hii get --json "DRAM ECC Enable" | jq -r
Attached are all my Files in the ZIP Archive. Please try on your side so we can compare ...

EDIT 1: We will probably need to do a small Python / Shell Script, since to get the Value we probably need to to /root/.cargo/bin/uefisettings hii get <Name> unless we are fine with the show-ifr Output. Why didn't they include a JSON Output there is beyond me though ...
 

Attachments

Last edited:

ALinden

Member
Mar 21, 2025
36
14
8
/root/.cargo/bin/uefisettings hii show-ifr -f extract-db.db > show-ifr-from-extracted-db.txt
Will produce output in unique sorting order every run. So that if you run it twice without changing any settings you get different files.
So out of the box it is not possible to compare settings of two PC-s. :(
 
  • Wow
Reactions: luckylinux

luckylinux

Active Member
Mar 18, 2012
486
136
43
/root/.cargo/bin/uefisettings hii show-ifr -f extract-db.db > show-ifr-from-extracted-db.txt
Will produce output in unique sorting order every run. So that if you run it twice without changing any settings you get different files.
So out of the box it is not possible to compare settings of two PC-s. :(
I came up with a quick & dirty Script.

But yeah, not Ideal. You do NOT have the VarOffset Values though so you'd have to go back dig at all Files that ifrextractor extracted to get that.

You can try this but I'm not sure which format you'd like best. Basically I use what uefisettings threw Out and do a get run for each of these Settings.

It can do a oneliner or multiline & Tab-Separated (this last one I generated the processed.txt File attached).
 

Attachments

luckylinux

Active Member
Mar 18, 2012
486
136
43
@ALinden another alternative for pure comparison purposes could be to just compare the Files directly.

They are a bit Cryptic but at least we know the GUID and we can check their contents.

1. List all files in /sys/firmware/efi/efivars/
2. Decode/Print in Readable Format efivar --name=${name} --print > ${name}.decoded.txt

EDIT 1:

It will also save the dmpstore Format, which you can open with hexdump for Instance.

I think that provides more information than the efivar --print Command to be honest

EDIT 2:
Example using hexdump

Code:
hexdump --canonical efivars-dmpstore/Setup-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9.dmpstore
EDIT 3:
although for a very crude Comparison, diff (and pretty much every other Command I guess: sha256sum, ...) should be able to tell if the 2 Binary Files differ
Code:
root@LiveUbuntu02:~/B450D4U-V1LQ5# diff efivars-dmpstore/Setup-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9.dmpstore efivars-dmpstore/Setup-80e1202e-2697-4264-9cc9-80762c3e5863.dmpstore
Binary files efivars-dmpstore/Setup-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9.dmpstore and efivars-dmpstore/Setup-80e1202e-2697-4264-9cc9-80762c3e5863.dmpstore differ
 
Last edited:

ALinden

Member
Mar 21, 2025
36
14
8
@luckylinux Do you have the possibility to put the flash chip from your motherboard with active ECC to a SPI flash programmer and dump the contents of the chip to a file?
 

luckylinux

Active Member
Mar 18, 2012
486
136
43
@luckylinux Do you have the possibility to put the flash chip from your motherboard with active ECC to a SPI flash programmer and dump the contents of the chip to a file?
I have a SOP/SOIC Clip on Adapter (originally purchased for an Intel X710 Cross-Flashing Attempt, but never used), not sure if the Pitch is correct (and must be 1000% sure I put the BIOS Chip back correctly otherwise the Motherboard is dead).

But why do you think that would be easier :oops: ? You don't trust the Software Tools or ?
 

ALinden

Member
Mar 21, 2025
36
14
8
Since the chip is socketed I use a socket on the programmer.
See here [Guide] Flash BIOS with CH341A programmer
Section "SOP8 Socket details".

But you can connect a loose chip to the clip adapter too.

If you get a dump of you chip, theoretically this would enable to clone the ECC activation to another motherboard.

Nevermind that idea.

I just modded bios, un-suppressed the "UMC Common Options", went to the menu, set "ECC Enable" and upon a reboot ECC is active :cool:

So it seems the supression counts.
 

luckylinux

Active Member
Mar 18, 2012
486
136
43
Since the chip is socketed I use a socket on the programmer.
See here [Guide] Flash BIOS with CH341A programmer
Section "SOP8 Socket details".

But you can connect a loose chip to the clip adapter too.

If you get a dump of you chip, theoretically this would enable to clone the ECC activation to another motherboard.

Nevermind that idea.

I just modded bios, un-suppressed the "UMC Common Options", went to the menu, set "ECC Enable" and upon a reboot ECC is active :cool:

So it seems the supression counts.
So you have the Menu working :oops: ???

I just modded bios
"Just" :oops::oops::oops::oops:

EDIT 1: your Procedure is not clear unfortunately :confused:
 
Last edited:

luckylinux

Active Member
Mar 18, 2012
486
136
43
Uhm ... that Setting is related to Setup, VarStoreId: 0x1 and VarOffset: 0x4

So maybe all that's needed to show the Menu is just to do:
Code:
# Enable UMC Common Options
setup_var.efi Setup(0x1):0x4=0x01
But possibly we also need to unlock some other Conditions that I missed so far (well the goal was to get ECC working):

Code:
# Force QuestionId: 0x4 (VarStoreId: 0x1, VarOffset: 0x1) to unhide Menu (!= 0 should do it)
setup_var.efi Setup(0x1):0x1=0x01
Here you find SystemAccess .. isn't this the one I noticed before in the diff ? Unsure:
Code:
# Force QuestionId: 0x5 (VarStoreId: 0x4, VarOffset: 0x0) to unhide Menu (== 1 should do it)
setup_var.efi SystemAccess(0x4):0x0=0x01
Code:
# Force QuestionId: 0x7 (VarStoreId: 0x2, VarOffset: 0x0) (!= 0 and != 1 should do it)
setup_var.efi Setup2(0x2):0x0=0x02
Code:
# Force QuestionId: 0x8 (VarStoreId: 0x1, VarOffset: 0x0) (!= 0 should do it)
setup_var.efi Setup(0x1):0x0=0x01
@ALinden: can you try with a Stock BIOS and, besides the Original Patching, try this one ?

EDIT 1: I'm currently testing this, but it does NOT seem to make a Difference :rolleyes:
 
Last edited:

luckylinux

Active Member
Mar 18, 2012
486
136
43
@ALinden: can you please give me your Readout of your Settings using my reading Script in UEFI Shell ?

Either I'm getting my if logic with their 3-4 nested Levels of SuppressIf, Not, Or and whatnot, or it's just not possible to do in Software only :confused: .


I really hope it can be done just via Software because I surely don't like the Idea of having to manually flash 12 BIOS Chips ...

That's why I hope I could spot some Difference in the Configuration using diff

EDIT 1: my Settings attached
First convert your File with dos2unix current.txt then Filter with grep -a -Eiv "Error reading variable|No variable with specified name found|Specified offset" current.txt > current.filtered.txt

EDIT 2: I tried changing some QuestionIds around again, but no matter what I do, it doesn't show up at all.

It should be under Advanced -> AMD CBS, right ?

This is so frustrating. At least ECC is (still) enabled but indeed it would be nice to get the Menu working.

Or possibly heck I might configure everything from UEFI Shell if this keeps ongoing :rolleyes: .
 

Attachments

Last edited:

luckylinux

Active Member
Mar 18, 2012
486
136
43
Please share the modded bios or a walkthrough how to do it!
We're all asking that as well. I've been trying to replicate via Software yesterday but there must be some other Setting (or it's just not possible).

For ECC to work, my Script is sufficient though :) .
 

ALinden

Member
Mar 21, 2025
36
14
8
For ECC to work, my Script is sufficient though :) .
Well it was not enough for my test board. If you are brave try reset to defaults in bios and see if you can enable ECC again with just setup_var.efi ;)

Please share the modded bios
I will share of course!

I am at the moment checking and testing some things:

1. Do these motherboards have anything unique on the bios flash chip (that would be lost when flashing generic bios image with ch341)?
I did see that the onboard LAN MAC is on a separate flash chip, so that is safe.
Then there is the system UUID. I checked one board and there was a number but it was more like serial number - the first digits were zeroes. This would be lost with flashing with ch341.
If you want to help, check what you have on your board as UUID with dmidecode.
Anyone know anything else unique per board in bios? Looking at dmidecode output I do not see anything else.

2. Does ECC reporting work? Is it OK with "Platform first error reporting" defaulting on "Auto" or do we need to set it to false? Then that must also be unsuppressed with bios mod.

3. Does flashing the modded bios with InstantFlash work?

4. To make unsuppression more universal it would be good to see what is the (default) value of AmdSetup:0x20 with other Vermeer CPUs.
With my 5700X I have it 0xC. My bios mod currently enables "UMC Common Options" when it is 0xC.
You can check it in EFI console with setup_var.efi AmdSetup:0x20

5. Are there any other submenus that would be nice to have unsupressed?
 

luckylinux

Active Member
Mar 18, 2012
486
136
43
Well it was not enough for my test board. If you are brave try reset to defaults in bios and see if you can enable ECC again with just setup_var.efi ;)
I'd first like to see your actual BIOS settings to see the entirety of the Difference ;).

Why on Earth should we just blindly change what's working (and why did you do it in the first place) ? If it works, don't touch it. Or at least make a Backup first ;).

Please provide (after installing the modded BIOS):
- UEFI Shell Extraction Output -> ASRock-B450D4U-V1LQ5/export_efivars.sh at main · luckylinux/ASRock-B450D4U-V1LQ5
- uefisettings Outputs -> https://forums.servethehome.com/ind...0d4u-v1lq5-matx-am4.47305/page-19#post-465226 and ASRock-B450D4U-V1LQ5/parse_uefisettings_output.sh at main · luckylinux/ASRock-B450D4U-V1LQ5
- SCELNX Output (I'll try to do mine this Evening)

I still think there is something in the Configuration, but maybe (at least for the Menu) the Issue might be hardcoded and, if that's the Case, there's no Way around that :confused: .

2. Does ECC reporting work? Is it OK with "Platform first error reporting" defaulting on "Auto" or do we need to set it to false? Then that must also be unsuppressed with bios mod.
Maybe you can test with Memtest86. I think they allow for on-purpose ECC Error Injection so you can REALLY test to see if ECC is working for real (and not just a false positive reporting Status). PassMark MemTest86 - Memory Diagnostic Tool - ECC Technical Details

If you want to help, check what you have on your board as UUID with dmidecode.
Anyone know anything else unique per board in bios? Looking at dmidecode output I do not see anything else.
Did you check mine :) ? https://forums.servethehome.com/ind...0d4u-v1lq5-matx-am4.47305/page-16#post-465060
 

hmartin

Well-Known Member
Sep 20, 2017
360
329
63
38
5. Are there any other submenus that would be nice to have unsupressed?
Yes, please, if possible the PCIe port configuration.
2025-04-15_16-29.png2025-04-15_16-29_1.png

I think there is potential to turn a B450D4U-V1LQ5 into a B450D4U-V1L (with PCIE4 and M2_1 socket) and these having these settings accessible would be very useful :)

Aside: if anyone has the X470D4U and can take some high resolution photos of the PCB (top/bottom) around PCIE4 and M2_1, that would be great. I have been squinting at Google Images results for days.
 

Attachments

luckylinux

Active Member
Mar 18, 2012
486
136
43
It seems there is no interest at all in troubleshooting the Configuration and trying to see if it's possible to make it work using setup_var.efi or similar Tools.

I'm NOT saying Everything can be done directly, but as I said I'd rather NOT have to flash 12 BIOS Chips and potentially damage some of them in the Process (wrong Programmer's Voltage, plugged in wrong Orientation in the Programmer, re-plugged in wrong Orientation in Motherboard Socket, ...). And surely I wouldn't want to do that if we later discover something else that needs to be changed !

Everybody wants to get onto the direct BIOS Mod Bandwagon :confused: .

If this is the Spirit of "Collaboration" (unidirectional) with me providing Data, Instructions, Procedures and Code, then when I ask for some Data, Instructions, Procedure or Code all I get is anecdotal Evidence let alone People saying that "My Code doesn't work" (or has many Errors) when not all Procedures have been followed (only 2 out of 3 Steps applied) and IIRC not having an exported Configuration after the latest Attempts, then I think it's Time to go back to closed Source Computing, everybody working in their Corner and move to my local GitLab Instance. Why bother, really :rolleyes:.

Complaining is easy, doing the work is hard. I say that also to seasoned IT Engineers (I'm not an IT Engineer): fine with you criticizing my Code or Software. Where is yours ? Then let's discuss from there !
 

hmartin

Well-Known Member
Sep 20, 2017
360
329
63
38
Everybody wants to get onto the direct BIOS Mod Bandwagon :confused: .
I have been focused solely on the hardware modifications to the board and I am only getting to the firmware now. Since ALinden asked if anyone wanted more menus enabled in BIOS, I replied with my request.

I don't think you should take it as a rejection of your efforts, I have read the thread in its entirety; I am simply trying to avoid doing more work.
 
  • Like
Reactions: luckylinux

luckylinux

Active Member
Mar 18, 2012
486
136
43
I have been focused solely on the hardware modifications to the board and I am only getting to the firmware now. Since ALinden asked if anyone wanted more menus enabled in BIOS, I replied with my request.

I don't think you should take it as a rejection of your efforts, I have read the thread in its entirety; I am simply trying to avoid doing more work.
So you are using a SODIMM-to-DIMM Adapter, 2 extra PCIe Slots plus the M.2 Slot ?

Or that's a Picture you found over the Internet ? Given it's written B450D4U-V1L then I guess it's an Internet Picture but thought I would ask to be sure ...