For more information, join the team subscribe to the mailing list 
at the bottom of the Launchpad page

    http://launchpad.net/~hybrid-graphics-linux 

Please join this team if you are new by clicking on the "Join 
Team" link at the right of the Launchpad page. It's important to 
have as many users in the community as possible to request for 
appropriate support.

Saturday, 21 August 2010

Howto Linux hybrid graphics Asus N71Jv

Linux Hybrid Graphics: Using acpi_call module to switch on/off discrete graphics card in Linux
Asus N71JV - TY079V



./test_off.sh

Trying \_SB.PCI0.P0P1.VGA._OFF: failed

Trying \_SB_.PCI0.OVGA.ATPX: failed

Trying \_SB_.PCI0.OVGA.XTPX: failed

Trying \_SB.PCI0.P0P2.PEGP._OFF: failed

Trying \_SB.PCI0.MXR0.MXM0._OFF: failed

Trying \_SB.PCI0.PEG1.GFX0._OFF: works!



Asus N71Jv 1.0



00:02.0 VGA compatible controller [0300]: Intel Corporation Core Processor Integrated Graphics Controller [8086:0046] (rev 12)

01:00.0 VGA compatible controller [0300]: nVidia Corporation Device [10de:0a35] (rev a2)

Friday, 20 August 2010

Howto Linux hybrid graphics HP Pavilion dm4-1063cl

Linux Hybrid Graphics: Using acpi_call module to switch on/off discrete graphics card in Linux
HP Pavilion dm4-1063cl
with Intel (integrated) and ATI (Discrete)
Compiling acpi_call and here's the result:

Trying \_SB.PCI0.P0P1.VGA._OFF: failed
Trying \_SB_.PCI0.OVGA.ATPX: failed
Trying \_SB_.PCI0.OVGA.XTPX: failed
Trying \_SB.PCI0.P0P2.PEGP._OFF: works!

Here is an init script with this to disable the discrete card for now, because the battery drains quicly with the two cards on.

#!/bin/bash
insmod /home/mansor/acpi_call/acpi_call.ko
echo '\_SB.PCI0.P0P2.PEGP._OFF' > /proc/acpi/call

Tuesday, 17 August 2010

Asus N82JV hybrid graphics Linux

On a Asus N82JV

Trying \_SB.PCI0.PEG1.GFX0._OFF: works!

A "grep rate /proc/acpi/battery/BAT0/state" command showed a difference of about 7.5W in battery usage.

Acer Aspire 4745G hybrid graphics Linux

Acer Aspire 4745G, Ubuntu 10.04 64bit.

here's the output after installing the acpi_call.ko module and running the test_off script:

Trying \_SB.PCI0.P0P1.VGA._OFF: failed
Trying \_SB_.PCI0.OVGA.ATPX: failed
Trying \_SB_.PCI0.OVGA.XTPX: failed
Trying \_SB.PCI0.P0P2.PEGP._OFF: works!

it disabled the discrete ati hd 5470 graphics leaving only the intel integrated graphics.

Monday, 26 July 2010

More interesting news from the vga_switcheroo/acpi_call front

Here a website with useful ACPI information for Linux laptops:
http://linux.aldeby.org/bios-dst.html

And here some developments for the Asus Optimus laptops and vga_switcheroo:
https://lists.launchpad.net/hybrid-graphics-linux/msg00143.html

Friday, 23 July 2010

How to test nouveau nvidia hybrid graphics switch on/off

One of the hybrid-graphics-linux launchpad team member kindly provided an Ubuntu
package for the patched kernel that reports "_DSM" vga_switcheroo switches for nvidia hybrid graphics laptops

(sub-arch is Core-Duo/Xeon, all other config options are based of
a stock Ubuntu kernel)
. You can download it at:
http://rapidshare.com/files/408536337/linux-image-2.6.35-rc5_CustomDebugNV.01_amd64.deb

or

http://hotfile.com/dl/56924631/1202d13/linux-image-2.6.35-rc5_CustomDebugNV.01_amd64.deb.html

