Sysmic.org

Aller au contenu | Aller au menu | Aller à la recherche

jeudi, juillet 23 2009

Ajout du support de la board EB8541 sur 2.6.28

Comme je l'annoncais, on m'a chargé de porter le noyau 2.8.28 sur une carte PowerPC de Kontron. Vous pouvez trouver le résultat ici. J'ai beaucoup à faire pour l'instant, mais je reprendrais dans ce code dans les prochaines semaine pour le "rebaser" sur linux-next et l'intégrer au main stream du noyau.

mardi, juin 16 2009

Battery not detected on MSI CR600

On Laptop MSI CR600, device PNP0C0A (corresponding to battery) does not appear in /proc/acpi/battery nor in /sys/bus/acpi/drivers/battery/ with Linux 2.6.28.9.

Lire la suite...

mardi, juin 2 2009

MSI WMI support

Buttons on MSI WindTop AE1900-WT (also called MS-6638) are currently not supported on Linux 2.6.28.9.

After long time of investigations, I found these buttons are handled by WMI. I wrote a WMI module for MSI.

Currently, there is an issue with interrupts. Buttons send between 25 and 30 interrupts when they are pressed. Kernel should forward only one event for each key press.

In add, this module should support Brightness.

vendredi, mai 29 2009

Hue control not properly detected on webcam BisonCam, NB Pro (5986:0241)

Using Kernel 2.6.28.9, webcam BisonCam, NB Pro (5986:0241) on MSI WindTop AE1900-WT (also called MS-6638) is badly detected.

After some investigation, I found uvcvideo driver answers EIO when libv4l do VIDIOC_QUERYCTRL, with a particular id: 0x980903. This id seems correct and correspond to "Hue" control.

Also, dmesg says:

 uvcvideo: Failed to query (135) UVC control 6 (unit 5) : -32 (exp. 2).

Error 32 corresponds to EPIPE ("Stalled endpoint").

I wrote a workaround in libv4l :

--- libv4l-0.5.8.orig/libv4l2/libv4l2.c
+++ libv4l-0.5.8/libv4l2/libv4l2.c
@@ -740,0 +740,6 @@
+    // Jezz: Fix bug with '5986:0241 BisonCam, NB Pro'
+    if (request == VIDIOC_QUERYCTRL && result != 0 && errno == EIO) {
+      struct v4l2_queryctrl *queryctrl = arg;
+      if (queryctrl->id == 0x980903)
+        errno = EINVAL;
+    }

This workaround work fine, so problem exists only with this id.

Nevertheless, it is not a perennial solution. Laurent Pinchart wrote a better patch that I have adapted for 2.6.28.9.

Notice this problem seems specifics to this computer, not to this webcam. You can find there program I wrote to test this bug.

See also http://lists.berlios.de/pipermail/linux-uvc-devel/2009-May/004795.html

lundi, mai 4 2009

Debian package for microdia (sn9c20x) driver

I packed Microdia drivers for Debian. Direct link to source package

vendredi, avril 24 2009

Patch Bootplash pour 2.6.28.9

Bootsplash est un patch complètement obsolète pour avoir un démarrage graphique. Le développement s'est arrêté au noyau 2.6.21. Néanmoins, on a de temps en temps besoin des patch complètement obsolètes ;-). Donc, voici le patch porté sur le kernel 2.6.28.9. Notez que vous aurez besoin d'outils en userspace.

lundi, août 7 2006

Add kListViewSearchLineWidget to Twinkle addressbook

I have written a quick and dirty patch which add a kListViewSearchLineWidget (a filtering bar) to addressbook form of Twinkle (see picture).

twinkle-patched Why this patch is dirty?

  1. Because it force twinkle to be dependent of kdelibs.
  2. Because of Qt designer (or KDE widgets plugin) have a bug with kListViewSearchLineWidget class. It don't call correctly constructor of this class. So I have to go round adding this widget in init() method.

You will find:

jeudi, août 3 2006

Updade of par multibyte encoding patch

Follow up to bug report #310495 in debian bug tracking system, I have updated my previous patch for par.

As suggested by some Debian mainteners, I have changed structure of my directory:

vendredi, juin 30 2006

Documentation sur le développement de systèmes embarqués

J'ai rassemblé et un peu remis en formes quelques notes que j'avais au sujet de la programmation embarquée avec gcc la GNU toolchain. Vous trouverez le résultat ici

