LINUX.ORG.RU

[Решено] Как стартануть X11 с modesetting драйвером?

 , , , ,


0

2

Всем, привет. Использую встроенную intel видео карту с драйверами xf86-video-intel:

00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)

У меня как-то странно рвется картинка в видео в picom, поэтому по рекомендациям контрибьютеров на гитхабе решил попробовать modesetting драйвер.

Я не очень понял как его подключать из wiki, поэтому столкнулся с некоторыми трудностями. Из того, что прочитал - достаточно удалить основной драйвер xf86-video-intel и modesetting драйвера сами подцепятся. Но у меня это не так. Иксы пытались все время догрузить модуль intel почему-то.

Затем я нашел пост здесь на форуме, где я наконец нашел как подключить modesetting драйвера. Для этого создал файл /etc/X11/xorg.conf.d/20-intel.conf:

Section "Device"
  Identifier  "Intel Graphics"
  Driver      "modesetting"
EndSection

Но у меня возникли проблемы с ошибкой

EE no devices detected

EE no screens found

при старте иксов, полный лог:

[    63.177] (WW) Failed to open protocol names file lib/xorg/protocol.txt
[    63.177] 
X.Org X Server 1.20.11
X Protocol Version 11, Revision 0
[    63.177] Build Operating System: Linux Archlinux
[    63.177] Current Operating System: Linux f31 5.11.16-arch1-1 #1 SMP PREEMPT Wed, 21 Apr 2021 17:22:13 +0000 x86_64
[    63.177] Kernel command line: initrd=\initramfs-linux.img root=PARTUUID=b045fe47-c5b8-404a-9e14-e362f82cc832 rootfstype=ext4 add_efi_memmap
[    63.177] Build Date: 13 April 2021  03:12:10PM
[    63.177]  
[    63.177] Current version of pixman: 0.40.0
[    63.178] 	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
[    63.178] Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    63.178] (==) Log file: "/home/wh75er/.local/share/xorg/Xorg.0.log", Time: Sun Aug 15 19:45:24 2021
[    63.178] (==) Using config directory: "/etc/X11/xorg.conf.d"
[    63.178] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[    63.178] (==) No Layout section.  Using the first Screen section.
[    63.178] (==) No screen section available. Using defaults.
[    63.178] (**) |-->Screen "Default Screen Section" (0)
[    63.178] (**) |   |-->Monitor "<default monitor>"
[    63.179] (==) No device specified for screen "Default Screen Section".
	Using the first device section listed.
[    63.179] (**) |   |-->Device "Intel Graphics"
[    63.179] (**) |   |-->GPUDevice "Intel Graphics"
[    63.179] (==) No monitor specified for screen "Default Screen Section".
	Using a default monitor configuration.
[    63.179] (==) Automatically adding devices
[    63.179] (==) Automatically enabling devices
[    63.179] (==) Automatically adding GPU devices
[    63.179] (==) Automatically binding GPU devices
[    63.179] (==) Max clients allowed: 256, resource mask: 0x1fffff
[    63.179] (==) FontPath set to:
	/usr/share/fonts/misc,
	/usr/share/fonts/TTF,
	/usr/share/fonts/OTF,
	/usr/share/fonts/Type1,
	/usr/share/fonts/100dpi,
	/usr/share/fonts/75dpi
[    63.179] (==) ModulePath set to "/usr/lib/xorg/modules"
[    63.179] (II) The server relies on udev to provide the list of input devices.
	If no devices become available, reconfigure udev or disable AutoAddDevices.
[    63.179] (II) Module ABI versions:
[    63.179] 	X.Org ANSI C Emulation: 0.4
[    63.179] 	X.Org Video Driver: 24.1
[    63.179] 	X.Org XInput driver : 24.1
[    63.179] 	X.Org Server Extension : 10.0
[    63.179] (++) using VT number 1

