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.
Pingback: Fedora 10 issues with intel driver and multihead | Michael J. Hammel - The Graphics Muse
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!
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:
Try installing those and see if that helps.
Pingback: F10 intel driver: a few more tidbits | Michael J. Hammel - The Graphics Muse
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.
Excellent. Looks like the XINERAMA requirement is handled by the xorg-server-devel package. Good to know. Thanks.
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!
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.
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?
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)
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!
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?
Thanks for the info! You’ve been very helpful!
I will go check them out.
BTW, DRI was enabled on my system.
It seems that I have to go with indirect rendering.
Will try it tomorrow.
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.
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.
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.
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.
during ./autogen.sh on Fedora 10
No package ‘pthread-stubs’ found
yum install libxcb-devel
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
In case anyone is interested, the white screen problem is posted on compiz-fusion forum, and the problem seems to be the frame buffer size should be smaller than 2048.
http://forum.compiz-fusion.org/showthread.php?p=70302#post70302
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.
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.
Actually, check your Xorg.0.log file and search for DRI. glxinfo also reports this on my system,
but the log file shows DRI is not supported with the virtual display size:
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.
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.
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.
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
I’m not certain about the AC_DISABLE_STATIC issue, but the other one is easy: the prefix option needs two dashes (–), not one.
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?
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.
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?
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.
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!
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.