Test de Opensuse GNU/Linux 10.0

En avant propos, je tiens à dire que je suis un utilisateur convaincu et ravi de Suse depuis 4 ans environ et de puis la Suse 8. Je ne suis pas un fan de la dernière option de la dernière version du dernier soft qui vient de sortir, mais je demande plutot à mes systèmes d’être stable, de tourner 24/24 et de me fournir les outils nécessaire à mon utilisation : development web/java/vhdl/c/c++, bureautique de base et internet. Voila pour le cadre de façon général. Coté existant en place j’ai actuellement 2 serveurs en suse 9.0 + 1 serveur et 1 poste de travail en suse 9.2. A l’occasion d’un crash, dont vert de honte, je vous tairai la cause, je suis passé en Suse 10 ; j’en profite pour livrer mes premières impressions :

Comme a l’habitude, je n’aime pas bien utiliser les distributions sur CD :

  • Parce que changer les cd c’est chiant
  • Parce que ca coute
  • Parce que donner 1.5 euro aux auteurs compositeurs pour graver une distribution Linux me désole
  • Parce que de toute façon les cd ne servent qu’une dizaine de fois grand max, avant d’etre obsoletes

Bref, je décide d’installer une version en réseau et fais donc comme d’habitude un mirroir de l’instal live en local pour une installation future. Là, je dois dire que j’ai rencontré ma première déception, lorsque je me suis rendu compte que je venais de télépcharger 30Go incluant les version 32bits, 64 bits, ppc … + les sources. Suse m’a habitué à mieux organiser ses répertoire pour eviter celà ! La synchronisation, une fois ménage fait avec le mirroir n’est donc pas vraiment évidente avec une ligne d’exclusion dans le wget plutot gigantesque. Mais finalement s’est fait. Je grave le cd de boot et démarre l’install.

Installation réseau de le suse 10.0

Tout commence bien, jusqu’à ce que … l’installation propose un partitionnement par défaut assez interressant puisqu’il a m’a directement proposé de formater l’espace disque contenant la source de donnée … original ! Ceci étant dit, la proposition par défaut n’etant que rarement interressant, c’est juste une bonne blague qui m’aura fait sourir. Là ou j’ai moins rigolé c’est lorsque l’install a planté à cause de paramètres incohérents dans mon partitionnement, relatif à l’usage de Raid1. Car, bien sure, je venait de passer 30 minutes à faire ma sélection de packages. J’ai ensuite beaucoup moins rigolé lorsque ce même temps passé a de nouveau été perdu alors qu’en plein milieu de l’installation le disque contenant les données s’est auto-démonté … opération mystérieuse et désastreuse.

Installation CD de la Suse 10.0

Après avoir passé pas mal de temps sur de nouveau essais, j’ai dû me résoudre a passer sur une install CD. J’ai donc téléchargé et gravé les 3 premiers espérant que cela suffise. j’ai ensuite choisi une installation par défaut et j’ai une nouvelle fois été trés déçu de constater qu’il me fallait graver le cd4 pour 50 Mo et le CD 5 pour 2Mo … n’aurait-il pas été possible de mettre ces 52 Mo sur le CD 2 ou 3 alors que ceux-ci ne sont pas par défaut utilisés à 100% pour une install standard ?!?
Bref, l’installation se passe bien, mon système boote, je suis heureux .. mais jusqu’à ce que …

Les moins de la suse 10.0

Outre l’installation désastreuse, je ne suis pas satisfait par certains points :
Le dual head d’abord : avec les Suse 9.0 et 9.2, l’installation s’est passée sans problème, mes deux écrans etaient configurés de façon indépendante et leur résolution différait sans problème. Lors de l’installation, la configuration proposée par défaut n’a tout d’abord pas permie de démarrer X-Windows. Une fois reconfigurée, je suis maintenant contraint d’avoir un écran dans sa résolution normale : 1280×1024 et un second écran en virtual screen 1024×1024 car ne supportant pas de fréquence plus élevée. La configuration de Xorg ne me permettant pas de modifier cela. Outre ce problème, l’ecran primaire n’est pas mon écran principal … du coup il a été nécessaire de modifié les paramètres de kdm (GreeterScreen) pour ne pas être obligé d’alumer les deux écrans pour se logguer. Je vous ennuie avec mes cas particuliers perso mais ce que je trouve domage c’est qu’il s’agisse d’une forte régression par rapport à ce qu’apportait la version 9.2.

