Image of grog
Greg's setting up X on Nvidia cards
mainly for FreeBSD
Greg's diary
Greg's home page
HOWTO index
Google
http://dunham.org/grog/wip/workinprogress.gif
Work in progress

This page will hopefully one day show how to set up X on Nvidia cards. It's written for FreeBSD, but it applies almost equally for Linux. You don't really need it if you have a modern card, one display and some “desktop” that provides the environment, but for me it's critical.

Documentation

Much of the stuff below refers to Nvidia's documentation, which is voluminous but somewhat confusing. What I have is:

Find the driver

Nvidia maintains a large number of drivers, each addressing a number of chip sets. There's an overview for FreeBSD and Linux here. Which one do you need? That depends on the chip set, and they're not saying. Select “Latest Production Branch Version” and then the “Supported Products” tab. If your chip set isn't there, go back to the previous list and search painstakingly until you find a driver that supports the chipset.

Install the driver

Once you have found the driver, check the FreeBSD packages for something similar. At the time of writing, the list is:

=== root@hydra (/dev/pts/4) ~ 34 -> pkg search nvidia-driver } sort -r
nvidia-driver-535.104.05_1     NVidia graphics card binary drivers for hardware OpenGL rendering
nvidia-driver-470-470.161.03   NVidia graphics card binary drivers for hardware OpenGL rendering
nvidia-driver-390-390.154_1    NVidia graphics card binary drivers for hardware OpenGL rendering
nvidia-driver-340-340.108_4    NVidia graphics card binary drivers for hardware OpenGL rendering
nvidia-driver-304-304.137_10   NVidia graphics card binary drivers for hardware OpenGL rendering

This corresponds to the list

Latest Production Branch Version: 535.113.01
Latest New Feature Branch Version: 530.41.03
Latest Beta Version: 545.23.06
Latest Legacy GPU version (470.xx series): 470.199.02
Latest Legacy GPU version (390.xx series): 390.157
Latest Legacy GPU version (340.xx series): 340.108
Latest Legacy GPU version (304.xx series): 304.137
Archive

They don't match well, but only the first number is really important. The numbers also suggest that it would be better to install directly from the Nvidia site, but I haven't tried that.

Install the driver of choice and also the ports nvidia-xconfig, nvidia-settings.

Load the kernel modules

Newer versions of the driver provide two kernel modules:

=== grog@hydra (/dev/pts/6) ~ 16 -> l /boot/modules/nv*
-r-xr-xr-x  1 root  wheel   1,675,096 14 Oct 15:49 /boot/modules/nvidia-modeset.ko
-r-xr-xr-x  1 root  wheel  63,834,064 14 Oct 15:49 /boot/modules/nvidia.ko

If nvidia-modeset isn't there, just ignore it.

To use the modules now, load the modules in this sequence:

=== root@hydra (/dev/pts/4) ~ 53 -> kldload nvidia
=== root@hydra (/dev/pts/4) ~ 54 -> kldload nvidia-modeset
=== root@hydra (/dev/pts/4) ~ 55 ->

Add these entries to /boot/loader.conf to ensure that they get loaded automatically on system restart:

nvidia_load="YES"
nvidia_modeset_load="YES"

Greg's home page Greg's diary Greg's photos Copyright

Valid XHTML 1.0!

$Id: Nvidia-X.php,v 1.1 2023/10/23 02:13:34 grog Exp grog $