[opensuse-kernel] Calling acpi methods from userspace ?
Hi: This is the second part of the xps15z saga.. but will anyways affect a lot of users regardless whatever laptop model used.. This box has an integrated NVIDIA "optimus" http://en.wikipedia.org/wiki/Nvidia_Optimus , which has no support in linux, I can certainly live just fine with the intel GPU alone.. I couldn't care less about this thingy, however, the nvidia device 01:00.0 VGA compatible controller: nVidia Corporation Device 0df5 (rev ff) remains "on" and is a power hog, taking at least 1 hour of battery..there are all sorts of hacks outside to simple disable it. This particular one works for me: http://linux-hybrid-graphics.blogspot.com/2010/07/using-acpicall-module-to-s... however it is an out of tree kernel module and looks fairly hackish, is there any way to send acpi commands without using this "acpi_call" kernel module ? My idea is to create a package that pulled in, just disables the card in the meanwhile someone hacks support for this devices... Cheers. -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-kernel+owner@opensuse.org
On 12/12/2011 04:35 PM, Cristian Rodríguez wrote:
Hi:
This is the second part of the xps15z saga.. but will anyways affect a lot of users regardless whatever laptop model used..
This box has an integrated NVIDIA "optimus" http://en.wikipedia.org/wiki/Nvidia_Optimus , which has no support in linux, I can certainly live just fine with the intel GPU alone..
I couldn't care less about this thingy, however, the nvidia device
01:00.0 VGA compatible controller: nVidia Corporation Device 0df5 (rev ff)
remains "on" and is a power hog, taking at least 1 hour of battery..there are all sorts of hacks outside to simple disable it.
This particular one works for me:
http://linux-hybrid-graphics.blogspot.com/2010/07/using-acpicall-module-to-s...
however it is an out of tree kernel module and looks fairly hackish, is there any way to send acpi commands without using this "acpi_call" kernel module ?
My idea is to create a package that pulled in, just disables the card in the meanwhile someone hacks support for this devices...
Cheers.
I've a kind of sort of interest in the optimus ( and yeah more & more users are hit by this ) I've the chance to be able to desactivate optimus in the bios, and just work with the nvidia quadro. (At least I've 4.5 hours of autonomy and that's okay for me) -- Bruno Friedmann Ioda-Net Sàrl www.ioda-net.ch openSUSE Member & Ambassador GPG KEY : D5C9B751C4653227 irc: tigerfoot -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-kernel+owner@opensuse.org
On 12/12/11 14:15, Bruno Friedmann wrote:
I've a kind of sort of interest in the optimus ( and yeah more& more users are hit by this ) I've the chance to be able to desactivate optimus in the bios, and just work with the nvidia quadro. (At least I've 4.5 hours of autonomy and that's okay for me)
This machine does not have a BIOS option to disable it, at least not in the current version. I wonder if the drm or other subsystem can know that "this will not work" and ask the BIOS to disable the offending card. and yeah, Im certainly not alone, there are many other new laptops that come with this thing on many different brands. -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-kernel+owner@opensuse.org
On Monday, December 12, 2011 04:35:33 PM Cristian Rodríguez wrote:
Hi:
This is the second part of the xps15z saga.. but will anyways affect a lot of users regardless whatever laptop model used..
This box has an integrated NVIDIA "optimus" http://en.wikipedia.org/wiki/Nvidia_Optimus , which has no support in linux, I can certainly live just fine with the intel GPU alone..
I couldn't care less about this thingy, however, the nvidia device
01:00.0 VGA compatible controller: nVidia Corporation Device 0df5 (rev ff)
remains "on" and is a power hog, taking at least 1 hour of battery..there are all sorts of hacks outside to simple disable it.
This particular one works for me:
http://linux-hybrid-graphics.blogspot.com/2010/07/using-acpicall-module-to-s...
however it is an out of tree kernel module and looks fairly hackish, is there any way to send acpi commands without using this "acpi_call" kernel module ? No, only indirectly if a /sys file is provided to enable/disable a device or similar.
I could imagine it's not possible to trigger these or most of them in any way right now. Best is to discuss this on these lists: linux-pm@lists.linux-foundation.org linux-acpi@vger.kernel.org
My idea is to create a package that pulled in, just disables the card in the meanwhile someone hacks support for this devices... You should be able to create a kmp package via the build service. But this will never show up mainline or in the distribution, not sure it's worth it. Might be worth to export a sysfs file for devices with an _OFF/_ON and other pm functions or for power resource devices.
These hardcoded ACPI method paths will only work on very specific platforms. The names may look totally different on another machine/BIOS with the same HW. I expect someone tried that already..., I would try to run the latest Nvidia binary driver. On latest graphics cards the vendor provided drivers often provide functionality which takes some to time to show up in the opensource/kernel ones. Thomas -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-kernel+owner@opensuse.org
On Tuesday, December 13, 2011, Thomas Renninger wrote:
On Monday, December 12, 2011 04:35:33 PM Cristian Rodríguez wrote:
Hi:
This is the second part of the xps15z saga.. but will anyways affect a lot of users regardless whatever laptop model used..
This box has an integrated NVIDIA "optimus" http://en.wikipedia.org/wiki/Nvidia_Optimus , which has no support in linux, I can certainly live just fine with the intel GPU alone..
I couldn't care less about this thingy, however, the nvidia device
01:00.0 VGA compatible controller: nVidia Corporation Device 0df5 (rev ff)
remains "on" and is a power hog, taking at least 1 hour of battery..there are all sorts of hacks outside to simple disable it.
This particular one works for me:
http://linux-hybrid-graphics.blogspot.com/2010/07/using-acpicall-module-to-s...
however it is an out of tree kernel module and looks fairly hackish, is there any way to send acpi commands without using this "acpi_call" kernel module ? No, only indirectly if a /sys file is provided to enable/disable a device or similar.
I could imagine it's not possible to trigger these or most of them in any way right now. Best is to discuss this on these lists: linux-pm@lists.linux-foundation.org linux-acpi@vger.kernel.org
My idea is to create a package that pulled in, just disables the card in the meanwhile someone hacks support for this devices... You should be able to create a kmp package via the build service. But this will never show up mainline or in the distribution, not sure it's worth it. Might be worth to export a sysfs file for devices with an _OFF/_ON and other pm functions or for power resource devices.
Not really. Power resources may be shared and you have to use reference counting in those cases, so it's better if that stays in the kernel. Really.
These hardcoded ACPI method paths will only work on very specific platforms. The names may look totally different on another machine/BIOS with the same HW.
Been there, done that, doesn't work.
I expect someone tried that already..., I would try to run the latest Nvidia binary driver. On latest graphics cards the vendor provided drivers often provide functionality which takes some to time to show up in the opensource/kernel ones.
The solution is to provide a command line switch causing the kernel to power off every PCI device without a driver if set. This cannot be set by default, because some devices don't survive that and won't turn on when the driver is loaded, but there's a chance it will work on some systems. Also there might be a per-device opt-out switch and a command line switch enabling the entire feature for more fine-grained control, if necessary. Thanks, Rafael -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-kernel+owner@opensuse.org
On Tue, Dec 13, 2011 at 7:17 AM, Thomas Renninger <trenn@suse.de> wrote:
I expect someone tried that already..., I would try to run the latest Nvidia binary driver.
The linux nvidia driver does not support "optimus" and according to google, X will not start if installed. A boot flag pwroff_dev_if_no_driver=<pci-id> will indeed be very useful. I expect users will hit even more this problem as time passes and massive amounts of this devices are out. Thanks for your answers anyway :-) -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-kernel+owner@opensuse.org
On Tuesday, December 13, 2011, Cristian Rodríguez wrote:
On Tue, Dec 13, 2011 at 7:17 AM, Thomas Renninger <trenn@suse.de> wrote:
I expect someone tried that already..., I would try to run the latest Nvidia binary driver.
The linux nvidia driver does not support "optimus" and according to google, X will not start if installed.
A boot flag pwroff_dev_if_no_driver=<pci-id> will indeed be very useful.
I rather thought about a per-device sysfs switch like "power_off_unused", meaning "turn me off if there's no dirver" and (perhaps) a kernel command line switch enabling (or disabling) that feature altogether. Thanks, Rafael -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-kernel+owner@opensuse.org
participants (4)
-
Bruno Friedmann
-
Cristian Rodríguez
-
Rafael J. Wysocki
-
Thomas Renninger