I have a late 2011 MacBook Pro. It has an integrated Intel video card and a discrete ATI video card. Ideally, I'd like my Xorg to use the ATI card with the free driver (no Catalyst).

Here's the problem: kernel modesetting hangs my boot (verified by adding nomodeset to kernel parameters), and I can't figure out why. However, the ATI driver requires KMS, as does the Intel driver. What are my options for getting graphics with the desired setup as described above?

I'm on kernel 3.13.8, Arch GNU/Linux. I've also tried it with kernel 3.10.35, AKA the LTS kernel. No luck. As suggested in comments, I've tried to ping the affected machine after it locks up. I can't tell for sure, but it appears that it's completely frozen, not just the display.

I've also tried booting into Mac OS X and using gfxCardStatus to force using the Intel card. This did nothing.

In order to try to get more information, I've booted the MacBook with the following kernel parameters appended to my normal kernel line (the regular kernel, not the LTS kernel, and with quiet removed), and with gfxCardStatus set to on-the-fly switching (this seemed to revert automatically on a reboot of OS X):

rootwait ignore_loglevel debug debug_locks_verbose=1 sched_debug initcall_debug mminit_loglevel=4 udev.log_priority=8 loglevel=8 earlyprintk=vga,keep log_buf_len=10M print_fatal_signals=1 apm.debug=Y i8042.debug=Y drm.debug=1 scsi_logging_level=1 usbserial.debug=Y option.debug=Y pl2303.debug=Y firewire_ohci.debug=1 hid.debug=1 pci_hotplug.debug=Y pci_hotplug.debug_acpi=Y shpchp.shpchp_debug=Y apic=debug show_lapic=all hpet=verbose lmb=debug pause_on_oops=5 panic=10 sysrq_always_enabled

Very end of boot process log Entire end of boot log

When I try to start GDM using either the ATI or Intel drivers, booted without KMS, Xorg fails with a message about not finding a suitable driver (expected, since the Intel/AMD drivers need KMS). I've also tried using the xf86-video-vesa package, but that fails with a message about having a suitable driver but not having a suitable configuration - something about the BIOS not being right.

I've tried using PRIME, but since I can't get Xorg to come up even without acceleration or anything fancy, xrandr doesn't work and I can't even get past the first step.

I've thought about using vgaswitcheroo or something related, but I don't think that will do anything due to the fact that the underlying issue is, I believe, the fact that KMS is hanging.

The final thing I've tried is using the proprietary Catalyst driver, due to the fact that it has it's own KMS implementation, but I couldn't get it to install due to an Xorg server version mismatch. And honestly, I have less than zero desire to use a proprietary driver if I can help it, so I didn't try very hard.

I've sent the Linux Kernel Mailing List an email about this, and hopefully someone will get back to me.

Is it possible that I've run into a kernel bug or an Xorg bug worth reporting?

I've Googled, but nothing helpful's come up.

  • IMO KMS should take care of the nomodeset settings. Have you tried radeon.modeset=0 or whatever driver you use? – Braiam Apr 5 '14 at 1:31
  • 1
    @Braiam like I said, that makes the machine boot, but it disables a required component of the ATI driver. wiki.archlinux.org/index.php/ATI#Kernel_mode-setting_.28KMS.29 – strugee Apr 5 '14 at 1:41
  • Have you confirmed it actually hangs, and not just is breaks video out? E.g., can you ssh in? If not, does it at least ping? If so, you need a netconsole... – derobert Apr 5 '14 at 2:55
  • 1
    The clover bootloader people handle this kind of stuff all of the time for the hackintosh crowd. Maybe it's applicable vice-versa: clover-wiki.zetam.org/Configuration/SMBIOS – mikeserv Apr 7 '14 at 5:32
  • 1
    For what it's worth, from having tried myself, I do not believe it is possible to get proprietary nvidia/fglrx drivers running if you boot the kernel in EFI mode (as one would for a MBP). – CmdrMoozy Apr 15 '14 at 17:52

Read this Post over at the Gentoo Forums. I helped other users there with an identical NVIDIA Setup. In short you can't pick and choose:

  1. You must use the intel driver to "drive" your XOrg Server.
  2. You can only use the ATI board to Render output, but not generate it.

Some explanation here: (I apologize for having to explain this in terms of NVIDIA, as ATI's project for this - Ironhide - is discontinued. I believe ATI expects you to use the CONFIG_VGA_SWITCHEROO option)

Someone smarter than me built the Bumblebee Project, in order to interface with the Optimus Line of Notebooks that use the hybrid graphic system, much like ATI. Figure out the veiled reference to transformers yourself in both cases :)

Continuing, all hybrid systems work the same way, which is:

  1. The Intel Graphics Board initializes the computational area, and computes the instructions to draw polygons, screens, etc.
  2. If told to, the Intel Graphics Board will offload the completed computations to the ATI/NVIDIA discrete board. A 3rd Party Driver must be installed and configured, in order to tell your system which applications can request that the Intel Graphics Driver offload the computations for that specific application. The Bumblebee and Ironhide projects are the equivalent of the Windows Driver on a Linux based OS.
  3. The ATI/NVIDIA discrete board has no computational processing power. It can only accept requests to draw output on an application level, therefore you must configure XOrg to use the Intel Driver, and always use Intel with XOrg. Once XOrg starts the 3rd Party Driver Starts and controls XOrg on the Application Level. It is still using the Intel Driver for the computational math.

I knew all this when I posted the link above, and got dinged for only provided the link. I hope my explanation helps. If you have any questions, I'll update this answer with new answers/

  • You gave no version of ATI card. "Late 2011 MacBook Pro" with Intel&ATI inside is not good enough designation. Boot to console, start lspci -nn | grep VGA to get exact version, like this:

    $ lspci -nn | grep VGA
    01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Park [Mobility Radeon HD 5430/5450/5470] [1002:68e0]

    With that you can google for "Linux modesetting hangs on ATI xyz"

  • Try booting to console using different kernels, e.g. from 2.6.32, 3.0.last, 3.2.last, 3.4.last, 3.16.last. No need to check every even version of kernel between 3.0 and 3.16, but in your shoes I would try 2.6.something for sure. And if boot goes well, then start GUI with startx (old way). (.last means latest version of that kernel branch)

  • When you are hardware-locked (using notebook), you do not have much choice if you are not able to write/debug Linux driver(s) yourself - you have to use what drivers are out there and working. I'm writing from experience, as a long time Linux user. So use any ATI driver that works, if none, use Intel card. When you give exact version of ATI card, hopefully Google or some user here will tell you does that card cooperate fine with Linux (so would have hardware bug) or not (lack of functioning driver). If gaming is not your primary concern (you probably wouldn't switch Mac OSX for Linux with intention of gaming), Intel card should work fine, but I understand your wish having myself Intel/NVIDIA combo in notebook I use from time to time. :)

  • Lastly, you do not need to boot UEFI: https://help.ubuntu.com/community/UEFIBooting "Apple officially supports only EFI booting for Mac OS X, although technically it is possible to boot Mac OS X using BIOS firmware. Booting Linux using (U)EFI on Intel Macs has the following advantages:..."

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.