[Nix-dev] Experiences with Nvidia Optimus?

Mathijs Kwik mathijs at bluescreen303.nl
Sun Feb 5 09:16:07 CET 2012


On Sun, Feb 5, 2012 at 2:11 AM, Arie Middelkoop <amiddelk at gmail.com> wrote:
> On 16-01-12 13:35, Mathijs Kwik wrote:
>>
>> On Sat, Jan 14, 2012 at 11:01 AM, Arie Middelkoop<amiddelk at gmail.com>
>>  wrote:
>>>
>>> Does any of you have experience with getting hardware acceleration for
>>>
>>> nvidia optimus laptop videocards (e.g. GT555M) to work? My fresh new
>>> laptop
>>> with Nixos is getting into a workable state, but this videocard issue
>>> seems
>>> quite a pain.
>>
>>
>> I have a similar laptop and checked some 6 months ago (bumblebee then).
>
>
> To come back to this issue:
> I just committed the package to nixpkgs (rev. 32036). Apparently the project
> started again, but this time as open source project.
>
> Nixos provides an advantage here over other distributions, because it can
> use the original nvidia module, whereas other distributions need some bypass
> because the nvidia module overwrites the GLX library.
>
>
>> My intel card gives a decent performance for what I do (composited
>> desktop, 1080p video, light 3d stuff like blender) under linux, so no
>> need for nvidia there.
>
>
> The main advantage of the package actually arises when you don't use the
> card: it uses ACPI to shutdown the card, which - depending on what card you
> have - saves quite a bit of energy / heat.
> (also available as separate kernel module)

You're a hero!
After bbswitching off the nvidia card, some power indication led
turned cool blue and a few minutes later, the cooler slowed down to a
level I can no longer hear it.
I've seen my laptop in this quiet state under windows, but I assumed
this had to do with windows booting from uefi, which I can't get linux
to do yet.
I was stupid enough to assume the nvidia card would not turn on in the
first place (or at least not use a lot of power/produce heat) if I
wouldn't load its driver.

I haven't looked at bumblebee yet, your comments seem to indicate I
don't need it if I just load bbswitch and discrete_vga_poweroff on
startup.
Or is it any use besides that yet?


I haven't used any non-kernel-provided modules on nixos before.
I now have this in configuration.nix:

boot = {
  kernelPackages = pkgs.linuxPackages_3_2;
  extraModulePackages = [ config.boot.kernelPackages.bbswitch ];
  kernelModules = ["acpi-cpufreq" "kvm-intel" "bbswitch"];
};

That takes care of loading the module itself.
But I need to put config.boot.kernelPackages.bbswitch in
systemPackages too, to get the discrete_vga* helpers.

Is this how it's supposed to work?

Thanks for investigating the optimus stuff a bit further. I'm eager to
find out if this has any effect on battery-life.

Mathijs


Oh and slightly offtopic: I found the intel microcode package you
provided but I can't find out if it works.
Without it, modprobe microcode (the microcode loader) produces the
same dmesg output as with microcodeIntel included in
hardware.firmware.
No indication of it finding the .dat file, or using it (or skipping
because not applicable to my cpu).
How can I find out if it's any use?



>
> Arie


More information about the nix-dev mailing list