Bog BOS: Linux и NVIDIA: драйверы, TV-Out, датчики, TV-In, разгон. Почему GPU от NVIDIA? Потому что осталось всего 2 компании, производящих GPU потребительского уровня (т. дешевые) с нормальной скоростью 3D операций.
От графконтроллеров ATI я отказался после 2 лет бесплодных ожиданий работоспособного драйвера OpenGL (после чего фирма мило заявила, что поддерживать такие старые чипы она не будет и скоро выпустит драйверы для новых графконтроллеров, подождите немного ;). Разницу между сериями GPU от NVIDIA легче всего узнать на ее российском официальном сайте.
GeForce2 (NV15/NV15A; сравнение ; GeForce2 Ti быстрее GeForce2 Pro, а тот быстрее GTS, однако сильно зависит от установленных производителем видеоплаты частоты GPU и памяти; только 1 RAMDAC; есть аппаратное преобразование цветового пространства, но нет iDCT и MC; TV-Out делается с помощью дополнительных микросхем Conexant BT868/869, Chrontel 7007/7008 (800x600), Conexant CX25870/25871 и Philips SAA7102/7108 (на платах с VIVO)). GeForce4 MX (NV17S/NV17/NV18; сравнение ; 420 модель имеет медленную память SDR; модели 440 SE, 440, 440/AGP 8x и 460 отличаются частотой GPU и памяти; 440 примерно соответствует GeForce2 Ti, однако за счет технологии экономии пропускной способности шины памяти гораздо быстрее в TrueColor (хотя и не все функции в нем реализованы); быстрый AA; 2 RAMDAC 10 bit 350 MHz; 2 независимых CRTC; встроенный DVI (наличие зависит от изготовителя платы) и TV-Out 1024x768 (платы с 2 выходами на монитор - CRTC/DVI, DVI/DVI - имеют дополнительную микросхему для вывода на TV-Out аналогично GeForce2; платы VIVO используют микросхему Philips SAA7102/7108); iDCT и MC; 2 контроллера LCD; отсутствует чересстрочный режим). GeForce4 Ti (NV25/NV28; сравнение ; модели 4200 (250/500), 4200-8x (250/512), 4400 (275/550), 4600 (300/650), 4800SE (275/550), 4800 (300/650) отличаются частотой GPU и памяти; вдвое быстрее GeForce4 MX и вдвое дороже; 2 RAMDAC 10 bit 350 MHz; 2 независимых CRTC; встроенный DVI и TV-Out; iDCT отсутствует, MC - есть; отсутствует чересстрочный режим, хотя: "Interlaced video modes are supported on this GPU"). GeForce FX 5200 (NV34); я купил для пробы модель без вентилятора (Gigabyte GV-N52128 DE GF, 64 bit, 128 MB), вывод на 2 монитора (400 MHz), все видеофункции (NV17 Video Overlay со всеми настройками), но чудовищно низкая скорость как в 3D, так и в 2D; когда в следующий раз буду покупать видеокарту без вентилятора, то она будет встроена в чипсет ;). GeForce 6600 (NV43, 128 MB, 300/550), скорость незначительно выше GeForce 4200, но Video Overlay отсутствует! есть только Video Texture и Video Blitter. материалы к выбору следующей видеокарты:.
Nvidia geforce fx 5200 скачать драйвер для windows xp home edition. Identifier NVIDIA Corporation NV34M GeForce FX Go5200 Ваша. Download drivers for NVIDIA products including GeForce graphics cards, nForce Вариант 1: Вручную найти драйверы для моих продуктов NVIDIA.
- Драйверы NVIDIA с поддержкой дискретных видеокарт GeForce серий FX 5, 6, 7, 8, 9, 100, 200, 300, 400, 500, 600; интегрированных GeForce FX 5xxx.
- Где можно скачать драйвера для видеокарты nvidia geforce fx СкачатьДрайвера для видеокарты производства nvidia corporation.
Система: Pentium 4 CPU, 2,4Ггц, 1.25 ГБ ОЗУ, Видео NVIDEA Ge Force FX 5200. GeForce FX 5200 - драйвер скачать Драйвера на видеокарты NVidia.
GeForce 7300 GS/LE (G72); наследник 5200/6200, стало быть такой же медленный; шейдеры: 3/4/2; шина памяти - 32x2; частота - 550/800 (LE - 450/667);. GeForce 7600 GT/GS и 7300 GT (G73); $181, $127, $98; шейдеры: 5/12/8 (7300 GT - 5/12/4); шина памяти - 64x2; частота - 560/1400 (7600 GS - 400/700, 7300 GT - 350/716); например:. ASUS EN7600GS SILENT/HTD: частота - 400/800 для 256MB и 400/540 для 512MB, D-Sub, DVI-I (Dual-Link, адаптор на D-Sub, S-Video с HDTV), без вентилятора, $145 и $160;. ASUS EN7600GS TOP SILENT/HTD/512M: частота - 550/950, D-Sub, DVI-I (Dual-Link, адаптор на D-Sub, S-Video с HDTV), без вентилятора;.
ASUS EN7600GT SILENT/2DHT/256M: частота - 560/1400 (с разгоном 620/1470), 2xDVI-I (только один Dual-Link, адапторы на D-Sub), S-Video с HDTV через переходник, без вентилятора, выносной вращающийся радиатор, нагревается до 80° в хорошем корпусе, большой радиатор на обратной стороне, $228;. GeForce 7800 GT/GTX/GS (G70); $320, $380 и $504, ; шейдеры: 7/20/16 (GTX - 8/24/16, GS - 6/16/16); шина памяти - 64x4; частота - 400/1000 (GTX - 430/1200 для 256MB или 550/1700 для 512MB, GS - 375/1000); например, ASUS EN7800GT TOP SILENT/2DHTV/256M: частота - 420/1240, 2xDVI-I (адаптор на D-Sub, S-Video с HDTV), без вентилятора, выносной радиатор, VIVO (Philips 7115), нет в продаже, нагревается до 100° в хорошем корпусе;. GeForce 7900 GT/GTX (G71); $304, $465; шейдеры: 8/24/16; шина памяти - 64x4; частота - 450/1300 (GTX - 650/1600);. GeForce 8xxx: "There are no definite plans at this time to provide XVMC support for the 8000 series graphics cards.
Для вывода на TV-Out производители видеоплат могут использовать следующие чипы (БД, собранная пользователями. производители могут использовать на видеоплатах с одним названием различные чипы TV-Out!):. встроенный (NV17, NV18). Philips SAA7102 (800x600, хорошее качество текста, но проблемы с передачей полутонов). Philips SAA7104 (1024x768).
Philips SAA7108 (SAA7102 + TV-In), именно этими чипами комплектуются дешевые карты 4200-8X. Chrontel 7007, 7103-7107 (800x600, 640x480, ограниченные возможности по настройке, отсутствует PAL 60). Brooktree BT869 (Conexant CX25869) (800x600, PAL 60). CX25871 (1024x768, улучшенный фильтр, 16:9), этими чипами комплектуются дорогие карты.
На описании и тестировании конкретных моделей видеоплат специализируется сайт IXBT. У меня под рукой оказалась ASUS V7700PRO/T/32M/PAL/R (ASUS V9280/TD/P/64M/A), о которой можно рассказать следующее (MB на чипсете Intel 845E, P4):. lspci -v -v и и (на самом деле карточка не GT! или всё же GT замаскировали?). /var/log/XFree86. log и и и. cat /proc/driver/nvidia/agp/card.
cat /proc/driver/nvidia/agp/host-bridge. cat /proc/driver/nvidia/agp/status. cat /proc/driver/nvidia/cards/0.
Входящий в состав XFree86/X. org драйвер nv работает с GeForce как с обычным SVGA, т. нет поддержки 3D и вывода видео. К тому же у него проблемы с разрешением 1600x1200 и выше.
Компания NVIDIA выпускает собственный драйвер nvidia (XFree86 4. 1 и выше, X. org 6. 7 и выше), поддерживающий аппаратно OpenGL 2.
0, GLX 1. 3, XVideo, X-Video Motion Compensation и прочие полезные возможности. К сожалению, он поставляется только в двоичном виде, что сильно осложняет его использование (в исходном виде поставляется переходник между ядром и драйвером; откомпилированные версии переходника для некоторых дистрибутивов входят в поставку, иначе его необходимо откомпилировать во время установки; в любом случае модуль ядра линкуется "на месте" так что необходимые инструменты и заголовки должны быть установлены).
Драйвер поддерживает любую видеокарту (GPU) или интегрированное графическое ядро (IGP), выпускаемые фирмой NVIDIA, и обеспечивает ускорение 2D операций и OpenGL. Поддержки ACPI нет (прощай STR, aka ACPI S3), а в новых Linux системах APM отключён.
Начиная с версии 1. 0-4349 драйвер поставляется с собственной программой установки (nvidia-installer) в виде самораспаковывающегося sh-архива (atrpms предлагает в виде rpm, но я не пробовал). Для FC5 необходимо иметь работающее обновлённое ядро (ядро из поставки не загружает не-GPL модули), пакеты kernel-[smp-]devel, xorg-x11-server-sdk, pkgconfig и отключить SELinux (или настроить его ).
Перед установкой драйверов необходимо перевести систему с уровня 5 (с использованием X Window System) на уровень 3 (без использования X Window System):. Запустить процедуру установки (имеет ключи --help и --advanced-options; в примере я привожу ключи, пригодившиеся мне):.
Использование ключа --expert приводит к тому, что установщик предупредительно спрашивает что куда поставить и создаёт отчёт в файле /var/log/nvidia-installer. log. Если вкратце, то он сохраняет старые версии библиотек libGL, libGLcore и libglx, компилирует интерфейс модуля ядра, собирает и устанавливает модуль ядра (/lib/modules/2.
12-1. 1372_FC3/kernel/drivers/video/nvidia. ko - 5MB!), устанавливает библиотеки libGL, libGLcore, libnvidia-tls, libXvMCNVIDIA и libglx, устанавливает X модуль nvidia_drv, /usr/include/GL/, nvidia-settings-user-guide. txt, /usr/share/doc/NVIDIA_GLX-1. 0/README, /usr/bin/nvidia-settings, /usr/bin/nvidia-installer, создаёт устройства nvidiactl и пр. (с учётом наличия devfs или udev), запускает /sbin/ldconfig и "/sbin/depmod -aq". Теперь необходимо отредактировать /etc/X11/xorg.
conf: заменить драйвер nv на nvidia; убрать загрузку модулей dri и GLcore, добавить загрузку модуля glx. Возвращаем систему на уровень 5:.
Если всё хорошо (при загрузке модуля появляется каталог /proc/driver/nvidia/, X Window System запускается, glxgears показывает разумные числа, в tuxracer можно играть, glxinfo, xvinfo, /var/log/Xorg. log), то переходим к настройке (рекомендую начать с gtf и только потом переходить к xvidtune).
Драйвер не прописывает карту в /proc/mtrr, а восход солнца вручную не приносит обещанного счастья (адрес из журнала X):. Установщик позволяет удалять установленные файлы (с восстановлением предыдущих библиотек) и обновлять драйвер (необходим доступ в Интернет). После каждого обновления ядра драйвер необходимо переустановить (установщик имеет ключ для сборки модуля под новое неработающее пока ядро). Драйвер состоит из 2 частей: модуль ядра NVIDIA_kernel (NVdriver или nvidia. o в новой версии; больше 1 МБ закрытого кода работает в режиме ядра!) и пакет NVIDIA_GLX (драйвер XFree86 и библиотеки OpenGL). Версии пакетов должны совпадать.
Модуль ядра жестко привязан к версии ядра Linux и д. переустановлен (пересобран) при смене или сборке ядра.
NVIDIA поставляет пакеты в форме. rpm. srpm и.
tar. gz. Я рекомендую брать NVIDIA_kernel в виде. srpm и пересобирать его самостоятельно непосредственно перед установкой, а NVIDIA_GLX брать в виде готового RPM (все равно SRPM и. tar.
gz не содержат ни одного исходного текста). Предполагается, что загрузка системы происходит в текстовом режиме (id:3:initdefault: в /etc/inittab), иначе у вас будут большие проблемы при неудачной установке.
Перед установкой новой версии (или при смене ядра) надо самостоятельно удалить оба пакета (-U может сработать неправильно). Предварительная подготовка для построения своего ядра: имеется пакет kernel-source-2. 18-14, для которого было сделано (может быть не все эти действия обязательны, но как говорится - кашу маслом не испортишь ;).
cd /usr/src/linux-2. make distclean (может достаточно make mrproper?). make menuconfig (загрузить нужный вариант из директории config и выйти с сохранением). make bzImage (warning: kernel is too big for standalone boot from floppy, но я и не собираюсь его устанавливать, но если ядро не собрать, то модуль потом не загружается).
make modules (не компилируется drivers/addon/cipe, убрал ее и поменял drivers/addon/Makefile). Версия 1. 0-4191 (release 40) имеет множество улучшений по сравнению с предыдущей версией: OpenGL 1. 4 вместо 1.
3, GLX 1. 3 вместо 1. 2, поддержка AGP 3.
0 (8x), вместо XFree86 XAA используется собственная архитектура акселератора 2D, поддержка нескольких отдельных экранов на GPU с TwinView (GeForce2 MX и любой GeForce4), перестал ронять приложения с плавающей арифметикой. Однако отзывы на нее резко отрицательные. Одновременно с небольшим ускорением 3D операций (glxgears на 15%) резко замедлились 2D операции. Их можно несколько ускорить, если установить одноцветный фон в Gnome и отключить в Nautilus опцию "nautilus draw icons on the desktop option", однако замедление относительно предыдущей версии остается двухкратным.
Рекомендуется также запустить какое-нибудь приложение libGL (например, glxinfo ;). При попытке включить акселератор 2D (Option "RenderAccel" в /etc/X11/XF86Config) X сервер зацикливается через несколько минут работы. Процедура установки аналогична предыдущей версии, только модуль ядра переименован из NVdriver в nvidia.
rpmbuild --rebuild NVIDIA_kernel-1. 0-4191. src. rpm ругается по поводу отсутствия uid Buildmeister и ошибки в скрипте проверки версии rpm (RPMPATCH отсутствует); создается /usr/src/redhat/RPMS/i386/NVIDIA_kernel-1. 0-4191.
i386. rpm. rpm -e NVIDIA_kernel NVIDIA_GLX. выйти из X Windows.
rpm -iv NVIDIA_kernel-1. 0-4191.
i386. rpm NVIDIA_GLX-1.
0-4191. i386. rpm.
добавить в /etc/modules. conf (обеспечить загрузку собранного модуля ядра для старого ядра). внести исправления в /etc/X11/XF86Config (/etc/X11/XF86Config-4 для старых дистрибутивов). в секции Module закоментировать загрузку dri и убедиться в наличии glx. в секции Device заменить имя драйвера с nv (или vesa) на nvidia и добавить опций по вкусу. возможно, придется добавить новые Modeline в секцию Monitor и их использование в секцию Screen.
В версии 4349 скорость 2Д операций вернулась почти к уровню 3123 (но не совсем). К сожалению, при этом скорость 3Д также вернулась к уровню драйвера 3123. RenderAccel включать нельзя по-прежнему. Вместо RPM используется собственная программа установки (полная справка выдается при запуске с ключем -А), которая молча "сносит" предыдущие библиотеки libGL*. Если у вас GeForce FX, нужен OpenGL 1.
4 или вы поставили Red Hat Linux 9 с новой библиотекой работы с нитями, то без драйвера 4349 вам не обойтись. Остальным можно подождать следующей версии и оставить версию 3123.
В версии 1. 0-3123 (release 25) добавлена поддержка GeForce4 MX, GeForce4 Ti 4800 SE и GeForce4 4200. Процедура установки. rpmbuild --rebuild NVIDIA_kernel-1. 0-3123. src.
rpm ругается по поводу отсутствия uid Buildmeister и ошибки в скрипте проверки версии rpm (RPMPATCH отсутствует); создается /usr/src/redhat/RPMS/i386/NVIDIA_kernel-1. 0-3123.
i386. rpm. rpm -e NVIDIA_kernel NVIDIA_GLX. выйти из X Windows.
rpm -iv NVIDIA_kernel-1. 0-3123. i386. rpm NVIDIA_GLX-1. 0-3123.
i386. rpm. /lib/modules/2.
18-14/kernel/drivers/video/NVdriver. /usr/X11R6/lib/modules/drivers/nvidia_drv. o (драйвер nvidia для секции Device).
/usr/X11R6/lib/modules/extensions/libglx. so.
3123 (старая версия от Mesa переименовывается в /usr/X11R6/lib/modules/extensions/xxx. libglx. RPMSAVE).
/usr/lib/libGL. so. 3123 (старая версия от Mesa переименовывается в /usr/X11R6/lib/xxx. libGL.
RPMSAVE и /usr/X11R6/lib/xxx. libGL. so.
RPMSAVE). /usr/lib/libGLcore.
so.
3123 (старая версия от Mesa переименовывается в /usr/X11R6/lib/modules/extensions/xxx.
libGLcore. RPMSAVE). /usr/X11R6/lib/libXvMCNVIDIA. a (аппаратная реализация MC для GF4). /usr/X11R6/lib/libXvMCNVIDIA.
so. 3123. /usr/share/doc/NVIDIA_GLX-1. 0/ (здесь же include/GL/*.
h, которые надо поместить в /usr/include/GL/ перед сборкой OpenGL программ, если вы хотите использовать расширения OpenGL от NVIDIA; только что делать с остальными кусками от Mesa?). /dev (crw-rw-rw- !). проверьте, что прикладные программы будут использовать только что установленную версию OpenGL (ldd /usr/X11R6/bin/glxgears). добавить в /etc/modules. conf (обеспечить загрузку собранного модуля ядра для старого ядра). внести исправления в /etc/X11/XF86Config (/etc/X11/XF86Config-4 для старых дистрибутивов).
в секции Module закоментировать загрузку dri и GLcore, убедиться в наличии glx. в секции Device заменить имя драйвера с nv (или vesa) на nvidia и добавить опций по вкусу. возможно, придется добавить новые Modeline в секцию Monitor и их использование в секцию Screen, но это уже другая история.
запустить X Windows. проверить, что загрузился модуль ядра NVdriver, должны появиться следующие файлы в /proc/driver/nvidia/.
/proc/driver/nvidia/agp/card. /proc/driver/nvidia/agp/host-bridge. /proc/driver/nvidia/agp/status. /proc/driver/nvidia/cards/0. /proc/driver/nvidia/version.
проверить работоспособность OpenGL, например с помощью glxgears. glxinfo -t позволяет посмотреть параметры реализации OpenGL. проверить скорость работы 2D операций и устойчивость работы драйвера с помощью x11perf -all (предварительно убить процесс xscreensaver, занимает компьютер на 3 часа!). посмотреть параметры расширения X-Video с помощью xvinfo (разницы между NV15 и NV28 не заметил). GeForce 4 Ti 4200-8x не возвращается в а/ц режим.
Помогает следующий танец с бубнами (пункты 1-3 надо выполнять только один раз за сеанс):. запустить второй X сервер, например для вывода на ТВ (см.
ниже ): X -ac -layout LayoutTV :1. вернуться к основному X серверу (Ctrl-Alt-F7).
перейти в а/ц режим (Ctrl-Alt-F1), изображение отсутствует. перейти ко второму X серверу: [Ctrl-]Alt-F8. вернуться в а/ц режим (Ctrl-Alt-F1), изображение появилось.
modinfo NVdriver показывает, что при загрузке модуля можно задавать следующие параметры (я привожу не весь список, описание в os-registry. c):.
NVreg_EnableAGPSBA (AGP Side Band Addressing, по умолчанию выключено, даже если поддерживается чипсетом и видеокартой; пользы от него немного). NVreg_EnableAGPFW (AGP Fast Write, по умолчанию выключено, даже если поддерживается чипсетом и видеокартой; а этот лучше включить). NVreg_ReqAGPRate (позволяет насильственно понизить или повысить скорость AGP, битовая маска: 1x, 2x, 4x). NVreg_UpdateKernelAGP (если 0, то вмешиваться в работу agpgart; попробуйте оба варианта, если имеются проблемы со стабильностью работы драйвера).
NVreg_EnableVia4x. NVreg_EnableALiAGP. modinfo nvidia в FC3 (ядро 2. 10) не показывает наличия параметров, но они есть! Параметры остались те же самые и достаточно внести в /etc/modprobe. conf. После этого перезагрузить модуль.
И убедиться, что режимы Fast Write и SBA теперь включены (agpgart в последнее время стало модно включать непосредственно в ядро):. Опции задаются в секции Device файла /etc/X11/xorg.
conf (XF86Config или XF86Config-4 для старых дистрибутивов), я привожу только опции, специфические для драйвера nvidia (и то не все - например, я не использую QUADRO и ноутбуков с NVIDIA; см. также xorg. conf(5x) или XF86Config(5x)):.
NvAgp (при нестабильной работе драйвера можно запретить использование AGP или поэкспериментировать с различным типом поддержки; rivatv требует agpgart; agpgart в последнее время стало модно включать непосредственно в ядро, так что отказаться от него не удастся; при смене типа поддержки AGP - agpgart или драйвер nvidia - желательно перезагрузиться). 0 (запретить использование AGP). 1 (использовать поддержку AGP, встроенную в модуль nvidia; перед запуском выгрузите модуль ядра agpgart; ). 2 (использовать поддержку AGP, встроенную в модуль ядра agpgart).
3 (попробовать использовать agpgart, при неудаче использовать встроенную поддержку AGP). NoLogo ("off"; позволяет отключить вывод логотипа NVIDIA при загрузке; так вот почему размер модуля больше 4 мегабайт - наверное, это логотип в формате BMP 1600x1200 :).
RenderAccel ("off"; введена в Release 40; ускорение 2D операций с использованием архитектуры NVIDIA; включать не рекомендую - прирост даёт меньше 5% (проверено x11perf), а компьютер подвешивает: например, драйвер 7167 в тесте "Fill 2x1 aa trap"). NoRenderAccel ("off"; убрана в Release 40; использовать XAA для ускорения 2D операций; можно отключить, если заметите ошибки). NoRenderExtension ("off"; полезно при работе с 256 цветами). PageFlip ("on"; быстрая смена буферов путем смены их адресов вместо копирования содержимого при __GL_SYNC_TO_VBLANK; только, если одно OpenGL приложение на весь экран). NoFlip ("off", отключение смены буферов). DigitalVibrance ("0"; позволяет увеличивать насыщенность цвета (saturation); от 0 до 25 (зависит от версии); не рекомендуется, если вы занимаетесь редактированием изображений; желателен для LCD). Dac8bit ("off"; Quadro: использовать 8-битные таблицы цветов даже при наличии 10-битных; введена в release 40).
OverlayDefaultVisual ("off"; Quadro: корневое окно в оверлей; введена в release 40). RandRRotation ("off"; поддержка RandR, см. xrandr: позволяет динамически менять разрешение и поворачивать экран).
SWCursor ("off"; программный курсор). HWCursor ("on"; аппаратный курсор). CursorShadow ("off"; аппаратный курсор будет с тенью; CursorShadowAlpha, CursorShadowXOffset и CursorShadowYOffset позволяют задать параметры тени). ConnectedMonitor (""; позволяет задать список (через запятую) устройств, подсоединенных к видеокарте, если драйверу не удалось сделать это правильно; элементы списка: CRT (cathode ray tube), TV, DFP (digital flat panel, DVI); лучше использовать эту опцию в секции Screen, чтобы можно было переключать Layout). UseEdidFreqs ("on"; при включении информация, сообщаемая монитором о своих возможностях по протоколу DDC, используется вместо интервалов, задаваемых HorizSync и VertRefresh). NoDDC ("off"; игнорировать информацию, сообщаемую монитором о своих возможностях по протоколу DDC; ее можно посмотреть с помощью программы ddcprobe (только первый канал); полезна при разгоне монитора).
IgnoreEDID (синоним NoDDC). DDCCI ("false"; позволяет управлять монитором с помощью nvidia-setting; только для немобильных NV3x или новее; не работает, если сконфигурировано 2 экрана. Coolbits ("0"; позволяет изменять частоту GPU и памяти в режимах 2D и 3D с помощью nvidia-setting; только для немобильных NV3x или новее; не работает, если сконфигурировано 2 экрана (можно только посмотреть: -q all). FlatPanelProperties (Scaling = default|native|scaled|centered|aspect-scaled, Dithering = default|enabled|disabled). UseInt10Module ("off"; попробуйте включить, если не находится вторая видеокарта). NoBandWidthTest ("off"; отключить ограничение используемых режимов пропускной способностью памяти).
IgnoreDisplayDevices (""; игнорировать указанные типы устройств: CRT, DFP, TV). MultisampleCompatibility ("off"; какой-то хак для решения проблем FSAA). NoPowerConnectorCheck ("off"; не проверять наличие дополнительного питания, которое требуется некоторым мощным видеокартам). XvmcUsesTextures (по возможности "off"; использовать для XvMC - аппаратная реализация компенсации движения - текстуры вместо видеооверлея).
AllowGLXWithComposite ("off"; разрешить использование GLX в сочетании с расширением X Composite). ExactModeTimingsDVI ("off"; при работе с DVI использовать точные параметры из Modeline вместо близких им параметров из EDID (DDC)).
опции TwinView (один экран - screen - с точки зрения X; общий кадровый буфер с одинаковыми возможностями - OpenGL и др. ):. TwinView ("off"; позволяет включить режим TwinView).
SecondMonitorHorizSync (задает интервал допустимых частот горизонтальной синхронизации для второго монитора аналогично директиве HorizSync в секции Monitor). HorizSync (можно задавать параметры горизонтальной синхронизации для обоих устройств: "CRT-0: 50-110; DFP-0: 40-70"). SecondMonitorVertRefresh (задает интервал допустимых частот вертикальной синхронизации для второго монитора аналогично директиве VertRefresh в секции Monitor). VertRefresh (можно задавать параметры вертикальной синхронизации для обоих устройств: "CRT-0: 60-120; DFP-0: 60"). MetaModes (аналог директивы Modes в субсекции Display секции Screen; задает список режимов - через точку с запятой - для виртуального экрана, охватывающего оба монитора; каждый режим виртуального экрана содержит список - через запятую - разрешений каждого монитора; для отключения отдельного монитора в определенном режиме виртуального экрана необходимо использовать строку NULL; в дополнение к разрешению монитора можно использовать смещение начала относящейся к нему поверхности отображения относительно виртуального экрана в виде +X+Y (если задавать, то для всех мониторов в этом режиме), что позволяет гибко отображать части виртуального экрана на определенные мониторы: весь экран - на первый монитор, центральную часть в увеличенном масштабе - на второй и т.
; имеется возможность задать панорамирование (возможно, в сочетании со смещением) для каждого монитора отдельно и виртуального экрана целиком, что позволяет избежать "мертвых" зон на виртуальном экране Option "MetaModes" "CRT-0: 1600x1200, DFP-0: 1024x768 @ 1024x1200". TwinViewOrientation ("RightOf"; более простой способ задания смещения области второго монитора на виртуальном экране относительно первого: "RightOf", "LeftOf", "Above", "Below", "Clone") Option "TwinViewOrientation" "CRT-0 LeftOf DFP-0". NoTwinViewXineramaInfo ("off"; позволяет запретить передачу информации о конфигурации TwinView для программ, использующих Xinerama). опции вывода на ТВ. TVStandard (для России - "PAL-B"; также лучше использовать в секции Screen). TVOutFormat ("SVIDEO" или "COMPOSITE"; также лучше использовать в секции Screen).
TVOverScan (0. 0; 0. 0 - 1.
0). Опции OpenGL задаются установкой переменных окружения перед запуском прикладной программы:. __GL_SYNC_TO_VBLANK=1 синхронизирует переключение между буферами кадров с сигналами вертикальной синхронизации, что позволяет избежать рывков и разрывов изображения (с двумя мониторами так не получается). __GL_SYNC_DISPLAY_DEVICE задаёт устройство, с которым надо синхронизоваться (имя берётся из X. log и выглядит навроде CRT-1). __GL_DEFAULT_LOG_ANISO=x задает различные режимы анизотропной фильтрации текстур (0 - выключить; от 1 до 4 - различные уровни); переименован в __GL_LOG_MAX_ANISO. __GL_FSAA_MODE=x задает различные режимы Full Scene Anti-Aliasing (0 - выключить; от 1 до 5 - различные алгоритмы; для GeForce2 включать не рекомендую: GeForce4 Ti 4200-8x (в сочетании с __GL_DEFAULT_LOG_ANISO скорость падает значительно):.
__GL_FORCE_GENERIC_CPU запрещает использование MMX, SSE и пр. __GL_SINGLE_THREADED - какой-то хак для многопоточных приложений. __GL_TEX_MEMORY_SPACE_ENABLES. __GL_FORCE_DIRECT. __GL_NO_DSO_FINALIZER - хак для многопоточных приложений (Java3D), libGL не освобождает ресурсы при завершении основного потока. __GL_SW_RENDERER (жуть ;).
__GL_NV20_EMULATE. __GL_NV25_EMULATE. __GL_NV30_EMULATE. Графическая утилита nvidia-setting позволяет в легкоусвояемой форме управлять различными параметрами драйвера, отдельно для каждого экрана и устройства (подробный help прилагается):. получение информации об оборудовании: графический процессор, тип шины, версия VBIOS, объём памяти, номер прерывания.
управление цветокоррекцией отдельно по каждому цветовому каналу или вместе: яркость, контраст, гамма. управление видеооверлеем: насыщенность, контраст, яркость, цветовой сдвиг. вертикальная синхронизация упрощённых вариантов видеооверлея (видеотекстуры, blitter). задание параметров тени аппаратного курсора. задание параметров OpenGL (синхронизация, антиалиасинг, анизотропия); вступят в действие при следующем запуске приложения, если не будут перекрыты переменными окружения. /.
nvidia-settings-rc (кстати, позволяет узнать, наконец, на каком из экранов разместился видеооверлей с возможностью аппаратного управления яркостью и т. а какой довольствуется XVideoBlitter).
Имеется режим командной строки:. --config имя-файла. --load-config-only (установить параметры из конфигурационного файла и завершить работу; полезно вставить вызов в. /.
xinitrc перед gnome-session). --query имя-атрибута (all - показать все доступные атрибуты и их текущие значения; имя атрибута может предваряться именем дисплея (192. 168.
33:0. 0/) и оканчиваться именем устройства в квадратных скобках ([CRT-0]); имя дисплея можно сократить до номера экрана (0/)). --assign имя-атрибута=значение. --display=имя-дисплея-для-визуализации (можно установить переменную окружения DISPLAY). --ctrl-display=имя-управляемого-дисплея.
Постановка задачи. Имеется видеоплата на NVIDIA GeForce4, к первому (DFP-0) каналу (DVI-I) по интерфейсу DVI-D подключён ЖК проектор, ко второму (CRT-1) каналу (VGA) подключён CRT монитор. Один из каналов (не помню какой, TV-0. а телевизора у меня сейчас нет) можно переключать для вывода по интерфейсу S-Video, но это извращение описано ниже. Требуется обеспечить работу в обычном режиме на мониторе с возможностью запуска программ (tuxracer ;) с выводом на экран проектора, не мешая основной деятельности.
Итак, добавляем в /etc/X11/xorg. conf секции для описания монитора и проектора (Modeline, естественно, по вкусу):. Теперь добавляем секции с описанием устройств (на самом деле это одно устройство, совмещение обеспечивается BusId, но номера экранов разные, значение BusId можно подсмотреть из старого X.
log, может потребоваться NoDDC - иногда бывают проблемы с DDC (EDID) в двухканальном режиме):. Описания экранов 0 и 1 для нашего будущего layout (имена устройств и мониторов должны соответствовать описанным выше):. И, наконец, объединяем всё вместе в нашей секции ServerLayout (пока не ставить её первой!):. Для экспериментов желательно перевести систему в режим текстовой загрузки и запускать X Window System вручную:. /.
xinitrc, содержащий строку: exec gnome-session. редактируем /etc/X11/xorg.
conf. запускаем X командой:. DISPLAY=:0.
1 tuxracer. при неудаче смотрим результаты в /var/log/Xorg.
log (для первой видеоплаты) и переходим к пункту 3.
После успешной отладки переместить LayoutCRTProjector в начало файла, удалить (переименовать). /. xinitrc, перейти в графический режим: init 5. Недостаток: видеоверлей работает только на первом экране, поэтому аппаратной регулировки яркости и контрастности не будет (а мой проектор отказывается регулировать яркость при подключении по DVI :(). Можно сделать его первым экраном, но могут быть проблемы с запуском программ по умолчанию на втором экране (до какого-то момента на втором экране даже WM не запускался самостоятельно).
Мышка и клавиатура делятся между экранами - для игры это неудобно, а для просмотра фильмов можно использовать пульт ДУ. Можно наделать много layout-ов для разных ситуаций: монитор и проектор, проектор и монитор (видеоверлей на проекторе), только монитор, только проектор, монитор и проектор в режиме TwinView, то же в сочетании с телевизором (см. ниже). Простейший способ вывести изображение на телевизор - отключить монитор! При загрузке компьютера видеоплата обнаружив, что телевизор является единственным устройством, подключенным к ней, начинает выводить изображение (прямо с первого собщения BIOS) на TV-Out. При подключении телевизора к компьютеру необходимо их предварительно обесточить (выдернуть вилки из розеток!) и вынуть антенный кабель (и не втыкать его обратно, пока не рассоедините телевизор и компьютер!). Если вам достаточно для работы а/ц режима, то дальше можете не читать, все уже сделано. Для запуска X Window System на телевизоре необходимо дополнить файл /etc/X11/XF86Config (обязательно после стандартного Layout!).
Теперь можно запускать X и работать как на обычном мониторе, хотя и без удовольствия (фильмы смотрятся гораздо лучше, чем на мониторе):. Редактировать тексты, глядя на экран телевизора - невозможно, перезагружаться каждый раз, когда хочется посмотреть фильм - утомительно. Поэтому предлагается запустить два X сервера - каждый для своего устройства (напоминаю, что речь идет о GeForce 2, который не умеет выводить 2 независимых изображения). Конфигурация XF86Config совпадает с описанной в предыдущем разделе.
Первый X сервер запускается как обычно (я запускаю его командой startx). Второй X сервер запускается командой (используется ключ -ac, потому что я не знаю другого способа снять защиту при такой форме запуска).
Теперь у нас "крутятся" сразу два X сервера с общей клавиатурой и мышкой. Переключения между ними производятся по нажатию Ctrl-Alt-F7 и Ctrl-Alt-F8 (предполагается наличие 6 виртуальных а/ц консолей, иначе клавиши будут другими). Закрывается сервер обычным сочетанием Ctrl-Alt-Backspace, главное не перепутать, какому серверу в момент нажатия принадлежит клавиатура. Сразу после запуска "текущим" является второй сервер - ему принадлежит клавиатура, на его экран (телевизор) выводится изображение. Переключаемся обратно на первый сервер (Ctrl-Alt-F7) и запускаем, например, mplayer.
Пока он раскручивает диск, переключаемся на второй сервер (Ctrl-Alt-F8). По окончанию просмотра втрой сервер останавливать необязательно - он никому не мешает. Преодолеть оставшееся чувство неудовлетворения поможет программа nvtv.
Она позволяет гибко настраивать параметры вывода (вплоть до прямого доступа ко всем регистрам телевизионных кодировщиков и CRTC NVIDIA!) и выводить одновременно на монитор и телевизор для видеоплат без TwinView (к сожалению, одинаковое изображение). Не работает с GeForce3 и выше. Включена в состав xine. Установка nvtv 0. 3:. взять и распаковать исходные тексты.
/configure --with-gtk=gtk2. не знаю, что автор хотел сказать в файле pipe.
h, но я заменил строчки с "##" на явные строковые константы. make nvdump (выдает набор бессмысленных для меня цифр). cp nvtv nvtvd /usr/local/bin/. документация лежит в файлах doc/USAGE, FAQ, doc/man/nvtv. 1x, doc/man/nvtvd. Для доступа к регистрам программе nvtv требуются либо права root (их можно обеспечить с помощью механизма suid или вспомогательного демона nvtvd), либо работающий драйвер NVIDIA (обеспечивается совместимость с версиями не старше 3123).
Есть слухи, что nvtv работает с GeForce4, если тот проинициализирован фирменным драйвером. Исходный текст программы доступа к внутренним структурам драйвера NVIDIA (через /dev/nvidia*) представляет самостоятельный интерес. При использовании драйвера NVIDIA программу nvtv необходимо запускать после запуска X с ключом -N. При запуске в графическом режиме nvtv предоставляет обширные (я бы даже сказал, что чрезмерно обширные) возможности по настройке формата вывода. Я рекомендую подсмотреть список режимов (закладка Mode, ключи -r и -s), доступных вашему ТВ кодировщику, а в дальнейшем использовать текстовый режим. Список режимов зависит от режима цветности, например, мой chrontel 7007 для SECAM выдает пустой список режимов.
Включение вывода на телевизор одновремено с выводом на монитор и переход к разрешению 768x576:. После этого изображение будет выводиться одновременно на телевизор и монитор. Монитор может не поддерживать выбранное разрешение и режим работы. В этом случае попробуйте другой режим. Например, мой монитор не любит режимы 800x600xLarge (обрезает картинку), 768x576xSmall (срывается кадр), 640x480xLarge (рекомендуемый для NTSC DVD 4:3 - мельтешение на экране, Small - нормально). Некоторые режимы невозможно смотреть ни на мониторе, ни на телевизоре (для меня такой режим - 800x450).
Для нестандартных разрешений рекомендуется завести соответствующий Modeline в секции Monitor (основной монитор, не MonitorTV) и включить его в список Modes соответствующей подсекции Display, например (nvtv поменяет частоты синхронизации при использовании ключа -t). Виртуальное разрешение останется прежним (у меня 1600x1200), так что окно с фильмом приходится искать на этом бескрайнем поле и центрировать, а также бороться с излишним рвением некоторых программ к масштабированию и обеспечению "правильного" соотношения сторон (mplayer -noaspect). Надеюсь, что это умение придет к вам с опытом, описать это невозможно.
Если ваш телевизор имеет возможность для просмотра широкоэкранных фильмов, то лучше использовать ее и выводить в режиме 4:3, чем использовать дискретное масштабирование плейера и режим вывода типа 800x450. Выключение вывода на телевизор и возвращение исходного разрешения экрана:. nvtv позволяет задавать в текстовом режиме множество параметров с помощью ключа --set (полный список и интервал значений выдается по nvtv -h, используемый ТВ кодировщик может поддерживать не все параметры):.
--set flicker:от0до100 (управление фильтром мерцания). --set sharpness:от0до100. --set brightness#:от-50до50.
--set contrast#:от-50до50. --set saturation#:от-50до50. Путем проб и ошибок можно подобрать режим, в котором и фильм будет прекрасно выглядеть на телевизионном экране (похоже, что некоторые фильмы специально кодируют так, чтобы их было невозможно смотреть на компьютерном мониторе - например, случайным образом меняют порядок полей) и меню плейера будет читаемо на мониторе. GPU GeForce2 MX и GeForce4 имеют два CRTC и могут выводить 2 независимых изображения (с различным разрешением и частотой) на монитор и телевизор. Настройки задаются с помощью TwinView и не должны вызвать затруднений в простом случае (один монитор и один телевизор). DPMS не работает на втором мониторе (ТВ) - может это и правильно.
Утилита nvclock позволяет изменить частоту работы GPU и памяти. Версия 0. 2 неправильно показывает частоту памяти и "подвешивает" компьютер при попытке изменить что-либо на Ti 4200-8x. взять и развернуть исходные тексты.
/configure (--enable-qt порождает чудовищный src/qt/Makefile). src/gtk2/Makefile имеет странные CFLAGS и LIBS (устанавливаются до определения GTK), поправить. /usr/local/bin/nvclock. /usr/local/bin/nvclock_gtk (зачем такой программе графический интерфейс?). /usr/local/share/doc/nvclock/ (из них полезны README, FAQ).
Утилита не сохраняет измененные значения частот в NVRAM, так что ее необходимо вызывать каждый раз после запуска X Windows (например, поместить в. xinitrc). Если запускать ее до X Windows, то требуются права root, а модуль nvidia может сбросить изменения.
Ключи запуска:. -i (выдать информацию о текущих установках). -n MHz (установить частоту GPU).
-m MHz (установить частоту памяти). Не все значения частоты памяти возможны, например у меня они устанавливаются с шагом 7 МГц (утилита сообщает реально установленную частоту). Утилита имеет свои представления о максимально возможных частотах. Их можно преодолеть с помощью ключа -f, но я не советую. Рекомендуется постепенно повышать частоту GPU (пока компьютер не зависнет ;), затем перезагрузиться и постепенно повышать частоту памяти (пока опять не зависнет ;).
Не рекомендуется работать постоянно на максимально возможной частоте - это сильно сокращает время жизни видеоплаты и может привести к зависаниям при повышении температуры за бортом в самый неподходящий момент. У меня получилось поднять частоты с 200/401 до 228/451 МГц (при этом используются ключи -n 228 -m 449). glxgears ускорилась с 1225 fps (87 fps при 1600x1200) до 1425 fps (101 fps при 1600x1200). Правда, через некоторое время я заметил зелёные точки на серых полях и понизил частоту памяти до 415 MHz.
x11perf (-all требует 3 часов работы, запускать на только что загруженном компьютере, необходимо убить процесс xscreensaver, отключить запуск updatedb и прочих программ, освободить левый верхний угол 800x800) отчетливо показывает какие операции выполняются CPU (не ускоряются совсем), GPU (ускоряются в 228/200 раза). Некоторые операции ведут себя странно. Например, putimagexy и getimagexy временно блокируют компьютер (5 секунд на квадрат 500x500). Для видеокарт с аппаратным контролем возможно извлечь значения температуры и частоты вращения вентилятора с помощью пакета rivatv.
Основное назначение пакета - видеозахват, но в этом качестве я его не пробовал. (о видео захвате с помощью AverMedia TVPhone98 или аналогичных карт на Bt848/878 смотрите мою статью ). взять исходные тексты.
/configure (неправильно определяет местоположение модулей ядра: поправить MODULES в Makefile). вместо make install, который записывает в /lib/modules/2. 18-14/kernel/drivers/media/video/ модули rivatv. o, saa7108e. o, saa7111a.
o, saa7113h. o, tuner.
o, tvaudio. o, tvmixer. o, tw98. o, vpx32xx. o (при этом он затирает стандартные tuner.
o, tvaudio. o, tvmixer. o!), я скопировал только rivatv.
o (и требуемый модуль декодера: saa7108e. o, saa7111a. o, saa7113h. o, tw98. o, vpx32xx.
o). драйвер nvidia должен использовать agpgart. в /etc/rc.
d/rc. local вставить. чтобы подавить проверку совместимости версии модуля и ядра в /etc/modules.
conf добавить строку. убедиться, что загружены требуемые модули (i2c-core, i2c-algo-bit, videodev). загрузить его вручную в первый раз. если на плате есть декодер, то загрузить один из модулей декодера (saa7108e. o, saa7111a. o, saa7113h.
o, tw98. o, vpx32xx.
o). плата с тюнером требует загрузить нестандартные модули tuner. o, tvaudio. o, tvmixer. проверить содержимое файла /proc/driver/rivatv, чобы убедиться, что все загрузилось нормально.
Параметры модуля rivatv. capbuffers (2; число буферов видеозахвата). autoload (1; подгружать ли автоматически модуль декодера). card (автомагически; модель видеокарты из CARDLIST). tvbox (0; 0 - нет, 1 - PAL, 2 - NTSC). dma (0; использовать ли DMA при захвате; неотлажено; работает только совместно с GPL драйвером nv; как можно захватывть видео без DMA я не понимаю ;).
agp (0; использовать ли AGP, используется agpgart!). При запуске sensors-detect ошибочно ссылается на пакет rivatv как i2c-riva (в исходных текстах действительно есть i2c-riva. c, но при сборке он включается в rivatv. o). Далее следуете всем указаниям, которые выдает sensors-detect. Пример моей борьбы (борьбы, потому что поддержка I2C реализована в Linux отвратительно) с датчиками смотрите в описании установки Red Hat 8.
Если все сделано правильно, то программа sensors среди прочей информации выдает (устройства с 1-50 по 1-57 - это нераспознанная информация: то ли настройка самой видеокарты, то ли настройка внешнего чипа TV-Out Chrontel 7007).