[    63.181] (II) systemd-logind: took control of session /org/freedesktop/login1/session/_33
[    63.182] (II) xfree86: Adding drm device (/dev/dri/card0)
[    63.182] (II) systemd-logind: got fd for /dev/dri/card0 226:0 fd 10 paused 0
[    63.184] (--) PCI:*(0@0:2:0) 8086:5917:17aa:506c rev 7, Mem @ 0xf0000000/16777216, 0xe0000000/268435456, I/O @ 0x0000e000/64, BIOS @ 0x????????/131072
[    63.184] (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
[    63.184] (II) LoadModule: "glx"
[    63.185] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[    63.186] (II) Module glx: vendor="X.Org Foundation"
[    63.186] 	compiled for 1.20.11, module version = 1.0.0
[    63.186] 	ABI class: X.Org Server Extension, version 10.0
[    63.186] (II) LoadModule: "intel"
[    63.186] (WW) Warning, couldn't open module intel
[    63.186] (EE) Failed to load module "intel" (module does not exist, 0)
[    63.186] (II) LoadModule: "modesetting"
[    63.186] (II) Loading /usr/lib/xorg/modules/drivers/modesetting_drv.so
[    63.187] (II) Module modesetting: vendor="X.Org Foundation"
[    63.187] 	compiled for 1.20.11, module version = 1.20.11
[    63.187] 	Module class: X.Org Video Driver
[    63.187] 	ABI class: X.Org Video Driver, version 24.1
[    63.187] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[    63.187] (II) modeset(G0): using drv /dev/dri/card0
[    63.187] (WW) Falling back to old probe method for modesetting
[    63.187] (EE) No devices detected.
[    63.187] (EE) 
Fatal server error:
[    63.187] (EE) no screens found(EE) 
[    63.187] (EE) 
Please consult the The X.Org Foundation support 
	 at http://wiki.x.org
 for help. 
[    63.187] (EE) Please also check the log file at "/home/wh75er/.local/share/xorg/Xorg.0.log" for additional information.
[    63.187] (EE) 
[    63.193] (EE) Server terminated with error (1). Closing log file.

Конфигом xorg не пользуюсь за исключеним двух файлов 20-intel.conf и 90-monitor.conf в директории xorg.conf.d/

90-monitor.conf:

Section "Monitor"
    Identifier             "Laptop monitor"
    DisplaySize            286 179
EndSection

Ответ на: комментарий от Red_Rain

Я правильно понял, это опции для драйвера intel? Или для modesetting? У меня 20-intel.conf до всех манипуляций с modesetting был следующий:

Section "Device"
  Identifier "Intel Graphics"
  Driver "intel"
  Option "TripleBuffer" "true"
  Option "TearFree" "true"
EndSection
wh75per ()
Ответ на: комментарий от dsdqmhsx

Да, конечно. При удалении /etc/X11/xorg.conf.d/20-intel.conf я получаю следующий лог:

[    10.519] (WW) Failed to open protocol names file lib/xorg/protocol.txt
[    10.521] 
X.Org X Server 1.20.11
X Protocol Version 11, Revision 0
[    10.521] Build Operating System: Linux Archlinux
[    10.521] Current Operating System: Linux f31 5.11.16-arch1-1 #1 SMP PREEMPT Wed, 21 Apr 2021 17:22:13 +0000 x86_64
[    10.521] Kernel command line: initrd=\initramfs-linux.img root=PARTUUID=b045fe47-c5b8-404a-9e14-e362f82cc832 rootfstype=ext4 add_efi_memmap
[    10.522] Build Date: 13 April 2021  03:12:10PM
[    10.522]  
[    10.522] Current version of pixman: 0.40.0
[    10.522] 	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
[    10.522] Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    10.523] (==) Log file: "/home/wh75er/.local/share/xorg/Xorg.0.log", Time: Sun Aug 15 20:56:09 2021
[    10.527] (==) Using config directory: "/etc/X11/xorg.conf.d"
[    10.527] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[    10.528] (==) No Layout section.  Using the first Screen section.
[    10.528] (==) No screen section available. Using defaults.
[    10.528] (**) |-->Screen "Default Screen Section" (0)
[    10.528] (**) |   |-->Monitor "<default monitor>"
[    10.529] (==) No device specified for screen "Default Screen Section".
	Using the first device section listed.
[    10.529] (**) |   |-->Device "Intel Graphics"
[    10.529] (==) No monitor specified for screen "Default Screen Section".
	Using a default monitor configuration.
[    10.529] (==) Automatically adding devices
[    10.529] (==) Automatically enabling devices
[    10.529] (==) Automatically adding GPU devices
[    10.529] (==) Automatically binding GPU devices
[    10.529] (==) Max clients allowed: 256, resource mask: 0x1fffff
[    10.533] (==) FontPath set to:
	/usr/share/fonts/misc,
	/usr/share/fonts/TTF,
	/usr/share/fonts/OTF,
	/usr/share/fonts/Type1,
	/usr/share/fonts/100dpi,
	/usr/share/fonts/75dpi
[    10.533] (==) ModulePath set to "/usr/lib/xorg/modules"
[    10.533] (II) The server relies on udev to provide the list of input devices.
	If no devices become available, reconfigure udev or disable AutoAddDevices.
