Bug 40946

Summary: xorg-server не запускается на устройствах с GPU Mali Midgard
Product: Sisyphus Reporter: Alexey Sheplyakov <asheplyakov>
Component: xorg-serverAssignee: Valery Inozemtsev <shrek>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: blocker    
Priority: P5 CC: aen, antohami, iv, nir, nir, sbolshakov, shrek, sin
Version: unstable   
Hardware: aarch64   
OS: Linux   
Attachments:
Description Flags
Полный лог попытки запуска none

Description Alexey Sheplyakov 2021-09-17 11:14:42 MSK
Created attachment 9695 [details]
Полный лог попытки запуска

На плате TF307 xorg не запускается со следующей диагностикой:

    37.310] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[    37.310] (II) FBDEV: driver for framebuffer: fbdev
[    37.311] (WW) Falling back to old probe method for modesetting
[    37.311] (WW) Falling back to old probe method for fbdev
[    37.311] (II) Loading sub module "fbdevhw"
[    37.311] (II) LoadModule: "fbdevhw"
[    37.312] (II) Loading /usr/lib64/X11/modules/libfbdevhw.so
[    37.312] (II) Module fbdevhw: vendor="X.Org Foundation"
[    37.312]    compiled for 1.20.13, module version = 0.0.2
[    37.312]    ABI class: X.Org Video Driver, version 24.1
[    37.312] (II) FBDEV(0): using default device
[    37.319] (II) modeset(G0): using drv /dev/dri/card1
[    37.319] (EE) 
Fatal server error:
[    37.319] (EE) Cannot run in framebuffer mode. Please specify busIDs        for all framebuffer devices
[    37.319] (EE) 
[    37.319] (EE) 
Please consult the The X.Org Foundation support 
         at http://wiki.x.org
 for help. 
[    37.319] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[    37.319] (EE) 
[    37.319] (EE) Server terminated with error (1). Closing log file.

Для проверки использовал образ: http://nightly.altlinux.org/sisyphus-aarch64/snapshots/20210915/regular-xfce-20210915-aarch64.iso
Comment 1 Alexey Sheplyakov 2021-09-17 11:26:42 MSK
#285313 EPERM #2 sisyphus xorg-server.git=1.20.13-alt4
Comment 2 Alexey Sheplyakov 2021-09-17 13:28:04 MSK
(In reply to Alexey Sheplyakov from comment #1)
> #285313 EPERM #2 sisyphus xorg-server.git=1.20.13-alt4

Проверил на плате TF307
1. С встроенными видеоустройствами (baikal_vdu и Mali Midgard T628). Запускается и делает вид, что работает.
2. С видеокартой Radeon [1]. Запускается. Наблюдаю артефакты вида "битые вершины", см. https://drive.google.com/drive/folders/1LAdo5ik49hTJikWj0qYMBN23ldqaRmud
   Проблема наблюдается и с p9, p10, Debian 11 (с ядром 5.10 из p9), см. 
   https://lists.altlinux.org/pipermail/arm64-baikalm/2021-August/000098.html


[1]

0001:01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM] (prog-if 00 [VGA controller])
        Subsystem: PC Partner Limited / Sapphire Technology Device a004

она же 

0001:01:00.0 0300: 1002:6779 (prog-if 00 [VGA controller])
        Subsystem: 174b:a004
