Автор Тема: Загрузка драйвера nvidia-173 [Решено]  (Прочитано 9323 раз)

Оффлайн squire

  • Завсегдатай
  • *
  • Сообщений: 1 609
Simply 6.01 с последними обновлениями. Видеокарта Nvidia GF 7600 GT AGP 8X.

На ядре 3.0.38 и драйвере 295.59
$ glxgears
25534 frames in 5.0 seconds = 5106.599 FPS
24657 frames in 5.0 seconds = 4931.364 FPS
25511 frames in 5.0 seconds = 5102.101 FPS

Обновил ядро до 3.0.41. Загрузился драйвер 304.37
$ glxinfo | grep render
direct rendering: Yes
OpenGL renderer string: GeForce 7600 GT/AGP/SSE2
    GL_NV_vertex_program3, GL_NVX_conditional_render,
    GL_OES_depth_texture, GL_OES_element_index_uint, GL_OES_fbo_render_mipmap,
$ glxgears
Running synchronized to the vertical refresh.  The framerate should be
approximately the same as the monitor refresh rate.
303 frames in 5.0 seconds = 60.585 FPS
301 frames in 5.0 seconds = 60.023 FPS
301 frames in 5.0 seconds = 60.019 FPS

Система стала явно подтормаживать. Давно замечено, что разработчики NVIDIA, добавляя в новый драйвер поддержку новых карт, потихоньку ломают поддержку старых.

