от kill_u(16-03-2007)

рейтинг (147)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване

ГНУ/Линукс ръководство за инсталиране на драйвери NVIDIA

Въведение
I. Начин на инсталиране
   1. Избор и изтегляне на дистрибуцята на драйвера NVIDIA.
   2. Инсталиране на драйвера NVIDIA
   3. Настройка на Х -интерфейса за драйвера NVIDIA
ІІ. Допълнителна информация
   4. Често задавани въпроси
   5. Типични проблеми
   6. Връзка с NVIDIA
   7. Допълнителни сведения
   8. Съвети за начинаещи потребители на ГНУ/Линукс
   9. Благодарности
ІІІ. Приложения
А.  Поддържани графични процесори
В.  Минимални изисквания към програмното обезпечаване
С.  Компоненти, които се инсталират
D.  Опции за настройка на Х
Е.  Настройки на OpenGL
F.  Настройки на AGP
G. Конфигуриране на TwinView
H. Конфигуриране на TV-out
I. Конфигуриране на лаптоп
J.  Настройка на видеорежимите
K. Flipping и UBB
L. Често срещани проблеми.
M. Интерфейс Proc
N. Поддръжка на XvMC
O. Поддръжка на GLX
P. Конфигуриране на няколко екрана от една видеокарта
Q. Power Management Support
R. Система за наименоване на дисплеите
S. X Composite разширения
T. Инструмента nvidia-settings
U. Разширението XRandR
V. Поддръжка на GLX в Xinerama
W. Режим SLI и MultiGPU
X. Понятията Frame Lock and Genlock
Y. Понятието DPI (Dots Per Inch)
Z. Поддръжка на i2c шина
AA.Промяна на  DMA буфери в 64 битови платформи.



Въведение

Този документ съдържа инструкции за настройка и използване на драйвера за видеокарти NVIDIA под ГНУ/Линукс. Глави 1,2 и 3 описват процеса на зареждането, инсталирането и настройките на дрйвера. Глава 4 съдържа често задаваните въпроси и отговори по настройките. Глава 5 съдържа решения на типични проблеми.

В качеството си на допълнителна информация Глава 6 съдържа връзки към ресурси на NVIDIA, и обяснение за ГНУ/Линукс, а Глава 7 съдържа връзки за допълнителни ресурси по операционната система ГНУ/Линукс.

Текста е създаден за потребители на ГНУ/Линукс, които имат представа за особеностите на терминологията на ГНУ/Линукс. Допълнително Глава 8 съдъжа информация за етапите на процеса на инсталация, която може да бъде полезна на начинаещите потребители.

Допълнителната информация се съдържа в приложенията към документа. Тя включва апаратни и програмни изисквания за инсталацията, пълен списък с опциите на различните услуги, включени в комплекта, особености на инсталацията за отделни конфигурации и описание на възможностите на драйвера.



Избор и изтегляне на дистрибуцията на драйвера NVIDIA.

Драйверите NVIDIA  могат да бъдат изтеглени от http://www.nvidia.com

Драйвера е изпълнен по универсална архитектура, в която всеки драйвер се използва за всички поддържани графични процесори NVIDIA (обърнете се към приложение А за списък с поддържаните чипове). По този начин е решен проблема с избор на правилен драйвер от потребителя, и драйвера достъпен за изтегляне е само един файл, а именно:

'NVIDIA-Linux-x86-1.0-9746-pkg1.run'

Суфикса "-pkg" в името на файла се използва за различните дистрибутиви, съдържащи един и същ драйвер, но с различен набор предварително прекомпилирани модули на интерфейса на операционната система. Файла с най - голям номер в суфикса е подходящ за повече системи.

Поддръжката на остарелите графични процесори е премахната от универсалния драйвер. Те се поддържат чрез издаването на специални дистрибутиви за остарели модели чипове. Обърнете се към приложение А за поддържаните чипове.

Сваления файл представлява сам по себе си саморазархивиращ се пакет-инсталатор и Вие можете да го запазите в определено място в системата.


Инсталиране на драйвера NVIDIA

Тази глава съдържа инструкции за инсталирането на драйвера NVIDIA. Обърнете внимание, че след приключване на инсталацията, но преди началото на използването на драйвера е нужно ръчно да бъдат изпълнени стъпките в Глава 3. Допълнителна информация, която може да бъде полезна за начинаещите се съдържа в Глава 8.

Преди началото на инсталацията

Преди началото на инсталацията е необходимо да изключите Х - сървъра и да затворите всички приложения използващи Open_GL(забележете, че е възможно някои приложения да останат работещи въпреки, че сте спрели Х-сървъра). Задължително е да настроите системата за стартиране в конзолен режим, а не директно в Х среда. Тази процедура ще облекчи възстановяването в случай на проблем в процеса на инсталация. Обърните се към Глава 8 за допълнителна информация.

Стартиране на инсталатора.

Отидете в директорията където сте свалили файла "NVIDIA-Linux-x86-1.0-ХХХХ-pkg#.run" и преминете в root. Стартирайте файла по следния начин:

#sh NVIDIA-Linux-x86-1.0-ХХХХ-pkg#.run

Файлът *.run представлява саморазархивиращи се пакети. При изпълнението на командата тези пакети се извличат от съдържанието на архива и пускат инсталатора "nvidia-installer", представляващ интерактивен интерфейс, който Ви води през процеса на инсталирането.
Приложението "nvidia-installer" се инсталира в "/usr/bin/nvidia-installer" за да помогне при последващ процес на премахване(деинсталация), автоматично обновяване и други подобни задачи. Използването на този инструмент е подробно описано по нататък в тази Глава.

Вие можете да зададете опции за стартиране на *.run файла. Типични такива са следните опции:

--info - показва информация за *.run файла и излиза

--check -проверява целоста на архива и излиза

--extract-only - извлича съдъжанието на архива в текущата директория, без да пуска инсталатора.

--help - показва информация за типовете опции и излиза

--advansed-options - показва информация за типовете и допълнтелни опции на архива.


Инсталиране на поддръжка на равнище кернел.


Драйвера NVIDIA съдържа специален модул на интерфейса, които трябва да е комплектиран за всяко ядро. NVIDIA разпостраняват изходния код на интерфейса заедно с предварително компилираните файлове за повечето версии на кернела, влизащ в състава на повечето дистрибуции на ГНУ/Линукс.

В началото инсталатора "разбира" дали има предварително прекомпилиран модул на интерфейса в текущата версия на ядрото. Ако няма такъв то се проверява за наличие на подходяща верси на FTP сайта на NVIDIA (подразбира се, че компютъра е свързан към интернет) и започва да го изтегля. Ако не намереи файла, по различни причини (отсъствието му, липса на връзка, пропаднал сървър и т.н.)инсталатора проверява за наличие на изходен код на ядрото и го прекомпилира сам.  Това предполага необходимоста от наличие в системата на изходен код за да бъде прекомпилирано ядрото безпроблемно. В повечето системи това означава нужда от намиране и указване на пакета с изходния код, в някои нови дистрибуции инсталацията на нови пакети не е необходима( Fedora Core 3, Red Hat Enterprise Linux 4)

Обърнете внимание, че събирането (linking, form link editor) на модула на интерфейса (в случая поетапното му сваляне и компилиране на място) изисква наличето на линкер (link editor) в системата. Линкер се намира в "/usr/bin/ld" , и е част от пакета binutils. Тоест ако събирането не започне е необходимо да се инсталира първо линкера и после да се стартира инсталацията на драйвера.


ФУНКЦИИ НА ИНСТАЛАТОРА

Без опции стартирането на *.run файла започва инсталацията веднага след извличането на пакетите от архива. Инсталатора, обаче може да бъде стартиран допълнително след разархивирането ако използваме някои от опциите. Освен това той може да бъде стартиран допълнително за проверка на обновявания и други задачи. Ето някои от основните му опции:

nvidia-installer --uninstall - в процеса на инсталации се създава резервно копие на конфликтните файлове и запис на копираните нови файлове. Опцията "--uninstall" отчита инсталацията на драйвера и връща системата в начално състояние.

nvidia-installer --latest - инсталатора се съединява със сайта на NVIDIA и изтегля последните версии на пакета.

nvidia-installer --update - съединява се с FTP сайта на NVIDIA и изтегля последната версия драйвера и неговата инсталация.

nvidia-installer --ui=none - инсталатора използва графичен интерфейс на основа на ncurses библиотеки, ако такава присъства в системата. Ако не съществува обаче се използва стандартен конзолен инсталатор. Този ключ позволява използването на стандартен графичен интерфейс.

Обърнете внимание, че инсталатора има възможност за зареждането на обновени предварително компилирани модули на ядрото от FTP сайта на NVIDIA(за версии на кернел пуснати след излизането на текущия драйвер на NVIDIA).

Към съдържанието

Настройка на Х -интерфейса за драйвера NVIDIA
В тази глава се описват необходимите изменения които трябва да се направят във файла за конфигуриране на Х-сървъра, за да се стартира драйвера на NVIDIA. Пълния списък с настройкте се съдържа в приложение Д
Дистрибутива на драйвера включва в себе си  програмата nvidia-xconfig, разработена специално за облекчаване редакцията на файла за конфигуриране на Х. Разбира се Вие можете ръчно да си го промените.

ИЗПОЛЗВАНЕ НА nvidia-xconfig ЗА НАСТРОКА НА Х ИНТЕРФЕЙСА

Програмата nvidia-xconfig намира автоматично файла за конфигурация и го променя, като в повечето случаи за тази процедура е необходимо само да потвърдим с "YES" на nvidia-xconfig използването на драйвера. Ако все пак Ви се наложи може ръчно да стартирате от терминал програмата чрез nvidia-xconfig. Тя ще направи резервно копие на конфигурационния файл на Х преди да внесе каквито и да е изменения. Обърнете внимание че Х сървъра трябва да бъде рестартиран, за да встъпят в сила каквито и да е изменения.
Допълнителна информация за nvidia-xconfig се съдържа в неговата man страница и може да бъде стартирана чрез

#man nvidia-xconfig

РЪЧНО РЕДАКТИРАНЕ НА КОНФИГУРАЦИОННИЯ ФАЙЛ НА Х-СЪРВЪРА

През Април 2004 година организацията X.org пусна Х- сървър основаващ се на системата XFree86. Възможно е Вашата система да има сървър X.org с Х-интерфейс вместо предишния XFree86, и  това различие не от такова значение единствено в две изключения:

--Конфигурационния файл на релиза X.org  се намира в /etc/X11/ и е xorg.conf, докато конфигурационния файл на XFree86 се намира в /etc/X11/XF86Config и е същия формат.
--Журналния файл на сървъра  X.org се намира в /var/log/ и е Xorg.#.log, докато журнала на XFree86 е на същото място но се нарича XFree86.#.log(в случая # играе роля на номер на сървъра обикновенно е 0). Формата на файловете е идентичен. В този документ и двата ще бъдат назоване "Журнални файлове на Х - интерфейса"

За промяна на настройките на Х-интерфейса е нужно да се редактира конфигурационния файл, използван от този сървър. Ако не знаем кой файл използва нашата система можем да погледнам в журналния файл и да видим какво пише след този ред

(==) Using config file:

Този ред съдържа името и разположението на конфигурационния файл на Х интерфейса.

Ако нямате работещ конфигурационен файл на Х, то тогава има редица способи да получите готов. Образец на такъв е включен както в дистрибутива XFree86, така и в драйвера на NVIDIA. (в '/usr/share/doc/NVIDIA_GLX-1.0/'). Допълнителна информация за формата на файла може да се намери и в ръководството

man XF86Config
или
man xorg.conf

Както и примерен файл може да се изтегли от интернет http://aurelien26.free.fr/s940/xorg.conf

Ако има работещ конфигурационен файл на Х, настроен за много драйвери (например "nv" или "vesa"), тогава просто го редактирайте както е указано по долу:

Изтрийте реда:
         Driver "nv"
         (или Driver "vesa")
         (или Driver "fbdev")
и го заменете с:
          Driver "nvidia"
Изтрийте редовете:
          Load "dri"
          Load "GLCore"
В секция Module добавете реда(ако го няма)
          Load "glx"

Има много опции на  конфигурационния файл на Х интерфейса, можете да се обърнете към Приложение Д за пълен списък.
След завършване на редакцията, записвате и можете да презаредите Х сървъра. Същия вече ще започне да използва хардуерното  ускорение на Open_GL. След рестартирането на Х, всички приложения използващи Open_GL трябва да използват автоматично драйвера NVIDIA. Ако констатирате проблеми моля обърнете се към Глава 5 за възможни решения.

Към съдържанието

Често задавани въпроси
В тази глава са дадени отговори на често задавани въпроси, свързани с драйвера NVIDIA. за ГНУ/Линукс и неговата настройка. Типични проблеми и техните решения са преведени в Глава 5, съвети за начинаещи се намират в Глава 8. Допълнителна информация по специална инсталация може да бъде намерена в Приложенията.

ИНСТРУМЕНТА NVIDIA-INSTALLER

Въпрос: Как мога да извлека съдържанието на  '.run' пакета без да инсталирам драйвера?

Отговор: Стартирайте инсталацията както е показано по - долу:
 
      # sh NVIDIA-Linux-x86-1.0-ХХХХ-pkg1.run --extract-only
 
  Ще бъде създаден каталог  NVIDIA-Linux-x86-1.0-ХХХХ-pkg1 с разархивираното съдържание на '.run' файла.


Въпрос: Как да прегледам изходния код на ядрото на интерфейса?

Отговор: Изходния код е поместен в каталога и може да се види в usr/src/nv след разархивирането на  .run файла.
За да стигнете до него изпълнете следното:
 
      # sh NVIDIA-Linux-x86-1.0-ХХХХ-pkg1.run --extract-only
      # cd NVIDIA-Linux-x86-1.0-ХХХХ-pkg1/usr/src/nv/
   

Въпрос: Как и къде се създават файловете на устройството  NVIDIA?

Отговор: В зависимост от конфигурацията на системата файловете на устройството NVIDIA се създават чрез един от трите способа:
 
     - по време на инсталацията, използвайки mknod
 
     - по време на зареждането на модула, чрез devfs (Linux device file system)
 
     - по време на зареждането на модула, посредством hotplug/udev
 
В текущите версии на драйвера NVIDIA файловете на устройството се създават или модифицират драйверите на интефейса, когато е стартиран Х- сървъра.

  По подразбиране, драйвера NVIDIA се опитва да създаде файл на устройството със следните атрибути:
 
        UID:  0     - 'root'
        GID:  0     - 'root'
        Mode: 0666  - 'rw-rw-rw-'
 
Съществуващите файлове се променят, ако тези атрибути не съвпадат настройките по подразбиране. Ако искате драйвера NVIDIA да създаде файлове на устройствата  с различни от тези по подразбиране, то можете да ги зададете с помоща на параметрите за модула на ядрото NVIDIA "NVreg_DeviceFileUID" - за потребител, NVreg_DeviceFileGID" - за група и "NVreg_DeviceFileMode".

Например, драйвера NVIDIA за да бъде настроен да създава файл за устройствата с UID=0 (root), GID=44 (video) и Mode=0660 приема следната редакция:

        NVreg_DeviceFileUID=0
        NVreg_DeviceFileGID=44
        NVreg_DeviceFileMode=0660

 
  Параметрите "NVreg_ModifyDeviceFiles" отключват динамичното управление на файла за устройството ако неговото значение е 0.


Въпрос: Обнових ядрото на операционната система и сега модула на NVIDIA не зарежда. Какво е станало?

Отговор: Интерфейса на равнище ядро е длъжен да бъде компилиран наново за новия кернел на операционната система. Ако се е променил кернела, то непременно трябва да се преинсталира драйвера.

  ДОПЪЛНИТЕЛНО: Вие можете да настроите модула към неактивен кернел чрез командата(например, ако Вие току що сте събрали новия кернел, но още не сте го прекомпилирали) то с помоща на командата:
 
      # sh NVIDIA-Linux-x86-1.0-ХХХХ-pkg1.run --kernel-name='KERNEL_NAME'
 
 
  Където 'KERNEL_NAME' - е същото, което излезе от командата  uname -r', ако ядрото вече е заредено.


Въпрос: Защо NVIDIA вече не предлага RPM пакети?

Отговор: Не всички ГНУ/Линукс дистрибуции използват  RPM, NVIDIA се старае да предложи едно решение, което да работи с всички дистрибуции. Както е указано в лицензното споразумение, на разработчиците на дистрибуции се разрешава да разпостраняват драйвера с техни модификации на пакета, и в различни видове на пакета..


Въпрос: Може ли nvidia-installer да използва прокси-сървър?

Отговор: Да, доколкото поддръжката на FTP в nvidia-installer е реализирана чрез snarf, то инструмента разбира средите 'FTP_PROXY', 'SNARF_PROXY' и 'PROXY'.

Въпрос: Какво е значението на суфикса 'pkg#' в името на  '.run' файла?

Отговор: Суфикс 'pkg#' се използва за различаване на '.run' дистрибутивите, съдържащи една версия на драйвера но различен набор, предварително компилирани модули на интерфейса на драйвера. Ако се появи нова версия на ядрото след излизането на драйвера NVIDIA, текущия драйвер може да бъде наново архивиран в *.run с цел включването на предварително копираните модули с поддръжката на новото ядро(в допълнение към старите модули включени в предишната версия на дистрибутива)
Файл *.run с еднакъв номер и версия, но с различни номера на pkg се различава ссамо по включените предварително компилирани интерфейсни модули на драйвера.
Също така файловете с по голям pkg номер съдържат всичко което е било включено в предишните версии с по ниски номера на pkg.

Въпрос: Имам вече инсталиран пакет NVIDIA-Linux-x86-1.0-ХХХХ-pkg1.run, но забелязвам че на сайта на производителя има по нова версия NVIDIA-Linux-x86-1.0-ХХХХ-pkg2.run. Трябва ли да изтегля и инсталирам по - новата версия?

Отговор: Няма необходимост от сваляне на новия файл, тъй като драйвера с номер 1.0-ХХХХ, е един и същ. Няма нужда от преинсталация..

Въпрос: Мога ли да добавя компилиран модул на интерфейса за моето ядро в  '.run' файла?

Отговор: Да, чрез използване на опцията на '.run' файла
--add-this-kernel
това води до разархивиране на файла, последващо събиране и прекомпилиране на новия модул към текущия кернел, и създаването на  '.run' файл, като добавя '-custom' към името на файла. Това е полезно ако администрирате много машини с един и същ кернел.


Въпрос: Къде да намеря изходния код на 'nvidia-installer'?

Отговор: Инструмента 'nvidia-installer' е издадена под GPL. Последната версия на изходния код е достъпна на адрес ftp://download.nvidia.com/XFree86/nvidi...


ДРАЙВЕРА NVIDIA

Въпрос: С какво да започна при проблеми с изображението ?

Отговор: Едни от най - полезните инструменти са журналните файлове на Х разположени в  '/var/log'. Редовете, които започват с  "(II)", съдържат информация, тези с "(WW)" съдържат предупреждение а тези с  "(EE)" - грешките. Необходимо е да се удостовер че се използва нужния файл за конфигурацията на Х. Това може да се види на реда започващ с
      (==) Using config file:
 
  Така също, убедете се че се използва драйвера nvidia а не "nv" или "vesa". Това става на следния ред
 
      (II) LoadModule: "nvidia"
 
  Съобщенията от драйвера трябва да започват с:
 
      (II) NVIDIA(0)
 
 
Въпрос: Как да увелича обема на информацията записваща се в журналния файл на Х, за по подробен преглед?

Отговор: По подразбиране, драйвера NVIDIA изпраща само необходимия минумум съобщения в stderr и журналния файл. При необходимост има решение на проблема като се използват опциите за стартиране на Х средата. Такива опции са
-verbose и -logverbose,
За настройка равнището на извежданата информация в 'stderr' и съобщенията в журнала. Драйвера NVIDIA извежда големи съобщения при равнище 5 и повече (по подразбиране Х интерфейса използва равнище 1 за 'stderr' и 3 за журналния файл). Така че за увеличение на обема информация в журналния файл от драйвера NVIDIA в двете посоки - към  'stderr' и журнала е нужно да се стартира Х със следното ниво на извеждана информация по следния начин:
 
# startx -- -verbose 5 -logverbose 5
   

Въпрос: От къде да взема 'gl.h' или 'glx.h' файловете, така че да мога да компилирам собствени OpenGL приложения?

Отговор: Повечето от системите са с определени файлови заглавия. NVIDIA предлага свои собствени файлове 'gl.h' and 'glx.h', които се инсталират по подразбиране в хода на инсталация на драйвера. Ако предпочитате файловете за Open_GL да не се инсталират по време на инсталацията то тогава напишете следната опция  с която да стартирате инсталатора

--no-opengl-headers

за файла  'NVIDIA-Linux-x86-1.0-ХХХХ-pkg1.run' по време на инстлацията.

Въпрос: Мога ли да получа по елекронната поща уведомяване за нови верси на драйвера за ГНУ/Линукс?

Отговор: Да, на адрес http://www.nvidia.com/view.asp?FO=drive... просто попълнете регистрационната форма.

Въпрос: Каква е политиката на NVIDIA по отношение на Линукс кернел намиращ се в стадий на разработка?

Отговор: NVIDIA официално не подържа версиите които се намират в стадий на разработка. Въпреки това всички изходни кодове на модула които си взаимодействат с Линукс кернел са достъпни в каталога 'usr/src/nv/' на файла '.run'. NVIDIA поощрява членовете на ГНУ/Линукс общноста, разработващи пачове към кодовете за ядрата в разработка. Търсенето в мрежата дава резултати за подобни пачове.


Въпрос: Защо Х използва толкова много памет?

Отговор: При повечето случаи използваните приложения за измерване заетостта на паметта следва да разграничават, използването на физическата и виртуалната памет от заетостта на общите ресурси. Какво се има в предвид: Например повечето от общите библиотеки са заредени в оперативната памет по един път но се отразяват в много процеси. Този обем памет е необходимо да бъде отчетена само един път в общия размер на използваната памет. Аналогично, видео паметта или регистрите на всяко устройство могат да се изобразяват в множество процеси. Това изобразяване не потребява повече памет от обичайното.

Това е често обсъждана тема в мейлинг листите на XFree86 например тук:

   http://marc.theaimsgroup.com/?l=xfree-x...

  Описваната там програма 'pmap' може да се свали и се явява полезно средство за разграничаване на видовете използване на паметта. Например, обикновената проверка на паметта за потребителя с име 'top' показва, че се използват повече от 25 МВ памет. Но с програмата pmap се вижда от последния ред, че се използват само :
 
      mapped:   287020 KB writable/private: 9932 KB shared: 264656 KB
 
  като в крайна сметка самия Х използва не повече от 10 МВ оперативна памет (значението на "writable/private").

  Обърнете внимание, че Х заема ресурси в зависимост от количеството и вида на клиентите (мениджър на прозорци, браузър и други); потреблението на памет от Х нараства при увеличаването на броя от нужните на клиента Х приложения, като икони например и отворени прозорци, и винаги намаля при затварянето на тези Х приложения.


Въпрос: От къде да взема архивни файлове тип .tar.gz(както са предишните версии)?

Отговор: Тези файлове в чист вид вече не са достъпни. Файлът *.run е сам по себе си архив с функции на инсталатор. Можете да извлечете архива чрез стартиране на файла '.run' с опция

--extract-only.

Въпрос: От къде да намеря по стари версии на драйвера?

Отговор: ftp://download.nvidia.com/XFree86_40/


Въпрос: Какво е това SELinux и и как влияе това на драйвера NVIDIA?

Отговор: ГНУ/Linux с повишена безопастност (Secure Enhansed Linux) - това е набор от модификации на кернела и определени програми за ГНУ/Линукс внасящи определени политики на безопастност.  При използването на тази дистрибуция трябва да се има в предвид, че типа на достъп към всички библиотеки е настроен на 'shlib_t'. Инсталатора на драйвера определя, как да се инсталират библиотеките на драйвера и така инсталираните библиотеки имат различен ключ на достъп. Също така е възможно някои от библиотеките на системата да не бъдат използвани именно поради тази причина. Затова при инсталиране в тази среда трябва да се използва опцията  --force-selinux за  '.run' файла, което отключва специални изисквания за типа на достъп


Въпрос: Използвайки настройките на GNOME не мога да увелича разделителната спобност повече от 800х600. Какво да направя?

Отговор: Инсталацията на GNOME в дистрибуции като Red Hat Enterprise Linux 4 съдържат различни начини за настройки на разделителната способност:
 
 
      'System Settings' -> 'Display'
 
 
  Което води до изменение на файла за конфигуриране на Х, както и
 
 
      'Applications' -> 'Preferences' -> 'Screen Resolution'
 
 
  което определя разделителна способност за всеки потребител, който използва XRandR- разделителна способност. Разделителната способност се определя от тези две настройки, така че се убедете дали правилно сте настроили и двете.


Въпрос: Защо използващите DGA приложения не се стартират?
 
Отговор: Драйвера на NVIDIA не поддържа графичния компонент на ХFree86-DGA (Direct Graphics Access). Приложенията могат да използват XDGASelectInput() за функции от натруптване на свързваните с движението точки, но такива като XDGASetMode() и XDGAOpenFramebuffer(), няма да работят.
  Графичния компонент ХFree86-DGA не се поддържа поради изискването за използване на CPU за фреймбуфер на кадри. Във връзка с това че видеопаметта продължава да се увеличава, драйвера за Х е разработен на по нов начин за динамично използване на тази видеопамет. Този начин е несъвместим с DGA. Освен това, DGA не взаимодейства с други графични библиотеки, като Xlib и OpenGL, тъй като те се обръщат към GPU директно.
  За приложенията е по - добре да използват OpenGL или Xlib вместо DGA заради по - високото качество на изображението. Използването на графичните библиотеки, различни от DGA, позволява неколкократно да се увеличи производителноста и да се обезпечи по добра съвместимост с други Х приложения.


Въпрос: Моя кернел лог съдържа съобщения които започват с "Xid"; Какво значи това?

Отговор: Съобщения от типа "Xid" показва, че е получена грешка за по време на работата на GPU. Това често е грешка от програмен тип и се отнася за драйвера на NVIDIA. Тези съобщения съдържат информация която може да помогне на NVIDIA за отстраняването на проблемите.


Въпрос:  Кой чип на NVIDIA поддържа OpenGL расширението EXT_framebuffer_object?

Отговор: Това разширение се поддържа от  GeForce FX, Quadro FX, и по - новите графични карти.


Въпрос: Използвам за овърклокинг интерфейса Coolbits за изменение честотата на видеокартата, но при всяко рестартиране на Х всичко се връща в начално състояние. Има ли възможност да си запазя настройките?

Отговор: Честотата не се съхранява или възстановява по подразбиране. Това се прави за да се избегне проблема със стабилноста на системата при работа, което може да възникне при преминаване от едни честоти към други. За решение на проблема можете да включите следния ред във файла "~/.xinitr":
 
       # nvidia-settings -a GPUOverclockingState=1 -a
  GPU2DClockFreqs=<GPU>,<MEM> -a GPU3DClockFreqs=<GPU>,<MEM>

това автоматично ще стартира вашата карта при по - високи честоти. В този ред GPU и MEM са честотите на процесора и на паметта в мегахерци.


Въпрос: Защо скриптовете използващи Х като XRandR (например, панела "Screen Resolution Preferences" в GNOME, команда `xrandr -q` и т.н.) неправилно показват честота на опресняване на екрана?

Отговор: Разширение XRandR не отчита възможноста за изобразяването на няколко екрана в един дисплей на Х; XRandR се обръща само към значението на параметъра
MetaMode, в който може да са съдържа описание на една или няколко текущи видеорежими. Това означава, че ако има няколко такива режима описани в  MetaModes, то XRandR не в състояние да ги различи един от друг.
За поддържането на DynamicTwinView драйвера на  Х NVIDIA е длъжен да направи всеки метарежим (MetaModes) уникален за разширението XRandR. Към момента драйвера използва значението на честотата на опресняване на изображението в качеството на уникален идентификатор. Вие можете да използвате командата  `nvidia-settings -q RefreshRate`
за преглеждане на текущите честоти на обновяване на всеки дисплей. Това  може да бъде видяно единствено ако опцията  "DynamicTwinView" за конфигурацията на Х е в позиция  FALSE.
За допълнителна информаия се обърнете към приложение G.

Към съдържанието

Типични проблеми
Тази глава съдържа решения за типични проблеми, възникващи при използването на драйвера на NVIDIA под ГНУ/Линукс

Въпрос: Х не иска да стартира. В журналния файл е записан следния ред с грешки
 
  (EE) NVIDIA(0): The NVIDIA kernel module does not appear to be receiving
  (EE) NVIDIA(0):      interrupts generated by the NVIDIA device PCI:x:x:x.
  (EE) NVIDIA(0):      Please see the COMMON PROBLEMS section in
  (EE) NVIDIA(0):      the README for additional information.
 
 
Отговор: Това може да се дължи на много причини като например смесване на PCI IRQ номера, проблеми от типа на (I/O APIC), конфликт между устройствата използващи общ IRQ (или техните драйвери).
Ако е възможно, конфигурирайте системата така, че видеокартата да не използва едно и също IRQ с други устройства. Ако е възможно преместете картата в друг слот. Изключете драйвери на други устройства. Тези драйвери може да използват това IRQ или просто извадете другото устройство.
В зависимост от причината за проблема, една от тези опции може да помогне за решаване на проблема:

 
      Опция            Действие
      --------------    ---------------------------------------------------
      pci=noacpi        не използва АCPI за PCI IRQ маршрутизиране
      pci=biosirq       използва PCI IRQ на BIOS за определяне на IRQ маршрутизацията
      noapic              не използва I/O APIC, представени в системата
      acpi=off           изключва ACPI
 
Въпрос: Х не стартира. В журналния файл има следния ред с грешки:
 
  (EE) NVIDIA(0): The interrupt for NVIDIA graphics device PCI:x:x:x
  (EE) NVIDIA(0): appears to be edge-triggered. Please see the COMMON
  (EE) NVIDIA(0): PROBLEMS section in the README for additional information.
 
Отговор: Съобщението от типа "edge-triggered interrupt" означава, че ядрото на операционната система е настроено да извършва прекъсванията по метода edge-triggered(по върха на сигнала) а не по level-triggered(по равнината на сигнала) в APIC. При първия случай се изключва възможността едно IRQ да се споделя от две устройства, докато при втория случай тази възможност съществува. При edge-triggered случая е възможно драйвера да спре да получава сигнал от устройството въобще. За потребителя това може да изглежда като пълен срив на компютърната система, но този проблем се среща, когато едни и същи устройства ползват едно и също IRQ.

Такава ситуация възниква, ако за програмното прекъсване в APIC не се използва от интерфейса ACPI. Това е чест проблем на версии 2.4 на кернела, които не поддържат в пълнота ACPI интерфейса, както и  при ядра от версии 2.6, ако интерфейса ACPI е изключен или пък не е инсталиран по време на инсталацията на ядрото. В този случай ядрото на ГНУ/Линукс използва таблици за прекъсване представени в BIOS на дънната платка. Понякога в BIOS се подразбира използването на ACPI за обработка на прекъсванията, и в таблицата на BIOS всички прекъсвания неправилно са зададени като edge-triggered. Текущите настройки могат да се видят в /proc/interrupts.

Възможните решения включват в себе си следното: Обновяване BIOS-а на дънната платка. Използване на ядра версии 2.6 с включен ACPI интерфейс, или включване опцията на ядрото 'noapic' за обработка на всички прекъсвания чрез остарелия контролер (PIC). Новите версии на ядрото също така съдържат механизъм за натрупване на прекъсванията, който служи за избягване на този проблем и може да бъде стартиран с опцията 'irqpoll'. Към момента драйвера на NVIDIA проверява edge-triggered прекъсванията и при възникване на грешки спира стартирането на Х, за да се избегнат проблеми със стабилността на системата. Това поведение на драйвера може да бъде изключено чрез параметъра "NVreg_RMEdgeIntrCheck" на модула за кернел. По подразбиране стойността му е  1, т.е. всеки път проверява за edge-triggered прекъсвания. Ако поставите стойността му на 0 то тогава спирате тази проверка.
 

Въпрос: Х стартира, но OpenGL приложенията се затварят веднага след стартирането им.

Отговор: Ако Х работи, но съществуват проблеми с Open_GL то тогава проблема преди всичко е в използваните библиотеки или остарели символни линкове (symlinks). Обърнете се към Приложение С за допълнителна информация.Понякога е достатъчно просто да се стартира 'ldconfig'.
Също така е необходимо да проверите за наличие на правилни разширения, чрез командата:

