Valcon Systems. > Customer Support > Knowledgebase

Undervolting in Linux via modified video BIOS


Undervolting in Linux via modified video BIOS


Before VBE7: Creating custom vBIOS files meant manually editing hex and hoping for the best—yuck!

For a long time, I’ve held off on writing a guide about modifying your video BIOS for the purpose of lowering voltage. Undervolting has the potential to reduce power draw by about 50 watts per GPU, so it’s easy to understand the appeal—you’ll see a significant savings on your electricity bill if you’re running a 3×7950 rig (like the one in my guide) 24/7. Unfortunately, the AMD Radeon drivers in linux don’t allow voltage control, so the only current way to lower voltage below manufacturer-specified levels in linux is to modify your video card’s BIOS.

In the past, such a hack involved manually editing your vBIOS file by hand, using a hex editor. Most folks hesitate to make such a modification, as performing the edit can be tricky if you’re not familiar with hexadecimal—and a mistake can mean a bricked GPU. Due to the potential danger I had decided not to post a guide about manually modifying your vBIOS ROMs. After all, nobody wants to be left with a $300 paperweight after inadvertently trashing their video card.

Enter VBE7, a GUI-based vBIOS editor for Radeon 7xxx series GPUs. Now anyone can easily make changes to their vBIOS without having to muddle around in a hex editor, praying they get things right. I’ve been testing VBE7 for a few days now, and it appears to work brilliantly. Read on for my guide on creating your own custom power-saving vBIOS!


Creating your custom undervolted video BIOS

First, let’s get the disclaimer out of the way: while a tool like VBE7 takes a lot of the guesswork out of this process, modifying your video card’s BIOS can potentially damage your hardware and void your warranty. Follow this guide at your own risk!

Step 1: Create a bootable DOS USB flash drive

If you don’t already have a bootable DOS USB stick, you can follow the instructions here to create one. The size of the flash drive doesn’t much matter, so even an ancient USB stick should work fine.

Step 2: Download ATIFlash to your USB stick

You’ll need a program called ATIFlash to read the vBIOS ROMs from each of your rig’s video cards:

Step 3: Boot your mining rig using the DOS flash stick

Shut your mining rig down if it’s running. Insert the flash drive into one of your rig’s USB ports and turn it on. After a few seconds, you should be looking at a DOS command prompt (if not, ensure that booting from USB is enabled in your motherboard’s BIOS settings).

  • At the DOS command prompt, type the following:
    atiflash -s 0 0.rom 

    This will save a copy of the vBIOS stored in your primary video card as a file named “0.rom” on your flash drive.

  • Repeat for each additional video card that you have in your rig. For example, if you have a total of three GPUs, you’d additionally type:
    atiflash -s 1 1.rom atiflash -s 2 2.rom

    You should now have a number of .rom files on your USB stick that corresponds to the number of GPUs on your rig, each containing the vBIOS for one video card.

Go ahead and power down your rig and take the USB stick back to your desktop computer (or any Windows computer).

Step 4: Use VBE7 to modify each vBIOS file

Plug the USB stick containing the saved vBIOS files back into your Windows computer.

  • VBE7: Modify the voltage table for the #6 and #0 entries to set whatever voltage you want. Clock speeds are handled in cgminer so no need to touch them.

    VBE7: Modify the voltage table for the #6 and #0 entries to set whatever voltage you want. Clock speeds are handled in cgminer so no need to touch them.

    Download the latest version of VBE7 here. I’ve been using 0.0.7b but if there is something newer feel free to get that instead.

  • When the download completes, double-click the VBE7 executable to launch it.
  • In VBE7, click on the “Open” button and then browse to the “0.rom” file that you saved on your flash drive and load it.
  • If you see some descriptor text in the ROM message area of the “Overview” tab, your vBIOS file loaded successfully. If not, make sure that your GPU is supported (most R7xxx series cards other than the 7790).
  • Click on the “Powerplay” tab.
  • Make sure that “State 1 – Performance” is selected on the drop-down list. We’re interested in the last two entries: #6 and #0. Change the VDDC setting for both of these entries to your desired voltage level. If you have a Radeon 7950 GPU (like I recommend), then 1081 (for 1081 mV) is a good value for both.
  • Click the “Save” button, and save your edited vBIOS file as “0_new.rom” onto your flash stick.
  • Repeat for each of your GPU vBIOS files—when you’re finished you should have a corresponding *_new.rom file for each of the original vBIOS files that you saved with ATIFlash on your flash drive.

 Step 5: Flash the modified vBIOS file(s) into your GPU’s video ROM

Head back to your rig, put your bootable flash drive back into a USB port, and boot up. Now we’re going to save the modified files into video memory.

  • vBIOS switch

    The dual BIOS switch on the MSI TF3 7950 card. Placement is similar on other 7xxx cards.

    Each of your GPUs should have a tiny switch somewhere on it (usually on the top). This is the BIOS selector switch—most Radeon 7xxx cards should have one (I’ve never found a 7950 or 7970 card that doesn’t, and I’ve used nearly all of them). Locate this switch, and then flip it (this can be done while your rig is powered on) so that it is now in the other position. This is extremely important and acts as your safety net if anything should go wrong! If you’re unable to boot up after completing the BIOS flash, simply flip the switch back to restore your original BIOS. If you can’t locate the switch, or your video card doesn’t have one, I’d strongly urge you to abort the rest of the process.

  • After switching all of your video cards to their secondary BIOS, type the following at the DOS prompt:
    atiflash -f -p 0 0_new.rom

    Wait for the flashing to finish and make sure that there are no error messages. If successful, ATIFlash will tell you that you need to reboot to complete the process, but it’s safe to go ahead and flash your remaining cards first.

  • Repeat for each of your other GPUs. For example, if you have a total of three video cards, you’d additionally type:
    atiflash -f -p 1 1_new.rom atiflash -f -p 2 2_new.rom

Power down and remove the flash drive—you’re done!

Next time your power your rig on, you should note a substantial power savings. Using exactly the hardware that I recommend in my guide, I measured a total power savings of 140 watts (850 watts to 710 watts at the wall, according to my kill-a-watt) when undervolting each GPU to 1081 mV. In addition, your GPUs will run much cooler, and your fans won’t have to work nearly as hard. You can experiment with even lower voltage settings (1054mV is popular as well, and some people even venture into sub 1000mV territory), just be aware that depending on how aggressive your cgminer settings are, you may experience some instability and crashing if you lower voltage too far (just bump voltage back up a bit if that happens).

Was this article helpful? yes / no
Related articles How to fine tune Radeon 7970 / R9 280X on CGMiner
Create a Bootable Windows PE RAM Disk on a USB Flash Disk
Article details
Article ID: 24
Category: Crypto Currency
Date added: 2014-01-17 23:17:34
Views: 2099
Rating (Votes): Article rated 3.1/5.0 (35)

« Go back