Second point négatif : les outils Java ne sont pas distribués dans la version de base, il est necessaire de les télépcharger à part, l’opération n’est pas très compliquée mais elle n’est pas non plus facile pour tout le monde et de fait, il n’y a pas de JRE de base ; domage pour la consultation sur Internet.

Ensuite, la Suse 10 n’est pas non plus livrée avec les outils nécessaire à la lecture de MP3 (ni de divx mais là je suis habitué). La raison est totalement louable, distribuer un player de MP3 sous GPL revient à violer un breuvet logiciel (ce qui met bien en évidence le risque pour l’open source à la généralisation des breuvet logiciel) toutefois, en Europe ces breuvet ne sont heureusement pas applicable et une version Europe avec MP3 aurait évité une fastidieuse étape de recompilation des outils livrés. La version 9.2 (et 9.0) intégrait sans aucun scrupule les librairies adéquates.

Pour l’instant j’en suis là, et j’espere que ce sera tout

Les plus de la suse 10.0

Bien sure il n’y a pas que du moins et pour preuve la distrib est toujours installé sur mon poste. Le mieux se résume tout simplement à des nouvelles versions des logiciels habituels, OpenOffice 2, noyau 2.6.13, Kde 3.4… Ca a l’air stable et les performances sont correctes mais ceci est subjectif.

En Bref

Suse m’a habitué a des version xx.0 toujours un peu moins bonnes que les xx.1, xx.2 ou xx.3. mon conseil est donc plutot d’attendre la version suivante pour une migration plannifiée mais si c’est forcé, la 10.0 fera l’affaire ; plutot à partir de cd a moins que vous ayez plus de chance que moi. Attention aux utilisateurs de dual-screen et mp3. Mais en tout cas, je reste fidèle (pour cette fois).

Pour mettre a jour votre suse avec les package (non officiel) répondant à vos besoins multimédia, voir le lien “Custom” ci-contre …

Débits résaux sans fils

Tout ça pour se rappeler que les débits du sans fil sont à ce jour :

  • GSM : 9.6 KBit/s
  • GPRS : 56 KBit/s
  • EDGE : 100 à 200 KBits/s
  • UMTS : 384 KBits/s
  • EV-DO : 400 à 700 KBit/s
  • HSDPA : 1 à 4 MBit/s
  • WIFI : 11 à 54 Mbit/s
  • WIMAX : 35 à 50 Mbits

Sécurité des répertoires cache de navigateurs

Recemment, en me baladant sur un système utilisé par de nombreux utilisateurs, j’ai pu me rendre compte que certains softs créent leur répertoires avec par défaut des droits plutot dangereux … autorisant n’importe qui a en lire leur contenu. Ceci est d’autant plus idiot que nul n’a besoin de consulter ce répertoire purement applicatif !

Dans le présent cas, je me suis surtout penché sur mozilla, qui peut contenir des informations personnelles très pertinentes retraçant tous vos faits et gestes sur Internet ! Toutes les versions ne semblent pas se comporter de la même manière quant aux droits donnés au réprtoire .mozilla mais sur certaines, les droits RX sont bien donnés à tous. Dans ce cas, et pour peut que l’on puisse au moins traverser le répertoire home de l’utilisateur, il est simple de consulter son historique et la liste de ses cookies, informations qui peuvent être trés parlantes…

Il est donc à mon avis important de bien veilleer aux droits par défaut de certaines applications !!

Je vous livre un petit script d’analyse permettant de mettre en evidence ce problème éventuel : #!/bin/sh
liste=`ls -l /home/ | tr -s ” ” | cut -b 10- | grep ^x | cut -d ” ” -f 8 |column`
for user in $liste
do
file=”/home/$user/.mozilla/default”
if [ -d $file ] && [ -r $file ]; then
histo=`find $file -name “history.dat” 2> /dev/null`
cookie=`find $file -name “cookies.txt” 2> /dev/null`
echo $user :
if [ $histo != “” ] && [ -n $histo ] ; then
cat $histo | grep “=http://” | sed -e “s/=http://([^)]*)).*/1/”
fi
if [ $cookie != “” ] && [ -f $cookie ] ; then
cat $cookie | cut -f 1 | grep -v “^#”
fi
fi
done

