Ubuntu – How to switch to discrete graphics with Ubuntu 14.04

atifglrxhybrid-graphicsradeonvgaswitcheroo

I'm having trouble switching to the discrete graphics on Ubuntu 14.04.


First about my system:

  • Model: HP Pavilion dv6
  • CPU: Intel Core i7-2670QM CPU @ 2.20GHz
  • Memory: 6GB
  • Graphics card: Radeon HD 6400M/7400M series (could not find out the exact model)
  • OS: Ubuntu 14.04.3 LTS

What I tried:

(At first I shut down the X-server with stop lightdm.)

I originally tried to switch to my Radeon graphics card instead of the integrated unit.

My graphics devices are:

>>> lspci -vnn | grep '\''[030[02]\]'
00:02.0 VGA compatible controller [0300]: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller [8086:0116] (rev 09) (prog-if 00 [VGA controller])
01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Seymour [Radeon HD 6400M/7400M Series] [1002:6760] (rev ff) (prog-if ff)

I tried switching devices using /sys/kernel/debug/vgaswitcheroo/switch (following this article: https://help.ubuntu.com/community/HybridGraphics ). I obtained:

>>> cat /sys/kernel/debug/vgaswitcheroo/switch
0:IGD:+:Pwr:0000:00:02.0
1:DIS: :DynOff:0000:01:00.0

but echo ON > /sys/kernel/debug/vgaswitcheroo/switch didn't change anything so I went to BIOS and changed Switchable Graphics Mode to Fixed (following http://support.hp.com/us-en/document/c02948560 ) and because there was still no change I added radeon.runpm=0 to /etc/default/grub at GRUB_CMDLINE_LINUX_DEFAULT= (following http://iswwwup.com/t/3a156248c627/ati-vgaswitcheroo-doesnt-work-on-14-04-discrete-radeon-always-on-dell-vost.html ).

After rebooting I obtained:

>>> cat /sys/kernel/debug/vgaswitcheroo/switch
0:IGD:+:Pwr:0000:00:02.0
1:DIS: :Pwr:0000:01:00.0

echo DIS > /sys/kernel/debug/vgaswitcheroo/switch now caused the screen to turn black and didn't show any ouput. However I was able to check the content of /sys/kernel/debug/vgaswitcheroo/switch by copying it to a file and then switching back to integrated graphics. The content was:

>>> cat /sys/kernel/debug/vgaswitcheroo/switch
0:IGD: :Off:0000:00:02.0
1:DIS:+:Pwr:0000:01:00.0

So apparently the Radeon card was powered and active but didn't output anything. I observed the same behaviour when having an external screen connected both via VGA and HDMI.

(Side note: switching back to integrated graphics via echo IGD > /sys/kernel/debug/vgaswitcheroo/switch gave as output [ 956.727633] [drm:rv770_stop_dpm] *ERROR* Could not force DPM to low. (probably due to the radeon.runpm=0 which I added before); however the /sys/kernel/debug/vgaswitcheroo/switch wasn't available anymore (I couldn't issue any further commands) and lspci -vnn | grep '\''[030[02]\]' didn't list the Radeon anymore.)

So I thought the problem might be a missing driver.


About the AMD driver:

I checked the AMD website for an Ubuntu driver and found the following: http://support.amd.com/en-us/download/desktop?os=Linux+x86

I followed the installation manual (http://www2.ati.com/drivers/amd-catalyst-graphics-driver-installer-notes-for-linux-operating-systems.pdf ; none of fglrx, fglrx-core, fglrx-amdcccle, fglrx-dev was already installed) but encountered an error when installing fglrx-core: there was a conflict with libopencl1. I followed this workaround: 14.10 wine and fglrx conflict and modified Conflicts and Provides as described, then the installation of the above packages finished without error. Also, as described in the workaround, I did apt-get install fglrx-updates. However after rebooting the system told me

The system is running in low-graphics mode – Your screen, graphics
card, and input device settings could not be detected correctly. You
will need to configure there yourself.

I used the console log-in to remove the previously installed packages but the graphics still don't work.


To summarize the question:

What do I have to do in order to manually switch to the Radeon graphics card using Ubuntu 14.04? In case I need to install the above mentioned driver is the conflict with libopencl1 a problem and if so how I can work around this? Also, how can I get the X-server back working?

Thanks a lot in advance! Cheers!

EDIT:

I uploaded /var/log/Xorg.0.log and /var/log/Xorg.failsafe.log. Here are the links:

EDIT2:

From the low-graphics dialogue I selected "restore default graphics settings" and now the X-server is back working. But with the integrated graphics, of course.

Best Answer

You need to install a proprietary driver by running

sudo apt-get install fglrx-updates

Then you can swithch to discrete graphics by

sudo aticonfig --px-dgpu

to integrated graphics by

sudo aticonfig --px-igpu

see status by

aticonfig --pxl

You can do it also in AMD Catlyst GUI program.

Related Question