Последнее обновление 05.01.11 15:08 Добавил(а) Vinnie

- Оптимизация совместной работы проприетарного драйвера NVidia и compiz-fusion
- Описание опций
- Показать полностью
Часто в интернет-блогах встречаю жалобы пользователей графических карт NVidia , установивших на свой компьютер с ОС Linux композитный менеджер compiz-fusion на недостаточную производительность данных адаптеров, и соответственно, сильное замедление работы графической подсистемы. Меня очень удивил данный факт.
Дело в том, что в данной программе используется очень простая графика, которая не может задействовать и десятой доли возможностей современных графических ускорителей. Если сравнить с современными компьютерными играми, графика — просто примитивная. Поэтому, проанализировав все факторы, я пришел к выводу, что наиболее вероятная причина всех этих жалоб — неправильная настройка того или иного компонента графической системы Linux. Рассмотрим все это на примере дистрибутива Fedora 8 (графический сервер X.org 7.3).
Первая ошибка, которая чаще всего встречается — неправильная настройка Direct Rendering, или проще говоря - «DRI». DRI отвечает за ускорение вывода 2D и 3D графики на экран. Для того, чтобы проверить, правильно ли настроен DRI на Вашем компьютере, наберите в консоли команду:
$ glxinfo | grep direct
Если все настроено правильно, вывод команды будет примерно следующим:
direct rendering: Yes
Если данная строка отсуствует в выводе команды, это означает, что DRI настроен неправильно и неработоспособен. В этом случае необходимо в первую очередь проверить наличие прав доступа к файлам устройств «/dev/nvidia0», «/dev/nvidia1», «/dev/nvidia2», «/dev/nvidia3», «/dev/nvidiactl». Правильная настройка — это наличие прав на чтение и запись для пользователя, от имени которого запускается X-сеанс. Если Ваш компьютер предназначен для индивидуального домашнего использования, лучше всего настроить разрешение на чтение-запись для всех пользователей компьютера, т.е. установить значением атрибута доступа восьмеричное 0666. Для Fedora-8 это можно сделать двумя способами. Так как в данном дистрибутиве файловая система /dev обслуживается с помощью технологии udev, необходимо настроить правила udev для создания вышеперечисленных файлов устройств. Для этого создайте файл 55-nvidia.rules в каталоге /etc/udev/rules.d/:
$ touch /etc/udev/rules.d/55-nvidia.rules
со следующим содержанием:
KERNEL=="nvidia[0-9]",GROUP="wheel", MODE="0666" KERNEL=="nvidiactl",GROUP="wheel", MODE="0666"
Второй вариант — использование опций драйвера ядра nvidia. Драйвер умеет сам управлять правами доступа к создаваемым файлам устройств. Ниже показан пример настройки опций драйвера:
/etc/modprobe.d/nvidia:
options nvidia NVreg_DeviceFileMode=438 NVreg_DeviceFileUID=0 NVreg_DeviceFileGID=10 Nvreg_ModifyDeviceFiles=1<p> </p>
Значение параметров:
| Nvreg_DeviceFileMode |
значение атрибутов файлов устройств в десятичной системе исчисления. В данном случае 438 — десятичное представление восьмеричного значения 0666 |
| Nvreg_DeviceFileUID | идентификатор пользователя, который будет установлен в качестве владельца файлов устройств |
| Nvreg_DeviceFileGID |
идентификатор группы, которая будет установлен в качестве владельца файлов устройств |
| Nvreg_ModifyDeviceFiles |
если данная опция установлена в 1, драйверу разрешено изменять атрибуты файлов устройств |
После того, как права доступа настроены, необходимо внести соответствующие настройки в файл конфигурации «xorg /etc/X11/xorg.conf»:
/etc/X11/xorg.conf:
Section «DRI»
Mode 0666
EndSection
После того, как настроен DRI, перейдем к настройке остальных компонентов системы. Ниже приведен пример настроек в файле xorg.conf:
Section "Extension" Option "DRI" "Enable" Option "Render" "Enable" Option "Damage" "Enable" Option "Composite" "Enable" EndSection Section "Screen" Option "TripleBuffer" "True" Option "BackingStore" "True" Option "DamageEvents" "True" Option "UseEvents" "False" Option "Coolbits" "1" Option "AddARGBGLXVisuals" "True" Option "XAANoOffscreenPixmaps" "True" Option "DisableGLXRootCliping" "True" Option "DRI" "True" EndSection Section "ServerLayout" Option "AIGLX" "True" EndSection Section "Module" Load "glx" Load "dbe" Load "extmod" EndSection
Краткое описание опций:
BURG: Украшаем меню выбора ОС в Ubuntu
|
|---|
у меня в материнской плате встроенная видеокарта на ATI.
я же использую отдельную видеокарту GeForce 7600
какие мне настройки выставлять в соответствии с ващей статьей? ATI или nvidia?
Настройки для той карты, которую хотите использовать. Или используются обе?
Если версия x.org > 7.0 ничего добавлять не надо, модули загружаются по мере необходимости.
и вдобавок еще поновой настроить в панели рабочие столы, так как там несоответствие, до перезагрузки допустим стоял один стол в настройках-при включенном compiz 4,
Какой DM используете? Если KDE, то какая версия? Если старая, то там специальный пейджер надо ставить на панель вместо стандартного. Для автозагрузки в KDE я все подробно описал. Для GNOME достаточно прописать запуск в менеджере сеансов. И еще -у Вас в параметрах запуска ошибка - не ccm, а ccp.
у меня в материнской плате встроенная видеокарта на ATI.
я же использую отдельную видеокарту GeForce 7600
какие мне настройки выставлять в соответствии с ващей статьей? ATI или nvidia? драйвер скачал с репозитория livna по команде kmod-nvidia заодно с новым ядром..
в моем /etc/X11/xorg.conf вообще отсутствует секция Module - мне ее создать?
ничего не редактируя установил ваши пакеты, пропала кнопка включения эффектов из меню, но compiz запускается вручную, также запускается emerald тоже вручную и все вроде бы работает нормально, только вот при перезагрузке не запускается ничего, ни compiz ни emerald ни gtk-window-decorator, т е окна без шапок и не передвигаются...
нужно последовательно включить сначала compiz --replace ccm потом emerald --replace
и вдобавок еще поновой настроить в панели рабочие столы, так как там несоответствие, до перезагрузки допустим стоял один стол в настройках-при включенном compiz 4,
а после перезагрузки остается один, и даже включишь compiz все равно один..подскажите что делать, как насторить автозапуск поподробнее если можно - в скриптах не силен
заранее благодарен.









