Welcome!

Linux Containers Authors: Liz McMillan, Elizabeth White, Zakia Bouachraoui, Pat Romanski, Stefana Muller

Related Topics: Linux Containers

Linux Containers: Article

7 steps to a successful GeForce3 installation

How to make the hottest graphics card work & play well with Linux

(LinuxWorld) -- I have a confession to make. Until now, I haven't been running games on Linux. I ran them on Windows 98SE, even if there's a Linux version of the same games.

There are three reasons for this. The first is obvious. More games are available for Windows than for Linux. The second is I have a 14-year-old son who plays games that aren't available for Linux, so he has to run Windows. When I purchase a game, I get the Windows version so I can let my son play it when I'm not using the CD, and vice-versa.

The third reason is that, until now, I've never had much luck getting the Linux accelerated graphics drivers for the NVidia GeForce card to work. I could get it working with XFree86, but it would corrupt the text display when I exited X11. When I solved that problem, it caused corruption of the graphics in XFree86. Until recently, I gave up trying to get it to work.

It's working now, and as a result, I'm getting used to playing games under Linux. Here is the process I went through to get the card working properly to spare you the pain of figuring it out yourself.

First, I assume you already know that you need to download two files and can figure out on your own what to do with them. One file includes the set of accelerated graphics libraries for XFree86 (GLX), and another is a semi-open-source driver module for the Linux kernel. (No, it is not true open source, much to the consternation of free software advocates, but I like the card and I intend on continuing to use it regardless.) NVidia offers a load of ready-made Red Hat Linux modules, but if you're like me and stay on the bleeding edge of kernel development, you'll want to download the tar file and compile the module yourself.

As to getting it working after you have everything installed, my first bit of advice is to do as I say and not as I did. The one thing I didn't is RTFM (read the fine manual) until after I gave up trying to get it working the first time. I strongly recommend you read the notes first (see Resources for links to a text and PDF version).

There are lots of excellent tips in the notes for tuning the performance of your card and ways you can make the graphics look better at the cost of performance. It also contains critical tips to get the driver to work at all.

The steps

  1. RTFM.
  2. Log in as root. Do not start XFree86. Install the GLX libraries and the NVidia module. As of this writing, the latest version of the GLX libraries is 23.13. The latest version of the kernel module is 23.14. If you have compiled your own kernel, then I recommend you download and use the two tar files instead of the two RPM files. Untar them, change to the two directories they create and run the command make install in those directories.
  3. You need to specify the correct driver in the /etc/X11/XF86Config-4 file. The accelerated driver is nvidia instead of the normal driver, nv. Just comment out or remove the existing nv driver specification in your XF86Config-4 file and replace it with the correct line.
  4. Decide whether or not you want to use the Linux kernel's default AGP driver or NVidia's AGP driver. If you use NVidia's driver, you may have to recompile your kernel. You don't want NVidia's AGP support to conflict with the kernel's default AGP driver. So if you need to recompile your kernel, do it without AGP support, or recompile your kernel to load AGP support as a module. If you choose the latter method, you can try using the card with NVidia's AGP support, and then fall back to the default kernel module if the NVidia AGP support doesn't work. In my case, the NVidia AGP support worked best, so I included the line Option "NvAGP" "1" in my configuration file, which tells the NVidia driver to use its own AGP driver.
  5. Find the proper BusID for your card. Log in as root and run the lspci command to get information about your system's PCI bus. Here's the relevant line for my GeForce 3 card:

    01:05.0 VGA compatible controller: nVidia Corporation NV20 (GeForce3) (rev a3)

    We need to take the numbers at the beginning of the line and twiddle some digits to create the proper BusID setting for the card. Simply remove the leading zeros, add the letters PCI and then separate the numbers with colons. The result in this case is BusID "PCI:1:5:0".

    Here's an example of the Device section where you put the new driver, AGP and BusID settings.

    Section "Device"
    Option      "NvAGP" "1"
    Identifier  "Card0"
    # Driver      "nv"
    Driver      "nvidia"
    VendorName  "NVidia"
    BoardName   "GeForce3"
    BusID       "PCI:1:5:0"
    EndSection
  6. Remove the dri and GLcore modules from your configuration file. You can comment them out if you like. Here's an example of what you may end up with for this section of the configuration file:

    Section "Module"
    #   Load "dri"
    #   Load "GLcore"
    Load  "dbe"
    Load  "glx"
    Load  "extmod"
    Load  "type1"
    Load  "freetype"
    Load  "Xrender"
    Load  "pex5"
    Load  "record"
    Load  "xie"
    EndSection

    By the way, I recommend that you include the Xrender setting if you haven't done so already. This is the setting that allows Qt to use anti-aliased fonts, and it probably makes it possible to do so with GTK as well.

  7. Make any changes to your XF86Config-4 file that are specific to your system, such as font paths, etc. If you have been using the default XFree86 nv driver until now, you probably won't have to make any changes to what you already have configured. If you must make changes, you usually won't need to add any new settings. It is more likely that you will need to delete some settings that work with the default XFree86 nv driver but not with the NVidia accelerated nvidia driver.
  8. Take XFree86 for a spin and see if everything works. If it doesn't, RTFM, make changes, and try again. If it does, then what are you waiting for? Fire up Unreal Tournament or Mind Rover and have a great time!
  9. Yes, I know that this article is called GeForce in 7 steps, but I've got an extra one I'll let you have for free. It applies to all distributions, but is especially for Debian users, because Debian users are most likely to update their systems on a regular basis.

    If you happen to update XFree86 on your system, the update process may overwrite or undo the changes that you made when you installed the GLX portion of the NVidia drivers. I could list the files you want to watch for here, but it's much easier to simply offer this advice: After every update to XFree86, go back into the NVidia GLX directory and run "make install" again. This will re-install the accelerated graphics libraries and symbolic links you may have overwritten with your latest update to XFree86.

  10. I have even one more free tip. If you update your kernel, don't forget to go back to the NVidia kernel directory and run "make install" there again, too. Otherwise your system won't have a display driver to load, and XFree86 won't even start.

