Ubuntu – Hybrid Graphics on Ubuntu 12.04 switching to discrete

12.04hybridvgaswitcheroo

I have a Sony Vaio VPCCB-27FX with hybrid graphics. Using vgaswitcheroo enables me to switch my discrete card off to save power.
Now when i want to switch to the discrete card for performance, my system freezes.

I already tried logging out and killing x with service lightdm stop, but still, it freezes as soon as I echo DIS > switch.
typing blindly, echo IGD > switch returns me to my console where it reads
[ 179.555171] i915: switched off, but it seems the discrete card never gets switched on…
running echo DDIS > switch gives me the following:

[540....] [drm:atop_op_jump] *ERROR* atombios stuck in loop for more than 5secs aborting
[540....] [drm:atom_execute_table_locked] *ERROR* atombios stuck executing CEE2 (len 62, WS 0, PS 0) @ 0xCEFE
[540....] [drm:atom_execute_table_locked] *ERROR* atombios stuck executing BBF6 (len 1036, WS 4, PS 0) @ 0xBCF3
[540....] [drm:atom_execute_table_locked] *ERROR* atombios stuck executing BB8C (len 76, WS 0, PS 0) @ 0xBB94
[541....] [drm:r600_RING_TEST] *ERROR* radeon: ring test failed (scratch(0x8504)=0xFFFFFFFF)
[541....] [drm:evergreen_resume] *ERROR* evergreen startup failed on resume

after that, the atombios part repeats a few times.

also, the terminal locks up again and sysrq+REISUB is my only rescue.

Has anybody an idea how I can switch to my discrete card without the system locking up?

#uname -srvmpio
Linux 3.2.0-24-generic #39-Ubuntu SMP Mon May 21 16:52:17 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
#lsb_release -r
Description: Ubuntu 12.04 LTS

Best Answer

I have a HP Pavilion dm4t with ATI 5470 and use Xubuntu 12.04. Switching works for me with the following procedure. I should note that I have latest 3.4 kernel from here https://launchpad.net/~francisbrwn9/+archive/kernels

This is how I do the switching:

  • Logout
  • CTRL+ALT+F1 to get to console
  • service lightdm stop

Both cards should be ON, before switching, so next step is:

  • echo ON > switch

If I want to use Intel then enable it to start on next X start:

  • echo DIGD > switch

If I want to use Radeon then enable it to start on next X start:

  • echo DDIS > switch

Then:

  • service lightdm start
  • CTRL+ALT+F1 to return to console and logout from it
  • ALT+F7 or F8 to return to lightdm login and proceed using the selected card
Related Question