Created attachment 9264 [details] лог попытки запуска Xorg [ 159.146] (II) xfree86: Adding drm device (/dev/dri/card1) [ 159.150] (II) systemd-logind: got fd for /dev/dri/card1 226:1 fd 12 paused 0 [ 159.152] (II) xfree86: Adding drm device (/dev/dri/card0) [ 159.155] (II) systemd-logind: got fd for /dev/dri/card0 226:0 fd 13 paused 0 [ 159.165] (II) no primary bus or device found [ 159.165] falling back to /sys/devices/platform/soc/2a200000.gpu/drm/card1 [ 159.165] (II) LoadModule: "glx" [ 159.174] (II) Loading /usr/lib64/X11/modules/extensions/libglx.so [ 159.185] (II) Module glx: vendor="X.Org Foundation" [ 159.185] compiled for 1.20.10, module version = 1.0.0 [ 159.186] ABI class: X.Org Server Extension, version 10.0 [ 159.186] (==) Matched modesetting as autoconfigured driver 0 [ 159.186] (==) Matched fbdev as autoconfigured driver 1 [ 159.187] (==) Assigned the driver to the xf86ConfigLayout [ 159.187] (II) LoadModule: "modesetting" [ 159.189] (II) Loading /usr/lib64/X11/modules/drivers/modesetting_drv.so [ 159.193] (II) Module modesetting: vendor="X.Org Foundation" [ 159.193] compiled for 1.20.10, module version = 1.20.10 [ 159.194] Module class: X.Org Video Driver [ 159.194] ABI class: X.Org Video Driver, version 24.1 [ 159.194] (II) LoadModule: "fbdev" [ 159.196] (II) Loading /usr/lib64/X11/modules/drivers/fbdev_drv.so [ 159.198] (II) Module fbdev: vendor="X.Org Foundation" [ 159.198] compiled for 1.20.7, module version = 0.5.0 [ 159.198] Module class: X.Org Video Driver [ 159.198] ABI class: X.Org Video Driver, version 24.1 [ 159.199] (II) modesetting: Driver for Modesetting Kernel Drivers: kms [ 159.200] (II) FBDEV: driver for framebuffer: fbdev [ 159.201] (WW) Falling back to old probe method for modesetting [ 159.201] (II) modeset(0): using default device [ 159.201] (WW) Falling back to old probe method for fbdev [ 159.202] (II) Loading sub module "fbdevhw" [ 159.202] (II) LoadModule: "fbdevhw" [ 159.203] (II) Loading /usr/lib64/X11/modules/libfbdevhw.so [ 159.206] (II) Module fbdevhw: vendor="X.Org Foundation" [ 159.206] compiled for 1.20.10, module version = 0.0.2 [ 159.206] ABI class: X.Org Video Driver, version 24.1 [ 159.207] (II) FBDEV(1): using default device [ 159.207] (II) modeset(G0): using drv /dev/dri/card0 [ 159.208] (EE) Fatal server error: [ 159.208] (EE) Cannot run in framebuffer mode. Please specify busIDs for all framebuffer devices [ 159.209] (EE) [ 159.209] (EE) Please consult the The X.Org Foundation support at http://wiki.x.org for help. [ 159.210] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information. Многие ARM SoC имеют два видео устройства. Одно из них умеет из framebuffer сформировать (цифровой) видеосигнал, а второе - умножать матрицы (OpenGL ES). Причем второе устройство видеовыходов не имеет. Xorg пытается наугад выбрать одно из двух устройств и ошибается: [ 159.165] (II) no primary bus or device found [ 159.165] falling back to /sys/devices/platform/soc/2a200000.gpu/drm/card1 (на самом деле нужно было взять 30260000.vdu_hdmi/drm/card0), после чего случается облом [ 159.199] (II) modesetting: Driver for Modesetting Kernel Drivers: kms [ 159.200] (II) FBDEV: driver for framebuffer: fbdev [ 159.201] (WW) Falling back to old probe method for modesetting [ 159.201] (II) modeset(0): using default device [ 159.201] (WW) Falling back to old probe method for fbdev [ 159.202] (II) Loading sub module "fbdevhw" [ 159.202] (II) LoadModule: "fbdevhw" [ 159.203] (II) Loading /usr/lib64/X11/modules/libfbdevhw.so [ 159.206] (II) Module fbdevhw: vendor="X.Org Foundation" [ 159.206] compiled for 1.20.10, module version = 0.0.2 [ 159.206] ABI class: X.Org Video Driver, version 24.1 [ 159.207] (II) FBDEV(1): using default device [ 159.207] (II) modeset(G0): using drv /dev/dri/card0 [ 159.208] (EE) Fatal server error: [ 159.208] (EE) Cannot run in framebuffer mode. Please specify busIDs for all framebuffer devices [ 159.209] (EE) [ 159.209] (EE) Please consult the The X.Org Foundation support at http://wiki.x.org for help. [ 159.210] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
В качестве костыля можно подложить следующий xorg.conf (для Baikal-M): Section "ServerFlags" Option "AutoAddGPU" "off" EndSection Section "OutputClass" Identifier "BaikalM" MatchDriver "baikal_vdu_drm" Driver "modesetting" Option "PrimaryGPU" "true" EndSection Но тогда для каждой платы надо гадать, как называется ее видеодрайвер.
Решил научить xorg при поиске устройств игнорировать карты, у которых нет видеовыходов. Потом обнаружил, что добрые люди до меня уже научили, и еще лучше, чем я: https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/481 #268938 TESTED #1 [test-only] sisyphus xorg-server.git=1.20.10-alt3 И оно таки работает: [ 3267.678] (II) xfree86: Adding drm device (/dev/dri/card1) [ 3267.682] (II) systemd-logind: got fd for /dev/dri/card1 226:1 fd 12 paused 0 [ 3267.682] (DB) /dev/dri/card1 has 0 connectors [ 3267.684] (II) xfree86: Adding drm device (/dev/dri/card0) [ 3267.687] (II) systemd-logind: got fd for /dev/dri/card0 226:0 fd 13 paused 0 [ 3267.688] (DB) /dev/dri/card0 has 1 connectors [ 3267.696] (II) Choose /sys/devices/platform/soc/30260000.vdu_hdmi/drm/card0 as primary device [ 3267.696] (II) LoadModule: "glx" [ 3267.699] (II) Loading /usr/lib64/X11/modules/extensions/libglx.so [ 3267.707] (II) Module glx: vendor="X.Org Foundation" [ 3267.707] compiled for 1.20.10, module version = 1.0.0 [ 3267.707] ABI class: X.Org Server Extension, version 10.0 [ 3267.707] (==) Matched modesetting as autoconfigured driver 0 [ 3267.708] (==) Matched fbdev as autoconfigured driver 1 [ 3267.708] (==) Assigned the driver to the xf86ConfigLayout [ 3267.708] (II) LoadModule: "modesetting" [ 3267.710] (II) Loading /usr/lib64/X11/modules/drivers/modesetting_drv.so [ 3267.711] (II) Module modesetting: vendor="X.Org Foundation" [ 3267.711] compiled for 1.20.10, module version = 1.20.10 [ 3267.712] Module class: X.Org Video Driver [ 3267.712] ABI class: X.Org Video Driver, version 24.1 [ 3267.712] (II) LoadModule: "fbdev" [ 3267.714] (II) Loading /usr/lib64/X11/modules/drivers/fbdev_drv.so [ 3267.715] (II) Module fbdev: vendor="X.Org Foundation" [ 3267.715] compiled for 1.20.7, module version = 0.5.0 [ 3267.716] Module class: X.Org Video Driver [ 3267.716] ABI class: X.Org Video Driver, version 24.1 [ 3267.716] (II) modesetting: Driver for Modesetting Kernel Drivers: kms [ 3267.717] (II) FBDEV: driver for framebuffer: fbdev [ 3267.718] (II) modeset(0): using drv /dev/dri/card0 [ 3267.718] (WW) Falling back to old probe method for fbdev [ 3267.718] (II) Loading sub module "fbdevhw" [ 3267.719] (II) LoadModule: "fbdevhw" [ 3267.720] (II) Loading /usr/lib64/X11/modules/libfbdevhw.so [ 3267.721] (II) Module fbdevhw: vendor="X.Org Foundation" [ 3267.721] compiled for 1.20.10, module version = 0.0.2 [ 3267.722] ABI class: X.Org Video Driver, version 24.1 [ 3267.723] (II) modeset(0): Creating default Display subsection in Screen section "Default Screen Section" for depth/fbbpp 24/32 [ 3267.723] (==) modeset(0): Depth 24, (==) framebuffer bpp 32 [ 3267.723] (==) modeset(0): RGB weight 888 [ 3267.724] (==) modeset(0): Default visual is TrueColor [ 3267.723] (==) modeset(0): Depth 24, (==) framebuffer bpp 32 [ 3267.723] (==) modeset(0): RGB weight 888 [ 3267.724] (==) modeset(0): Default visual is TrueColor [ 3267.724] (II) Loading sub module "glamoregl" [ 3267.724] (II) LoadModule: "glamoregl" [ 3267.725] (II) Loading /usr/lib64/X11/modules/libglamoregl.so [ 3267.738] (II) Module glamoregl: vendor="X.Org Foundation" [ 3267.738] compiled for 1.20.10, module version = 1.0.1 [ 3267.739] ABI class: X.Org ANSI C Emulation, version 0.4 [ 3268.345] (II) modeset(0): glamor X acceleration enabled on Mali T620 (Panfrost) [ 3268.346] (II) modeset(0): glamor initialized
Created attachment 9265 [details] Лог удачного запуска патченного Xorg на Baikal-M
Вот это изменение от добрых людей крайне желательно проверить ещё и на x86 архитектурах - тут тоже часто встречается конфигурация, когда несколько видеокарт разного производителя.
На моём боевом ноуте Xorg запустился (x86_64, intel вместо видюхи, сегодняшний Сизиф + #268938, ядро 5.11.11-un-def-alt1). Пока разницы с alt2 не вижу.
Разница может вылезти в случае одновременной установки нескольких видеокарт разных производителей.
(In reply to Anton Farygin from comment #6) > Разница может вылезти в случае одновременной установки нескольких видеокарт > разных производителей. TL;DR: никакой разницы не ожидается, но проверить все равно надо. На x86 видеокарты в основном PCI-E. Даже те, которые находятся на одном кристалле или в одном корпусе с процессором. Поэтому [1] их поиском и разбором, кто главнее, занимается xf86PciProbe [2]. И только если не нашлось PCI(-E) карт, xf86platformPrimary попытается что-то сделать. Но на x86 нет "platform" видеокарт, поэтому xf86_num_platform_devices = 0, и xf86platformPrimary ничего не сделает. [1] https://gitlab.freedesktop.org/xorg/xserver/-/blob/master/hw/xfree86/common/xf86Bus.c#L223xf86platformPrimary [2] https://gitlab.freedesktop.org/xorg/xserver/-/blob/master/hw/xfree86/common/xf86pciBus.c#L89 [3] http://git.altlinux.org/people/asheplyakov/packages/xorg-server.git?p=xorg-server.git;a=blob;f=hw/xfree86/common/xf86platformBus.c;h=33b2635040ed45c8f54710ce4489e26d00197f89;hb=229a953f5921ad29abdcc2534dc5a93abc9ca192#l746
Исправлено в xserver-xorg 1.20.10-alt3