blino's website

Free software developer and more

Last week, I subscribed to a new ISP (Free), to benefit from discounts as well as better hardware, gateway and set-top-box.

My new ISP and the incumbent operator were fast enough to take over my DSL line not even 2 days after my subscription. Though, Free did not bother sending the new equipment yet, I was left with the gateway from my previous ISP which was not connecting anymore.

To get back online, I had to pull out a few tricks I used to do a while back when I was at Mandriva with the only legacy modem I got: a green Speedtouch USB (nicknamed the "manta ray").

Unfortunately, the DrakX network tools that I used to maintain do not seem to work anymore with this modem and the quite unusual DSL connection using IP over ATM.

I had to install the speedtouch-firmware package, needed by the spedtch module, as well as linux-atm, providing the atmarp tools.

The modem was synchronizig fine, though about twice as slow as usual (this is an ADSL1 modem), according to the dmesg logs:

[14264369.849647] ATM dev 0: ADSL line is synchronising
[14264413.298572] ATM dev 0: DSL line goes up
[14264413.307430] ATM dev 0: ADSL line is up (7200 kb/s down | 896 kb/s up)

There are a few atmarp commands to run to configure IP over ATM:

# atmarpd -b -l syslog
# atmarp -c atm0
# ifconfig atm0 82.235.5.110 netmask 255.255.255.0 mtu 1500 up
# ip link set dev atm0 down
# ip link set dev atm0 up
# atmarp -s 82.235.5.254 8.36 null

And voila!

# ping 82.235.5.254
PING 82.235.5.254 (82.235.5.254) 56(84) bytes of data.
64 bytes from 82.235.5.254: icmp_seq=1 ttl=64 time=37.9 ms
# route add default gw 82.235.5.254

To avoid ATM fragmentation, we can configure the MTU to match a whole number of ATM cells (thanks Loïc!):

ifconfig atm0 mtu 1480

Finally, to use my PC as a gateway on my local network:

iptables -t nat -F POSTROUTING 
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE

That's pretty old school, but I am back on the Internet! :-)

Manta ray in action!



Avantages : confortable, fixations simples, facile à laver, multi-positions

Points faibles : un peu lourde et encombrante

Nous avons eu cette chaise haute alors que notre petit garçon arrivait sur ses 4 mois. Nous l'avons très peu utilisée en position transat, et principalement dans les positions inclinées et verticales.

Le système d'attaches du harnais est pratique à attacher, et la tablette contient en plus un plot central qui sécurise mieux bébé. La tablette est assez grande pour y poser un peu de jouets, et pour tenter de mettre les petits pots à l'écart des mains curieuses de bébé La tablette est en plus facile à enlever et remettre, et se range derrière la chaise. Sans la tablette, la chaise a l'air d'être à la hauteur idéale pour installer plus tard bébé à la table à manger avec les adultes.

Le siège est très confortable, et notre bébé bien agité tient bien en position. La matière en simili-cuir du siège est très facile à laver d'un coup d'éponge, la housse en tissu passe bien en machine et les tâches partent bien.

La chaise est robuste et très stable, grâce à la largeur et l'écartement des pieds, ce qui rend quand même la chaise un peu imposante. J'arrive à déplacer la chaise assez facilement, mais elle est un peu trop lourde pour ma femme.

Parmi les petits plus, il y a une machine arche d'éveil qui se positionne quand la tablette n'est pas installée, et un petit panier sous le siège qui permet de ranger un tas de jouets.

C'est globalement une très bonne chaise haute, qui a trouvé toute sa place chez nous, et qui va accompagner bébé pendant longtemps. Le prix est un peu élevé, mais l'évolutivité et la solidité font que ça fait économiser l'achat de plusieurs chaises différentes. Notre seul regret est de ne pas l'avoir achetée plus tôt pour plus profiter de la position transat.



I had to specify the encoding in my blog feed, since my stories are not written in UTF8 and Content-type specified charset=ISO-8859-1

$ diff -u /pub/web/blosxom/cgi-bin/blosxom.cgi{~,}
--- /pub/web/blosxom/cgi-bin/blosxom.cgi~       2007-09-01 01:53:56.000000000 +0200
+++ /pub/web/blosxom/cgi-bin/blosxom.cgi        2008-03-03 23:23:42.000000000 +0100
@@ -442,7 +442,7 @@
 html date <h3>$dw, $da $mo $yr</h3>\n
 html foot <p /><center><a href="http://www.blosxom.com/"><img src="http://www.blosxom.com/images/pb_blosxom.gif" border="0" /></a></body></html>
 rss content_type text/xml
-rss head <?xml version="1.0"?>\n<!-- name="generator" content="blosxom/$version" -->\n<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">\n\n<rss version="0.91">\n  <channel>\n    <title>$blog_title $path_info_da $path_info_mo $path_info_yr</title>\n    <link>$url</link>\n    <description>$blog_description</description>\n    <language>$blog_language</language>\n
+rss head <?xml version="1.0" encoding="iso-8859-15"?>\n<!-- name="generator" content="blosxom/$version" -->\n<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">\n\n<rss version="0.91">\n  <channel>\n    <title>$blog_title $path_info_da $path_info_mo $path_info_yr</title>\n    <link>$url</link>\n    <description>$blog_description</description>\n    <language>$blog_language</language>\n
 rss story   <item>\n    <title>$title</title>\n    <link>$url/$yr/$mo_num/$da#$fn</link>\n    <description>$body</description>\n  </item>\n
 rss date \n
 rss foot   </channel>\n</rss>


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)



blosxom Optimised for standards.
Olivier Blin (2005)