Заголовок уже подразумевает вопрос, так что блокирует выполнение из примера программы в этом репо https://github.com/dvdhrm/docs/tree/master/drm-howto
Это простая программа, показывающая KMS в действии, поэтому я скачал ее, скомпилировал и далэто бег.Это был вывод:
michael@lord:~/Downloads/docs/drm-howto$ sudo ./modeset
[sudo] password for michael:
using card '/dev/dri/card0'
mode for connector 59 is 1920x1080
ignoring unused connector 68
ignoring unused connector 71
ignoring unused connector 75
cannot set CRTC for connector 59 (13): Permission denied
exiting
Также обратите внимание, что на моей машине запущен сеанс X11.Кажется, X уже использует устройство /dev/dri/card0
и блокирует его для всех других программ.
Вот моя видеокарта:
michael@lord:~/Downloads/docs/drm-howto$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)
Я также добавил i915.modeset=1
в /etc/initramfs-tools/modules
и перестроил его с помощью sudo update-initramfs -u
, чтобы он загружал драйвер изнутри моего ядра, а не со стороны xorg.
Существует также вероятность того, что мой драйвер не поддерживает KMS, но lspci
показал, чтоУ меня установлена только внутренняя видеокарта Intel.Поэтому я остановился на пакете драйвера дисплея ядра xorg, который установлен по умолчанию с xserver-xorg-core
.
Ни одно из этих изменений не вступило в силу.Единственный способ выполнить эти примеры - убить сеанс xorg и запустить его в tty.
Есть идеи?