В плату TF307-MB-S-D с прошивкой SDK5.2 установлена видеокарта Radeon R7 240. На эту систему установлен образ alt-workstation-9.2-aarch64.iso При установке создан файл: /etc/X11/xorg.conf Section "Device" Identifier "Card0" Driver "fbdev" BusID "PCI:1:1:0" EndSection Это не позволяет использовать аппаратное ускорение. После удаления файла /etc/X11/xorg.conf при перезапуске xorg-server возникает сбой: [ 2041.732] (EE) Backtrace: [ 2041.732] (EE) 0: X (xorg_backtrace+0x5c) [0x58fd84] [ 2041.732] (EE) 1: X (0x400000+0x193b78) [0x593b78] [ 2041.732] (EE) 2: linux-vdso.so.1 (__kernel_rt_sigreturn+0x0) [0xffffae3767d0] [ 2041.732] (EE) 3: X (0x400000+0x9afbc) [0x49afbc] [ 2041.732] (EE) 4: X (xf86CollectOptions+0x6c) [0x4800b4] [ 2041.732] (EE) 5: /usr/lib64/X11/modules/drivers/radeon_drv.so (0xffffacf17000+0x50268) [0xffffacf67268] [ 2041.732] (EE) 6: X (InitOutput+0x9d8) [0x4836b0] [ 2041.733] (EE) 7: X (0x400000+0x486ec) [0x4486ec] [ 2041.733] (EE) 8: /lib64/libc.so.6 (__libc_start_main+0xe4) [0xffffadbffae4] [ 2041.733] (EE) 9: X (0x400000+0x32360) [0x432360] [ 2041.733] (EE) [ 2041.733] (EE) Segmentation fault at address 0x124 [ 2041.733] (EE) Fatal server error: [ 2041.733] (EE) Caught signal 11 (Segmentation fault). Server aborting Xorg-server был запущен под отладчиком. Результат следующий: (gdb) set args -logverbose 8 :0 (gdb) run Starting program: /usr/bin/X -logverbose 8 :0 [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". Missing separate debuginfo for /lib64/libgcc_s.so.1 Try to install the hash file /usr/lib/debug/.build-id/a4/da61bb993adcc95a6eaff904c0f184b5ce0e25.debug X.Org X Server 1.20.8 X Protocol Version 11, Revision 0 Build Operating System: ALT p9 p9 (Vaccinium) aarch64 Current Operating System: Linux host-192 5.10.52-un-def-alt1 #1 SMP Wed Jul 21 10:14:42 UTC 2021 aarch64 Kernel command line: BOOT_IMAGE=/boot/vmlinuz root=UUID=e41ac917-f4e4-493f-a605-42f74e3c4410 ro resume=/dev/disk/by-uuid/c7eb2efa-9044-4eda-8315-10e557faf731 panic=30 splash Build Date: 14 April 2021 07:26:50AM Current version of pixman: 0.38.4 Before reporting problems, check http://wiki.x.org to make sure that you have the latest version. Markers: (--) probed, (**) from config file, (==) default setting, (++) from command line, (!!) notice, (II) informational, (WW) warning, (EE) error, (NI) not implemented, (??) unknown. (==) Log file: "/var/log/Xorg.0.log", Time: Mon Sep 6 16:01:21 2021 (==) Using config directory: "/etc/X11/xorg.conf.d" (==) Using system config directory "/usr/share/X11/xorg.conf.d" Missing separate debuginfo for /usr/lib64/X11/modules/drivers/ati_drv.so Try to install the hash file /usr/lib/debug/.build-id/9b/11e9453e7573b83764e53910418a84c7519fc2.debug Missing separate debuginfo for /usr/lib64/X11/modules/drivers/fbdev_drv.so Try to install the hash file /usr/lib/debug/.build-id/4e/212e58afaeefed28517b103febb62a45ca5247.debug (II) [KMS] Kernel modesetting enabled. Program received signal SIGSEGV, Segmentation fault. 0x000000000049afbc in xf86MergeOutputClassOptions (entityIndex=<optimized out>, options=options@entry=0x27f589a0) at xf86platformBus.c:368 368 if (MATCH_PCI_DEVICES(xf86_platform_devices[i].pdev, (gdb) bt #0 0x000000000049afbc in xf86MergeOutputClassOptions (entityIndex=<optimized out>, options=options@entry=0x27f589a0) at xf86platformBus.c:368 #1 0x00000000004800b4 in xf86CollectOptions (pScrn=pScrn@entry=0x27f58620, extraOpts=extraOpts@entry=0x0) at xf86Option.c:83 #2 0x0000ffff8cf8c268 in RADEONPreInit_KMS (pScrn=0x27f58620, flags=<optimized out>) at radeon_kms.c:1805 #3 0x00000000004836b0 in InitOutput (pScreenInfo=pScreenInfo@entry=0x659020 <screenInfo>, argc=argc@entry=4, argv=argv@entry=0xfffffa19dc38) at xf86Init.c:536 #4 0x00000000004486ec in dix_main (argc=4, argv=0xfffffa19dc38, envp=0xfffffa19dc60) at main.c:193 #5 0x0000ffff8dc24ae4 in __libc_start_main (main=0x432310 <main>, argc=4, argv=0xfffffa19dc38, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=<optimized out>) at ../csu/libc-start.c:308 #6 0x0000000000432360 in _start () at ../sysdeps/aarch64/start.S:92 Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Проблема воспроизводиться и с платой Radeon R5 230
Скорее всего не хватает commit 249a12c54a9316b089bd22683c011519348496df Author: Huacai Chen <chenhc@lemote.com> Date: Sun Jul 5 05:59:58 2020 -0400 linux: Fix platform device probe for DT-based PCI On a DT-base PCI platform, the sysfs path of vga device is like this: /sys/devices/platform/bus@10000000/1a000000.pci/pci0000:00/0000:00:11.0/0000:04:00.0. Then the ID_PATH from udev is platform-1a000000.pci-pci-0000:04:00.0 and the BusID will be pci-0000:04:00.0, which causes Xorg start fail. This is because config_udev_odev_setup_attribs() use strstr() to search the first "pci-" in ID_PATH. To fix this, we implement a strrstr() function and use it to search the last "pci-" in ID_PATH, which can get a correct BusID. (backported from commit 9fbd3e43dd9e13700df96b508c3d97f77e2b9f7e) Reviewed-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Huacai Chen <chenhc@lemote.com>
Собственно запуск Xorg я починил: #284832 TESTED #1 [test-only] p9 xorg-server.git=1.20.8-alt9 Но от этого не сильно легче. Наблюдаем артефакты, о которых упоминалось в рассылке: > На обеих картах Radeon, при запуске X-сессии треугольники начинают > рендерится в хаотичном порядке, что делает десктоп абсолютно > неработоспособным (см. видео https://files.catbox.moe/xtgcm8.mp4 ). > Причём проблема затрагивает только вершины непосредственно, а текстуры > не бьются. При запуске X11, ещё до того, как успевает запуститься > XFCE, на экране появляется разноцветный ярко выраженный шаблон, что > сигнализирует, вероятно, о записи мусора в видеопамять каким-то из > компонентов. В любом случае, блеклистинг всех модулей, относящихся к > baikal, проблему не исправил.
Валерий, прошу обратить внимание. Важно. Коллеги, следите за тоном обсуждения, пожалуйста.
(In reply to Alexey Sheplyakov from comment #3) > Собственно запуск Xorg я починил: > > #284832 TESTED #1 [test-only] p9 xorg-server.git=1.20.8-alt9 https://drive.google.com/drive/folders/1LAdo5ik49hTJikWj0qYMBN23ldqaRmud
(In reply to Ivan A. Melnikov from comment #5) > > https://drive.google.com/drive/folders/1LAdo5ik49hTJikWj0qYMBN23ldqaRmud ^^ примеры треугольников на видео в папке.
На другой плате (и с другой картой Radeon) артефактов пока не заметил. НО не спешите радоваться! При инициализации radeon и переключении видеовыходов (xrandr --output HDMI-1 --auto) система зачастую перезагружается. В логах: [ 14.833379] [drm] radeon kernel modesetting enabled. [ 14.834180] [drm] initializing kernel modesetting (OLAND 0x1002:0x6617 0x1DA2:0xE263 0xC7). [ 15.076486] mitx2-bmc 0-0008: key change [17] [ 15.076509] mitx2-bmc 0-0008: PWROFF "irq" detected [17] [ 15.163665] ATOM BIOS: OLAND [ 15.163839] radeon 0001:01:00.0: VRAM: 4096M 0x0000000000000000 - 0x00000000FFFFFFFF (4096M used) [ 15.163845] radeon 0001:01:00.0: GTT: 2048M 0x0000000100000000 - 0x000000017FFFFFFF [ 15.163850] [drm] Detected VRAM RAM=4096M, BAR=256M [ 15.163854] [drm] RAM width 128bits DDR [ 15.164053] [TTM] Zone kernel: Available graphics memory: 8043486 KiB [ 15.164058] [TTM] Zone dma32: Available graphics memory: 2097152 KiB [ 15.164061] [TTM] Initializing pool allocator [ 15.164074] [TTM] Initializing DMA pool allocator [ 15.164125] [drm] radeon: 4096M of VRAM memory ready [ 15.164130] [drm] radeon: 2048M of GTT memory ready. [ 15.164167] [drm] Loading oland Microcode [ 15.178479] mitx2-bmc 0-0008: key change [0] Кнопку я точно не нажимал. Кроме того, rmmod radeon && modprobe radeon - снова сообщение "mitx2-bmc 0-0008: PWROFF "irq" detected [17]" Предполагаю, что видеократа пишет по какому-то "левому" (физическому) адресу. И так повезло, что именно в этот диапазон отображены регистры BMC. Как-то стрёмно продолжать эксперименты. Кто знает, куда она ещё запишет, так и плату сжечь недолго.
(In reply to Alexey Sheplyakov from comment #7) > При инициализации radeon и переключении видеовыходов (xrandr --output HDMI-1 > --auto) > система зачастую перезагружается. Круче. При перерисовке экрана, переключении между окнами - тот же эффект. И ядро "думает", что нажата кнопка питания ("mitx2-bmc 0-0008: PWROFF "irq" detected")
(In reply to Alexey Sheplyakov from comment #7) > На другой плате (и с другой картой Radeon) артефактов пока не заметил. 0001:01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Device 6617 (rev c7) (prog-if 00 [VGA controller]) Subsystem: Sapphire Technology Limited Device e263 она же (если в числовой форме) 0001:01:00.0 0300: 1002:6617 (rev c7) (prog-if 00 [VGA controller]) Subsystem: 1da2:e263
так это уже к ядру и к радеоновским фирмварям
(In reply to Valery Inozemtsev from comment #10) > так это уже к ядру и к радеоновским фирмварям Сомневаюсь. Это скорее к байкальему PCIe.
(In reply to Alexey Sheplyakov from comment #11) > (In reply to Valery Inozemtsev from comment #10) > > так это уже к ядру и к радеоновским фирмварям > > Сомневаюсь. Это скорее к байкальему PCIe. Полагаю, что в обоих случаях проблема одна и та же - карта пыталась записать по одному адресу, а в произошла запись в другой адрес. Только в одном случае (артефакты) неправильный адрес всё-таки попал куда-то в память карты, а в другом (спонтанное выключение) - попал в то место, куда отображены регистры BMC. Возможно, отображение адресов с (PCIe) шины к адресам процессора неправильно описано (в device tree). А возможно, само оборудование глючное. Возможно отображение адресов с шины к CPU сломано. И в одном случае (артефакты "везёт"
Проверил Xorg из задания #284832 на x86 компьютере [1]. Упорно делает вид, что работает [1] Core i5-8400, материнская плата Gigabyte H310M S2H 2.0 00:02.0 0300: 8086:3e92 (prog-if 00 [VGA controller]) DeviceName: Onboard - Video Subsystem: 1458:d000 00:02.0 VGA compatible controller: Intel Corporation CometLake-S GT2 [UHD Graphics 630] (prog-if 00 [VGA controller]) DeviceName: Onboard - Video Subsystem: Gigabyte Technology Co., Ltd Device d000
Проверил Xorg из задания #284832 на raspberry pi 4b (с 4ГБ памяти). Запускается и упорно делает вид, что работает. Аппаратное ускорение рендеринга доступно (судя по glxinfo и glmark2-es2). $ glxinfo | grep Vendor Vendor: Broadcom (0x14e4)
Проверил Xorg из задания #284832 на raspberry pi 4b (с 8ГБ памяти), raspberry pi 3b V1.2, raspberry pi 400, на всех с ядрами 5.10.50-rpi-def 5.12.17-rpi-un. Pаботает. Аппаратное ускорение рендеринга доступно (судя glmark2-es2).
Проверил Xorg из задания #284832 на ноутбуке Dell Inspiron 15 7577, на 2-х мониторах - встроенном и подключенном к HDMI Type-C Работает.
в таком случае эти комиты нужно вернуть в иксы в sisyphus/p10
Протестировал на x86_64 виртуальных машинах с "видеокартами" qxl и virtio. Ядро 5.10.62-un-def-alt1. Xorg запускается и упорно делает вид, что работает.
xorg-server-2:1.20.8-alt9 -> p9: Wed Sep 08 2021 Alexey Sheplyakov <asheplyakov@altlinux> 2:1.20.8-alt9 - Fixed probing for device tree based PCIe buses (closes: #40868)