BIOS is current, version 0901. The board shipped with 0813. The UEFI behavior of this board is the same with either BIOS version.
I agree that those seeking a UEFI mobo should not purchase the ASUS M5A99X. I would go even further to state that all ASUS products, and all motherboards using AMI bios, should be boycotted due to deliberate UEFI bios implementation that excludes all OSes except Windows on this motherboard (and probably others), which I document later in this post. Everything I document is verifiable and repeatable. FSF should be interested in this.
Definitely list this mobo as UEFI incompatible for Linux.
What follows is the result of extensive evaluation and testing of the ASUS M5A99X mobo.
From the ASUS M5A99X EVO User’s Manual, Section 4.1, page 4-1: “This motherboard supports Windows XP/64-bit XP/Vista/64-bit Vista/7/64-bit 7 operating systems (OS).” ASUS is quite literal about this as the UEFI bios on this mobo quite deliberately denies UEFI mode to any OS other than Windows. ASUS fails to disclose this in supporting sales literature for this mobo.
The ASUS M5A99X EVO UEFI bios will only allow a Windows installation media to install in the UEFI mode and will force any non-Windows installation media, i.e. Linux, into legacy BIOS mode preventing UEFI mode operation for non-Windows OSes.
To demonstrate that the UEFI bios will not enable UEFI mode installation of any OS other than Windows is straightforward. Install a Windows installation DVD, I used 64-bit Windows 7, and boot into the UEFI bios setup. On the EZ Mode screen the Windows installation DVD will appears as two icons in the Boot Priority section, one a removable media icon and the other a removable media icon with “UEFI”. Clicking on the Boot Menu button, or selecting F8, chooses the Boot Menu which will list the Windows install DVD as both non-UEFI and UEFI. Entering the UEFI shell and running the Windows UEFI bootloader from \UEFI\BOOT\BOOTX64.EFI results in a seamless Windows installation in UEFI mode with no further action required by the user. This is documented by Microsoft at Installing Windows to an EFI-Based Computer. The requirement to start the UEFI bootloader from the UEFI shell is normal for UEFI and is specified in the UEFI 2.x specification.
For a non-Windows installation media, in this case both Ubuntu 11.10 and openSUSE 12.1, which conform to the requirements of the UEFI 2.x specification, section 12.3.2.1, the UEFI bios on this mobo refuses to recognize the media as valid UEFI media and forces the legacy BIOS mode when installing. This behavior can be observed by inserting the Linux installation media and booting the system into the UEFI bios. Contrary to the behavior with Windows installation media, the Linux installation media is not recognized as UEFI media. In the EZ Mode screen the media is not shown with a UEFI icon and in the Boot Menu the media is not listed as UEFI media. Because the UEFI bios will not recognized valid non-Windows installation media as UEFI media, the UEFI bios does not mount the UEFI partition on the Linux install media. Because the Linux installation media is not mounted it is not possible to start the Linux UEFI bootloader from the UEFI shell as can be done with Windows media. The result is that Linux can only be installed in BIOS mode which means there is no support for hard drives larger than 2.2TB for Linux.
It can further be demonstrated that non-Windows UEFI compliant media will not be started by the UEFI bios on this mobo by a method that is absolutely in conformance with the UEFI 2.x specification. The UEFI 2.x specification, sections 3.3 and 3.4, states that if no bootloader is defined in the EFI boot variables, or if no bootloader listed in the EFI boot variable can be found, then the UEFI bios will default to the bootloader located at \EFI\BOOT\BOOTX64.EFI (for x86_64 platforms) on any available device in the order specified by boot order. For this mobo the boot order is selected from the BOOT screen of the Advanced Mode of the UEFI bios setup. By creating both a hard disk and USB memory conforming to the UEFI specification, the blocking behavior of the ASUS UEFI bios can be observed.
For both a hard disk and USB memory, format both GPT (I used GParted) and create the first partition as the ESP partition. Format the ESP partition as FAT32 and set the boot flag on the partition. Create the following directories in the ESP partition: \EFI and \EFI\BOOT. Copy the UEFI shell (from tianocore UDK2010.sr1) to the ESP as the file \EFI\BOOT\BOOTX64.EFI. Both these media should now boot into the UEFI shell, but they do not as required by the UEFI 2.x specification.
When the manually created compliant media is installed into the system and the system is booted into the UEFI BIOS setup, the hard drive is not recognized as UEFI media while the USB memory is recognized, but neither can be booted. Attempting to boot either media results in a UEFI bios message, “Reboot and Select proper BOOT device or Insert Boot Media in Selected BOOT device and press a key.” The only “proper” boot media is Windows.
Further, moving the Windows installation DVD to a USB memory the system will allow UEFI mode installation of Windows as described earlier.
Clearly ASUS/AMI has programmed the UEFI bios on this mobo to recognize Windows installation media and only allow UEFI mode installation only when installing Windows. Note that this is not the Secure Boot feature of UEFI which is not yet available. This is deliberate action on the part of ASUS/AMI to make installation of a non-Windows OS on this mobo very difficult for the casual user. For the very technically skilled user, a UEFI mode installation can be accomplished with great difficulty only because the UEFI bios must conform to some aspects of the UEFI 2.x specification which enable technically sophisticated persons to achieve a UEFI mode Linux installation. It would not be surprising that these loopholes will vanish in newer UEFI specifications.
These results are reproducible by anyone with sufficient technical knowledge and skills. The preponderance of the evidence in conjunction with the public statements of corporate policy by ASUS unfavorable toward the Linux OS make it clear that the ASUS M5A99X EVO mobo with AMI UEFI bios actively operate to prevent non-Windows OS installations in UEFI mode. This behavior is contrary to very clearly defined UEFI specification and is far too deliberate to be a “bug”. Note that this obstructive behavior applies to OS installation only. If one is technically sophisticated enough to install Linux and modifies the UEFI boot variables to select ELILO then the mobo will operate in UEFI mode.
For clarity, the steps to install any OS in UEFI mode are:
- Insert a UEFI compatible installation media into a system device.
- Boot the system into the UEFI shell.
- From the UEFI shell run the bootloader from the OS installation media.
- The OS installer installs the OS and updates UEFI boot variables to boot the OS.
- Reboot the system into the installed OS.
The ASUS UEFI bios blocks non-Windows OS installation at step 3, above, by disallowing UEFI mode.
I have managed to install openSUSE 12.1 on the ASUS M5A99X EVO mobo. For those using openSUSE 12.1 with ELILO be aware that Yast creates an invalid elilo.conf file by inserting several options without values which cause ELILO to fail. Simply fix these by hand to boot but be aware that when there is a kernel update, unless Yast is fixed, you will have to again manually fix the elilo.conf file. Also, it is a good idea to replace the ELILO in the 12.1 distribution with ELILO 3.14 available at Sourceforge. If you replace ELILO be aware that Yast will replace it with the openSUSE version every time the kernel updates so you have to restore the ELILO 3.14 by hand after a kernel update.
Last note, openSUSE 12.1 installs the wrong ethernet driver for this mobo. The correct driver is for the 8111E and is available from Realtek.