jeudi, juin 22 2006

Add multibyte characters support in "par"

Some of you know command "par". Par is a powerfull text reformater. It is especially used in text editors like vim. But, par don't support multibyte characters (typically UTF8 encoding). I have made a patch to support multibyte and double-width characters. Now, you can reformat a text like :

/***********************/
/* English is a West Germanic language heavily influenced, in */
/* comparison with other Germanic languages, by French and Latin. */
/* On appelle français (et française au féminin) les habitants de la France */
/*  */
/* [ Ανήκει επίσης στο βαλκανικό γλωσσικό δεσμό. ] */
/* [   ] */
/* [ Русский язык — язык русских, государственный язык России и ] */
/* [ Белоруссии, ранее — язык межнационального общения СССР ] */
/*  */
/* اللغة العربية هي لغة سامية، مشتقة عن السريانية (نسب */
/* ة الى سورية) والآرامية والعبرية و الأكادية، و هي لغة العرب، سكان شبه الجزيرة */
/*                           */
/*************************/

after ":'<,'>!par 42rj":

/***************************************/
/* English is a West Germanic language */
/* heavily  influenced, in  comparison */
/* with   other  Germanic   languages, */
/* by  French  and Latin.  On  appelle */
/* français (et  française au féminin) */
/* les habitants de la France          */
/*                                     */
/* [ Ανήκει  επίσης   στο  βαλκανικό ] */
/* [ γλωσσικό δεσμό.                 ] */
/* [                                 ] */
/* [ Русский  язык  — язык  русских, ] */
/* [ государственный   язык   России ] */
/* [ и  Белоруссии,   ранее  —  язык ] */
/* [ межнационального общения СССР   ] */
/*                                     */
/* اللغة العربية  هي لغة  سامية، مشتقة */
/* عن  السريانية  (نسب  ة  الى  سورية) */
/* والآرامية والعبرية و الأكادية، و هي */
/* لغة العرب، سكان شبه الجزيرة         */
/*                                     */
/***************************************/

Notice that par has automatically detected prefix and suffix and changes of paragraph. Change of text direction[1] is not a problem. It has also resized non-textual lines ("r" option) and justified text ("j" option).

You can find :

Don't forget to correctly set $LANG environment variable to notice par which encoding you want.

Notes

[1] Arabic language is read from right to left

lundi, décembre 12 2005

Problème de compilation de qgeckoembbed

Allez, petit problème de compilation:

Contexte

Je souhaite compiler la bibliothèque libqgeckoembbed. Comme son nom l'indique, il s'agit du moteur gecko embarqué dans une bibliothèque (permettant son utilisation dans une application simplifiée) compilé avec le toolkit Qt. Il s'agit d'un code plus ou moins entretenu, plus ou moins bancal. Après plusieurs modification mineures du code, j'obtiens un problème au linkage:

