Update 18/03/2014: I'm sad to announce I no longer have this computer nor any PC with hybrid graphics... My ASUSM51Ta passed away, so I no longer could compile kernels and test things on hybrid graphics. As far as I know this technology is already supported more easily Hybrid Graphics Wiki.

First of all, this HowTo is intended to people like me with almost no knowledge about compiling and patching kernels. Also to people that may want to share their experience using the vga_switcheroo (now included in kernel 2.6.35 onwards) from David Airlie with their own machines with switchable graphics.


If you want to test this HowTo on your computer, please post your experience at the mailing list of https://launchpad.net/%7Ehybrid-graphics-linux

For more info about hybrid graphics consult:
http://linux-hybrid-graphics.blogspot.com/


Notes:





GNU/Linux used: Fedora / Ubuntu
Machine: ASUS M51Ta
Graphic card configuration:
- Integrated: 01:05.0 VGA compatible controller: ATI Technologies Inc RS780M/RS780MN [Radeon HD 3200 Graphics]
- Discrete: 02:00.0 VGA compatible controller: ATI Technologies Inc Mobility Radeon HD 3650



[05/11/2010] Fedora 14 / Ubuntu 10.10 already with vgaswitcheroo!!

Good news!
From now on, if you want to use the vgaswitcheroo module you just have to install (or test from a Live CD/USB) Fedora 14 or Ubuntu 10.10 (sure, other distributions may also do the trick) and go directly to point "(2) Run the new kernel and test:" from previous post. That's all! I personally have installed in my laptop both Fedora and Ubuntu and they both work perfectly well although there are some differences in the scripts (when I have some time I'll make a specific HowTo for each of the new systems; in the meantime, please write me if you have any doubts). Good luck and I hope you enjoy your hybrid graphics on GNU/Linux!

So just download Fedora 14 or Ubuntu 10.10 and try it for yourself:

Fedora 14


Ubuntu 10.10



15 comments:

  1. Your writing is very clear and exhaustive; unluckily I am not been able to find in Ubuntu 10.10 the directory (sys/kernel/debug/) "none". Could you help me?
    niky

    ReplyDelete
  2. Last time I tested Ubuntu 10.10 Beta it worked fine with my computer (ASUSM51ta) and the /sys/kernel/debug/ was mounted automatically... Now I'm using a bad internet connection, but as soon as I can download the final release I'll test it and post my results. Anyway, in what computer you are testing?

    ReplyDelete
  3. @Anonymous: I have just tried Ubuntu 10.10 (final release) and it works like charm! (at least with the ASUSM51ta hybrid graphic configuration: HD3650/HD3200).
    I ran it from an USB, and from the terminal:
    > sudo su
    > cd /sys/kernel/debug/vgaswitcheroo/ # it was already mounted
    > cat switch
    0:+:Pwr:0000:01:05.0
    1: :Pwr:0000:02:00.0
    > echo OFF > switch
    > cat switch
    0:+:Pwr:0000:01:05.0
    1: :Off:0000:02:00.0

    ReplyDelete
  4. Hi Roberto,

    First of all, thanks for all your work on this -- including the part about documentation!

    I just got a new laptop today, and it's got integrated Intel i915 graphics and an ATI HD 5650. I've installed Ubuntu 10.10 and the fglrx driver, and both drivers (i915 and fglrx) are loaded, but vgaswitcheroo is nowhere to be found in /sys/kernel/debug.
    Do you have any clues as to what to do next?
    Currently I'll try compiling my own kernel, but if that doesn't change anything... Hmm.

    -Rune

    ReplyDelete
  5. Alright, so far so good. I got it working, I just had to realize that you have to load only the i915 and radeon modules, then vgaswitcheroo will show up in /sys/kernel/debug/.
    Now I'm stuck in a different place. The whole reason I wanted to use the switcheroo was to use the fglrx driver.
    After loading radeon, switching graphics cards and loading fglrx, I'm unable to start Xorg with Driver "fglrx" in the Device section. Xorg fails with the following errors:

    [ 10195.420] (II) fglrx(0): AC Adapter is used
    [ 10195.424] (II) fglrx(0): Primary V_BIOS segment is: 0xc000
    [ 10195.424] (II) fglrx(0): Invalid ATI BIOS from int10, the adapter is not VGA-enabled
    [ 10195.425] (EE) fglrx(0): Invalid video BIOS signature!
    [ 10195.425] (EE) fglrx(0): GetBIOSParameter failed
    [ 10195.425] (EE) fglrx(0): PreInitAdapter failed
    [ 10195.425] (EE) fglrx(0): PreInit failed
    [ 10195.425] (II) fglrx(0): === [xdl_x760_atiddxPreInit] === end

    To top it off, this laptop doesn't even have a BIOS setting for switching between graphics cards...

    ReplyDelete
  6. @Rune: I'm sorry to tell you I'm stuck exactly in your same place... I cannot use vga_swircheroo to be able to use fglrx with the discrete card. So now just using plain open source ati drivers and vga_switcheroo. I'm sorry to tell you, but my simple strategy is just wait till open source drivers become more efficient. With open source friendly companies as Intl or ATI and good developers this will come sooner or later.

    ReplyDelete
  7. @Roberto: Dang, was hoping you had the ultimate solution to my problem. I guess we'll just have to wait.
    Thanks for this blog!

    -Rune

    ReplyDelete
  8. i can't activate desktop effects in my ati hd3200, im using maverick distribution and i've amd_64

    ReplyDelete
  9. even workink for my X360 Notebook with nvidia 310M Hybrid ?

    ReplyDelete
  10. Hi, did try with Asus N53JN, Ubuntu 10.10 with kernel 2.6.36, graphic intel/nvidia gt 335m. The discrete card do not power on, error occurs: sh switch_between_cards.sh
    [: 120: :+:Pwr:: unexpected operator
    [: 120: :+:Pwr:: unexpected operator
    [: 120: :+:Pwr:: unexpected operator
    [: 120: :+:Pwr:: unexpected operator
    Did everything as You write, except that file rc.local is located at /etc/rc.local in Ubuntu. Cards were detected properly and the menu shows, but after choosing an option this errors occurs. Can You help me?

    ReplyDelete
  11. @AMartin
    Try to do it manually.

    See current status:
    "cat /sys/kernel/debug/vgaswitcheroo/switch"

    Turn off currently unused graphics card:
    "echo OFF | sudo tee /sys/kernel/debug/vgaswitcheroo/switch"

    ReplyDelete
  12. @Rune
    Tried this a moment ago, nothing changes with OFF and ON, status of the /sys.../switch stays the same, game extremetuxracer shows only 30fps which is like in intel card, not the nvidia. Hmm, I realy want to use nvidia card, please share with me any ideas, I will test them all.

    ReplyDelete
  13. Hi guys, I have found something. By doing manualy "echo OFF | sudo tee /sys/kernel/debug/vgaswitcheroo/switch" as Rune adviced I can disable and enable (with ON) the second card. Still the "+" is only with the first one. But the problem is that I want to disable the first one which I belive is intel card, and leave the second one enabled (nvidia). Tried to do it manualy in the file but cannot write it (even with sudo command). Can You guide me how to do that?

    ReplyDelete
  14. Somebody has found one solution? Please i have the same problem and i can't activate nvidia card! I'm getting crazy!

    ReplyDelete
  15. It was very nice article and it is very useful to Linux learners.We also provide Linux online training

    ReplyDelete

Followers