XF86Config-4 sample

Here is my entire XF86Config-4 file, which can serve as an example of a working configuration. You probably won't be able to use it exactly as it appears here unless you have hardware that works exactly like mine. But it should give you some idea of how to get your configuration working.

My system consists of a generic GeForce 3 64-megabyte card, an ASUS A7M266 motherboard, a cordless Logitech USB mouse, and a ViewSonic PF815 monitor. The aforementioned AGP option works with several different AGP chip sets, so it's possible you won't have to change that. Unless you have identical hardware, the two settings you will most likely have to change are the BusID and the Monitor settings. You'll also have to change the font directories to match however your system is configured. I don't use a font server, but if you do, you'll have to add a line to tell XFree86 how to talk to the font server. Finally, I only use the color depth of 24 (32 bits per pixel). You can use a depth of 16, but I don't recommend it. As counterintuitive as it may seem, NVidia cards often (but not always) run faster with 32 bits per pixel than with 16.

Section "ServerLayout"
Identifier     "XFree86 Configured"
Screen      0  "Screen0" 0 0
InputDevice    "Mouse0" "CorePointer"
InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" ModulePath "/usr/X11R6/lib/modules"

FontPath "/usr/X11R6/lib/X11/fonts/misc/" FontPath "/usr/X11R6/lib/X11/fonts/Speedo/" FontPath "/usr/X11R6/lib/X11/fonts/CID/" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/" FontPath "/usr/lib/X11/fonts/latin2/75dpi/" FontPath "/usr/lib/X11/fonts/latin2/100dpi/" FontPath "/usr/X11R6/lib/X11/fonts/TrueType/" FontPath "/usr/X11R6/lib/X11/fonts/ttfonts/" FontPath "/usr/share/fonts/truetype/" FontPath "/usr/X11R6/lib/X11/fonts/mozilla-fonts/" FontPath "/usr/X11R6/lib/X11/fonts/local/" EndSection

Section "Module" # Load "dri" # Load "GLcore" Load "dbe" Load "glx" Load "extmod" Load "type1" Load "freetype" Load "Xrender" Load "pex5" Load "record" Load "xie" EndSection

# ******************************************* # Server flags section. # *******************************************

Section "ServerFlags"

# Uncomment this to cause a core dump at the spot where a signal is # received. This may leave the console in an unusable state, but may # provide a better stack trace in the core dump to aid in debugging #NoTrapSignals

# Uncomment this to disable the <Crtl><Alt><BS> server abort sequence # This allows clients to receive this key event. #DontZap

# Uncomment this to disable the <Crtl><Alt><KP_+>/<KP_-> mode switching # sequences. This allows clients to receive these key events. DontZoom

# This allows the server to start up even if the # mouse device can't be opened/initialised. AllowMouseOpenFail

EndSection

# ******************************************* # Input devices # *******************************************

# ******************************************* # Keyboard section # *******************************************

Section "InputDevice" Identifier "Keyboard0" Driver "Keyboard" Option "AutoRepeat" "250 40" Option "XkbRules" "xfree86" Option "XkbModel" "pc105" Option "XkbLayout" "us" EndSection

# ******************************************* # Pointer section # *******************************************

Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "IMPS/2" Option "Device" "/dev/input/mice" Option "ZAxisMapping" "4 5" EndSection

