KubuntuBlog

Un seul hetre vous manque et tout est des peupliers.

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

lundi 9 octobre 2006

Un point sur le multi-ecran

Introduction

Nous allons voir dans ce billet comment utiliser deux écrans, mais d'une manière un peu particulière puisque ma carte graphique n'a qu'une seule sortie[1] ! L'astuce est simple, il s'agit d'ajouter une 2ème carte graphique et de configurer Xorg de manière à utiliser les deux pour le même bureau.

Avant de se lancer dans les manipulations que nous allons voir, il est fortement conseillé de :

  • ne pas avoir peur de la ligne de commande (vous allez la visiter)
  • de savoir configurer un serveur Xorg (dpkg-reconfigure, xorg.conf)
  • de connaitre un éditeur en mode texte (vi, nano...)
  • et d'avoir du temps et de la patience devant soit :)

Enfin, avant de vous lancer, lisez tout pour bien comprendre la procédure, allez lire les liens (surtout celui-la) et mémorisez les moyens de s'en sortir. Disposer d'un autre pc avec accès internet n'est pas une mauvaise chose.

DualDesktop, Xinerama ... késako ?

Commençons par définir rapidement les termes que vous allez rencontrer dans ce billet :

DualDesktop, multi-bureau

Vous avez deux bureaux différents, un sur chaque écran. La souris peut se déplacer de l'un à l'autre, mais pas les applications (impossible d'étaler Gimp sur les deux écrans[2]). Vous disposez de deux barres de tâches, deux menus ...

DualScreen, multi-écran, bureau étendu

Vous disposez d'un seul bureau qui occupe les deux écrans. Les applications peuvent déborder de l'un à l'autre et vous ne disposez que d'une barre de tâches. Xinerama est un mode qui permet cela.

Le mode Clone

Ce mode permet de dupliquer votre bureau sur deux écrans. Il est utile pour les portables ou pour faire de la videoprojection par exemple.

Carte Video avec deux sorties

Evoquons tout de même cette possibilité. Certaines cartes disposent d'une double sortie graphique (par exemple VGA/DVI).
Si votre carte est une nvidia, je vous renvois vers le TwinView Wiki Ubuntu-fr ou vers le récent article de Racoon publié sur ce même planet.

Si votre carte est une ATI, deux possibilités s'offrent à vous :

  • avec les drivers propriétaires[3] (fglrx) voyez du coté de Big-Desktop et aticonfig
  • avec les drivers libres (ati/radeon), renseignez-vous sur MergeFB

Dans tous les cas, allez lire ce très bon tutorial sur ubuntuforum

Notons enfin que seul ce genre de cartes permettent d'avoir une accéleration 3D en même temps que deux écrans.

Deux cartes graphiques

La carte que vous allez ajouter à votre PC n'a pas besoin d'être une foudre de guerre. Elle ne servira qu'en 2D sur un écran généralement plus petit. Une vieille carte PCI avec 4 ou 8Mo sera largement suffisante. J'ai acheté une S3 Virge sur eBay pour 6€ port compris.
Attention si vous envisagez une Matrox, voyez ci-dessous
Dans ce billet nous utiliserons :

  • ATi Radeon 9000/PRO en AGP avec le driver libre radeon
  • S3 Virge/DX 4Mo en PCI avec le driver libre s3virge

La nouvelle carte

Pour tester votre nouvelle carte, le plus simple est de l'utiliser d'abord en tant que carte unique. Cela nous permettra aussi de faire la configuration Xorg pour celle-ci.

Attention : Commencez par sauvegarder votre fichier de configuration actuel ! Nous allons tout casser !

cd /etc/X11
sudo cp xorg.conf xorg.conf.MonoScreen_Radeon

Copiez le ailleur pour prévenir toute erreur de manipulation. Voyez aussi ci-dessous la section En cas de problème.

Configurez votre BIOS pour qu'il prenne une carte PCI comme adaptateur graphique principal (plutôt que AGP). Chez moi c'est dans :

  • PNP Configuration
  • Primary Graphic Controler
  • PCI ou AGP

Démarrez alors normalement. Si tout se passe bien, Ubuntu va détecter le nouveau materiel et configurer Xorg pour qu'il utilise cette nouvelle carte[4]. Si non, rebootez en recovery mode et reconfigurez votre serveur X :

dpkg-reconfigure xserver-xorg
reboot

Vous devez alors avoir l'interface graphique sur votre deuxième écran uniquement.
Copiez la nouvelle configuration :

cd /etc/X11
sudo cp xorg.conf xorg.conf.MonoScreen_S3

Mixons donc tout cela

Vous avez donc deux fichiers mono-écran que nous allons regrouper en un fichier multi-écrans. Créez en un nouveau à partir d'un :

sudo cp xorg.conf.MonoScreen_Radeon xorg.conf.DualScreen_Radeon_S3

Il y a 4 sections qui sont utiles dans notre cas :

  • Device : La carte graphique
  • Monitor : L'écran
  • Screen : Le câble entre les deux :)
  • ServerLayout : L'organisation de notre serveur

