Bug 2152414 - Xorg server does not correctly select the DCP for the display without a quirk
Summary: Xorg server does not correctly select the DCP for the display without a quirk
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: xorg-x11-server
Version: 37
Hardware: aarch64
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Adam Jackson
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2022-12-11 17:27 UTC by Leif Liddy
Modified: 2023-01-17 01:36 UTC (History)
13 users (show)

Fixed In Version: xorg-x11-server-1.20.14-15.fc37
Clone Of:
Environment:
Last Closed: 2023-01-17 01:36:20 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Leif Liddy 2022-12-11 17:27:32 UTC
Description of problem:
This issue affects 
1. Apple Silicon devices M1/M2 systems
2. running Xorg
3. running the latest Asahi kernel https://github.com/AsahiLinux/linux/releases/tag/asahi-6.1-rc8-3
4. and the latest mesa drivers https://gitlab.freedesktop.org/asahi/mesa/-/tree/fixes/20221209

Although this mesa branch and some of the kernel components haven't been upstreamed yet -- they will be in the near future.


Version-Release number of selected component (if applicable):
xorg: 1.20.14-9

Requesting that the following xorg config:
https://github.com/AsahiLinux/PKGBUILDs/blob/main/asahi-configs/30-modeset.conf
be added to the
/usr/share/X11/xorg.conf.d/10-quirks.conf file in this RPM

This issue only affects Xorg and not Wayland.

