 |
от kill_u(16-03-2007)
рейтинг (147)
[ добре ]
[ зле ]
Вариант за отпечатване
ГНУ/Линукс ръководство за инсталиране на драйвери 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 >>
|
 |