Xserver Error loading intel_drv.so undefined symbol:I810InitMC
ahsan at vivaldi.net
ahsan at vivaldi.net
Mon Aug 1 13:43:09 UTC 2022
Thanks for your feedback. Please see my comments inline below.
> > > From: Ken Moffat <zarniwhoop at ntlworld.com>
> > > To: xorg at lists.x.org
> > > Subject: Re: Xserver Error loading intel_drv.so undefined
> > >
> > > symbol:I810InitMC
> > >
> > > Message-ID: <YuGk2inKZGc/w484 at llamedos.localdomain>
> > > Content-Type: text/plain; charset=utf-8
> > >
> > > On Wed, Jul 27, 2022 at 08:47:58PM +0200, Ahsan wrote:
> > > > Hello,
> > >
> > > Hi Ahsan,
> > >
> > > I doubt I can help directly, but a few comments (so, I'm snipping a
> > > lot of your details)
> > >
> > > TLDR: Do you really need the intel driver ?
> > No, there is no hard requirement for this, unfortunately, this error stops
> > loading the intel driver module properly hence a target machine ends up
> > with incorrect resolution. The idea is to avoid this error so that
> > loading of intel module (for Intel HD 630) works fine.
> A quick google suggests HD630 is a Kaby Lake, so fairly recent. At
> one time I think there was a linux kernel config option to enable
> newer intel video chipsets, but I can't find any details and I
> expect that option is long gone.
> Looking at gentoo, Skylake and later need video firmware
> (i915/skl_dmc_ver1_27.bin on my Skylake) but I guess if that was
> missing you would not get any video output from X.
i915/skl_dm_ver1_27.bin is present and appears to build as part of linux-
firmware BR package.
> When you say "incorrect resolution", what results and what should it
> be ? I seem to recall that in some odd cases peopel have had to
> override the EDID to get proper resolution, but I've never needed
> that and don't know where to look.
The expected resolution was 1080x1920 (yes, it's the other way around) and the
detected resolution was 800x1280. Modesetting detects the latter.
> > In a previous version of BR, the combination of intel drivers and xorg
> > 1.20.10
> > works fine, however, in a new BR release, the combination is broken and
> > I end up with the error above. So far, I've found that the intel video
> > driver version is same for both xorg 1.20.xx and 1.21.2 (or 21.1.2).
> > I'm trying to pinpoint what's been changed in 21.1.x that causes
> > i810InitMC
> > error but so far I've had no luck.
> > I tried --enable-kms-only(the other flag is already enabled) but no luck.
> > Could you please point me to the repo link. The last version on xorg's
> > website (https://xorg.freedesktop.org/releases/individual/driver/)
> > seems to be 2.99.917. Perhaps, I'm looking at an old link?
> I don't have a link. Someone took a snapshot, presumably on
> 20210222 or for a commit from that date, then tarred it up.
> Unfortunately, not everyone in BLFS thinks it is important to put
> those sort of details in a snapshot.
> Cloning https://gitlab.freedesktop.org/xorg/driver/xf86-video-intel
> the last commit was on 20210115 so I guess that soemone noticed that
> was an important commit 'sna: Always validate userptr upon creation'
> and cloned it.
> Given what Felix said about i810, I find it odd that anything in the
> recent video stack references it. Oh, I see it is in
> Using the following autogen options:
> ./autogen.sh --prefix=/usr \
> --sysconfdir=/etc \
> --localstatedir=/var \
> --enable-kms-only \
> --enable-uxa \
> reports at the end:
> xf86-video-intel 2.99.917 will be compiled with:
> Xorg Video ABI version: 25.2 (xorg-server-21.1.3)
> pixman version: pixman-1-0.40.0
> Acceleration backends: none *sna uxa
> Additional debugging support? none
> Support for Kernel Mode Setting? yes
> Support for legacy User Mode Setting (for i810)? no
> Support for Direct Rendering Infrastructure: *DRI2 DRI3 Present
> Support for Xv motion compensation (XvMC and libXvMC): yes
> Support for display hotplug notifications (udev): yes
> Build additional tools and utilities? xf86-video-intel-backlight-helper
> Running make appears to NOT build anything in i810.
> Does your build compile anything in src/legacy/i810 ? If it does,
> try to disable that. If it doesn't, maybe something else in the
> X stack has been compiled against an older version.
Yes, you are spot on. This is exactly the problem I was facing. The build was
compiling the legacy support in src/legacy/i810 and utilmately, when booting,
Xorg refused to load the intel module complaining undefined symbol i810initMC.
> Looking at the configure script, the following mention i810:
> --enable-xaa Enable legacy X Acceleration Architecture (XAA)
> for i810 chipsets [default=auto]
> --enable-dga Enable legacy Direct Graphics Access (DGA) for
> i810 chipsets [default=auto]
> So I think it only gets enabled if you force one of those (but
> it tests for xaa.h and dgaproc.h, perhaps you have one of those).
> It should be possible to disable both of those (or --enable-???=no
> in some cases). But I cannot see my build even looking for either
> of those.
They both were disabled in my case. I had the following conf options:
In the end, the option that solved my problem was --disable-ums. Upon going
through the config script, I realized that --enable-kms-only automatically
disables ums, however for some odd reasons (or perhaps an odd combination of
config switches on my part) this didn't happen. Adding --disable-ums in the
above conf options got the job done and src/legacy/i810 wasn't built anymore.
Consequently, intel video driver module was loaded correctly.
> > Given what Felix said about i810, I find it odd that anything in the
> > recent video stack references it. Oh, I see it is in
> > src/legacy/i810/.
> > Using the following autogen options:
> > ./autogen.sh --prefix=/usr \
> > --sysconfdir=/etc \
> > --localstatedir=/var \
> > --enable-kms-only \
> > --enable-uxa \
> > --mandir=/usr/share/man
> > reports at the end:
> > xf86-video-intel 2.99.917 will be compiled with:
> > Xorg Video ABI version: 25.2 (xorg-server-21.1.3)
> > pixman version: pixman-1-0.40.0
> > Acceleration backends: none *sna uxa
> > Additional debugging support? none
> > Support for Kernel Mode Setting? yes
> > Support for legacy User Mode Setting (for i810)? no
> > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > Support for Direct Rendering Infrastructure: *DRI2 DRI3 Present
> > Support for Xv motion compensation (XvMC and libXvMC): yes
> > Support for display hotplug notifications (udev): yes
> > Build additional tools and utilities? xf86-video-intel-backlight-helper
> > intel-virtual-output>
> > Running make appears to NOT build anything in i810.
Thanks, this is really helpful. I have had yet to compile the intel video
driver with xorg server 21.x.x series. So far, I tried with 1.20.14 and with
--disable-ums it seems to work fine. I'll definitely try it next week once I'm
back after vacation.
Thank you for your help and support, really appreciated.
More information about the xorg