7
январь
2023
Установка драйверов видеокарты nVidia в runtu Lite (Ubuntu)
2:25

Установка драйверов видеокарты nVidia в runtu Lite (Ubuntu)

7 январь 2023 2:25

Чтобы компьютер был более тихим, купил на AliExpress безвентиляторную видеокарту nVidia GT610 фирмы Zotac.

Общая информация

Видеокартарту купил здесь:
Смотри, что есть на AliExpress! Видеокарта ZOTAC GT610 1G Ice Armor 64Bit GDDR3 графические карты для NVIDIA GeForce GT610 серии VGA б/у за 1 547,06 руб. - уже со скидкой 15%
https://sl.aliexpress.ru/p?key=fv5Wtqr

Операционная система: Runtu LITE (на основе Ubuntu 20.04), инструкция годится для неё и всех ОС семейства Ubuntu Linux.

Все драйверы бывают:

  • Nouveau - с открытым исходным кодом, универсальные, но не поддерживают аппаратное ускорение
  • nVidia - драйвер от производителя с максимальной поддержкой возможностей видеокарты.

Драйвер Nouveau работает всегда, он встроен в ядро и без проблем устанавливает высокое разрешение дисплея. Чтобы установить драйвер nVidia, нужны дополнительные шаги, которые рассмотрю ниже.

Три способа установки драйверов nVidia

Способ №1. С помощью RUN-файла

Самый первый, приходящий на ум способ, но неправильный - найти драйвер для видеокарты nVidia и скачать файл драйвера с сайта производителя nVidia из установить его.

Официальная инструкция по установке драйвера

Драйвер находится по адресу:

Данный способ неправильный!

Проблемы:
1) run-файл не ставится из работающего графического окружения. Нужно нажимать Ctrl+Alt+F1, из которого завершать графичекий сеанс "killall имя_оболочки". Либо запускать в "Дополнительные варианты" в меню Grub, где выходить в строку root, что я и делал.
2) проблемы с зависимостями. Первым делом при установке будут выводиться сообщения о необходимости установить определенную версию ядра.
3) конфликт версии компилятора GCC: версия компилятора для драйвера и версия компилятора для ядра должны совпадать с точностью до цифры.

Данный способ скорее всего не выполним по ряду причин, указанных выше. Единственный положительный момент от этого способа - подсказывает версию ядра, необходимую для драйвера. В данном случае, установил ядро ОС Linux amd 5.10.0-1016-oem.

Способ №2. Командой консоли "ubuntu-drivers"

В этом способе используется терминал. Вначале нужно с консоли выполнить команду, которая выведет список доступных драйверов nVidia для данной операционной системы

sudo ubuntu-drivers list

Команда проверит аппаратное обеспечение, аналогично AIDA64 (Everest), но в результатах сразу же будет выведен список доступных пакетов драйверов для данной модели видеокарты nVidia .

Например, в случае nVidia GT610 результат команды:
nvidia-340
nvidia-driver-390

Останется только установить нужный драйвер командой apt-get install:

sudo apt-get install nvidia-driver-390

Программа установки установит файлы и сделает нужные модификации в системе, включа blacklist для lsmod.

Способ №3. С помощью "software-properties-gtk"

Наиболее правильный путь для новичков. Отпугнуть может разве что неработающий апплет Пуск-Параметры-Драйверы
в некоторых дистрибутивах. Модуль software-properties-gtk переписан на python3 и может вызывать ошибку в строке 222:

sudo software-properties-gtk

ERROR:dbus.proxies:Introspect error on :1.110:/: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoReply: Message recipient disconnected from message bus without replying
Traceback (most recent call last):
File "/usr/bin/software-properties-gtk", line 100, in <module>
 app = SoftwarePropertiesGtk(datadir=options.data_dir, options=options, file=file)
File "/usr/lib/python3/dist-packages/softwareproperties/gtk/SoftwarePropertiesGtk.py", line 222, in __init__
 self.backend.Reload();
