UEFI Speed Bumps

I'm putting this out there in the hopes that it might help others in similar circumstances. The video card in question is the AMD Radeon HD 7520G.

The radio on my four year-old Dell notebook is going out, so I picked up a Toshiba laptop that was on sale. Naturally, as a new PC, it ran Windows 8 and has UEFI instead of BIOS. Windows 8 was immediately wiped from the machine so that I could install Xubuntu -- but I ran into some trouble with fglrx, the proprietary AMD video driver and immediately cursed myself because I'd forgotten why I disliked ATI (now owned by AMD) -- they don't play well with Linux.

Still, I thought I knew enough about Linux to fix the problem. However, try though I might, I could not get the driver to function properly, either in Xubuntu 12.04 or 12.10. After installing the driver in the Ubuntu repositories, XFCE would come up just fine -- but I could not do anything with 3D graphics, even though the compositor still functioned. I tried downloading and installing the latest driver from AMD (following these instructions), but XFCE failed to start. By poking around the log for X11, I discovered that aticonfig --initial was apparently not setting the PCI identifier of the card correctly. Specifically, X11 was apparently detecting the card as a PCI device at 0@0:1:1, while aticonfig was setting it to the more normal -- and likely correct -- value of 0:1:0. Changing the PCI ID to the one detected by X11 allowed XFCE to start -- but again, I could not do anything with 3D graphics, even though the compositor still functioned.

I tried reinstalling Xubuntu. I tried to install Debian. I pored through forums, looking for clues. I downgraded X11 and installed the legacy driver (based on the Google cache of an article at ubuntuxtreme -- which failed to load). I even tried to install Windows 7, just to see whether I had a faulty card -- but nothing worked.

The fix? In the EFI setup (you get here by repeatedly pressing F12 as soon as the computer boots), under Advanced Options, there is a switch that allows you to boot non-EFI operating systems by simulating ye olde BIOS for older operating systems. Just for the hell of it, I turned it on. Of course, that meant I needed to reinstall Xubuntu, since it was set up to boot using EFI, not BIOS. However, when this finished, and I installed the fglrx driver from the Ubuntu repositories? Success! I can run 3D applications.

The AMD integrated graphics chip seems to change its behavior depending upon whether you are booting from EFI or from BIOS. Apparently, AMD is not yet writing their (Linux) drivers with EFI in mind.