Chapter 4. Common Problems

This section provides solutions to common problems associated with the NVIDIA SunOS x86 Driver.

My X server fails to start, and my X log file contains the error:

(EE) NVIDIA(0): The NVIDIA kernel module does not appear to
(EE) NVIDIA(0):      be receiving interrupts generated by the NVIDIA graphics
(EE) NVIDIA(0):      device PCI:x:x:x. Please see the COMMON PROBLEMS
(EE) NVIDIA(0):      section in the README for additional information.

This can be caused by a variety of problems, such as PCI IRQ routing errors, I/O APIC problems or conflicts with other devices sharing the IRQ (or their drivers).

If possible, configure your system such that your graphics card does not share its IRQ with other devices (try moving the graphics card to another slot if applicable, unload/disable the driver(s) for the device(s) sharing the card's IRQ, or remove/disable the device(s)).

My X server fails to start, and my X log file contains the error:

(EE) NVIDIA(0): The interrupt for NVIDIA graphics device PCI:x:x:x
(EE) NVIDIA(0):      appears to be edge-triggered. Please see the COMMON
(EE) NVIDIA(0):      PROBLEMS section in the README for additional information.

An edge-triggered interrupt means that the kernel has programmed the interrupt as edge-triggered rather than level-triggered in the Advanced Programmable Interrupt Controller (APIC). Edge-triggered interrupts are not intended to be used for sharing an interrupt line between multiple devices; level-triggered interrupts are the intended trigger for such usage. When using edge-triggered interrupts, it is common for device drivers using that interrupt line to stop receiving interrupts. This would appear to the end user as those devices no longer working, and potentially as a full system hang. These problems tend to be more common when multiple devices are sharing that interrupt line.

X starts for me, but OpenGL applications terminate immediately.

If X starts but you have trouble with OpenGL, you most likely have a problem with other libraries in the way, or there are stale symlinks. See Appendix C, Installed Components for details.

You should also check that the correct extensions are present;

    % xdpyinfo

should show the “GLX” and “NV-GLX” extensions present. If these two extensions are not present, then there is most likely a problem loading the glx module, or it is unable to implicitly load GLcore. Check your X config file and make sure that you are loading glx (see Chapter 2, Configuring X for the NVIDIA Driver). If your X config file is correct, then check the X log file for warnings/errors pertaining to GLX. Also check that all of the necessary symlinks are in place (refer to Appendix C, Installed Components).

When Xinerama is enabled, my stereo glasses are shuttering only when the stereo application is displayed on one specific X screen. When the application is displayed on the other X screens, the stereo glasses stop shuttering.

This problem occurs with DDC and "blue line" stereo glasses, that get the stereo signal from one video port of the graphics card. When a X screen does not display any stereo drawable the stereo signal is disabled on the associated video port.

Forcing stereo flipping allows the stereo glasses to shutter continuously. This can be done by enabling the OpenGL control "Force Stereo Flipping" in nvidia-settings, or by setting the X configuration option "ForceStereoFlipping" to "1".

Stereo is not in sync across multiple displays.

There are two cases where this may occur. If the displays are attached to the same GPU, and one of them is out of sync with the stereo glasses, you will need to reconfigure your monitors to drive identical mode timings; please see Appendix J, Programming Modes for details.

If the displays are attached to different GPUs, the only way to synchronize stereo across the displays is with a G-Sync device, which is only supported by certain Quadro cards. Please see Appendix V, Frame Lock and Genlock for details. This applies to seperate GPUs on seperate cards as well as seperate GPUs on the same card, such as Quadro FX 4500 X2. Note that the Quadro FX 4500 X2 only provides a single DIN connector for stereo, tied to the bottommost GPU. In order to synchronize onboard stereo on the other GPU you must use a G-Sync device.

My X server fails to start, and my X log file contains the error:

(EE) NVIDIA(0): Failed to load the NVIDIA kernel module!

The X driver will abort with this error message if the NVIDIA kernel module fails to load or the device files aren't present. If you receive this error, you should check the output of dmesg for kernel error messages.

If modinfo reports that the "nvidia" kernel module is loaded, the device files (/dev/nvidiactl, /dev/nvidia0..7, /dev/fbs/nvidia0..7) may be missing.

CDE and JDS do not start when TwinView is enabled.

When in TwinView, the NVIDIA X driver normally provides a Xinerama extension that X clients (such as window managers) can use to to discover the current TwinView configuration. Some window mangers can get confused by this information. Use the following option in the "device" section of the X.Org configuration file to disable this behavior:

  Option "NoTwinViewXineramaInfo" "1"

When running multiple OpenGL applications concurrently, some appear to stall.

Changing the default process scheduling class to the real-time class may help concurrent OpenGL applications render smoothly.

To select real-time as the default scheduling class, run dispadmin -d RT as root and reboot. To restore the scheduling class to the system defaults just remove the file /etc/dispadmin.conf.

The X server does not start and shows the error

"Cannot open /dev/fb (No such file or directory)"

The graphics card may be newer than the NVIDIA Accelerated Solaris Driver Set, meaning that its pci-id is not included in the installation scripts and not added in the file /etc/driver_aliases. To manually register the graphics card, proceed as follows:

  • Get the pci-id of your graphics card with the command

    # /usr/X11/bin/scanpci
    

    For example a Quadro FX500 appears as:

    pci bus 0x0009 cardnum 0x00 function 0x00: vendor 0x10de device 0x032b
     nVidia Corporation NV34GL [Quadro FX 500/600 PCI]
    

    The vendor-id is '10de' and the pci-id is '32b'.

  • Become root and register the pci-id with the command

    # update_drv -a -i '"pci10de,xxx"'
    

    xxx is the pci-id returned from the scanpci command. Drop any leading zeroes. Note that pci10de,xxx is between a set of simple-quote/double-quote double-quote/simple-quote. For example:

    # update_drv -a -i '"pci10de,32b"'
    

  • Reboot with the command

    # reboot -- -r
    

My system runs, but seems unstable. What is wrong?

Your stability problems may be AGP-related. See Appendix F, Configuring AGP for details.

OpenGL applications are running slowly

The application is probably using a different library still on your system, rather than the NVIDIA supplied OpenGL library. Please see Appendix C, Installed Components for details.

There are problems running Quake2.

Quake2 requires some minor setup to get it going. First, in the Quake2 directory, the install creates a symlink called libGL.so that points at libMesaGL.so. This symlink should be removed or renamed. Second, in order to run Quake2 in OpenGL mode, you must type

    % quake2 +set vid_ref glx +set gl_driver libGL.so

Quake2 does not seem to support any kind of full-screen mode, but you can run your X server at the same resolution as Quake2 to emulate full-screen mode.

I am using either nForce of nForce2 internal graphics, and I see warnings like this in my X log file:

Not using mode "1600x1200" (exceeds valid memory bandwidth usage)

Integrated graphics have more strict memory bandwidth limitations that limit the resolution and refresh rate of the modes you request. To work around this, you can reduce the maximum refresh rate by lowering the upper value of the VertRefresh range in the Monitor section of your X config file. Though not recommended, you can disable the memory bandwidth test with the NoBandWidthTest X config file option.

X takes a long time to start (possibly several minutes).

Most of the X startup delay problems we have found are caused by incorrect data in video BIOSes about what display devices are possibly connected or what i2c port should be used for detection. You can work around these problems with the X config option IgnoreDisplayDevices (please see the description in Appendix D, X Config Options).

Fonts are incorrectly sized after installing the NVIDIA driver.

Incorrectly sized fonts are generally caused by incorrect DPI (Dots Per Inch) information. You can check what X thinks the physical size of your monitor is, by running:

 % xdpyinfo | grep dimensions

This will report the size in pixels, and in millimeters.

If these numbers are wrong, you can correct them by modifying the X server's DPI setting. See Appendix W, Dots Per Inch for details.

General problems with ALi chipsets

There are some known timing and signal integrity issues on ALi chipsets. The following tips may help stabilize problematic ALI systems:

  • Disable TURBO AGP MODE in the BIOS.

  • When using a P5A upgrade to BIOS Revision 1002 BETA 2.

  • When using 1007, 1007A or 1009 adjust the IO Recovery Time to 4 cycles.

  • AGP is disabled by default on some ALi chipsets (ALi1541, ALi1647) to work around severe system stability problems with these chipsets. See the comments for NVreg_EnableALiAGP in os-registry.c to force AGP on anyway.