[    10.533] (II) Module ABI versions:
[    10.533] 	X.Org ANSI C Emulation: 0.4
[    10.533] 	X.Org Video Driver: 24.1
[    10.533] 	X.Org XInput driver : 24.1
[    10.533] 	X.Org Server Extension : 10.0
[    10.535] (++) using VT number 1

[    10.539] (II) systemd-logind: took control of session /org/freedesktop/login1/session/_31
[    10.541] (II) xfree86: Adding drm device (/dev/dri/card0)
[    10.542] (II) systemd-logind: got fd for /dev/dri/card0 226:0 fd 10 paused 0
[    10.548] (--) PCI:*(0@0:2:0) 8086:5917:17aa:506c rev 7, Mem @ 0xf0000000/16777216, 0xe0000000/268435456, I/O @ 0x0000e000/64, BIOS @ 0x????????/131072
[    10.548] (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
[    10.548] (II) LoadModule: "glx"
[    10.549] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[    10.557] (II) Module glx: vendor="X.Org Foundation"
[    10.557] 	compiled for 1.20.11, module version = 1.0.0
[    10.557] 	ABI class: X.Org Server Extension, version 10.0
[    10.557] (II) LoadModule: "intel"
[    10.558] (WW) Warning, couldn't open module intel
[    10.558] (EE) Failed to load module "intel" (module does not exist, 0)
[    10.558] (EE) No drivers available.
[    10.558] (EE) 
Fatal server error:
[    10.558] (EE) no screens found(EE) 
[    10.558] (EE) 
Please consult the The X.Org Foundation support 
	 at http://wiki.x.org
 for help. 
[    10.558] (EE) Please also check the log file at "/home/wh75er/.local/share/xorg/Xorg.0.log" for additional information.
[    10.558] (EE) 
[    10.620] (EE) Server terminated with error (1). Closing log file.

Он почему-то пытается какой-то модуль intel загрузить и все…

wh75per ()

X запускаешь от пользователя, не от рута? Тогда добавь в группу video.

Насчет intel драйверов. Чтобы «отключить» тиринг нужно принудительно включить dri2, так как по умолчанию включен dri3, с которым «отключение» тиринга не работает.

  Driver "intel"
  Option "TearFree" "true"
  Option "DRI" "2"
anonymous ()
Ответ на: комментарий от anonymous

Как может помочь добавления юзера в группу video?

Там какая-то проблема не с драйверами а с композитным менеджером. В picom можно использовать 2 бэкенда разных xrender и glx. Вот в xrender’е нет никакого тиринга, все классно работает, а на glx какой-то тиринг вылезает странный.

Я ишью создал на гитхабе и контрибьютер попросил попробовать использовать modesetting драйвер вместо xf86-video-intel, а он у меня не заводится

wh75per ()
Ответ на: комментарий от wh75per

Чтобы поменять режим графики (modesetting) надо иметь доступ к /dev/dri/card0. Покажи права доступа ls -l /dev/dri/card0. Если xserver собран с поддержкой systemd или logind, то xserver получает доступ через systemd. Поэтому скажи, что за дистрибутив используешь, если gentoo, то как собираешь xserver

anonymous ()
Ответ на: комментарий от anonymous

Дистрибутив - арч

ls -l /dev/dri/card0:

crw-rw----+ 1 root video 226, 0 Aug 16 18:55 /dev/dri/card0

Я добавил юзера в группу video:

groups:

vboxusers video wheel wh75er

Но это не помогло:

[   258.335] (WW) Failed to open protocol names file lib/xorg/protocol.txt
[   258.336] 
X.Org X Server 1.20.13
X Protocol Version 11, Revision 0
[   258.336] Build Operating System: Linux Archlinux
[   258.336] Current Operating System: Linux f31 5.13.10-arch1-1 #1 SMP PREEMPT Thu, 12 Aug 2021 21:59:14 +0000 x86_64
[   258.336] Kernel command line: initrd=\initramfs-linux.img root=PARTUUID=b045fe47-c5b8-404a-9e14-e362f82cc832 rootfstype=ext4 add_efi_memmap
[   258.336] Build Date: 04 August 2021  08:13:54AM
[   258.337]  
[   258.337] Current version of pixman: 0.40.0
[   258.337] 	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
[   258.337] Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[   258.338] (==) Log file: "/home/wh75er/.local/share/xorg/Xorg.0.log", Time: Mon Aug 16 18:59:19 2021
[   258.341] (==) Using config directory: "/etc/X11/xorg.conf.d"
[   258.341] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[   258.342] (==) No Layout section.  Using the first Screen section.
[   258.342] (==) No screen section available. Using defaults.
[   258.342] (**) |-->Screen "Default Screen Section" (0)
[   258.342] (**) |   |-->Monitor "<default monitor>"
[   258.342] (==) No device specified for screen "Default Screen Section".
	Using the first device section listed.
[   258.342] (**) |   |-->Device "Intel Graphics"
[   258.342] (**) |   |-->GPUDevice "Intel Graphics"
[   258.342] (==) No monitor specified for screen "Default Screen Section".
	Using a default monitor configuration.
[   258.342] (==) Automatically adding devices
[   258.342] (==) Automatically enabling devices
[   258.343] (==) Automatically adding GPU devices
[   258.343] (==) Automatically binding GPU devices
[   258.343] (==) Max clients allowed: 256, resource mask: 0x1fffff
[   258.346] (==) FontPath set to:
	/usr/share/fonts/misc,
	/usr/share/fonts/TTF,
	/usr/share/fonts/OTF,
	/usr/share/fonts/Type1,
	/usr/share/fonts/100dpi,
	/usr/share/fonts/75dpi
[   258.346] (==) ModulePath set to "/usr/lib/xorg/modules"
[   258.346] (II) The server relies on udev to provide the list of input devices.
	If no devices become available, reconfigure udev or disable AutoAddDevices.
[   258.346] (II) Module ABI versions:
[   258.346] 	X.Org ANSI C Emulation: 0.4
[   258.346] 	X.Org Video Driver: 24.1
[   258.346] 	X.Org XInput driver : 24.1
[   258.346] 	X.Org Server Extension : 10.0
[   258.347] (++) using VT number 1

[   258.350] (II) systemd-logind: took control of session /org/freedesktop/login1/session/_31
[   258.352] (II) xfree86: Adding drm device (/dev/dri/card0)
[   258.353] (II) systemd-logind: got fd for /dev/dri/card0 226:0 fd 10 paused 0
[   258.358] (--) PCI:*(0@0:2:0) 8086:5917:17aa:506c rev 7, Mem @ 0xf0000000/16777216, 0xe0000000/268435456, I/O @ 0x0000e000/64, BIOS @ 0x????????/131072
[   258.358] (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
[   258.358] (II) LoadModule: "glx"
[   258.359] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[   258.366] (II) Module glx: vendor="X.Org Foundation"
[   258.366] 	compiled for 1.20.13, module version = 1.0.0
[   258.366] 	ABI class: X.Org Server Extension, version 10.0
[   258.366] (II) LoadModule: "intel"
[   258.367] (WW) Warning, couldn't open module intel
[   258.367] (EE) Failed to load module "intel" (module does not exist, 0)
[   258.367] (II) LoadModule: "modesetting"
[   258.367] (II) Loading /usr/lib/xorg/modules/drivers/modesetting_drv.so
[   258.370] (II) Module modesetting: vendor="X.Org Foundation"
[   258.370] 	compiled for 1.20.13, module version = 1.20.13
[   258.370] 	Module class: X.Org Video Driver
[   258.370] 	ABI class: X.Org Video Driver, version 24.1
[   258.370] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[   258.370] (II) modeset(G0): using drv /dev/dri/card0
[   258.370] (WW) Falling back to old probe method for modesetting
[   258.370] (EE) No devices detected.
[   258.370] (EE) 
Fatal server error:
[   258.370] (EE) no screens found(EE) 
[   258.370] (EE) 
Please consult the The X.Org Foundation support 
	 at http://wiki.x.org
 for help. 
[   258.370] (EE) Please also check the log file at "/home/wh75er/.local/share/xorg/Xorg.0.log" for additional information.
[   258.370] (EE) 
[   258.391] (EE) Server terminated with error (1). Closing log file.
wh75per ()
Ответ на: комментарий от i-rinat

Где может быть указан интел? Где искать? На момент запуска modesetting у меня в директории /etc/X11/xorg.conf.d/ лежит только файл 20-modesetting.conf, со следующим содержимым:

Section "Device"
  Identifier  "Intel Graphics"
  Driver      "modesetting"
EndSection

Но он продолжает пытаться найти какой-то intel -_- вообще не понимаю где это может быть прописано

wh75per ()
Ответ на: комментарий от wh75per

Попробуй early kms включить - добавь i915 в MODULES в /etc/mkinitcpio.conf:

MODULES=(i915)

После этого перегенерируй initramfs:

# mkinitcpio -P

И перезагрузись.

Kron4ek ★★★★★ ()
Последнее исправление: Kron4ek (всего исправлений: 1)

У меня как-то странно рвется картинка в видео в picom

Это иксовый тиринг. Костыль в виде опции TearFree пробовал?

# Save this file as /etc/X11/xorg.conf.d/20-intel.conf

Section "Device"
  Identifier  "Intel Graphics"
  Driver      "intel"
  Option      "TearFree"    "true"
EndSection
EXL ★★★★★ ()
Ответ на: комментарий от anonymous

классика

Если одну и ту же железку поддерживает два драйвера, какому-то должно быть отдано предпочтение. Непатченный X.Org предпочитает «intel». Если пользователю захотелось «modesetting», X.Org об этом как должен узнать? С помощью магии?

i-rinat ★★★★★ ()
Ответ на: комментарий от anonymous

пусть предпочитает наиболее универсальный вариант

Наиболее универсальный вариант — дать пользователю документацию к API драйверов и компилятор. Пусть сам пишет. Универсальнее некуда. Разве что компилятор заставить тоже самому писать.

i-rinat ★★★★★ ()

Поиграл тут у себя с переключением/удалением intel. Заводится.

Вот эти строчки у вас смущают:

compiled for 1.20.11, module version = 1.20.11
(WW) Falling back to old probe method for modesetting

Сейчас я на modesetting и вижу такую строчку: compiled for 1.20.13, module version = 1.20.13

Тот же Arch. Почему версии-то разные?

Может сравним наши ls -la /usr/lib/xorg/modules/drivers/

-rwxr-xr-x 1 root root  27544 мая 16  2020 fbdev_drv.so
-rwxr-xr-x 1 root root 111312 авг  4 15:13 modesetting_drv.so

Toxo2 ()
Последнее исправление: Toxo2 (всего исправлений: 1)
Ответ на: комментарий от Toxo2

Я систему обновил в процессе ведения этого треда, сейчас должна быть последняя

ls -la /usr/lib/xorg/modules/drivers/

total 8048
drwxr-xr-x 2 root root    4096 Aug 16 19:36 .
drwxr-xr-x 5 root root    4096 Aug 16 13:18 ..
-rwxr-xr-x 1 root root 1695136 Jan 16  2021 intel_drv.so
-rwxr-xr-x 1 root root  111312 Aug  4 11:13 modesetting_drv.so
-rwxr-xr-x 1 root root 6418496 Aug 11 00:06 nvidia_drv.so
wh75per ()
Последнее исправление: wh75per (всего исправлений: 1)
Ответ на: комментарий от anonymous

Спасибо огромное! Да, в директории юзер был конфиг нужный, там лежит еще одни конфиг с intel, сейчас попробую удалить и проверить

/etc/X11/xorg.conf.d/20-intel.conf:  Identifier "Intel Graphics"
/etc/X11/xorg.conf.d/20-intel.conf:  Driver "intel"
/usr/share/X11/xorg.conf.d/20-intel.conf:    Identifier "Intel Graphics"
/usr/share/X11/xorg.conf.d/20-intel.conf:    Driver "intel"
wh75per ()
Последнее исправление: wh75per (всего исправлений: 1)
Ответ на: комментарий от anonymous

Да, проблема была в том, что у меня был указан драйвер интел еще и в директории /usr/share/X11/xorg.conf.d/

Спасибо большое, после удаления всех конфигов, в которых драйвером был указан intel modesetting успешно сам подцепился на старте иксов!

Это кстати кажется решило все проблемы с тирингом в композитном менеджере picom! Мои глаза кайфуют

wh75per ()
Последнее исправление: wh75per (всего исправлений: 1)
Ответ на: комментарий от Kron4ek

Если ты про этот - /usr/share/X11/xorg.conf.d/20-intel.conf, то я спокойно мог его туда вписать годик назад, когда фиксил тиринг и не мог найти куда конфигурационные файлы пихать надо. Скорее всего нагуглил какую-то дичь в инете тогда

wh75per ()
Ответ на: комментарий от vasily_pupkin

Ну на picom много траблов с производительностью. Если неправильно дрова настроены или в конфиге самого пикома что-то накручено, то может все сильно лагать. Вот сейчас на ноуте с интелом все топово настроено и с modesetting драйвером все летает, а на стационарном пока что CPU улетает куда-то в небо на процессе с picom, там уже какие-то траблы с nvidia -_-

Wayland уже юзабельный? Я когда его ставил себе пару лет назад, что-то там работало не так как мне нужно было и я свалил назад на иксы

wh75per ()