Ubuntu – Intel/AMD Hybrid graphics on Ubuntu 14.04

atidriversgraphicshybrid-graphicsintel graphics

I recently acquired a new laptop featuring hybrid graphics, namely a Toshiba P50T-B. I installed Ubuntu and at first I had lots of troubles to set up the graphics. The screen was turning black right after Grub, which was fixed through adding the option nomodeset and by installing the intel drivers.

Now, the Intel GPU works just fine as an only graphics controller, but I cannot get the AMD Radeon R9 M265X to work. I tried installing the proprietary drivers fglrx which cause the system to boot in low graphics mode from which the farthest I have gone is to switch to console mode and uninstall/purge the AMD drivers.

The relevant part of the output of sudo lshw is

 *-pci
      description: Host bridge
      product: Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller
      vendor: Intel Corporation
      physical id: 100
      bus info: pci@0000:00:00.0
      version: 06
      width: 32 bits
      clock: 33MHz
    *-pci:0
         description: PCI bridge
         product: Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller
         vendor: Intel Corporation
         physical id: 1
         bus info: pci@0000:00:01.0
         version: 06
         width: 32 bits
         clock: 33MHz
         capabilities: pci pm msi pciexpress normal_decode bus_master cap_list
         configuration: driver=pcieport
         resources: irq:42 ioport:e000(size=4096) memory:f7b00000-f7bfffff ioport:e0000000(size=268435456)
       *-display UNCLAIMED
            description: Display controller
            product: Venus PRO [Radeon HD 8850M / R9 M265X]
            vendor: Advanced Micro Devices, Inc. [AMD/ATI]
            physical id: 0
            bus info: pci@0000:01:00.0
            version: 00
            width: 64 bits
            clock: 33MHz
            capabilities: pm pciexpress msi cap_list
            configuration: latency=0
            resources: memory:e0000000-efffffff memory:f7b00000-f7b3ffff ioport:e000(size=256) memory:f7b40000-f7b5ffff
    *-display
         description: VGA compatible controller
         product: 4th Gen Core Processor Integrated Graphics Controller
         vendor: Intel Corporation
         physical id: 2
         bus info: pci@0000:00:02.0
         version: 06
         width: 64 bits
         clock: 33MHz
         capabilities: msi pm vga_controller bus_master cap_list rom
         configuration: driver=i915 latency=0
         resources: irq:49 memory:f7400000-f77fffff memory:d0000000-dfffffff ioport:f000(size=64)

As you see, for some reason the Intel graphics is being detected as a VGA compatible controller whereas the AMD GPU is being listed as Display controller and, moreover, appears as UNCLAIMED, which seems to mean that the necessary module for it to work is not loaded.

As an additional info, the relevant part of the output of lspci is

00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)
01:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Venus PRO [Radeon HD 8850M / R9 M265X]

Unfortunately, Toshiba's support is terrible as they do not support anything but MSW, so here I am stuck with a hybrid system which only works as a regular single-gpu laptop.

Best Answer

With the release of Ubuntu 14.10, some of the problems related to this incompatibility issue appear to be solved. I succeeded to make both graphic cards to work as follows:

1) Install Ubuntu 14.10. In my case, I first tried updating from 14.04 but I messed up with the installation. I ended up doing a clean install from an Ubuntu CD.

2) Install the fglrx driver from "Software & Updates" -> "Additional Drivers".

3) Reboot

4) Unfortunately, the AMD Catalyst Control Center behave weirdly. The first time I run it, it did run normally. I used it to switch the card. After a reboot, the AMD Catalyst Control Center did not run anymore. To switch between cards, please follow the step 5).

5) Check whether you are using the discrete card (radeon) or the integrated one (intel) by running the in a terminal:

amdconfig --pxl

If you are using the Intel card, you should see a message like:

PowerXpress: Integrated GPU is active (Power-Saving mode).

Otherwise you will see a similar message stating that the discrete card is currently in use. To switch from using the discrete card to the integrated one, run the following command:

amdconfig --px-igpu

For the other way around, run the following command:

amdconfig --px-dgpu

In both cases you will be prompted to restart the X server. You may log out and log in again for the changes to take effect.

Related Question