Page 1 of 7 123 ... LastLast
Results 1 to 10 of 74

Thread: Hybrid ATI/ATI - Intel/ATI solution: small switcheroo how to

Hybrid View

  1. #1
    Join Date
    Oct 2009
    Location
    Zürich, Switzerland
    Posts
    59

    Default Hybrid ATI/ATI - Intel/ATI solution: small switcheroo how to

    First of all, this "how to" 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 switcheroo patch from David Airlie with their own machines with switchable graphics.

    Notes:
    GNU/Linux used: Fedora 12 with all updates
    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

    (0) Downloads:
    http://www.kernel.org/pub/linux/kern...33-rc7.tar.bz2 and untar it to: /usr/src/
    http://people.freedesktop.org/~airli...ation-v6.patch and copy it to: /usr/src/
    http://people.freedesktop.org/~airli...ondition.patch and copy it to: /usr/src/

    (1) Patch kernel & compile kernel:
    su
    cd /usr/scr/linux-2.6.33-rc7/
    patch -p1 <../0001-vga_switcheroo-initial-implementation-v6.patch
    patch -p1 <../0002-vga-switch-hi-my-name-is-race-condition.patch
    make mrproper
    cp /boot/config-"kernel" .config # in my case: "kernel" = 2.6.31.12-174.2.3.fc12.x86_64
    yum install qt3-devel gcc-c++ libXi-devel # install development tools (just in case)
    make xconfig # make changes and save before quitting
    make
    make modules_install
    cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.33-rc7
    cp System.map /boot/System.map-2.6.33-rc7
    install mkinitrd
    new-kernel-pkg -v --mkinitrd --depmod --install 2.6.33-rc7
    gedit /boot/grub/menu.lst # edit grub to add the new compiled kernel

    (2) Run the new kernel and test:
    su
    mount -t debugfs none /sys/kernel/debug
    cd /sys/kernel/debug/vgaswitcheroo
    cat switch # to see which card is active
    echo DDIS > switch # to go to discrete card (log off and then log in after this command)
    echo DIGD > switch # to go to integrated card (log off and then log in after this command)
    echo OFF > switch # to just poweroff the card you aren't using

    (3) My tests:
    [root@FEDORA12x64test vgaswitcheroo]# cat switch
    0:+:Pwr:0000:01:05.0
    1: :Off:0000:02:00.0
    [root@FEDORA12x64test vgaswitcheroo]# glxgears
    1918 frames in 5.0 seconds = 383.455 FPS
    2090 frames in 5.0 seconds = 417.909 FPS
    2147 frames in 5.0 seconds = 429.261 FPS

    [root@FEDORA12x64test vgaswitcheroo]# cat switch
    0: :Off:0000:01:05.0
    1:+:Pwr:0000:02:00.0
    [root@FEDORA12x64test vgaswitcheroo]# glxgears
    1683 frames in 5.0 seconds = 336.440 FPS
    1618 frames in 5.0 seconds = 323.554 FPS
    1735 frames in 5.0 seconds = 346.940 FPS

    In my case there was no 3D acceleration with this kernel, even if I installed "mesa-dri-drivers-experimental". I think it is because the firmware R600_rlc.bin was missing in /lib/firmware/radeon. Anyway, the switcheroo works great. May be with the next stable kernel all will work with 3D acceleration. Special thanks to David Airlie that explained me how to use his switcheroo.

  2. #2
    Join Date
    Oct 2009
    Location
    Zürich, Switzerland
    Posts
    59

    Default update with kernel-2.6-git 2010-02-12

    Yesterday I made exactly the same process but this time I used kernel-2.6-git instead of using kernel linux-2.6.33-rc7:

    su
    cd /usr/src/
    git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
    cd linux-2.6-git/
    patch -p1 <../0001-vga_switcheroo-initial-implementation-v6.patch
    patch -p1 <../0002-vga-switch-hi-my-name-is-race-condition.patch
    make mrproper
    (...)

    This time 3D acceleration works great!! I tested with a software to visualize and manipulate 3D images. It works perfect. Compiz also works faster and the computer is not as hot as before.

  3. #3
    Join Date
    Oct 2009
    Location
    Zürich, Switzerland
    Posts
    59

    Default desktop launchers for hybrid switch ASUS M51Ta

    # first of all, to use these two launchers you will need this program:
    $ yum install beesu

    These two desktop launchers can be used to switch graphics when the computer is iniciated. They work great on my laptop ASUS M51Ta. Like both cards are on when the computer is turned on, to use HD3200 card (integrated one) I just have to turn off the HD3650; so this launcher is used:

    # this should be copied on an "file.desktop" (you sould give it execute permission):

    [Desktop Entry]
    Version=1.0
    Encoding=UTF-8
    Name=HD3200 switch
    Exec=beesu 'mount -t debugfs none /sys/kernel/debug ; cd /sys/kernel/debug/vgaswitcheroo/ ; echo OFF > switch'
    Type=Application
    Categories=Other;
    Icon=media-flash
    Terminal=false

    And to use the discrete card (HD3650), it must switch and logout with this other launcher, then you login and the switch is made:

    [Desktop Entry]
    Version=1.0
    Encoding=UTF-8
    Name=HD3650 switch
    Exec=beesu 'mount -t debugfs none /sys/kernel/debug ; cd /sys/kernel/debug/vgaswitcheroo ; echo DDIS > switch ; killall -u USERNAME'
    Type=Application
    Categories=Other;
    Icon=media-flash
    Terminal=false

    # change USERNAME -> your user name

    I hope this helps to others trying to use hybrid graphics in their laptops. Don't hesitate to write to
    hybrid-graphics-linux@lists.launchpad.net
    https://launchpad.net/~hybrid-graphics-linux

  4. #4
    Join Date
    Apr 2009
    Posts
    17

    Default

    How does X handle this? I have a Thinkpad W500 with a integrated Intel i965 and a ATI 3650. The W500's switchable graphics work find in Vista and Windows 7. You can switch between graphics chips on the fly. Can switcheroo do this with two different brands of graphics chips? What is the xorg.conf config look like?

  5. #5
    Join Date
    Apr 2009
    Posts
    17

    Default

    Actually, looking at the patch, it does specifically mention that this works on the W500. How does X11 handle this What does your xorg.conf look like?

  6. #6
    Join Date
    Apr 2009
    Posts
    17

    Default

    Dug further into this. Looks like you have to log out of X and back in once you switch the graphics. Like to see a xorg.conf that knows about both cards.

  7. #7
    Join Date
    Oct 2008
    Location
    Sweden
    Posts
    983

    Default

    Quote Originally Posted by Ryushin View Post
    Dug further into this. Looks like you have to log out of X and back in once you switch the graphics. Like to see a xorg.conf that knows about both cards.
    An uneducated guess would be that you don't configure any cards in xorg.conf and rely on autodetection?

  8. #8
    Join Date
    Apr 2009
    Posts
    17

    Default

    I'll need to have an xorg.conf as I have specific settings for the mouse buttons in a Thinkpad. I guess I could have the script swap xorg.conf files as well.

  9. #9
    Join Date
    Oct 2008
    Location
    Sweden
    Posts
    983

    Default

    I didn't say to go without an xorg.conf, just don't configure any video card (remove the "Driver" line) and leave the rest.

  10. #10
    Join Date
    Oct 2009
    Location
    Zürich, Switzerland
    Posts
    59

    Default

    In my case (ASUS M51Ta - HD3200 / HD3650), I even don't have a xorg.conf and the switcheroo works fine.

    @Ryushin: Just something important: if you are going to compile your own kernel to test don't forget to copy "R600_rlc.bin" and "R700_rlc.bin" (radeon firmware files) to /lib/firmware/radeon/ before your compilation. You can fin them at http://people.freedesktop.org/~agd5f/radeon_ucode/

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •