← Back to team overview

hybrid-graphics-linux team mailing list archive

Re: finishing intel/nvidia support (with open drivers)

 

Great stuff! Thanks very much!

I wonder if someone at launchpad can help in getting the i386 to
compile? I saw an email associated to the ppa... I've set it to retry
now.

On Fri, Aug 6, 2010 at 8:09 PM, octagonhead <octagonhead@xxxxxxxxx> wrote:
> I've uploaded another package based on newer kernel sources here:
> http://ubuntuone.com/p/Bor/
> That link should be more permanent that the other ones.
>
> There are also slightly different packages in the ppa: I have tested this
> one:
> http://ppa.launchpad.net/hybrid-graphics-linux/hybrid-graphics/ubuntu/pool/main/l/linux/linux-image-2.6.35-14-generic_2.6.35-14.19_amd64.deb
> (i386 packages failed to build for some reason)
>
> Both of these kernels should create proper initrd files upon boot.
>
> I get similar results as before, but this time i noticed that dmesg produces
> more output if I restart X after sending a something to the switch:
>
> /sys/kernel/debug/vgaswitcheroo# echo DIGD > switch
> vga_switcheroo: client 0 refused switch
> vga_switcheroo: setting delayed switch to client 0
>
> ---  and then:  ---
>
> [drm] nouveau 0000:01:00.0: nouveau_channel_free: freeing fifo 3
> [drm] nouveau 0000:01:00.0: nouveau_channel_free: freeing fifo 2
> vga_switcheroo: processing delayed switch to 0
> fbcon: Remapping primary device, fb1, to tty 1-63
> ACPI Error: Needed [Buffer/String/Package], found [Integer] ffff880138edc8b8
> (20100428/exresop-590)
> ACPI Exception: AE_AML_OPERAND_TYPE, While resolving operands for
> [OpcodeName unavailable] (20100428/dswexec-445)
> ACPI Error (psparse-0537): Method parse/execution failed
> [\_SB_.PCI0.VGA_._DSM] (Node ffff88013b642160), AE_AML_OPERAND_TYPE
> ACPI Error (psparse-0537): Method parse/execution failed
> [\_SB_.PCI0.P0P1.VGA_._DSM] (Node ffff88013b643b60), AE_AML_OPERAND_TYPE
> failed to evaluate _DSM: 12291
> ACPI Error: Needed [Buffer/String/Package], found [Integer] ffff880138edc870
> (20100428/exresop-590)
> ACPI Exception: AE_AML_OPERAND_TYPE, While resolving operands for
> [OpcodeName unavailable] (20100428/dswexec-445)
> ACPI Error (psparse-0537): Method parse/execution failed
> [\_SB_.PCI0.VGA_._DSM] (Node ffff88013b642160), AE_AML_OPERAND_TYPE
> ACPI Error (psparse-0537): Method parse/execution failed
> [\_SB_.PCI0.P0P1.VGA_._DSM] (Node ffff88013b643b60), AE_AML_OPERAND_TYPE
> failed to evaluate _DSM: 12291
> mux switch toggle returned -30719
> vga_switcheroo: delayed switching failed 12291
> [drm] nouveau 0000:01:00.0: Allocating FIFO number 2
> [drm] nouveau 0000:01:00.0: nouveau_channel_alloc: initialised FIFO 2
> [drm] nouveau 0000:01:00.0: Allocating FIFO number 3
> [drm] nouveau 0000:01:00.0: nouveau_channel_alloc: initialised FIFO 3
>
>
> Note:  if these kernels hang your display upon starting X, you may need to
> remove the nvidia power-off module from a rescue shell or another kernel;
> # rm /lib/modules/2.6.35-14-generic/updates/dkms/nvidia_g210m_acpi.ko
>
> after which you should be able to rebuild the module if you like:
> # dkms remove -m nvidia-g210m-acpi -v 0.1.0 -k `uname -r` && dkms build -m
> nvidia-g210m-acpi -v 0.1.0 -k `uname -r`
>
> On 10-08-05 12:04 AM, Albert Vilella wrote:
>
> Hi octagonhead,
>
> Can you repost the files somewhere?
>
> If it helps, I have created a ppa here:
> https://launchpad.net/~hybrid-graphics-linux/+archive/hybrid-graphics
>
> On Fri, Jul 23, 2010 at 8:14 AM, octagonhead <octagonhead@xxxxxxxxx> wrote:
>
> Here is the result of my running this kernel with this patch applied
> Note that I used the ubuntu-provided linux-source package of 2.6.35-rc5
> rather than the vanilla kernel,
> So please let me know if this is expected to not work,
>
> the switcheroo interface is created:
>
> /sys/kernel/debug/vgaswitcheroo# cat switch
> 0:+:Pwr:0000:00:02.0
> 1: :Pwr:0000:01:00.0
>
> Here are the results of the switching commands I tried:
>
> /sys/kernel/debug/vgaswitcheroo# echo DIGD > switch
> vga_switcheroo: client 0 refused switch
> vga_switcheroo: setting delayed switch to client 0
>
> /sys/kernel/debug/vgaswitcheroo# echo DDIS > switch
> vga_switcheroo: client 0 refused switch
> vga_switcheroo: setting delayed switch to client 1
>
> /sys/kernel/debug/vgaswitcheroo# echo OFF > switch
>
> ^^^this seems to work, causing the nouveau driver to unload
> (but not removing the nvidia PCI device nor reducing power consumption
> according to powertop),
> but usually causes a kernel freeze after about a minute
>
> dmesg is attached, with kernel trace at the end
>
> ...
> Anyone wishing to make use of my kernel image may find an Ubuntu package at
> one of these urls:
> (sub-arch is Core-Duo/Xeon, all other config options are based of a stock
> Ubuntu kernel)
>
> 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
>
> (sorry, im too lazy to properly include the initrd or create a PPA at this
> point :)
>
>
> On 10-07-19 04:11 PM, Dave Airlie wrote:
>
> Okay first attempt at a patch is
>
> http://people.freedesktop.org/~airlied/scratch/0001-nouveau-mux-switching-test-patch-1.patch
>
> Applies on top of current Linus tree, a dmesg from a pre-optimus
> machine with hybrid enabled should let me see the current state of the
> toggle,
> and if you are feeling brave you shuold be able to toggle the mux, so
> it might flip from intel to nothing, and flip back or it might do
> nothing.
>
> stuff should be logged in dmesg.
>
> Dave.
>
> On Sat, Jul 17, 2010 at 6:45 PM, Dave Airlie <airlied@xxxxxxxxx> wrote:
>
> So I'd really like to finish the _DSM support in nouveau so we can
> actually switch the GPU over on the non-optimus systems.
>
> There are two things left to do:
>
> a) figure out what values to pass the DSM method to trigger the MUX,
> It looks like method 0x5 is the one to trigger the mux switch but I've
> no idea yet what values to pass it to trigger the mux switch.
>
> b) figure out how to get the LVDS DDC lines and make nouveau find the
> panel, at the moment it fails to find the panel when booted and intel
> is in control.
>
> looking at (a) I expect we could pass a bunch of values to the ACPI
> method possibly using acpi_call to switch the mux and switch it back,
>
> It looks like passing 0 will return the current toggle status, then
> its a matter of working out which of the top bits are doing what,
>
> >From reading one DSDT I can see,
>
> if bit 31 set, then bit 30 is some sort of notify, then bits 25,26,27
> are used to work out some values stored in a TOGF
>
> otherwise bit 24 is used for something, then bits 12,13,14, and 3,2,1,
> and it stores some values for CRT/LCD/TVout, which may again be
> toggles.
>
> If someone with the hardware and can use acpi_call it would be nice to
> try and map out some of these things, at least initially a value that
> will turn the Intel LCD off and back on.
>
> The DSDT I'm using at the moment is attached to bug 16403.
>
> Dave.
>
> _______________________________________________
> Mailing list: https://launchpad.net/~hybrid-graphics-linux
> Post to     : hybrid-graphics-linux@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~hybrid-graphics-linux
> More help   : https://help.launchpad.net/ListHelp
>
> _______________________________________________
> Mailing list: https://launchpad.net/~hybrid-graphics-linux
> Post to     : hybrid-graphics-linux@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~hybrid-graphics-linux
> More help   : https://help.launchpad.net/ListHelp
>
>
>



References