Ubuntu – How to switch between Gfx cards on Macbook Pro 15″ 8.2

grub-efimacbook proradeonvgaswitcheroo

I have a Macbook 15" Pro 8.2

Which apparently is supposed to be switchable between the GFX cards with vgaswitcheroo.
But /sys/kernel/debug/ contains no switcheroo folder.

syslog gives me this.

[   21.631041] vga_switcheroo: enabled
[   21.631075] radeon 0000:01:00.0: Invalid ROM contents
[   21.631149] radeon 0000:01:00.0: Invalid ROM contents
[   21.631154] [drm:radeon_get_bios] *ERROR* Unable to locate a BIOS ROM
[   21.631163] radeon 0000:01:00.0: Fatal error during GPU init
[   21.631165] [drm] radeon: finishing device.
[   21.631166] [TTM] Memory type 2 has not been initialized
[   21.632193] radeon 0000:01:00.0: no bo for sa manager
[   21.632197] vga_switcheroo: disabled

it seems that it tries to enable it but then fails.
In other faqs on the net i hear that when booting in efi mode there is no bios. And because of this the ati card cant initialize properly. Sounds like it could be the reason. Anyone know how to load the bios rom when in efi mode?

–ok some updates–
There is a patch that works. Allowing the loading of the video bios from a file for the 3.4 kernel.

These features have been merged into 3.6-rc 3 apparently. But I'm on that kernel and still cant switch over to the ATI card.

apparently others have the same issue

Best Answer

I've solved it. I can successfully use the ATI card and also use an external display for dual head.

  1. Have ubuntu installed and running in efi mode using the native builtin default radeon driver
  2. Install the 3.8 ubuntu kernel from here:
  3. Install the refind (refit replacement boot manager for efi macs
  4. copy vmlinuz-3.8.0-030800rc2-generic and initrd.img-3.8.0-030800rc2-generic to /boot/efi/ubuntu/
  5. create a the file /boot/efi/ubuntu/refind_linux.conf enter this into it: "Boot with sda6" "root=/dev/sda6 add_efi_memmap modprobe.blacklist=i915 radeon.modeset=1 elevator=noop vt.handoff=7 ro

this will give you a new option to boot the 3.8 kernel directly from the refit menu entierly bypassing grub which is needed for the switching to work properly.

6) The actual switch needs to be done from console, with GDM stopped. It also seems to works best if its done after a fresh start of the machine. 7) echo DIGD > /sys/kernel/debug/vgaswitcheroo/switch , as root to switch to the Intel card 8)echo DIS > /sys/kernel/debug/vgaswitcheroo/switch, as root to switch to the ati card

For me every other release candidate strangely enough seem to have broken USB support . If your keyboard doesn't work, try another latest working for me is 3.8 rc6.

the /boot/efi is where my efi paritition gets mounted in Linux. The efi partition is where you need to put the files for efi(refind) to detect your kernel and initrd. if you cannot see it. Check gparted for it. It has a fat32 filesystem and should have the label EFI.

Related Question