I’ve been trying to enable SLI on my motherboard, but it’s been a challenge because it lacks the SLI certification in the BIOS. The board is PCIe 8x8x capable to the CPU, so technically it should work. I bought an NVLink to use implicit SLI for multi-screen tile rendering, but since there’s no SLI certificate, I’m stuck. i cant use old drivers since im running RTX3090 and they wont install.
I’ve been using tools like HxD, UEFITools, and AMIBCP, trying to extract the SLI certificate string from BIOS files of boards like the ROG STRIX B550-XE GAMING WIFI or the ROG STRIX X370-F GAMING, since these are similar and officially support SLI. My plan is to use that info to modify my DSDT dump and boot from it or just compile a new bios(if possible).
I’m missing some technical know-how to get this done, so if anyone has experience with this or tips to share, I’d appreciate the help and tips.
I dont recall seeing this kind of modification and definitely not in a modern Aptio V bios and motherboard/chipset model.
You have the Asus USB BFB feature, so it will be easy to recover a failed mod tryout.
Still i do advise you to make backups to preserve mb original data, for safe keep.
Good luck.
for what i understand that is not much about the bioses, i see that the checksum is equal and lenght , my problem is that this code block could a generic Asus function to retreive the actual string that is saved somewhere else … an a possible existance of a global checksum in case that is actual diferent
def copy_bios_section(source_file, target_file, output_file, src_image_start, src_pe32_offset, src_data_start, src_data_end, tgt_image_start, tgt_pe32_offset, tgt_data_start, tgt_data_end):
# Open the source file for reading
with open(source_file, 'rb') as src, open(target_file, 'rb') as tgt:
# Read the source and target BIOS files
source_data = src.read()
target_data = bytearray(tgt.read()) # Use bytearray for modifications
# Extract data from the source file
src_data_offset = src_image_start + src_pe32_offset + src_data_start
src_data_length = src_data_end - src_data_start
data_to_copy = source_data[src_data_offset:src_data_offset + src_data_length]
# Replace data in the target file
tgt_data_offset = tgt_image_start + tgt_pe32_offset + tgt_data_start
target_data[tgt_data_offset:tgt_data_offset + src_data_length] = data_to_copy
# Save the modified target BIOS to a new file
with open(output_file, 'wb') as output:
output.write(target_data)
# Configuration
source_file = ".\ROG-STRIX-B550-XE-GAMING-WIFI-ASUS-3611.CAP" # Path to the source BIOS file
target_file = ".\ProArt-B550-CREATOR-ASUS-3702.CAP" # Path to the target BIOS file
output_file = "ProArt-B550-CREATOR-ASUS-3702.CAP" # Path to save the modified BIOS file
# Source BIOS offsets
src_image_start = 0x89A3B0 # Start of the image section
src_pe32_offset = 0x30 # Offset for the PE32 image
src_data_start = 0xED2 # Offset within the PE32 for start of data
src_data_end = 0xEFA # Offset within the PE32 for end of data
# Target BIOS offsets
tgt_image_start = 0x8A2208 # Start of the image section
tgt_pe32_offset = 0x30 # Offset for the PE32 image
tgt_data_start = 0xED2 # Offset within the PE32 for start of data
tgt_data_end = 0xEFA # Offset within the PE32 for end of data
# Perform the copy operation
copy_bios_section(
source_file, target_file, output_file,
src_image_start, src_pe32_offset, src_data_start, src_data_end,
tgt_image_start, tgt_pe32_offset, tgt_data_start, tgt_data_end
)
well this doesnt work at all xD
EDIT:
flashed it using biosflashback and still no certificate