/usr/bin/ld: ui_alert.o(.text+0xfb): unresolvable R_386_GOTOFF relocation against symbol `QString::shared_null'
/usr/bin/ld: édition de lien finale en échec: Section non-représentable pour la sortie

Problème

Généralement, les erreurs de linkage sont du type "Unable to link symbol X". Jamais vu d'erreur de ce genre. D'ailleur, Google n'est pas très loquace non plus. Je fouille... je trouve qu'il y a une relation avec la libqt. Si je l'exclue du linkage, ça fonctionne (vu que c'est une bibliothèque dynamique, ça ne pose pas de problème d'avoir des symboles non résolus). Bon... je laisse le problème de coté... Je tente de compiler les binaire de test pour libqgeckoembbed et la encore erreur de linkage. Les symboles de libqgeckoembbed ne sont pas exporté. Et effectivement, si on regarde à l'aide de nm ou readelf, les symboles sont annotés Hidden et Local. Pourtant, si on exécute nm sur les fichiers objets, les symboles sont exporté. J'ai bien essayé plusieur option de ld le forçant à exporter tous les symboles, mais, rien n'y fait. Qu'est ce qui fait que les symboles sont marqué Hidden lors du linkage? Je vous laisse quelques minute de réflexion...

Solution

Au fin des entrailles de la configuration de Mozilla, dans un petit fichier d'entête de configuration, on peut trouver:

#pragma GCC visibility push(hidden)

grrr!!![1] Et devinez quoi? Résoudre ce problème résout aussi aussi l'obscur problème de unresolvable R_386_GOTOFF relocation. Voilà le résultat ne pas avoir de procédure de tests automatisée (et il ne s'agit que de vérifier que tout compile, c'est quand même pas super complexe). Bref, je suis très content d'avoir perdu deux heures sur un problème de compilation...

Notes

[1] Et ceux qui me connaissent savent que je n'ai pas la mauvaise habitude des bloggeurs de dupliquer à outrance les signes de ponctuation

samedi, décembre 3 2005

Patch Interface DCOP pour kwin

Voilà, un nouveau patch publié sur kde-apps. J'ajoute un lien direct vers le projet

Je maintenant ralentir un peu (pourtant, j'ai bien d'autres idée en tête) et me remettre plus sérieusement à ma recherche de travail qui commence à s'allonger :-(

vendredi, décembre 2 2005

Patch Kwin-DCOP

Mon dernier patch en avant première. C'est la fameuse interface DCOP que je vous avait promis. Je sais, j'ai été long. J'ai changer plusieurs fois mon implémentation au fur et à mesure que je découvrais le code de kwin. Laissez-moi le temps de le packager proprement et je vous donne plus d'informations.

dimanche, novembre 27 2005

Compilation de Kde 4 et architecture de Kwin

Il y a des jours comme ça où on perd [1] son temps à récupérer des sources, à les compiler, à comprendre comment ça fonctionne. J'ai décider de continuer mon travaille sur la version svn de Kde. J'ai donc récupérer cette version, récupérer Qt4, puis unsermake, puis kdelibs, puis une autre version de kdelibs (avec compilation de 4h à chaque fois). A l'heure actuelle, le ./configure de Kdebase passe, mais, il y a un problème avec les Makefile[2].

J'en ai quand même profiter pour commencer à implémenter mes fonction DCOP. La plus grosse partie est faite, mais, c'est difficile à dire quand on travaille sur un projet qui ne compile pas. En fait, une bonne partie des fonctions utiles sont déjà codé pour répondre aux raccourcis claviers de kwin. Malheureusement, mon problème principal revient : j'ai toujours envie de tout recoder... :-(

J'en ai aussi profiter pour me mettre à Kdevelop. Ce projet, à chaque fois que j'y touche, j'ai l'impression qu'il a évolué. Je vais essayer de le maîtriser à fond. je vous en dirais des nouvelles. En tous cas, à part des problèmes de stabilités au démarrage, il m'a offert beaucou de bonnes surprises.

Notes

[1] Je suis peut-être un peu excessif

[2] Je n'en sais pas plus pour l'instant

samedi, novembre 26 2005

Kwin et DCOP

Comme je le disais, j'ai prévu de m'occuper de l'interface DCOP de kwin (pas ce soir). Cette interface permettrait une personnalisation plus puissante et l'utilisation de khotkey pour controler les fenêtres.

Lire la suite...

vendredi, novembre 25 2005

Les icones d'Apache/mod_autoindex

C'est fou que les icones de l'autoindex d'Apache soient aussi moches. Je me suis dit que ça pouvait être sympa d'utiliser les icônes de crystalsvg. Aussitôt dit, aussitôt fait. Quelques lignes de shell[1]:

 for i in /usr/share/mimelnk/**/*.desktop; do 
   MIMETYPE=$(cat $i | sed -n 's/^MimeType=\(.*\)/\1/p'); 
   EXTENTION=$(cat $i | sed -n 's/^Patterns=\(.*\)/\1/p'); 
   ICON=$(cat $i | sed -n 's/^Icon=\(.*\)/\1/p'); 
   COMMENT=$(cat $i | sed -n 's/^Comment=\(.*\)/\1/p'); 
   EXT1=${EXTENTION//;/ }; 
   EXT2=${EXT1//\*/}; 
   [[ -n "$ICON" ]] && [[ -n "$EXT2" ]] && echo "AddIcon /icons/$ICON.png $EXT2"; 
   # Pendant qu'on y est, on va ajouter une description
   [[ -n "$COMMENT" ]] && [[ -n "$EXT1" ]] && echo "AddDescription \"$COMMENT\" $EXT1";
 done > /etc/apache2/index.conf

Ensuite, on change quelques petit trucs dans la conf d'Apache:

 #Alias /icons/ "/usr/share/apache2/icons/"
 #<Directory "/usr/share/apache2/icons">
 Alias /icons/ "/home/www/crystalsvg/"
 <Directory "/home/www/crystalsvg">
 Include "/etc/apache2/index.conf"

Et on peut voir le résultat sur le répertoire de mon CV. Ca a plus de gueule quand même, non? Bon, il y a pleins de détails qui cloche, il faudrait regarder le type mime pour certains fichier (les fichiers textes par exemple), ... Avec un HEADER.html amélioré (enfin, surtout une CSS améliorée), on pourrait avoir des supers résultats. J'ai pas le temps de le packager, mais, si quelqu'un est chaud pour faire quelque chose de propre, je veux bien l'aider.

Notes

[1] Je sais, le shell, c'est toujours illisible

Patch Kwin Alternative Resize

Depuis le temps que je voulais le faire. A l'époque où j'étais sous Fvwm et Ctwm, j'adorais le style de redimentionnement. J'avais déjà envoyer l'idée aux développeurs de kwin[1], mais, ils n'avaient pas donné suite. Ca m'a pris la journée, mais maintenant, je suis satisfais de kwin[2] [3]. Je crois que je ne vais pas m'arrêter là. Je vais refaire l'interface DCOP de kwin qui est beaucoup trop légère. J'y reviendrais dans un prochain billet.

jeudi, novembre 17 2005

ssh-askpass pour Kde

Il existe une version de ssh-askpass pour gnome, mais, aucune pour Kde. J'utilisais jusqu'à lors une ligne de shell utilisant kdialog. Le chargement était un peu long et je trouvais dommage de ne pas profiter de kwallet. J'ai fais un petit programme en ruby[1] [2] (en plus ca faisait longtemps que j'avais pas fait de Ruby, ça m'a permit de me rafraîchir la mémoire).

Pour faire ce petit éxécutable, j'ai utiliser les bindings Kde pour Ruby. Je n'ai pas osé envoyer de bug report car je ne maitrise pas assez bien le sujet, mais, je pense que certaines fonctions utilisant DCOP sont mal bindées (la fonction open de kwallet par exemple).

mardi, novembre 1 2005

Layout Esperanto

Le but est de créer un layout optimisé pour :

  1. L'Espéranto
  2. La programmation
  3. Les données comptable
  4. Les mathématiques
  5. Les autre langues et plus particulièrement les langues occidentales (on pourrait imaginer que quelques modification du layout pourrait l'optimiser pour les langues asiatiques)

Voici ma proposition (J'espère que vous supportez l'UTF-8 :-) ):

┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬───────┐
│ |¦ │ {≤ │ [« │ ¢† │ £‡ │ ¤∏ │ _¬ │ #∘ │ \√ │ =≠ │ &  │ ]» │ }≥ │  ◄═   │
│ %‰ │ <“ │ (  │ $  │ €∞ │ ¥∑ │ -∅ │ *× │ /÷ │ +± │ @∫ │ )  │ >” │       │
├────┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬─────┤
│      │ :♪ │ ?♫ │ !ª │ Bþ │ ŬÐ │ J¹ │ Ĵ² │ Ĉ³ │ Ŝ  │ Ĝ↟ │ ~˙ │ ˘ˇ │     │
│ Tab  │ ;¶ │ ,¿ │ .¡ │ bÞ │ ûð │ j1 │ ĵ2 │ ĉ3 │ ŝ0 │ ĝ↑ │ ´° │ `¸ │ ◄═╝ │
├──────┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┐    │
│ lvl3  │ UØ │ IY │ AW │ EQ │ OX │ Tα │ Cβ │ Sγ │ N↞ │ M↡ │ Ĥ↠ │ ^  │    │
│ lvl3  │ uø │ iy │ aw │ eq │ ox │ t4 │ c5 │ s6 │ n← │ m↓ │ ĥ→ │ ¨¯ │    │
├─────┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴────┴────┤
│  ▲  │ "• │ G♂ │ P♀ │ Rπ │ VŒ │ ZÆ │ D¼ │ F½ │ K¾ │ L∆ │ H® │     ▲     │ 
│  ║  │ '… │ gß │ p§ │ rµ │ vœ │ zæ │ d7 │ f8 │ k9 │ l∂ │ h© │     ║     │
└─────┴────┴────┴────┴────┴────┴────┴────┴────┴────┴────┴────┴───────────┘

