Installation of NVidia's X drivers

The X driver for the NVidia card installed by the SuSE installation is not the recommended X driver. It has limited GL capability, fewer supported extensions and is only 2D. NVidia themselves provide the drivers that fully utilise the NVidia GeForce Go card. In other words they are not releasing the necessary info for XFree to provide full drivers for the card.

The installation of nVidia drivers changes for almost every release.

First of all, download latest drivers.

Then, carefully read the readme file. Next make sure we are at, and the default init level is, level 3. Backup /etc/X11/XF86Config before proceeding.

  1. install the nVidia package(s) as per readme instructions
  2. create XF86Config

    Sax2 has had problems with all versions of the nVidia drivers. So the following will setup 1600x1200 in 24bpp mode, USB and glidepoint mice enabled, hwcursor, cursorshadow and acceleration on.

    #
    Section "Files"
      FontPath     "/usr/X11R6/lib/X11/fonts/misc:unscaled"
      FontPath     "/usr/X11R6/lib/X11/fonts/local"
      FontPath     "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
      FontPath     "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
      FontPath     "/usr/X11R6/lib/X11/fonts/Type1"
      FontPath     "/usr/X11R6/lib/X11/fonts/URW"
      FontPath     "/usr/X11R6/lib/X11/fonts/Speedo"
      FontPath     "/usr/X11R6/lib/X11/fonts/PEX"
      FontPath     "/usr/X11R6/lib/X11/fonts/cyrillic"
      FontPath     "/usr/X11R6/lib/X11/fonts/latin2/misc:unscaled"
      FontPath     "/usr/X11R6/lib/X11/fonts/latin2/75dpi:unscaled"
      FontPath     "/usr/X11R6/lib/X11/fonts/latin2/100dpi:unscaled"
      FontPath     "/usr/X11R6/lib/X11/fonts/latin2/Type1"
      FontPath     "/usr/X11R6/lib/X11/fonts/latin7/75dpi:unscaled"
      FontPath     "/usr/X11R6/lib/X11/fonts/baekmuk:unscaled"
      FontPath     "/usr/X11R6/lib/X11/fonts/japanese:unscaled"
      FontPath     "/usr/X11R6/lib/X11/fonts/kwintv"
      FontPath     "/usr/X11R6/lib/X11/fonts/truetype"
      FontPath     "/usr/X11R6/lib/X11/fonts/uni:unscaled"
      FontPath     "/usr/X11R6/lib/X11/fonts/CID"
      FontPath     "/usr/X11R6/lib/X11/fonts/ucs/misc:unscaled"
      FontPath     "/usr/X11R6/lib/X11/fonts/ucs/75dpi:unscaled"
      FontPath     "/usr/X11R6/lib/X11/fonts/ucs/100dpi:unscaled"
      FontPath     "/usr/X11R6/lib/X11/fonts/hellas/misc:unscaled"
      FontPath     "/usr/X11R6/lib/X11/fonts/hellas/75dpi:unscaled"
      FontPath     "/usr/X11R6/lib/X11/fonts/hellas/100dpi:unscaled"
      FontPath     "/usr/X11R6/lib/X11/fonts/hellas/Type1"
      FontPath     "/usr/X11R6/lib/X11/fonts/misc/sgi:unscaled"
      FontPath     "/usr/X11R6/lib/X11/fonts/xtest"
      InputDevices "/dev/ttyS0"
      InputDevices "/dev/ttyS1"
      InputDevices "/dev/ttyS2"
      InputDevices "/dev/ttyS3"
      InputDevices "/dev/ttyS4"
      InputDevices "/dev/ttyS5"
      InputDevices "/dev/ttyS6"
      InputDevices "/dev/ttyS7"
      InputDevices "/dev/ttyS8"
      InputDevices "/dev/psaux"
      InputDevices "/dev/logibm"
      InputDevices "/dev/sunmouse"
      InputDevices "/dev/atibm"
      InputDevices "/dev/amigamouse"
      InputDevices "/dev/atarimouse"
      InputDevices "/dev/inportbm"
      InputDevices "/dev/gpmdata"
      InputDevices "/dev/mouse"
      InputDevices "/dev/usbmouse"
      InputDevices "/dev/adbmouse"
      InputDevices "/dev/input/mice"
      InputDevices "/dev/input/event0"
      InputDevices "/dev/pointer0"
      InputDevices "/dev/pointer1"
      InputDevices "/dev/pointer2"
      InputDevices "/dev/pointer3"
    EndSection
    
    Section "ServerFlags"
      Option       "AllowMouseOpenFail"
      Option       "RandR" "on"
    EndSection
    
    Section "Module"
      Load         "dbe"
      Load         "type1"
      Load         "speedo"
      Load         "freetype"
      Load         "extmod"
      Load         "glx"
      Load         "v4l"
    EndSection
    
    Section "InputDevice"
      Driver       "Keyboard"
      Identifier   "Keyboard[0]"
      Option       "Protocol" "Standard"
      Option       "XkbLayout" "gb"
      Option       "XkbModel" "pc105"
      Option       "XkbRules" "xfree86"
    EndSection
    
    Section "InputDevice"
      Driver       "mouse"
      Identifier   "Mouse[1]"
      Option       "Device" "/dev/pointer1"
      Option       "Emulate3Buttons" "off"
      Option       "Name" "Autodetection"
      Option       "Protocol" "ps/2"
      Option       "Vendor" "Sysp"
    EndSection
    
    Section "InputDevice"
      Driver       "mouse"
      Identifier   "Mouse[3]"
      Option       "Device" "/dev/pointer0"
      Option       "Name" "Autodetection"
      Option       "Protocol" "imps/2"
      Option       "Vendor" "Sysp"
    EndSection
    
    Section "Monitor"
    #  DisplaySize  360 270
      HorizSync    30-95
      Identifier   "Monitor[0]"
      ModelName    "1600X1200@75HZ"
      Option       "DPMS"
      VendorName   "--> LCD"
      VertRefresh  58-78
      UseModes     "Modes[0]"
    EndSection
    
    Section "Modes"
      Identifier   "Modes[0]"
      Modeline 	"1600x1200" 208.74 1600 1720 1896 2192 1200 1201 1204 1253
    EndSection
    
    Section "Screen"
      DefaultDepth 24
      SubSection "Display"
        Depth      15
        Modes      "1600x1200" 
      EndSubSection
      SubSection "Display"
        Depth      16
        Modes      "1600x1200" 
      EndSubSection
      SubSection "Display"
        Depth      24
        Modes      "1600x1200" 
      EndSubSection
      SubSection "Display"
        Depth      32
        Modes      "1600x1200" 
      EndSubSection
      SubSection "Display"
        Depth      8
        Modes      "1600x1200" 
      EndSubSection
      Device       "Device[0]"
      Identifier   "Screen[0]"
      Monitor      "Monitor[0]"
    EndSection
    
    Section "Device"
      BoardName    "GeForce4 440 Go 64M"
      Driver       "nvidia"
      Identifier   "Device[0]"
      Option       "CursorShadow"
      Option       "HWcursor"
      #Option       "CrtcNumber" "0"
      #Option       "CrtcNumber" "1"
      Screen       0
      Option       "Rotate" "off"
      VendorName   "NVidia"
      Option       "NoLogo" "on"
      Option       "NvAGP" "3"
      Option       "HWCursor" "1"
      Option       "RenderAccel" "on"
      Option       "MultisamplingCompatibility" "on"
    EndSection
    
    Section "ServerLayout"
      Identifier   "Layout[all]"
      InputDevice  "Keyboard[0]" "CoreKeyboard"
      InputDevice  "Mouse[1]" "CorePointer"
      InputDevice  "Mouse[3]" "SendCoreEvents"
      Option       "Clone" "off"
      Option       "Xinerama" "off"
      Screen       "Screen[0]"
    EndSection
    
    #Section "DRI"
    #    Group      "video"
    #    Mode       0660
    #EndSection
    	  
  3. edit /etc/X11/XF86Config to suit

    This time tidy up the file, adding extra font paths and the following options to the Device section: -

    • "NoLogo" "true"

      turns off the NVidia splash screen.

    • "BackingStore" "true"

      enable saving of obscurred objects (instead of causing redraw events).

    • "CursorShadow" "on"

      turns of a hardware drop shadow for the cursor. Adjust with

      • Option "CursorShadowAlpha" "integer" - control transparency [0-255] def 64
      • Option "CursorShadowXOffset" "integer" - control X right shift [0-32] def 4
      • Option "CursorShadowYOffset" "integer" - control Y down shift [0-32] def 2

    Test by running init 5 or /etc/init.d/xdm start.


    Amendments to XF86Config can be achieved quickly using Ctrl-Alt-F1 to flip to the session on /dev/tty1 (back via Ctrl-Alt-F7) and then restarting the X server.


  4. Tune

    Configure preferred window manager(s); use anti-aliased fonts, set font sizes, colours, etc…


Dean Darlison
Last modified: Fri Feb 27 08:07:04 GMT 2004