Recopiez intelligement ces sections d'un fichier à l'autre. Vous devez obtenir quelque chose qui ressemble à cela mais sur une seule colonne (Attention, j'ai enlevé la majorité des lignes pour ne garder que l'esprit du fichier !) :

# Les cartes graphiques
Section "Device"                    Section "Device"
   Identifier "Radeon 9000"           identifier "S3 Inc. ViRGE/DX"
   Driver     "radeon"                driver     "s3virge"
   BusID      "PCI:1:0:0"             busid     "PCI:0:9:0"
EndSection                          EndSection

# Les ecrans ( Attention aux fréquences ! )
Section "Monitor"                    Section "Monitor"
  identifier  "DPlus 230SB"            identifier  "Flatsys"
EndSection                           EndSection

# Les liens entre tout cela : Carte/Ecran
Section "Screen"                    Section "Screen"
  Identifier "Ecran de gauche"        Identifier "Ecran de droite"
  Device     "Radeon 9000"            Device     "S3 Inc. ViRGE/DX"
  Monitor    "DPlus 230SB"            Monitor    "Flatsys"
EndSection                          EndSection

# L'aspect général de notre serveur Xorg
Section "ServerLayout"
  Identifier "Default Layout"
  Screen 0 "Ecran de gauche" 0 0
  Screen 1 "Ecran de droite" rightof "Ecran de gauche"
  # rightof peux être remplacé, voir : man xorg.conf
EndSection

Note: les identifiants Screen X dans la section Device, souvent préconisés ne sont nécessaire qu'en cas de carte avec deux sorties

Je met à disposition tous les fichiers que j'ai fait au fur et à mesure de mes tests. Ils devraient tous fonctionner, mais je ne garantis rien. Lisez le readme.

Redemarrez Xorg, vous devez alors avoir deux bureaux ! Votre ancien sur l'écran de gauche et un nouveau à droite. Pour avoir un bureau étendu, ajouter ces lignes :

Section "ServerFlags"
  option     "Xinerama" "true"
EndSection

Et mon ancienne Matrox ?

Je dispose d'une Millenium I[5] de bien meilleure qualité qu'une S3. Malheureusement elle n'est pas au mieux pour le dual screen :

  • il FAUT que la carte principale soit PCI, donc le PC boot sur le 2ème écran
  • l'extension Xvideo n'est pas supportée par cette génération, donc pas de video sur le 2ème écran

Bref c'esr rédibitoire :(

Les Scrinechoutes

Et pour ceux qui ont eu le courage d'aller jusque la, voici quelques images :
D'abord une photo des deux écrans en mode bureau étendu. Remarquez la vidéo à cheval sur les deux : Capture Et la capture d'écran correspondante[6]. On remarque une zone noire innaccessible situé en dessous de l'écran de droite. En effet, celui-ci à une résolution moindre que l'autre. Capture Enfin, les même en mode DualDesktop : Capture

En cas de problème

De multiples problèmes peuvent apparaître au cours de ces manipulations. Il serait étonnant que vous ayez Xorg qui fonctionne tout au long de vos tests. Voici donc quelques pistes :

  • Pour restaurer votre configuration originale :
cd /etc/X11
sudo cp xorg.conf.MonoScreen_Radeon xorg.conf
  • si possible ayez un autre PC connecté au réseau. Il est très agréable de garder un éditeur (Kate) ouvert avec le xorg.conf et le fichier de log. De même google et les forums de ubuntu-fr sont vos amis
  • Les logs de Xorg sont dans /var/log/Xorg.0.log et /var/log/Xorg.0.log.old. Pour en extraire les lignes d'erreurs utilisez :