Remarquez:

  • Les chiffres sont accessibles en level 3 comme sur la plupart des portables
  • Les chiffres accessibles par la main droite alors que la main gauche peut appuyer sur "level 3"
  • Toutes les lettres et la ponctuation Espéranto sont sous les huit doigts (dix doigts moins les deux pouces)
  • Les parenthèses, crochets et incolades sont de part-et-d'autre du clavier. Un pour la main droite, l'autre pour la main gauche
  • La touche VerrMaj est inutile (Il est conseiller d'utiliser le style "Small Caps" comme on utilise les style italique ou gras). Elle est remplacée par lvl3 et compose
  • Les dycriaques courantes et les lettres des langues occidentale, permet de couvrir un grand nombre de langues occidentales. Il manque l'écossais. Il faut faire des modifications dessus pour en avoir un maximum. Les langues n'utilisant pas l'alphabet occidental sont malheureusement obligé de changer de layout.
  • Les monnaies sont traitées sur un pied d'égalité (à peu près)
  • Le symbole ¤ doit être remplacer par le symbole monétaire de l'endroit ou se trouve physiquement la machine
  • Peu de touches inutilisées (3 seulement)
  • Les lettres grecques seraient peut-être plus utiles que certains symboles
  • On peut accéder aux touches Left, Up, Down, Right, Pg. Up, Pg. Down, Home, End (Notez au passage que l'on utilise généralement Home et End comme Début/Fin de ligne, d'où ma notation). Juste à coté du pavé du numérique. Le placement de ces touche peut être sujet à discussion car il ne s'agit pas de caractères et on devrait y accéder avec un modificateur du type Ctrl, Alt ou Win. Néanmoins, avec ce layout, votre clavier devient tout de suite beaucoup moins encombrant.
  • J'avoue avoir placer les lettres un peu au hasard. il faudrait faire une véritable étude sur les séquences de lettres les plus courantes en Espéranto

J'ai une seconde proposition. Cette fois-ci, le pavé numérique est sur la main gauche, ca permet de libérer de la place pour les touche de directions. Ainsi, les touche de directions sont identiques en minuscules et en majuscule. Cela permet de définir des raccourcis clavier avec Shift+direction (typiquement, la sélection de texte). En contre partie, les chiffres ne sont plus accessible sous la main droite. Au départ, c'est assez difficile de s'habituer à taper les chiffres avec la main gauche (surtout que la main gauche s'occupe aussi de gérer les modificateurs), mais, c'est un mal pour un bien. Cela permet d'encore mieux équilibrer les mains.

┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬───────┐
│ |¦ │ {≤ │ [« │ ¢† │ £‡ │ ¤∏ │ _¬ │ #∘ │ \√ │ =≠ │ &  │ ]» │ }≥ │  ◄═   │
│ %‰ │ <“ │ (‘ │ $§ │ €∞ │ ¥∑ │ -∅ │ *× │ /÷ │ +± │ @∫ │ )’ │ >” │       │
├────┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬─────┤
│ |<   │ :¶ │ ?¿ │ !¡ │ Bß │ ŬÐ │ JY │ Ĵ↟ │ Ĉ↞ │ Ŝ↑ │ Ĝ↠ │ ~˙ │ ˘ˇ │     │
│ >|   │ ;1 │ ,2 │ .3 │ b0 │ ûð │ jy │ ĵ↟ │ ĉ↞ │ ŝ↑ │ ĝ↠ │ ´° │ `¸ │ ◄═╝ │
├──────┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┐    │
│ lvl3  │ Uα │ Iβ │ Aγ │ EX │ OQ │ TW │ C↡ │ S← │ N↓ │ M→ │ ĤØ │ ^˝ │    │
│ lvl3  │ u4 │ i5 │ a6 │ ex │ oq │ tw │ c↡ │ s← │ n↓ │ m→ │ ĥø │ ¨¯ │    │
├─────┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴────┴────┤
│  ▲  │ "• │ Gµ │ Pπ │ Rª │ VŒ │ ZÆ │ Dþ │ F¼ │ K½ │ L¾ │ H∆ │     ▲     │ 
│  ║  │ '… │ g7 │ p8 │ r9 │ vœ │ zæ │ dÞ │ f© │ k® │ l™  │ h∂ │     ║     │
└─────┴────┴────┴────┴────┴────┴────┴────┴────┴────┴────┴────┴───────────┘

Je l'ai implémenté ici. Copiez-le dans /usr/share/X11/xkb/symbols et tapez setxkbmap eo pour l'utiliser.