Please run this command post installing or
this kernel will fail to boot:

# mkinitramfs -k 2.6.35-rc5 -o /boot/initrd.img-2.6.35-rc5

So if you have a nvidia hybrid graphics laptop and want to test its nouveau drivers compatibility, now it's easier than ever...

Tuesday, 20 July 2010

nvidia-pre-optimus: David Airlie's 0001-nouveau-mux-switching-test-patch-1.patch

[Hybrid-graphics-linux] finishing intel/nvidia support (with open drivers)
This is a patch to apply on top of current Linux tree, with a dmesg from a pre-optimus nvidia hybrid machine should bring up some info on the current state of the switchable toggle.
Testers welcomed, please report back at mailing list https://launchpad.net/~hybrid-graphics-linux, this email is repeated there:
http://people.freedesktop.org/~airlied/scratch/0001-nouveau-mux-switching-test-patch-1.patch
Also, if you have time to package the patched kernel for your favourite distro, please post it somewhere so that other people can install it and try it.

From d2049202567dcb83ef9b8bbf34a3bccc10d90477 Mon Sep 17 00:00:00 2001
From: Dave Airlie <airlied@redhat.com>
Date: Tue, 20 Jul 2010 09:06:09 +1000
Subject: [PATCH] nouveau: mux-switching test patch 1

---
drivers/gpu/drm/nouveau/nouveau_acpi.c | 20 +++++++++++++++++++-
1 files changed, 19 insertions(+), 1 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nouveau_acpi.c b/drivers/gpu/drm/nouveau/nouveau_acpi.c
index d4bcca8..dfb3b5b 100644
--- a/drivers/gpu/drm/nouveau/nouveau_acpi.c
+++ b/drivers/gpu/drm/nouveau/nouveau_acpi.c
@@ -31,6 +31,8 @@
#define NOUVEAU_DSM_POWER_SPEED 0x01
#define NOUVEAU_DSM_POWER_STAMINA 0x02

+#define NOUVEAU_DSM_TOGGLE 0x05
+
static struct nouveau_dsm_priv {
bool dsm_detected;
acpi_handle dhandle;
@@ -90,7 +92,12 @@ static int nouveau_dsm(acpi_handle handle, int func, int arg, int *result)

static int nouveau_dsm_switch_mux(acpi_handle handle, int mux_id)
{
- return nouveau_dsm(handle, NOUVEAU_DSM_LED, mux_id, NULL);
+ int result, ret;
+ ret = nouveau_dsm(handle, NOUVEAU_DSM_LED, mux_id, NULL);
+
+ ret = nouveau_dsm(handle, NOUVEAU_DSM_TOGGLE, (mux_id | (1<<31)), &result);
+ printk("mux switch toggle returned %d\n", result);
+ return ret;
}

static int nouveau_dsm_set_discrete_state(acpi_handle handle, enum vga_switcheroo_state state)
@@ -181,10 +188,21 @@ static bool nouveau_dsm_detect(void)
}

if (vga_count == 2 && has_dsm) {
+ u32 result;
+ int ret;
acpi_get_name(nouveau_dsm_priv.dhandle, ACPI_FULL_PATHNAME, &buffer);
printk(KERN_INFO "VGA switcheroo: detected DSM switching method %s handle\n",
acpi_method_name);
nouveau_dsm_priv.dsm_detected = true;
+ /* get current power state */
+ ret = nouveau_dsm(nouveau_dsm_priv.dhandle, NOUVEAU_DSM_POWER, NOUVEAU_DSM_POWER_STATE, &result);
+ if (ret == 0) {
+ printk("VGA switchreoo: current power state is %d\n", result);
+ }
+ ret = nouveau_dsm(nouveau_dsm_priv.dhandle, NOUVEAU_DSM_TOGGLE, 0, &result);
+ if (ret == 0) {
+ printk("VGA switchreoo: current toggle state is %d\n", result);
+ }
return true;
}
return false;
--
1.7.1

Followers