# xdpyinfo
 
Същата трябва да покаже, че "GLX" и "NV-GLX" ръзширенията присъстват в системата. Ако тези две разширения не съществуват то тогава вероятно имате проблем със стартирането на модула glx, или пък е невъзможно зареждането на GLcore. Проверете конфигурационния файл на Х и се убедете, че там има ред за зареждането на glx (вж. Глава 3). Ако файла за конфигурация е коректен, проверете журналния файл на Х за предупреждения и грешка свързани с GLX. Също така проверете за наличие на всички символни  линкове (вж. приложение C).


Въпрос: При използване на Xinerama, моите стереочила работят само ако стереоизображението се изобразява на конкретен Х екран. Ако се представи на друг Х екран то очилата престават да работят.

Отговор: Този проблем възниква с каналите DDC и стереоочилата от типа "blue line", които получават стереосигнала от един изход на видеокартата. Когато Х екрана не може да изобрази стереоекран то тогава и изходния сигнал от видеокартата се прекратява. Принудителното използване на стереопревключванията позволяват на очилата да работят стабилно. Това може да бъде задействано по пътя на задействането на опцията в OpenGL "Force Stereo Flipping" в настройките на инструмента nvidia-settings, или чрез добавяне в конфигурационния файл на Х на следния ред

"ForceStereoFlipping" със стойност "1".

Въпрос: Стереокартината не се синхронизира между няколко дисплея.
Отговор: Има две възможни причини за това. Ако дисплеите са подвързани към едно и също GPU, и единия от тях е загубил синхронизация със стереоочилата, то тогава е необходимо да настроите мониторите на еднакви параметри за време на синхронизация; Обърнете се към приложение J за повече информация.
Ако дисплеите са включени към различни GPU-та, то единствения начин да ги синхронизирате е като използвате специално устройство G-Sync, поддържано от някои видеокарти Quadro. Обърнете се към Приложение Х за допълнителна информация. Това се отнася, както в случаите с няколко GPU на една видеокарта(Quadro FX 4500 X2) така и с отделни GPU, на отделни видеокарти. Обърнете внимание, че при първия случай видеокартата Quadro FX 4500 X2 има само един DIN вход за очилата, принадлежащ към долния чип. За синхронизация на стереокартината с второто GPU е нужно да се използва устройството G-Sync.


Въпрос: Х сървъра не се стартира, журналния файл съдържа следната грешка:
 
(EE) NVIDIA(0): Failed to load the NVIDIA kernel module!
   
Отговор: Това се получава ако модула на NVIDIA за кернел не се е заредил при инсталацията. При получаването на такава грешка е необходимо да се провери изхода от командата `dmesg` за наличие на грешки в кернел на операционната система и/или да се опита да се зареди модула чрез командата `modprobe nvidia`. Ако се появи отговор
`unresolved symbols`, то най вероятно е, че модула на NVIDIA е за друга версия на кернел, а не тази която е в системата.

