Summary: | Не работает "из коробки" на Baikal-M, rock pi, odroid | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Alexey Sheplyakov <asheplyakov> | ||||||
Component: | xorg-server | Assignee: | Valery Inozemtsev <shrek> | ||||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||||
Severity: | normal | ||||||||
Priority: | P5 | CC: | iv, rider, shrek | ||||||
Version: | unstable | ||||||||
Hardware: | aarch64 | ||||||||
OS: | Linux | ||||||||
Attachments: |
|
Description
Alexey Sheplyakov
2021-04-05 09:31:05 MSK
В качестве костыля можно подложить следующий 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 |