Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 243252 - Xorg server 1.5.X cannot be started with Intel graphics drivers, perhaps others
Summary: Xorg server 1.5.X cannot be started with Intel graphics drivers, perhaps others
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Server (show other bugs)
Hardware: All Linux
: High major (vote)
Assignee: Gentoo Linux bug wranglers
URL: N/A
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-10-22 17:54 UTC by Robert Bradbury
Modified: 2008-10-26 23:57 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Robert Bradbury 2008-10-22 17:54:07 UTC
This relates to Bug #237219 where the discussion got a bit messy.

The problem appears to be that in x11-base/xorg-server-1.5.x (in my case the specific problem was with xorg-server-1.5.2) the data variable "PictureScreenPrivateIndex" has been removed from /usr/bin/Xorg.  At least it is defined in /usr/bin/Xorg (version 1.4.2).  As a result a number of libraries that require this variable will no longer function.  (The 1.5.x build process should mandate upgrades to these libraries).

On my system, the variable is referenced by (i.e. undefined in):

/usr/lib/xorg/modules/libshadowfb.so
/usr/lib/xorg/modules/libxaa.so
/usr/lib/xorg/modules/libwfb.so
/usr/lib/xorg/modules/libfb.so
/usr/lib/xorg/modules/libexa.so

/usr/lib/xorg/modules/drivers/intel_drv.2.4.2-r3.so
/usr/lib/xorg/modules/drivers/vmware_drv.so

It appeared that some of these modules might have been included into the drivers (or the base Xorg server) in 1.5.X but that does not eliminate the missing "definition" for the variable in the Intel or Vmware drivers.  (intel_drv.2.4.2-r3.so is my renamed version of the standard Gentoo Intel driver which i810_drv.so is symlinked to.)

In other words in 1.5.X one may be required to upgrade or recompile various hardware level drivers to eliminate the PictureScreenPrivateIndex references.  I only have a subset of the graphics drivers (out of what appears to be several dozen that Linux supports) on my system so I cannot provide a complete list of libraries which refer to it.



Reproducible: Always

Steps to Reproduce:
1. emerge xorg-server-1.5.2
2. attempt to startx or xdm
3. Notice the message of the form:
dlopen: /usr/lib/xorg/modules/drivers//i810_drv.so: undefined symbol: PictureScreenPrivateIndex

in the file /var/log/xdm.log (in the section where drivers are loaded).
Actual Results:  
X server will not start on specific hardware.

Expected Results:  
X server should start on *all* common hardware types (e.g. Intel, Nvidia, ATI, etc. graphics chips).  "x86" is no longer sufficient for various standard "PC" configurations.

It should also be noted that xorg-server-1.5.x also appears to "desupport" standard vga drivers.  This is unfortunate (and could be considered a bug) if the standard vga drivers will support
1) Standard terminal switching between console and X terminals.
2) Multiple X terminals (2, 4, 6 or more X terminals (e.g. /var/log/Xorg.#.log).

The Intel (i915 kernel / i810 (intel) user) driver combination in Linux 2.6.24/6/7 with Xorg-server 1.4.2 & 1.5.x routinely crash (hang) the console when #1/#2 are attempted.
Comment 1 Mike Auty (RETIRED) gentoo-dev 2008-10-22 18:38:25 UTC
I believe the ebuild says the following once it's installed:

You must rebuild all drivers if upgrading from xorg-server 1.4.1 or earlier, because the ABI changed. If you cannot start X because of module version mismatch errors, this is your problem."

You can generate a list of all installed packages in the x11-drivers category using this command:
emerge portage-utils; qlist -I -C x11-drivers/

Could you please verify whether this solves the missing variable problem?

If so, then it probably just requires that the wording be changed to recommend that any older version of xorg-server needs all the drivers updating.  If not, then we'll start looking into the appropriate action to fix this.  Either way, let us know how you get on...
Comment 2 Peter Alfredsen (RETIRED) gentoo-dev 2008-10-23 20:52:30 UTC
Weeding out the bug-list, please re-open if you have anything new.
Comment 3 Robert Bradbury 2008-10-24 13:44:44 UTC
Ok, there appears to be a chicken and egg problem with package dependencies.

The *specific* order one must do the emerges in appears to be:
  media-libs/mesa-7.2; x11-base/xorg-server-1.5.2; x11-drivers/xf86-video-intel (or xf86-video-i810).

Additionaly must probably be recompiled include xf86-video-vmware and perhaps xf86-input-mouse, xf86-video-keyboard, xf86-video-vesa and xf86-video-fbdev.

It should be noted that it currently appears neither the intel nor fbdev drivers will work with xorg-server-1.5.2 (but these will be the subject of other bug reports).  The only driver which appears to work with xorg-server-1.5.2 on my system is the vesa driver.

It should be noted that the xorg-server (/usr/bin/Xorg) does appear to do version checking (in 1.5.2, not sure about previous revisions).  An error will occur in /var/log/xdm.log of the form:
  (EE) module ABI major version (1) doesn't match the server's version (4)
  (EE) Failed to load module "fbdev" (module requirement mismatch, 0)
if one has not recompiled the driver(s) to match the server version.

The reason for the undefined "PictureScreenPrivateIndex" problem is that the intel driver source file i830_xaa.c, lines 115 & 869 uses the macro "GetPictureScreenIfSet()" which is defined in /usr/include/xorg/picturestr.h to reference PictureScreenPrivateIndex (in versions <= xorg-server-1.4.2).  So you have to upgrade the xorg-server to 1.5.? to get an updated picturestr.h and get the new definition of GetPictureScreenIfSet() *before* you recompile the drivers in order to avoid the variable reference.

The problem with mesa and the xorg-server seems to involve issues of whether when and how "nptl" is included in make.conf or package.use.  It isn't clear whether you can reverse the order (xorg-server then mesa) after changing the nptl state.

It should be noted that emerge/ebuild documentation doesn't appear to document the directory "/usr/portage/eclass" as the place to go looking for the built_in_use function (or the fact that the databases in /var/db/pkg contain the previously compiled USE flag definitions)!  [I had to grep all recently accessed files on a 16GB /usr partition to figure this out which is *not* a fast process.]  Programmers who are unfamiliar with python *need* to know these things if they are to be useful.
Comment 4 Mike Auty (RETIRED) gentoo-dev 2008-10-26 23:57:51 UTC
Robert, bugs that are marked as RESOLVED TEST-REQUEST will need to be reopened if you want them to be seen by the bug wranglers (who this bug is currently assigned to).

I'm reopening this bug, but from your comments in bug 243844 suggest that this issue has been solved.  The ebuild states the need to re-emerge the drivers, so I don't see there being much more to be done.  As such, I'm going to mark this as FIXED.  Please re-open this bug if you can think of something more could be done.