Comment 3 Alexey Sheplyakov 2021-09-17 13:29:25 MSK
(In reply to Alexey Sheplyakov from comment #2)
> (In reply to Alexey Sheplyakov from comment #1)
> > #285313 EPERM #2 sisyphus xorg-server.git=1.20.13-alt4
> 
> Проверил на плате TF307

TF307-MB-S-D, прошивка из SDK-M 5.3
Comment 4 Valery Inozemtsev 2021-09-17 17:14:20 MSK
кто нибудь может подтвердить работоспособность этого "исправления" на rpi3/4 и других доступных device tree системах?
Comment 5 Sergey Bolshakov 2021-09-17 17:40:44 MSK
(In reply to Valery Inozemtsev from comment #4)
> кто нибудь может подтвердить работоспособность этого "исправления" на rpi3/4
> и других доступных device tree системах?

khadas vim2 (это meson gxm)

до alt4 использовалось указание BusID (без него -- лог, как в ТС)
с alt4 работает и без указания BusID:

--- %< ---
[    24.978] (II) xfree86: Adding drm device (/dev/dri/card0)
[    24.978] (II) Platform probe for /sys/devices/platform/soc/d0000000.apb/d00c0000.gpu/drm/card0
[    24.979] (DB) /dev/dri/card0 has 0 connectors
[    24.980] (II) xfree86: Adding drm device (/dev/dri/card1)
[    24.980] (II) Platform probe for /sys/devices/platform/soc/d0100000.vpu/drm/card1
[    24.980] (DB) /dev/dri/card1 has 1 connectors
[    24.986] (II) Choose /sys/devices/platform/soc/d0100000.vpu/drm/card1 as primary device
--- %< ---
Comment 6 Alexey Sheplyakov 2021-09-17 18:49:48 MSK
(In reply to Valery Inozemtsev from comment #4)
> кто нибудь может подтвердить работоспособность этого "исправления" на rpi3/4
> и других доступных device tree системах?

1. Если бы был работоспособный образ на сизифе для rpi4 - мог бы и я.

http://nightly.altlinux.org/sisyphus-aarch64/snapshots/20210915/regular-deepin-rpi-202109{08,15}-aarch64.img.xz - зависают во время попытки первоначальной настройки. Залипает клавиатура (которая с этой же rpi4 нормально работает с armbian и alt p9)

2. TF307 - тоже device tree система.
Comment 7 Alexey Sheplyakov 2021-09-17 18:53:10 MSK
(In reply to Valery Inozemtsev from comment #4)
> кто нибудь может подтвердить работоспособность этого "исправления"

С удовольствием протестирую Ваше правильное Исправление (без кавычек и с большой буквы)
Comment 8 Антон Мидюков 2021-09-17 18:55:48 MSK
(In reply to Valery Inozemtsev from comment #4)
> кто нибудь может подтвердить работоспособность этого "исправления" на rpi3/4
> и других доступных device tree системах?

На RPi3, RPi4 и Orange Pi Prime работает.
Comment 9 Антон Мидюков 2021-09-17 18:57:41 MSK
(In reply to Alexey Sheplyakov from comment #6)
> 1. Если бы был работоспособный образ на сизифе для rpi4 - мог бы и я.
> 
> http://nightly.altlinux.org/sisyphus-aarch64/snapshots/20210915/regular-
> deepin-rpi-202109{08,15}-aarch64.img.xz - зависают во время попытки
> первоначальной настройки. Залипает клавиатура (которая с этой же rpi4
> нормально работает с armbian и alt p9)

На моей RPi4 такого не наблюдал.
Comment 10 Valery Inozemtsev 2021-09-17 19:15:55 MSK
(Ответ для Sergey Bolshakov на комментарий #5)
> khadas vim2 (это meson gxm)
> 
> до alt4 использовалось указание BusID (без него -- лог, как в ТС)
> с alt4 работает и без указания BusID:

(Ответ для Антон Мидюков на комментарий #8)
> (In reply to Valery Inozemtsev from comment #4)
> > кто нибудь может подтвердить работоспособность этого "исправления" на rpi3/4
> > и других доступных device tree системах?
> 
> На RPi3, RPi4 и Orange Pi Prime работает.

Спасибо.

(Ответ для Alexey Sheplyakov на комментарий #7)
changelog поправить тогда можно и заапрувить
Comment 11 Alexey Sheplyakov 2021-09-17 19:43:06 MSK
(In reply to Alexey Sheplyakov from comment #7)
> (In reply to Valery Inozemtsev from comment #4)
> > кто нибудь может подтвердить работоспособность этого "исправления"
> 
> С удовольствием протестирую Ваше правильное Исправление (без кавычек и с
> большой буквы)

Если кто-то ещё предложит - тоже потестирую.(In reply to Alexey Sheplyakov from comment #6)
> (In reply to Valery Inozemtsev from comment #4)
> > кто нибудь может подтвердить работоспособность этого "исправления" на rpi3/4
> > и других доступных device tree системах?
> 
> 1. Если бы был работоспособный образ на сизифе для rpi4 - мог бы и я.

Поставил на rpi4b http://nightly.altlinux.org/sisyphus-armh/snapshots/20210915/regular-lxqt-rpi-20210915-armh.img.xz

Этот вроде рабочий. 

Обновил xorg-server из задачи 285313. Запускается и делает вид, что работает.
Comment 12 Alexey Sheplyakov 2021-09-17 20:07:54 MSK
(In reply to Valery Inozemtsev from comment #10)

> (Ответ для Alexey Sheplyakov на комментарий #7)
> changelog поправить тогда можно и заапрувить

Подрихтовал. Если новый вариант тоже не подходит -- предлагайте свой.
Comment 13 Valery Inozemtsev 2021-09-17 20:42:56 MSK
(Ответ для Alexey Sheplyakov на комментарий #12)
> (In reply to Valery Inozemtsev from comment #10)
> 
> > (Ответ для Alexey Sheplyakov на комментарий #7)
> > changelog поправить тогда можно и заапрувить
> 
> Подрихтовал. Если новый вариант тоже не подходит -- предлагайте свой.

:-) Вообще то я не спек имел ввиду... Но этот вариант лучше
Авторство и описание коммитов в гите нужно сохранить, а то как то, мягко говоря, некрасиво получается
Comment 14 Alexey Sheplyakov 2021-09-17 21:22:41 MSK
(In reply to Valery Inozemtsev from comment #13)

> :-) Вообще то я не спек имел ввиду... Но этот вариант лучше
> Авторство и описание коммитов в гите нужно сохранить, а то как то, мягко
> говоря, некрасиво получается

$ git log --pretty=oneline 1.20.13-alt3..1.20.13-alt4

40d611d74c6289ef80f4591264a446b037193a7b (HEAD -> sisyphus, tag: 1.20.13-alt4) 2:1.20.13-alt4
75f6516547f234aba39147bf28b2b776dc2c4be1 config: fixed probe for "platform" GPUs
140419654cb79244ce429cfff4d2e4c28b200b04 Revert erroneous "revert 249a12c5, 74b7427c, 5c96eb5f, 9f0aa9e0"


140419654cb79244ce429cfff4d2e4c28b200b04 - revert сделал я.
75f6516547f234aba39147bf28b2b776dc2c4be1 - починил config_udev_odev_setup_attribs тоже я.

Возможно Вы имели в виду, что неплохо бы отправить это в upstream?

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

commit 9f0aa9e0caee3634b08510dad1ead7670b063833
Author: Jian-Hong Pan <jian-hong@endlessm.com>
Date:   Tue Jul 28 17:37:18 2020 +0800

(из https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/481),
но в них указано, и кто автор, и откуда патч.
Comment 15 Repository Robot 2021-09-17 22:21:42 MSK
xorg-server-2:1.20.13-alt4 -> sisyphus:

 Thu Sep 16 2021 Alexey Sheplyakov <asheplyakov@altlinux> 2:1.20.13-alt4
 - Fixed detection of primary device on ARM systems with Mali Midgard
   and other headless GPUs (closes: #40946)
 - Avoid race between vt switching and drmSetInterfaceVersion (closes: #40888)