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


Hi Ken,

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
> 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.
> 
> 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:
--disable-xvmc
--enable-sna
--disable-xaa
--disable-gda
--disable-async-swap

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.

> ?en
> 
> > 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.

-- 
--
Thanks,
Muhammad A.




More information about the xorg mailing list