Можете да зададете разположението на сорс кода на кернела при инсталирането на драйвера чрез използване на
--kernel-source-path
(за по подробна информация изпълнете  #sh NVIDIA-Linux-x86-1.0-8178-pkg1.run --advanced-options`).

Старите версии на пакета module-init-tools включват `modprobe`, които дават съобщения за грешка, когато се стартира модула, въпреки че той вече е включен в ядрото на операционната система. Обновете пакета module-init-tools ако получите подобна грешка.
Х се обръща към '/proc/sys/kernel/modprobe', за да определи местоположението на ‘modprobe`, и към '/sbin/modprobe', ако файлът не е намерен. Проверете, дали този адрес е правилен и води до изпълнимия файл `modprobe` и дали е съвместим с използваната версия на ядрото на сисетмата.
Опцията "LoadKernelModule" може да бъде използвана за изменение поведението по подразбиране на драйвера и автоматичното зареждане на модула към ядрото на операционната система.

Въпрос: Инсталирането на кернел модула на NVIDIA дава следното съобщение за грешка:
 
#error Modules should never use kernel-headers system headers
#error but headers from an appropriate kernel-source
   
Отговор: Необходимо е да инсталирате сорса на ядрото на системата. Това често пъти става като инсталирате само пакета kernel-source от дистрибутива.

Въпрос: Приложението OpenGL аварийно спира със следната грешка:
 
WARNING: Your system is running with a buggy dynamic loader.
This may cause crashes in certain applications.  If you
experience crashes you can try setting the environment
variable __GL_SINGLE_THREADED to 1.  For more information
please consult the FREQUENTLY ASKED QUESTIONS section in
the file /usr/share/doc/NVIDIA_GLX-1.0/README.txt.
 
 
Отговор: Dynamic loader-а на Вашата система има грешка, водеща до аварийно завършване на приложенията, които са свързани с pthreads и dlopen() libGL. Тази грешка присъства в старите версии на dynamic loader.  Към дистрибутивите включващи в себе си тази версия на лоудера се отнасят Red Hat Linux 6.2 и Mandrake Linux 7.1. Версиите на dynamic loader 2.2 и по-новите работят нормално. Ако приложението не използва многопоточност, то ностроката '__GL_SINGLE_THREADED' със знак "1" позволява да се избегне тази грешка. В конзола трябва да напишете:
 
# export __GL_SINGLE_THREADED=1
 
и в csh и нейните производни:
 
# setenv __GL_SINGLE_THREADED 1
 
Предходните версии на драйвера за ГНУ/Линукс съдържаха способ за прескачане на този проблем. За съжаление този способ водеше до проблем с други приложения и беше премахнат след версия 1.0-1541.


Въпрос: Играта Quake3 се затваря сама след промяна на видеорежима.

Отговор: Вероятно сте попаднали на проблем описан в предходния въпрос. Проверете текста след съобщението "WARNING". Присвояването на '__GL_SINGLE_THREADED' на  "1", би трябвало да спре самозатварянето.

Въпрос: Не мога да създам модула NVIDIA за кернела или пък успявам да го създам, но modprobe/insmod не могат да го заредят в кернела. Къде бъркам?

Отговор: Проблема обикновено е свързан със събирането на неправилни кернел хидъри(т.е. използваните версии на кернел хидърите, просто не са за този, който искате да компилирате). Стандартните кернел хидъри се намират в '/usr/include/linux/', но пътя '/lib/modules/RELEASE/build/include' (където RELEASE – изхода от командата 'uname -r')има преимущество. 'nvidia-installer' е длъжна сама да определи тяхното разположение в системата, при възникване на затруднения, можете да създадете чрез опцията
#nvidia-installer --kernel-include-dir
За да сте сигурни че това ще проработи е необходимо наличие на подходящи кернел хидъри в системата. Обърнете се към документацията на използвания дистрибутив, в някой дистрибуции кернел хидърите не се инсталират по подразбирне или пък се инсталират такива, които са неподходящи за текущото ядро.


Въпрос: Имам проблем със стартирането на играта Heretic II.

Отговор: Heretic II по подразбиране създава символни връзки (symlink) с название 'libGL.so' в директорията на играта. Необходимо е да ги изтриете или преименувате, така че системата да намира само стандартната 'libGL.so' (която драйвера инсталира в '/usr/lib'). След това можете да настроите играта да използва Open_GL. Също така съществува пач за играта от lokigames, достъпен на:
http://www.lokigames.com/products/heret...


Въпрос: Системата блокира при включване на виртуален терминал, ако използвам rivafb.

Отговор: Използването на rivafb и модула на NVIDIA е невъзможно едновременно. Едновременното използване на два драйвера за едно и също оборудване по принцип е лоша идея.


Въпрос: Компилирането на модула на NVIDIA дава следната грешка:
 
  You appear to be compiling the NVIDIA kernel module with
  a compiler different from the one that was used to compile
  the running kernel. This may be perfectly fine, but there
  are cases where this can lead to unexpected behavior and
  system crashes.

  If you know what you are doing and want to override this
  check, you can do so by setting IGNORE_CC_MISMATCH.

  In any other case, set the CC environment variable to the
  name of the compiler that was used to compile the kernel.
 
 
Отговор: Необходимо е да прекомпилирате модула, използвайки версия на компилатора използвана и при компилирането на кернела. Някои структури на кернела зависят от версията на компилатора gcc използван за компилирането. Например във файла  'include/linux/spinlock.h':
 
          ...
          * Most gcc versions have a nasty bug with empty initializers.
          */
          #if (__GNUC__ > 2)
            typedef struct { } rwlock_t;
            #define RW_LOCK_UNLOCKED (rwlock_t) { }
          #else
            typedef struct { int gcc_is_buggy; } rwlock_t;
            #define RW_LOCK_UNLOCKED (rwlock_t) { 0 }
          #endif
 
Ако ядрото е компилирано с gcc версии 2.x, но за компилирането на модула се използва версия 3.х (или обратно), то размера на  rwlock_t ще се различава и тогава ioremap ще забие. За изясняването на версията на gcc използвана за компилиране на Вашия кернел вижте изхода от командата:
 
# cat /proc/version
 
За проверка на версията в системата проверете изхода от:  
# gcc -v

Въпрос: Х стартира но спира със следната грешка:
 
  Failed to allocate LUT context DMA

 
Отговор: Това е един от възможните примери за компилиране на модула с използване на различни версии на gcc (вж. по горе).


Въпрос: Скоро обнових версията на различни библиотеки, използвайки инструмента за обновяване вграден в дистрибуцията и драйвера NVIDIA спря да работи.

Отговор: Вградения инструмента за това във вашата дистрибуция е инсталирал библиотеки, които водят до конфликт. Обърнете се към Приложение С за допълнителна информация.


Въпрос: Прекомпилирах модула за кернел но сега при опит да го интегрирам в ядрото ми се появява съобщение за грешка от типа
unresolved symbols
Отговор: Съобщението от типа Unresolved symbols преди всичко се получава от различие между сорса на ядрото и използваното в момента ядро. Трябва да има пълно съвпадение на номерацията за да сте сигурен, че е направена правилна компилация на модула. Убедете се че е инсталиран същия сорс код за Вашето ядро.

Въпрос: Как да разбера дали изходния код на ядрото е инсталиран?

Отговор: Ако имате поддръжка на RPM в дистрибуцията (Red Hat, Mandrake, SuSE),то тогава използвайте:
 
# rpm -qa | grep kernel
 
и вижте изхода. Трябва да видите, че има пакет съответстващ на вашето ядро (обикновено ядрото има название kernel-2.6.15-7), в такъв случай и пакета със сорс кода трябва да е с тази номерация(обикновено се нарича kernel-devel-2.6.15-7 или kernel-source-2.4.18-3). Ако нямате такива пакети то тогава ги инсталирайте. Ако има разминаване във версиите то тогава е необходимо да извършите обновяване например (kernel-2.6.15-7 и kernel-devel-2.6.15-10). Ако имате повече от едно ядро трябва да инсталирате пакета за текущото ядро.


Въпрос: Не мога да заредя модула на NVIDIA, който компилирах за този кернел Red Hat Linux 7.3 2.4.18-3bigmem kernel.

Отговор: Кернел хедър файловете, които са включени в дистрибуцията Red Hat Linux 7.3 2.4.18-3bigmem kernel, са неправилно настроени. Предварително компилиран модула може да бъде зареден, но ако искате да Вие да го компилирате, трябва да направите следното:
 
     # cd /lib/modules/`uname -r`/build/
     # make mrproper
     # cp configs/kernel-2.4.18-i686-bigmem.config .config
     # make oldconfig dep
 
Обърнете внимание: Red Hat Linux съдържа кернел хедъри настроени за всички ядра, включени в дистрибуцията с номера на версията. Кернел хедърите създавани по време на зареждането на системата, инсталират редица параметри за да изберат правилна конфигурация. Създадените кернел хедъри с помощта на приведените по горе примери са подходящи само за това ядро(Red Hat Linux 7.3 2.4.18-3bigmem kernel) и са непригодни за други.


Въпрос: Приложенията използващи OpenGL водят до утечки на памет в системата!

Отговор: Ако кернела е коментиран с -rmap VM, то системата може да губи памет, във връзка с подобряване на механизма за управление на паметта въведен в -rmap14a. Опцията -rmap VM се използва в някои популярни дистрибуции и утечката на паметта наистина съществува но е отстранена в -rmap15e.
Ако сте забелязали тази грешка във вашата система обновете ядрото или се обърнете към доставчика на дистрибуцията за помощ.


Въпрос: Някои OpenGL приложения (като Quake3 Arena) се самозатварят при тяхното стартиране в Red Hat Linux 9.0.

Отговор: Някои версии на пакета glibc, включени в дистрибуциите Red Hat,поддържащи TLS, неправилно използват dlopen() за достъп до споделени библиотеки използващи TLS модели. Този проблем се наблюдава когато Quake3 Area извършва dlopen() извиквания за библиотеката libGL NVIDIA. Инсталирайте пакет glibc-2.3.2-11.9, достъпен като ъпдейт за Red Hat.


Въпрос: Инсталирах драйвера но опцията „Enable 3D Acceleration” е заключена.

Отговор: Повечето аплети за настройки инсталирани с дистрибуцията не позволяват на драйвера да конфигурира хардуера и да използва апаратното ускорение.Възможно е тези аплети да не са обновени при инсталацията на драйвера. Ако Вашия драйвер е инсталиран правилно би трябвало да работи в пълния си обем.


Въпрос: Х не пуска изображение на ТВ. Получавам следната грешка:
 
Unable to initialize the X int10 module; the console may not be restored
correctly on your TV.
   
Отговор: Драйвера NVIDIA за Х използва модула за обработка и превключване Int10 на Х и за съхраняване и възстановяване на ТВ изхода. Драйвера не може да възстанови нормално картината ако не се използва тази обработка Int10. Ако сам сте компилирали Х сървъра убедете се, че не сте пропуснали да включите Int10. Ако използвате готова компилация и модула отсъства то потърсете съдействие от доставчика.

Въпрос: При изменение на настройките в игрите от типа на Quake 3 Arena или Wolfenstein Enemy Territory, същите аварийно се рестартират със следното съобщение:
 
  ...loading libGL.so.1: QGL_Init: dlopen libGL.so.1 failed:
  /usr/lib/tls/libGL.so.1: shared object cannot be dlopen()ed:
  static TLS memory too small  
 
Отговор: Тези игри затварят и стартират наново драйвера чрез dlopen() / dlclose(), при промяна на настройките. С някои версии на библиотеката glibc (например, с тези от  Red Hat Linux 9), възниква грешка, свързана с утечка на статистическия запис TLS. Тази грешка glibc води до аварийно затваряне на OpenGL драйвера при неговите последващи зареждания. Това е поправено в по – късните версии на glibc; погледнете отчет на Red Hat за грешка номер #89692:
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=89692


Въпрос: X аварийно се затваря по време на startx и журналния фал съдържа следното съобщение за грешка:
 
(EE) NVIDIA(0): Failed to obtain a shared memory identifier.
   
Отговор: Драйвера OpenGL NVIDIA и драйвера на Х NVIDIA се нуждаят от наличие на обща памет за обмяна на информация помежду си, опцията 'CONFIG_SYSVIPC' трябва да бъде включена в кернела на операционната система.


Въпрос: Когато се опитам да инсталирам драйвера, инсталатора съобщава, че Х е стартиран даже когато съм излязъл от него.

Отговор: Инсталатора определя присъствието на Х, проверява за наличие на временни файлове в '/tmp/.Xn-lock', където 'n' – е номера на Х дисплея (инсталатора проверява номерата 0 до 7). Ако сте излезли от Х, но един от временните файлове е останал трябва да го изтриете ръчно. Не изтривайте този файл ако Х още работи!!!


Въпрос: Системата работи, но много нестабилно. Какво да правя?

Отговор: Проблема със стабилността може да се дължи на проблем с AGP шината. Обърнете се към приложение F за повече информация.


Въпрос: OpenGL приложенията работят твърде бавно.

Отговор: Възможно е приложенията да използват OpenGL библиотеки, различни от установените от драйвера NVIDIA. Обърнете се към приложение С за допълнителна информация.


Въпрос: Имам проблеми с играта Quake2.

Отговор: Играта Quake2 изисква допълнителни малки настройки преди стартирането си. Първо при инсталирането на играга в директорията и се създава символнавръзка 'libGL.so', водеща към библиотеката 'libMesaGL.so'. Тази връзка трябва да бъде изтрита или преименувана Второ за стартирането на играта с използване на OpenGL трябва да се напише следното:
 
      # quake2 +set vid_ref glx +set gl_driver libGL.so
 
Quake2, не поддържа пълноекраннен режим но е възможно да настроите Х, така че да се имитира пълноекранен режим.


Въпрос: Използвам вградена видеокарта  nForce или nForce2 и в журналния файл наблюдавам следното предупреждение:
 
Not using mode "1600x1200" (exceeds valid memory bandwidth usage)
 
Отговор: Вградената видеокарта има повече ограничения относно паметта, което ограничава достъпната честота на опресняване на екрана. В качеството на заобиколен път можете да намалите максималната честота в реда VertRefresh в секция 'Monitor' в конфигурационния файл на Х. Тъй като това не се препоръчва можете да пропуснете проверката на паметта с помощта на опцията NoBandWidthTest в конфигурационния файл на Х.


Въпрос: X зарежда много бавно (до няколко минути).

Отговор: Повечето проблеми с разделителната способност при старата на Х, както стана известно идва от некоректните данни в BIOS на графичната карта, от това че е възможно некоректно включване на дисплеите и какъв е използвания порт i2c за разпознаване. Можете да премахнете проблема с помощта на опцията IgnoreDisplayDevices във файла за конфигуриране на Х (вж. приложение D).


Въпрос: Шрифтовете имат неправилни размери след инсталирането на драйвера NVIDIA.

Отговор: Неправилните размери обикновено са следствие от некоректно задаване на разширенията DPI (двойни пиксели на инч) в системата. Можете да проверите какво е зададено за физическото значение на монитора чрез :
 
# xdpyinfo | grep dimensions
 
Ще ви бъде съобщен размера в пиксели и милиметри. Ако тези данни са неверни трябва да се промени резолюцията на DPI за Х. Обърнете се към приложение Y за допълнителна информация.

Въпрос: Общи проблеми с чипсет на Ali.

Отговор: Има редица известни проблеми с времената за синхронизация и прекъсванията на сигнала в чипсетите на Ali. Следните съвети могат да помогнат да се повиши производителността на системата:
 
   o Включете опцията TURBO AGP MODE в BIOS на дънната платка.
   o Ако се използва платка P5A обновете BIOS до версия Revision 1002 BETA2.
   o Ако използвате версия на BIOS 1007, 1007A или 1009, настройте опцията  IO Recovery Time на 4 цикъла.  
   o Възможностите на AGP са изключени по подразбиране при някои чипсети ALi (ALi1541, ALi1647) с цел избягване проблеми със стабилноста на системата. Виж коментари            към опцията NVreg_EnableALiAGP в 'os-registry.c' за включване на  AGP.

Към съдържанието

Връзка с NVIDIA
NVIDIA предлата специфшчен форум по драйверите за ГНУ/Линукс. Можете да се обърнете към него, на сайта http://www.nvnews.net и от там да изберете връзките "Forum" и "Linux Discussion Area". Това е първото по рода си място, където можете да се обърнете за помощ; потребителите могат да задават въпроси, отговарят на въпроси на други потребители и прегледат архив от съобщения.

Ако нищо не помага, можете да потърсите помощ от поддръжката на NVIDIA на linux-bugs@nvidia.com. Но моля да пишете само след като прегледате Глава 4 и Глава 5 на този документ. Също така да сте потърсили помощ на форума на nvnews.net. При писането на писмо до linux-bugs@nvidia.com, моля, прикрепете файла 'nvidia-bug-report.log', създаван от скрипта 'nvidia-bug-report.sh' (това е лог файла от инсталирането на драйвера).



Допълнителни сведения
Linux OpenGL ABI
http://oss.sgi.com/projects/ogl-sample/...

Проект XFree86
http://www.xfree86.org/

XFree86 Video Timings HOWTO
http://www.tldp.org/HOWTO/XFree86-Video...

Организация X.org
http://www.x.org/

OpenGL
http://www.opengl.org/


Съвети за начинаещи потребители на ГНУ/Линукс
Този документ е написан в такъв стил, който предполага, че читателите имат някакви представи за особеностите на ГНУ/Линукс. В тази Глава 8 се съдържат съвети, които могат да бъдат полезни за начинаещите потребители. Тези съвети и тяхното предназначение са да подготвят потребителя за инсталирането и настройката на драйвера на NVIDIA под ГНУ/Линукс, но в никакъв случай не следва да се разглеждат като пособие по администриране на ГНУ/Линукс системи. За разлика от болшинството „десктоп” системи в ГНУ/Линукс можете да нанесете непоправими повреди на системата. Ако не притежавате достатъчно познания за използването на ГНУ/Линукс, по-добре се обърнете към обучаващата документация на Вашия дистрибутив преди да продължите.

- команден ред

Новите дистрибуции на ГНУ/Линукс притежават графичен интерфейс за десктоп, но значителна работа в ГНУ/Линукс може да се извършва в команден ред. Ако сте запознат със системата Windows, то командния ред в ГНУ/Линукс прилича на този в Windows. Но синтаксиса и използваните команди се различават коренно. Всичките команди в тази глава се изпълняват в команден ред(конзола). Някои системи са настроени за стартиране в режим на конзола, и в този случай на потребителя се предлага да стартира Х директно от конзолата. Други пък са настроени да се стартира директно Х, и в този случай ползвателя е длъжен ръчно да отвори терминалния прозорец. Обикновено това може да стане чрез стартиране от менюто на десктопа. В зависимост от настройките конзолния прозорец съдържа малко или повече информация като в началото има един символ '#', '$', или '%', и курсора обикновено мига, като показва мястото за текстов вход.

- преглед структурата на директориите

ГНУ/Линукс има йерархична структура на директориите. Във всяко място от нея командата 'ls' показва съдържанието на директорията. Командата “file” извежда типовете файлове в директорията. Например:

# file filename

извежда типове файлове 'filename'. Промяна на директорията става с командата 'cd':

# cd dirname

Сменя текущата директория на 'dirname'. В повечето пъти командата 'pwd' извежда името на текущата директория. Има две специални директории, '.' и '..', които съответстват на текущата и на по всисшата съответно. За всяка команда изискваща име на файла или директория можете да зададете различни аргументи или относителни пътища за този обект. Абсолютния път започва със символа „/”, обозначаващ коренова или най-горна структура на директорията. Относителния път започва с директория, намираща се в текущата работна директория.  Относителния път може да започва '.' или '..'. Обектите в пътищта се разделят със символа "/". Например, ако текущата директория е '/home/jesse', и потребителя иска да премине в '/usr/local', то той може да използва всяка от следните команди:

# cd /usr/local

или

# cd ../../usr/local


Права за достъп и собственост на файловете

Всички файлове и директории имат права за достъп на потребителя и собственост, асоциирана с тях. Това се използва за предотвратяване случайното или преднамереното повреждане на системата от потребители, които не са администратори. Правата върху даден файл могат да бъдат определени с помощта на ключа –l за командата ls. Например:

# ls -l
drwxr-xr-x 2 jesse users 4096 Feb 8 09:32 bin
drwxrwxrwx 10 jesse users 4096 Feb 10 12:04 pub
-rw-r--r-- 1 jesse users 45 Feb 4 03:55 testfile
-rwx------ 1 jesse users 93 Feb 5 06:20 myprogram
-rw-rw-rw- 1 jesse users 112 Feb 5 06:20 README
#

Първата колонка от символи и първото поле извежда типа на файла, където 'd' – директория, а '-' – обикновен файл. Следващите девет колони показват правата върху (вж. надолу) файла. Второто поле показва броя на файловете, асоциирани с този елемент, третото – собственика, четвъртото групата на собственика с който файла е асоцииран, петото размер на файла, шестото, седмото и осмото – времето на последното изменеие на файла и деветото е името на обекта.
Както беше казано вече последните девет колонки в първото поле показват правата на достъп към обекта. Тези колонки са групирани по три, първата показва правата на потребителя, втората на групата на потребителя асоциирана с елементите и третата правата на всички останали. Символите 'r', 'w', и 'x' – съответно права за четене (read), запис (write) и изпълнение (execute). Например, потребителя  'jesse' има права за четене и запис на файла 'testfile', потребителите от групата 'users' имат права само за четене, и всички останали имат права само за четене. За файла 'myprogram', 'jesse' има права  четене, запис и изпълнение (подразбира се че 'myprogram' – е изпълним файл), докато групата ‘users' и всички останали нямат никакви права (подразбира се че потребителя не иска никой друг освен него да не изпълнява програмата). Правата на собственика и групата могат да бъдат променяни с командата 'chmod'(за атрибути), 'chown'(за собственик) и 'chgrp' (за група съответно) . Ако потребителя със съответните пълномощия иска да смени собственика на файла 'README' от jesse/users на joe/admin, той трябва да изпълни следните команди:

# chown joe README
# chgrp admin README

Синтаксиса на командата chmod е малко по сложен и има няколко вариации.
Най-краткия път за установяване правата върху даден обект е използването на тройка цифри, по един за потребителя, групата и всички останали. Значението на всяка цифра от трите се отнася за комбинация от права за четене, запис и стартиране. Изпълнението се асоциира с 1, записа с 2 и четенето с 4. Съчетанието от тези права се представя във вид на сума от отделните права. Четенето и изпълнението се представят като 5[4(четене)+1(изпълнение)], тогава при четене изпълнение и запис ще има (4+2+1)=7. Отсъствието на права се представя като 0. В този смисъл, за да се дадат на потребителя права за четене, запис и изпълнение, а на другите никакви права потребителя трябва да даде следната команда:

# chmod 750 myprogram

7- потребител=[4(четене)+2(запис)+1(изпълнение)]
5- група=[4(четене)+1(изпълнение)]
0- вс. останали= [0]


Шел

Шела е интерфейса между потребителя и операционната система. Задачата на шела е да интерпретира информацията, въведена от потребителя и да укаже на системата какво да изпълни в отговор.Има няколко различни шела, всеки се отличава от другите по възможности и синтаксис. Две от най често използваните в ГНУ/Линукс са Bourne shell ('sh'), и  C-shell ('csh'). Различните потребители имат своите предпочитания към един от двата. Можете сам да изберете разберете своя шел чрез въвеждане на командата 'SHELL':

# echo $SHELL

Можете да пуснете нов шел ако напишете:

# csh

или

# sh

Можете да стартирате програма от шел чрез:

# sh myprogram

Шел по подразбиране е зададен с влизането на системата и е определен от този, който е създавал акаунта. Въпреки, многото различия в синтаксиса на шела един от най – често срещаните методи е – метод за настройки на обкръжаващата променлива.

Настройка на променливите на средата(SETTING ENVIRONMENT VARIABLES)

Всяка сесия има асоциирани свои променливи на средата, представляващи двойка от име/значение и задаващи поведението на стартираните програми и шела. Пример е променливата 'PATH', която задава на шел директориите за търсене на изпълнимите файлове, въведени от потребителя в командния ред. Ако сте уверен в наличието на програми/команди, но шел казва че не може да ги намери изпълни, въпреки всичко то тогава това е проблем с променливата 'PATH'. Променливите на средата имат различни възможности от в зависимост от шела за Bourne shell ('sh') това се прави по този начин:

# export MYVARIABLE="avalue"

Тогава за  C-shell:

# setenv MYVARIABLE "avalue"

В повечето случаи кавичките са нужни само ако значението съдържа интервал. Командата 'echo' може да се използва за разглеждане на обкръжаващите променливи:

# echo $MYVARIABLE

Командите за настройка значението на обкръжаващите променливи могат също да включват връзки на други променливи(започващи със символа $), включително и към себе си. За да добавите пътя '/usr/local/bin' в началото на пътя за търсене, а текущата директория в края на пътя за търсене трябва да добавите следното:
# export PATH=/usr/local/bin:$PATH:.

в Bourune Shell, и

# setenv PATH /usr/local/bin:${PATH}:.

в С - Shell. Обърнете внимание, че указателните скоби са необходими за защита на променливата в С-Shell.

Редактиране на текстови файлове.

Съществуват различни редактори за ГНУ/Линукс . Някои от тях изискват Х среда, други обаче работят в терминал. Като цяло обаче е  добре да имате опит с редакторите за терминал, тъй като понякога се налага да се настройва конфигурационния файл на Х извън самата Х среда. Три от най – популярните редактори за терминал са - 'vi', 'pico' и 'emacs', всеки от тях може да бъде стартиран от команден ред, с добавяне името на файла който се редактира. Редактора 'vi', се явява най популярния, както и най – понятния от другите два. Редактора 'pico' е достъпен и понятен за начинаещия потребител, но често не е инсталиран в системата. Ако рico не е инсталиран във Вашата система, то можете да пробвате сходния редактор 'nano'. Редактора 'emacs' е широко разпространен и много гъвкав, но може да се окаже прекалено „тежък” за не-Х среди. Новите версии на всеки редактор съдържат помощ, допълнителна информация която може да бъде намерена в ръководството за потребителя и на сайта на програмата (обърнете се към съответстващия раздел Ръководство на потребителя за ГНУ/Линукс по - нататък). Много програми използват променливата 'EDITOR' за определяне редактора по подразбиране и е необходимо да се настрои ръчно ако се иска друг редактор.

Потребител ROOT

След инсталирането, всички дистрибуции създават потребител с пълни права по подразбиране наречен 'root'. Много неща в системата могат да се правят само от него или от потребител с такива права, едно от тези неща е инсталацията на драйвера на NVIDIA. Длъжни сме да предупредим че използването на този акаунт съдържа елемент на риск, тъй като работата под 'root' много лесно може да изведе системата в аварийно състояние или направо да я повреди. Има три способа за работа с правата на 'root'. Можете да влезете в системата чрез правата на суперпотребителя както влизате с другия потребител, можете да се възползвает от превключването на потребителя чрез командата 'su'(super user) в конзола или пък с командата “sudo”(super user do), която позволява стартирането на приложения като суперпотребител и съответната им работа, която остава съхранена. Последния метод е особено полезен в случаи, когато потребителя е повредил системата и не може да си спомни какво е правил(или не си признава). Добре е да се знае, че правата на 'root' се използват само по време на изпълняването на задачите, които ги изискват но не и да се работи със системата с такива права. Ето защо командата 'sudo' е толкова полезна.

Буутване в различни равнища на изпълнение.

Нивата на изпълнение (Runlevels) в ГНУ/Линукс определят, какви услуги се стартират и завършват автоматично при зареждането или спирането на системата. Нивата на изпълнение обикновено лежат в диапазона от 0 до 6, с ниво на изпълнение 5 обикновено се стартира Х сървъра. С ниво 0 се стартира спиране на системата а с ниво 6 се стартира презареждоне на системата. Добра идея е да се инсталира драйвера  NVIDIA за ГНУ/Линукс при изключен Х, също така е полезно да се спре автоматичния старт на Х в случай на проблем с инсталацията (възможно е да се сблъскате със ситуация, когато неизправната система се опива отново да пусне Х и забива, като не дава възможност да направите необходимите настройки на средата). В зависимост от настройката на мрежата ниво на изпълнени от 1, 2 или 3 са достатъчни за инсталиране на драйвера. При ниво 3 обикновено се включват мрежовите услуги, тоест ако ви се наложи да теглите допълнителни библиотеки от интернет то нива 1 и 2 няма да Ви свършат работа. Ако системата се зарежда в конзолен режим не трябва да настройвате никакви нива на изпълнение. Ако системата се зарежда директно в Х среда то трябва да излезете от него и да смените нивото на изпълнение по подразбиране.

В повечето дистрибуции нивото на изпълнение по подразбиране се намира във файла '/etc/inittab', въпреки това проверете документацията към дистрибуцията. Реда зареждаш нивото на изпълнение изглежда така:

id:n:initdefault:

или подобно където "n" – ниво на изпълнение. Файла '/etc/inittab' може да се редактира само с права на root. Обърнете се към раздела за редактиране на файлове и секцията root ако това понятие ви е непознато. Също така се препоръчва да се създаде резервен файл преди поправките, ако случайно повредите файла. Това можете да направите така:

# cp /etc/inittab /etc/inittab.original

Реда може да бъде редактиран така, че нивото на изпълнение да стане по подразбиране (1, 2, или 3 в повечето системи):

id:3:initdefault:

След записване на измененията излезте от Х. След инсталиране на драйвера можете да върнете нивото по подразбиране в началното състояние чрез редактиране на '/etc/inittab' отново, или да възстановим резервното копие.

Различните дистрибуции предлагат различни способи за изход от Х. В повечето системи програмата 'init' изменя текущото ниво на изпълнение. Тя може да бъде използвана за тези изменения и при такива когато средата Х не се стартира чрез:

# init 3

Има и други начини за изхода от Х, за тях се обърнете към документацията на дистрибуцията.

Ръководства и информационни страници за ГНУ/Линукс

Ръководствата или информационните страници обикновено се инсталират в процеса на инсталация на системата. Тези документи обикновено са достатъчно нови и съдържат изчерпателна информация за използането на системните програми и скриптове. Така също много програми поддържат ключ за информаця --help, който извежда списък с типични опции за програмата. За преглеждане на ръководството на една програма или команда е необходимо да напишете в конзола:

# man commandname

където commandname – интересващата Ви команда. Същото е и с

# info commandname

ще изведе информация за командата. В зависимост от приложението, едни от способите може да дадат по актуална информация. Интерфейс на информационната система е интерактивен и съдържа средства за навигация. Ако не можете да намерите страници с ръководства за програмата то можете да добавите допълнителни обекти в променливата на обкръжението 'MANPATH'. Обърнете се към секцията за  променливи на обкръжението

- Забележки-

[1] Windows – регистрирана търговска марка на Microsoft в САЩ и другите страни.


Към съдържанието
Благодарности
'nvidia-installer' е създадена под влияние на инструмента 'loki_update' : http://www.lokigames.com/development/lo...

Поддръжката на FTP и HTTP в 'nvidia-installer' основана на решенията  'snarf 7.0':
http://www.xach.com/snarf/

Саморазрхивиращия се архив ('.run' файл) е създаден с помощта на скрипта  'makeself.sh': http://www.megastep.org/makeself/.

Логотипа на драйвера при зареждането се кодира с помощта на библиотеката 'libpng': http://libpng.org/pub/png/libpng.html

Драйвера съдържа програмен код от модула int10 на проекта X.Org.

BSD-варианти следващи инструкциите на компилатора се използват за подобряване на съвместимостта: __udivdi3, __umoddi3, __moddi3, __ucmpdi2, __cmpdi2, __fixunssfdi, and __fixunsdfdi.


Приложение А
Поддържани графични чипове
За по-пълен и точен списък на поддържаните графични чипове се обърнете към списъка с поддържано оборудване на страницата на драйвера за ГНУ/Линукс. Отидете на страница http://www.nvidia.com/object/unix.html, изберете «Archive» под надписа Linux x86, изберете линка за нужната версия на драйвера и отидете на «Supported Products List».

   Название чипа NVIDIA                  Device PCI ID
   ----------------------------------    ----------------------------------
   GeForce 6800 Ultra                    0x0040
   GeForce 6800                          0x0041
   GeForce 6800 XE                       0x0043
   GeForce 6800 XT                       0x0044
   GeForce 6800 GT                       0x0045
   GeForce 6800 GT                       0x0046
   GeForce 6800 GS                       0x0047
   GeForce 6800 XT                       0x0048
   Quadro FX 4000                        0x004E
   GeForce 7800 GTX                      0x0090
   GeForce 7800 GTX                      0x0091
   GeForce 7800 GT                       0x0092
   GeForce 7800 GS                       0x0093
   GeForce Go 7800                       0x0098
   GeForce Go 7800 GTX                   0x0099
   Quadro FX 4500                        0x009D
   GeForce 6800 GS                       0x00C0
   GeForce 6800                          0x00C1
   GeForce 6800 LE                       0x00C2
   GeForce 6800 XT                       0x00C3
   GeForce Go 6800                       0x00C8
   GeForce Go 6800 Ultra                 0x00C9
   Quadro FX Go1400                      0x00CC
   Quadro FX 3450/4000 SDI               0x00CD
   Quadro FX 1400                        0x00CE
   GeForce 6800 GT/GeForce 6800 Ultra    0x00F0
   GeForce 6600 GT                       0x00F1
   GeForce 6600                          0x00F2
   GeForce 6200                          0x00F3
   GeForce 6600 LE                       0x00F4
   GeForce 7800 GS                       0x00F5
   GeForce 6800 GS                       0x00F6
   Quadro FX 3400/4400                   0x00F8
   GeForce 6800 Ultra                    0x00F9
   GeForce PCX 5750                      0x00FA
   GeForce PCX 5900                      0x00FB
   Quadro FX 330/GeForce PCX 5300        0x00FC
   Quadro NVS 280 PCI-E/Quadro FX 330    0x00FD
   Quadro FX 1300                        0x00FE
   GeForce PCX 4300                      0x00FF
   GeForce 6600 GT                       0x0140
   GeForce 6600                          0x0141
   GeForce 6600 LE                       0x0142
   GeForce 6600 VE                       0x0143
   GeForce Go 6600                       0x0144
   GeForce 6610 XL                       0x0145
   GeForce Go 6600 TE/6200 TE            0x0146
   GeForce 6700 XL                       0x0147
   GeForce Go 6600                       0x0148
   GeForce Go 6600 GT                    0x0149
   Quadro NVS 440                        0x014A
   Quadro FX 550                         0x014C
   Quadro FX 540                         0x014E
   GeForce 6200                          0x014F
   GeForce 6500                          0x0160
   GeForce 6200 TurboCache(TM)           0x0161
   GeForce 6200 LE                       0x0163
   GeForce Go 6200                       0x0164
   Quadro NVS 285                        0x0165
   GeForce Go 6400                       0x0166
   GeForce Go 6200                       0x0167
   GeForce Go 6400                       0x0168
   GeForce 8800 GTX                      0x0191
   GeForce 8800 GTS                      0x0193
   GeForce 7300 LE                       0x01D1
   GeForce 7300 SE                       0x01D3
   Quadro NVS 110M/GeForce Go 7300       0x01D7
   GeForce Go 7400                       0x01D8
   Quadro NVS 110M                       0x01DA
   Quadro NVS 120M                       0x01DB
   Quadro FX 350M                        0x01DC
   Quadro FX 350                         0x01DE
   GeForce 7300 GS                       0x01DF
   GeForce 6800                          0x0211
   GeForce 6800 LE                       0x0212
   GeForce 6800 GT                       0x0215
   GeForce 6800 XT                       0x0218
   GeForce 6200                          0x0221
   GeForce 6150                          0x0240
   GeForce 6150 LE                       0x0241
   GeForce 6100                          0x0242
   GeForce Go 6100                       0x0247
   GeForce4 Ti 4600                      0x0250
   GeForce4 Ti 4400                      0x0251
   GeForce4 Ti 4200                      0x0253
   Quadro4 900 XGL                       0x0258
   Quadro4 750 XGL                       0x0259
   Quadro4 700 XGL                       0x025B
   GeForce 7900 GTX                      0x0290
   GeForce 7900 GT/GTO                   0x0291
   GeForce 7900 GS                       0x0292
   GeForce 7950 GX2                      0x0294
   GeForce Go 7900 GS                    0x0298
   GeForce Go 7900 GTX                   0x0299
   Quadro FX 2500M                       0x029A
   Quadro FX 1500M                       0x029B
   Quadro FX 5500                        0x029C
   Quadro FX 3500М                       0x029D
   Quadro FX 1500                        0x029E
   Quadro FX 4500 X2                     0x029F
   GeForce 7600 GS                       0x02E1
   GeForce FX 5800 Ultra                 0x0301
   GeForce FX 5800                       0x0302
   Quadro FX 2000                        0x0308
   Quadro FX 1000                        0x0309
   GeForce FX 5600 Ultra                 0x0311
   GeForce FX 5600                       0x0312
   GeForce FX 5600XT                     0x0314
   GeForce FX Go5600                     0x031A
   GeForce FX Go5650                     0x031B
   Quadro FX Go700                       0x031C
   GeForce FX 5200                       0x0320
   GeForce FX 5200 Ultra                 0x0321
   GeForce FX 5200                       0x0322
   GeForce FX 5200LE                     0x0323
   GeForce FX Go5200                     0x0324
   GeForce FX Go5250                     0x0325
   GeForce FX 5500                       0x0326
   GeForce FX 5100                       0x0327
   GeForce FX Go5200 32M/64M             0x0328
   Quadro NVS 55/280 PCI                 0x032A
   Quadro FX 500/600                     0x032B
   GeForce FX Go53xx                     0x032C
   GeForce FX Go5100                     0x032D
   GeForce FX 5900 Ultra                 0x0330
   GeForce FX 5900                       0x0331
   GeForce FX 5900XT                     0x0332
   GeForce FX 5950 Ultra                 0x0333
   GeForce FX 5900ZT                     0x0334
   Quadro FX 3000                        0x0338
   Quadro FX 700                         0x033F
   GeForce FX 5700 Ultra                 0x0341
   GeForce FX 5700                       0x0342
   GeForce FX 5700LE                     0x0343
   GeForce FX 5700VE                     0x0344
   GeForce FX Go5700                     0x0347
   GeForce FX Go5700                     0x0348
   Quadro FX Go1000                      0x034C
   Quadro FX 1100                        0x034E
   GeForce 7600 GT                       0x0391
   GeForce 7600 GS                       0x0392
   GeForce 7300 GT                       0x0393
   GeForce Go 7600                       0x0398
   Quadro FX 560                         0x039E

  По-долу са изписани устройствата, които вече не се поддържат от унифицираните драйвери. Тяхната поддръжка се осъществява чрез специално издание на версиите на драйвера.

Драйвери версии 1.0-96xx поддържат следните графични процесори:

   Название чипа NVIDIA                  Device PCI ID
   ----------------------------------    ----------------------------------
   GeForce2 MX/MX 400                    0x0110
   GeForce2 MX 100/200                   0x0111
   GeForce2 Go                           0x0112
   Quadro2 MXR/EX/Go                     0x0113
   GeForce4 MX 460                       0x0170
   GeForce4 MX 440                       0x0171
   GeForce4 MX 420                       0x0172
   GeForce4 MX 440-SE                    0x0173
   GeForce4 440 Go                       0x0174
   GeForce4 420 Go                       0x0175
   GeForce4 420 Go 32M                   0x0176
   GeForce4 460 Go                       0x0177
   Quadro4 550 XGL                       0x0178
   GeForce4 440 Go 64M                   0x0179
   Quadro NVS                            0x017A
   Quadro4 500 GoGL                      0x017C
   GeForce4 410 Go 16M                   0x017D
   GeForce4 MX 440 with AGP8X            0x0181
   GeForce4 MX 440SE with AGP8X          0x0182
   GeForce4 MX 420 with AGP8X            0x0183
   GeForce4 MX 4000                      0x0185
   Quadro4 580 XGL                       0x0188
   Quadro NVS 280 SD                     0x018A
   Quadro4 380 XGL                       0x018B
   Quadro NVS 50 PCI                     0x018C
   GeForce2 Integrated GPU               0x01A0
   GeForce4 MX Integrated GPU            0x01F0
   GeForce3                              0x0200
   GeForce3 Ti 200                       0x0201
   GeForce3 Ti 500                       0x0202
   Quadro DCC                            0x0203
   GeForce4 Ti 4600                      0x0250
   GeForce4 Ti 4400                      0x0251
   GeForce4 Ti 4200                      0x0253
   Quadro4 900 XGL                       0x0258
   Quadro4 750 XGL                       0x0259
   Quadro4 700 XGL                       0x025B
   GeForce4 Ti 4800                      0x0280
   GeForce4 Ti 4200 with AGP8X           0x0281
   GeForce4 Ti 4800 SE                   0x0282
   GeForce4 4200 Go                      0x0286
   Quadro4 980 XGL                       0x0288
   Quadro4 780 XGL                       0x0289
   Quadro4 700 GoGL                      0x028C

Драйвери версии 1.0-71xx подържат следните графични процесори:

   Название чипа NVIDIA                  Device PCI ID
   ----------------------------------    ----------------------------------
   RIVA TNT                                        0x0020
   RIVA TNT2/TNT2 Pro                    0x0028
   RIVA TNT2 Ultra                             0x0029
   Vanta/Vanta LT                                0x002C
   RIVA TNT2 Model 64/Model 64 Pro       0x002D
   Aladdin TNT2                          0x00A0
   GeForce 256                           0x0100
   GeForce DDR                           0x0101
   Quadro                                0x0103
   GeForce2 GTS/GeForce2 Pro             0x0150
   GeForce2 Ti                           0x0151
   GeForce2 Ultra                        0x0152
   Quadro2 Pro                           0x0153


Към съдържанието
Приложение Б
 Минимални изисквания

   Програмен компонент    Минимални изисквания       Проверка с помощта на:
   ---------------------              ---------------------                        ---------------------
   Ядро Linux kernel                         2.4.7                                         `cat /proc/version`
   XFree86/Xorg                              4.0.1/6.7                                    `XFree86
                                                                                                         -version/Xorg
                                                                                                        -version`
   Инструмент modutils                   2.1.121                                    `insmod -v`



Има необходимо да съберете свой модул трябва да имате следните компоненти:

   Програмен компонент            Минимални изисквания       Проверка с помощта на:
   ---------------------                      ---------------------              ---------------------
   binutils                                            2.9.5                                      `size --version`
   GNU make                                    3.77                                       `make --version`
   gcc                                                2.91.66                                  `gcc --version`
   glibc                                              2.0                                          `ls /lib/libc.so.* >6`



Ако го правите от соурс кода на RPM:

   Програмен компонент                    Проверка с помощта на:
   ----------------------------------    ----------------------------------
   spec-helper rpm                                         `rpm -qi spec-helper`



Всички официални реализации на кернел от 2.4.0 нагоре се поддържат, предварителни версии обаче като "2.4.3-pre2", не се се поддържат, също така това се отнася за версии на разработчиците, като 2.3.x или 2.5.x. Ядрото Линукс може да бъде свалено от http://www.kernel.org или негово огледало.

Компонентите binutils и gcc може да свалите от  http://www.gnu.org или негово огледало.

Ако се използва интерфейса XFree86, но отсъства файла '/var/log/XFree86.0.log', то това означава, че преди всичко, се използва версия 3.x XFree86, и е необходимо обновяване.

Ако инсталирате XFree86 версия 4.x за първи път, по добре е да започнете с един от драйверите с отворен код, включени в комплекта XFree86 ("nv", "vga" или "vesa"). След това когато XFree86 започне нормално да работи с тези драйвери, тогава можете да започнете с инсталацията на NVIDIA.

Обърнете внимание, че новите графични процесори NVIDIA може да работят със старите версии на драйвера "nv" от ХFree86. Например, драйвера "nv" от XFree86 версия 4.0.1 не разпознава видеокартите GeForce2 и Quadro2 MXR. Това обаче е оправено във XFree86 версия 4.0.2. Интерфейс XFree86 може да бъде свален от http://www.xfree86.org.

Тези програмни пакети може да се получат от доставчика на дистрибуцията.


Към съдържанието

Приложение С
Инсталирани компоненти.

Драйвера NVIDIA ГНУ/Линукс съдържа следните инсталиращи се компоненти (имената на файловете веднага след инсталирането са написани в скоби; "x.y.z" означават текущата версия на файла.  В този случай съответстващите символни връзки се установяват веднага след инсталацията):

o Драйвер за X (/usr/X11R6/lib/modules/drivers/nvidia_drv.so); трябва на Х сървъра за да използва хардуера на NVIDIA.
o GLX ръзширение за X.
(/usr/X11R6/lib/modules/extensions/libglx.so.x.y.z); този модул се използва в Х сървъра за осигуряване на GLX поддръжката за Х.
o Библиотека OpenGL (/usr/lib/libGL.so.x.y.z); представлява точка за вход на всички OpenGL и GLX извиквания. С нея се свързват всички OpenGL приложения по време на изпълнението.
o Основна библиотека OpenGL (/usr/lib/libGLcore.so.x.y.z); използва се от библиотеките libGL и libglx. Съдържа основните функции за апаратното 3D ускорение. Не следва да зареждате тази библиотека през файла за конфигуриране на Х – с това се занимава libglx.
o Две библиотеки XvMC (компенсации в X-видео движения): статистическа библиотека и обща библиотека (/usr/X11R6/lib/libXvMCNVIDIA.a,/usr/X11R6/lib/libXvMCNVIDIA.so.x.y.z); обърнете се към приложение N за допълнителна информация.
o Модул за ядрото (/lib/modules/`uname -r`/video/nvidia.o или /lib/modules/`uname -r` /kernel/drivers/video/nvidia.o); този модул предоставя модул за достъп на ниско ниво към Вашия харудер за всичките по нататъшни компоненти. Обикновено той се зарежда в ядрото при стартирането на Х-сървъра, и се използва от Х и OpenGL. Модула nvidia.o се състои от две части: изпълнимо ядро и интерфейс към ядрото, който трябва да бъде компилиран специално за използваното ядро. Обърнете внимание, че ядрото на ГНУ/Линукс не съдържа първичен интерфейс както Х например. Така, че е важно версията на модула да е тази която подхожда за вашето ядро. Можете да постигнете това чрез ръчно прекомпилиране на ядрото или като използвате предварително компилирани ядра, влизащи в състава на популярните дистрибуции.
o Хидър файлове на OpenGL и GLX (/usr/include/GL/gl.h, /usr/include/GL/glext.h, /usr/include/GL/glx.h, и /usr/include/GL/glext.h); се инсталират в /usr/share/doc/NVIDIA_GLX-1.0/include/GL/. Можете да изключите инсталацията на тези файлове в /usr/include/GL/ с помощта на "--no-opengl-headers" при стартиране на .run файла.
o Библиотеки nvidia-tls (/usr/lib/libnvidia-tls.so.x.y.z и /usr/lib/tls/libnvidia-tls.so.x.y.z); тези файлове са локалните хранилища за процедурите на OpenGL библиотеките  NVIDIA (libGL, libGLcore, и libglx). Всяка библиотека nvidia-tls съдържа поддръжка на определен модел процедури (като ELF TLS), и една от тях подходяща за вашата система, се зарежда по време на изпълнението.
o Приложение nvidia-installer (/usr/bin/nvidia-installer) явява се инструмент от NVIDIA за инсталиране и обновяване на драйверите. Обърнете се към Глава 2 за допълнителна информация.

Проблеми възникват когато приложението неправилно използва друга версия на библиотеките. Такива може да възникнат при стари библиотеки libGL или стари символни връзки. Ако подозирате че нещо не както трябва, по време на инсталацията на драйвера, проверете за наличие на следните файлове и символни връзки (това са всички файлове на драйвера и символни връзки):

   /usr/X11R6/lib/modules/drivers/nvidia_drv.so
   /usr/X11R6/lib/modules/extensions/libglx.so.x.y.z
   /usr/X11R6/lib/modules/extensions/libglx.so -> libglx.so.x.y.z

(също може да бъдат в /usr/lib/modules или /usr/lib/xorg/modules)

   /usr/lib/libGL.so.x.y.z
   /usr/lib/libGL.so.x -> libGL.so.x.y.z
   /usr/lib/libGL.so -> libGL.so.x
   /usr/lib/libGLcore.so.x.y.z
   /usr/lib/libGLcore.so.x -> libGLcore.so.x.y.z

   /lib/modules/`uname -r`/video/nvidia.o, or
   /lib/modules/`uname -r`/kernel/drivers/video/nvidia.o

Ако има библиотеки с имена близки до NVIDIA, инструмента ldconfig може да е създала неправилни символни връзки. Препоръчва се да се преименуват или изтрият конфликтните библиотеки(убедете се, че новите имена на библиотеките не съвпадат с тези които търси ldconfig  - добавянето на "XXX" към името на библиотеката обикновено сработва), презаредете 'ldconfig', и проверете, че са създадени правилните символни връзки. Библиотеките които често създават конфликти са
"/usr/X11R6/lib/libGL.so*"
и
"/usr/X11R6/lib/libGLcore.so*".

Ако библиотеките са в ред, убедете се че приложението използва правилните библиотеки. Например за да проверите че приложението  /usr/X11R6/bin/glxgears на използва библиотеките на NVIDIA, изпълнете командата:

   # ldd /usr/X11R6/bin/glxgears
       linux-gate.so.1 =>  (0xffffe000)
       libGL.so.1 => /usr/lib/libGL.so.1 (0xb7ed3000)
       libXp.so.6 => /usr/lib/libXp.so.6 (0xb7eca000)
       libXext.so.6 => /usr/lib/libXext.so.6 (0xb7eb9000)
       libX11.so.6 => /usr/lib/libX11.so.6 (0xb7dd4000)
       libpthread.so.0 => /lib/libpthread.so.0 (0xb7d82000)
       libm.so.6 => /lib/libm.so.6 (0xb7d5f000)
       libc.so.6 => /lib/libc.so.6 (0xb7c47000)
       libGLcore.so.1 => /usr/lib/libGLcore.so.1 (0xb6c2f000)
       libnvidia-tls.so.1 => /usr/lib/tls/libnvidia-tls.so.1 (0xb6c2d000)
       libdl.so.2 => /lib/libdl.so.2 (0xb6c29000)
       /lib/ld-linux.so.2 (0xb7fb2000)

Проверете файловете, използвани за libGL и libGLcore – ако това не са библиотеки на NVIDIA, то трябва да изтриете тези файлове или да използвате променливата 'LD_LIBRARY_PATH' за търсене на правилните библиотеки. Може да използвате инфо страницата на 'ldconfig' и 'ldd'.


Към съдържанието

Приложение D
Опции за настройка на Х.

Следните настройки се поддържат от драйверите NVIDIA за X-интерфейса. Те могат да бъдат въведени в секция Screen или Device във файла за конфигуриране на Х.

Опции за настройки на X

Option "NvAGP" "цяло число"

Настройка поддръжката на AGP. Може да приема целочислено измерение:
 
       Значение          Поведение
       --------------    ---------------------------------------------------
       0                 изключен AGP
       1                 използва вътрешна поддръжка на AGP NVIDIA, ако е възможно
       2                 използване на AGPGART, ако е възможно
       3                 използване на всякаква AGP поддръжка (отначало се
                          използва AGPGART, после NVIDIA AGP)
 
Обърнете внимание, че AGP NVIDIA не може да работи ако AGPGART е компилиран в състава на кернела или пък е събран като модул и зареден в кернел. Обърнете се към Приложенеи F за допълнителна информация. Значението по подразбиране е : 3.

Option "NoLogo" "логическа"

Изключва логото на NVIDIA при стартирането на Х по подразбиране : логотипа се извежда на екрана.

Option "LogoPath" "текстов ред"

Показва път към файла във формат PNG, използван като лого по време на стартирането на Х. Ако във фалй PNG е зададено значение bKGD (цвят на фона), то екрана се оцветява в този цвят, иначе остава черен. Файла на логото трябва да бъде на потребителя root и трябва да е забранен за запис за потребители извън групата на root. Значението по подразбиране: използва се логото на NVIDIA.

Option "RenderAccel" "логическа"

Включва/изключва хардуерното ускорение RENDER разширение. Значение по подразбиране: апаратното ускорение RENDER разширение е включено.

Option "NoRenderExtension" "логическа"

Изключва разширението RENDER. Иначе при прекомпилиране на Х няма да позволи да бъде изключено. Важно е да може да се управлява тази функция на драйвера, така че ние я въведохме. Това е полезно при използване дълбочина на цвета 8-бит, когато RENDER обикновено заема много голяма част от паметта по подразбиране. Значение по подразбиране: RENDER – използва се при възможност.

Option "UBB" "логическа"

Включването или изключване използването на унифицирания буфер на заден план в графичните процесори Quadro (за Quadro4 NVS е изключен); обърнете се към приложение К за описание на UBB. Тази опция няма ефект за не-Quadro процесорите. Значение по подразбиране: UBB е включен за Quadro процесори.

Option "NoFlip" "логическа"

Изключване на превключването OpenGL (flipping); обърнете се към Приложение К за описание. Тази опция отключва функцията AllowFlipping на NV-CONTROL. Значение по подразбиране : OpenGL променя буфера на превключване когато това е възможно.

Option "Dac8Bit" "логическа"

Повечето продукти Quadro използват 10-битова таблица на цветовете (LUT) по-подразбиране; присвояването към тази опция на значение TRUE кара графичните процесори Quadro да използват 8-битова таблица LUT. Значение по подразбиране: Използва се 10-битова когато е възможно.

Option "Overlay" "логическа"

Включва RGB слоеве (overlays) за работни станции. Тази функция се доддържа само за графични процесори Quadro4 и Quadro FX (с изключение на Quadro4 NVS) при дълбочина на цвета 24-бита. Опцията заставя сървъра да съобщава за поддръжката на SERVER_OVERLAY_VISUALS прозореца и на GLX за поддръжката на еднократно и двукратното буферизиране,  Z-буферизиране 16-битови подложки. Код на прозрачноста - пиксел pixel 0x0000 (hex). Няма поддръжка на гама регулирането за покривната повърхност. Тази функция изисква XFree86 версия  4.1.0 или по–нова, или сървър Xorg X. Графичните процесори Quadro 500 и 550 XGL имат допълнителни ограничения: слоеве не се поддържат в режим TwinView или при размер на виртуален работен плот по широк от 2046 и по висок от 2047 пиксела.
Графичните процесори Quadro 7xx/9xx и Quadro FX поддържат слоев в този режим (TwinView, или виртуален работен плот повече от 2046x2047), но режимите ще бъдат емулирани със загуба на производителност.  RGB слой не се поддържа при използването на разширението Composite. Динамичната конфигурация на режима TwinView е изключена при включени слоеве. Значение по подразбиране: off.

Опция UBB трябва да бъде разрешена при включени слоеве (това поведение е по подразбиране).

Option "CIOverlay" "логическа"

Включва слой с индексиране на цветовата палитра с такива ограничения както и опцията по горе "Overlay". Сървъра ще съобщи за поддръжката на слоеве както с код за прозрачност така и без него. Това са псевдоцветни изображения с дълбочина на цвета 8-бит. Включването на индескирането на цветовата палитра на Х при версии по ниски от XFree86 4.3 води до изключването на разширението RENDER. Слоевете с индексирането на цветовата палитра не се поддържат при използването на разширението Composite. Значение по подразбиране: off.

Опция UBB трябва да е разрешена при разрешени слоеве(това е зададено по подразбиране).

Option "TransparentIndex" "цяло число"

При включване на цветовия индекс използвайте тази опция за избор на пикселите, използвани в качеството на прозрачност в обектите с прозрачни пиксели. Значението трябва да е в диапазона от 0 до 255(обърнете внимание, че някои приложения такива като Maya изискват този показател да е 0 за правилната работа). Значение по подразбиране: 0.

Option "OverlayDefaultVisual" "логическа"

При използване на слоеве тази опция полага основния слой в основата на другите. Не се перпоръчва за RGB слоеве. Значение по подразбиране: off.

Option "RandRRotation" "логическа"

Стартира поддръжката на ротация за XRandR. Това позволява да се използва Х с разширението XRandR за настройка ориентацията на екрана чрез въртене. Тази функция се поддържа от графичните процесори от GeForce2 нагоре при дълбочина на цвета 24 бита. Изисква се X.Org X 6.8.1 или по-висока версия на Х. Тази функция не работи с хардуерни слоеве и използването и с емулиране води до снижение на производителността. Обърнете се към приложение U за допълнителна информация. Значение по подразбиране: off.

Option "Rotate" "текстов ред"

Задейства поддръжката на статично въртене. За разлика от предната опция RandRRotation, тази опция работи веднага след стартирането на Х и в старите версии на сървъра. Тази функция се поддържа и от графичните процесори GeForce2 нагоре при дълбочина на цвета 24-бит. Тази функция не работи с хардуерни слоеве, което води до използването на емулиране и снижаване на производителността. Значение по подразбиране: off.

Option "AllowDDCCI" "логическа"

Включва протокол DDC/CI в разширението  NV-CONTROL X. DDC/CI - протокол за обмен на информация между компютъра и дисплея. Той позволява да се изменят настройките, които се променят от екранното меню на монитора. Обърнете се към списъка с признаци DDC/CI NV-CONTROL в 'NVCtrl.h' и функцията в NVCtrlLib.h' в изходния текст на инструмента 'nvidia-settings'. Значение по подразбиране: off
(протокол DDC/CI изключен).

Option "SWCursor" "логическа"

Включва/изключва използването на програмното рендване на Х курсора. Значение по подразбиране: off.

Option "HWCursor" "логическа"

Включва/изключва използването на хардуерното рендване на Х курсора. Значение по подразбиране: on.

Option "CursorShadow" "логическа"

Включва/изключва хардуерното рендването на сянката за курсора. Това е тъмно полу-прозрачно очертание на курсора извеждано при някои теми. Значение по подразбиране: off (без сянка).

Option "CursorShadowAlpha" "цяло число"

Степента на прозрачност на сянката на курсора, само ако е включена опцията CursorShadow. Значението трябва да е в диапазона 0 до 255, където 0 е напълно прозрачна сянка 255 пълна непрозрачност. Значение по подразбиране: 64.

Option "CursorShadowXOffset" "цяло число"

Смесване на пиксели, попадащи в сянката на курсора. Тоест тези които попадат от дясно на курсора се смесват със сянката му, само ако е включена CursorShadow. Значение от 0 - 32. Значение по подразбиране: 4.

Option "CursorShadowYOffset" "цяло число"

Смесване на пикселите, попадащи в сянката на курсора. Тези които попадат от долната страна на курсора, само ако е включена CursorShadow. Значение от 0 - 32. Значение по подразбиране: 2.

Option "ConnectedMonitor" "текстов ред"

Позволява да се пре-определят устройствата, разпознати от модула на драйвера и включени към видеокартата. Това може да е полезно, ако се използвате КВМ(клавиатура, видео, мишка) превключвател и го изключите. Тогава модула не познава липсата му и счита че е включен само един монитор.
Допустими значения за тази опция са  "CRT" (електронно лъчев монитор), "DFP" (цифров плосък монитор), или "TV" (телевизор); ако се използва TwinView, тази опция може да има значение във вида за изброяване на устройствата разделени със запетая. Например: "CRT, CRT" или "CRT, DFP".
Препоръчително е да не се използва тази опция, и като начало да се използва "UseDisplayDevice"
Забележка: всичко включено към 15-пиновия изход VGA се приема от драйвера като CRT. "DFP" трябва да се включва към цифровия порт DVI.

Значение по подразбиране: празен ред (драйвера NVIDIA определя включеното устройство).

Option "UseDisplayDevice" "текстов ред"

При разпознаването на дисплеите от драйвера, същия по подразбиране ги присъединява в реда в който са намерени(отначало се проверяват CRT после DFP и накрая телевизорите). Тази опция може да бъде използвана за промяна редът на присъединяване. Например ако са включени CRT и DFP можете да зададете значение:
 
Option "UseDisplayDevice" "DFP"-за използването на плосък монитор. Ако не е въведен се използва електронно лъчев монитор.

Обърнете внимание на разликата между тази опция и опцията "ConnectedMonitor": опцията "ConnectedMonitor" презарежда вече свързаните монитори, докато в "UseDisplayDevice" се задава конкретен монитор на който да се изобразява Х.


Option "UseEdidFreqs" "логическа"

Тази опция определя дали драйвера ще използва вертикалното и хоризонталното опресняване на монитора (HorizSync и VertRefresh), което е зададено по протокола EDID (ако има такова). Когато опцията иима стойност True, се използва опреснителната честота на монитора зададена чрез EDID в секция Monitor. Ако монитора обаче не поддържа EDID, или пък не изпраща нищо през протокола EDID тогава Х използва зададените в секция Monitor вертикално и хоризонтално опресняване. Тези диапазони се използват за проверка достъпността на видеорежимите на монитора.

Значение по подразбиране: True (използва протокола EDID)


Option "UseEDID" "логическа"

По подразбиране драйвера използва информация за мониторите съобщаема по протокола EDID, при създаване на списъка с видео режимите. Информацията EDID е източник на сведения за възможните видео режими, диапазона на опресняване, физическите размери на дисплея, използваните за изчисления DPI (вж. приложение Y). Ако искате да изключите използването на EDID, задайте стойност False:

Option "UseEDID" "FALSE"
 
Освен общата забрана на EDID използването можете да зададете забрана и поотделно за някои функции
 
      Option "UseEDIDFreqs" "FALSE"
      Option "UseEDIDDpi" "FALSE"
      Option "ModeValidation" "NoEdidModes"
Значение по подразбиране: True (използва EDID).


Option "IgnoreEDID" "логическа"

Тази опция е остаряла, и повече няма да влияе на драйвера. Вж. по-горе за допълнителна информация.

Option "NoDDC" "логическа"

Синоним на опцията "IgnoreEDID". Остаряла е и повече не влияе на Х. Обърнете се към "UseEDID" за повече информация.

Option "FlatPanelProperties" "текстов ред"

Съдържа информация за свойствата на включения цифров монитор, представени като двойка свойство=стойност, разделени със запетаи. В настоящия момент се поддържат само свойствата
- 'Scaling' (мащабиране) и 'Dithering' (трептене). Възможните стойности за 'Scaling': 'default' (драйвера използва текущите състояние на мащабирането), 'native' (драйвера използва възможностите на самия монитор по мащабирането, ако има такива), 'scaled' (драйвера ще използва възможностите на графичния процесор, ако е възможно), 'centered' (драйвера извежда изображението в центъра, ако е възможно) и 'aspect-scaled' (драйвера използва средствата за мащабиране на NIDIA, но съхранява съотношенията на страните). Възможните значения за „Dithering': 'default' (драйвера решава кога да изглажда изображението), 'enabled' (драйвера винаги изглажда изображението, когато е възможно) и 'disabled' (драйвера не използва изглаждането). Ако никакво устройство не е зададено неговото значение е 'default'. Като примера може да се дадат следните опции:
 
"Scaling = centered, Dithering = enabled"
 
Option "UseInt10Module" "логическа"

Включва използването на модул на Х за мек рестарт при инициализацията на допълнителни видеокарти, вместо РOST инициализация чрез модула на кернел ядрото на NVIDIA. Значение по подразбиране: off (използва се POST инициализация чрез модула на NVIDIA в кернел).

Option "TwinView" "логическа"

Включва или изключва технологията TwinView. Обърнете се към приложение G за допълнителна информация. Значение по подразбиране: off (TwinView изключена).

Option "TwinViewOrientation" "текстов ред"

Управлява взаимното положение на двата дисплея използвани от TwinView. Може да има следните стойности: "RightOf", "LeftOf", "Above", "Below", "Clone". Обърнете се към приложение G  за допълнителна информация. Значение по подразбиране: реда е празен.

Option "SecondMonitorHorizSync" "обхват"

Тази опция е еквивалентна на HorizSync в секцията Monitor section, но е предназначена за втория монитор при използването на TwinView. Обърнете се към Приложение G за допълнителна информация. Значение по подразбиране: none.

Option "SecondMonitorVertRefresh" "обхват"

Тази опция е еквивалентна на опцията  VertRefresh в секцията Monitor section, но е предназначена за втория монитор при използването на TwinView. Обърнете се към Приложение G за допълнителна информация. Значение по подразбиране: none.

Option "MetaModes" "текстов ред"

Тази опция описва съчетанието на видеорежима за всеки монитор при използването на TwinView. Обърнете се към Приложение G за допълнителна информация. Значение по подразбиране:празен ред.

Option "NoTwinViewXineramaInfo" "логическа"

При използването на TwinView, драйвера NVIDIA обикновено поддържа разширението Xinerama, чрез което клиентите в Х (такива като мениджъра на прозорци) могат да определят текущите устройства свързани към компютъра. Настройките на някои мениджъри обаче се смесват с тази информация така, че дадената опция позволява да бъде изключена. Значение по подразбиране: false (информация за TwinView се извежда чрез Xinerama).

Option "TwinViewXineramaInfoOrder" "текстов ред"

Когато драйвера NVIDIA предоставя информация TwinViewXineramaInfo (вж. опцията NoTwinViewXineramaInfo за конфигурация на Х), текущата конфигурация на дисплеите по подразбиране се изброяват в реда:"CRT, DFP, TV". Тази опция може да бъде използвана за промяна на този ред.
Значението на тази опция се задава в текстов ред с названията на дисплеите които искате да бъдат изброени. Те могат да бъдат както в обща форма (например, "CRT", която се отнася за елекнронно лъчеви монитори) или с указване на конкретното устройство (например, "CRT-1", като съответства на конкретно включен монитор) Не е необходиомо въвеждането на всички дисплеи. Ако реда не е запълнен със съществуващите устройства то след стартиране ще се добавят автоматично всички други по подразбиране.
Обърнете внимание, че в информацията на TwinViewXineramaInfoOrder отчита всички монитори, които може да бъдат включени към видеокартата, а не само тези които фактически са вързани. Когато драйвера предава информация на Xinerama, той сортира мониторите в даден ред и съобщава само за действащите устройства.

   Примери за подразбиране:
 
           "DFP"
           "TV, DFP"
           "DFP-1, DFP-0, TV, CRT"
 
В първия ред всички включени цифрови монитори може да бъдат включени в началото, а всички електронно лъчеви монитори и телевизори след тях. Във втория  ред всички включени телевизори ще бъдат включени първи, а след това ще бъдат цифровите монитори, електронно лъчевите ще бъдат включени последни. В третия ред, ако е включен дисплей “DFP-1”, то той ще бъде включен първи и след това „DFP-0”, след тях всички включени телевизори и накрая електронно лъчевите монитори, най – накрая ще дойдат и оставалите плоски монитори. Значение по подразбиране: "CRT, DFP, TV"

Option "TVStandard" "текстов ред"

Обърнете се към Приложение Н за допълнителна информация за настройка на ТВ-изхода.

Option "TVOutFormat" "текстов ред"

Обърнете се към приложение Н за допълнителна информация за настройка на ТВ-изхода.

Option "TVOverScan" "Decimal value in the range 0.0 to 1.0"

Допустимата стойност се намира в диапазана от  0.0 до 1.0. Обърнете се към приложение Н за допълнителна информация за настройка на ТВ - изхода.

Option "Stereo" "цяло число”

Включва поддръжката на четирикратно-буферизирано стереоизображение при картите Quadro. Стойростта показва типа на използвания стереоохардуер:
 
       Значение             Оборудване
       --------------    ------------------------------------------------------------------------
       1                 Очила DDC(Display Data Channel). Сигнала за синхронизация се изпраща
                         обикновено в очилата чрез този канал за монитора.
                         Обикновено е необходимо да се включи кабел между монитора и видеокартата.
       2                 Очила тип "Blueline". Обикновено се включва промеждутъчен кабел между
                         компютъра и монитора. Очилата определят изображението за всяко око по                                                                            
                         дължината на синята линя видима отдолу на екрана. В този режим размера на  
                           види всеки пиксел е намален по координатата У (десктоп паннинг)
       3                 Вграден стерео порт. Обикновено се среща в повечето професионални видео
                         карти. Очилата се включвак към специален DIN порт на задната планка
                         на видеокартата.
       4                 Режим стереоклониране TwinView (още наречен "пасивно" стерео). На видео
                         Картите поддържащи TwinView, изображение за лявото око за първи дисплей
                         а изображението на дясното око на втори дисплей. Обикновено се използва
                         заедно с два специални проектора показващи поляризирани изображения. За
                         използване на този видеорежим трябва да настроите TwinView в режим на
                         клониране с еднаква разделителна способности и еднаква област на видимост
                         на двата дисплея.
       5                 Вертикален interlaced режим, за използване със стереомонитори SEEREAL DFP.
       6                  Режим с interleaved цветове, за използване със стереомонитори Sharp3D.
 
Стерео-режим е достъпен само за видеокартите от семейството на Quadro. Опции 1, 2, и 3 (наречени „активно” стерео) могат да бъдат използвани вместо TwinView, ако всички видеорежими във всеки метарежим имат идентични параметри по време на синхронизация. Обърнете се към приложение J за информация по привеждането на видеорежимите във всеки метарежим към идентично състояние. Изискванията към еднаквост не са задължителни към стерео от типа 4 („пасивно” стерео). Към момента работата със стерео-режим може да бъде затруднена от по стария графичен процесор Quadro (NV10), а също така и от превключването между леви и десни изображения може да възникне грешка. Това затруднение ще бъде отстранено в бъдещите версии. Значение по подразбиране: 0 (стерео-режим не се използва).

Опцията UBB трябва да бъде включена при използването на стерео-режим(това е поведение по подразбиране).
Опциите стерео 1, 2, и 3 (наречени "активни" стерео-режими) не се поддържат за плоски монитори.
Многопроцесорните видеокарти (като Quadro FX 4500 X2) имат един изход за включване на стереоочила (стойност 3), принадлежащ към процесора който се намира най – долу на картата. За синхронизация на очилата с другите процесори е нужно да се използва специално оборудване G-sync (обърнете се към приложение Х за допълнителна информация).

Option "AllowDFPStereo" "логическа"

По подразбиране, драйвера на NVIDIA изпълнява проверка, която изключва „активния” стереорежим (при опции 1,2 и 3), ако екрана на Х се извежда на плосък монитор. Опцията "AllowDFPStereo" изключва тази проверка.

Option "ForceStereoFlipping" "логическа"

Стереопревключването – това е процес, при койото изображението за лявото и дясното око се изобразяват чрез алтернативна вертикална синхронизация (постстранично). Обикновено стереопревключването се използва когато стереоизображението е видимо на екрана. Тази опция включва използването на стереопревключването даже ако стереоизображението е скрито.

Тази опция трябва да се използва съвместно с опцията „Stereo”. Ако стойността на „Stereo” е 0 то опцията "ForceStereoFlipping" не действа. Иначе опцията се ръководи от поведение зададено в опцията "Stereo", даже и ако не се извежда стереоизображение. Тази опция е полезна за многомониторни конфигурации, когато стереоприложението се извежда на екран, различен от основния за определен за извеждане на стерео.

Възможни стойности:
 
       Стойност          Действие
       --------------    ---------------------------------------------------
       0                 Стереопревключването не се променя принудително.
                         Работата се определя от опцията  "Stereo".
       1                 Стереопревключването  се променя принудително.
                         Стереорежима се използва, даже ако не се извежда
                         стереоизображение. Режима зависи от стойноста на опцията
                         "Stereo".
 
Стойност по подразбиране: 0 (стереопревключването не се настройва принудително). Обърнете внимание, че „активното” стерео е недостъпно за плоските монитори.

Option "XineramaStereoFlipping" "логическа”

По подразбиране при използване на стерео съвместно с Хinerama, всички физически монитори на Х съдържат видимото стереоизображение с използването на стереопревключване. Използвайте тази опция, за да разрешите само един физически дисплей да използва стереопревключването в един момент от време.
Тази опция трябва да се използва с опцията "Stereo" и "Xinerama". Ако стойността на „Stereo” или „Xinerama” е 0, то опцията „XineramaStereoFlipping" не действа.
Ако искате, всички Х дисплеи да се използват от стереопревключването винаги, изоплзавйте опцията "ForceStereoFlipping".

   Возможные значения:
 
       Стойност          Действие
       --------------    ---------------------------------------------------
       0                 Стереопревключването се използва само с един дисплей
                         в един момент от време. Стереорежима се включва
                         на първия монитор, извеждащ стереоизображение.
       1                 Стереопревключването се използва на всички дисплеи.
 
   Стойност по подразбиране: 1 (Стереоппревключването се използва с всички дисплеи).

Option "NoBandWidthTest" "логическа"

В процеса на проверка на достъпния видеорежим, драйвера на Х проверява, отговаря ли пропускателната способност на лентата на паметта за изискванията на този видеорежим. Тази опция изключва този тест. Стойността по подразбиране: false(теста за паметта се изпълнява).

Option "IgnoreDisplayDevices" "текстов ред"

Тази опция задава на модула игнориране на класове от дисплеи, които могат да бъдат включени към картата.Можете да зададете списък от класове, разделени със запетая, съдържащи определени стойности като: "CRT", "DFP", и "TV". Например:
 
Option "IgnoreDisplayDevices" "DFP, TV"
 
Нарежда на драйвера да не включва телевизори и цифрови монитори. Обикновенно в използването на тази опция няма нужда, единствено ако BIOS-а на някои карти съдържа грешна информация за възможностите по включените устройства, или пък за значението на порта i2c, тогава може да се използва за определяне. Такива грешки могат да доведат до продължително забавяне при стартирането на Х. Ако се сблъскате с такова забавяне, можете да настроите драйвера да игнорира класовете дисплеи, които не са включени към картата. Обърнете внимание: всичко, което е включено към 15 пиновия изход на VGA, се счита от драйвера за CRT. DEP се използва само за цифрови монитори и те трябва да са включени към DVI порта.

Option "MultisampleCompatibility" "логическа"

Разрешава или забранява използването на разделни буфери за пълноекранното изглаждане по метода на мултисемплинга. Включването изразходва много видеопамет, но може веднага да зареди коректния изход на изображението от буфера. Тази опция е необходима за правилната работа на приложението SoftImage XSI.Стойност по подразбиране: false (общия буфер на мултисемплинга се използва за буфер на предния и задния план).

Option "NoPowerConnectorCheck" "логическа"

Драйвера на  Х-интерфейса NVIDIA прекъсва стартирането на Х, ако установи, че на видеокартата е необходимо допълнително захранване и кабела за външно захранване не овключен. Тази опция позволява да се изключи тази проверка. Значение по подразбиране: false (проверката се изпълнява).

Option "XvmcUsesTextures" "логическа"

Принудително заставя XvMC да използва 3D възможности за изискването XvMCPutSurface вместо използването на виденаслагване. Значение по подразбиране: false (използва се видеонаслагване, ако е необходимо).

Option "AllowGLXWithComposite" "логическа"

Разрешава GLX, даже ако е заредено разширението Composite X. Използвайте на свой риск. Приложенията използващи OpenGL в много случаи не се изобразяват правилно при включването на тази опция.
Тази опция е въведена в случай при използване на Х сървър до версия на Х11R6.9.0. При използване на по висока версия, реализацията на OpenGL в драйвера NVIDIA взаимодейства коректно с разширението Composite X, и от тази опция няма нужда. Въпреки това тази опция може да бъде изключена чрез  задаване значение False.

Стойност по подразбиране: false (GLX изключен при разрешен Composite в Х-сървъра при версии по-стари от X11R6.9.0).


Option "AddARGBGLXVisuals" "логическа"

Добавя поддръжката на 32 битови ARGB области на изход за изображението във всяка една поддържана OpenGL конфигурация. Това позволява OpenGL приложенията да използват прозрачни картини с алфа – канали в 32 битов прозорец и пикселни карти. Тази опция изисква наличие на Composite разширение. Използвайте на своя отговорност. В някои OpenGL приложения изображението може да се развали при включването на опцията. Стойност по подразбиране:поддръжка изключена.

Option "DisableGLXRootClipping" "логическа"

Ако опцията е включена, отсичането няма да се изпълнява при завършване на OpenGL рендинга в основния прозорец. Тази опция е остаряла. Необходима е да работи за някои Composite разширения на OpenGL, тъй като те прересуват изображението директно в основния прозорец използвайки OpenGL. Повечето от мениджърите поддържат функцията Composite Overlay Window, появяваща се в Х сървъра версия 7.1. Използването на Composite Overlay Window вече се явява основен способ за осъществяване смесването на изображения в OpenGL.

Option "DamageEvents" "логическа"

Използването на процесите в операционната система за съобщения от Х, така че клиента да изпълнява директен рендеринг в основния прозорец, чрез използването на Composite. Тази опция позволява няколкократно да се повиши производителността и да се подобри съвместимостта при използването на GLX приложения заедно с Composit диспечера. Това също така влияе на приложенията, използващи GLX при включена функция за завъртане на екрана. Тази опция към момента е несъвместима с режима SLI и MultiGPU, и е изключена ако се използва един от тези режими. По подразбиране е включено.

Option "ExactModeTimingsDVI" "логическа"

Принуждава Х при стартиране да използва параметри за времева синхронизация, указани чрез опцията ModeLine. Стойност по подразбиране:  false (за устройства, включени към DVI, Х се стартира с близки режими в списъка на EDID).

Option "Coolbits" "цяло число"

Разрешава да се използва разширението NV-CONTROL X за промяна честата на графичния процесор. Ако тази опция е със стойност „1”, в nvidia-settings ще се появи страница "Clock Frequencies", посредством която може да се управлява честотата. Опцията Coolbits работи само за графични процесори GeForce FX, Quadro FX, и по-нови. При използването на същите в лаптопи възможността за управление на честотите чрез добавяне на „1” в "Coolbits" е ограничена: честата може да бъде снижена в зависимост от фабричните настройки, овърклок не се поддържа поради температурни ограничения. Значение по подразбиране 0(не се поддържа).

Предупреждение: използването на тази възможност може да доведе до повреждане на оборудването и загуба на гаранциите на производителя. Тази функция може да доведе вашата система до характеристики извън определените от производителя, но не ограничени от : висок волтаж, температура по висока от нормалната, прекалено големи честоти, изменения на BIOS на видеокартата, които могат да доведат до повреда на нейния BIOS. Операционната система може да не работи стабилно, което може да доведе до загуба на информация или др. В зависимост от производителя на компютъра, гаранциите на компютъра и неговото хардуерно и програмно обезпечаване могат да бъдат изгубени и можете да изгубите право на помощ от производителя за в бъдеще. NVIDIA не оказва поддръжка на опцията Coolbits, така че в никакъв случай използването и да не доведе до загуба на гаранция. Поради това вие сте длъжен сам да изберете използването на тази опция и последващите действия.

Option "MultiGPU" "текстов ред"

В тази опция се задава режим на рендеринг MultiGPU за многопроцесорните видеокарти.
 
       Значение                                     Действие
       --------------------------------    --------------------------------
       0, no, off, false, Single                     Използва само един графичен процесор
                                                             за рендеринг
       1, yes, on, true, Auto                      Задейства MultiGPU и разрешава
                                                             на драйвера автоматически да избира
                                                             подходящия метод на рендеринг.
       AFR                                               Задейства MultiGPU и
                                                             използва метод на рендеринг с
                                                             Alternate Frame Rendering.
       SFR                                               Задейства MultiGPU и
                                                             използва метод с разделянето на
                                                             Frame Rendering.
       AA                                                 Задейства MultiGPU и го
                                                             използва за пълноекранен
                                                             аниталайзинг. Използвайте го
                                                             съвместно с пълноекранен
                                                             антиалайзинг за подобряване качеството
                                                             на изображенията.

Option "SLI" "текстов ред"

   Тази опция настройва използването на технологията SLI в поддържаното оборудване.
 
       Значение                                    Действие
       --------------------------------    --------------------------------
       0, no, off, false, Single                   Използва само един графичен
                                                           процесор за рендеринга
       1, yes, on, true, Auto                    Задейства SLI и разрешава на
                                                           драйвера автоматически да избира
                                                           подходящ метод за рендеринга.
       AFR                                            Задейства SLI и използва
                                                          метод на рендеринга с Alternate Frame Rendering
       SFR                                            Задейства SLI и използва
                                                          метод с разделение Frame Rendering.
       AA                                              Задейства SLI и го използва за
                                                          пълноекранен антиалайзинг на
                                                          изображенията. Използвайте го
                                                          съвместно с пълноекранния
                                                          антиалайзинг за подобряване качеството на
                                                          изображенията.
       AFRofAA                                   Задейства SLI и използва
                                                          метода на рендеринга Alternate Frame Rendering
                                                          съвместно с пълноекранния
                                                         антиалайзинг на изображенията.
                                                        Използвайте го съвместно с
                                                        пълноекранния антиалайзинг за
                                                         подобряване качеството на изображенията.
                                                        Тази опция работи само за конфигурация с
                                                         4 графични процесора.
     
Option "DPI" "текстов ред"

Тази опция задава резолюция в точка на инч на Х екрана; например:
 
Option "DPI" "75 x 85"
 
установява хоризонтална резолюция 75 DPI, и вертикална 85 DPI. По-подразбиране, драйвера на Х изчислява резолюцията в точки на пиксел за екрана по информацията от EDID. Обърнете се към Приложение Y за допълнителна информация. Стойност по подразбиране: празен ред (изключено).

Option "TripleBuffer" "логическа"

Включва/изключва използването на тройна буферизаиця. Ако тази опция е включена, OpenGL, приложениеята синхронизиращи изхода на изображенията с вертикалната развертка в допълнение към стандартната двойна буферизация се включва трети буфер. Това намаля времето за изчакване за вертикално опресняване на изображението, но увеличава задръжката между действието на потребителя и изобразяването на резултата от тях(латентноста).


Option "UseEdidDpi" "текстов ред"

По-подразбиране, драйвера NVIDIA изчислява пиксели на инч за екрана на Х по фичическия размер на дисплея, който е съобщен чрез EDID. Ако се използват няколко дисплея за изхода на Х, тогава драйвера избира, какъв дисплей да използва за изчисляване на резолюцията. Тази опция позволява да се укаже на драйвера кой дисплей да използва. Реда може да съдържа името на устройството, например:
 
Option "UseEdidDpi" "DFP-0"
 
или стойност "FALSE" за изключване изчислението на резолюцията в пиксели на инч по информацията от EDID:
 
Option "UseEdidDpi" "FALSE"
 
Обърнете се към приложение Y за допълнителна информация. Стойност по подразбиране: празен ред(драйвера изчислява резолюцията по информация от EDID и сам избира дисплея).

Option "ConstantDPI" "логическа"

По подразбиране при използване на Х с версии 6.9 или по – нови, драйвера на Х преизчислява размера на Х екрана в милиметри когато размера в пиксели е променен чрез XRandR, за съхраняване на постоянната резолюция DPI.

Това поведение може да бъде изключено (за съхраняване размера на екрана в милиметри при изменението му в пиксели) чрез присвояване на опцията значение "FALSE", например:
 
Option "ConstantDPI" "FALSE"

Значение по подразбиране: True.

В сървъра Х с версии по – ранни от 6.9, драйвера NVIDIA не може да променя стойността на размера на екрана в милиметри. В резултат резолюцията DPI на екрана ще се променя при промяна размера на екрана в пиксели, чрез разширението XRandR. Поведението на драйвера ще съответства на поведението при стойност  FALSE на опцията ConstantDPI.

Option "CustomEDID" "текстов ред"

Тази опция позволява да се „застави” драйвера да използва информацията от EDID, съхранена във файл вместо тази съхранена в дисплея. Можете да зададете списък с опции разделени с двоеточия двойни значения по смисъл „име на дисплея:име на файла”. В качество на име на дисплея може да се използва
"CRT-0", "CRT-1", "DFP-0", "DFP-1", "TV-0", "TV-1". Файлът е длъжен да съдържа информацията от EDID в изходен вид(като файл, създаден с nvidia-settings). Например, реда:
 
Option "CustomEDID" "CRT-0:/tmp/edid1.bin; DFP-0:/tmp/edid2.bin"
 
ще бъде съпоставен дисплея CRT-0 и информацията EDID от файла /tmp/edid1.bin и дисплея DFP-0 информацията  от файла /tmp/edid2.bin.

Option "ModeValidation" "текстов ред"

Тази опция предоставя възможност за точно управление на всеки стадий на проверка достъпността до видеорежима, изключвайки индивидуалните проверки. Трябва да се използва само в специални случаи.
Формат на опцията - списък разделен с точка и запетая. Вътре във всеки списък изброяването се разделя с запетая. Всеки списък преднамерено може да е с няколко имена на дисплеи.
 
"<dpy-0>: <tok>, <tok>; <dpy-1>: <tok>, <tok>, <tok>; ..."
 
 
   Възможни стойности:
 
      o "AllowNon60HzDFPModes": някои некачествени  TMDS контролери
      са настроени за управление на цифрови монитори само при честота
      на опресняване 60 Hz; драйвера ще определи, че за този монитор е разрешен
      само видео режим с честота на опресняване 60 Hz. Тази опция изключва
      дадената проверка за достъпност на видеорежима.
 
      o "NoMaxPClkCheck": за всеки видео режим е нужна само пикселна честота
      тя се валидира с максимално възможната пикселна честота на оборудването
      (за цифровите монитори това е максималната пикселна честота на TMDS контролера,
      за електронно лъчевите това е честота на DAC). Тази опция изключва
      проверката за достъпността на видеорежима.
 
      o "NoEdidMaxPClkCheck": информацията EDID на дисплея може да съдържа
      стойността на пределната пискелна честота поддържана от дисплея; необходимата
      за видеорежима честота се сверява с тази информация. Тази опция изключва
      дадената проверка на видеорежима.
 
      o "AllowInterlacedModes": междуредовите видеорежими не се поддържат
      от всички GPU на NVIDIA; драйвера може да отхвърли проверката за
      междуредния режим на GPU, ако е неподдържан.
      Тази опция спира тази проверка.
 
      o "NoMaxSizeCheck": всеки GPU на NVIDIA имеа предел за резолюцията
      на дисплея, тази опция изключва проверката за достъпността.
 
      o "NoHorizSyncCheck": честотата на хоризонталната синхронизация се сверява
      с диапазона на съществуващите валидни честоти. Тази опция изключва тази проверка.
 
      o "NoVertRefreshCheck": честотата на вертикална синхронизация се сверява
      с диапазона на съществуващите валидни честоти. Тази опция изключва тази проверка.
 
      o "NoWidthAlignmentCheck": подравняването на видимата ширна на дисплея
      се проверява с възможностите на GPU. Обикновено видимата ширина трябва
      да е кратна на 8. Тази опция изключва дадената проверка.
 
      o "NoDFPNativeResolutionCheck": при проверка на видеорежима за цифров
      монитор, видеорежима се сравнява с физическата резолюция на матрицата.
      Тази опция изключва дадената проверка.
 
      o "NoVirtualSizeCheck": ако във конфигурационния файл на Х е зададен
      специфичен размер на екрана, разделителната способност не може да бъде
      по-голяма от този размер. Тази опция изключва проверката за големината.

      o "NoVesaModes": при създаването на списъка с ведеорежимите драйвера на Х
      използва вграден списък с VESA режими, като източник.
      Тази опция изключва използването на този списък с видеорежими VESA.
 
      o "NoEdidModes": при създаването на списък с видеорежими драйвера на Х
      използва виедорежими, изчислени от стойностите на EDID на дисплея като
      един от източниците. Тази опция изключва използването на EDID протокола.
 
      o "NoXServerModes": при създаването на списъка с видеорежими драйвера на Х
      използва видеорежими, от сървъра на Х като XFree86/Xorg един от източниците.
      Тази опция изключва използването на тези видеорежими. Обърнете внимание, че
      тази опция не изключва ръчно зададените видеорежими в конфигурационния файл
      на Х, вижте описание на опцията "NoCustomModes" за това.

      o "NoCustomModes": при създаването на списъка с видеорежими драйвера на Х
      използва ръчно зададени видеорежими във файла с конфигурация на Х(записи
      "Mode" или "ModeLine" в секция Monitor), в качеството на един от източниците
      Тази опция изключва използването на ръчно зададените режими.
 
      o "NoPredefinedModes": при създаването на списъка с видеорежими драйвера на Х
      използва допълнителни видеорежими, предварително зададени в драйвера. Тази
      опция изключва използването им.
 
      o "NoUserModes": допълнителни видеорежими могат да бъдат зададени в списък с
      използването на разширение NV-CONTROL. Тази опция забранява използването на
      такива видеорежими създадени с помощта на NV-CONTROL.

   Примери:

Option "ModeValidation" "NoMaxPClkCheck"
 
изключва проверката на максималната пикселна честота при валидирането на режимите на всички дисплеи.
 
Option "ModeValidation" "CRT-0: NoEdidModes, NoMaxPClkCheck; DFP-0: NoVesaModes"
 
не използва видеорежима определен от EDID и не изпълнява проверка за максимална пикселна честота за устройството CRT-0, както и не използва видео режим VESA на устройство DFP-0.

Option "UseEvents" "логическа"

Включва използването на системните процеси в някои случаи когато драйвера на Х изчаква за хардуера. Когато драйвера на Х очаква хардуера, може да премине в стегнат цикъл. При използването на тази опция драйвера очаква системно извикване от 'poll()'. Стойност по подразбиране: изключена.

Option "FlatPanelProperties" "текстов ред"

   В тази опция се задават определени характеристики на всички или някои включени цифрови монитори. Стойността на опцията се задава във формат на списък разделена с двоеточия двойка: ”характеристика=стойност”. Всеки списък може да се предхожда от име на монитора:
 
"<DFP-0>: <property=value>, <property=value>; <DFP-1>:
   <property=value>; ..."
     
   Възможни характеристики:
 
o "Scaling": управлява начина за мащабиране на изображението на монитора; възможни стойности:    
'Default' (драйвера използва текущото състояние на мащабирането),
'Native' (драйвера използва възможностите на самия монитор за мащабиране, ако има такива),
'Scaled' (драйвера ще използва средствата за мащабиране на GPU на NVIDIA, ако е възможно),
'Centered' (драйвера извежда изображение в центъра, ако е възможно), и
'Aspect-scaled' (драйвера използва средството за мащабиране на GPU NVIDIA, но съхранява съотношението на страните).
 
o "Dithering": управлява трептенето на плоските монитори; възможни стойности
default(драйвера решава кога да спира трептенето),
'enabled' (винаги спира трептенето, ако е възможно), и
'disabled' (драйвер не спира трептенето).
 
   Примери:
 
Option "FlatPanelProperties" "Scaling = Centered"
 
установява мащабирането в центъра на всички плоски монитори.
 
Option "FlatPanelProperties" "DFP-0: Scaling = Centered; DFP-1:
Scaling = Scaled, Dithering = Enabled"
 
установява за дисплея DFP-0 мащабиране с извеждане на изображението в центъра, а за дисплея DFP-1's установява мащабиране посредством GPU и спира трептенето.

Option "ProbeAllGpus" "логическа"

При инициализацията драйвера Х на NVIDIA проверява всички GPU в системата, даже ако не са зададени към тях Х дисплеи. В такъв смисъл драйвера може да изведе информация за всички GPU в системата в разширението NV-CONTROL. Това може да бъде изключено чрез присвояване на стойност FALSE, така че да се проверяват само графични процесори за които са присвоени Х дисплеи. По подразбиране се проверяват всички GPU.

Option "DynamicTwinView" "логическа"

Включване или изключване на динамичната TwinView  за даден екран на Х. Когато опцията е включена(така е по подразбиране), честотата на опресняване не изображението, съобщавана през XF86VidMode или XRandR не отразява фактическата честота а се явява уникален номер, така както всеки режим на MetaMode има свое значение за честотата. В такъв смисъл в образа се гарантира коректно определяне на всички мета режими в XRandR.
Когато опцията DynamicTwinView е изключена, разширението XRandR определя честотата на опресняване на изображението, но приложенията използващи NV-CONTROL, като nvidia-settings, не могат на ход да променят метарежима на Х. Режима TwinView може да бъде изменен чрез конфигурационния файл на Х и при изключена опция DynamicTwinView. Стойност по подразбиране: опцията е включена.

Option "IncludeImplicitMetaModes" "логическа"

При стартирането на Х се създава списък с видеорежими за всеки дисплей. Този списък съдържа всички режими проверени за достъпност от Х драйвера. Въпреки това единствено достъпните метарежими за Х сървъра ще бъдат тези, които са указани в конфигурационния файл. Естествено би било удобно да сменяма резолюцията даже и ако не е описана в конфигурационния файл. За тази цел драйвера „тайно” добавя метарежими за всяка резолюция в списъка на достъпните за дисплея(това става при условие, че има само един дисплей). В такъв смисъл всички режими от списъка са достъпни за пълноекранни приложения използващи XF86VidMode или XRandR на X-интерфейса.

За да отмените такова поведение на драйвера и ограничите метарежимите, зададени в опцията MetaModes в конфигурационния файл на Х, присвойте на тази опция FALSE. Стойност по подразбиране: опция включена.

Option "LoadKernelModule" "логическа"

По подразбиране, драйвера на NVIDIA се опитва да зареди кернел модула на NVIDIA. Поставете тази опция на "off" за изключване на автоматичното зареждане на модула. Стойност по подразбиране : on (драйвера зарежда кернел модула).


Към съдържанието

Приложение Е

Пълноекраннен антиалайзинг (от тук нататък ще наричам заглаждането на ръбовете антиалайзинг).

Заглаждането на ръбовете (antialiasing) – това е технология, която размива краищата на обектите от екрана за намаляване на ефекта от пикселизация, нерядко явяваща се в изображенията. Пълноекрания антиалайзинг (FSAA) се подържа от графичните процесори GeForce и по - нови. С помощта на съответните приложения можете да задействате пълноекранния антиалайзинг във всички OpenGL приложения, при използването на съответния графичен процесор.

Има няколко метода на антиалайзинг, и можете да изберете между тях с помощта на настройките на __GL_FSAA_MODE. Обърнете внимание, че увеличаването на стойността на тази променлива може да доведе до понижение в производителността..

Следващата таблица показва възможните стойности на __GL_FSAA_MODE и нейното действие при различните графични процесори NVIDIA.



   __GL_FSAA_MODE     GeForce, GeForce2, Quadro, и Quadro2 Pro
   ---------------               ------------------------------------------------------
                     0                  FSAA изключено
                     1                  FSAA изключено
                     2                  FSAA изключено
                     3                  суперсемплинг с големина на пиксела 1.5 x 1.5
                     4                  суперсемплинг с големина на пиксела 2 x 2
                     5                  FSAA изключено
                     6                  FSAA изключено
                     7                  FSAA изключено




   __GL_FSAA_MODE     GeForce4 MX, GeForce4 4xx Go, Quadro4 380,550,580
                      XGL, и Quadro4 NVS
   ----------    ------------------------------------------------------
   0                  FSAA изключено
   1                  двулинеен мултисемплинг с големина 2х
   2                  Quincunx мултисемплинг с големина 2x
   3                  FSAA изключено
   4                  суперсемплинг с големина на пиксела 2 x 2
   5                  FSAA изключено
   6                  FSAA изключено
   7                  FSAA изключено




   __GL_FSAA_MODE     GeForce3, Quadro DCC, GeForce4 Ti, GeForce4 4200 Go,
                      и Quadro4 700,750,780,900,980 XGL
   ----------    ------------------------------------------------------
   0                  FSAA изключено
   1                  двулинеен мултисемплинг с големина 2х
   2                  Quincunx мултисемплинг с големина 2x
   3                  FSAA изключено
   4                  двулинеен мултисемплинг с големина 4x
   5                  Gaussian(Гаусов) мултисемплинг с големина 4x
   6                  двулинеен мултисемплинг с големина 2х с използване на суперсемплинг с големина 4х
   7                  FSAA изключено




   __GL_FSAA_MODE     GeForce FX, GeForce 6xxx, GeForce 7xxx, Quadro FX
   ---------------    ------------------------------------------------------
   0                  FSAA изключено
   1                  двулинеен мултисемплинг с големина 2х
   2                  Quincunx мултисемплинг с големина 2x
   3                  FSAA изключено
   4                  двулинеен мултисемплинг с големина 4x
   5                  Gaussian (Гаусов) мултисемплинг с големина 4x
   6                  двулинеен мултисемплинг с големина 2х с използване на
                      суперсемплинг с големина 4x
   7                  двулинеен мултисемплинг с големина 4х с използване на
                      суперсемплинг с големина 4x
   8                  двулинеен мултисемплинг с големина 4х с използване на
                      суперсемплинг с големина 2x (достъпен само за
                      графични процесори GeForce FX и по-стари;
                      недостъпен за  Quadro)


Анизотропна филтрация

Автоматичната анизотропна филтрация на текстурите може да бъде включена с помощта на __GL_LOG_MAX_ANISO. Може да има следните стойности:

   __GL_LOG_MAX_ANISO        Тип филтрация
   -----------------------    ----------------------------------
   0                                     без анизотропна филтрация
   1                                     2x анизотропна филтрация
   2                                     4х анизотропна филтрация
   3                                     8х анизотропна филтрация
   4                                     16х анизотропна филтрация

Филтриране с големина 4x и нагоре е достъпна само за графични процесори от GeForce3 нагоре; с големина 16x  - само за GeForce 6800 и нагоре.

Вертикална синхронизация.

Задаването на ненулева стойност на __GL_SYNC_TO_VBLANK заставя glXSwapBuffers да се синхронизира с вертикалната честота на монитора(осъществява замяна на изображението само в периода на изгасване на монитора).

При използването на __GL_SYNC_TO_VBLANK заедно с TwinView, OpenGL може да се синхронизира само с един от дисплеите, с който OpenGL не се синхронизира. С помощта на настройките на __GL_SYNC_DISPLAY_DEVICE можете да укажете дисплей, с който OpenGL да се синхронизира. За това трябва да присвоите име на дисплея например: „CRT-1”. Погледнете реда "Connected display device(s):" в журналния файл на Х за преглед на включените дисплеи и техните имена. Можете също така да намерите полезна информация в приложение G(настройка на Twinview) и в секция Настройка на временните параметри за синхронизация в приложение J.

Изключване използването на специалните възможности на централния процесор.

Присвояването на променлива на _GL_FORCE_GENERIC_CPU с ненулево значение ще изключи използването на специалните възможности на процесора, като MMX, SSE, или 3DNOW!. Използването на тази възможност може да доведе до снижение на производителността.

Контрол на  FORK(2), управляване на задържането.

За освобождаване и инициализация на системните ресурси, драйвера OpenGL е длъжен да следи системните извиквания fork(2). Механизма за проследяване Fork(2) на OpenGL драйвера на NVIDIA, работи лошо със системи използващи за реализация LinuxThreads библиотеки pthreads. За повишаване на стабилността, драйвера изключва зареждането на системните извиквания fork(2) в системите с използване на LinuxThreads. Настройването на ненулева стойност за променливата __GL_ALWAYS_HANDLE_FORK може да включи fork(2) в цялата система. Използването на променливата__GL_ALWAYS_HANDLE_FORK снижава защитата на системите които използват LinuxThreads. Препоръчва се използване на __GL_ALWAYS_HANDLE_FORK само при стартиране на еднопоточни приложения, за които е известно, че използват fork.



Към съдържанието


Приложение F
Конфигуриране на AGP

Има няколко варианта за настройка на модула на драйвера NVIDIA за използването на AGP в ГНУ/Линукс. Можете да избирате между използването на вградения драйвер AGP NVIDIA (nvAGP), или драйвера AGP влизащ в ядрото на ГНУ/Линукс (AGPGART).
Това се задава в опцията "NvAGP" в конфигурационния файл на Х:

   Option "NvAGP" "0"  ... поддръжка AGP отключена
   Option "NvAGP" "1"  ... използва NVAGP, ако е възможно
   Option "NvAGP" "2"  ... използва AGPGART, ако е възможно                            
   Option "NvAGP" "3"  ... Отначало се опитва да използва AGPGART; ако не  
                                         стане то използва NVAGP

По – подразбиране стойността е 3 (до версии 1.0-1251 стойността беше задавана 1).

Трябва да използвате драйвер AGP, който най – добре работи с вашия чипсет на дънната платка. В случай на проблем със стабилността може да пробвате да заредите системата без поддръжка на AGP и да проверите дали това решава проблема. Затова вие можете да пробвате да използвате друг драйвер за AGP.
Можете да проверите използването на AGP във всяко време с помощта на интерфейса '/proc' filesystem (вж. приложение M).
За използване на драйвера Linux 2.4 AGPGART, трябва да бъде компилиран с ядрото, статистически свързан с него или добавен в модула към ядрото и зареден. При използване на Linux 2.6 AGPGART, и общия модул AGPGART 'apggart.ko', и модула за поддръжка на конкретния чипсет AGP ('nvidia-agp.ko', 'intel-agp.ko', 'via-agp.ko') трябва статистически да е свързан с ядрото или добавен към модула на ядрото и зареден.

Поддръжката AGP NVIDIA не може да се използва, ако драйвера AGPGART е зареден в кернела. В системите с  Linux 2.4 се препоръчва да се прекомпилира AGPGART като модул и при това да бъдем убедени, че той не зареден в системата когато опитаме да ползваме драйвера AGP NVIDIA. В системите Linux 2.6, модула 'agpgart.ko' винаги е зареден, така че модула на драйвера винаги го използва за определяне наличието на поддръжка на конкретния чипсет. Ако се планира да се използва драйвер AGP NVIDIA в Linux 2.6, се препоръчва  да се провери дали модулите на поддръжката на конкретния чипсет АGPGART са събрани като модули към кернела и да се убедим, че не са зареденни. Обърнете внимание, че смяната на AGP драйвера изисква рестарт преди за започне да работи.

Ако се използва нов кернел версия 2.6, в което е интегриран драйвера Linux AGPGART (среща се в някои дистрибуции), можете да зададете опция на кернела

agp=off

(през буутлоудера - LILO или GRUB, например) за изключване на поддръжката AGPGART. Подобно на Linux  2.6.11, болшинството драйвери AGPGART поддържат тази опция.

Следните чипсети се поддържат от AGP драйвера NVIDIA; за всички останали се изисква да се използва  AGPGART.

   Поддържани  чипсети с AGP
   ----------------------------------------------------------------------
   Intel 440LX
   Intel 440BX
   Intel 440GX
   Intel 815 ("Solano")
   Intel 820 ("Camino")
   Intel 830M
   Intel 840 ("Carmel")
   Intel 845 ("Brookdale")
   Intel 845G
   Intel 850 ("Tehama")
   Intel 855 ("Odem")
   Intel 860 ("Colusa")
   Intel 865G ("Springdale")
   Intel 875P ("Canterwood")
   Intel E7205 ("Granite Bay")
   Intel E7505 ("Placer")
   AMD 751 ("Irongate")
   AMD 761 ("IGD4")
   AMD 762 ("IGD4 MP")
   AMD 8151 ("Lokar")
   VIA 8371
   VIA 82C694X
   VIA KT133
   VIA KT266
   VIA KT400
   VIA P4M266
   VIA P4M266A
   VIA P4X400
   VIA K8T800
   VIA K8N800
   VIA PT880
   VIA KT880
   RCC CNB20LE
   RCC 6585HE
   Micron SAMDDR ("Samurai")
   Micron SCIDDR ("Scimitar")
   NVIDIA nForce
   NVIDIA nForce2
   NVIDIA nForce3
   ALi 1621
   ALi 1631
   ALi 1647
   ALi 1651
   ALi 1671
   SiS 630
   SiS 633
   SiS 635
   SiS 645
   SiS 646
   SiS 648
   SiS 648FX
   SiS 650
   SiS 651
   SiS 655
   SiS 655FX
   SiS 661
   SiS 730
   SiS 733
   SiS 735
   SiS 745
   SiS 755
   ATI RS200M


Ако се натъкнете на трудности, свързани със стабилноста на AGP, обърнете внимание на следните особености:

Допълнителна информация за AGP

Поддръжката на процесори Athlon с Page Size Extension

Някои версии на кернел имат грешка в работата с кеша, появяваща се при използването на функцията за разширеното спекулативно кеширане(РСК) в процесорите от AMD Athlon (AMD Athlon XP, AMD Athlon 4, AMD Athlon MP, и Models 6, а така също и съответните AMD Duron). Тази грешка обикновено се явява при изпълняването на тежки 3D-приложения.

В дистрибуциите на Linux, основани на версия на кернел 2.4.19 и късни, тази грешка е отстранена, но по- ранните версии изискват намеса от потребителя за изключване на РСК (обикновено това става чрез кръпка към ядрото) и включване на специална опция при зареждането на системата за нормална работа.

Драйвера NVIDIA автоматически изключва използването на РСК за премахване на проблема без необходимост от инсталиране на кръпка за ядрото; така също драйвера може да се използва даже и ако ядрото вече има кръпка. Допълнително, за старите версии на ядрото потребителя е длъжен да използва опцията за зареждане, която изключва зареждането на страници с 4 МВ размер. Това може да се направи по следния начин:
 
mem=nopentium
 
   или добавяне на следния ред във /etc/lilo.conf:
 
append = "mem=nopentium"
 
 
Скорост на работа на AGP порта

Можете да пробвате да понижите скорост на работата на AGP порта ако се наблюдава „увисване” на компютъра при текущите стойности. За това разархивирайте '.run':
 
# sh NVIDIA-Linux-x86-1.0-ХХХХ-pkg1.run --extract-only
# cd NVIDIA-Linux-x86-1.0-ХХХХ-pkg1/usr/src/nv/
 
   След това редактирайте os-registry.c, като внесете следните изменения:
 
       - static int NVreg_ReqAGPRate = 15;
       + static int NVreg_ReqAGPRate = 4;   /* force AGP Rate to 4x */
 
   или
 
       + static int NVreg_ReqAGPRate = 2;   /* force AGP Rate to 2x */
 
   или
 
       + static int NVreg_ReqAGPRate = 1;   /* force AGP Rate to 1x */
 
   И разрешете параметъра "ReqAGPRate":
 
       - { NULL, "ReqAGPRate",     &NVreg_ReqAGPRate,      0 },
       + { NULL, "ReqAGPRate",     &NVreg_ReqAGPRate,      1 },
 
   След това прекомпилирайте и заредете новия модул към ядрото. За това пуснете 'nvidia-installer' със следните опция -n:
 
       # cd ../../..; ./nvidia-installer -n
 
 
Опция за усилване на сигнала от AGP в BIOS-а,(при чипсети VIA)

Много дънни платки, основани на чипсета Via, позволяват да се управлява усилването на сигнала по шината AGP в BIOS. Промяната на тази опция води до значително влияние на стабилността на работа на системата, стойностите в диапазона от 0xEA до 0xEE най – добре работят с оборудването NVIDIA. Стойността от полубайт до 0xF обикновено води до проблеми.

Ако сте решили да експериментирате с тази настройка, трябва да знаете, че всичко което правите е на ваш риск и че неправилното боравене може да доведе системата до неработещо състояние(може да се наложи да прибягвате до използването на PCI видеокарти или да зареждате BIOS от изходено състояние).

Версията на  BIOS

Убедете се че използвате на последната версия на BIOS от производителя на дънната платка.

При чипсетите ALi1541 и ALi1647, драйвера NVIDIA изключва AGP поддръжката в качеството на способ за решения на проблема с цялостния сигнал и параметрите за времевата синхронизация. Можете да включите принудителното използване на AGP в системите с тези чипсети чрез изменение на опцията NVreg_EnableALiAGP в 1. Това може да повлия на стабилността.

Ранните версии на BIOS в дънните платки ASUS A7V8X-X, основани на чипсета KT400, неправилно конфигурират чипсета при използване на видеокарта със стандарт на AGP шината 2.х; ако Х аварийно се рестартира или затвори, в система с чипсет ASUS KT400 както и с драйвер Linux AGPGART, така и с NvAGP, и видеокартата не е 8х устройство, то тогава се убедете, че използвате последна версия на BIOS.

Към съдържанието

Приложение G
Технологията TwinView

Технологията  TwinView се поддържа само от графичните процесори  NVIDIA с възможност за използване на два дисплея едновременно, такива като GeForce2 MX, GeForce2 Go, Quadro2 MXR, Quadro2 Go, и всички процесори от серията GeForce4, Quadro4, GeForce FX, или Quadro FX GPUs. Обърнете се към производителя на видеокартата за потвърждение, че технологията TwinView се поддържа.

TwinView – това е начин на работа, при който два дисплея(цифров, електронно-лъчеви или телевизор) могат да изобразяват съдържимото на един екран на Х независимо от конфигурацията. Този метод за използване на мултимониторноста има няколко преимущества над другите технологии, такива като Xinerama:

   o Използва се един екран на Х. Драйвера NVIDIA „скрива” всяка информация за мултимониторноста на Х  до тогава, докато на Х е необходим само един екран.

 o Двата дисплея използват един кадров буфер. В такъв смисъл всяка функционалност достъпна за единия (например хардуерно ускорение OpenGL), е достъпна в режима TwinView.

   o Не е необходимо допълнително натоварване за емулация на един работещ десктоп.

Ако ви интересува използването на изхода на отделен Х за отделен дисплей то погледнете приложение Р.

Настройки TWINVIEW за Х-интерфейса

За използване на TwinView трябва да включите следните опции в секцията Device  на файла за конфигурация Х-интерфейса:

    Option "TwinView"

Така също може да зададете, въпреки че не е обезателно, опциите:

    Option "MetaModes"                "<списък метарежими>"

   Option "SecondMonitorHorizSync"   "<диапазон честота хоризонтална синхронизация>"

   Option "SecondMonitorVertRefresh" "<диапазон честота вертикална синхронизация>"

   Option "HorizSync"                "<диапазон честота хоризонтална синхронизации>"

   Option "VertRefresh"              "<диапазон честота вертикална синхронизация>"

   Option "TwinViewOrientation"      "<взаимозависимости изходи 1 и 0>"

   Option "ConnectedMonitor"         "<списък на включените дисплеи>"

Вижте детайлно описание на всяка опция по - долу.

Кто вариант, може да включите TwinView чрез:

# nvidia-xconfig --twinview

и да презаредите Х. Може да настроите TwinView по всяко време от "Display Configuration" инструмента на nvidia-settings.

Детайлни описания на настройките.

TwinView

Тази опция се изисква за използва за активиране на TwinView; без нея всички останали настройки свързани с TwinView, не действат.

SecondMonitorHorizSync

SecondMonitorVertRefresh

Задайте характеристиките на втория дисплей с помощта на тези опции. Начина на формиране на стойностите им съвпадат с правилата за формиране на "HorizSync" и "VertRefresh" в секция Monitor. В съответствие с ръководството по XF86Config: възможностите могат да бъдат зададени във форма на списък с възможни значения, разделени със запетаи, и/или диапазон на стойности във форма с две значения, разделени с двуеточие. Параметрите на HorizSync се задават в кило херца а VertRefresh  - в херц.

Обикновено няма нужда от тези опции, драйвера NVIDIA сам разбира допустимия диапазон от информацията идваща от EDID на дисплея (обърнете се към приложение D за описание на опцията "UseEdidFreqs"). Опцията SecondMonitor има приоритет над получената от EDID информация.

HorizSync

VertRefresh

Често не е ясно кой дисплей е първи, а кой е втори. За тази цел може да се използва тази опция вместо настройването на SecondMonitor. В тази опция може да се зададе диапазон на граничните стойности на честотата, разделена с тире, като към всяка допълнително може да се зададе монитора. Например:

   
      Option "HorizSync"   "CRT-0: 50-110;  DFP-0: 40-70"

      Option "VertRefresh" "CRT-0: 60-120;  DFP-0: 60"

Обърнете се към приложение R за информация за наименованията на дисплеите.

По принцип няма нужда от тази опция, драйвера NVIDIA разбира необходимия диапазон от EDID на дисплея (обърнете се към приложение D за описание на "UseEdidFreqs"). Опциите "HorizSync" и "VertRefresh" имат приоритет над информацията получена по протокола EDID, или честотите, зададени в опциите "SecondMonitorHorizSync" и "SecondMonitorVertRefresh".

MetaModes

Метарежимите са опаковка, съдържаща информация за това, какви видеорежими са длъжни да бъдат поддържани на дисплея в даден момент. Даже ако има само един дисплей, драйвера използва метарежим за съхраняване на информацията за видиорежима за всеки отделен дисплей, така че да може да се включи TwinView веднага. Списъка от записи в MetaModes определя възможните комбинации на видеорежима и последователноста от използването им. Когато драйвера NVIDIA съобщава на Х списъка с достъпните видеорежими, в действителност минималния набор от метарежими се съобщава на Х, така че информацията за всеки дисплей остава в драйвера NVIDIA. В опция MetaMode режима вътре в метарежима се разделя със запетая, а няколко метарежима се разделят с точка и запетая. Например:  

       ", ; , "

или

"<mode name 0>, <mode name 1>; <mode name 2>, <mode name 3>"  

където  <mode name 0> - название видеорежима, използван за дисплея 0, а <mode name 1>, съОтговорно , за дисплея 1. Превключването на метарежима води до използването формата на дисплей 0 върху дисплей 1. Ето например метарежима:

Option "MetaModes" "1280x1024,1280x1024; 1024x768,1024x768"  

Ако искате някоя от резолюциите да не бъде използвана то просто поставяте "NULL", или просто не я изписвате:  

"1600x1200, NULL; NULL, 1024x768"  

   или  

"1600x1200; , 1024x768"  

Допълнително, преоразмерените режими може да бъдат записани със стойности за определяне местоположението на дисплея по виртуалния екран, например:  

"1600x1200 +0+0, 1024x768 +1600+0; ..."  

Описанието на позиционирането на дисплея следва от използването на опцията за стартиране на Х "-geometry", т.е. положителните и отрицателните значения за позиционирането могат да се използват, но само когато размера на виртуалния екран е зададен достатъчно голям в конфигурационния файл на Х.
Ако не е зададено позициониране за мета режима, стойностите му се изчисляват по опцията ТwinViewOrientation (вж. по-долу). Обърнете внимание, че даже позиционирането да е зададено в някакъв режим в един мета режим, то ще бъде използвано във всички видео режими на този мета режим, освен ако то не е зададено +0+0.
Ако не е зададен явно, размера на виртуалния екран се изчислява като правоъгълник, вместващ всички правоъгълници на всички мета режими. Ако правоъгълника на мета режима е по-голям от размера на виртуалния екран то такъв мета режим не се използва.

В записа MetaMode допълнително може да бъде зададена панорамна област, например:  

"1024x768 @1600x1200, 800x600 @1600x1200"  

Панорамна област –това  е зона, в която изображението на виртуалния екран се разширява в дисплея, следвайки движенията на мишката. Панорамата се използва на две равнища на TwinView: в първото изображението се развива в един дисплей до тогава докато се намира в правоъгълника на мета режима. Тъй като мишката пресича границите на правоъгълника на мета режима, изображението се разтяга по всички мета режими(във всички дисплеи заедно), следвайки мишката вътре във виртуалния екран. Обърнете внимание, че областите на разширение на отделните дисплеи, по подразбиране са свързани към положението на дисплеите във виртуалния екран, така че поначало областта на извеждане на изображенията на дисплея е фиксирана и се използва само втория тип разтягане.

Най – изгодния начин за използване на панорамните екрани с премахване на „мъртвите зони” (областта на виртуалния екран, недостъпна вследствие използването на дисплеи с различни резолюции). Например :  

"1600x1200, 1024x768"  

Създава недостъпна област под по-малкия дисплей. Трябва да се зададе област на разпъване на втория дисплей:

"1600x1200, 1024x768 @1024x1200"  

Възможно е да се получи достъп до мъртвата зона, разпъвайки изображението в дисплея от 1024x768 до 1024x1200.

Позиционирането може да бъде използван и с областта на разпъване за задаване на позиция на областта във виртуалния екран(отбележете, че позиционирането се касае само за области на разпъване, които се извеждат на екрана и се съдържат вътре в областта на разпъване). Например, следния ред описва два видеорежима, единия от които с ширина 1900 пиксела, и втория дисплей е разположен под първия:  

"1600x1200 @1900x1200 +0+0, 1024x768 @1900x768 +0+1200"  

Доколкото е очевидно, всеки видео режим от мета режима ще бъде използван на всеки дисплей, описаните режими в мета режима могат да се опишат с названието на дисплея. Например:  

"CRT-0: 1600x1200,  DFP-0: 1024x768"  

Ако стойността на MetaMode не е зададена, драйвера използва видеорежимите, определени в секция "Display", като се опитва да подбере съвпадащ режим за всеки дисплей.

TwinViewOrientation

Тази опция управлява положението на втория дисплей по отношение на първия във виртуалния екран на Х, когато позиционирането не е зададено в MetaModes. Възможни стойности:  

       "RightOf" (в дясно, по подразбиране)
       "LeftOf"  (ляво)
       "Above"   (горе)
       "Below"   (долу)
       "Clone"   (клониране)

   Ако е зададено "Clone", двата дисплея ще бъдат позиционирани с 0,0.

Доколкото е неясно, кой дисплей е първи и кой втори, опцията TwinViewOrientation може да доведе до неочаквани резултати. Можете да използвате имената на устройствата за описание, кой дисплей как е разположен. Например:  

"CRT-0 LeftOf DFP-0"  

ConnectedMonitor

С помощта на тази опция можете да промените информацията за включените устройства, определени чрез модула на ядрото на драйвера NVIDIA. Тази възможност може да се пригоди, ако някои дисплеи не поддържат протокола Display Data Channel (DDC). Правилните стойности са списък с имената на дисплеште, разделени със запетая, например:  

       "CRT-0, CRT-1"

       "CRT"

       "CRT-1, DFP-0"  

Предупреждение: тази опция има приоритет над резултатите определени чрез модула на ядрото за включените дисплеи, и е нужна много рядко. Вие действително се нуждаете от нея ако някой от вашите монитори не се вижда по различни причини – липса на DDC информация от него, или пък се използва превключвател KVM (Клавиатура-Видео-Мишка). Във всички останали случаи не задавайте тази опция.

Така както и в останалите опции за конфигурирането на Х, интервала се игнорира и всичките стойности могат да се задават както с големи така и малки букви.


DYNAMIC TWINVIEW

Използвайки разширението на Х - NV-CONTROL може динамически да се променя конфигурацията на дисплеите, използващи Х, списъка на видеорежимите, достъпни до всеки дисплей и мета режима за всеки екран на Х. "Display Configuration" на nvidia-settings използва тези функции за промяна на списъка на метарежима MetaMode, а след това използва XRandR за превключване между мета режимите. В такъв смисъл е възможно на ход да се променя конфигурацията на TwinView.

Детайлно работата на всяка функция е описана в примера nv-control-dpy.c клиента NV-CONTROL в пакета на изходния код на nvidia-settings.

Доколкото драйвера на NVIDIA може да включва и изключва режима TwinView без презареждане, мета режима винаги се използва вътре в драйвера, независимо от броя на дисплеите използващи Х и от опцията TwinView в конфигурационния файл на X-интерфейса.

Едно от последствията на тази реализация е необходимостта от уникална идентификация на всеки мета режим в XRandR. За съжаление два мета режима с един запис MetaModes за  XRandR изглеждат напълно еднакви. Например, два мета режима с различна ориентация на изображението:

"CRT: 1600x1200 +0+0, DFP: 1600x1200 +1600+0"

"CRT: 1600x1200 +1600+0, DFP: 1600x1200 +0+0"

ще изглеждат еднакви за XRandR или XF86VidMode на X-интерфейса, тъй като имат еднаква резолюция (3200x1200), и nvidia-settings не може да използва XRandR за превключване между тези мета режими. В качеството на решение за този проблем, драйвера на NVIDIA ще „излъже” за честотата на опресняване на всеки мета режим, като използва честотата на опресняване като уникален идентификатор.

XRandR в към момента се намира в стадий на разработка в X.Org, така че това използване със стойностите на честотата на опресняване може да бъде премахнато в бъдеще. Можете да го изключите като присвотите  FALSE на опцията "DynamicTwinView" във файла за конфигурация на Х, това значи че поддръжката на NV-CONTROL за управление на метарежимите ще спре да работи, но кара XRandR и XF86VidMode да съобщават истинската честота на опресняване на изображението.

Често задавани въпроси за TWINVIEW

Въпрос: Нищо не се извежда на втория монитор, къде е проблема?

Отговор: Монитора не поддържа протокола Display Data Channel (DDC) (за много стари монитори), не се определя като включен към картата. Трябва специално да зададете на драйвера на NVIDIA съединените към видеокартата устройства в опцията "ConnectedMonitor", например:  

Option "ConnectedMonitor" "CRT, CRT"  

Въпрос: Ще може ли правилно да разпредели прозорците диспечера на прозорци(избягва да разполага прозорците около двата дисплея или пък да ги разширява прекалено много като остави недостъпни зони) ?

Отговор: Да. Драйвера NVIDIA поддържа Xinerama, която Х клиентите(такива като мениджъра на прозорци) използват за определяне на текущата конфигурация на TwinView. Отбележете, че протокола Xinerama не предвижда да известява клиентите за промени в конфигурацията, така че ако вие се включите в друг мета режим, мениджъра на прозорци ще смята че се използва предишната конфигурация. Използвайки на Xinerama съвместно с XF86VidMode за съобщения за промяна на режима, мениджъра на прозорци може да определя конфигурацията на TwinView във всеки момент.

За съжаление, данните взети от XineramaQueryScreens() могат да забият настройките на някои мениджъри на прозорци. В качеството на обходен път в случая на такива грешки, можете да изключите обмена на информация с TwinView за режима на екрана с помощта на "NoTwinViewXineramaInfo" от конфигурационния файл на X-интерфейса (обърнете се към приложение D за допълнителна информация).

Последователността на дисплеите в  TwinView за  Xinerama може да бъде определена чрез  TwinViewXineramaInfoOrder в конфигурационния файл на X-интерфейса.

Обърнете внимание, че драйвера NVIDIA не може да поддържа Xinerama, ако се използва вградена поддръжка на Xinerama в сървъра на Х-интерфейса. Решението е да се спре чрез конфигурационния файл на Х Xinerama или пък при стартирането да се забрани използването и в команден ред. Така че проверете дали в журнала на Х няма ред:  

(++) Xinerama: enabled

ако искате да използвате Xinerama с драйвера NVIDIA в режим TwinView.

Друго решение се съдържа в използване на областта на разпъване за отстраняване на недостъпните части на виртуалния екран(вж. описаните опции за MetaMode по-горе).
Трето решение се съдържа в използване на два отделни екрана на Х вместо TwinView. Обърнете се към Приложение Р.  


Въпрос: Защо не мога да получа резолюция 1600x1200 на втория дисплей при използване на видеокартата GeForce2 MX?

Отговор: Доколкото поддръжка на втори дисплей в GeForce2 MX е била разработена за поддръжка на цифрови плоски монитори, максималната пикселна честота за втори дисплей е 150 Hz. Това автоматично ограничава резолюцията на втория дисплея 1280х1024(за описание на това как пикселната честота ограничава видеорежимите вижте XFree86 Video Timings HOWTO). Такива ограничения няма в GeForce4 или GeForce FX – където максималната пикселна честота е еднаква за двата дисплея.

Въпрос: Работи ли видеонаслагването върху двата дисплея заедно?

Отговор: Хардуерното видеонаслагване работи само за първия дисплей. Към момента за изобразяване на видео в TwinView се използва блитинг (bit block transfer).

Въпрос: Как се определя размера на виртуалния екран в TwinView?

Отговор: След всяка проверка за достъпност на всички видеорежими, и изчисления за позиционирането на всяко област за изхода на метарежима, драйвера изчислява правоъгълните области за разпъване на всеки мета режим. Накрая се изгражда максимален прозорец(по височина и ширина) който да ги зареди.

Обърнете внимание, че страничен ефект от този механизъм може да е това че височината и ширината на виртуалния дисплей могат да бъдат различни от тези на зададените в метарежима. Например присвояването на  MetaMode стойности:  

"1600x1200,NULL; 1024x768+0+0, 1024x768+0+768"  

  води до режим на виртуалния екран 1600 x 1536.

Въпрос: Мога ли да играя игри в пълноекранен режим, отворен и на двата дисплея?

Отговор: Да. Тъй като настройките на различните игри се различават, основната идея на метарежима е да предостави на Х режим с резолюция, обединяваща правоъгълниците на видимата област за метарежима. Например следните редове:  

     Option "MetaModes" "1024x768,1024x768; 800x600,800x600"

     Option "TwinViewOrientation" "RightOf"  

създават два видео режима: един с резолюция 2048x768, и друг резолюция 1600x600. Такива игри като Quake 3 Arena използват VidMode за определяне на достъпната резолюция. За конфигуриране на Quake 3 Arena за използване на гореуказания мета режим(1600x600), добавете следните редове във файла q3config.cfg:

      seta r_customaspect "1"

      seta r_customheight "600"

      seta r_customwidth  "1600"

      seta r_fullscreen   "1"

      seta r_mode         "-1"  

обърнете внимание, че в горната конфигурация е недостъпен режима с резолюция 800x600 (помнете, че мета режима "800x600, 800x600" има резулаттиращи резолюции 1600x600), така че при настройки на Quake 3 Arena за използване на резолюция 800x600, изображението ще е разположено във горния ляв ъгъл на екрана, а останалата част ще бъде запълнена със сив цвят. За един дисплей трябва да имате ред на MetaMode с подобни стойности :  

"800x600,800x600; 1024x768,NULL; 800x600,NULL; 640x480,NULL"  

По-точна информация за настройките на отделните игри, не можете да намерите в това ръководство. Въпреки това гореизложената информация заедно с източници от интернет може да ви помогне да настроите своите игри.

Към съдържанието

Приложение H

Конфигуриране на TV-out

Видеокартите основани на графичните процесори NVIDIA и снабдени с ТВ-изход, могат да използват телевизора като дисплей наравно с другите CRT и плоски дисплеи. Телевизора може да се използва самостоятелно или съвместно с други монитори в режима TwinView или с няколко екрани на Х. Ако телевизора е единствено включен към видеокартата, то той ще се използва като основен дисплей при зареждането на системата(т.е., конзолата ще се появява на телевизора точно както и на електронно лъчевия монитор). Драйвера на NVIDIA за Х създава списък с видео режими за телевизора с използването на всички резолюции, които се поддържат в избрания стандарт на ТВ-сигнала и установения контролер на ТВ-изхода. Видео режимите получават название в зависимост от резолюцията, например "800x600".

Доколкото видео режима за телевизора зависи от стандарта на ТВ-сигнала и възможностите на контролера за ТВ-изхода, те не преминават обичайната процедура по проверка за достъпност на видео режима. Опциите от конфигурацията на Х HorizSync и VertRefresh не се използват за проверка на резолюцията на телевизора. В допълнение драйвера NVIDIA съдържа готов списък с видео режими, които могат да бъдат използвани във всеки стандарт на ТВ-сигнала и различен контролер на ТВ-изхода. Така, че зададените стойности в конфигурационния файл на Х се игнорират за телевизора.

За настройка използването на телевизора от Х има няколко опции в конфигурационния файл:

o Опция Modes в секция Screen може да бъде използвана за настройка на всякакъв режим от списъка, създаден от драйвера на Х за текущото съчетаване стандарта на ТВ-сигнала и контролера на ТВ-изхода. Например "640x480" и "800x600". Ако не стане използвайте, "nvidia-auto-select".

o Опция "TVStandard" трябва да е добавена в секцията Screen; нейните стойности се явяват:
   
        Стандарт  на ТВ-сигнала           Описание
        --------------                                 -------------------------------------------------
        "PAL-B"                                   използва се в Белгия, Дания, Финландия, Германия,
                                                         Гвинея, Хонконг, Индия, Индонезия, Италия, Малайзия,
                                                         Холандия, Норвегия, Португалия, Сингапур, Испания,
                                                         Швеция и Швейцария.
        "PAL-D"                                   използва се в Китай и Северна Корея
        "PAL-G"                                   използва се в Дания, Финландия, Германия, Италия,
                                                         Малайзия, Холандия, Норвегия, Португалия, Испания,
                                                         Швеция и Швейцария
        "PAL-H"                                   използва се в Белгия
        "PAL-I"                                    използва се в Хонконг и Великобритания
        "PAL-K1"                                 използва се в Гвинея
        "PAL-M"                                  използва се в Бразилия
        "PAL-N"                                   използва се в Франция, Парагвай и Уругвай
        "PAL-NC"                                използва се в Аржентина
        "NTSC-J"                                 използва се в Япония
        "NTSC-M"                               използва се в Канада, Чили, Колумбия, Коста-Рика,
                                                        Еквадор, Хаити, Хондурас, Мексико, Панама, Пуерто-
                                                        Рико, Южна Корея, Тайван, США и Венецуела
        "HD480i"                                 междуредов режим с 480 реда
        "HD480p"                                поредов режим с 480 реда
        "HD720p"                                поредов режим с 720 строками
        "HD1080i"                               междуредов режим с 1080 строками
        "HD1080p"                              поредов режим с 1080 строками
        "HD576i"                                 междуредов режим с 576 строками
        "HD576p"                                поредов режим с 576
   
    Реда в конфигурационния файл на Х трябва да има следния вид:
   
Option "TVStandard" "NTSC-M"
   
Ако не сте указали стандарт на ТВ-сигнала или сте указали неправилно значение, ще се използва по подразбиране "NTSC-M". Ако вашата страна не е в списъка на гореуказаните, изберете някоя близка до нея.

o Опцията "UseDisplayDevice" може да бъде използвана в случай когато са включени няколко дисплея и искате да използвате например телевизор а не включения монитор. Например:
   
Option "UseDisplayDevice" "TV"
   
Препоръчва се да използвате опцията "UseDisplayDevice", а не опцията "ConnectedMonitor".    
   
o Опцията "TVOutFormat" може да бъде използвана за указване формата на извеждания сигнал. Когато опцията не се използва, драйвера автоматично определя формата на сигнала. За съжаление, това не всеки път дава правилен резултат. Формата на сигнала може да бъде зададен принудително в дадените опции с възможни стойности:
 
        Стойност                     Описание                                          Поддържани стандарти на ТВ-сигнала
        -------------------                 -------------------                               -------------------
        "AUTOSELECT"           Драйвер определя                          PAL, NTSC, HD
                                              формат автоматично  
                                              (по подразбиране)    
        "COMPOSITE"             Композитен  сигнал                         PAL, NTSC
        "SVIDEO"                     Сигнал S-Video                                 PAL, NTSC
        "COMPONENT"            Компонентен сигнал                        HD
                                               известен като YPrPp      
        "SCART"                       Сигнал Scart,                                    PAL, NTSC
                                               известен като Peritel          
   
    Реда във файла за конфигуриране на Х трябва да изглежда така:

Option "TVOutFormat" "SVIDEO"
       
o Опцията "TVOverScan" може да се използва за задействане на мащабиране, ако се поддържа от контролера на ТВ-изхода. Допустимите стойности – десетични дроби в диапазона 1.0(максимум, изображение с максимален размер) до 0.0(минимум-изключване на мащабирането, изображение с минимален размер). По-подразбиране стойността е (0.0).

Драйвера на  Х-интерфейса NVIDIA може да не възстанови коректно конзолата с версии на XFree86 по-ранни от 4.3, когато конзолата е изведена на телевизора. Това е свързано с несъвместимост между модулите на XFree86 - int10. Ако използвате телевизор за изобразяване на конзолата, препоръчваме да обновите версията на Х до 4.3 или по-нова.


Към съдържанието

Приложение I

Инсталиране и настройка за лаптопи

Инсталирането и настройка на драйвера NVIDIA за лаптопи е аналогична както тази за десктоп компютъра, с някои неголеми изключения, разгледани по - нататък.

От версия 1.0-2802 на драйвера, информацията за вградените плоски дисплеи в лаптопите, която се използва в процеса на инициализация по подразбиране се зарежда от видео-BIOS. Това поведение може да бъде изключено чрез настройка на опцията "SoftEDIDs" в ядрото на стойност 0. Ако опцията е изключена, тогава данните могат да бъдат изведени от таблицата основана на значението на опцията "Mobile".

Опцията "Mobile" може да приема следните значения:

   Значение               Действие
   ---------------        ------------------------------------------------------
   0xFFFFFFFF         позволява на модула автоматично да определя  
                                 подходящата стойност.
   1                           ноутбуци Dell
   2                           ноутбуци Toshiba, но такива които не използват матрица Compal
   3                           всички други ноутбуци
   4                           ноутбуци Toshiba с матрица Compal
   5                          ноутбуци Gateway

Нека да кажем отново, че опцията за кернел - "Mobile" е нужна само ако е изключена опцията SoftEDIDs; ако се използва SoftEDIDs, т.е. тя е включена то по-добре да позволим на кернел сам да определи подходящата стойност (поведение по-подразбиране).

Ако ви е необходимо да промените тази опция, можете да направите чрез следните способи:

  o редактиране os-registry.c в директорията usr/src/nv/ на файла '.run'.

  o задаване значения с помощта на modprobe от конзола (например:
   `modprobe nvidia NVreg_SoftEDIDs=0 NVreg_Mobile=3`)

  o добавяне на ред "options" в конфигурационния файл на модула, обикновено се намира в
    '/etc/modules.conf' (например: "options nvidia NVreg_Mobile=5")


Допълнителна функционалност

В тази секция се обсъжда допълнителната функционалност, свързана с конфигурацията на лаптопите.

TWINVIEW

Всичките мобилни графични процесори поддържат TwinView. Технологията TwinView на лаптопите може да бъде настроена както и при настолните компютри(обърнете се към приложение G); забележете, че при конфигурирането на TwinView, използващ монитора на лаптопа и външен CRT монитор, то външния се явява основен дисплей(задайте диапазона на честотите в опцията HorizSync и VertRefresh в часта Monitor на конфигурационния файл на Х), а интегрирания – допълнителен(задайте диапазона на честотата по вертикала и хоризонтала в опцията SecondMonitorHorizSync и  SecondMonitorVertRefresh).

Опцията "UseEdidFreqs" в конфигурационния файл на Х е включена по подразбиране, така че обикновено няма нужда от редактиране на опцията "SecondMonitorHorizSync"  и "SecondMonitorVertRefresh". Обърнете се към описанието на опцията UseEdidFreqs в приложение D за допълнителна информация).

Превключване между монитори при натискане на „горещ клавиш”

В допълнение TwinView, на мобилните графични процесори NVIDIA също така имат и възможност да реагират на превключването между LCD и CRT при натискане на „горещ” клавиш, с превключването между отделните дисплеи по отделно и чрез различни комбинации(обърнете внимание, че само два дисплея могат да се използват едновременно). Използването на TwinView, зададено във файла за конфигурация на Х, и „горещия” клавиш са взаимоизключващи се неща. Ако включите в конфигурационния файл TwinView, то драйвера NVIDIA ще игнорира натискането на „горещия” клавиш.

Друго важно което трябва да се знае за „горещия клавиш” е че можете динамично да включвате и изключвате дисплеи към лаптопа, чрез използването на „горещия клавиш” за тяхната активация и деактивация без да рестартирате Х.

Когато е стартиран Х, или когато се презарежда изменението на списъка с включените дисплеи, се създава нова последователност – какви дисплеи ще се използват при натискането на „горещ” клавиш. Когато е засечено натискане на „горещ” клавиш, се избира следващо състояние от последователността. Всеки видео режим проверява достъпността до свързаните дисплеи и се установява режима за всеки монитор. Ако едновременно са активирани няколко монитора, режима на всеки от тях се сравнява поотделно; ако има пълно съвпадение (еднаква разделителна способност на екраните), то тогава се използват близки и подходящи, а резолюцията на дисплея с по-малка разделителна(взема се тази резолюция) способност се разтяга в другия дисплей.

При превключване на Х с виртуален терминал, графичната конзола винаги се възстановява на този дисплей, на който е била при стартирането на Х. Аналогично при превключване обратно в Х, се използва тази конфигурация на дисплеите която е била при стартирането на Х, независимо от натискането на „горещия” клавиш по време на работа във виртуалния терминал При превключени с Х-интерфейса в виртуален терминал.

Нестандартни видеорежими при LCD

Някои потребители се сблъскват с трудности при задаването на режима 1400x1050 (начален при някои екрани на лаптопи). Във версиите на XFree86 4.0.3 беше добавена поддръжка на няколко режима 1400x1050 към списъка на стандартните поддържани, но ако се използва по ранна версия на XFree86, може да се добавят следните стойности на опцията Modeline за по – добра работа:

   # -- 1400x1050 --
   # 1400x1050 @ 60Hz, 65.8 kHz hsync
   Modeline "1400x1050"  129  1400 1464 1656 1960 1050 1051 1054 1100 +HSync +VSync


Известни проблеми с лаптопи

Съществуват няколко известни проблеми с лаптопи:

o Превключване LCD/CRT при натискане на „горещ” клавиш към момента не работи на лаптопи Toshiba, с изключение на версия Satellite 3000.

o Функцията TwinView не работи на лаптопи серии Toshiba Satellite 2800.

o Видеонаслагването работят само за първи дисплей, на който се зарежда Х. Например, ако Х е бил стартиран на първия LCD дисплей, като на него върви видео(чрез възможността "Video Overlay" през XV разширение) и после включите към лаптопа чрез „горещ” клавиш втори дисплей, то видеото няма да се появи на втория дисплей. Като решение на този проблем може да настроите възможността "Video Blitter" разширени XV (тази възможност винаги е достъпна), или пък да превключите чрез „горещ” клавиш, на този дисплей на който искате да гледате видео преди стартирането на Х.

Към съдържанието

Приложение J

Настройка на видеорежимите

Драйвера NVIDIA за ГНУ/Линукс поддържа всичките стандартни видео режими VGA и VESA, както и най-използваните потребителски режими; режими с двойни сканирания се поддържат от всички графични карти. Поредовите режими се поддържат от графични процесори тип GeForce FX/Quadro FX и по-нови; журналния файл на Х съдържа съобщение "Interlaced video modes are supported on this GPU", ако се поддържат поредовите режими.

За използване на един или няколко стандартни видео режима на Х, можете да добавите в опцията "Modes":

Modes "1600x1200" "1024x768" "640x480"

В съответната секция Display в конфигурационния файл на Х(обърнете се към страницата на XF86Config(5x) или xorg.conf(5x) за допълнителна информация). Ако се възползвате пък от инструмента nvidia-xconfig за задаване на допълнителен видео режим можете да напишете следното:

#nvidia-xconfig --mode 1600x1200

Обърнете се към страницата на ръководството на nvidia-xconfig за повече подробности.

Дълбочина на цвета, бит на пиксел и стъпка

Въпреки, че не е свързано директно със създаването на видео режима, числото бит на пиксел се явява проблемно при определяне на максималната достъпна резолюция; по тази причина трябва да се обясни често възникващата заблуда между понятията бит на пиксел и дълбочина на цвета. Дълбочината на цвета е число – често бит данни, използвани за съхраняването на пиксела(обем на памет за пиксел) – поддържаната дълбочина е - 8, 15, 16, и 24. Повечето видеокарти, пазят информацията за пиксела в размерност 8, 16, или 32 бита; това е обема памет заеман от пиксела. Когато задавате дълбочината на цвета, Х избира обема памет(използвана за съхраняване на данните), която ще съхранява данните. По-долу е показана таблица, колко битове за пиксел се използват в зависимост от дълбочината на цвета:

Дълбочина на цвета (DEPTH)            Бит на пиксел (BPP)
   ----------------------------------           ----------------------------------
                          8                                     8
                         15                                    16
                         16                                    16
                         24                                    32

Напоследък се въведе понятието стъпка(pitch)-означава, колко байта от линейния буфер на кадъра разделя отделните пиксели. Тоест това е мястото между пикселите във всеки CRT дисплей или между клетките на LCD дисплея. Можете да изчислите това като разделите хоризонталната резолюция на байта(числото бит на пиксели разделено на 8) на пиксели които използва. На практика стъпката може да бъде по голяма от тази величина в следствие на въведени от системата ограничения.

Максимална резолюция

Драйвера NVIDIA за ГНУ/Линукс поддържа резолюция до 8192x8192 пиксела, за графичните процесори GeForce 8 и по новите, за по старите до 4096x4096 за GeForce 7 и преди тях, максималната възможна резолюция на вашата система може да бъде ограничена от обема видео памет(вж. раздел полезни формули по долу) и максималната разделителна способност на дисплея(монитора/плоския панел/телевизора). Така също обърнете внимание, че използването на видео овърлей не ограничава максималната разделителна способност или честотата на опресняване, но пропускателната способност на видео паметта оказва влияние върху  качеството на видео овърлея.

Полезни формули

Максимална резолюция – това е функция както от обема на видеопаметта, така и от избрания брой битове на пиксел:

HR * VR * (bpp/8) = обем използвана видеопамет

С други думи, обема на използвана видео памет е равен на резултата от умножението на хоризонталната резолюция (HR) и вертикалната резолюция (VR) и на броя байтове на пиксел (броя бит на пиксел, делени на 8). От гледна точка на техниката, обема на използваната видео памет е равен на произведението на стъпката по вертикалната резолюция, за съответствия с изискванията на оборудването, така че стъпката да е кратна на някоя величина.

Обърнете внимание, че става въпрос за памет необходима на кадровия буфер, но паметта може да се използва и за други задачи такива като OpenGL и кеш за пикселната карта.

Съществува и друга важна зависимост между резолюцията, честотата на пикселите и честотата на вертикална синхронизация(честота на опресняване):

RR = PCLK / (HFL * VFL)

С други думи, честотата на опресняване(RR) е равна на резултата от деленето стойността на пикселната честота(PCLK) на общото число пиксели в изображението(хоризонтална дължина на кадъра (HFL), умножена по вертикална дължина на кадъра а (VFL) обърнете внимание, че става въпрос за дължината на кадъра, а не само за видимите разширения). Както е описано в документацията на XFree86 Video Timings HOWTO, по горната формула може да бъде представена така:

PCLK = RR * HFL * VFL

При максимално значение на PCLK вие можете да задавате стойностите на RR, HFL и VFL както ви е угодно до тогава до като резултатите от произведението на трите остане в зададения предел на PCLK. Пикселната честота се записва във журналния файл на Х във вида:

   (--) NVIDIA(0): ViewSonic VPD150 (DFP-1): 165 MHz maximum pixel clock

Показващ стойността на максималната пикселна честота на дисплея.

Как се проверява достъпността на видео режима

Традиционно в XFree86/X.Org при проверка на достъпността на видео режима сървъра Х започва с вътрешния списък на стандартните VESA режими, с добавяне на режими зададени в реда ModeLines в конфигурационния файл на Х. Тези режими се проверяват по такъв критерий като попадане в зададения диапазон на честоти HorizSync/VertRefresh за монитора в секция Monitor в конфигурационния файл на Х, максимална пикселна честота на графичния процесор.

След като Х е създал списъка с коректни видео режими се създава списък със създадените от потребителя видео режими(добавени в реда "Modes" в секция Display в секция Screen на конфигурационния файл на Х) и се определя най – подходящия проверен режим за този потребител.

Драйвера на Х използва вариации на гореописаната последователност за проверка достъпността на видео режима. В процеса на стартиране на Х драйвера създава списък от достъпни видео режими за всеки дисплей. Възможните режими се вземат от следните източници:

  o Информация EDID на дисплея

  o Вграден списък с видео режими в Х

  o Зададени от потребителя в реда modelines в конфигурационния файл на Х

  o Стандартните VESA режими

За всеки възможен режим се прави проверка за достъпност. В основни линии проверката е традиционна като тази на XFree86/Xorg: параметри за време на синхронизация се сверяват с допустимите диапазони на HorizSync и VertRefresh и максимално възможната пикселна честота. Всеки стадий на проверката може независимо да се управлява с помощта на реда "ModeValidation" от конфигурационния файл на Х.

Неправилните режими се премахват, коректните се оставят в списък. Обърнете се към секция Отчет за проверка достъпността на видео режима и резултат от проверката на всеки видео режим.

Достъпните видео режими се обозначават с уникално название, гарантиращо неповторяемост в списъка за дисплея. Названието се съставлява по принципа:

   <ширина>x<височина>_<честота опресняване>, (например, "1600x1200_85")

Названието може да бъде допълнено с друга цифра за уникалност, например:
"1600x1200_85_0".

След добавянето на достъпните тези които се дублират се премахват и списъка се сортира отново, така че най–подходящите да бъдат на върха. Сортировката се провежда по :

  o Резолюция

  o Източник (режим, съобщение по EDID, имат преимущество над VESA-режими, които на свой ред пък имат преоритет над режимите в списъка на Х)

  o Честота на опресняване

След проверката за достъпност всички видеорежими от всички източници от списъка се сравняват и най-подходящия се добавя в списъка отново с наименованието, състоящо се само от разделителната способност.
(например, "1600x1200"). В този случай при зареждане на режим с традиционно название ("1600x1200") вие получавате този режим, в най-добро разширение 1600x1200); допълнително всички режими от списъка могат да бъдат наименувани с уникално название.

При повече количество на извеждана информация в журналния файл на Х(обърнете се към приложение „Често задавани въпроси” за информация как да се зададе повече информация, която да се записва в журналния файл) списъка на видеорежимите на всеки дисплей се извежда в отделен журнал.

След съставянето на списъка с видеорежимите за всички дисплеи, необходимите режими(зададени в конфигурационния файл на Х) се търсят в списъка на режими. Всеки необходим режим, за когото има съвпадащи видеорежими в списъка, се съобщава на Х и се прави достъпен за избор чрез „горещ” клавиш на Х (ctrl-alt-плюс/минус)и разширенията на Х-интерфейса XRandR и XF86VidMode. Ако само един дисплей се използва екрана на Х, то тогава при стартирането на Х за този дисплей са достъпни всички възможни резолюции. Обърнете се към описанието на опцията "IncludeImplicitMetaModes" в приложение D информация.


Режим NVIDIA-AUTO-SELECT

Можете да стартирате специални режими чрез опция във файла за конфигурация на Х, с название "nvidia-auto-select". Когато драйвера на Х създава списъка с режими, един от режимите се избира като "nvidia-auto-select", новия запис се съхранява в списък и "nvidia-auto-select" се използва като уникално назнание за видеорежим.

Режима "nvidia-auto-select" е въведен в качеството на подходящ режим за дисплея, характеристиките на който са неизвестни (тоест за непознати монитори). Например "nvidia-auto-select" обикновено се използва за плоски панели, които чрез EDID са разпознати като плоски, или чрез някоя от детайлните стойности на EDID. Режима "nvidia-auto-select" гарантирано присъства винаги и е проверен за достъпност от драйвера на Х за дисплея. Ако всички способи за събиране на информация за дисплея са завършили с грешка, драйвера на Х настройва режима на 800 x 600, 60 Hz който е режим на "nvidia-auto-select".

Обърнете внимание, че режима на "nvidia-auto-select" като цяло не е обезателно да бъде режим с най висока резолюция от възможните за дисплея или пък най – добрата възможна честота. По скоро режима "nvidia-auto-select" се разбира като режим по подразбиране. Процеса на избор е следния:

o Ако информацията от ЕDID, съдържа сведения за предпочитани параметри на време за синхронизация и тези параметри са определени като достъпни, то този видеорежим ще бъде използван като "nvidia-auto-select". Можете да проверите съобщава ли вашия дисплей тази информация чрез стартиране на Х с параметри logverbosity по-голямо или равно на 5(обърнете се към раздел „Често задавани въпроси” за информация по увеличаване равнището на извежданата в журналния файл информация), и разгледайте изхода на EDID в журнала; ако присъства реда:
   
Prefer first detailed timing : Yes
   
то тогава ще бъде използван първия видеорежим, описан в секцията "Detailed Timings".

o Ако информацията EDID не съдържа сведения за предпочитаните параметри за времето на синхронизация, ще бъде избран максимален видеорежим от тези в EDID в качеството на "nvidia-auto-select".

o Ако информацията EDID не съдържа сведения за параметрите на времето на синхронизация, или пък EDID е недостъпна, то ще бъде използван максимално достъпния видеорежим с разделителна способност не по голяма от 1024х768 в качеството на "nvidia-auto-select". Ограничението от 1024x768 е въведено за предотвратяване избора на много големи видеорежими от достъпните, например 2048x1536.

o Ако всички останали методи за определяне са завършили с грешка, то в качеството на "nvidia-auto-select" драйвера на  Х избира  800x600 60Hz.

Ако не е записан в конфигурационния файл никакъв режим, или  пък всичките записани режими не са били намерени в списъка, то драйвера на Х винаги се стартира но в режим "nvidia-auto-select". В такъв случай съответното предупреждение ще бъде записано в журнала на Х  Соответствующее предупреждение будет записано в файл журнала Х-интерфейса.

Можете да добавите режим "nvidia-auto-select" във конфигурационния файл на Х с командата:

#nvidia-xconfig --mode nvidia-auto-select

и да презаредите Х.

Драйвера на Х ще се справи много добре с настройката на видеорежима "nvidia-auto-select", ако има информация от EDID. Това е една от причините да се отказва опцията "IgnoreEDID", препоръчва се използване само на опцията "UseEDID". Обърнете внимание, че вместо изключване на цялостното използване на EDID в опцията "UseEDID" можете индивидуално да изключите различни данни от тази информация чрез използването на "UseEDIDFreqs", "UseEDIDDpi", и/или "NoEDIDModes" в опциите и опцията на конфигурационния файл на Х "ModeValidation".

Отчет за проверка достъпност на видеорежима

При равнище 6 на детайлизация на журналния файл или повече (например, `startx -- -logverbose 6`), в журнала се записва всеки видеорежим за всеки дисплей чрез съставянето на списък, резултат от проверката за достъпност. За режимите, които са некоректни в журнала се записва информация указваща причината за некоректността.


Уеднаквяване на  времената за синхронизация на видео режимите

Някои функции, като „активно” стерео с поддръжка на TwinView, изисква контрол за използването на параметрите за синхронизация на видео режима. За точното управление времето за синхронизация на всеки видео режим на всеки дисплей можете да зададете видео режим, който желаете  да използвате чрез реда modeline (използвайте генератор на modeline), с използване на уникално название. Например, ако ви е нужно да използвате видео режим 1024x768, 120 Hz на всеки монитор в режим „активно” стерео TwinView, можете да зададете в секцията Monitor в конфигурационния файл:
   
# 1024x768 @ 120.00 Hz (GTF) hsync: 98.76 kHz; pclk: 139.05 MHz
Modeline "1024x768_120"  139.05  1024 1104 1216 1408  768 769 772 823 -HSync +Vsync
   
    След това в секция Screen създайте метарежим с:
   
Option "MetaModes" "1024x768_120, 1024x768_120"
   
Допълнителна информация

Генератор на modeline за XFree86, отговарящ на стандарта GTF, е достъпен на сайта http://gtf.sourceforge.net/. Други генератори можете да намерите чрез търсачката на freshmeat.net като напишете дума "modeline".

Към съдържанието

Приложение К

Flipping and UBB

Драйвера NVIDIA за ГНУ/Linux поддържа общ буфер на заден план(UBB) и OpenGL превключване. Тази функция обезпечава подобрението на производителноста в някои случаи.

# Общи буфер (UBB): достъпен е само за графични процесори от семейството на Quadro (с изключение на Quadro4 NVS), и е включен по-подразбиране, ако има достатъчен обем видео памет. Той може да бъде изключен с помощта на опцията UBB в конфигурационния файл на Х, описан в приложение D. Когато UBB е включен, всичките прозорци използват съвместно един и същи буфер на заден план(UBB), за шаблон и дълбочина. При наличие на няколко прозорци, използването на тези буфери никога не превишава размера, на използвания текущ прозорец разгърнат на цял екран. Въпреки това използването на буфера за прозорец, който не е разпънат на цял екран е също толкова, колкото и при разпънат на цял екран прозорец. В този случай видеопаметта може да се използва по-малко оптимално, отколкото при изключен UBB.

# Flipping(развъртане): Когато е включен OpenGL Flipping, смяната на изображенията се извършва по пътя на промяна на буфера с който работи DAC (цифрово-аналоговия преобразувател), вместо чрез копиране на изображението от задния буфер в предния; това обикновено дава много голяма производителност и позволява да се осъществява непрекъсната промяна на изображението по време на вертикалното трасиране(когато е настроена променливата на средата _GL_SYNC_TO_VBLANK). Има някои условия, при съблюдаването на които OpenGL може да извършва Flipping, но като цяло на новите графични процесори GeForce или по нови, OpenGL може да осъществява flipping, когато се изпълнява едно пълноекрано приложение OpenGL, но няма други недостъпни OpenGL прозорци, и е зададена променливата  __GL_SYNC_TO_VBLANK. Допълнително, на процесорите от семейството Quadro, filp може да се осъществява даже ако има прозорец на OpenGL приложения частично разпънато и прикрито от други прозорци, но не и разпънато на пълен екран или пък не е включена променливата __GL_SYNC_TO_VBLANK.

Към съдържанието
Приложение L
Често срещани проблеми.

Следните проблеми съществуват в текущата версия на драйвера и трябва да бъдат решени.

Известни проблеми

OpenGL и dlopen()

Има някои трудности със старите версии на динамичния лоудер glibc (в частност, с версиите от дистрибутива Red Hat Linux 7.2) и приложения, такива като Quake3 и Radiant, използващи dlopen(). Обърнете се към глава 4 за допълнителна информация.

Няколко видеокарти, няколко монитора

В някои случаи, втората видеокарта не инициализира правилно кернел модула на драйвера. Можете да решите този проблем, чрез използване на модула XFree86 за обработка на прекъсванията Int10 за „меко” зареждане на допълнителните видеокарти. Обърнете се към Приложение D за допълнителна информация.

Взаимодействие с pthreads

Едно-поточните приложения, използващи dlopen() за зареждането на библиотеката libGL NVIDIA, и едновременно, за зареждането на всички други библиотеки, свързани с libpthread, аварийно ще се затварят в libGL. Това се случва с новите библиотеки на OpenGL ELF TLS NVIDIA (вж. приложение C за описание на библиотеките ELF TLS OpenGL). Възможни действия при такъв проблем:
 
     1. Заредете библиотеката, свързана с libpthread, преди libGL.
     2. Свържете само приложението с libpthread.
 
 
Платформа X86-64 (AMD64/EM64T) и кернел версия 2.6

Много x86_64 версии 2.4 и 2.6 на кернела  имат неуточнени проблеми с изпълнението на change_page_attr в кернел интерфейса. Ранните версии на кернела -2.6 имат включена проверка извикваща събитието BUG() при констатиране на подобен проблем(резултата от това събитие е затварянето на предизвикалата го програма от кернела. Тази програма може да е вашето OpenGL приложение или дори Х сървъра). Проблема е отстранен при версии на ядрото 2.6.11.

В драйвера са добавени специални проверки за определяне, дали модула е компилиран към кернел за платформа x86-64 при използване на кернел версии  2.6.0 и 2.6.11. Ако има такъв случай се изключва използването на change_page_attr. Това позволява да се избегне проблема, но остава системата уязвима за конфликти в кеша(вж. конфликти в кеша по – долу за допълнителна информация). Обърнете внимание, че проблема change_page_attr и BUG() могат да бъдат констатирани и на други ядра, зависещи от този интерфейс.

Ако използвате ядро версии 2.6 за x86_64 платформа, препоръчително е да се обнови ядрото до версия  2.6.11 или по нова.

Така също обърнете внимание за проблемите с директния достъп до паметта (DMA) в 64-битовите системи в Приложение АА.


Конфликти на информацията в кеша

Конфликтите възникват, когато няколко връзки със страниците в паметта имат взаимно противоречащи си състояния на кеширането, например дали да се кешира или да не се кешира. При тези противоречия данните в заредени в паметта може да се повредят при запълване кеша на централния процесор. Ако страницата се използва за директен обмен с паметта от драйвер (в случая драйвера NVIDIA), това може да доведе до проблеми в работата на системата и до „увисване”.

NVIDIA е открила грешки в някои версии на ГНУ/Линукс кернел, свързани с конфликта на кеша. Докато някои системи работят абсолютно нормално при възникването на тези конфликти, то в други се наблюдава проблем със стабилността, водеща до случайни „увисвания”. Потребителя сблъскващ се с нестабилна работа на системата е най – добре да обнови своето ядро до версии, които нямат такива проблеми.

NVIDIA е добавила в драйвера механизъм за засичане на тези конфликти и дава съобщение със следното съдържание:
 
NVRM: bad caching on address 0x1cdf000: actual 0x46 != expected 0x73
 
Ако видите това съобщение в журналния файл на Х и се сблъскате с проблеми със стабилността, трябва да обновите ядрото до последни достъпни версии.

Ако съобщението продължи да се явява изпратете отчет за грешката в NVIDIA.

64-битови BAR (Базов адресен регистър)

Започва с първите графични процесори с вградена поддръжка на PCI Express, графичните процесори NVIDIA съобщават за поддръжката на 64-битов регистър(базовия адресен регистър съдържа информация положението на PCI I/O региона, във вид на регистър или кадров буфер). Това означава, че областта на паметта за операциите I/O на графичния процесор може да бъде поставена преди 32-битова схема на пространството (първите 4 гигабайта памет).

Избора на място за помещаване на BAR се осъществява от BIOSа на дънната платка по време на зареждане на машината. Ако BIOS поддържа 64-битови регистри, то областта на паметта за операциите I/O може да бъде поставен преди 32-битова на пространството. Ако BIOS не поддържа тази функция, то областта на паметта за операциите I/O ще бъдат поместени в 32-битовата схема на пространството където винаги е бил.

За съжаление текущата реализация на ядрото на ГНУ/Линукс вкл. 2.6.11.x не поддържа или не приема 64 битовите регистри на базовия адрес. Ако BIOS размести коя да е област от I/O в пределите на 32 битовото адресируемо пространство, кернел ще откаже да използва BAR и драйвера няма да работи. Към момента няма способ за решаване на този проблем.

Изчерпване на виртуалното адресно пространство в кернела на платформите X86

В системите Х86 и системите AMD64/EM64T, използващи ядро X86, виртуалното адресно пространство има максимален размер до 4 GB, който ядрото на операционната система обикновено разпределя между потребителските процеси и кернела в размер 3 GB и 1GB съответно. Частта отделена за кернела да използва за създаване на директно изображение на оперативната памет. В зависимост от обема на оперативната памет размера на частта от виртуалната памет отделена за ядрото, достъпна за различните процеси се колебае и може да бъде по-малко от 128 МВ, ако е инсталирана 1GB оперативна памет. По подразбиране се резервира 128МВ.

Виртуалното адресно пространство на кернела, оставащо след създаването на директното копие на оперативната памет, използвано като от кернел така и от драйверите за определяне на I/O ресурсите и резервиране областта на паметта. В зависимост от броя на процесите и техните изисквания, виртуалното адресно пространство на кернела може да се окаже изчерпано. Новите версии на кернела извеждат съобщение от типа:
 
   allocation failed: out of vmalloc space - use vmalloc= to increase size.
 
Модула на драйвера в кернела изисква определен обем виртуално пространство за всеки GPU при  резервирането на някои области на паметта. Ако по време на зареждането на системата не повече от 128МВ от пространството е достъпно за кернел и драйверите за устройства, модула е възможно да не може да инициализира всички GPU, или да резервира областта на паметта. Обикновено такива проблеми не възникват в системи с един или два графични процесора, но това зависи от броя на драйверите и техните потребности. Въпреки това в системите с 3 и повече GPU този проблем е често срещан.

   Възможните решения на този проблем включват:

o Ако е достъпен     параметъра 'vmalloc' на кернел може да бъде използван за увеличаване обема на виртуалното адресно пространство, резервирано от кернела на операционната система(по-подразбиране е 128МВ). Препоръчва се плавно да се увеличават стойностите до достигане на баланс между достъпния обем на виртуалното адресно пространство и обема на директното копие на оперативната памет. Това може да стане чрез последователно задаване на 'vmalloc=192M',  'vmalloc=256MB' и т.д. и проверка, какво съобщение подобно на горе изведеното се появява.
 
Обърнете внимание, че някои версии на GRUB имат проблем с изчисляването на разпределението на паметта и зареждането на initrd при използване на опцията 'vmalloc' за кернел. Командата 'uppermem' на GRUB
Може да бъде използвана, за да застави GRUB да зарежда initrd в долната област на системната памет, като заобикаляне на проблема. Това не може да повлияе на производителността на системата. Необходими команди:
       
                        title     Kernel Title
                        uppermem  524288  
                        kernel    (hdX,Y)/boot/vmlinuz...
       
       
Така също отбележете, че опцията 'vmalloc' се е появила в кернела от версия 2.6.9 и нататък. В старите версии обема на паметта използвана за ядрото можеше да бъде намален с помощта на 'mem', която намаля обема на точното изображение и увеличава обема на виртуалното адресно пространство. Например, 'mem=512M' заставя ядрото на операционната система да игнорира всичката оперативна памет освен първите 512 МВ. Освен за намаляването на достъпната оперативна памет, този подход може да бъде използван за проверка, с инициализацията на видеокартата и изчерпването на виртуалното адресно пространство.
 
o В някои случаи помага изключването на драйвера за кадровия буфер - vesafb, тъй като този драйвер може да се опита да зареди цялата и ли повечето памет във виртуалното адресно пространство, като по този начин го запълни веднага. Можете да изключите драйвера vesafb чрез опцията на кернел 'video=vesa:off vga=normal'.
 
o Някои версии на кернел на операционната система могат да бъдат настроени за друго разпределение на виртуалното адресно пространство(например 2.8 GB и 1.2GB, 2GB и 2GB). Такава възможност може да бъде използвана за предотвратяване изчерпването на виртуалното адресно пространство без да се намаля обема на директното копие на оперативната памет. В някои дистрибуции така също се съдържат версии на ядрото, използващи разделени адресни пространства за потребителските процеси и кернела. Такива ядра предоставят достатъчен обем на кернела в различните.
 
o Ако компютърът ви е с 64-битов процесор(съвместим с AMD64/EM64T), се препоръчва да преминете на използване на 64-битови дистрибуции на ГНУ/Линукс. Благодарение на значително големия размер на адресируемаата памет в 64 битовите процесори, Х86-64 битовия кернел не застрашава със запълване буфера на виртуалното адресно пространство в близко бъдеще.
 
Valgrind

Реализацията на OpenGL NVIDIA използва само-модифициращ се код. За да можете да възстановите кода след тези изменения, е необходимо да стартирате Valgrind с използването на:
 
--smc-check=all

Без тази опция Valgrind може да изпълни некоректен код, който да доведе до непредсказуемо поведение и грешка от вида:
 
==30313== Invalid write of size 4

Метод MMConfig за управление на адресното пространство в PCI конфигурации

Кернел на Linux от версия 2.6 съдържа поддръжка на изображението на оперативната памет на адресното пространство при PCI конфигурации. За съжаление възникват много проблеми с тази функция, и последните версии на ядрото са много внимателни в използването на този способ. Драйвера NVIDIA може да се окаже в невъзможност коректно да чете и записва в адресното пространство при PCI устройствата(видеокарти) на NVIDIA, при използване на метода MMCONFIG, особено при работа с многопроцесорни системи с 32 битови ядра. Използването на този метод може да бъде определено с присъствието на ред

"PCI: Using MMCONFIG"

във въвежданата информация в команден ред 'dmesg'. Този метод на управление може да бъде отключен с параметър към кернела "pci=nommconf".

Лаптопи

Ако се използва лаптоп, обърнете се към секция „Известни проблеми с лаптопи” в Приложение І.

Пълно екранен антиалайзинг (FSAA)

Когато е включено пълно-екранното заглаждане(на променливата на средата __GL_FSAA_MODE е присвоена стойност, включваща FSAA и е избрано използване на мултисемплинг), може да се наблюдава замазване при промяна размера на прозореца.

Завършване на libGL DSO и pthreads

При изход от мултипоточното OpenGL приложение е възможна ситуация, когато извикването за затваряне на DSO библиотеките libGL (известен като деструктор или "_fini") се изпълнява по време, когато все още се изпълнява OpenGL приложението. Извикването е необходимо за освобождаване на системни ресурси заети от libGL. Това може да предизвика срив в приложенията използващи тези ресурси. При присвояване на стойност „1” на променливата "__GL_NO_DSO_FINALIZER" се избягва този проблем по пътя на съхраняване на ресурсите на libGL при затварянето и. Тези ресурси стават достъпни за операционната система след завършване на процеса. Обърнете внимание, че извикването на завършване се изпълнява като част от процеса dlclose(3), така че ако има приложения, постоянно осъществяващи dlopens(3) и  dlcloses(3) към libGL, използването на метода с присвояване на „1” към "__GL_NO_DSO_FINALIZER" ще доведе до утечка на libGL ресурси до затварянето на процеса. Използването на тази възможност може да подобри стабилността на някои много-поточни приложения, включително и Java3D.

XVideo и Composite X разширението

ако се използва по ранна версия на Х.org от 7.1, XVideo работи неправилно при включено Composite. Обърнете се към Приложение S.

В следващата секция са описани проблеми, които няма да се поправят. Често причината за тях не се намира под контрол на NVIDIA.

Проблеми, които няма да бъдат остранени

Дънна платка Gigabyte GA-6BX

В тази дънна платка се използва регулатор за напрежение LinFinity на линия 3.3 V, изчислен за максимален ток 5А – по-малко от предвиденото за AGP, т.е. 6 A. Когато се изпълнява проверка или работят приложения, температурата на регулатора нараства, което води до падане на напрежението, отиващо към GPU до 2.2 V. В тези условия, регулатора не може да обезпечи изискваното напрежение за GPU в размер на 3.3 V.

Този проблем не възниква, ако видеокартата е снабдена с импулсен регулатор или пък е включена към отделно 3.3 V захранване.

Чипсети VIA KX133 и 694X с AGP 2x

Дънните платки за процесори Athlon, изградени на основата на VIA KX133 или 694X чипсети, такива като ASUS K7V, драйвера NVIDIA по подразбиране ограничава скоростта на AGP порта 2x с цел да се избегне проблем с недостатъчното усилване на единия от сигнала по шината.

Чипсети Irongate с AGP 1x

AGP порта работи със скорост 1х на дънната платка за процесори Athlon, изградена на основата на чипсети Irongate, с цел да се избегне проблема с целостта на сигнала по шината.

Чипсети ALi ALi1541 и ALi1647

С чипсети ALi1541 и ALi1647, драйвера NVIDIA изключва AGP с цел да се избегне проблема с времевата синхронизация и целостта на сигнала. Обърнете се към Глава 5 за допълнителна информация за чипсетите ALi.


Разширение NV-CONTROL версия 1.8 и 1.9

Във версия 1.8 е въвежда понятието за типове обекти за проверка на атрибутите и получаване на съобщения за изменение състоянието на обекта. В качество на обект може е Х, GPU, G-Sync устройства. По-рано всичките атрибути се описваха като приети към Х сървъра. Тази нова информация(сведения за типа на обекта и идентификатор) се съхранява в поток от данни, така че при обръщане към Х интерфейса може да възникне грешка ако същия е с номер 1 или по-голям, в случая когато се смесват NV-CONTROL  за сървър и клиент с различни версии.

Този проблем е бил решен в протокол 1.10 на NV-CONTROL, като е направен възможен обмена между старите версии(1.7 и по-ранни) на клиента и сървъра NV-CONTROL 1.10. Допълнително, библиотеката на клиента  NV-CONTROL версия 1.10 е била доработена за изчистване от грешки при обмяна на информация с версии от 1.8 или 1.9. Това означава, че библиотеката на клиента NV-CONTROL версия 1.10 позволява да се работи с всяка версия на NV-CONTROL.

Препоръчва се отново да се свърже приложението-клиент NV-CONTROL с библиотеката на клиентаNV-CONTROL версия 1.10 или по-стара (libXNVCtrl.a, в пакета nvidia-settings-1.0.tar.gz). Версията на библиотеката може да бъде определена чрез проверка на стойността NV_CONTROL_MAJOR и NV_CONTROL_MINOR в nv_control.h.

Единствения официално публикуван драйвер  NVIDIA за Linux, имащ описания проблем (т.е. съдържащ разширението за Х-интерфейса от версия 1.8 или 1.9) е 1.0-8756.

I/O APIC (многопроцесорна система)

Ако се сблъскате с проблема и нестабилна работа при многопроцесорна система SMP и наблюдавате предупреждения от типа I/O APIC от кернела на Linux, надеджноста може многократно да бъде подобрена чрез опцията на кернел "noapic".

Local APIC (едно процесорна система)

В някои системи, използването на опцията на кернела "Local APIC Support on Uniprocessors" може негативно да повлияе на стабилността и производителността. Ако се сблъскате с „увисване” на еднопроцесорен компютър с Linux и използвате тази опция, опитайте да изключите поддръжката на local APIC.


Чипсети NForce2 и AGPGART

Някои ранни версии на драйвера agpgart с поддръжката на чипсета nForce2 имат грешки, водещи до „увисване” на системата. В качеството на възможно решение може да използвате NVAGP или да обновите кернела. Известни версии с този проблем все още се съдържат в дистрибуциите Red Hat Enterprise Linux 3 (до обновяване 7). Ако използвате драйвера agpgart с грешката и чипсета nForce2, драйвер NVIDIA ще се опита да заобиколи тази грешка доколкото е възможно, по пътя на възстановяване грешките по AGP шината или нейното пълно изключване.

За използване на  NVAGP вижте приложение F.


Към съдържанието

Приложение M
Proc интерфейс

Можете да използвате интерфейса /proc за получаване текущи сведения за драйвера, видеокартата NVIDIA и състоянието на AGP. Информацията се съдържа в няколко файла в /proc/driver/nvidia

/proc/driver/nvidia/version
Съобщава версията на инсталирания драйвер и версията на GNU С компилатора, използван за прекомпилиране на модула в кернел.

/proc/driver/nvidia/warnings
Драйвер NVIDIA се опитва да засече потенциални проблеми при работата си с кернела, използвайки механизма printk(), обикновено записва тези проблеми в '/var/log/messages'. Но важните предупреждения се съхраняват и тук в директория /proc.

/proc/driver/nvidia/cards/0...3
Съобщава информация за всеки инсталиран модел видеокарта NVIDIA (модел, название, IRQ, версия на BIOS, тип на шината). Обърнете внимание, че версията на  BIOS се съобщава само при стартиран Х .

/proc/driver/nvidia/agp/card
Информация за AGP възможностите на дадена AGP карта.

/proc/driver/nvidia/agp/host-bridge
Информация за чипсета (модел и възможности на AGP).

/proc/driver/nvidia/agp/status
Текущото състояние на AGP. Ако поддръжката на AGP е включена в системата, използва се AGP драйвера, то се извежда информация за скоростта на работа на AGP, възможност за използване на Fast Writes (бърз запис) и Side Band Addressing. Драйвера AGP може да бъде NVIDIA (вграден драйвер) или AGPGART (драйвер agpgart. за Linux). Ако видите "inactive" на AGPGART, то това означава, че чипсета е програмиран за AGPGART но в момента не се използва.

Реда SBA и Fast Writes показват, използва ли се една от тези функции към момента. Забележете че възможноста за задействане зависи от няколко фактора. Даже ако и видеокартата и чипсета поддържат тези функции, драйвера може да не ги използва с цел повишаване стабилността на системата. Това се отнася особено много за AGP Fast Writes.


Към съдържанието
Приложение N

Поддръжка на XvMC

Тази версия поддържа API компенсация на движението XVideo (XvMC) версия 1.0 за GPU GeForce4, GeForce FX и по-нови. Има се предвид статичната библиотека "libXvMCNVIDIA.a" и динамичната "libXvMCNVIDIA_dynamic.so", подходяща за dlopen. Графичните процесори GeForce4 MX, GeForce FX и по-нови поддържат както "IDCT", така и "motion-compensation" равнище на ускорение XvMC. Процесорите GeForce4 поддържат само равнище на ускорениеь «motion-compensation». Поддържат се и блокове на изображението AI44 и IA44. Повърхности със съотношение 4:2:0 и резолюция до 2032x2032 също се поддържат.

Библиотеката libXvMCNVIDIA проверява стойността на променливата на средата XVMC_DEBUG и поддържа извод на някои информации за грешки в stderr при определени стойности на променливата. Стойност '0' изключва изхода за грешка, '1' включва изход за случайна грешка, а '2' и повече и извеждат предупредително съобщение.

Приложение O

Поддръжка на GLX

Тази версия поддържа GLX 1.4. Допълнително на съвместимите графични процесори са достъпни следните разширения:
# GLX_EXT_visual_info
# GLX_EXT_visual_rating
# GLX_SGIX_fbconfig
# GLX_SGIX_pbuffer
# GLX_ARB_get_proc_address
# GLX_SGI_video_sync
# GLX_SGI_swap_control
# GLX_ARB_multisample
# GLX_NV_float_buffer
# GLX_ARB_fbconfig_float
# GLX_NV_swap_group
# GLX_NV_video_out
# GLX_EXT_texture_from_pixmap

За описанието на тези разширения се обърнете към базата данни в сайта на OpenGL http://oss.sgi.com/projects/ogl-sample/...

Някои от гореизброените разширения присъстват като част от основната функционалност на GLX 1.4, въпреки това могат да бъдат експортирани като разширения или като обратна съвместимост.

Към съдържанието

Приложение P

Конфигуриране на няколко екрана от една видеокарта

Графичните процесори с поддръжката на  TwinView (вж. приложение G) могат също така да бъдат настроени да използват всеки дисплей за отделен екран на Х.

Тъй както има няколко неудобства да се използва този метод, за разлика от TwinView (например, прозорците не могат да се местят от екран към екран, OpenGL приложенията не се отварят на цял екран), има и някои преимущества пред TwinView:
# Ако на всеки дисплей се извежда собствен Х-интерфейс, то характеристиката на изображението могат да бъдат различни за двата екрана, както и да се различават по дълбочина на цвета, размера на основния прозорец и т.н.
# Възможностите на оборудването, могат да бъдат използвани само на един дисплей в един момент от време (видео наслагването, апаратното RGB наслагване), и недостъпните за TwinView режими могат да бъдат използвани само на един екран от Х.
# TwinView се явява нова технология, докато Х-интерфейса исторически погледнат си е точно това един екран – един дисплей.

За създаване на два екрана на Х в една видеокарта е необходимо да се изпълнят следните последователности:
На първо време да се създадат две отделни секции Device, всяка изброяваща идентификатора на шината BusID на общата видеокарта, а също така идентификатора за драйвера "nvidia", трябва също да се настрои във всяка секция и собствен екран:

Section "Device"
 Identifier "nvidia0"
 Driver "nvidia"
 # въведете идентификатор BusID, описващ мястото на видеокартата
 BusID "PCI:2:0:0"
 Screen 0
EndSection

Section "Device"
 Identifier "nvidia1"
 Driver "nvidia"
 # въведете идентификатор BusID, описващ мястото на видеокартата
 BusId "PCI:2:0:0"
 Screen 1
EndSection

След това създайте две секции Screen, използвайки за всяка една от секциите Device:

Section "Screen"
 Identifier "Screen0"
 Device "nvidia0"
 Monitor "Monitor0"
 DefaultDepth 24
 Subsection "Display"
   Depth 24
   Modes "1600x1200" "1024x768" "800x600" "640x480"
 EndSubsection
EndSection

Section "Screen"
 Identifier "Screen1"
 Device "nvidia1"
 Monitor "Monitor1"
 DefaultDepth 24
 Subsection "Display"
   Depth 24
   Modes "1600x1200" "1024x768" "800x600" "640x480"
 EndSubsection
EndSection

(Отбележете че трябва да си създадете втора секция  Monitor).
Накрая, променете секцията ServerLayout използвана на взаимното позициониране на двете секции Screen:

Section "ServerLayout"
 ...
 Screen 0 "Screen0"
 Screen 1 "Screen1" leftOf "Screen0"
 ...
EndSection

За допълнителна информация се обърнете към страниците с ръководствота за XF86Config(5x) или xorg.conf(5x).

Към съдържанието

Приложение Q

Power management support

Тази версия на драйвера поддържа управление на енерго-потреблението, основано на стандартите APM и ACPI. Това означава, че драйвера поддържа режим APM при спиране (suspend) и пускане отново, и режима на ACPI в очакване (standby, S3) и спиране (S4).

BIOS на вашия лаптоп е трябва да поддържа управлението на захранването на основа на APM, а не на основа на ACPI. Много от лаптопите (но не всички) с графични чипове GeForce2 и GeForce4 поддържат APM. Можете да проверите за наличие на АРМ поддръжка чрез интерфейса procfs (проверете за наличие /proc/apm) или чрез информация, давана при зареждането на кернел с опция:

# dmesg | grep -i apm

съобщението, което трябва да се изведе е:
apm: BIOS version 1.2 Flags 0x03 (Driver version 1.16)

при отсъствие на АРМ поддръжка:
No APM support in Kernel

Обърнете внимание, че ако използвате кернел версия 2.6 и той е настроен за поддръжка на ACPI и APM, модула на NVIDIA към кернела ще бъде събран с поддръжка на ACPI. Ако искате да използвате АРМ, трябва сами да прекомпилирате кернела без поддръжка на ACPI и да преинсталирате драйвера отново.

Понякога чипсета губи своите настройки на AGP в режима на спиране, и може да доведе до неработоспособност на шината след старта. Драйвера е длъжен в такива системи да съхрани и възстанови състоянието на регистъра на системата; Драйвера NVIDIA NvAGP се осведомява за събитията по управлението на енерго-потреблението и съхранява информация за конфигурацията по време на стартиране и спиране на работата.

Драйвера AGPGART при Linux кернел версия 2.4 не поддържа управление на енерго-потреблението, версиите на кернел 2.6 поддържат но само за няколко чипсета. Ако използвате някой от тези драйвери, и забележите, че системата не излиза от режима на спиране, можете да пробвате с драйвера NVIDIA NvAGP.

Изключване на AGP поддръжката (вж. приложение F за допълнителна информация относно спирането на AGP) така също позволява да се реши този проблем.

Повечето нови компютри поддържат ACPI. ACPI се поддържа от драйвера NVIDIA за Linux при използването на кернел версия 2.6 и по – нови. Драйвера поддържа режим на очакване (S3) и също е включена пробна поддръжка на режима за спиране ACPI (S4).

Ако сте задействали поддръжката на режима ACPI S4 посредством пача suspend2, трябва да настроите кернела автоматично да определя броя на страниците в паметта за драйвера, който ще спира системата. Това се изпълнява чрез командата:

# echo 0 > /proc/suspend2/extra_pages_allowance
като root

Системата не се нуждае от рестартиране и дадената настройка се съхранява между рестартиранията. Може да се наложи да се включи тази настройка в автоматично стартиращите се програми. Може да се случи след въвеждането на настройката системата да „увисне”. За допълнителна информация относно suspend2 обърнете се към http://www.suspend2.net.

Към съдържанието

Приложение R

Система за наименоване на дисплеите

Понятието „Дисплей” се отнася за някаква разновидност на хардуера, която е способна да извежда изображение. Дисплеите се делят на три категории: аналогови електронно – лъчеви, цифрови плоски панели и телевизори. Отбележете, че аналоговите плоски панели драйвера разпознава като  CRT.

Името на дисплея това е реда, еднозначно идентифициращ дисплея във формат "<тип>-<номер>", например: "CRT-0", "CRT-1", "DFP-0", или "TV-0". Обърнете внимание, че номера показва, към кой изход на видеокартата е включен дисплея, и няма отношение към броя на дисплеите от този тип. Това означава, че например може да бъде "CRT-1", даже ако няма дисплей "CRT-0". За да определите какви дисплеи са включени може да погледнете в журналния файл на Х за реда:

(II) NVIDIA(0): Connected display device(s): CRT-0, DFP-0

Наименованието на дисплея може да се използва в опцията MetaMode, HorizSync, и VertRefresh в  конфигурацията на X за указване на устройствата, към които е необходимо да се зададат дадените настройки. Например:

Option "MetaModes" "CRT-0: 1600x1200, DFP-0: 1024x768"
Option "HorizSync" "CRT-0: 50-110; DFP-0: 40-70"
Option "VertRefresh" "CRT-0: 60-120; DFP-0: 60"

Обозначаването на наименованията на дисплея в тези опции не се явява обезателно изискване, ако дисплеите не са указани драйвера се опитва сам да определи, към кой дисплей се отнася инсталацията. В случай на мета режими, първия изчислен видео режим може да бъде използван като отнасящ се към основния дисплей, а втория към допълнителния. За съжаление не винаги е очевидно, кой се явява основния и допълнителния дисплей. Ето защо е препоръчително да се указват дисплеите.

При задаване наименования на дисплеите, можете да пропуснете номера от имената на устройствата, но това може да стане само в случаите  когато има по един дисплей от всеки тип. Например, имате един CRT и един цифров можете да ги укажете чрез следния ред:
Option "MetaModes" "CRT: 1600x1200, DFP: 1024x768"

Приложение S

X Composite разширения

X.org Х сървъра, започва с версия X11R6.8.0 съдържаща експериментална поддръжка на новото разширение с название Composite. Това разширение позволява прозорците да се прересуват в пикселни карти, а не направо в екрана. В съчетание с разширенията DAMAGE и RENDER, това позволява приложението да извиква диспечера на composite за смесване изображението на прозореца с друг при извеждането на екрана.

Производителноста може значително да се занижи, ако опцията "RenderAccel" във файла xorg.conf е изключена. Обърнете се към приложение D за допълнителна информация.

При използване на драйвера NVIDIA и сървъра X.Org версия X11R6.9.0 или по-нова, и е включено Composite, OpenGL NVIDIA коректно взаимодейства с Damage и Composite. Това означава, че изхода на OpenGL изображението използва пикселни карти и сървъра Х се информира от Damage за извеждането на пикселните карти на OpenGL изображението. Това позволява от своя страна OpenGL приложенията да изглеждат добре на десктопа.

Ако разширението Composite е включено в Х сървъра във версии по – стари от X11R6.9.0, GLX се изключва. Можете да го заставите да работи при такива условия с помощта на опцията "AllowGLXWithComposite". Въпреки това GLX няма да работи правилно. Препоръчва се да обновите Х сървъра до версия X11R6.9.0 или по-нови.

Можете да включите разширението Composite чрез 'nvidia-xconfig--composite'. Composite може да бъде изключено чрез 'nvidia-xconfig --no-composite'. Обърнете се към страницата с ръководството на nvidia-xconfig(1) за допълнителна информация.

Ако използвате Composite съвместно с GLX, се препоръчва да включите опцията на Х "DamageEvents" за повишаване на производителността. Ако се използва OpenGL диспечера на composite, така също може да се изпробва опцията "DisableGLXRootClipping" за получаване на правилно изображение.

Разширението Composite така също води до проблеми с други компоненти на драйвера:

  o В сървъра на Х версии по-ранни от X.Org 7.1, Xv не може да изчертае
  изображението в пикселните карти, в екранния буфер и директно извежда
  изображението на екрана. За някои приложения може да се използва алтернативен
  драйвер за изхода на видео например "mplayer -vo x11" работи нормално, също и
  "xine -V xshm". Ако искате да използвате Xv, трябва само да изключите
  диспечера на composite и да го включите след завършването на операциите.
  При използването на X.Org версия 7.1 и по-нова, драйвера трябва правилно
  да извежда изображението на зад кадровите пикселни карти. Обърнете внимание
  че Xv-съвместимите видеокарти ще игнорират опцията sync-to-vblank при
  изобразяването в прозореца.
  o Наслагването за работни станции, стерео режим и UBB несъвместими с Composite.
  Тези функции автоматично се изключват при засичане на Composite.


Драйвера поддържа изхода на OpenGL изображения и 32-битови ARGB прозорци, при включена опция "AddARGBGLXVisuals" във файла за конфигуриране на Х. Ако сте разработчик на програми, можете да използвате новите области на изхода на изображението съвместно с composite за създаването на прозрачни OpenGL приложения:

   int attrib[] = {
       GLX_RENDER_TYPE, GLX_RGBA_BIT,
       GLX_DRAWABLE_TYPE, GLX_WINDOW_BIT,
       GLX_RED_SIZE, 1,
       GLX_GREEN_SIZE, 1,
       GLX_BLUE_SIZE, 1,
       GLX_ALPHA_SIZE, 1,
       GLX_DOUBLEBUFFER, True,
       GLX_DEPTH_SIZE, 1,
       None };
   GLXFBConfig *fbconfigs, fbconfig;
   int numfbconfigs, render_event_base, render_error_base;
   XVisualInfo *visinfo;
   XRenderPictFormat *pictFormat;

   /* Make sure we have the RENDER extension */
   if(!XRenderQueryExtension(dpy, &render_event_base, &render_error_base)) {
       fprintf(stderr, "No RENDER extension found\n");
       exit(EXIT_FAILURE);
   }

   /* Get the list of FBConfigs that match our criteria */
   fbconfigs = glXChooseFBConfig(dpy, scrnum, attrib, &numfbconfigs);
   if (!fbconfigs) {
       /* None matched */
       exit(EXIT_FAILURE);
   }

   /* Find an FBConfig with a visual that has a RENDER picture format that
    * has alpha */
   for (i = 0; i < numfbconfigs; i++) {
       visinfo = glXGetVisualFromFBConfig(dpy, fbconfigs[i]);
       if (!visinfo) continue;
       pictFormat = XRenderFindVisualFormat(dpy, visinfo->visual);
       if (!pictFormat) continue;

       if(pictFormat->direct.alphaMask > 0) {
           fbconfig = fbconfigs[i];
           break;
       }

       XFree(visinfo);
   }

   if (i == numfbconfigs) {
       /* None of the FBConfigs have alpha.  Use a normal (opaque)
        * FBConfig instead */
       fbconfig = fbconfigs[0];
       visinfo = glXGetVisualFromFBConfig(dpy, fbconfig);
       pictFormat = XRenderFindVisualFormat(dpy, visinfo->visual);
   }

   XFree(fbconfigs);


При изхода на изображението в 32-битов прозорец, трябва да помните че RENDER, използван в повечето composite диспечери, очаква цветовите данни, предварително умножение по стойността на алфа-канала. Това означава, че ако вашето изображение използва трикомпонентни цветове (r,g,b) и алфа-канала a, в на изображението, извеждано в цял прозорец, цвета трябва да е във формат (a*r, a*g, a*b, a).

Допълнителна информация за Composite
http://freedesktop.org/Software/Composi...


Към съдържанието

Приложение T

Инструмента nvidia-settings

Интерфейса за настройката на драйвера 'nvidia-settings' е включена в състава на  драйвера NVIDIA за  Linux. След инсталиране на драйвера и стартирането на Х, можете да стартирате програмата с:

# nvidia-settings

в терминал.
Разширената информация за настройките е достъпна в документацията на програмата.

За допълнителна информация:
ftp://download.nvidia.com/XFree86/Linux...

Изходния код на nvidia-settings е достъпен под GPL по адреса: ftp://download.nvidia.com/XFree86/nvidi...
Ако имате затруднения със стартирането на изпълнимия файл nvidia-settings се обърнете към глава 5.

Приложение U

Разширението XRandR

Х сървъра версия X11R6.8.1 поддържа компонента, който отговаря за въртенето на изображението - XRandR. Това позволява да се завърта изображението на екрана със стъпка 90°.

Драйвера поддържа завъртане с използване на това разширение след включване на опцията "RandRRotation" в файла за конфигурация на Х.
Работни станции използващи RGB наслагване или индексиране на цветовата палитра работят с намалена производителност и видеонаслагването е недостъпно при включена опция RandRRotation.

Можете да проверите достъпните ъгли на въртене чрез използването на команден ред 'xrandr' на ХRandR. Изпълнете:

#xrandr -q

Можете да зададете посока на завъртане на екрана чрез:
#xrandr -o left (ляво)
#xrandr -o right (направо)
#xrandr -o inverted (обратно)
#xrandr -o normal (нормално положение)

Завъртането може да бъда така също направено чрез nvidia-settings в частта "Rotation Settings".
Режима TwinView и завъртането могат да се използват заедно, но ефекта на завъртането ще бъде разпространен на целия десктоп. Това означава, че изображението ще се изобразява на всички дисплеи на  TwinView. Така също ще бъде отбележете, че опцията се избира преди завъртането "TwinViewOrientation". Например, ако имате два дисплея един до друг и искате да ги завъртите то трябва да присвоите на опцията "TwinViewOrientation" значение "Above" (горе) или "Below" (долу).

Към съдържанието

Приложение V

Поддръжка на GLX в Xinerama

Драйвера поддържа GLX при включено разширение Xinerama на еднакви GPU. Разширението Xinerama събира множество физически екрани на Х(възможно е разположението на няколко GPU), и ги събира на един логически екран на Х. Това позволява да се прехвърлят прозорци между GPU да се разтягат на няколко процесора. Драйвера NVIDIA поддържа хардуерно ускорение OpenGL на всички графични процесори NVIDIA при включена Xinerama.


За да настроите Xinerama, създадете няколко екрана на Х(обърнете се към страницата на XF86Config(5x) или xorg.conf(5x) ръководствата). Xinerama за да бъде задействана трябва да въведете ред
Option "Xinerama" "True"
в секция "ServerFlags" на конфигурационния файл на Х.

Изисквания:
# препоръчва се да използвате идентични графични процесори. Някои комбинации на сходни но не и идентични GPU също се поддържат. Ако графичния процесор е несъвместим с останалите от десктопа на Xinerama и OpenGL изображението ще се появява само на екрана на този процесор. В тази ситуация в журналния файл на Х ще излиза изображение от вида:

(WW) NVIDIA(2): The GPU driving screen 2 is incompatible with the rest of
(WW) NVIDIA(2): the GPUs composing the desktop. OpenGL rendering will
(WW) NVIDIA(2): be disabled on screen 2.

# Драйвера NVIDIA трябва да се използва от всички екрани на Х сървъра.
# Само възможности поддържани от всички GPU-та ще се поддържат.

Максималната резолюция на видимата област в OpenGL изображението зависи от използвания хардуер, и е указано в долната таблица. Ако OpenGL прозореца превишава размера на максималната видима област, то тези области извън предела ще бъдат пусти. Предела на видимата област на OpenGL изображенията за Xinerama

GPU GeForce до серии 8: 4096 x 4096 пиксела
GeForce 8 и по-нови: 8192 x 8192 пиксела
Quadro: по размера на десктопа
# Настройките на Х, зареждащи процедурата GLX (стерео, наложения) трябва да бъдат настроени еднакво за всички екрани на Х.

Известни проблеми:
# Версиите на XFree86 до 4.5 и X.org до 6.8.0 съдържат непълни интерфейси за правилната поддръжка на наслагванията с Xinerama. На ранните версии на сървъра едновременното използване на наслагването и Xinerama води до проваляне на рендинга. Ако използвате Xinerama заедно с наслагванията, препоръчваме да обновите Х до версия XFree86 4.5 или X.org 6.8.0, или по-нови.

Към съдържанието

Приложение W

Режим SLI и MultiGPU

Драйвера поддържа възможностите SLI и MultiGPU. Двете технологии позволяват на OpenGL приложенията да използват няколко графични процесора едновременно за повишаване производителността. Различията между  SLI и MultiGPU се свеждат до това, че SLI се използва за обединяване производителността на графичните процесори на две или повече видеокарти докато MultiGPU се използва за обединяване производителността на два или повече GPU на една карта. Ако желаете да обедините две видеокарти трябва да извикате опцията SLI в конфигурацията на Х. Съответно, ако искате да използвате два графични процесора на една видеокарта трябва да конфигурирате "MultiGPU". Ако имате две видеокарти с по два графични процесора то за да ги използвате пълноценно трябва да изберете функцията "SLI".

В средата на ГНУ/Линукс технологията SLI може да работи в един от следните три режима: рендеринг с по редови кадри [Alternate Frame Rendering(AFR)], рендеринг с разделяне на кадрите [Split Frame Rendering(SFR)], и пълно екранен антиалайзинг на изображението с използване на SLI (Antialiasing) . В режим AFR един графичен процесор разчита един кадър, а втория – следващия кадър след първия. В режим SFR всеки кадър се разделя хоризонтално на две части, и всеки графичен процесор обработва своята част. Линията на разделяне се разполага така, че да балансира натоварването на двата процесора. В режим AA работата по пълно екранното заглаждане се разделя на двата процесора. И двата работят върху едно изображение, а резултата се извежда като общ кадър. Този режим е полезен за приложения, по-голяма част от които заемат изчисления и натоварват централния процесор.

При наличие на четири GPU може да се използват същите опции. В режим AFR работата се разпределя на всичките четири, всеки подготвя един кадър за цикъл. В режима SFR кадъра се дели на четири части. В режим АА работата се разпределя между четирите процесора, позволявайки да се достигне изглаждане на изображението със степен 64х. При наличие на четири графични процесора в режим SLI е възможен още един режим – рендеринг с поредови кадри с включен антиалайзинг(AFRAA). В този режим всички GPU разчитат различни кадри, всеки процесор извършва половината от антиалайзинга на един кадър. Тези сценарии се използват ако имате четири видеокарти или пък две с по два процесора.

Режим MultiGPU се включва с опцията "MultiGPU" в конфигурационния файл на Х; обърнете се към Приложение D за допълнителна информация за настройката на MultiGPU.


Инструмента nvidia-xconfig може да бъде използван за включване на MultiGPU вместо ръчното редактиране на файла. Например:

#nvidia-xconfig --multigpu=on

SLI се вклйчва по същия начин или ръчно или чрез инструмента nvidia-xconfig. За ръчното стартиране можете да видите Приложение D, а чрез инструмента:

# nvidia-xconfig --sli=on


Технологията SLI изисква наличие на две идентични видеокарти с PCI-Еxpress интерфейс, съвместим с чипсета на дънната платка и в някои специални случаи с мост съединяващ двете карти. Обърнете внимание, че мобилните графични процесори не поддържат SLI, а за карти Quadro винаги трябва „мост”.

За получаване на последния списък с поддържаните конфигурации за SLI, включващ графични процесори и дънни платки, обърнете се към сайта
http://www.slizone.com.

Само един дисплей може да се използва при включен SLI режим или MultiGPU. Ако Х е настроен на много екрани, за екрана 0 ще бъдат включени SLI или MultiGPU, другите екрани ще бъдат изключени. TwinView също не се поддържа съвместно със SLI или MultiGPU.  Обърнете внимание, че ако са включени SLI  или MultiGPU използваните графични процесори са недостъпни за едно процесорен рендинг.


Често задавани въпроси за SLI

Въпрос: Защо glxgears работи бавно при включени SLI или MultiGPU?

Отговор: При включване на SLI или MultiGPU драйвера NVIDIA трябва да координира работата на всички процесори при изхода на всеки кадър. За повечето приложения това е несъществено натоварване. Тъй като glxgears е създадена за извеждането на много кадри в секунда, то синхронизирането на тези кадри се оказва голямо натоварване за драйвера.

Въпрос: Защо Doom 3 работи бавно при включване на SLI или MultiGPU?

Отговор: Драйвера NVIDIA не определя оптималните настройки на SLI или MultiGPU за такива игри като Doom 3 и Quake 4. В качеството на решение може да използвате променливата __GL_DOOM3 за използването на OpenGL оптимални настройки за Doom 3. В bash можете да направите с командата която стартира Doom 3, така, че променливата да остане настроена само за тази игра но не и за другите OpenGL приложения, това става чрез:
 
# __GL_DOOM3=1 doom3
 
  За целта можете да модифициращия скрипт на DOOM 3 в bash:
 
      #!/bin/sh
      # Needed to make symlinks/shortcuts work.
      # the binaries must run with correct working directory
      cd "/usr/local/games/doom3/"
      export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
      export __GL_DOOM3=1
      exec ./doom.x86 "$@"
 
 Така променлива е въведена временно и ще бъде премахната за в бъдеще.

Въпрос: Защо не се разпознават SLI или MultiGPU?

Отговор: Възможни са няколко причини поради които SLI или MultiGPU да не се инициализират. Много от тях може да бъдат обяснени в журнала на Х, например:
 
     o "Unsupported bus type" (тип шина не се поддържа)

     o "The video link was not detected" (не е намерен мост за съединение)  

     o "GPUs do not match" (Графичните процесори не са идентични)
 
     o "Unsupported GPU video BIOS " (BIOS-а на видеокартата не се поддържа)

     o "Insufficient PCI-E link width" (недостатъчна  полоса за пропускане PCI-E)
 
Първото съобщение 'Unsupported PCI topology' се извежда поради проблем с кернела. Драйвера NVIDIA  трябва да има достъп до PCI-E шината(често наричан основен мост(root bridge)), към която се присъединява всеки графичен процесор NVIDIA, за правилната настройка на SLI или MultiGPU. Много версии на кернел не разпознават правилно този мост и в резултат не дават достъп на драйвера. Вижте по-долу „Как да определим дали кернел правилно разпознава PCI?” за допълнителна информация.

  По-долу са преведени някои стъпки по решението на проблема с инициализация на SLI.
 
o Убедете се че поддръжката на ACPI е включена във вашия кернел. По наши наблюдения е необходимо да се използва ACPI за правилното определяне от кернел на основния мост. Отбележете, че в някои случай кернел с поддръжка на ACPI все още може да има проблеми и може да се наложи обновяването му.
 
o изпълнете командата 'lspci' за проверка, колко графични процесори са разпознати от системата, например:
     
# /sbin/lspci | grep -i nvidia
     
Ако 'lspci' не съобщава всичките графични процесори в системата, то явно проблема е в кернела на системата и е необходимо да се използва друго ядро.
 
o Убедете се че, се използва последна версия на SBIOS за дънната платка.

o Слота на PCI-Express на дънната платка трябва да предоставя минимално необходимата полоса за пропускане. Убедете се че слота на вашата дънна платка съответства на изискванията приведени по–долу:
     
          o Двупроцесорни видеокарти изискват минимум 8 канала от шината(слот x8 или x16)
          o Две едно-процесорни изискват една от следните комбинации:
               o x16 + x16
               o x16 + x8
               o x16 + x4
               o x8 + x8

Въпрос: Как да определим дали кернел правилно разпознава PCI?

Отговор: Както беше обсъдено по-горе, драйвера трябва да има достъп до PCI моста, към който е включен всеки графичен процесор NVIDIA, за да е възможно правилно да настроите SLI.
  Следните действия се изискват за определяне способността на кернел да разпознае моста PCI:
 
     o Идентифицирайте всички NVIDIA GPU:
     
          # /sbin/lspci | grep -i vga
     
           0a:00.0 VGA compatible controller: nVidia Corporation [...]
           81:00.0 VGA compatible controller: nVidia Corporation [...]
     
     
o Определете, че всеки процесор включен към шината свързана към основния мост(обърнете внимание, че процесорите в предния въпрос се намират на шина 0a и 81):
     
          #/sbin/lspci -t
     
       правилно:
     
           -+-[0000:80]-+-00.0
            |           +-01.0
            |           \-0e.0-[0000:81]----00.0
           ...
            \-[0000:00]-+-00.0
                        +-01.0
                        +-01.1
                        +-0e.0-[0000:0a]----00.0
     
       неправилно:
     
           -+-[0000:81]---00.0
           ...
            \-[0000:00]-+-00.0
                        +-01.0
                        +-01.1
                        +-0e.0-[0000:0a]----00.0
     
Обърнете внимание, че в първия пример шина 81 е съединена към основния мост 80, но във втория пример няма основен мост 80 и шина 81 неправилно е съединена към дървото на устройствата. В такива случаи единственото решение е обновяване на кернел, който правилно да определи конфигурацията на PCI.

Към съдържанието

Приложение X

Понятията Frame Lock and Genlock

Приложения за визуално смесване, използващи няколко дисплея, или няколко прозореца в един дисплей, могат да изискват специална обработка на сигнала и инструмент за управление за тяхното правилно функциониране. Например, за качествен видеозапис на анимирана графика, дисплея трябва да бъде синхронизиран с видеокамера. Друг пример: приложения, извеждащи изображението на няколко дисплея, изисква синхронизация за създаване на пълна илюзия за един общ екран.

Тази синхронизация се включва с помощта на възможността framelock и genlock на драйвера NVIDIA. В този раздел се описва инсталацията и използването на framelock и genlock.

Използвани термини

GENLOCK: понятие, отнасящо се към процеса на синхронизация на обновяването на пиксела на един или няколко дисплея с външен източник на синхросигнала. NVIDIA genlock изисква, външния сигнал да бъде TTL или композитен, какъвто се използва в ТВ-формата NTSC, PAL, или HDTV. Следва да се помни, че реализацията на NVIDIA genlock е гарантирана само за синхронизация на равнище кадри, не обезателно на равнище пиксели.

FRAMELOCK: понятие, описващо използването на оборудването за синхронизация на кадрите на всеки дисплей включен към системата. Когато графичното и видеоизображението се извеждат на няколко монитора системата framelock позволява да облекчи поддържането на целостта на изображението за създаване на виртуален екран. Framelock е особено необходим за гледане на стерео, когато полето за ляво и дясно око трябва да се изобразява синхронно на всеки дисплей.

Накратко, включването на genlock означава синхронизация с външен сигнал. Включването на framelock означава синхронизация на два или повече екрана на Х със сигнали обработвани вътре в оборудването; включването на двете функции означава синхронизация на два или повече екрана на Х с външен сигнал.

SWAP SYNC: понятието swap sync е синхронизацията на операцията по смяна на изображението между буфера на няколко прозореца. Благодарение на swap sync, приложенията стартирани на няколко компютъра, могат да сменят изображенията между буфера на приложението на всеки компютър. За такъв тип работа е необходимо на всичките да е стартиран framelock.

Устройство G-SYNC: G-Sync Device означава устройство, поддържащо Framelock/Genlock. Това може да е видеокарта (Quadro FX 3000G) или отделна платка (Quadro FX G-Sync). Обърнете се към раздела „Поддържано оборудване” по-долу.


Поддържано оборудване

Framelock и genlock се поддържат от:

   Видеокарта
   ----------------------------------------------------------------------
   Quadro FX 3000G
   Quadro FX G-Sync, използвано съвместно с Quadro FX 4400 , Quadro FX 4500
   или Quadro FX 5500


Инсталиране на оборудването

Преди да започнете, трябва да проверите, дали правилно сте свързали оборудването. Ако използвате видеокарта Quadro FX 3000G, обработката на сигнала genlock/framelock е интегриран в самата карта и допълнителни настройки не са необходими.

Ако използвате платката Quadro FX G-Sync заедно с видеокарта, трябва да направите следното(винаги при изключен компютър).

 1. На платката Quadro FX G-Sync намерете 14-конекторния пин обозначен като
    "primary". Ако съответния плосък кабел вече не е включен в него, го включете.
    Ако ще използвате framelock или genlock съвместно с режима SLI или MultiGPU
    (вж. приложение W) или друга многопроцесорна конфигурация, трябва да съедините
    14-конекторния пин, обозначен като "secondary", към втория GPU. Накрая на това приложение
    са описани ограниченията при подобно свързване.

 2. Поставете платката Quadro FX G-Sync в кой да е свободен слот. Отбележете че
    самия слот е необходим само за закрепване на картата, така че ако имате
    неработещ слот по-добре го използвайте. Слота трябва естествено да е близко до
    видеокартата, така че да стигне кабела.

 3. Съединете другия край на 14-конекторния пин към видеокартата.

Сега можете да включите компютъра и да започнете да инсталирате genlock и/или framelock. Инструкциите нататък предполагат, че драйвера NVIDIA успешно е инсталиран предварително. Ако не е вижте глава 2.

Настройка с помощта на инструмента NVIDIA-SETTINGS

Framelock и genlock се настройват чрез nvidia-settings. Обърнете се към страниците на ръководството 'nvidia-settings(1)' и вградената помощ в инструмента (натиснете бутона "Help" в долния десен ъгъл за получаване на помощ за всяка страница).

От панела framelock на nvidia-settings, можете  да добавяте екрани на Х синхронизируемата група framelock/genlock, контролирате състоянието на групата и включвате/изключвате framelock и genlock.

След стартиране на системата и на Х, стартирайте nvidia-settings чрез:

   # nvidia-settings

Можете да пуснете този инструмент, тъй като той ще се споменава по-нататък в това обсъждане.

Настройките на genlock и framelock са описани поотделно, по късно ще опишем и тяхната настройка заедно.

Настройка на GENLOCK

След стартиране на системата присъединете външния сигнал към порта (тип BNC) на видеокартата или платката G-Sync. Има светодиод съвместно с порта. Непрекъсната червена светлина показва, че оборудването не може да засече синхросигнал. Зелена светлина означава че оборудването търси сигнал. Кратко червено премигване означава, че всичко е наред. Устройството G-Sync (видеокарта или платка G-Sync) трябва да бъде правилно настроено преди да продължим.

На framelock панела в nvidia-settings, добавете сървър Х, съдържащ дисплей и устройство G-Sync, които искате да синхронизирате с външния източник, натискайки бутона "Add Devices". Х сървъра обикновено се задава във формат "system:m.n", например:

mycomputer.domain.com:0.0

или

localhost:0.0

След добавянето на Х в секцията "G-Sync Devices" на панела framelock се появява ред, изобразяващ текущата информация за устройството G-Sync, графични процесори, присъединени към тези устройства и дисплеи, управлявани от графичните процесори. В частност, реда G-Sync показва името на сървъра, номера на устройството G-Sync заедно с изобразяването на индикатори "Receiving", "Rate", "House", "Port0"/"Port1" и информация за забавянето "Delay". Реда GPU показва името на GPU и неговия идентификатор за Х сървъра. Реда Display Device показва името на дисплея и неговия тип, заедно с превключвателя сървър/клиент, информация за честота на опресняване, индикатори "Timing" и "Stereo".

След, като устройството G-Sync и дисплеите бъдат добавени в групата framelock/genlock, е необходимо да се добави устройство – сървър. Това се изпълнява от превключвателя "Server" за избрания дисплей.

Ако използвате платка G-Sync, е необходимо също така да изберете "Use House Sync if Present". За включване на синхронизацията на това устройство с външния източник натиснете "Enable Frame Lock". Може да отнеме време за стабилизиране. Ако обаче изображението не се стабилизира, можете да изберете сигнал за синхронизация неподдържан от системата. Необходимо е да изключите синхронизацията чрез бутона "Disable Frame Lock" и да проверите външния синхросигнал.

Изменения на настройките на genlock (например, "Use House Sync if Present", "AddDevices...") трябва да се провеждат при изключена синхронизация.

Настройка FRAMELOCK

Framelock е поддържана на произволно количество компютри с видеокарти Quadro FX 3000 или Quadro FX G-Sync, докато тяхното смесване в една група framelock не се поддържа. Допълнително, всяка система, включена в групата framelock, трябва да бъде настроена на идентични времена за синхронизация. Обърнете се към приложение J за информация относно параметрите за времева синхронизация на видео режима.

Съединете компютрите чрез порта RJ45, използвайте стандартни кабели категория 5. Тези портове са поставени на самите видеокарти(Quadro FX 3000 или платката Quadro FX G-Sync). Не съединявайте с картите ETHERNET или хъбовете. Това може да повреди оборудването. Съединяването трябва да се извърши по метода на последователното свързване: всяка карта има два RJ45 порта, ако ги наречем 1 и 2, то тогава трябва да съединим порт 1 на компютър А с порт 2 на компютър В, порт 1 на компютър В с порт 2 на компютър С и т.н. В групата трябва да има винаги два свободни порта.

Портовете се настройват като изходи и/или входове след включването на framelock. Всеки порт има жълт и зелен светодиод, отразяващ състоянието му. Мигащ жълт показва изход, мигащ зелен показва вход. Постоянен зелен показва, че порта не е конфигуриран.

В framelock панела на инструмента nvidia-settings, добавете Х сървър съдържащ дисплеите, които искате да синхронизирате, в групата framelock натиснете бутона "Add Devices" (вж. описания по горе начин на добавяне на дисплеи в GENLOCK). Така също, както и при genlock, колонките "Port0" и "Port1" в таблицата на framelock панела съдържат изображения, показващи състоянието на индикаторите RJ45 портовете. Така можете да контролирате състоянието на сигнала по програмен начин.

Всякакъв Х сървър може да бъде добавен в групата framelock, ако се съблюдават следните условия

 1. Системата, поддържаща сървър е настроена за използване на framelock и
    е включена с RJ45 кабел към друга система в група framelock.

 2. Стартирания в системата инструмент nvidia-settings може да се зареди и има
    съответстващи привилегии за Х сървъра, включен във framelock.

Системата може да получи привилегии за екрана на отдалечен компютър чрез командата

# xhost +

на отдалечения компютър. Обърнете се към страницата на xhost(1) за допълнителна информация. Обикновено управлението на framelock се осъществява от система включена в групата framelock. Тъй като това не е задължително считайте, че инструмента nvidia-settings извежда панела framelock само ако е стартирана в Х, поддържащ framelock.

За включване синхронизацията на тези дисплеи, натиснете "Enable Framelock". Синхронизацията на дисплея може да отнеме време. Ако изображението не се стабилизира, това може да означава че избраните параметри за времева синхронизация не се поддържат от някоя от системите. В този случай изключете синхронизацията чрез "Disable Framelock" и се обърнете към приложение J за допълнителна информация.

Измененията на framelock настройките ("Add/Remove Devices" и т.н.) трябва да се правят при изключена синхронизация.

Съвместно използване на FRAMELOCK и GENLOCK

Съвместното използване на framelock и genlock се явява просто продължение на действията необходими за използването на всеки от тях по отделно. Трябва да следвате инструкциите по настройка на Framelock, а след това за всяка система, включена в групата на framelock, да включите външен източник на синхросигнал. За синхронизация на групата framelock с тези източници, трябва да укажете дисплей, управляван от графичен процесор е включен към устройството G-Sync, като образ на сигнала за всички други в групата. За целта в панела framelock в инструмента nvidia-settings изберете "Server". Ако се използва група framelock, изградена чрез G-Sync, допълнително трябва да бъде избрана опцията "Use House Sync". Включете синхронизацията чрез бутона "Enable Framelock". Така също, както и с другите настройки framelock/genlock, избора на образ на сигнала за групата трябва да става при изключена синхронизация.

Реализация на FRAMELOCK/GENLOCK в OPENGL

Използвайки GLX_NV_swap_group, OpenGL приложенията могат да се присъединяват към групата за локалната синхронизация и да се присъединяват към група в границата на областта за синхронизация във framelock. Универсалния кадров брояч framecounter така също се предоставя за синхронизация между приложенията.

Ограничения за FRAMELOCK:

Следните ограничения трябва да се отбележат при включване на framelock:

1. Всички дисплеи, настроени като клиенти в групата на framelock трябва да имат еднакви параметри на времева синхронизация с образеца(сървъра). Ако се използва външен синхросигнал(вместо вътрешни временни параметри), всички клиенти трябва да имат честота на опресняване съвпадаща с външния синхросигнал.

2. Всички Х екрани, разположени на избрания в качеството си на сървър/клиенти дисплеи, трябва да имат идентичен стерео режим. Обърнете се към Приложение D за подробна информация за настройка на стерео-режима.

3. Дисплея-образец (сървъра) за framelock трябва да бъде включен към графичен процесор, първи включен към устройството G-Sync device.

4. Ако само един графичен процесор е включен към устройството G-Sync, трябва да се използва основния порт.

5. В конфигурации повече от един дисплей на графичен процесор, се изисква да се използва framelock за всички дисплеи на тези графични процесори.


Поддържани конфигурации FRAMELOCK:

Към момента се поддържат следните конфигурации:

1. Основна конфигурация Frame Lock: един GPU, един екран X, един дисплей с, или без OpenGL приложения, използващи четирикратно буферизирано стерео и/или GLX_NV_swap_group.

2. FrameLock съвместно с TwinView: един GPU, един екран на X, няколко дисплея с или без OpenGL приложения, използващи четирикратно буферизирано стерео и/или GLX_NV_swap_group.

3. FrameLock съвместно с Xinerama: 1 или няколко GPU, няколко екрана на Х, няколко дисплея с или без  OpenGL приложения, използващи четирикратно буферизирано стерео и/или GLX_NV_swap_group.

4. FrameLock съвместно с TwinView и Xinerama: 1 или няколко GPU, няколко екрана на Х, няколко дисплея с или без OpenGL приложения, използващи четирикратно буферизирано стерео и/или GLX_NV_swap_group.

5. FrameLock при използване на SLI SFR, AFR, или AA: 2 графични процесора, един екран на Х, един дисплей с OpenGL приложения, използващи четирикратно буферизирано стерео или GLX_NV_swap_group.  Обърнете внимание, че за даденото съчетание не се използват едновременно четирикратното буферизирано стерео и GLX_NV_swap_group. Отбележете, че към момента се поддържат само двупроцесорни SLI конфигурации.

6. FrameLock при използване на MultiGPU SFR, AFR, или AA: 2 графични процесора, едни Х екран, един дисплей, с OpenGL приложения, използващи четирикратно буферизирано стерео или GLX_NV_swap_group. Обърнете внимание, че за даденото съчетание не се поддържат едновременно използването на четирикратното буферизирано стерео и GLX_NV_swap_group.

Към съдържанието

Приложение Y

Понятието DPI (Dots Per Inch) – точки на инч

Понятието DPI (точки на инч), така също е известно като PPI (пиксел на инч), се явява параметър на Х екрана описващ физическия му размер в пиксели. Някои приложения на Х, също и xterm, могат да използват стойността DPI на Х екрана за определяне размера (в пиксели) на обекта и изобразяването му на дисплея с конкретните физически размери на екрана.

Резолюцията DPI на Х екрана се изчислява по пътя на разделяне на размера на Х екрана в пиксели делено на неговия размер в инчове:

DPI = Размер в пиксели / Размер в инчове

Доколкото физическия размер на Х се съхранява в милиметри, а не в инчове (1 инч = 25.4 милиметра):

DPI = (Размер в пиксели * 25.4) / Размер в инчове

Драйвера на Х съобщава размера на екрана в пиксели и милиметри. В Х сървъра с версии 6.9 и по нови при промяна размера на екрана на Х в пиксели чрез XRandR, драйвера изчислява новия размер в милиметри за екрана, съхранявайки DPI непроменена (вижте колоната "Physical Size" за информации, извеждана от командата `xrandr -q` като пример). Това се прави за избягване на възможните проблеми с взаимодействието с някои приложения при промяната на DPI. За изключване на това поведения и съхраняване на тази стойност в милиметри присвойте на опцията ConstantDPI стойност FALSE (вж. приложение D за допълнителна информация).

Можете да разберете DPI на вашият екран чрез:

# xdpyinfo | grep -B1 dot

Извеждаща информация във вида:

   dimensions:    1280x1024 pixels (382x302 millimeters)
   resolution:    85x86 dots per inch

Драйвера на Х изпълнява няколко действия в хода на инициализацията на Х за определяне на DPI резолюцията за всеки екран:

o Ако дисплея предоставя информация по протокола EDID, и информацията  EDID включва сведения за физическия размер на дисплея, то тя се използва за определяне на DPI заедно с резолюцията в пиксели на първия видео режим, настроен за дисплея. Ако няколко дисплея се използват от Х то драйвера сам решава, информацията от кой да използва. Това поведение може да бъде променено с помощта на опцията "UseEdidDpi" в конфигурацията на Х: можете да укажете конкретен дисплей за използване; например:
   
Option "UseEdidDpi" "DFP-1"
   
или да изключите изчисляването на DPI на основа на EDID информацията, чрез стойността false в:
   
Option "UseEdidDpi" "FALSE"
   
Определянето на DPI на основа EDID информацията се използва по подразбиране, ако е достъпна тази информация.

o Ако е зададен ключ за стартиране на Х "-dpi", то неговото значение се използва за настройване на DPI (вижте изхода на командата ‘X -h` за информация). Този ключ има приоритет над опцията "UseEdidDpi".

