суббота, 15 июля 2017 г.

Как включить DRM-KMS в проприетарном драйвере Nvidia

Небольшое how to о включении интерфейса KMS (Kernel Modesetting) в проприетарном драйвере Nvidia.


Начиная с версии 364.12 в проприетарный драйвер Nvidia добавлена поддержка инфраструктуры DRM/DRI (Direct Rendering Manager) и интерфейса KMS, работающих в ядре Linux и используемых свободными видеодрайверами. Это необходимо для, например, поддержки Wayland, однако реализация Wayland в Nvidia драйвере пока работает только в патченом композитном оконном менеджере Weston и в GNOME 3.24 (с ограничениями). Также включение KMS позволяет запустить оконную систему Xorg от обычного пользователя (по умолчанию он запускается от имени root) при использовании дисплейного менеджера GDM (в GNOME) или командой startx в виртуальной консоли (другие дисплейные менеджеры пока не поддерживаются). KMS отключён по умолчанию в драйвере Nvidia вследствие проблем с работой на SLI-конфигурациях. Однако включается он весьма просто:

Для начала необходимо убедиться, что нужные модули загружены:

lsmod | grep nvidia

Вывод должен быть примерно таким:

nvidia_drm             45056  1
drm_kms_helper        155648  1 nvidia_drm
drm                   360448  4 nvidia_drm,drm_kms_helper
nvidia_modeset        790528  9 nvidia_drm
nvidia              12312576  302 nvidia_modeset

Открываем файл /etc/default/grub любимым текстовым редактором (через sudo) и в строку GRUB_CMDLINE_LINUX_DEFAULT="" между кавычками вставляем nvidia-drm.modeset=1 , сохраняем и обновляем конфиг:

sudo update-grub

Если вы используете GNOME, то до включения KMS иксы будут запущены от root:



А после включения - от имени вашего пользователя:

12 комментариев:

  1. А что это даст так скажем обычному пользователь? Можно простым языком, если не трудно...

    ОтветитьУдалить
    Ответы
    1. В статье я привёл пример - возможность запуска оконной системы Xorg от обычного пользователя. Вообще, включение KMS также необходимо для правильной работы ноутбуков с Nvidia Optimus, но я пока не в курсе текущей ситуации с Optimus, да и ноутбука такого у меня нет.

      Удалить
  2. Привет. Можешь подсказать где я неправильно делаю? Есть система с archlinux, nvidia gtx460 + kde. Делаю вроде все по вики + этот пост(кажется аналогично вики). При запуске сессии с gnome-shell(wayland) - сессия запускается, но через пару секунд все 4 ядра процессора загружены под 100%, система зависает. При попытке запустить остальные варианты wayland-сессии(weston, plasma-wayland) сестема виснет наглухо сразу(просто черный экран). + еще вопрос - при запуске wayland-сессии нет виртуальных tty?

    ОтветитьУдалить
    Ответы
    1. 100% загрузка процессора - это баг, как я понял баг самого драйвера, так как разработчики GNOME мне ничего толком не ответили. KDE не поддерживает Wayland при работе на проприетарном Nvidia-драйвере, а Weston нужен специальный, патченый (в AUR weston-eglstreams). Насчёт tty - есть конечно, куда-ж они денутся. Кстати можете ещё попробовать запустить Wayland сессию Гнома не через менеджер входа, а именно из tty, командой dbus-run-session -- gnome-shell --display-server --wayland

      Удалить
  3. Ничего не получилось - отключил sddm, запустил от имени пользователя dbus-run-session -- gnome-shell --display-server --wayland - просто зависает намертво машина.
    А по поводу "Если вы используете GNOME, то до включения KMS иксы будут запущены от root:А после включения - от имени вашего пользователя:" - это после старта wayland?


    lsmod | grep nvidia

    nvidia_drm 45056 1
    drm_kms_helper 131072 1 nvidia_drm
    drm 299008 4 nvidia_drm,drm_kms_helper
    nvidia_uvm 651264 0
    nvidia_modeset 835584 7 nvidia_drm
    nvidia 12972032 158 nvidia_modeset,nvidia_uvm

    ОтветитьУдалить
    Ответы
    1. Возможно что-то отломано в самом Гноме. Насчёт второго - нет, это после старта иксов

      Удалить
  4. Еще раз привет! Еще немного понадоедаю. Удалил nvidia, установил nouveau - сессия gnome(wayland) запускается! Теперь проблема с KDE(не могу пользоваться GNOME, хоть убей) - сессия plasma(wayland) запускается, но страшно глючит: 1 - при вызове контекстного меню - оно вылазит не мод мышкой, а в верхнем левом углу. 2 - при попытке нажать на "меню приложений KDE" - зависает наглухо, на клавиатуру не реагирует, по SSH достучаться могу - процесс plasmashell со значением D( dead вроде?) - не убивается

    ОтветитьУдалить
    Ответы
    1. Plasma Wayland пока работает на уровне технодемки, и не рекомендована к использованию кем либо, кроме разработчиков. Очень много всего не реализовано, очень много всего забаговано, при чём много Wayland-багов в Qt

      Удалить
  5. Странно - почему у GNOME все работает? KDE вроде не мельче среда чем GNOME. В любом случае спасибо за ответы :)

    ОтветитьУдалить
    Ответы
    1. Команда GNOME больше, и сам GNOME далеко не такой большой и сложный проект, как KDE. Ну и к тому же там гораздо раньше начали внедрять поддержку Wayland

      Удалить
  6. Большое спасибо! После замены видеокарты Radeon HD6770 на GeForce GTX460, Федора начала постоянно выдавать ошибки. Сделал все по вашей инструкции, теперь не выдает ошибки

    ОтветитьУдалить