"Отодвинул" /usr/share/hwdatabase/videoaliases/nvidia-304.37.xinf
Загрузился драйвер 173.14.35, который работает в моей системе гораздо быстрее:
$ cat /var/log/Xorg.0.log | grep -i nvidia
(II) Executed /usr/libexec/X11/drv.d/nvidia
(II) Module glx: vendor="NVIDIA Corporation"
(II) NVIDIA GLX Module  173.14.35  Thu May 31 12:34:02 PDT 2012
(II) LoadModule: "nvidia"
(II) Loading /usr/lib/X11/modules/drivers/nvidia_drv.so
(II) Module nvidia: vendor="NVIDIA Corporation"
(II) NVIDIA dlloader X Driver  173.14.35  Thu May 31 12:10:59 PDT 2012
(II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
$ glxgears
Running synchronized to the vertical refresh.  The framerate should be
approximately the same as the monitor refresh rate.
35542 frames in 5.0 seconds = 7108.323 FPS
35681 frames in 5.0 seconds = 7135.979 FPS
35733 frames in 5.0 seconds = 7146.453 FPS
IMHO, это просуществует до следущего обновления ядра. С ним подтянется свой модуль nvidia, и все начинай сначала.

Отсюда вопрос: возможна ли такая глобальная настройка, чтоб система всегда загружалась с драйвером 173 независимо от последующих обновлений ядра и модулей?
« Последнее редактирование: 24.08.2012 14:14:01 от squire »

Оффлайн zerg

  • ненужная строка
  • alt linux team
  • ***
  • Сообщений: 2 495
  • ненужная строка
    • Найдётся всё
Убрать этот мусор можно переключателем: Не показывать подписи других пользователей.

Оффлайн squire

  • Завсегдатай
  • *
  • Сообщений: 1 609
Re: Загрузка драйвера nvidia-173
« Ответ #2 : 22.08.2012 18:38:25 »
С вертикальной синхронизацией понятно. glxgears явно сообщает:
Running synchronized to the vertical refresh.  The framerate should be
approximately the same as the monitor refresh rate.
303 frames in 5.0 seconds = 60.533 FPS
"Запуск синхронизируется с вертикальной разверткой. Частота кадров должна быть
примерно такая же, как скорость обновления экрана." Что соответствует действительности.

Но скорость работы моей карты на драйвере 173 заметно выше. Быстрее открываются окна, меню и т.д., что заметно на глаз. Поэтому загрузка драйвера 173 по умолчанию остается актуальной.

Оффлайн Vovka-Korovka

  • alt linux team
  • ***
  • Сообщений: 1 186
  • True Metal Cow
    • Email
Re: Загрузка драйвера nvidia-173
« Ответ #3 : 22.08.2012 18:41:45 »
"Запуск синхронизируется с вертикальной разверткой. Частота кадров должна быть
примерно такая же, как скорость обновления экрана." Что соответствует действительности.

Ну а кто мешает отключить вертикальную синхронизацию?

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Загрузка драйвера nvidia-173
« Ответ #4 : 23.08.2012 07:36:20 »
Отсюда вопрос: возможна ли такая глобальная настройка, чтоб система всегда загружалась с драйвером 173 независимо от последующих обновлений ядра и модулей?
С rpm'ным?
Не-а:
# rpm2cpio ./kernel-modules-nvidia-std-pae#295.59-alt1.196648.0.M60P.1_295.59-alt1.196648.0.M60P.1_i586.rpm | cpio -idmv
./lib/modules/3.0.40-std-pae-alt0.M60P.1/.versions/nvidia
./lib/modules/3.0.40-std-pae-alt0.M60P.1/nVidia
./lib/modules/3.0.40-std-pae-alt0.M60P.1/nVidia/nvidia.ko
./lib/modules/nvidia/3.0.40-std-pae-alt0.M60P.1-173.14.35
./lib/modules/nvidia/3.0.40-std-pae-alt0.M60P.1-295.59
./lib/modules/nvidia/3.0.40-std-pae-alt0.M60P.1-96.43.20
./var/lib/nvidia/3.0.40-std-pae-alt0.M60P.1
50556 блоков
# cat ./var/lib/nvidia/3.0.40-std-pae-alt0.M60P.1
295.59
# ls -l ./lib/modules/3.0.40-std-pae-alt0.M60P.1/nVidia/nvidia.ko
lrwxrwxrwx 1 root root 53 Авг 23 06:18 ./lib/modules/3.0.40-std-pae-alt0.M60P.1/nVidia/nvidia.ko -> /lib/modules/nvidia/3.0.40-std-pae-alt0.M60P.1-295.59
# cat ./lib/modules/3.0.40-std-pae-alt0.M60P.1/.versions/nvidia
295.59
# ls -1  ./lib/modules/nvidia/
3.0.40-std-pae-alt0.M60P.1-173.14.35
3.0.40-std-pae-alt0.M60P.1-295.59
3.0.40-std-pae-alt0.M60P.1-96.43.20
# ls -l /var/lib/nvidia/
итого 12
-rw-r--r-- 1 root root 7 Июн 20 07:20 3.0.24-std-def-alt0.M60P.2
-rw-r--r-- 1 root root 7 Авг 19 00:12 3.0.34-std-def-alt0.M60P.1
-rw-r--r-- 1 root root 7 Авг 19 00:20 3.0.40-std-pae-alt0.M60P.1
# apt-cache showpkg  kernel-image-std-pae|grep nvidia
  kernel-modules-nvidia-std-pae#295.59-alt1.196648.0.M60P.1,kernel-image-std-pae 3.0.40-alt0.M60P.1
  kernel-modules-nvidia-std-pae#295.59-alt1.196648.0.M60P.1,kernel-image-std-pae 3.0.40-alt0.M60P.1
  kernel-modules-nvidia-std-pae#304.37-alt1.196649.0.M60P.1,kernel-image-std-pae 3.0.41-alt0.M60P.1
  kernel-modules-nvidia-std-pae#304.37-alt1.196649.0.M60P.1,kernel-image-std-pae 3.0.41-alt0.M60P.1
# uname -r
3.0.40-std-pae-alt0.M60P.1

http://www.altlinux.org/Nvidia
Цитировать
На сегодняшний день политика компании Nvidia такова, что она разделила все свои видеокарты на 3 группы. В зависимости от того, какая видеокарта, можно ставить один из поддерживающих её драйверов.

Краткий алгоритм установки драйверов серии legacy

Данный алгоритм устарел. В современном Сизифе всё это делается скриптами, но если произошёл сбой в их работе, вы можете сделать эти операции за них.

С недавнего времени xorg-x11-server-1.4 модули legacy вошли в основной пакет Nvidia. Как поменять текущий модуль ядра (все операции требуют прав root)?

    Выключаем X-ы, например
telinit 3,
    Выгружаем модуль nvidia:
rmmod nvidia,
    Меняем символическую ссылку, например
ln -s /lib/modules/nvidia/{версия ядра} /lib/modules/{версия ядра}/nVidia/nvidia.ko,
    Прописываем в /lib/modules/{версия ядра}/.versions/nvidia: 1.0.9639,
    depmod -a,
    modprobe nvidia,
    Проверяем, что в xorg.conf прописан модуль nvidia,
    x11setupdrv, (начиная с ALT 5.0 и выше не нужно, т.к. скрипт встроен в запуск X-сервера)
    Запускаем X-ы, например
telinit 5.
    {версия ядра} — это та версия, в которой вы хотите настроить работу драйверов Nvidia.

Возможные баги

Иногда (при смене версий пакетов и расхождении ABI ) xorg-x11-server требует, чтобы в /etc/X11/xinit/xserverrc было прописано:
X_server='X -nolisten tcp -ignoreABI'
вместо
X_server='X -nolisten tcp'
Второй способ - в /etc/x11/xorg.conf добавить опцию
Section "ServerFlags"
  Option         "IgnoreABI" "true"
EndSection


В ядерном модуле поднятие последней версии драйвера прибито гвоздями.
После обновления ядра, операцию перенастройки придётся повторить: с другим модулем, другой версии ядра.
« Последнее редактирование: 23.08.2012 09:11:55 от Speccyfighter »

Оффлайн squire

  • Завсегдатай
  • *
  • Сообщений: 1 609
Re: Загрузка драйвера nvidia-173
« Ответ #5 : 23.08.2012 13:54:57 »
В ядерном модуле поднятие последней версии драйвера прибито гвоздями.
После обновления ядра, операцию перенастройки придётся повторить: с другим модулем, другой версии ядра.
Спасибо. Собственно я так и предполагал.

Оффлайн zerg

  • ненужная строка
  • alt linux team
  • ***
  • Сообщений: 2 495
  • ненужная строка
    • Найдётся всё
Re: Загрузка драйвера nvidia-173
« Ответ #6 : 23.08.2012 15:48:14 »
В ядерном модуле поднятие последней версии драйвера прибито гвоздями.
Не рассказывайте сказки. Оно по умолчанию, но не прибито.
При отсутствии соответствующего /usr/share/hwdatabase/videoaliases/nvidia-NN.xinf на NN версию переключено не будет, а будет переключено на самую последнюю из подходящих.
Убрать этот мусор можно переключателем: Не показывать подписи других пользователей.

Оффлайн zerg

  • ненужная строка
  • alt linux team
  • ***
  • Сообщений: 2 495
  • ненужная строка
    • Найдётся всё
Re: Загрузка драйвера nvidia-173
« Ответ #7 : 23.08.2012 15:49:57 »
Собственно я так и предполагал.
Зря. Человек писал о том, что к данной теме вообще не имеет никакого отношения.
Убрать этот мусор можно переключателем: Не показывать подписи других пользователей.

Оффлайн squire

  • Завсегдатай
  • *
  • Сообщений: 1 609
Re: Загрузка драйвера nvidia-173
« Ответ #8 : 23.08.2012 16:01:01 »
При отсутствии соответствующего /usr/share/hwdatabase/videoaliases/nvidia-NN.xinf на NN версию переключено не будет, а будет переключено на самую последнюю из подходящих.
Ну я это и сделал, о чем написал в первом посте.
Цитировать
"Отодвинул" /usr/share/hwdatabase/videoaliases/nvidia-304.37.xinf
Загрузился драйвер 173.14.35, который работает в моей системе гораздо быстрее
Вопрос в том, возможно ли, чтоб это делалось автоматом при обновлении ядра?

Оффлайн zerg

  • ненужная строка
  • alt linux team
  • ***
  • Сообщений: 2 495
  • ненужная строка
    • Найдётся всё
Re: Загрузка драйвера nvidia-173
« Ответ #9 : 23.08.2012 16:02:01 »
Вопрос в том, возможно ли, чтоб это делалось автоматом при обновлении ядра?
Я вам намекал с самого начала, что такой необходимости нет.
Убрать этот мусор можно переключателем: Не показывать подписи других пользователей.

Оффлайн squire

  • Завсегдатай
  • *
  • Сообщений: 1 609
Re: Загрузка драйвера nvidia-173
« Ответ #10 : 23.08.2012 17:30:06 »
Я вам намекал с самого начала, что такой необходимости нет.
По Вашему намеку я сразу в Инете пошарился. Нашел, где в Simply отключается вертикальная синхронизация. Отключил.
~/.nvidia-settings-rc
Цитировать
# Attributes:
...
0/SyncToVBlank=0
glxgears показал 25091 frames in 5.0 seconds = 5018.131 FPS, но это же не показатель производительности системы. На драйвере 173 она все равно работает быстрее.

Оффлайн zerg

  • ненужная строка
  • alt linux team
  • ***
  • Сообщений: 2 495
  • ненужная строка
    • Найдётся всё
Re: Загрузка драйвера nvidia-173
« Ответ #11 : 23.08.2012 19:46:38 »
Ну, значит, будете изредка удялять лишние .xinf.
Я не хочу делать еще один повод для возникновения проблем при решении проблем.
Убрать этот мусор можно переключателем: Не показывать подписи других пользователей.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Загрузка драйвера nvidia-173
« Ответ #12 : 23.08.2012 23:41:32 »
glxgears показал 25091 frames in 5.0 seconds = 5018.131 FPS, но это же не показатель производительности системы. На драйвере 173 она все равно работает быстрее.

А то!
От версии драйвера многое зависит:
http://lna.org.ru/forum/index.php/topic,49.msg3177.html#msg3177
http://ubuntuforums.org/showpost.php?p=3892858&postcount=47
По своему 100.14.19 помню с такими же впечатлениями после перехода на 173.

После обновления можно скрипт подсунуть, написанный на коленке:
#!/bin/sh

yes | cp -R /usr/share/hwdatabase/videoaliases /usr/share/hwdatabase/videoaliases.bak

find /usr/share/hwdatabase/videoaliases/ -type l \( -not -name "nvidia-173*.xinf" \)| while read lnk; do `rm -f $lnk`; done

Скрипт кривой, в смысле некрасивый, но должен работать (ну не shell-кодер... :(  ).
Не катайте его на живой системе, попробуйте скажем в virtualbox.

Первая строка создаёт резервную копию каталога перезаписывая без подтверждения файлы/линки.
Вторая, содержимое:
# ls -l /usr/share/hwdatabase/videoaliases/
итого 24
-rw-r--r-- 1 root root 20867 Авг  5  2011 fglrx.xinf
lrwxrwxrwx 1 root root    37 Июн  5 17:06 nvidia-173.14.31.xinf -> /usr/lib/nvidia_173.14.31/nvidia.xinf
lrwxrwxrwx 1 root root    37 Июн 20 07:19 nvidia-173.14.35.xinf -> /usr/lib/nvidia_173.14.35/nvidia.xinf
lrwxrwxrwx 1 root root    34 Авг 23 21:38 nvidia-295.20.xinf -> /usr/lib/nvidia_295.20/nvidia.xinf
lrwxrwxrwx 1 root root    34 Авг 23 21:38 nvidia-295.59.xinf -> /usr/lib/nvidia_295.59/nvidia.xinf
lrwxrwxrwx 1 root root    34 Авг 23 21:38 nvidia-304.37.xinf -> /usr/lib/nvidia_304.37/nvidia.xinf
lrwxrwxrwx 1 root root    36 Авг 23 21:38 nvidia-96.43.20.xinf -> /usr/lib/nvidia_96.43.20/nvidia.xinf
превращает в:
# ls -l /usr/share/hwdatabase/videoaliases/итого 24
-rw-r--r-- 1 root root 20867 Авг  5  2011 fglrx.xinf
lrwxrwxrwx 1 root root    37 Июн  5 17:06 nvidia-173.14.31.xinf -> /usr/lib/nvidia_173.14.31/nvidia.xinf
lrwxrwxrwx 1 root root    37 Июн 20 07:19 nvidia-173.14.35.xinf -> /usr/lib/nvidia_173.14.35/nvidia.xinf

удаляя из каталога по инверсии выбора: всё что _не_.
Сюда же можно telinit подоткнуть для рестарта. И т.д.

Оно бы хорошо получая на выходе, сделать как-то более красиво:
cd /usr/share/hwdatabase/videoaliases/; find . -type l \( -not -name "nvidia-173*.xinf" \)
./nvidia-295.59.xinf
./nvidia-304.37.xinf
./nvidia-96.43.20.xinf
./nvidia-295.20.xinf
оставляя *173* и fglrx* вне поля зрения, подхватить всё что вылетело на выходе и куда-то перенести для резерва. Но кто захочет мож допишет лучше и стукнет. Если захочет.

Просьба камнями сильно не бросаться.

ЗЫж
Архивирование можно сделать и по-другому:
# cd /usr/share/hwdatabase/videoaliases
# find . -type l \( -not -name "nvidia-173*.xinf" \)| while read lnk; do `7z a not-173.7z $lnk &>/dev/null`; done
Архив будет создаваться в текущем каталоге.
Архивируются только: _не_ "nvidia-173*.xinf" симлинки.
# ls -l
итого 28
-rw-r--r-- 1 root root 20867 Авг  5  2011 fglrx.xinf
-rw-r--r-- 1 root root   356 Авг 24 05:52 not-173.7z
lrwxrwxrwx 1 root root    37 Июн  5 17:06 nvidia-173.14.31.xinf -> /usr/lib/nvidia_173.14.31/nvidia.xinf
lrwxrwxrwx 1 root root    37 Июн 20 07:19 nvidia-173.14.35.xinf -> /usr/lib/nvidia_173.14.35/nvidia.xinf
lrwxrwxrwx 1 root root    34 Авг 24 05:22 nvidia-295.20.xinf -> /usr/lib/nvidia_295.20/nvidia.xinf
lrwxrwxrwx 1 root root    34 Авг 24 05:22 nvidia-295.59.xinf -> /usr/lib/nvidia_295.59/nvidia.xinf
lrwxrwxrwx 1 root root    34 Авг 24 05:22 nvidia-304.37.xinf -> /usr/lib/nvidia_304.37/nvidia.xinf
lrwxrwxrwx 1 root root    36 Авг 24 05:22 nvidia-96.43.20.xinf -> /usr/lib/nvidia_96.43.20/nvidia.xinf
# 7z l not-173.7z
...
Listing archive: not-173.7z
...
Path = not-173.7z
Type = 7z
...
   Date      Time    Attr         Size   Compressed  Name
------------------- ----- ------------ ------------  ------------------------
2012-08-24 05:22:56 ....A           34           35  nvidia-295.59.xinf
2012-08-24 05:22:56 ....A           34           35  nvidia-304.37.xinf
2012-08-24 05:22:56 ....A           36           37  nvidia-96.43.20.xinf
2012-08-24 05:22:56 ....A           34           35  nvidia-295.20.xinf
------------------- ----- ------------ ------------  ------------------------
                                   138          142  4 files, 0 folders
После того как эти `_не_ 173` заархивированы, их можно удалить командой приведённой выше.

Но в принципе можно архивировать выборкой все симлинки, а удалять вторым скриптом только ненужное инверсией по маске. Тогда скрипт архивирования сократится до:

# find . -type l | while read lnk; do `7z a nv-symlinks.7z $lnk &>/dev/null`; doneПонятно, что этой строке должна предшествовать строка
cd /usr/share/hwdatabase/videoaliasesпоскольку предыдущая ищет симлинки в текущем каталоге.

Станет универсальнее и два файл-скрипта можно разделить на два сценария:
для "оставления" 96.xx.xx или 173.xx.xx

Распаковать архив, при необходимости, можно так:
# 7z x ./archiv.tgz -o/path # без пробела!Путь после ключа `-o` указывает куда будет происходить распаковка.
В контексте вышесказанного, распаковка должна выполняться с правами root.
В общих случаях формат архива может быть любым из доступных [man 7z; секция Description].

Это всё не рекомендации, это идея. А делать или не делать, дело вкуса...
Никто ж не заставляет...

ЗЗЫж
Единственный геморрой со скриптом/ами возникает с вопросом:
Какой драйвер для какой видеокарты? Какой оставить?
Здесь придётся лезть в
/usr/share/doc/nvidia_glx_{version}/README.txtи в районе секции
Acknowledgementsчто чуть дальше середины файла, искать свою видеокарту.
Поиск лучше начинать с README.txt для меньшей версии драйвера (через less по find).
Если ваша видеокарта поддерживается всеми тремя версиями драйверов, что уж совсем невероятно, попробуйте их все три, прогнав в самых различных задачах включая бенчмарки и оставьте лучший по результату.

Посмотреть, что за железяка
# hwinfo --gfxcard|grep Model:
# hwinfo --gfxcard|grep Device:
или
# lshwсекция дисплей.

Здесь сложностей никаких: не стоит бояться самого себя.
:)

(Нехорошая идея дописывания всего этого, делалась для того, чтобы не превращать "записки на коленках"  в разбросанную по всему форуму помойку
Целью записок ставилась, оптимизация системы под себя. Что понятно, это мизерная её часть.).
« Последнее редактирование: 26.08.2012 05:38:09 от Speccyfighter »

Оффлайн squire

  • Завсегдатай
  • *
  • Сообщений: 1 609
Re: Загрузка драйвера nvidia-173
« Ответ #13 : 24.08.2012 14:05:09 »
glxgears показал 25091 frames in 5.0 seconds = 5018.131 FPS, но это же не показатель производительности системы. На драйвере 173 она все равно работает быстрее.
А то!
От версии драйвера многое зависит
Немного офтопа, но в тему. Есть Win XP  с игрушкой Half-life2 с эпизодами. Установлен родной драйвер 94.24. Соблазнился рассказами геймеров, что последние драйвера nvidia - это круто (наверно у них совсем другие карты). Установил последний на то время двухсотый с чем-то драйвер. И что? У Фримена перестал включаться фонарь. То есть он включался, но ничего не освещал. В результате Фримена сразу замочили в темном подвале. :)
Вернул старый драйвер - все стало нормально.
Это я к тому, что производители nvidia уже не следят за поддержкой старых карт, хотя эта поддержка заявлена.

