NVIDIA Quadro NVS 140M

From ThinkWiki
Jump to: navigation, search

nVIDIA Quadro NVS 140M

The nVIDIA Quadro NVS 140M is a mobile video card with a G86 core and 128MB dedicated graphics memory (512MB shared).

Features

  • Chipset: nVIDIA Quadro NVS 140M
  • PCI ID:
    • 01:00.0 VGA compatible controller: nVidia Corporation Unknown device 0429 (rev a1) (prog-if 00 [VGA])
      • Subsystem: Lenovo Unknown device 20d8
      • Flags: bus master, fast devsel, latency 0, IRQ 169
      • Memory at d6000000 (32-bit, non-prefetchable) [size=16M]
      • Memory at e0000000 (64-bit, prefetchable) [size=256M]
      • Memory at d4000000 (64-bit, non-prefetchable) [size=32M]
      • I/O ports at 2000 [size=128]
      • Capabilities: [60] Power Management version 2
      • Capabilities: [68] Message Signalled Interrupts: 64bit+ Queue=0/0 Enable-
      • Capabilities: [78] Express Endpoint IRQ 0
      • Capabilities: [100] Virtual Channel
      • Capabilities: [128] Power Budgeting
      • Capabilities: [600] Unknown (11)
  • PCI Express 16×
  • 128MB dedicated (512MB shared) video memory

Linux X.Org driver

Default X.Org NVidia driver, called "nv" works.

On an R61 running OpenSUSE 10.3, the nv driver locks up the machine hard. --Nettings 14:39, 26 March 2008 (CET)
On an R61 running Fedora Core 9, the nv driver fails to turn the backlight on after resuming from a suspend to RAM. I fixed this by using the proprietary NVIDIA Linux drivers (v177.82)

NVIDIA proprietary driver

Support for Quadro NVS 140M has been introduced in the NVIDIA Linux unified driver version 100.14.09 (released on 8 June 2007). For the latest drivers go to the NVIDIA Unix Drivers page. Note that NVIDIA proprietary drivers do not work with a Xen virtualized kernel.

CUDA

Since it has a G86 core, NVidia CUDA works on this video card, even though not being listed in the CUDA manuals. Running very large problems (like the SDK examples) however might fail by running out of the relatively small graphics memory.

LCD Backlight Brightness Control on T61/R61

There has been an issue with Brightness Control on T61/R61s. This seems to be fixed with the 169.04 BETA drivers from Nvidia. You can find them i.e. here 169.04 BETA Driver. You might also need the latest BIOS (BIOS_Upgrade_Downloads 1.26) as well as the latest version of thinkpad-acpi (thinkpad-acpi, V0.18).

If the nvidia module is loaded with the argument NVreg_EnableBrightnessControl=1, one can switch to a virtual console, change the lcd brightness level there, and have that level preserved after switching back to the X session. On a T61, this was tested with the acpi video driver included in the vanilla Linux 2.6.21-6 kernel and on an R61 with OpenSUSE 10.2.

Disabling automatic power saving

The nVidia Quadro NVS 140m, as well as some other newer cards, automatically clock down to save power and stay cool. This can be a nuisance when running a compositing window manager, such as Compiz Fusion - animations will appear to start jerkily, and smoothen out after a second or so once the GPU clocks up. One workaround is to disable automatic power management of the GPU. To do so, add the line

options nvidia NVreg_RegistryDwords="PerfLevelSrc=0x2222"

to either /etc/modprobe.conf or a (new) file in /etc/modprobe.d

Be warned, that this might cause excessive heat generation and/or premature death of the GPU. It should be safer than overclocking, though.

Making Compiz work well

Compiz requires a few options to be passed to it, in order to run quickly and reliably. Not using these options can result in anything ranging from general slowness to graphics corruption, depending on the driver version. At the time of writing, the 180.18 beta drivers were used. Below are the relevant parts of a working Compiz startup script:

export LIBGL_ALWAYS_INDIRECT=1

nice --adjustment=-5 compiz ccp --indirect-rendering --loose-binding --sm-disable --replace

With these options and the above RegistryDwords, Compiz, videos and OpenGL apps run without any noticable delays or glitches. Note, though, that because of the way X, Compiz, GTK and QT handle memory allocation, window resizing using the 'normal' mode is nigh-on unusable.

Resources