nvidia Installation
在Ubuntu使用nvidia是件非常愉快的事,但其功能強大要想駕駁它,也要費般功夫,現在最新的版本為1.0-8174,而所安裝的文件,通常放置在/usr/share/doc/NVIDIA_GLX-1.0目錄內。
安裝之前
請先離開X-window及關閉所有的OpenGL程式(因為有些OpenGL程式,即使沒有X-window,也可以執行),最好是在vag mode only(runlevel 1)下,比較好偵錯。Kernel Source
請用`uname -a`找出linux kernel的版本,此時系統為2.6.12-10-386,所以就要以此字串來找出所對應的kernel source,因為系統中的開機image是使用linux-image-2.6.12-10-386,當然也可以使用linux-image-2.6.12-10-686, linux-image-2.6.12-10-686-smp。所以要安裝所對應的linux-headers,當安裝/移除linux-headers-2.6.12-10-386,另一個linux-headers-2.6.12-10也會安裝/移除。samuel@pika046:doc$ AptSearch 2.6.12-10 linux-headers-2.6.12-10 - Header files related to Linux kernel version 2.6.12 linux-headers-2.6.12-10-386 - Linux kernel headers 2.6.12 on 386 不然在安裝的過程中,就會出現類似的錯誤訊息: /usr/src/linux-headers-2.6.12-10/scripts/gcc-version.sh: 沒有此一檔案或目錄
MetaModes
A single MetaMode describes what mode should be used on each display
device at a given time. Multiple MetaModes list the combinations of modes
and the sequence in which they should be used. When the NVIDIA driver
tells X what modes are available, it is really the minimal bounding box of
the MetaMode that is communicated to X, while the "per display device"
mode is kept internal to the NVIDIA driver. In MetaMode syntax, modes
within a MetaMode are comma separated, and multiple MetaModes are
separated by semicolons. For example:
", ; , "
Where is the name of the mode to be used on display device 0
concurrently with used on display device 1. A mode switch
will then cause to be used on display device 0 and to be used on display device 1.
Here is a real MetaMode entry from the X config sample config file:
Option "MetaModes" "1280x1024,1280x1024; 1024x768,1024x768"
If you want a display device to not be active for a certain MetaMode, you
can use the mode name "NULL", or simply omit the mode name entirely:
"1600x1200, NULL; NULL, 1024x768"
or
"1600x1200; , 1024x768"
Optionally, mode names can be followed by offset information to control
the positioning of the display devices within the virtual screen space;
e.g.:
"1600x1200 +0+0, 1024x768 +1600+0; ..."
Offset descriptions follow the conventions used in the X "-geometry"
command line option; i.e. both positive and negative offsets are valid,
though negative offsets are only allowed when a virtual screen size is
explicitly given in the X config file.
When no offsets are given for a MetaMode, the offsets will be computed
following the value of the TwinViewOrientation option (see below). Note
that if offsets are given for any one of the modes in a single MetaMode,
then offsets will be expected for all modes within that single MetaMode;
in such a case offsets will be assumed to be +0+0 when not given.
When not explicitly given, the virtual screen size will be computed as the
the bounding box of all MetaMode bounding boxes. MetaModes with a bounding
box larger than an explicitly given virtual screen size will be discarded.
A MetaMode string can be further modified with a "Panning Domain"
specification; e.g.:
"1024x768 @1600x1200, 800x600 @1600x1200"
A panning domain is the area in which a display device's viewport will be
panned to follow the mouse. Panning actually happens on two levels with
TwinView: first, an individual display device's viewport will be panned
within its panning domain, as long as the viewport is contained by the
bounding box of the MetaMode. Once the mouse leaves the bounding box of
the MetaMode, the entire MetaMode (i.e. all display devices) will be
panned to follow the mouse within the virtual screen. Note that individual
display devices' panning domains default to being clamped to the position
of the display devices' viewports, thus the default behavior is just that
viewports remain "locked" together and only perform the second type of
panning.
The most beneficial use of panning domains is probably to eliminate dead
areas -- regions of the virtual screen that are inaccessible due to
display devices with different resolutions. For example:
"1600x1200, 1024x768"
produces an inaccessible region below the 1024x768 display. Specifying a
panning domain for the second display device:
"1600x1200, 1024x768 @1024x1200"
provides access to that dead area by allowing you to pan the 1024x768
viewport up and down in the 1024x1200 panning domain.
Offsets can be used in conjunction with panning domains to position the
panning domains in the virtual screen space (note that the offset
describes the panning domain, and only affects the viewport in that the
viewport must be contained within the panning domain). For example, the
following describes two modes, each with a panning domain width of 1900
pixels, and the second display is positioned below the first:
"1600x1200 @1900x1200 +0+0, 1024x768 @1900x768 +0+1200"
Because it is often unclear which mode within a MetaMode will be used on
each display device, mode descriptions within a MetaMode can be prepended
with a display device name. For example:
"CRT-0: 1600x1200, DFP-0: 1024x768"
If no MetaMode string is specified, then the X driver uses the modes
listed in the relevant "Display" subsection, attempting to place matching
modes on each display device.