o Ако е зададена "DPI" в конфигурационния файл на Х (обърнете се към Приложение D за допълнителна информация), то нейното значение ще бъде използвано за настройка на DPI. Тази опция има приоритет над  "UseEdidDpi".

o Ако нищо не от гореизброените не е зададено, се използва опцията "DisplaySize" от файла за  конфигурация на X в секция Monitor за определяне на DPI, естествено тя трябва да е зададена; обърнете се към страницата с ръководство на xorg.conf или XF86Config за допълнителна информация.

o Ако нищо от горните не е зададено, то стойността на DPI се приема за равна 75x75.


Можете да видите способа чрез който драйвера на Х е определил стойността на DPI, отваряйки журналния файл на Х. Там трябва да има ред от вида:

   (--) NVIDIA(0): DPI set to (101, 101); computed from "UseEdidDpi" X config option

Обърнете внимание, че физическия размер на Х екрана от отчета `xdpyinfo` се изчислява на основа на стойността на DPI и размера на екрана в пиксели.

Стойността на DPI в Х екрана може да бъде избрана неправилно при използването на TwinView: в режим TwinView различните дисплеи(вероятно с различни резолюции DPI) изобразяват част от общия екран на Х вследствие на което стойността на DPI може да се съобщава на Х сървъра с точноста на този екран. Възможните решения са:


o Използвайте отделни екрани на Х вместо TwinView; обърнете се към приложение Р за допълнителна  информация.

o Пробвайте различни стойности на DPI за намиране на най-подходящия за всички дисплеи.

Към съдържанието

Приложение Z

Поддръжка на i2c bus

Към момента кернел модула на NVIDIA за ГНУ/Линукс съдържа i2c (наричана I-squared-c, микросхемна (Inter-IC) връзка, или IIC) функционалност, която позволява на модула да експортира такъв тип портове намерени на видеокартите NVIDIA към кернела. Това позволява i2c устройствата свързани към видеокартата, в зависимост от това къде на VGA и/или  DVI портове, да бъдат достъпни от кернел или потребителските програми по последователен начин с другите i2c портове зададени в кернела чрез i2c структура.

Трябва да имате i2c поддръжка, компилирана в кернел или като модул и Х трябва да е стартиран. Поддръжката на i2c структура е достъпна за ядра 2.4 и 2.6 . ГНУ/Линукс кернел документацията покрива изискванията за работа с /dev APIs, които са необходими за достъпа до NVIDIA i2c портовете.

NVIDIA е забелязала, че в някои дистрибуции i2c поддръжката е зададена по подразбиране. Въпреки това важните модули i2c-core.o (2.4) или i2c-core.ko (2.6), които поддържат експорта на тази структура не са включени в тези дистрибуции. В този случай ще трябва да изградите собствен модул i2c за поддръжка. За указания относно изграждането, конфигурирането и инсталирането на i2c поддръжка, потърсете документацията на дистрибуцията.

