NVIDIA

From CBLFS
Revision as of 22:27, 19 August 2007 by 71.224.57.6 (talk) (...a little hope for xen folks)
Jump to navigationJump to search

Introduction to NVIDIA

NVIDIA provides free, but closed-source drivers for graphics and other hardware. Drivers for both NVIDIA and ULi products are provided although not all products are supported.

Project Homepage: http://www.nvidia.com/content/drivers/drivers.asp

Dependencies

Required

  • Linux Kernel Source (Note: This package requires the kernel sources. If you have removed the kernel sources then I suggest that you build it again. No need for installation though.)
  • X Window System

Extra Options

If for whatever reason you're building inside of a chroot or not running the kernel you plan to use with the nVidia driver, also pass the following:

--kernel-source-path= path to kernel source. The script first checks /lib/modules/`uname -r`/build then /usr/src/linux.
--x-prefix= X Windows prefix. Defaults to /usr/X11R6 if the installer detects Xorg <7.0. If Xorg > 7.0 is detected, the default is /usr.
--no-kernel-module: disable building the kernel module.
--ui='curses' (default) for ncurses interface or 'none' for no graphical interface.
-a accept the license agreement.
-x extract only, do not install.
-q do not ask any question, just accept the default answers.
-e expert mode. More questions and more verbose output.

Note to xen users: the nvidia driver does work in a dom0; but however, this guide does not cover such an install.

Non-Multilib

Download Source: http://www.nvidia.com/object/linux_display_ia32_1.0-9755.html

x86

First we need to make the downloaded file executable:

chmod +x NVIDIA-Linux-x86-1.0-9755-pkg1.run

Install the driver with the following command (see above for more options):

./NVIDIA-Linux-x86-1.0-9755-pkg1.run \
    --x-prefix=$(pkg-config --variable=prefix xorg-server) \
    --no-precompiled-interface

x86_64

Download Source: http://www.nvidia.com/object/linux_display_amd64_1.0-9755.html

Multilib

First we need to make the downloaded file executable:

chmod +x NVIDIA-Linux-x86_64-1.0-9755-pkg2.run

Install the driver with the following command (see above for more options):

PKG_CONFIG_PATH="${PKG_CONFIG_PATH64}" \
./NVIDIA-Linux-x86_64-1.0-9755-pkg2.run \
    --x-prefix=$(pkg-config --variable=prefix xorg-server) \
    --no-precompiled-interface

Pure64

NOTE: The nVidia installation script for 64-bit systems has the dynamic linker path hard-coded at /lib64/ld-linux-x86-64.so.2. If installing on a pure 64-bit system the dynamic linker will be installed in /lib. This has been discussed with the nVidia engineers, here is their response:

"According to the SysV processor-specific ABI supplement draft on http://refspecs.freestandards.org/, the standard Linux
 program interpreter for x86-64 systems is /lib64/ld-linux-x86-64.so.2.  We can't easily support other interpreters because the
 path has to be stamped into the .interp section of the executable.  If you need to use a different interpreter, you can either
 create a symlink like you did or unpack the .run file with the -x option, cd into the unpacked directory, and run the installer
 directly with /lib/ld-2.4.so ./nvidia-installer"

The symlink method is known to work, the alternate solution provided by nVidia engineers has not been tested. When using the symlink method, it appears that this link MUST REMAIN after installing the nVidia drivers.

If you have a Pure64 system create a link so the path to ld.so is correct:

mkdir -v /lib64 &&
ln -sv /lib/ld-2.4.so /lib64/ld-linux-x86-64.so.2

Next, make the downloaded file executable:

chmod +x NVIDIA-Linux-x86_64-1.0-9746-pkg2.run

Install the driver with the following command (see above for more options):

./NVIDIA-Linux-x86_64-1.0-9746-pkg2.run \
   --x-prefix=$(pkg-config --variable=prefix xorg-server) \
   --no-precompiled-interface

Configuring

To generate a new xorg.conf run the following:

nvidia-xconfig --output-xconfig=xorg.conf.new

Test the X server configuration with:

X -config xorg.conf.new

You should see nVidia's logo and then the normal server screen.

If it works properly move it to it's proper location:

mv -v xorg.conf.new /etc/X11/xorg.conf