Configuration MRTG, création de mesures

MRTG, le célèbre outil de monitoring réseau peut être utilisé pour suivre n’importe quel indicateur système pour peu qu’on lui fournisse les bonnes données… voici un exemple avec un monitoring de la mémoire utilisée :

Tout d’abord pour trouver la mémoire totale et la mémoire utilisée, il nous faut écrire un petit script basé sur la commande free -m. Ce script extrait la mémoire totale et la mémoire utilisée, soit la mémoire totale – mémoire libre – mémoire cache :

#!/bin/bash
MemTotal=`free -m | head -2 | tail -1 | tr -s ” ” | cut -d ” ” -f 2`
MemUse=`free -m | head -3 | tail -1 | tr -s ” ” | cut -d “:” -f 2 | cut -d ” ” -f 2`
echo $MemUse
echo $MemTotal
echo “0 day(s)”

Il se termine par l’affichage des deux valeurs sur la sortie standard suivi d’un temps d’uptime de 0 jour par défaut. Ce format de sortie est celui attendu par MRTG.
La première ligne indique la valeur à utiliser pour la ligne de graphique bleue ; la seconde est utilisée pour tracée l’air de graphique verte.

Pour terminer, il faut paramétrer MRTG et donc modifier mrtg.conf en ajoutant une entrée comme suit :

Target[linux_mem]: `../bin/memory`
Title[linux_mem]: MEMORY LOAD
PageTop[linux_mem]: Memory LOAD Mo
WithPeak[linux_mem]: dwmy
Unscaled[linux_mem]: ymwd
ShortLegend[linux_mem]: Mo
MaxBytes[linux_mem]: 1024
YLegend[linux_mem]: Stat Memoire
LegendI[linux_mem]: Memoire utilisee:
LegendO[linux_mem]: Memoire totale:
Legend1[linux_mem]: Memoire utilises en Ko
Legend2[linux_mem]: Memoire total en Ko
Legend3[linux_mem]: Pic de mémoire utilisée
Legend4[linux_mem]: Pic de mémoire totale
Options[linux_mem]: growright, integer, nopercent, gauge

La première ligne contient le chemin absolue vers la commande à lancer pour obtenir les données du graphique.

SQL, caractères spéciaux et code d’échappement

Dans une chaine de recherche type LIKE en SQL, les caractères % et _ servent respectivement à indiquer {n’importe quelle chaîne} et {n’importe quel caractère} hors il arrive de devoir rechercher ces caractères qui doivent donc être précédé d’un code d’échapement.
Ce code est fixé en ajoutant après le LIKE la commande ESCAPE suivi du caractère d’échapement.

Par exemple : recherche une chaîne contenant le caractère % suivi de _ : SELECT … WHERE … LIKE ‘%\%\_%’ ESCAPE ‘\’

Limitation mémoire de Php

La config de PHP par défaut limite la taille mémoire à 8Mo ; lors de traitement PHP d’image par exemple, cette limitation ne permet pas d’aboutir au résultat attendu et le serveur retourne une erreur comme celle-ci :

Fatal error: Allowed memory size of 8388608 bytes exhausted…

La solution est d’augmenter la limite par defaut en modifiant le fichier /etc/php.ini de configuration de PHP. La variable en cause est memory_limit qu’il faudra passer à une valeur plus grande.

Installation de l’environnment de dev pour SPARTAN (Xilinx) sous linux

Après avoir reçu mon kit Spartan-3 de Xilinx 🙂 🙂 … sur lequel j’aurai bien l’occasion de revenir par ailleurs, je découvre avec un enorme plaisir que CA Y EST ! Xilinx fournit une version Linux de son outil de développement. Après deux an d’abstinence coté FPGA, snif, je suis heureux de faire ce retour aux sources sur mon environement favori !

Avant tout, j’ai réalisé l’installation sur une distribution Suse 9.2 avec un noyau 2.6.8.

Après téléchargement depuis le site de Xilinx des fichier adéquat : WebPACK_71_fcfull_i.sh, j’ai du faire quelques manips avant de lancer l’install :

  • Autoriser l’ouverture de display : xhost +
  • Passer root : su
  • modifier l’export par : export DISPLAY=:0