За друга информация относно i2c кернел структура, моля потърсете документацията за вашия кернел намираща се на .../Documentation/i2c/ в сорс кода на вашия кернел.

Следните модули също са поддържани:

 I2C_FUNC_I2C
 I2C_FUNC_SMBUS_QUICK
 I2C_FUNC_SMBUS_BYTE
 I2C_FUNC_SMBUS_BYTE_DATA
 I2C_FUNC_SMBUS_WORD_DATA

Приложение AA

Промяна на  DMA буфери в 64 битови платформи.

Графичните процесори NVIDIA имат ограничения по адресируемата оперативна памет. Това пряко влияе на буфера на директния достъп до паметта(DMA), тъй като този буфер е в оперативната памет, недостъпен за графичния процесор, не може да бъде използван(или пък ще бъде използван но отрязан, което ще доведе до обръщение към неправилен адрес в паметта).

Всички GPU не поддържащи PCI Express и процесори, които поддържат PCI Express посредством мост са ограничени от 32 битовото адресиране на оперативната памет, което е равнозначно на 4 GB памет. В компютри снабдени с повече от 4 GB памет използването на достъпния DMA буфер може да се окаже проблем. Поддържащите PCI Express графични процесори могат да адресират повече от 32 бита в адресното пространство на оперативната памет и не срещат такива проблеми.

