F10 and xorg intel driver: solved 34


My problems with the intel driver provided in the F10 distribution have been resolved.  I had to compile the driver manually, along with the libdrm prerequisite, but it was rather painless and surprisingly easy to accomplish.  MythTV is now happily serving up live TV and videos on my laptop monitor while I work on the external monitor.  No blur, no jumpiness.  Just like it was in F9.

The fix did not require the latest kernel nor the latest xorg server release.  Instead, I downloaded the intel driver and libdrm from the git repository as explained on the IntelLinuxGraphics.org web site.  To make life easier for anyone else with this problem on F10, here is exactly what I did.

First you need to download, build and install the libdrm module:

  • git clone git://anongit.freedesktop.org/git/mesa/drm
  • cd drm
  • ./autogen.sh
  • ./configure –prefix=/usr/local/xorg
  • make
  • sudo make install

This installs the updated libdrm under /usr/local so you don’t have to worry about trashing the current RPM packages which makes it easy to do package updates later without impacting this fix.

Next, download, build and install the driver.  This requires telling the build about the just installed libdrm.  This is done by specifying the location of the new libdrm in the PKG_CONFIG_PATH environment variable.

  • git clone git://anongit.freedesktop.org/git/xorg/driver/xf86-video-intel
  • cd xf86-video-intel
  • export PKG_CONFIG_PATH=/usr/local/xorg/lib/pkgconfig:$PKG_CONFIG_PATH
  • ./autogen.sh
  • ./configure –prefix=/usr/local/xorg
  • make
  • sudo make install

Now the driver is built and installed out of the way of the F10 packages.  All that’s left is to tell the server where to pick up the new driver.  This is done by adding the following line to the start (before other ModulePath entries) of the Files section of the xorg.conf file:

ModulePath “/usr/local/xorg/lib/xorg/modules/”

It’s important that this be the first ModulePath entry in the Files section.  You can have more than one ModulePath in this section and they are all appended in order.  This order is also the order searched for driver (and other) modules.  So having this path first tells the server to look in our new driver directory first for the intel driver.

With this done, you can now uncomment the NoAccel option you previously had added to allow the driver to work at all with dual monitors.  You can take a look at my updated xorg.conf to get an idea of how I set my system up to work with xrandr, my laptop LCD and an external monitor connected to the VGA port on the laptop.

Kudos to both the Xorg team and the LinuxIntelGraphics team for making this process far easier than I had originally expected it to be.  I was able to do it all over a lunch hour today, after having eaten lunch at home.


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

