blino's website

Free software developer and more

The "psb" Poulsbo driver from Intel was broken on X server 1.7, because of API changes notably.

But after some love, here it is, starting your X again!

First, upstream Xorg removed some stubs in server 1.7 (xfree86: Remove loader symbol list ABI stubs), and the psb driver was still calling them. Just removing the calls from the psb driver was enough about that.

The Fedora package ships a patch for server 1.7 that contains fixes about includes and libpciaccess, which I reused.

After this, it built fine, but the psb driver could not be loaded from X, because it was not linked with the internal "libmm" library, and failed finding its symbols. Building without -Wl,--as-needed made it link fine with libmm.so, but it is just a workaround.

In addition, some non-existent functions like mmListEmpty() were called from the internal libmm library. Previously, this has been workarounded by passing -Wl,--no-undefined as linker flags so that the library can be linked fine, and everything was fine at runtime as long as nothing used the symbol. But now, it seems libmm can't be loaded this way by dlopen(), even with lazy binding, it complains about the undefined symbols. So, I finally fixed it the proper, by adding back -Wl,--no-undefined, and removing the code calling the non-existent functions, which was unused anyway.

It also exposed an undefined assert() symbol as well, caused by a missing assert.h include...

Then, X still failed loading because it couldn't find mmCreateDRM(), which should be in libmm. That's because we build our Xorg with "hidden" visibility. It was enough patching and fixing libmm already, so a quick fix was to build with -fvisibility=default. This also fixes the linking of psb_drv.so with libmm.so, and allows to use -Wl,--as-needed again when linking the driver.

The final touch is the make the Xpsb proprietary extension usable again. The only issue was that the empty xf86AddModuleInfo() function has been removed upstream. Adding this empty function back in psb_driver.c directly is dirty, but makes it usable again :)

As bonus, I also fixed my patch setting MigrationHeuristic option to "greedy" by default, as it seems to lower the odds of a random crash.

There are still some unrendered pixmaps issue, and segfaults when playing with libva, but at least X is starting fine now, and 3D as well as accelerated video are working :)

(in recent Mesa releases, another issue appears in the proprietary dri driver, because of _glapi_set_warning_func() removal upstream, calling for another workaround /o\)

Enjoy this in Mandriva Cooker, it's already available in our contrib packages!

Other distros, you're welcome in cherry-picking our psb patches.



Sometimes, Firefox freezes when drag'n'dropping a tab. The mouse cursor keeps the drag'n'drop icon, and the Firefox window becomes unresponsive, as well as my desktop.

To escape from this trap, a way is to enter the Firefox menu, by typing Alt+F \o/

(this also occurs in epiphany and galeon, and pterjan can confirm the workaround works as well for galeon)



Pont de Tancarville (Wikipedia): a red bridge in Normandie, next to Le Havre, seen on "Le Cerveau" (with Bourvil and Belmondo)



/blog/tech Global private DNS Fri, 19 Mar 2010

I was wondering why going to suzuki.fr opened my local webpage. Looks we have a little DNS issue:

$ host suzuki.fr
suzuki.fr has address 192.168.0.1
suzuki.fr has address 82.67.155.173
suzuki.fr mail is handled by 10 bow.rain.fr.
suzuki.fr mail is handled by 0 mail.suzuki.fr.


Manage Firefox extensions, and notably allow to "force" compatibility

Sweet fruit from China, with white flesh (wikipedia)



Red-skinned fruit with white flesh and black seeds (wikipedia)



blosxom Optimised for standards.
Olivier Blin (2005)