Speaking with the developers, the issue is that xorg is not "smart enough" to recognize render-only devices. 
xorg should be able to recognize that the gpu driver does not have a display as an output (I believe that is referred to as kmsro)
This xorg config is needed to tell xorg to use DCP (Apple's display coprocessor) for output instead.  

if I start lightdm without the above referenced xorg config in place. xorg crashes and I see the following in the system log:

       ......
       Module Xorg with build-id 32bc942b0a60e4dd9077251bdfc0588b1d213f35
       Metadata for module Xorg owned by FDO found: {
               "type" : "rpm",
               "name" : "xorg-x11-server",
               "version" : "1.20.14-9.fc37",
               "architecture" : "aarch64",
               "osCpe" : "cpe:/o:fedoraproject:fedora:37"
       }
       
       Stack trace of thread 1212:
       #0  0x0000fffeff826c18 __pthread_kill_implementation (libc.so.6 + 0x86c18)
       #1  0x007dfffeff7dee00 n/a (n/a + 0x0)
       #2  0x007dfffeff7dee00 n/a (n/a + 0x0)
       #3  0x0055fffeff7cb284 n/a (n/a + 0x0)
       #4  0x0019aaaae655fa20 n/a (n/a + 0x0)
       #5  0x006aaaaae6567c44 n/a (n/a + 0x0)
       #6  0x004eaaaae645302c n/a (n/a + 0x0)
       #7  0x0032aaaae63f9dd0 n/a (n/a + 0x0)
       #8  0x0051fffeff7cb588 n/a (n/a + 0x0)
       #9  0x001bfffeff7cb660 n/a (n/a + 0x0)
       #10 0x000aaaaae63faa30 n/a (n/a + 0x0)
       ELF object biXorg.0.lognary architecture: AARCH64
Dec 11 18:20:51 fedora abrt-notification[1247]: [🡕] Process 1166 (Xorg) crashed in __pthread_kill_implementation()
Dec 11 18:20:51 fedora systemd[1]: Failed to start lightdm.service - Light Display Manager.


# And this in the Xorg.0.log

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


With the xorg config in place. Everything works perfectly.

Comment 1 Olivier Fourdan 2022-12-16 09:41:36 UTC
(In reply to Leif Liddy from comment #0)
> Description of problem:
> This issue affects 
> 1. Apple Silicon devices M1/M2 systems
> 2. running Xorg
> 3. running the latest Asahi kernel
> https://github.com/AsahiLinux/linux/releases/tag/asahi-6.1-rc8-3
> 4. and the latest mesa drivers https://gitlab.freedesktop.org/asahi/mesa/-/tree/fixes/20221209

So that means the issue cannot occur with the standard kernel and Mesa which ship with Fedora?

If that's the case, what is the point of changing the configuration unless we actually add support for that hardware in Fedora itself?

Comment 2 Davide Cavalca 2022-12-16 10:47:27 UTC
> If that's the case, what is the point of changing the configuration unless we actually add support for that hardware in Fedora itself?

The Asahi SIG (https://fedoraproject.org/wiki/SIGs/Asahi) is in the process of doing precisely that. The approach we're taking is to upstream support into Fedora as much as possible (e.g. with m1n1, xkeyboard-config, etc.), and at the same time keep a handful of downstream components in copr for ease of development (as e.g. not all mesa changes are suitable for upstreaming at this time, but they will in the near to medium future) and for use in an upcoming Fedora Remix. In this case, the quirk shouldn't have any side effects, and it's a small enough change that IMO it makes sense to fix it directly in the Fedora package.

Comment 3 ecurtin 2022-12-16 10:52:24 UTC
Yup, as Davide said, we have been enabling support for this hardware in Fedora (https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1974). All of this will be eventually upstreamed and enabled in Fedora. This self-contained quirk fix would be one less package we have to fork in Fedora Asahi, the main two packages we fork at present are the kernel and mesa.

Comment 4 Olivier Fourdan 2022-12-16 11:06:03 UTC
Thanks for the explanation!

I wonder if it would be wiser to actually submit that upstream directly (https://gitlab.freedesktop.org/xorg/xserver/-/blob/master/config/10-quirks.conf) and backport the change downstream in Fedora.

Comment 5 ecurtin 2022-12-16 11:06:54 UTC
Good idea! I'm gonna submit that now

Comment 6 ecurtin 2022-12-16 11:15:12 UTC
Upstream MR submitted: https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1021

Comment 7 Neal Gompa 2023-01-11 12:43:30 UTC
Looks like the upstream merge request was accepted, so can we get this backported into Fedora's package now?

Comment 8 Olivier Fourdan 2023-01-11 13:51:56 UTC
(In reply to Neal Gompa from comment #7)
> Looks like the upstream merge request was accepted, so can we get this
> backported into Fedora's package now?

Ideally, https://src.fedoraproject.org/rpms/xorg-x11-server/pull-request/11 would need to be updated accordingly, i.e.:

1/ Cherry-pick the fix from master in xserver upstream
2/ Add and apply the patch to the xorg-x11-server package

Comment 9 Leif Liddy 2023-01-12 11:00:32 UTC
I screwed that last PR up trying to rebase it.
Here's a new one: https://src.fedoraproject.org/rpms/xorg-x11-server/pull-request/13

Comment 10 Olivier Fourdan 2023-01-13 13:08:09 UTC
Merged in rawhide and built.

https://bodhi.fedoraproject.org/updates/FEDORA-2023-5a74a2c134

Comment 11 Neal Gompa 2023-01-13 13:29:04 UTC
Can we also get this for F37 too?

Comment 12 Leif Liddy 2023-01-13 16:08:26 UTC
Yup, I just submitted a PR for that. 
https://src.fedoraproject.org/rpms/xorg-x11-server/pull-request/14

Comment 13 Olivier Fourdan 2023-01-16 14:09:58 UTC
(In reply to Leif Liddy from comment #12)
> Yup, I just submitted a PR for that. 
> https://src.fedoraproject.org/rpms/xorg-x11-server/pull-request/14

Thanks!

However I shall close the PR, it is not needed anymore as I have merged the rawhide branch into the f37 branch, so that we don't have diverging branches.

(FTR, in case someone wonders, it was safe to merge rawhide because @whot wrapped the byteswap patch meant for Fedora 38 into a "if %{fedora} >= 38")

The build is here: https://koji.fedoraproject.org/koji/taskinfo?taskID=96206626

Comment 14 Fedora Update System 2023-01-16 14:15:48 UTC
FEDORA-2023-c7dc682a77 has been submitted as an update to Fedora 37. https://bodhi.fedoraproject.org/updates/FEDORA-2023-c7dc682a77

Comment 15 Fedora Update System 2023-01-17 01:36:20 UTC
FEDORA-2023-c7dc682a77 has been pushed to the Fedora 37 stable repository.
If problem still persists, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.