grep -E "WW|EE" /var/log/Xorg.0.log
  • Pour tester votre (non) acceleration graphique :
glxinfo |grep rendering
glxgears -printfps
  • Pour reconfigurer votre serveur Xorg, rebootez en recovery mode à partir du menu de Grub et entrez
dpkg-reconfigure xserver-xorg
  • Vous n'avez pas besoin de redémarrer votre PC à chaque fois, Ctrl+Alt+Backspace tue votre serveur X. sudo pkill kdm[7] vous renvoi vers la ligne de commande tapez alors startx pour repartir
  • Pour lister les cartes graphiques et leurs identfiant PCI (pour BusId) :
lspci |grep VGA  # ou
Xorg -scanpci
  • Conservez vos fichiers MonoScreen, la prochaine fois que vous voudrez de la 3D, vous y reviendrez ;)

Liens connexes

Pour aller plus loin :

Notes

[1] si l'on omet la sortie TV

[2] en fait je crois que c'est un mauvais exemple, il semble que justement Gimp le permet

[3] C'est mal ;)

[4] votre ancien fichier est alors automatiquement sauvegardé

[5] ma 1ère belle carte graphique :)

[6] réalisée avec Ksnapshot

[7] ou gdm

A lire absolument.

25 ans seulement ...

Ca se passait comme cela...

vendredi 6 octobre 2006

bash: prendre un fichier au hasard dans un répertoire

Suite à une question dans les forums de linuxfr, j'ai recherché et retrouvé comment tirer aléatoirement un fichier sur N.
Je colle la méthode ici afin de la retrouver facilement.