# ******************************************* # Monitor section # *******************************************

Section "Monitor" Identifier "Monitor0" VendorName "VSC" ModelName "PF815" HorizSync 30.0 - 117.0 VertRefresh 50.0 - 180.0 EndSection

# ******************************************* # Graphics device section # *******************************************

Section "Device" Option "NvAGP" "1" Identifier "Card0" Driver "nvidia" VendorName "NVidia" BoardName "GeForce3" BusID "PCI:1:5:0" EndSection

# ******************************************* # Screen sections # *******************************************

Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" DefaultColorDepth 24 Subsection "Display" Depth 16

Modes "1600x1200" "1280x1024" "1152x864" "1024x768" "800x600" "640x480" ViewPort 0 0 EndSubsection Subsection "Display"

Depth 24 Modes "1600x1200" "1280x1024" "1152x864" "1024x768" "800x600" "640x480"

ViewPort 0 0 EndSubsection

EndSection

More Stories By Nicholas Petreley

Nicholas Petreley is a computer consultant and author in Asheville, NC.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


IoT & Smart Cities Stories
Moroccanoil®, the global leader in oil-infused beauty, is thrilled to announce the NEW Moroccanoil Color Depositing Masks, a collection of dual-benefit hair masks that deposit pure pigments while providing the treatment benefits of a deep conditioning mask. The collection consists of seven curated shades for commitment-free, beautifully-colored hair that looks and feels healthy.
The textured-hair category is inarguably the hottest in the haircare space today. This has been driven by the proliferation of founder brands started by curly and coily consumers and savvy consumers who increasingly want products specifically for their texture type. This trend is underscored by the latest insights from NaturallyCurly's 2018 TextureTrends report, released today. According to the 2018 TextureTrends Report, more than 80 percent of women with curly and coily hair say they purcha...
The textured-hair category is inarguably the hottest in the haircare space today. This has been driven by the proliferation of founder brands started by curly and coily consumers and savvy consumers who increasingly want products specifically for their texture type. This trend is underscored by the latest insights from NaturallyCurly's 2018 TextureTrends report, released today. According to the 2018 TextureTrends Report, more than 80 percent of women with curly and coily hair say they purcha...
We all love the many benefits of natural plant oils, used as a deap treatment before shampooing, at home or at the beach, but is there an all-in-one solution for everyday intensive nutrition and modern styling?I am passionate about the benefits of natural extracts with tried-and-tested results, which I have used to develop my own brand (lemon for its acid ph, wheat germ for its fortifying action…). I wanted a product which combined caring and styling effects, and which could be used after shampo...
The platform combines the strengths of Singtel's extensive, intelligent network capabilities with Microsoft's cloud expertise to create a unique solution that sets new standards for IoT applications," said Mr Diomedes Kastanis, Head of IoT at Singtel. "Our solution provides speed, transparency and flexibility, paving the way for a more pervasive use of IoT to accelerate enterprises' digitalisation efforts. AI-powered intelligent connectivity over Microsoft Azure will be the fastest connected pat...
There are many examples of disruption in consumer space – Uber disrupting the cab industry, Airbnb disrupting the hospitality industry and so on; but have you wondered who is disrupting support and operations? AISERA helps make businesses and customers successful by offering consumer-like user experience for support and operations. We have built the world’s first AI-driven IT / HR / Cloud / Customer Support and Operations solution.
Codete accelerates their clients growth through technological expertise and experience. Codite team works with organizations to meet the challenges that digitalization presents. Their clients include digital start-ups as well as established enterprises in the IT industry. To stay competitive in a highly innovative IT industry, strong R&D departments and bold spin-off initiatives is a must. Codete Data Science and Software Architects teams help corporate clients to stay up to date with the mod...
At CloudEXPO Silicon Valley, June 24-26, 2019, Digital Transformation (DX) is a major focus with expanded DevOpsSUMMIT and FinTechEXPO programs within the DXWorldEXPO agenda. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term. A total of 88% of Fortune 500 companies from a generation ago are now out of business. Only 12% still survive. Similar percentages are found throug...
Druva is the global leader in Cloud Data Protection and Management, delivering the industry's first data management-as-a-service solution that aggregates data from endpoints, servers and cloud applications and leverages the public cloud to offer a single pane of glass to enable data protection, governance and intelligence-dramatically increasing the availability and visibility of business critical information, while reducing the risk, cost and complexity of managing and protecting it. Druva's...
BMC has unmatched experience in IT management, supporting 92 of the Forbes Global 100, and earning recognition as an ITSM Gartner Magic Quadrant Leader for five years running. Our solutions offer speed, agility, and efficiency to tackle business challenges in the areas of service management, automation, operations, and the mainframe.