После обновления можно скрипт подсунуть
Спасибо. Похоже, Вы читали мои мысли. Остается только глубже изучить bash.
« Последнее редактирование: 25.08.2012 14:41:34 от squire »

Оффлайн squire

  • Завсегдатай
  • *
  • Сообщений: 1 609
Re: Загрузка драйвера nvidia-173
« Ответ #14 : 24.08.2012 14:11:56 »
Я не хочу делать еще один повод для возникновения проблем при решении проблем.
Собственно я не прошу от дистрибутивостроителей каких-то отдельных действий по поддержке старых видеокарт. Спасибо хотя бы за сообщение:
http://forum.altlinux.org/index.php/topic,10786.msg143629.html#msg143629
и попробуйте переименовать /usr/share/hwdatabase/videoaliases/nvidia-275.09.07.xinf и перезагрузиться.
Должен будет включиться драйвер 173.XX. Если работа с ним устроит, внесу необходимые изменения.
Хотя в свое время Вы сообщали:
http://forum.altlinux.org/index.php/topic,10786.msg143689.html#msg143689
Погоняйте подольше, потом скажите PCI-ID, я сделаю, чтоб 173 для нее включался по умолчанию.

Вероятно тему можно считать закрытой. Ставлю [Решено].

Выводы.
Для старых видеокарт nVidia предпочтительней использовать драйвера 173.х.х или 96.х.х
Для этого:

1. Удалить/переместить/переименовать файл /usr/share/hwdatabase/videoaliases/nvidia-3хх.хх.xinf
После перезагрузки системы должен включиться драйвер 173.х.х, идущий вместе с модулем nvidia нового ядра.
Для драйвера 96.х.х вероятно скоро начнутся проблемы:
http://forum.altlinux.org/index.php/topic,26091.msg183272.html#msg183272
[Драйвер 96.X . C выходом p7 и его не будет. 173.X только недавно запилили.

2. Написать собственный скрипт на основе сообщений Speccyfighter, который собственно будет делать то же самое.