Tag Archives: bios

Creating a bootable firmware bios update iso for your Supermicro motherboard

This is a short guide in how you can create your own bootable DOS iso image so that you may upgrade the bios of your Supermicro motherboard. A short overview of the process is as follows.

    Downloading the freedos OEM CD builder
    Downloading 64-bit binaries for mkisofs.exe (Optional depending on your OS)
    Downloading the BIOS firmware
    Booting the ISO and running the BIOS update

Downloading the freedos OEM CD builder

    Go to http://www.fdos.org/bootdisks/ and download the FDOEMCD.builder.zip file.
    Extract the content to any location of your choice. I prefer to use the “extract here” option provided by tools such as 7-zip. So from here on, this folder will be referred to as “FDOEMCD”.

Downloading 64-bit binaries for mkisofs.exe

It should go without saying that you only need this step if you’re on a 64-bit Operating System.

    Go to http://smithii.com/cdrtools and download the cdtools-latest.zip.
    From this zip file, extract “mkisofs.exe” and “cygwin1.dll” and put them in your “FDOEMCD” folder. Accept the prompt for overwriting the “mkisofs.exe” file already there.

Downloading the BIOS firmware

    Go to http://www.supermicro.com/support/bios/ and download the BIOS for your particular motherboard.
    Extract the content of this .zip file into “FDOEMCD\CDROOT”.
    The ISO will be read-only so you’ll need to modify “FDOEMCD\CDROOT\AMI_2.bat” file. Remove the 2 following entries:

– REN AFUDOSU.SMC AFUDOSU.EXE
– REN AFUDOSU.EXE AFUDOSU.SMC

    Then rename AFUDOSU.smc files to an executable (.exe). I have no idea why they do it this way, but they do. And due to read-only media we’re creating it’s a no go.

Creating the ISO image

Simply run “FDOEMCD\makeiso.bat” from command prompt. And you’ll end up with fdoem.iso in this folder.

Booting the ISO and upgrading the BIOS

Boot the iso using your preferred choice, most likely being IPMI. Run the following

ami_2.bat <your bios binary file>

Wait until it is done and reboot.

// CrashMAG

Configuring Windows 7 support for UTC BIOS time

Windows 7 does not natively support UTC time. Which makes it a problem if you’re also running either Linux or OSX on the same machine. Either way having your BIOS keep time using UTC is the proper way.

  • Universal Time can be unambiguously converted into a local time. The opposite is not true, that is a local time cannot reliably be converted back into Universal time. This is due to the Summer Time or Daylight Savings Time offset periods implemented in many countries. At the end of that offset period, local-time clocks have to be turned back by usually one hour, therefore a 60 minute period on the local-time scale is repeated.
  • Daylight Savings Time makes it necessary to readjust the RTC twice per year. However, there exists currently no convention to label in the CMOS RAM, whether that adjustment has already been performed or not. As a result, the operating systems can get confused and will apply the correction multiple times. One possible fix is to record somewhere on the hard disk, whether the DST change has already been performed this year or not. However this fails for users who have a requirement to run several operating system versions in different hard disk partitions on the same computer, where the same RTC is shared by several operating systems that can be booted alternatively but do not have access to each others configuration files. A similar problem occurs when the operating system is booted from some exchangeable storage medium or a PC-in-PC emulator is used.

To enable UTC support please do the following.

Copy the following into a text document using notepad and save it as utc.reg

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation] ‚ÄúRealTimeIsUniversal‚ÄĚ=dword:00000001

Run it, reboot and you’re done.

Or do the following

  • Start the Registry Editor (regedit)
  • Traverse the following path, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
  • Create a dword named RealTimeIsUniversal and set the value to 1
  • Restart your computer

// CrashMAG

View information about your BIOS from Linux using dmidecode

To get at this information we will use a utility called “dmidecode”. dmidecode is a tool for dumping a computer’s DMI (some say SMBIOS) table contents in a human-readable format.

On CentOS/RHEL/Fedora you may run the following to install it.

# yum install dmidecode

On Arch Linux you may run

# pacman -S dmidecode

The following examples will allow you to see a few important parts of information such as;

  • The manufacturer of your motherboard
  • What type of motherboard you have
  • The version of the BIOS running on your motherboard

To view the manufacturer and what type of motherboard you have, run the following

dmidecode --type system

Example

# dmidecode 2.11
SMBIOS 2.4 present.

Handle 0x0001, DMI type 1, 27 bytes
System Information
        Manufacturer: Gigabyte Technology Co., Ltd.
        Product Name: GA-MA78G-DS3H
        Version:
        Serial Number:
        UUID: 4E2F4100-0000-0000-0000-0000FFFFFFFF
        Wake-up Type: Power Switch
        SKU Number:
        Family:

Handle 0x0034, DMI type 32, 11 bytes
System Boot Information
        Status: No errors detected

To view the version of your BIOS you may run the following

#dmidecode --type bios

Example

# dmidecode 2.11
SMBIOS 2.4 present.

Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
        Vendor: Award Software International, Inc.
        Version: FA
        Release Date: 09/19/2008
        Address: 0xE0000
        Runtime Size: 128 kB
        ROM Size: 1024 kB
        Characteristics:
                ISA is supported
                PCI is supported
                PNP is supported
                APM is supported
                BIOS is upgradeable
                BIOS shadowing is allowed
                Boot from CD is supported
                Selectable boot is supported
                BIOS ROM is socketed
                EDD is supported
                5.25"/360 kB floppy services are supported (int 13h)
                5.25"/1.2 MB floppy services are supported (int 13h)
                3.5"/720 kB floppy services are supported (int 13h)
                3.5"/2.88 MB floppy services are supported (int 13h)
                Print screen service is supported (int 5h)
                8042 keyboard services are supported (int 9h)
                Serial services are supported (int 14h)
                Printer services are supported (int 17h)
                CGA/mono video services are supported (int 10h)
                ACPI is supported
                USB legacy is supported
                AGP is supported
                LS-120 boot is supported
                ATAPI Zip drive boot is supported
                BIOS boot specification is supported
                Targeted content distribution is supported

Handle 0x0029, DMI type 13, 22 bytes
BIOS Language Information
        Language Description Format: Long
        Installable Languages: 3
                n|US|iso8859-1
                n|US|iso8859-1
                r|CA|iso8859-1
        Currently Installed Language: n|US|iso8859-1

There’s also additional options to use with dmidecode. You probably also want to try the following to get an idea of what type of information you can get your hands on.

#dmidecode --type keyword
Valid type keywords are:
  bios
  system
  baseboard
  chassis
  processor
  memory
  cache
  connector
  slot

// CrashMAG