Pour enfin lancer le script d’install ; celle-ci bloque quelques secondes après la validation du répertoire cible mais rien de grave, l’installation continu quelques instants plus tard. A noter que les librairie OpenMotif doivent être installées (libXm.so.3)
En fin d’installation, les choses se compliquent : les drivers parallèle et usb de programmation sont compilés pour des noyau 2.4 il faut donc procéder à une petite recompilation manuelle …

1. Installer tout ce qu’il faut sur Linux

En premier lieu, il vous faudra installer les sources du noyau à l’aide de yast. Ensuite, les manip suivantes doivent être faites :

  • cd /usr/src/linux
  • make cloneconfig
  • make prepare

Il faut ensuite donner les droits à qui de droit sur le port parallèle (pour utilisation future) :

  • chmod a+rw /dev/parport0 (par exemple)

2. Télécharger les sources du driver

Les sources sont ici ou alors en version alégée et deja modifiée . Préférez le premier liens ou celui-ci au cas où…
La décompression des sources est classique : tar -zxvf fichier.tgz
Enfin, allez dans le répertoire adéquat normalement linuxdrivers/xpc4drvr/

3. Modification des sources

Si vous avez la version allégée et modifiée des sources, tout est dejà fait sinon, il y a quelques points rapide à réaliser :

  • Supprimer le Makefile pour le remplacer par celui-ci
  • Editez xpc4.c et remplacer #include par #include <config/modversions.h>
  • Ajoutez ensuite à la suite des includes le suivant : #include
  • Pour les noyau 2.6.1x et/ou suse 10, il faudra aussi mettre en commentaire les lignes contenant les macros MOD_INC_USE_COUNT et MOD_DEC_USE_COUNT

4. Compilation et installation

Etape finale : compiler le driver, simplement par la commande make
Pour charger le driver, il suffira alors en temps que root de taper la commande insmod ./xpc4drv.ko
Le driver peut enfin être copié là où l’installation le place normalement à savoir dans le répertoire /lib/modules/misc.

5. Le driver windrv6

Il a fallu attendre quelque temps, mais ce driver propriétaire est enfin compatible avec les noyaux 2.6. Il faudra le télécharger à l’adresse suivante : jungo.com. Le site demande une inscription. La version que j’ai utilisé est une 7.1. L’installation se fait après décompression en alant dans le répertoire WinDriver/redist.
1. Lancer ./configure
Rq du 13/11/05 : Les modifications qui suivent ne semblent plus nécessaires avec la version 7.2 du driver.
2. éditer le makefile et changez :
2.a. KERNEL_DIR= /usr/src/linux/
2.b. Supprimer tous les -I… de la ligne CFLAGS
2.c. Ajouter en début de CFLAGS -I../include -I/usr/src/linux/include -I/usr/scr/linux/include/asm-i386/mach-default/
3. compiler : make install

Une version dejà modifiée du Makefile est ici
Le driver est ensuite à copier manuellement dans le repertoire /lib/modules/misc. Il sera lancé par /sbin/insmod /lib/modules/misc/windrvr6.ko.

6. Utilisation

Pour la suite, il reste à lancer iMPACT et la détection automatique à partir du boundary scan s’est bien passée pour ma part. La programmation fonctionne.

Configuration de mod_rewrite et mod_jk pour fonctionner ensemble

Suite à la mise en oeuvre de l’url rewriting sur un site, j’ai rencontré des problèmes avec mod_jk. En effet, dans le process standard, après traitement des url par mod_rewrite, les nouvelles url générées ne sont pas passées à mod_jk. La solution consiste simplement (mais il faut se palucher la doc !) à faire suivre la règle RewriteRule du flag [PT] comme Path Throught qui permet de refaire passer le requete par les autres modules. Ceci s’applique donc à mod_alias et co.

Mise à jour en 2009 ; apres avoir connu des soucis avec le [PT] devenu [P,T] pour fonctionner correctement, me revoila à devoir utiliser [PT]… Cette fois le symptome etait etrange : avec [P,T] le dernier site de la liste ne fonctionnait pas alors que les autres marchaient bien eux… La configuration est apache 2.2.9 et tomcat 5.5 ! allez comprendre !