Архив метки: nvidia

Размытие (блюр) экрана Kwin и Firefox при включённых эффектах

Тут давеча решил подключить эффекты Kwin (они же свистелки и перделки), а то чё как не пацан, с деревянными окнами без анимации.

Включил, всё прекрасно, окна красиво сворачиваются-разворачиваются-свертываются и все такое, вот только в Firefox поплыл шрифт, стал очень сильно размытым. Отключал сглаживание, хитинг-хуитинг и прочее - как криво было так и осталось. Плюс если перед уходом в suspend был открыт Youtube c видео, при выходе из suspend'a Firefox  просто очень криво отображал страницу, вплоть до чёрного экрана с какими-то элементами страницы. Решение было такое - пересобрать Лису без флага hwaccel. Теперь всё нормально работает. Но тут мигнул свет.

Свет мигнул, а компьютер не перезагружался уже больше полумесяца. И вот, кеды загрузились и я вижу на экране вот такое. Путём поиска нашёл (каламбур, да) тему на KDE'шном форуме (картинку я взял оттуда же, ага) - нужно в Nvidia-settings отключить FXAA.

Патч (patch) для nvidia-drivers-340.106

В портежах появилась новая версия драйвера nvidia-drivers-340.106, который также успешно не собирается на ядрах 4.15.х, как и nvidia-drivers-340.104. Но патч для nvidia-drivers-340.104 не подойдет, нужен другой.

Ругань при компиляции такая:

/var/lib/dkms/nvidia/340.106/build/uvm/nvidia_uvm_lite.c:857:14: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
.fault = _fault,
^~~~~~
/var/lib/dkms/nvidia/340.106/build/uvm/nvidia_uvm_lite.c:857:14: note: (near initialization for 'uvmlite_vma_ops.fault')
/var/lib/dkms/nvidia/340.106/build/uvm/nvidia_uvm_lite.c:887:14: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
.fault = _sigbus_fault,
^~~~~~~~~~~~~
/var/lib/dkms/nvidia/340.106/build/uvm/nvidia_uvm_lite.c:887:14: note: (near initialization for 'counters_vma_ops.fault')

Патч доступен по ссылке, действия аналогичны.

Убираем тиринг (tearing) на Nvidia в Linux

Как начал пользовать драйвер от Nvidia за номером 340.106, заметил, что появился тиринг в Firefox и просмотре фильмов через mplayer. Решение такое - добавить в файл xorg.conf такую строчку в секцию Screen (а можно и в Device, так же будет работать):

Option "metamodes" "nvidia-auto-select +0+0 { ForceCompositionPipeline = On }"

Если строка Option "metamodes" уже есть, то нужно просто добавить "nvidia-auto-select +0+0 { ForceCompositionPipeline = On }" в конец этой строки.

Можно и через nvidia-settings:

nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceCompositionPipeline = On }"

Но это на только на текущую сессию, без добавления в xorg.conf при перезагрузке всё вернется взад, зато после ввода команды действие наступит сразу же, можно будет проверить, пропадёт тиринг или нет, а после этого уже вносить изменения в xorg.conf.

Ядро Linux 4.15 и Nvidia драйвера версий 384.98 и 340.104

В общем обновился я на ядро ветки 4.15. Но с этим ядром не собираются nvidia-drivers 340.104.

Для решения этой проблемы идём по этой ссылке и скачиваем патч для драйвера Nvidia и распаковываем его из архива.

А вот что нужно сделать, чтобы наложить патч. Запускаем пересборку nvidia-drivers, причём делать это нужно на новом ядре или чтобы символическая ссылка /usr/src/linux указывала на директорию с ядром 4.15. Т.е. обновили ядро и следом нужно запустить пересборку nvidia-drivers (хотя после каждого обновления ядра это и так нужно делать). Ждём, когда вылетит ошибка, примерно такая:

/var/calculate/tmp/portage/x11-drivers/nvidia-drivers-340.104/work/kernel/nv.c: In function ‘nv_start_rc_timer’:
/var/calculate/tmp/portage/x11-drivers/nvidia-drivers-340.104/work/kernel/nv.c:2407:5: error: implicit declaration of function ‘init_timer’ [-Werror=implicit-function-declaration]
     init_timer(&nvl-;>rc_timer);
     ^~~~~~~~~~
/var/calculate/tmp/portage/x11-drivers/nvidia-drivers-340.104/work/kernel/nv.c:2408:28: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
     nvl->rc_timer.function = nvidia_rc_timer;
                            ^
/var/calculate/tmp/portage/x11-drivers/nvidia-drivers-340.104/work/kernel/nv.c:2409:18: error: ‘struct timer_list’ has no member named ‘data’
     nvl->rc_timer.data = (unsigned long) nvl;
                  ^
cc1: some warnings being treated as errors

Переходим в каталог  /var/calculate/tmp/portage/x11-drivers/nvidia-drivers-340.104/work/ (у меня установлены nvidia-drivers-340.104) и копируем туда же патч.

Накладываем его такой командой (от рута, естественно):

patch -p0 <nv_patch_340.104_linux_kernel_4.15

Дальше просто продолжаем сборку, с помощью команды ebuild, про неё подробней можно прочитать здесь.

ebuild /usr/portage/x11-drivers/nvidia-drivers/nvidia-drivers-340.104.ebuild compile install qmerge clean

 

 

 

Nvidia Driver

В продолжении темы компа и обновления. Не стартовал графический режим с nvidia драйверами, выдавал вот это:

Fatal server error:
no screens found
Please consult the The X.Org Foundation support
at http://wiki.x.org

Обновил драйвера – не помогло. Полез в логи Х сервера. Сначала ничего такого не заметил. Но потом приметил такую строчечку:

(II) Primary Device is: PCI 05@00:00:0

И как раз в xorg.conf есть такое определение:

BusID       “PCI:1:0:0″

решил закамментить эту строчку, мало ли. Как оказало – не зря решил, Иксы запустились, все нормально.