Новите версии на ядрото предоставят прост способ за използване на паметта с гарантирано заемане на 32-битовата схема на пространството. Версията на кернел 2.6.15 предоставя такава възможност с помощта на интерфейса __GFP_DMA32. Най-ранните версии на кернел предоставят програмните функции I/O TLB за Intel EM64T платформа и поддръжка на IOMMU AMD64.

За съжаление някои проблеми все още съществуват и с двата интерфейса. Ранните версии на SWIOTLB реализацията в ГНУ/Линукс използваха неголям размер от паметта за своя буфер (около 4МВ). Така при запълването на буфера, някои реализации извеждаха грешка на ядрото "kernel panic". Това също е случай и при някои реализации на IOMMU интерфейса.

"kernel panic" и съпътстващите го проблеми със стабилността в Intel EM64T платформите могат да се избегнат чрез увеличаване буфера SWIOTLB с помощта на опцията на кернел 'swiotlb'. Този параметър съдържа величина със зададен размер на страниците 4 КВ. NVIDIA препоръчва увеличаване размера на буфера SWIOTLB до 64MB; това може да се направи като се зададе стойност 'swiotlb=32768' за кернела. Обърнете внимание, че в кернел версия 2.6 обема на буфера SWIOTLB вече е настроен на 64 МВ.