34 thoughts on “F10 and xorg intel driver: solved

  • sweetrain

    Hi, I got an error in compiling the drive:

    after excute
    #./autogen.sh
    I got the following error:
    ./configure: line 21484: syntax error near unexpected token `XINERAMA,’
    ./configure: line 21484: `XORG_DRIVER_CHECK_EXT(XINERAMA, xineramaproto)’

    Can you give me a hint as to what cause this, and how to fix it?
    Thanks very much!

  • mjhammel Post author

    I’m not positive but I think that means you need the xorg-x11-server-devel package. The only xorg devel packages I have installed are as follows:

    • xorg-x11-proto-devel-7.4-5.fc10.noarch
    • xorg-x11-server-devel-1.5.3-6.fc10.i386
    • xorg-x11-xtrans-devel-1.2.1-2.fc10.i386

    Try installing those and see if that helps.

  • Russell

    I had the same problem.

    after excute
    #./autogen.sh
    I got the following error:
    ./configure: line 21484: syntax error near unexpected token `XINERAMA,’
    ./configure: line 21484: `XORG_DRIVER_CHECK_EXT(XINERAMA, xineramaproto)’

    However after installing ‘xorg-x11-server-devel-1.5.3-6.fc10.i386’ it worked correctly.

  • sweetrain

    I realized that I probably made an mistake. I typed /usr/local/Xorg instead of /usr/local/xorg.

    Now, when I typed startx, it complains can not find all the modules. But when I repeated the installation procedures using the correct path name, at the step of make install DRM, I got the following error:

    libtool: install: error: cannot install `libdrm_intel.la’ to a directory not ending in /usr/local/Xorg/lib

    It seems that I can not simply reinstall the whole thing to the correct path.

    What should I do now?

    Thanks for the all the help!

  • mjhammel Post author

    If you installed everything under /usr/local/Xorg the first time, then just use that path instead of /usr/local/Xorg. In other words, just change

    ModulePath “/usr/local/xorg/lib/xorg/modules/”

    to

    ModulePath “/usr/local/Xorg/lib/xorg/modules/”

    That should do it, assuming your first installation completed successfully. If it didn’t, then wipe out /usr/local/Xorg completely, run “make distclean” in the drm and intel driver source directories, and do the whole process again.

    To be absolutely paranoid about cleaning up after a mistake, remove the /usr/local/Xorg directory (and all its contents) and then remove the source directories for drm and the intel driver. Then unpack them and try it again.

  • sweetrain

    Thanks for you quick response!

    Both lines

    ModulePath “/usr/local/Xorg/lib/xorg/modules”
    ModulePath “/usr/local/xorg/lib/xorg/modules”
    gave me the same error: startx complains can not find a whole bunch of modules. If I comment out all the lines in the Files section my xorg.conf, startx have no problem to start.

    Also, I noticed that you have the following line:

    ModulePath “/usr/lib/xorg/modeuls/”

    in you sample xorg.conf file. I don’t even have such an directory. Could this be the reason?

  • mjhammel Post author

    Yes! If you specify the Files section in your xorg.conf then you must specify all the module paths the server should search through. That means you need a line for your just installed driver followed (and order is important) by the default search path, which is

    ModulePath “/usr/lib/xorg/modules/”

    In other words, your File section should look like this:

    Section “Files”
    ModulePath “/usr/local/xorg/lib/xorg/modules/”
    ModulePath “/usr/lib/xorg/modules”
    FontPath “catalogue:/etc/X11/fontpath.d”
    FontPath “built-ins”
    EndSection

    (with the first Module path set to whatever directory you installed your new driver into)

  • sweetrain

    Finally, I managed to get it working.

    Since I am running a 64bit system, the path in the xorg.conf file should be “/usr/lib64/xorg/modules”.

    However, it seems that the current configuration will not work with compiz-fusion. Whenever I enable compiz-fusion, the screen will go total white (keyboard and mouse still responding). I am not sure if you have similar experience, or it is 64bit only.

    You’ve been great help! Thank you very much!

  • mjhammel Post author

    I haven’t encountered this because 1) my laptop is a 32bit Pentium M and 2) I don’t use any of the glitzy bits (re: 3D) of the desktop. I don’t even play games. I just need 2D and acceleration for video. So compiz isn’t enabled on my system.

    But it’s good to know someone is pushing the driver in other ways. You can check the freedesktop.org bug reports to see if this issue has already been reported. I don’t know much about use of compiz, but one report I found seems to state that DRI is required and that without it the reporter got a white screen too. Maybe you don’t have DRI enabled in your configuration?

  • mjhammel Post author

    Why is that? What version of the intel chipset do you have?

    The indirect rendering will be slower compared to DRI enabled. You may not get the performance you’re looking for with things like compiz, meaning you should probably just disable that.

  • sweetrain

    There was a bug in F9, when using direct rendering, the screen goes white. This is very similar to what I have.

    Here is the link for that :
    http://forums.fedoraforum.org/showthread.php?p=1010055#post1010055

    After I use indirect rendering, I got desktop. But as you pointed out, all the fancy stuff was gone. This defeats the purpose for using compiz-fusion in the first place. I posted a help on fedoraforum, hoping some one will respond. For the time been, I will just go with metacity, cause I need the dual monitor more than I need the fancy effects.

  • Greg P

    I’ve tried various means to compiling or downgrading the intel driver, to no avail. At most I get a shimmery white screen, working mouse, but no working keyboard, so shutting down is by brute force. This is a laptop with a 945G chip.
    The only thing that works is to add an option NoAccel in which case screen scrolling is a bit jerky, but at least it works.
    Also, an F10 update to the i810 driver the other day didn’t help either.

  • mjhammel Post author

    The i810 driver is deprecated and isn’t being maintained (I don’t think) anymore. The intel driver is really the only one to use with F10.

    Downgrading probably won’t work because you probably would have to downgrade the kernel drm modules too, or at least rebuild the older drivers with the current kernel. Something like that. Instead, you might try a step I didn’t need, which is to grab the latest drm kernel modules and compile them with your current kernel. Information on the drm kernel drivers is on the IntelLinuxGraphics download page. Note that the git download for the kernel modules is a lot larger than the libdrm download.

    When you built the intel driver did you also build libdrm? You need to build both since the latest source release relies on the latest libdrm too. Build both of these against your current kernel release should get you compatible versions of the driver, libdrm and the kernel. Compatible won’t necessarily guarantee a working X driver, however.

    You might want to grab one of the more recent releases of the driver. A stable release 2.5.99.2 which is not listed on the download page was made on January 8th and a new version of 2.6.0 was released January 15th. 2.6.0 may require a rebuild of all of your X environment, however. I’ve tested the build of the 2.6.0 release on my machine and the build completes successfully, however I’ve not tried it yet. I’m still running from the version of git tree I downloaded on Jan 6th.

  • james

    For these errors:

    configure.ac:261: error: must install xorg-macros 1.1.3 or later before running autoconf/autogen

    No package ‘xext’ found

    Do this:
    yum install xorg-x11-server-devel libXext-devel

  • mjhammel Post author

    This makes sense. Compiz probably needs DRI and DRI is disabled automatically when you specify a virtual display size larger than 2048×2048. The larger virtual display size is necessary for side-by-side dual monitors, at least in my setup (1280×800 on the laptop and 1280×760 on the external monitor). I think DRI2 may address some of this later, but you’d have to rebuild the entire Xorg stack plus get the newest kernel to get DRI2. At least I think so – I haven’t been able to completely verify that yet.

    Summary: if you want compiz, don’t try dual monitors. If you want dual monitors, don’t use compiz. At least not with the default Xorg server and kernel releases in F10.

  • sweetrain

    Well, with my working dual monitor setting, DRI is enabled:

    $ glxinfo | grep direct
    direct rendering: Yes

    Guys at compiz-fusion told me that they thought the frame buffer size problem is resolved, and my graphics card, an Intel Graphics Media Accelerator 3100, should have this problem anyways. And they recommended me to go ask xorg guys.

  • mjhammel Post author

    Actually, check your Xorg.0.log file and search for DRI. glxinfo also reports this on my system,

    mjhammel(tty1)$ glxinfo | more
    name of display: :0.0
    display: :0 screen: 0
    direct rendering: Yes

    but the log file shows DRI is not supported with the virtual display size:

    (EE) intel(0): Cannot support DRI with frame buffer width > 2048.

    I think what happens is that the DRI module is loaded by not used by the driver even if applications can see the loaded module and try to use it.

    From what I’ve gleaned from the xorg mailing list, the problem may be fixed with DRI2. The problem is F10 isn’t using DRI2 yet since it’s not got the GEM enabled kernel yet. I don’t know this for certain, however, because I can’t seem to find any definitive information on how you get DRI2. I’m pretty sure it’s enabled in the intel kernel drivers.

  • bheatcoker

    I installed libdrm module and all right. Then I downloaded xf86-video-intel.
    I did,–> export PKG_CONFIG_PATH=/usr/local/xorg/lib/pkgconfig:$PKG_CONFIG_PATH
    And all right.

    Now I try ./autogen.sh and say it:
    “must install xorg-macros 1.1.3 or later before running autoconf/autogen”

    I downloaded Xorg, xserver-xorg, xserver-xorg-dev, try again, and the same. I am using debian 32bit.

  • mjhammel Post author

    I’m not a Debian user but I did a little google search for xorg-macros and found a Debian Changelog that mentions it. Looks like you need to install the xutils-dev package, if I read this right. You might also try running apt-cache search xorg-macros to see what that tells you.

    Hope that helps.

  • Jeroen

    sorry, wrong click…

    slight problem, at first by compiling libdrm:

    configure.ac:28: error: possibly undefined macro: AC_DISABLE_STATIC
    If this token and others are legitimate, please use m4_pattern_allow.
    See the Autoconf documentation.
    configure.ac:29: error: possibly undefined macro: AC_PROG_LIBTOOL
    autoreconf: /usr/bin/autoconf failed with exit status: 1

    and then I just moved on and I got this message

    [jeroen@Maes3 libdrm-2.4.9]$ ./configure –prefix=/usr/local/xorg
    configure: error: invalid variable name: –prefix

  • Zebee

    Gald to find this, but unfortunately having problems. autogen is complaining about versions:

    checking for pkg-config… /usr/bin/pkg-config
    checking pkg-config is at least version 0.9.0… yes
    checking for XORG… configure: error: Package requirements (xorg-server >= 1.6 xproto fontsproto xineramaproto randrproto renderproto xextproto x11 xextproto) were not met:

    Requested ‘xorg-server >= 1.6’ but version of xorg-server is 1.5.3

    Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix.

    Alternatively, you may set the environment variables XORG_CFLAGS
    and XORG_LIBS to avoid the need to call pkg-config.
    See the pkg-config man page for more details.

    [zebee@hp xf86-video-intel]$ echo $PKG_CONFIG_PATH
    /usr/local/xorg/lib/pkgconfig:/usr/local/xorg/lib/pkgconfig:

    definitely the fedora 10 packages are 1.5.3 so I’m wondering if the git repository has crept up a version between January and now?

  • mjhammel Post author

    I haven’t tried this in awhile, since I now have an nvidia-based system for dual monitors at home (replacing the laptop for dual monitors at home, at least). However, I remember reading in one of the xorg mailing lists that the stuff in git was eventually going to be dependent on the new xorg release in order to support a new xorg architecture. Something like that. I haven’t been following it that closely lately.

    So it doesn’t suprise me that the git stuff won’t build now without a new version of xorg. Trying to upgrade xorg from git is a major undertaking so I wouldn’t recommend it to the casual user.

  • Dan

    Shortly after running the “./autogen.sh” command, I receive an error shortly after:

    171: error: must install xorg-macros 1.1.3 or later before running autoconf/autogen
    configure.ac:171: the top level
    autom4te: /usr/bin/m4 failed with exit status: 1
    aclocal: autom4te failed with exit status: 1
    autoreconf: aclocal failed with exit status: 1

    I’m stuck at this point. I’ve installed this on Ubuntu 9.04. I was hoping that this driver would fix the display problems I’ve been having. I’ve spent hours trying to fix it. Should I give up and revert to 8.10 or wait for a fix?

  • mjhammel Post author

    I don’t use Ubuntu, but I think it’s Debian-like (as opposed to Fedora like). You probably just need to install the xorg-macros package to get past this compile problem. I commented previously about the same problem for a Debian user and suggested trying the command apt-cache search xorg-macros. You might try the Ubuntu equivalent. On Debian, the package that includes xorg-macros is called xutils-dev.

    Before reverting to 8.10 you should post some queries on Ubuntu’s forums. I’m sure there are others there with similar issues since this has been a long running problem on multiple distributions.

  • Tajinder Singh

    Hi mjhammel!

    I am having problem similar to Zebee regarding xorg version 1.6 required.

    Is there any solution to this problem or we should just satisfy to work without the drivers?

    System Configuration:
    Fedora 10
    HP Pavilion DV2519tu
    64 bit intel (Dual Core)

    Thanks!

  • mjhammel Post author

    I haven’t been following this issue that closely since I switched primary systems at home. To my knowledge there isn’t a solution to this except to upgrade. It’s possible that F11 will incorporate xorg 1.6 which should help to solve the problem, but F11 isn’t due until tomorrow and I haven’t checked what it will contain, though I’m planning on upgrading some systems right very soon.