File "/usr/lib/python3/dist-packages/dbus/proxies.py", line 72, in __call__
 return self._proxy_method(*args, **keywords)
File "/usr/lib/python3/dist-packages/dbus/proxies.py", line 141, in __call__
 return self._connection.call_blocking(self._named_service,
File "/usr/lib/python3/dist-packages/dbus/connection.py", line 652, in call_blocking
 reply_message = self.send_message_with_reply_and_block(
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name :1.110 was not provided by any .service files

Решение:

sudo geany /usr/lib/python3/dist-packages/softwareproperties/gtk/SoftwarePropertiesGtk.py

В строке 222 команда
self.backend.Reload();
source

Я не нашел лучшего решения, чем добавить символ комментария "#" в начале строки и сохранить файл (Ctrl+S).
source2

После комментария # self.backend.Reload();, ошибка уходит, при выполнении команды sudo software-properties-gtk ошибка не возникает.

Остаётся только после запуска "sudo software-properties-gtk" перейти на закладку "Драйверы":
drivers
И сменить драйвер Nouveau на фирменный от nVidia и перезагрузить ПК.

Неполадки программы vainfo

Не решена проблема с vainfo, которая должна выводить информацию об аппаратной поддержке декодирования видео n.254

Под драйвером nouveau программа vainfo показывает, что драйвер не умеет аппаратное ускорение:

vainfo

libva info: VA-API version 1.7.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/nouveau_drv_video.so
libva info: Found init function __vaDriverInit_1_7
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.7 (libva 2.6.0)
vainfo: Driver version: Mesa Gallium driver 21.2.6 for NVD9
vainfo: Supported profile and entrypoints
   VAProfileNone : VAEntrypointVideoProc

Просмотр FullHD видео, например, на YouTube или ruTube это подтверждает - загрузка процессора 70-100%.

Выполнил смены драйвера с nouveau на nVidia командой sudo software-properties-gtk - Драйверы

  • установка проприетарного драйвера версии 340.108 вызывала ошибку 10
  • без ошибок звершилась установка драйвера nvidia-driver-390.

Выполнил перезагрузку.

После запуска системы и входа в рабочий стол, утилита для датчиков psensor стала выдавать дополнительную информацию от видекарты nVidia:
psensor

Команда vainfo так и не заработала

libva info: VA-API version 1.7.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/nvidia_drv_video.so
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit

Основная проверка - при воспроизведении файла MP4 разрешения FullHD:

mpv --vo=gpu --hwdec=vdpau TextInMotion-VideoSample-1080p.mp4 

Видно, что ошибки нет, и аппаратное ускорение работает:

mpv --vo=gpu --hwdec=vdpau TextInMotion-VideoSample-1080p.mp4
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: stream 0, timescale not set
(+) Video --vid=1 (*) (h264 1920x1080 25.000fps)
  Video --vid=2 [P] (mjpeg)
 (+) Audio --aid=1 --alang=eng (*) (aac 2ch 48000Hz)
AO: [pulse] 48000Hz stereo 2ch float
VO: [gpu] 1920x1080 yuv420p
AV: 00:00:29 / 00:00:30 (99%) A-V: 0.000
 
Exiting... (End of file)

Проверка на YouTube - воспроизводится ролик 1080@60fps (этот)
с загрузкой ядер процессора на 70%.
cpu1

Включение h264ify и отключение media.rdd-vpx.enabled не принеслу существенного уменьшения загрузки ЦП.
cpu2

При полноэкранном видео 1080@60fps пропуска кадров нет, процессор с видеокартой справляются.
cpu3

Дополнительная настройка - ubuntu-drivers devices

ubuntu-drivers devices 

== /sys/devices/pci0000:00/0000:00:02.0/0000:01:00.0 ==
modalias : pci:v000010DEd0000104Asv000019DAsd00002190bc03sc00i00
vendor : NVIDIA Corporation
model : GF119 [GeForce GT 610]
driver : nvidia-340 - distro non-free recommended
driver : nvidia-driver-390 - distro non-free
driver : xserver-xorg-video-nouveau - distro free builtin

Какой включен драйвер ?

lshw | grep nvidia

конфигурация: driver=nvidia latency=0

dmesg | grep nvidia

[ 2.888762] nvidia: loading out-of-tree module taints kernel.
[ 2.896336] nvidia: module license 'NVIDIA' taints kernel.
[ 2.926121] nvidia: module verification failed: signature and/or required key missing - tainting kernel
[ 2.975471] nvidia-nvlink: Nvlink Core is being initialized, major device number 236
[ 3.006314] nvidia 0000:01:00.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=io+mem
[ 3.039900] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms 390.157 Wed Oct 12 09:15:25 UTC 2022
[ 3.064151] [drm] [nvidia-drm] [GPU ID 0x00000100] Loading driver
[ 3.071936] [drm] Initialized nvidia-drm 0.0.0 20160202 for 0000:01:00.0 on minor 0
[ 6.844038] caller os_map_kernel_space.part.0+0x100/0x140 [nvidia] mapping multiple BARs
[ 13.930497] audit: type=1400 audit(1673099944.464:11): apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe" pid=832 comm="apparmor_parser"
[ 25.360752] caller os_map_kernel_space.part.0+0x100/0x140 [nvidia] mapping multiple BARs

Используется "заказной" драйвер nvidia.

Ещё одна проверка:

inxi -F

Graphics:
  Device-1: NVIDIA GF119 [GeForce GT 610] driver: nvidia v: 390.157
  Display: x11 server: X.Org 1.20.13 driver: nvidia
  resolution: 1280x1024~60Hz
  OpenGL: renderer: GeForce GT 610/PCIe/SSE2 v: 4.6.0 NVIDIA 390.157

Утилита nvidia-smi

SMI - system management interface

nvidia-smi
Sat Jan 7 02:01:22 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.157 Driver Version: 390.157 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GT 610 Off | 00000000:01:00.0 N/A | N/A |
| 40% 38C P8 N/A / N/A | 34MiB / 963MiB | N/A Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 Not Supported |
+-----------------------------------------------------------------------------+

Подробнее: man nvidia-smi

Утитилита nvidia-xconfig

Изменяет файл /etc/X11/xorg.conf:

cat /etc/X11/xorg.conf

....

Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection

Утитилита nvidia-settings

Не устанавливается вместе с драйвером и находится в отдельном пакете:

apt-cache search nvidia-settings

Установка:

sudo apt-get install nvidia-settings

Запуск:

sudo nvidia-settings

Внешний вид окна nvidia-settings:
nvidia-settings

Что можно настроить в этой программе?
1) выбор монитора, поворот монитора, отражение
2) коррекция цвета
3) настройки OpenGL (скорость/качество)
4) частоты ядра видеокарты (фактически, разгон, но для видеокарты без вентилятора не имеет смысла), и др.
performance

Аппаратное ускорение видео

На закладке "X Screen 0" -> "VDPAU Information" показана поддержка аппаратного ускорения видео:
vdpau

  • MPEG1
  • MPEG2
  • H264
  • VC1
  • MPEG4
  • DIVX4
  • DIVX5

Максимально поддерживаемое разрешение для аппаратного ускорения - на следующей закладке "Decoder Limits". Равняется в пикселях 4032 x 4080.
limits

Покупка видеокарты nVidia GT610 оправдала себя - по сравнению с Geforce 9800GT, в модели GT610 есть поддержка аппаратного ускорения видео FullHD и выше, вплоть до 4032 на 4080 пикселей. Таким способом можно устанавливать драйверы для других видеокарт nVidia в Ubuntu.



Похожие публикации