От кернел версия 2.6.9, изходния размер на паметта за SWIOTLB стана 64 МВ, и е подобрена обработката за препълването. Всички тези изменения повишиха стабилността на системите с Intel EM64T платформи. Ако сте решили да обновите кернела за да използвате тези преимущества, NVIDIA препоръчва да обновите от версия 2.6.11 нагоре. Вижте предната секция за по-подробна информация.

При AMD64 платформи, обема на паметта за IOMMU може да бъде настроен в BIOS на дънната платка, или ако BIOS няма такава опция, чрез опция на кернел 'iommu=memaper'. Тази опция задава създаване на IOMMU с размер прикрита оперативна памет 32^степен стойността паметта. Ако стойността на IOMMU по-подразбиране е по-малка от 64 МВ, кернела автоматично го заменя с 64 МВ.

За намаляване риска от проблеми със стабилността в резултат на изчерпване на IOMMU или SWIOTLB X86-64 платформа, драйвера NVIDIA има вътрешно ограничаване на използването на тези интерфейси. По подразбиране драйвера използва не повече от 60МВ от размера на IOMMU/SWIOTLB, оставяйки 4 МВ за системата(подразбира се при размер на IOMMU/SWIOTLB - 64 МВ).

Това ограничение може да бъде променено с помощта на опцията на модула на драйвера NVIDIA 'NVreg_RemapLimit'. Ако размера на IOMMU/SWIOTLB е по-голям от 64 МВ, ограничението може да бъде разширено за използване на повече пространство. В опцията 'NVreg_RemapLimit' размера се задава в байтове.

NVIDIA препоръчва да се оставят по 4 МВ достъпни за системата при увеличаване на ограничението. Например ако вътрешното ограничение трябва да е разширено до размер на IOMMU/SWIOTLB - 128 МВ, се препоръчва стойността да е - 124 Мб. Това ограничение може да бъде зададено чрез опцията 'NVreg_RemapLimit=0x7c00000' на модула NVIDIA.



<< Адаптивна защитна стена | NVIDIA инсталация под SuSE10.1 с 3D >>