#!/bin/bash
array=($(ls /images))
echo ${array[$(expr $RANDOM % ${#array[@]})]}
  • array=($(ls /images)) : instancie un tableau
  • ${#array[@]} : sa taille
  • expr $RANDOM % N : nombre aléatoire sur 0..N-1

Et pour mémoire, un super cours de bash

mercredi 4 octobre 2006

0x1E

Voila, voila, c'est mon age aujourd'hui.

On a beau dire, ca fiche quand même un coup :)

lundi 2 octobre 2006

Jeux pour les nostalgiques

Pour rester dans la petite thématique jeux qui a cours sur le planet ces derniers temps, je voulais vous faire ressortir vos vieilles disquettes du temps de dos.

De nombreuses solutions existent pour faire fonctionner des programmes dos sous Linux. Il y a bien sur le très connu Wine (surtout pour windows) ou le nom moins célèbre FreeDOS qui lui est un système d'exploitation à part entière[1]. Il faut bien entendu aussi évoquer Cedega une couche d'émulation payante.

Une autre solution est dosbox. Elle à la particularité d'être très facile à mettre en place.
Je ne vais pas détailler l'installation et la configuration, mais vous renvoyer vers le Wiki qui dispose d'un article très bien fait.
Vous souvenez-vous de cet excellent jeux ?

Capture ecran

Enfin, si comme moi vous étiez fan de point-and-click et en particulier des jeux Lucas Arts il vous faut essayer scummvm un environnement libre permettant d'éxecuter ceux ci sans passer par une émulation DOS.
Aaaah Sam & Max Hit the road ...

Capture ecran

Et si vos disquettes d'origines ne sont plus lisibles, jetez un oeil du coté de l'AbandonWare

Notes

[1] nécessite un redémarrage, à moins de le faire tourner dans Bochs ou Qemu ;)

vendredi 29 septembre 2006

Cité dans le planet KDE

J'ai remarqué un referer que je n'ai pas l'habitude de voir. Après recherche, j'ai découvert que j'avais été cité sur le planet KDE.

Suite à mon billet sur la synthèse vocale, j'ai laissé un commentaire sur un blog ou j'avais trouvé des infos. Hors ce blog est syndiqué dans le planet KDE et l'auteur s'est fendu d'un petit post pour relayer mon commentaire.

Merci à lui et j'espère que parmis les nouveaux visiteurs certain aurons trouvé mon billet utile.
Pour ma fierté personnelle, j'ai fait une petite capture d'écran : Capture d'ecran

PS: j'ai aussi découvert grace à ce blog une autre possibilité de faire la conversion texte/phonèmes pour le français. Il s'agit de cicero. Je vais essayer de tester ca rapidement pour le comparer à LliaPhon.

mercredi 27 septembre 2006

[KDE] Katapult : un lanceur commandé au clavier

IconeAprès mon gros billet sur la synthèse vocale, voici un plus léger sur une petite application dont je ne peux plus me passer.

Katapult est un lanceur d'applications intégré à Kubuntu[1]. Il tourne en tache de fond et est appelé à la demande par l'appui sur Alt+Espace. Une fenêtre apparaît alors et vous commencez à taper un nom d'application. Katapult va alors chercher dans votre menu[2] ce qui correspond aux premières lettres entrées. Une fois la bonne trouvée, vous tapez Entrée et Katapult se charge de démarrer le programme nécessaire.
Quand vous avez les mains sur le clavier, vous pouvez alors lancer n'importe quelle application (et plus, voir ci-dessous) présente dans votre menu sans toucher à la souris.

Par exemple, si vous faîtes Alt+Espace puis A M A, il va vous proposer de lancer amaroK. Capture d'ecran

Mais Katapult ne se contente pas de chercher dans le menu K, il peux aussi via plusieurs plugins :

  • se comporter comme une calculatrice
  • chercher dans les bookmarks (et lancer le navigateur)
  • ouvrir un dossier dans le répertoire de l'utilisateur
  • chercher dans la base de musique d'amaroK (quand celui-ci est démarré)[3]

Pour le configurer (des/activer des plugins, changer de skin...) tapez Ctrl+C une fois Katapult affiché et choisissez Configurer dans le menu contextuel. Capture d'ecran

Capture d'ecran

Pour conclure, voici quelques petits liens utiles :

  • Le wiki pas très fournit pour le moment
  • Les forums ou les developpeurs interviennent assez souvent
  • Les bugs recensés dans la version actuelle
  • Son entrée dans kde-apps

Bref, Katapult enlarge your productivity et permet de réduire d'au moins 42.4% l'usure de votre souris. Pourcentage qui peux monter à 67.9% selon les raccourcis claviers que vous utilisez en plus (Alt+F4, Ctrl+Alt+F1, Ctrl+Alt+Backspace ...) Mais attention, c'est une drogue, une fois essayé, vous ne pourrez plus vous en passer !

Et pour ceux qui, comme moi, en sont devenus dépendants, mais sont scotchés sous windows au boulot, je leur propose de regarder Launchy[4].

Notes

[1] et bientôt directement dans KDE

[2] et même ailleurs

[3] mais c'est cassé dans la version actuelle

[4] lui aussi en GPL

lundi 25 septembre 2006

Gonfler ses stats

Blogger, la plateforme de blogs de google.

Ils ont beaucoup de blogs hébergés chez eux ? Normal faut s'enregistrer pour poster un commentaire !

Du coup j'ai un nouveau blog chez eux ;)

PS: normalement on peux s'identifier avec son adresse gmail, mais c'est en béta et ... c'en est une vraiment une !

dimanche 24 septembre 2006

Synthèse vocale en français sous Linux

Généralités

Icone Il existe de nombreuses solutions pour faire de la synthèse vocale sous Linux (aussi appelée TTS). La plupart est du à des universitaires. Nous allons en étudier une puis voir comment l'intégrer dans KDE.

NB: que les puristes de la synthèse vocale pardonnent mes approximations, les cours que j'ai suivis commencent à dater ;)

Le principe général est à partir d'un texte brut :

  1. le traiter de manière à le transformer en entités élémentaires appelées phonèmes
  2. ajouter des informations de prononciation (durée, accent tonique ...) : c'est la prosodie
  3. créer un fichier vocal en concaténant les sons pré-enregistrés correspondants aux phonèmes ou diphones[1]

Pour plus de détails, je vous renvoi vers Wikipedia ou vers ce document pdf.

Les principaux moteurs de synthèse vocale sous Linux sont :

  • epos : Czech et Slovak
  • FreeTTS : en Java, US English
  • festival / flite : English, Spanish and Welsh
  • mbrola : un nombre incoyable de voix/langues, mais non libre

C'est tout de même ce dernier que nous allons utiliser.

le moteur de synthèse : mbrola

mbrola est un synthétiseur de parole multi-langage malheureusement non libre mais tout de même gratuit[2]. Il a l'avantage de fonctionner facilement et surtout de disposer de nombreuses base de diphones.

Pour l'installer, il vous faut télécharger les binaires ainsi que au moins une base de diphones. Vous vous retrouvez alors avec des fichiers zip :

  • mbr301h.zip : qui contient les binaires
  • fr1-990204.zip, fr2-980806.zip ... : avec les voix

Nous allons installer ceci dans /opt pour ne pas polluer notre système : Mbrola

sudo mkdir /opt/mbrola
cd /opt/mbrola
sudo chown jjl:jjl . # changez cela si vous êtes en multi-utilisateurs
unzip /home/jjl/sources/install/mbrola/mbr301h.zip
unzip /home/jjl/sources/install/mbrola/fr1-990204.zip
unzip /home/jjl/sources/install/mbrola/fr2-980806.zip
ln -s mbrola-linux-i386 mbrola # selon votre architecture

Maintenant testons le fonctionnement :

./mbrola fr1/fr1 fr1/TEST/trenet.pho trenet.wav
mplayer -really-quiet trenet.wav

cela devrait donner ceci :


Hum, il semble que le neolao player ai du mal sur ce morceau :( alors qu'il passe très bien dans XMMS

Si vous voulez éviter de créer un .wav à chaque fois, essayez ceci :

./mbrola fr2/fr2 fr2/TEST/hier.pho -.au | aplay

C'est assez impressionnant. Mais, autant vous prévenir tout de suite, nous n'obtiendrons pas cette qualité. La qualité de la diction proviens pour une grosse part de la prosodie, qui est très difficile à obtenir automatiquement. Nous allons quand même continuer ;)

La découpe en phonèmes : lliaphone

mbrola attends un fichier de phonème. Il nous faut donc un autre programme qui transforme du texte brut en phonèmes avec informations de prosodie. Nous allons utiliser lliaphon qui est distribué sous licence GPL. Il est dérivé de Lia_Phon initialement développé par Frederic Bechet et spécifique au français.

Commencez par télécharger et décompresser la version 0.4. Nous allons l'installer avec mbrola dans /opt :

cd /home/jjl/sources/install/mbrola/lliaphon-0.4
./configure --prefix /opt/mbrola/lliaphon 
make
make install

Pour tester, nous allons utiliser un script fourni avec lliaphon :

cd /opt/mbrola/lliaphon
echo "Bonjour, je suis un ordinateur.">/tmp/test.txt
export MBROLA_VOICE=/opt/mbrola/fr2/fr2
export PATH=$PATH:/opt/mbrola/
./bin/lliaphon /tmp/test.txt
./bin/play_ola /tmp/test.ola

Vous devriez entendre quelque chose dans ce genre :

Intégration dans KDE : kttsd

KDEaccKDE offre une manière élégante de lire du texte affiché à l'écran : KTTS . Voyons comment mettre ceci en place :

sudo apt-get install kttsd ksayit
  • kttsd est le démon qui s'occupera de la communication avec le backend de synthèse
  • KSayIt une petite application permettant de lire un document que l'on tape
  • La synthèse vocale sera aussi intégrée à Konqueror et à Kate[3]

Commençons par créer un script qui enchaîne les différentes étapes :

$ cat > /opt/mbrola/tts :
#!/bin/sh
echo $1 | iconv -f UTF-8 -t ISO_8859-1 > $2
/opt/mbrola/lliaphon/bin/lliaphon $2 > /tmp/log 2>&1
/opt/mbrola/mbrola -e -t 0.75 \
      -I /opt/mbrola/lliaphon/share/lliaphon/initfile.lia \
      /opt/mbrola/fr2/fr2 \
      `echo $2|sed s/\.txt$/\.ola/` $3 >> /tmp/log 2>&1
^D
$ chmod u+x /opt/mbrola/tts

Pour configurer ktts, deux solutions :

  • à partir de KSayIt : Settings/Configure KSayIt/Launch Control Center
  • en lançant kttsmgr à partir de la ligne de commande

Puis nous allons configurer kttsmgr pour qu'il utilise le couple lliaphon/mbrola :

  • Talkers / Ajouter / Langue: autre / Synthesizer: Show all - commande

Capture d'écran

  • Choisir la langue dans la fenêtre qui apparaît
  • Entrez la commande : /opt/mbrola/tts %t %f %w

Capture d'écran

Et voila, relancez Konqueror et vous avez maintenant une option pour lire le texte séléctionné : Capture d'écran Et vous entendez :

Quelques mots sur festival

festival est un moteur de synthèse vocale complet et open-source. Mais il ne fonctionne pas directement en français même s'il semble possible d'arranger cela (voir ci-dessous) Pour l'installer :

sudo apt-get install festival

Pour le tester :

echo "hello, I'm a computer"  | festival --tts

Vous pouvez aussi l'utiliser très facilement avec KTTS.

Bonus : lire les titres d'un flux RSS

Je me suis amusé à faire un petit script python qui récupère un flux rss et en fait un mp3. Il nécessite :

  • la bibliothèque feedparser qu'il vous suffit de décompresser dans le même répertoire que mon script,
  • lame pour l'encodage mp3,
  • et lliaphon / mbrola bien entendu :)

Pour l'utiliser c'est très simple :

$ ./rss2mp3.py
usage: ./rss2mp3.py <RssFeedUrl> [NbTitles]
        exple: ./rss2mp3.py http://kubuntu.free.fr/blog/rss.php 5
        création d'un mp3 des titres des 5 derniers articles de mon blog

Vous pouvez le télécharger la : rss2mp3.py
Si vous avez installé dans d'autres répertoires que moi, changez les variables en début de script

Pour aller plus loin

Notes

[1] transition entre deux phonèmes

[2] plus de détails dans la licence

[3] sauf que je n'ai pas trouvé comment faire avec Kate

vendredi 15 septembre 2006

Je veux aller en Bretagne

jeudi 14 septembre 2006

Une mise à jour qui casse Xorg

Il semblerai que la dernière mise à jour de sécurité du noyau (2.6.15-26.47) pose problème avec les drivers propriétaire nvidia et dans une moindre mesure ati. Après redémarrage, le serveur Xorg ne redémarre pas et une erreur est affichée en rapport avec les pilotes nvidia.

Le bug est référencé dans Launchpad et une solution semble déjà trouvée et devrait être dispo sous 24h (voir à la fin du bug sus-cité) En attendant, des solutions alternatives sont dispo dans les forums :

En ce qui concerne les cartes ATI, seule la 3D semble ne plus fonctionner. Voir ce post par exemple.

Edit: La correction est disponible, un simple upgrade devrait résoudre le problème.

Voila pour les faits.

Maintenant mes reflexions personnelles :

Voici une autre preuve que les drivers propriétaires c'est MAL ! Les drivers libres n'ont pas de problème.
La réactivité des développeurs est très bonne : 12h pour avoir la correction dans le 1er cas, 1h pour avoir une proposition de solution dans le second[1].

C'est la deuxième fois en moins d'un mois que le serveur graphique ne démarre plus suite à une mise-à-jour. Pour la première, je ne jette pas la pierre, tout le monde fait des erreurs et il semble que c'était un cas particulier. Mais la répétition dans un si court intervalle de temps me pose un cas de conscience !

Comment un gros problème comme cela peut passer au travers des tests de validation ? Je n'imagine pas que Canonical ne dispose de plusieurs machines, de configuration materielles diverses, pour tester les patchs avant de les deployer ! En plus une carte graphique nvidia, ce n'est pas une configuration exotique !

Oui, je suis conscient que valider des patchs c'est fastidieux et qu'il est beaucoup plus amusant de coder. J'ai fait assez de ces deux activités pour être d'accord. Mais quand on propose une distribution qui se veux à la fois LTS et grand public, la validation est un passage OBLIGATOIRE.
On peux alors objecter : faille dans le noyau, urgence à corriger ! La encore, je réponds NON : une distribution grand public ne peux pas se permetre de laisser les utilisateurs sur le carreau. D'autant que les failles n'ont pas l'air d'être des plus grosses[2].

Que pensera le débutant[3] qui en 1 mois va voir son Linux en rade 2 fois ? Car soyons clairs, se retrouver en ligne de commande dans ces cas, c'est être en rade complète ! Quels débutants savent éditer le fichier xorg.conf, utiliser lynks pour aller sur les forums, downgrader son noyau[4] ? J'ai très peur que ce genre de cas ne dégoute à jamais de Linux. Et ce n'est pas ca qui va résoudre le Bug #1.

Cela dit, les risques sont limités, uniquement pour les gens qui utilisent les drivers propriétaires et qui ont fait les mises-à-jours dans le mauvais intervalle de temps.

Bref, je suis toujours content de ma distribution et je ne vais pas la quitter de sitôt, mais ces deux graves problèmes si rapprochés me laissent un sale goût dans la bouche.

PS: merci de laisser les trolls dormir en paix

Notes

[1] on verra dans combien de temps c'est réellement corrigé

[2] failles locales, modules spécifiques d'iptables...

[3] c'est pas péjoratif hein

[4] bon, booter sur l'ancien c'est facile

mardi 12 septembre 2006

Une seule instance de gmplayer

Voici rapidement, une petite astuce à deux balles.

J'utilise gmplayer pour lire mes videos[1]. Mais celui-ci a un petit problème : à chaque click sur une vidéo dans konqueror[2], il m'ouvre une nouvelle instance et rale parcequ'il y en a déjà une[3]

Malgrés mes recherches, je n'ai pas trouvé de moyen de configurer gmplayer pour qu'il ouvre la nouvelle vidéo dans l'instance existance[4].

Le contournement ? Tuer l'instance déjà présente avant de lancer la nouvelle. Pour cela il suffit de changer la ligne de commande de gmplayer dans Konqueror :

  • Configuration / Configurer Konqueror / Associations de fichiers.
  • Choisir un type de vidéo (video/avi par exemple) cliquer sur Mplayer movie player puis sur Modifier.
  • Il ne vous reste plus qu'a changer la ligne de commande par

killall -s SIGUSR1 gmplayer ; gmplayer
et voila !

configurer konqueror

Notes

[1] On peux aussi utiliser Kmplayer qui est très bien, question d'habitude

[2] On doit pouvoir adapter cela à Nautilus, Rox-Filer...

[3] certains drivers video ne supportent pas plusieurs instances

[4] ce que font pourtant très bien kaffeine et vlc

dimanche 3 septembre 2006

Cherokee : une alternative simple à Apache

Introduction

IconeCherokee est un petit serveur web écrit en C et ne dépendant que de la libC. Même si ses fonctions sont limités par rapport au mastodonte Apache, il est largement suffisant pour un serveur web personnel. Il supporte quand même la plupart des fonctions de base que l'on peux attendre d'un serveur web dans un environnement non professionnel[1]. Nous pouvons citer :

Enfin, sa légèreté lui permet de fonctionner facilement sur des machines un peu anciennes.

Installation

La manière la plus facile est d'installer la version située dans les dépots dapper. Pour cela, un simple sudo apt-get install cherokee suffit sans problème.

Mais la version disponible est la 0.4.29, version assez ancienne, qui souffre d'un certain nombre de bugs et semble aussi avoir une faille de sécurité[2] :-o Pour contrer cela, j'ai réalisé un petit backport de la version disponible dans Edgy, à savoir la 0.5.4 qui est la dernière stable disponible. Pour ceux qui sont intéressés, vous trouverez les détails en fin d'article.

Pour l'installer, téléchargez les paquets disponibles ici et installez les avec dpkg :
sudo dpkg -i cherokee_0.5.4-1_i386.deb libcherokee-base0_0.5.4-1_i386.deb libcherokee-server0_0.5.4-1_i386.deb

Pointez alors votre navigateur vers http://localhost/ et vous avez accès au répertoire racine.
Les fichiers du site web sont situés dans /var/www et les fichiers de configuration dans /etc/cherokee

Configuration

Générale

Cela se passe dans le fichier /etc/cherokee/cherokee.conf. Les paramètres les plus intérressants sont

  • Port 80 : si vous voulez changer le port d'écoute par défaut
  • Listen 127.0.0.1 : à commenter pour que le serveur soit accessible de l'extèrieur
  • User et Group : qui définissent l'utilisateur qui execute le serveur

La configuration des différents sites se fait dans des fichiers sous /etc/cherokee/sites-available. Il ne seront accessibles que si un lien pointe vers eux dans /etc/cherokee/sites-enabled. Vous disposez au départ de deux fichiers default et example.com. Ce deuxième n'étant pas activé.

hôte virtuel

Si vous hébergez plusieurs adresses sur le même serveur, vous pouvez les configurer pour avoir des fonctionnement différents, par exemple photos.chezmoi.com ou websvn.chezmoi.com ...

Sinon, utilisez le fichier default et passez au paragraphe suivant.

Commencez par créer un fichier dans /etc/cherokee/sites-availables/ à partir du fichier example.com puis liez le dans sites-enabled :
sudo cp /etc/cherokee/sites-availables/example.com /etc/cherokee/sites-availables/photos
sudo ln -s /etc/cherokee/sites-availables/photos /etc/cherokee/sites-enabled/photos
Il devrait ressembler à cela :

Server photos.chezmoi.com {
       DocumentRoot /var/wwwphotos/ # la racine de votre galerie photo
       DirectoryIndex index.php, index.htm
       Directory / {
               Handler common
       }
       # recopiez ici la configuration de php si necessaire
}
php fcgi

Le fcgi est une évolution de cgi qui permet d'accélérer l'éxecution des scripts[3]. Commencez par installer php compilé de cette manière :
icone sudo apt-get install php4-cgi
$ php-cgi -v
PHP 4.4.2-1build1 (cgi-fcgi) (built: Apr 6 2006 09:40:55)
puis éditez le fichier du site par défaut (ou de votre hôte virtuel) :
sudo vi /etc/cherokee/sites-available/default
et remplacer les dernières lignes par celles-ci :

Extension php, php3, php4 {
       Handler fcgi {
               Server localhost:8000 {
                       Env PHP_FCGI_CHILDREN     "5"
                       Interpreter "/usr/bin/php-cgi -b 8000"
               }
       }
}

Il vous faut alors redémarrer le serveur web :
sudo invoke-rc.d cherokee restart
Vous pouvez tester que cela fonctionne en ajoutant un fichier info.php à la racine de votre site[4] :

<?php
   phpinfo();
?>

Vous pouvez aussi utiliser un fichier common.conf que vous inclurez dans les différents hôtes virtuels :

Include /etc/cherokee/sites-enabled/common.conf
Authentification

Pour une authentification simple, il suffit d'ajouter ces lignes dans votre directive Directory :

Auth Basic {
   Name "Test Login"
   Method plain {
      PasswdFile  /etc/cherokee/passwords
   }
}

Le fichier password[5] est de la forme :

user:password

Pour plus de sécurité, vous pouvez utiliser d'autres manières de conserver les mot de passe voir une Auth Digest qui évite d'envoyer les passwords en clair[6]

Pour aller plus loin ...

Il faut lire la documentation ;)

Bonus : le backport pour Ubuntu Dapper

Note: Vous pouvez vous contenter de télécharger directement les paquets binaires du backport cherokee. Cette procédure n'est la qu'a titre informatif.
J'ai simplement récupéré les paquets sources de edgy et je les ai recompilés avec ma dapper. Voici rapidement la procédure que j'ai suivie : Remplacer le dépot source universe de dapper par celui d'edgy dans /etc/apt/sources.list

par exemple par la ligne : deb-src ftp://ftp.free.fr/mirrors/ftp.ubuntu.com/ubuntu edgy universe
$ sudo apt-get update

Télécharger les sources de cherokee et compiler le paquet :

$ cd /tmp/cherokee
$ apt-get source cherokee
$ cd cherokee-0.5.4
# tant que ca ne compile pas :
  $ fakeroot dpkg-buildpackage
  $ sudo apt-get install <PaquetManquant>

Les paquets sont alors créés dans le répertoire parent et il ne reste plus qu'a les installer :)

Attention : Pensez bien à rétablir votre sources.list avec le dépot pour dapper

Notes

[1] voir même dans un professionnel si les besoins sont simples

[2] même si je n'ai pas réussit à la reproduire

[3] en bref, on dispose d'un serveur ce qui permet d'éviter des fork à chaque appel. Plus de détails ici

[4] ne le laissez pas en place après tests, il donne beaucoup trop d'informations sur votre installation

[5] ne devrait être lisible que par l'utilisateur du site web

[6] mais je n'ai pas réussit à la faire fonctionner :(

jeudi 31 août 2006

The Simpsons ... unplugged !

mercredi 30 août 2006

La stratégie de Bush expliquée aux geeks

avec l'aide de bash

< 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 >