Botchchikii

Détails de l'auteur

Nom : botchchikii
Date d'enregistrement : 28/11/2011
URL: http://blog.wolf.am

Derniers articles

  1. Art Libre a besoin de nous ! — 10/07/2012
  2. Xcache, accelerateur de PHP — 29/11/2011
  3. Logrotate : faites tourner vos logs — 27/11/2011
  4. Shotwell, gestionnaire de photos — 04/07/2011
  5. Awesome WM — 25/04/2011

Articles de cet auteur

juil 10

Art Libre a besoin de nous !

Dans le monde vaste des licences libres, il en existe une qui tient une place à part. Alors que la plupart concernent principalement les logiciels (je vous invite à lire cette page qui en recense un certain nombre), peu s’occupent de la liberté des œuvres non logicielles. Art Libre est l’une d’elles.

S’il faut définir la licence Art Libre (LAL), permettons nous de citer le préambule de cette licence :

« Avec la Licence Art Libre, l’autorisation est donnée de copier, de diffuser et de transformer librement les oeuvres dans le respect des droits de l’auteur.

Loin d’ignorer ces droits, la Licence Art Libre les reconnaît et les protège. Elle en reformule l’exercice en permettant à tout un chacun de faire un usage créatif des productions de l’esprit quels que soient leur genre et leur forme d’expression.

Si, en règle générale, l’application du droit d’auteur conduit à restreindre l’accès aux oeuvres de l’esprit, la Licence Art Libre, au contraire, le favorise. L’intention est d’autoriser l’utilisation des ressources d’une oeuvre ; créer de nouvelles conditions de création pour amplifier les possibilités de création. La Licence Art Libre permet d’avoir jouissance des oeuvres tout en reconnaissant les droits et les responsabilités de chacun.

Avec le développement du numérique, l’invention d’internet et des logiciels libres, les modalités de création ont évolué : les productions de l’esprit s’offrent naturellement à la circulation, à l’échange et aux transformations. Elles se prêtent favorablement à la réalisation d’oeuvres communes que chacun peut augmenter pour l’avantage de tous.

C’est la raison essentielle de la Licence Art Libre : promouvoir et protéger ces productions de l’esprit selon les principes du copyleft : liberté d’usage, de copie, de diffusion, de transformation et interdiction d’appropriation exclusive. »

La dénomination du site Internet ne laisse aucun doute sur la démarche des créateurs de cette licence : « Copyleft Attitude ». J’ai découvert Art Libre dès les premiers moments de ma découverte des licences libres, alors que j’en étais au choix de la licence pour le contenu proposé par Peuple Loup. À cette époque, j’avais opté pour une licence plus « sexy », la Creative Commons CC-BY-SA. La raison de l’éviction de la LAL dans ce choix ? le terme « Art ». Je ne considérais pas mon contenu comme étant de l’art et trouvais donc son choix hors de propos. Une discussion postérieure avec Antoine Moreau, le papa de la LAL, me fit changer d’avis et depuis 2008, tout Peuple Loup est sous cette licence.

Pourquoi la licence Art Libre est elle meilleure qu’une licence Creative Commons ? Question trollesque, je vous vois venir avec vos gros sabots ! Je ne peux parler qu’en mon nom, et je n’aime pas plus que ça mettre en conflit les uns avec les autres. C’est un choix personnel, issu de mon parcours, de rencontres et de ressenti. Pour moi, la LAL offre une clarté dans sa démarche. Il n’y a qu’une LAL, contrairement aux légos CC qui permettent à peu près tout mais qui au final embrouillent plus qu’autre chose. « Placé sous Creatives Commons », c’est joli, mais souvent quand on va plus loin, on se retrouve avec un contenu non modifiable et non commercialisable (CC-BY-SA-NC-ND), donc pas libre… Ce qui fait qu’on se fait poser souvent la question sur notre contenu : « Ok, c’est une CC, mais on a le droit de recadrer la photo ? »).

J’ai parlé de rencontres aussi, et c’est une bonne part de mon attachement à la licence. J’ai fait connaissance avec Antoine Moreau, via la liste de discussion, j’y ai relaté un problème technique sur leur site internet et j’ai pu participé à sa résolution. C’est finalement la même raison qui me fait utiliser Frugalware : ce sont des projets humains, où l’on a le sentiment que l’on peut contribuer à notre niveau et où les contacts sont agréables et amicaux. C’est si rare dans ce bas monde ! J’aime l’idée de faire partie d’un groupe et pas seulement être un numéro dans un listing.

Alors, pourquoi un tel sujet sur Art Libre sur ce blog, même si la licence rentre parfaitement dans la thématique ? Parce que l’aventure continue. J’ai encore une fois l’occasion de donner un petit coup de main technique à Art Libre. Le site Art Libre n’est pas un modèle de simplicité dans sa conception, cela rend les mises à jour très stressantes et les outils gérant la liste des œuvres et des auteurs sont tout simplement obsolètes. L’idée de base est de migrer les œuvres et les auteurs sur un système MediaWiki, un peu sur le modèle de Wikimedia Commons, adapté bien sur aux spécificités d’Art Libre. Alors comme j’aime bien ce genre de défi, j’y vais avec plaisir mais je n’ai ni la qualification ni le temps pour tout monter tout seul et des avis et contributeurs extérieurs seraient un plus indéniable pour un travail collégial.

Collégial, ça ne veut pas dire que moi et Antoine :p J’ai quelques idées qu’il faudrait fouiller, mais comme l’a toujours souhaité Antoine, c’est par une reflexion collective qu’on arrivera à avancer. C’est pour ça qu’une liste de discussion technique a été montée et que toutes les bonnes volontés seront les bienvenues pour donner un coup de pouce à Art Libre ! (je vous préviens, y a du boulot !). Alors, j’espère que la communauté du Libre sera fidèle à sa réputation et que quelques uns viendront apporter leurs connaissances, et pourquoi pas mettre leurs œuvres sous licence LAL.

Je vous fais suivre l’appel lancé sur la liste de diffusion d’Art Libre, en espérant que celui-ci trouvera réponse.


Bonjour tout le monde,

c’est visible : le site artlibre.org a besoin d’un rafraîchissement, surtout pour sa partie auteur http://users.artlibre.org
et œuvres http://oeuvres.artlibre.org

Fait aux petits oignons avec l’aide de Tangui Morlier il y a 5 ans nous avons besoin de quelque chose de plus dynamique et d’évolutif et qui ne
pose pas de problème pour les mises à jour du WordPress.

Depuis plus de 2 ans Mickael Brangeon de http://peupleloup.info me donne un sacré coup de main pour la maintenance du site vu sa configuration
particulière. Son idée pour faire évoluer le site et ses bases de données : migrer « users » et « oeuvres » vers un mediawiki https://www.mediawiki.org/wiki/MediaWiki/fr

C’est une solution pérenne et qui offrirait une vitrine plus claire et plus praticable pour les auteurs et pour les visiteurs d’artlibre.org. Nous avons besoin d’aide.

Si vous êtes calés en mediawiki et autres compétences pour l’avenir dynamique du site artlibre.org une liste a été créée pour discuter des questions techniques.

Pour s’y abonner : techno-subscribe@artlibre.org

Merci et à très bientôt !


Bonne journée _o/

Lien Permanent pour cet article : http://www.terranux.net/?p=862

nov 29

Xcache, accelerateur de PHP

Je vous reviens pour vous parler d’un outil que j’ai ajouté sur mon serveur. Je n’ai pas encore suffisamment de retour pour voir concrétement son efficacité, mais s’il est aussi efficace qu’il le prétend, il fera partie des indispensables.

Xcache est un accélerateur PHP, également appelé cache Opcode. Selon le site, il optimise les performances en supprimant le temps de compilation des scripts PHP en mettant en cache l’état compilé des scripts PHP dans la RAM et utilise la version compilée directement à partir de la RAM. Cela permettra d’accroître le taux de temps de génération de page jusqu’ à 5 fois car il optimise également de nombreux autres aspects de scripts php et réduit la charge serveur.

Bon, ça me parait appétissant et j’ai lu sur ce billet que ça semble efficace. Comme Maikan héberge pas mal de blogs Wordpress, je me dis que ça vaut le coup de tenter le truc.

ALors l’installation sur Frugalware est toujours aussi simple car Xcache est dans les dépots.

  pacman -S xcache

Il faut ensuite parcourir le fichier de configuration. Contrairement à ce que dit l’article cité plus haut, celui ci n’est pas dans /etc/php5/conf.d/xcache.ini. En lisant la documentation du paquet (merci au passage à Pingax de me l’avoir indiqué), il faut faire une manipulation pour intégrer la configuration de Xcache dans son /etc/php.ini

  cat /usr/share/doc/xcache-1.3.2/xcache.ini >> /etc/php.ini

Au final, je n’ai pas énormément modifié la configuration. Au fil des tests, j’aurais peut-etre quelques réglages à faire, on verra. J’ai juste modifié la façon de charger l’extension xcache.so, qui était de base installé comme zend extension et que j’ai préféré charger comme une extension normale.

J’ai également ajouté un compte admin avec un mot de passe pour profiter de l’interface web. À ce sujet, j’ai suivi le principe d’alias du tutoriel mais je n’avais pas accès, surement à cause d’un problème de droit. Comme je n’aime pas trop le principe de lier le contenu de /usr/share sur mon serveur, j’ai juste copier le contenu de /usr/share/xcache/admin/ dans un dossier de mon serveur web et tout est impeccable. Après les modifications, il faut bien sur relancer lighttpd.

  systemctl restart lighttpd.service

Alors, il reste à voir si Xcache va changer la vie des visiteurs. Pour le test, vous pouvez visiter les blogs de Drine, Dirreve et Bob, ce sont tous des Wordpress. Sinon, peupleloup.info tourne sous Spip et devrait profiter également de Xcache.

Bonne journée à vous _o/

Lien Permanent pour cet article : http://www.terranux.net/?p=45

nov 27

Logrotate : faites tourner vos logs

Après quelques ennuis hier soir sur le serveur, j’ai du éplucher les logs… Ce qui m’a fait un peu halluciner en listant /var/log/ car certains fichiers sont monstrueux en taille ! syslog, et debug faisaient plus du giga chacun. Un fichier de cette taille ne peut donc pas décemment etre lu sans planter, il a fallu remédier à cela. De plus, l’espace disque s’en ressent fortement.

J’avais eu connaissance de logrotate il y a quelque temps, mais je n’avais pas pris le temps de le mettre en place. C’est donc le moment.

Pour l’installation, il suffit sur Frugalware de faire un petit pacman -S logrotate. Le fichier de configuration se trouve dans /etc/logrotate.conf et un dossier /etc/logrotate.d est crée.

Suite à mes recherches sur le net, j’ai trouvé quelques liens intéressants que je vous livre au fil de ce billet. J’ai personnellement modifié le fichier de configuration en pompant allégrement sur ce billet :

  ## logrotate.conf (logrotate)
  #
  # Par FHH le 30 / 08 / 2009
  #
  # Description
  #       Fichier de configuration de logrotate.
  #
   
  # Les logs sont compréssé avant rotation :
  compress
  # Fréquence de rotation par défaut :
  weekly
  # La rotation est effectuée, par défaut, même si le fichier est vide afin de faciliter 
  # les recherches dans les logs au jour le jour
  ifempty
  # Par défaut, une rotation par semaine est effectuée. 52 semaines par an, nous conservons donc
  # une profondeur de 52 semaines, ça laisse un an de log.
  rotate 52
  # En parallèle, si une archive est agée de plus de 52 semaines, elle est détruite :
  maxage 52
  # Envois par mail du fichier sur le point d'expirer.
  maillast
  # Le fichier sur le point d'expirer est envoyé à l'adresse définie ici.
  mail root@wolf.am
  # Si l'un des journaux décrit est manquant, aucune erreur n'est remontée.
  missingok
  # Insertion de la date dans l'archivage des journaux.
  dateext
  # Lors de l'archivage de plusieurs fichiers de logues, les scripts pre et post rotate sont 
  # exécuté une fois par fichier. L'option "sharedscripts" fixe l'exécution de ces scripts à
  # une seule fois.
  sharedscripts
  # Lors d'une rotation, un fichier de remplacement est créé avec les droits 0640 appartenant à 
  # root et au groupe root.
  create 0640 root root
  # Toutes les archives sont stockées dans /var/log/archives.
  olddir /mnt/backup2/log
  # Inclusion des scripts propres aux logs.
  include /etc/logrotate.d

Le fichier est suffisamment commenté pour comprendre comment il fonctionne. Une option qui est importante pour moi est de sauvegarder les rotations sur mon disque dur externe avec la fonction olddir. Ces paramètres généraux peuvent etre surchargés par les règles spécifiques à chaque log.

En effet, le plus important maintenant est de créer les régles, que l’on placera dans le répertoire /etc/logrotate.d. Un fichier par règle, que l’on nommera par le service affecté.

Lighttpd

  /var/log/lighttpd/*.log {
      notifempty
      olddir /mnt/backup2/log/lighttpd
      create 640 nobody nobody
      postrotate
          systemctl restart lighttpd.service > /dev/null
      endscript
  }

Prosody

  /var/log/prosody/*.log {
      notifempty
      olddir /mnt/backup2/log/prosody
      postrotate
          systemctl restart prosody.service > /dev/null
      endscript
  }

Syslog

Ce fichier est normalement déjà présent et permet de faire une rotation des logs les plus volumineux.

  /var/log/cron /var/log/debug /var/log/maillog /var/log/messages /var/log/secure /var/log/spooler /var/log/syslog {
      compress
      rotate 4
      postrotate
  	/bin/kill -HUP `cat /var/run/syslogd.pid 2>/dev/null` 2>/dev/null || true
      endscript
  }

Fail2ban

  /var/log/fail2ban.log {
      notifempty
  }

Vsftpd

  /var/log/vsftpd.log {
      notifempty
      postrotate
          systemctl restart vsftpd.service > /dev/null
      endscript
  }

Log des sites hébergés

Pour chaque domaine géré par lighttpd, je fais une rotation des logs également.

  /mnt/backup1/log/lighttpd/peupleloup.info/*.log {
      notifempty
      olddir /mnt/backup2/log/lighttpd/peupleloup.info
      create 640 nobody nobody
      postrotate
          systemctl restart lighttpd.service > /dev/null
      endscript
  }

Test et Mise en place du Cron

Avant de valider tout ça, il vaut mieux tester ce que ça donne, comme le conseille Marius.

  logrotate -d /etc/logrotate.conf

J’ai ensuite lancé logrotate en mode forcé pour me libérer de tous ces logs si volumineux avec un «  logrotate -f« . Ce qui m’a permis de gagner plus de 3go sur / !

Normalement, Frugalware fait tout le boulot à l’installation, et vous devriez avoir dans /etc/cron.daily/ un fichier nommé logrotate, contenant la commande pour lancer cet outil :

  #!/bin/sh
  
  /usr/sbin/logrotate /etc/logrotate.conf

Et voilà, bonne journée. Si je suis motivé, je vous parlerais de l’installation de Fail2ban et Denyhosts, pour bannir les méchantes Ip qui viennent pourrir votre serveur \o/

Lien Permanent pour cet article : http://www.terranux.net/?p=34

juil 04

Shotwell, gestionnaire de photos

Trouver un gestionnaire de photothèque a toujours été difficile pour moi. J’ai souvent changé de logiciel : Gthumb a tenu la marée quelque temps, alors que F-Spot ne correspond pas du tout à ce que j’attends. Ce que j’attends ? pouvoir trier, manipuler, renommer et faire des réglages simples sur des lots d’images. Pouvoir éviter de lancer Gimp et me taper toutes les photos une par une. Cette façon de travailler me vient de mes errances au Québec : peu de temps disponible pour retoucher des images et une certaine impatience à publier ce que j’avais vu durant mes vadrouilles.

Justement, c’est au moment où je me replonge dans la masse de mes photos que je me suis reposé la question existentielle du choix de l’outil idéal. En effet, durant le projet, je n’ai pas pu mettre en ligne l’intégralité des photos, par manque de temps et d’une connexion correcte. Le problème est que maintenant, j’aimerais bien tirer parti de tous ces clichés… répartis entre mon ordinateur, deux disques durs externes et des centaines de dossiers aux noms peu éclairants ! Après quelques tests et lectures d’avis plutôt favorables, je me décide à utiliser Shotwell pour remonter une photothèque un peu mieux gérée.

La première étape est de réimporter les dossiers bruts des photos prises durant les deux ans. Je règle donc Shotwell pour lui indiquer le répertoire de ma photothèque. En passant, je choisis de cocher l’option importante pour moi « Écrire les tags, les titres et les métadonnées dans le fichier image », ce qui permet une indépendance future vis à vis du logiciel. Je choisis aussi de renommer les fichiers en minuscule, c’est une histoire de goût. Il suffit ensuite d’importer les dossiers, en choisissant l’option « Fichier / Importer un dossier ». Shotwell travaille récursivement et il suffit d’indiquer la racine du dossier d’images brutes pour qu’il prenne en compte les sous dossiers. Shotwell vous demande ensuite s’il faut copier le contenu dans votre photothèque ou seulement faire un lien. Je choisis la copie, j’ai de la place et cela regroupera toutes mes données dispersées (Je devrais faire trois importations au total).

Je me retrouve donc après l’importation, qui a duré assez longtemps (avec 4900 photos, c’était à prévoir). Le logiciel a détecté des doublons qu’il n’a pas copié. Cependant, j’en trouverais un certain nombre quand même (fichiers renommés ou modifiés). J’ai maintenant une section « Évenements » dans la colonne de gauche, avec les photos triées par date (dossiers par an, par mois et par jour). Cela permet de bien vérifier qu’il n’y a pas de trous dans l’importation, et cela donne une visualisation chronologique intéressante (et quelque peu intense lorsqu’on revoit deux ans d’une vie).

L’importation finie, c’est un travail manuel et fastidieux qui s’annonce : trier les photos en leur attribuant des tags. Cela permettra de retrouver les photos bien plus efficacement que par une recherche dossier par dossier. Certains thèmes m’intéressent particulièrement : je distingue les photos de paysages, les saisons, les photos concernant la faune ou la flore, ainsi que l’espèce photographiée. Dans un premier temps, c’est un travail rapide, pour pouvoir préciser ensuite ces thèmes généraux avec des tags plus précis.

L’avantage de Shotwell est sa rapidité. À partir de la page de vignette d’un jour de photo, je selectionne les photos que je veux tagguer, Ctrl+t (ou bouton droit tagguer), je rentre le nom du tag (qui s’autocomplète si existant) et Shotwell met à jour rapidement les fichiers. Bon, c’est long quand même ! 720 jours de projet, ça en fait des photos :p Pour l’instant, je ne me soucie pas de la qualité de la photo, j’essaie juste de ne pas tagguer les doublons qui restent.

Un autre truc de sympa, c’est le confort d’utilisation. Entre le tagguage en gros et l’identification d’un oiseau, il y a un monde. Hors vous pouvez jouer très facilement avec la taille des vignettes en maintenant Ctrl et la molette de la souris. Vous pouvez donc avoir plus de précisions sur une photo sans passer en mode unitaire (et donc perdre votre selection courante).

Après ce dur labeur, Shotwell me présente une nouvelle section, appelée « Libellés », où sont listés mes tags. À partir de là, je peux faire le tour de chaque tag et apporter des précisions, ajouter d’autres tags et donner une note à chacune des photos. Cela permettra, par le biais d’un filtrage, d’exclure les images de faible qualité. Je décide de conserver toutes les photos : une image de piètre qualité peut avoir une utilité informative. Il faut juste que je puisse les masquer lors de présentations.

Il est intéressant de noter que Shotwell permet auss quelques retouches basiques. La rotation bien sur, mais aussi le réglage de luminosité, la saturation et la teinte. Il y a aussi un script d’amélioration automatique de l’image, mais je ne l’ai pas trouvé très efficace. Cela permet de faire quelques retouches en même temps que la notation des photos. Pour les photos qui mériteraient une retouche plus profonde, je les taggue « Retouches » par exemple et je pourrais les retrouver facilement pour les reprendre avec Gimp.

À ce stade, j’ai déjà pu retrouver des photos sympas qui n’avaient pas été publiées, j’ai pu agrandir ma collection d’empreintes et de crottes de loups :p et j’ai la possibilité maintenant de montrer aux enfants un panel beaucoup plus important de photos de tout type. Dans la foulée, j’ai réalisé le même travail pour les photos du premier projet, ce qui me permet maintenant de pouvoir tirer parti de ces 4800 photos sans trop de difficultés \o/ C’est tout de même dommage de faire des photos si c’est pour qu’elles se perdent dans les profondeurs de nos dossiers de sauvegarde !

Un bonus non négligeable de Shotwell est de proposer la publication de photos sur des galeries web connues (Flickr, Picasa Web Album, Facebook,…) et même sur une galerie Piwigo, tout cela très facilement.

Au final, je suis très satisfait de Shotwell. J’avoue que sans lui, je n’aurais peut-être pas eu le courage de trier toutes ces photos. C’est pourquoi je lui dédie cet article, en espérant que cet outil vous serve autant qu’à moi :)

Lien Permanent pour cet article : http://www.terranux.net/?p=35

avr 25

Awesome WM

Cela faisait un petit moment que mon système tournait sous Wmii et j’en étais bien satisfait. Cependant, il faut bien du changement de temps en temps et j’ai décidé d’aller voir ailleurs. Après une hésitation entre Wmfs et Awesome, j’ai opté pour ce dernier. Cela fait maintenant plusieurs semaines que je suis dessus et je vais vous en faire un petit topo !

Le concept

Awesome fait partie de la famille des gestionnaires de fenêtres de type « Tiling ». Comme Wmii ou Wmfs, le concept principal est d’occuper tout l’écran, quelque soit le nombre d’applications ouvertes ( clients ). Ce type de fonctionnement implique en général une forte utilisation du clavier ( Tout est gérable sans la souris, même s’il reste tout à fait possible d’utiliser cette dernière ) et une plus grande implication au niveau de la personnalisation de la configuration ( et un temps d’adaptation pour s’approprier l’outil ).

Awesome est codé en LUA, language que je connais peu mais dont Kooda me dit le plus grand bien ! Un language un peu plus complexe à « lire » que d’autres, cela compte pour la configuration du gestionnaire. Pour les plus doués d’entre vous, Awesome propose une API très complète qui doit permettre d’en connaître toutes les facettes. Au niveau de la documentation, on en trouve assez difficilement, même si un wiki est disponible. Une des raisons à cette difficulté est due aux changements assez radicaux qui ont pu être fait entre les versions ( 3.4.9 sur Frugalware actuellement ). Mefiez vous donc lors de vos recherches et vérifiez bien de quelle version d’Awesome parle l’article car cela peut donnes quelques surprises !.

Exemples de manipulation au clavier

  • Mod+f place la fenêtre active en plein écran.
  • Mod+Return lance un terminal
  • Mod+p pour lancer une application
  • Mod+Tab bascule entre les derniers clients (fenêtres) focusés.
  • Mod+j,k pour basculer le focus entre les fenêtres
  • Mod+h,l pour augmenter ou diminuer la largeur de la fenêtre active.
  • Shift+Mod+h,j,k,l pour déplacer la fenêtre active (h: gauche, j: bas, k: haut, l: droite)
  • Mod+1,9 bascule entre les tags.
  • Shift+Mod+1,9 envoie la fenetre active au tag N.

L’installation et les fichiers importants

Pour installer Awesome, cela dépendra de votre distribution bien sur. Sur Frugalware, un petit pacman -S awesome sera suffisant. Il est également possible d’utiliser une version en développement en clonant leur GIT.

Le fichier principal d’Awesome est son rc.lua. Il doit être placé dans ~/.config/awesome/. Lors de la première installation, vous n’en avez pas et vous devez le copier l’original :

  cp /etc/xdg/awesome/rc.lua ~/.config/awesome/rc.lua

Comme dit plus haut, il y a eu beaucoup de changements durant l’évolution d’Awesome, et je conseillerais de commencer de cette façon et non de copier « bêtement » un rc.lua trouvé sur le net : vous risquez de planter le bouzin ! Le fichier est bien commenté et après appropriation, vous serez à même de modifier ce qui vous convient et de piocher des morceaux sur le net, notamment en ce qui concerne les widgets.

Mise en place dans Slim

Pour pouvoir utiliser Awesome, il suffit de rajouter la session awesome à votre bootmanager. voici la section du fichier de configuration de slim.

# /etc/slim.conf
login_cmd           exec /bin/sh - ~/.xinitrc %session
   
# Available sessions (first one is the default).
# The current chosen session name is replaced in the login_cmd
# above, so your login command can handle different sessions.
# see the xinitrc.sample file shipped with slim sources
sessions            wmii,openbox,xfce4,e17,wmaker,awesome

Et le fichier ~/.xinitrc qui permet de basculer entre vos WM. Il peut être nécessaire d’y ajouter l’export de la lanque pour pouvoir écrire les caractères accentués dans le terminal

export LANG=fr_FR.utf8
# the following variable defines the session which is started if the user doesn't explicitly select a session
         
DEFAULT_SESSION=awesome
             
case $1 in
             
xfce4)
    exec startxfce4
    ;;
wmaker)
    exec wmaker
    ;;
e17)
    exec enlightenment_start
    ;;
openbox)
    exec openbox-session
    ;;
awesome)
    exec awesome
    ;;
                                                         
wmii)
    exec wmii
    ;;
*)
    exec $DEFAULT_SESSION
    ;;
esac

Détail du fichier de configuration

Je vais vous détailler par morceaux les points importants du rc.lua. Prenez ce qui vous fait envie !

Librairies

  -- Standard awesome library
  require("awful")
  require("awful.autofocus")
  require("awful.rules")
  
  -- Theme handling library
  require("beautiful")
  
  -- Notification library
  require("naughty")

Ces lignes sont les premières du fichier et sont nécessaires au bon fonctionnement d’Awesome. Elles correspondent aux librairies LUA dont dépend le gestionnaire. Vous pouvez trouver d’autres librairies, qui permettent d’autres fonctionnalités ( comme le tagging dynamique ) sur cette page. La librairie « beautiful » permet de spécifier un thème. Vous pouvez trouver des thèmes tout fait sur cette page du wiki.

Paramètres par défaut

  -- This is used later as the default terminal and editor to run.
  terminal = "urxvt"
  editor = os.getenv("EDITOR") or "vim"
  editor_cmd = terminal .. " -e " .. editor
  
  -- Default modkey.
  -- Usually, Mod4 is the key with a logo between Control and Alt.
  -- If you do not like this or do not have such a key,
  -- I suggest you to remap Mod4 to another key using xmodmap or other tools.
  -- However, you can use another modifier like Mod1, but it may interact with others.
  modkey = "Mod4"

Nous abordons ensuite le paramétrage par défaut, comme le choix du terminal et de l’éditeur de texte, ainsi que la touche « magique » qui va servir pour la majorité des raccourcis claviers qui permettront de manipuler les clients et la navigation dans le WM. Mod4 correspond à la touche « Super ». Si vous préférez la touche « Alt », modifiez pour mettre « Mod1″.

Tags

  -- {{{ Tags
  -- Define a tag table which hold all screen tags.
  tags = {
      names = { "[1:net]", "[2:mail]", "[3:jabber]", "[4:twitter]", "[5:files]", "[6:office]", "[7:medias]", "[8:root]", "[9:ssh]"},
      layout = { layouts[2], layouts[2], layouts[4], layouts[2], layouts[1], layouts[1], layouts[2], layouts[2], layouts[2] }
      }
  
  for s = 1, screen.count() do
      -- Each screen has its own tag table.
      tags[s] = awful.tag(tags.names, s, tags.layout)
  end
  -- }}}

Dans Awesome, il existe une caractéristique très intéressante. Les habitués des systèmes GNU/linux connaissent bien les bureaux virtuels (workspaces) qui permettent de séparer certaines applications et alléger l’écran. Awesome possède cette fonction mais l’associe avec des tags. D’origine, ces tags sont numérotés de 1 à 9 mais il est possible d’attribuer des noms à ces tags (plus simple de s’y retrouver. Il est également possible de spécifier un layout spécifique à chaque tag. Un layout est un mode d’affichage prédéfini. Awesome en propose plusieurs :

floating tile tile.left tile.bottom
tile.top fair fair.horizontal spiral
spiral.dwindle max max.fullscreen magnifier

Vous pouvez donc associer un de ces layouts à un tag en particulier ( nous le verrons à la section concernée ). Et comme vous pouvez associer des applications à un tag, cela permet de gérer au mieux le positionnement de vos applications.

Menu

  -- {{{ Menu
  -- Create a laucher widget and a main menu
  myawesomemenu = {
     { "manual", terminal .. " -e man awesome" },
     { "edit config", editor_cmd .. " " .. awful.util.getdir("config") .. "/rc.lua" },
     { "restart", awesome.restart },
     { "quit", awesome.quit }
  }
  
  mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
                                      { "open terminal", terminal }
                                    }
                          })
  
  mylauncher = awful.widget.launcher({ image = image(beautiful.awesome_icon),
                                       menu = mymainmenu })
  -- }}}

C’est le menu qui s’affiche en cliquant sur le logo d’Awesome en haut à gauche, ou en cliquant sur le bouton droit sur le bureau. Je ne l’ai pas personnalisé, n’en ayant que peu d’usage ( sauf pour recharger Awesome après une modification du rc.lua ).

Wibox

  -- {{{ Wibox
  -- Create a textclock widget
  mytextclock = awful.widget.textclock({ align = "right" })
  
  -- Create a systray
  mysystray = widget({ type = "systray" })

C’est ce qui permet de placer des widgets à votre barre awesome, comme l’heure, un systray et plein d’autres choses. Je ne vous colle pas tout car les codes sont en général assez volumineux. Vous pouvez trouver des exemples de widgets ici.

À noter qu’il y a deux parties importantes pour l’affichage des widgets. La première est celle où l’on inscrit le code du widget, la seconde, plus bas dans le code, où l’on appelle le widget dans la wibox et détermine l’ordre d’apparition. N’invoquez pas un widget que vous n’avez pas défini dans la première section ( commentez les indésirables ) :

   -- Create the wibox
      mywibox[s] = awful.wibox({ position = "top", screen = s })
      -- Add widgets to the wibox - order matters
      mywibox[s].widgets = {
          {
              mylauncher,
              mytaglist[s],
              mypromptbox[s],
              layout = awful.widget.layout.horizontal.leftright
          },
          mylayoutbox[s],
          s == 1 and mysystray or nil,
          --tb_volume,
          mytextclock,
          --batinfo,    
          meminfo,
          --cputemp,
          cpuinfo,
          mytasklist[s],
          layout = awful.widget.layout.horizontal.rightleft
      }

Raccourcis claviers

  -- {{{ Key bindings
  globalkeys = awful.util.table.join(
      awful.key({ modkey,           }, "Left",   awful.tag.viewprev       ),
      awful.key({ modkey,           }, "Right",  awful.tag.viewnext       ),
      awful.key({ modkey,           }, "Escape", awful.tag.history.restore),
  
      awful.key({ modkey,           }, "t",
          function ()
              awful.client.focus.byidx( 1)
              if client.focus then client.focus:raise() end
          end),
      awful.key({ modkey,           }, "s",
          function ()
              awful.client.focus.byidx(-1)
              if client.focus then client.focus:raise() end
          end),
      awful.key({ modkey,           }, "w", function () mymainmenu:show({keygrabber=true}) end),
      awful.key({ "Control"}, "e", function () awful.util.spawn("firefox") end),
      awful.key({ "Control"}, "q", function () awful.util.spawn("claws-mail") end),
      awful.key({ "Control"}, "t", function () awful.util.spawn("gajim") end),
      awful.key({ "Control"}, "è", function () awful.util.spawn("hotot & hotot & hotot") end),
      awful.key({ "Control"}, "k", function () awful.util.spawn("rednotebook") end),
      awful.key({ "Control"}, "l", function () awful.util.spawn("libreoffice") end),
  
      -- Layout manipulation
      awful.key({ modkey, "Shift"   }, "t", function () awful.client.swap.byidx(  1)    end),
      awful.key({ modkey, "Shift"   }, "s", function () awful.client.swap.byidx( -1)    end),
      awful.key({ modkey, "Control" }, "t", function () awful.screen.focus_relative( 1) end),
      awful.key({ modkey, "Control" }, "s", function () awful.screen.focus_relative(-1) end),
      awful.key({ modkey,           }, "v", awful.client.urgent.jumpto),
      awful.key({ modkey,           }, "Tab",
          function ()
              awful.client.focus.history.previous()
              if client.focus then
                  client.focus:raise()
              end
          end),

On arrive ensuite à une partie non négligeable qui est la gestion des raccourcis claviers. Même si vous ne souhaitez pas les changer ( ceux de base sont déjà pleinement fonctionnels ), cela vous permet de les tester. Je vous conseille de pratiquer en lisant cette partie. En effet, à la lecture seule du script, il n’est parfois pas facile de savoir à quoi cela correspond. Attention ! dans mon cas précis, j’ai largement modifié ces raccourcis car je suis en clavier Bépo. Vous pouvez vois également que c’est dans cette partie que vous pouvez générer des raccourcis pour lancer des applications. J’ai choisi personnellement « Control » et une touche pour lancer Firefox, Claws-Mail et d’autres applications. Dans le cas de hotot, je lance 3 instances pour mes 2 comptes twitter et mon compte identi.ca.

   -- Standard program
      awful.key({ modkey,           }, "Return", function () awful.util.spawn(terminal) end),
      awful.key({ modkey, "Control" }, "o", awesome.restart),
      awful.key({ modkey, "Shift"   }, "b", awesome.quit),
  
      awful.key({ modkey,           }, "r",     function () awful.tag.incmwfact( 0.05)    end),
      awful.key({ modkey,           }, "c",     function () awful.tag.incmwfact(-0.05)    end),
      awful.key({ modkey, "Shift"   }, "c",     function () awful.tag.incnmaster( 1)      end),
      awful.key({ modkey, "Shift"   }, "r",     function () awful.tag.incnmaster(-1)      end),
      awful.key({ modkey, "Control" }, "c",     function () awful.tag.incncol( 1)         end),
      awful.key({ modkey, "Control" }, "r",     function () awful.tag.incncol(-1)         end),
      awful.key({ modkey,           }, "space", function () awful.layout.inc(layouts,  1) end),
      awful.key({ modkey, "Shift"   }, "space", function () awful.layout.inc(layouts, -1) end),

Ces raccourcis permettent de modifier la largeur des clients et l’importance de la fenêtre « Master ». En diminuant « incnmaster », cela permet par exemple d’avoir 3 colonnes, selon le layout choisi. Particulièrement efficace pour afficher les 3 instances d’hotot justement !

  -- Prompt
      awful.key({ modkey },            "j",     function () mypromptbox[mouse.screen]:run() end),

C’est le lanceur d’application. Essentiel dans le fonctionnement d’un WM Tiling. Cela ouvre un champ dans la barre de menu, où vous pouvez appeler vos applications. La tabulation fonctionne bien.

  clientkeys = awful.util.table.join(
      awful.key({ modkey,           }, "e",      function (c) c.fullscreen = not c.fullscreen  end),
      awful.key({ modkey,           }, "b",      function (c) c:kill()                         end),
      awful.key({ modkey, "Control" }, "space",  awful.client.floating.toggle                     ),
      awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end),
      awful.key({ modkey,           }, "o",      awful.client.movetoscreen                        ),
      awful.key({ modkey, "Shift"   }, "r",      function (c) c:redraw()                       end),
      awful.key({ modkey,           }, "t",      function (c) c.ontop = not c.ontop            end),
      awful.key({ modkey,           }, "n",      function (c) c.minimized = not c.minimized    end),
      awful.key({ modkey,           }, "m",
          function (c)
              c.maximized_horizontal = not c.maximized_horizontal
              c.maximized_vertical   = not c.maximized_vertical
          end)

Cette partie permet de passer un client en plein écran, de quitter une application, de la minimiser ou de la basculer au premier plan. La dernière partie, non collée ici, permet de naviguer entre les tags et d’envoyer un client sur un tag. Je n’ai pas fait de modification car le comportement de base est bon : Modkey n ou n= 1 à 9 (en accès direct, pas besoin de shifter pour les azertyens ou les bépoistes ). Shift Modkey n permet d’envoyer le client actif vers le tag en question. C’est la raison pour laquelle j’ai ajouté un chiffre devant mes noms de tags : d’un coup d’œil, je sais quel chiffre utiliser.

Règles

  -- {{{ Rules
  awful.rules.rules = {
      -- All clients will match this rule.
      { rule = { },
        properties = { border_width = beautiful.border_width,
                       border_color = beautiful.border_normal,
                       focus = true,
                       keys = clientkeys,
                       buttons = clientbuttons } },
      { rule = { class = "MPlayer" },
        properties = { floating = true } },
      { rule = { class = "pinentry" },
        properties = { floating = true } },
      { rule = { class = "gimp" },
        properties = { floating = true } },
      -- Set Firefox to always map on tags number 1 of screen 1.
      { rule = { class = "Firefox" },
        properties = { tag = tags[1][1] } },
      -- Set Thunderbird to always map on tags number 2 of screen 1.
      { rule = { class = "Claws-mail" },
        properties = { tag = tags[1][2] } },
      -- Set gajim to always map on tags number 3 of screen 1.
      { rule = { class = "Gajim" },
        properties = { tag = tags[1][3] } },
      -- Set pino to always map on tags number 3 of screen 1.
      { rule = { class = "Pino" },
        properties = { tag = tags[1][4] } },
      -- Set hotot to always map on tags number 4 of screen 1.
      { rule = { class = "Hotot" },
        properties = { tag = tags[1][4] } },
      -- Set libreoffice-impress to always map on tags number 5 of screen 1.
      { rule = { class = "libreoffice-impress" },
        properties = { tag = tags[1][6] } },
      -- Set Gthumb to always map on tags number 6 of screen 1.
      { rule = { class = "Gthumb" },
        properties = { tag = tags[1][7] } },
      -- Set Gimp to always map on tags number 6 of screen 1.
      { rule = { class = "gimp" },
        properties = { tag = tags[1][7] } },
      -- Set rednotebook to always map on tags number 5 of screen 1.
      { rule = { class = "Rednotebook" },
        properties = { tag = tags[1][6] } },
      {rule = {class = "urxvt"},
       properties = {opacity = 0.4} },
  }
  -- }}}

il est donc possible d’assigner des règles (rules) à une application. Principalement pour la lier à un tag mais aussi pour définir une transparence. Pour définir la « class » de l’application, utilisez xprop.

Programmes au démarrage

  -- Démarrage
  awful.util.spawn("setxkbmap fr bepo &")
  os.execute("parcellite &")
  -- }}}

À la fin du fichier, j’ai rajouté ces lignes. Vous pouvez ici indiquer à Awesome les programmes à lancer au démarrage, ou les commandes ( ici, je lance le bépo et un gestionnaire de presse-papier ).

Effets visuels

Pour que ça pète un peu plus, j’ai décidé récemment de rajouter la transparence et quelques effets visuels ( transitions des tags, menus, ombrages ). La méthode est décrite sur cette page. J’ai opté pour Cairo Composite Manager, que j’ai installé sur Frugalware avec un pacman -S cairo-compmgr et l’ajout de ce code dans la section « Librairies » du fichier ( en début ) :

  -- launch the Cairo Composite Manager
   awful.util.spawn_with_shell("cairo-compmgr &")

Par contre, cette méthode retire le fond d’écran de votre thème. Pour remédier à cela, installez feh et Awesome s’occupe de tout ensuite :

  sudo pacman -S feh
  awsetbg /emplacement/de/votre/image.jpg

et hop, tout est ok !

Liens

Lien Permanent pour cet article : http://www.terranux.net/?p=36

avr 23

MAJ du serveur vers Frugalware 1.5

Cett mise à jour, je l’ai retardé un bon moment ! Mais après 140 jours d’uptime, il fallait bien que j’y passe. Pourquoi cette hésitation ? Frugalware a choisi Systemd comme système d’init, en remplacement de sysvinit. Cela remet en question les bases du système d’exploitation, et notamment la gestion des services. Comme sur un serveur web, les services sont les fondements du fonctionnement du serveur (lighttpd, prosody, mysql, ssh, cron), cela demande une réflexion et un apprentissage du nouveau système !

En pratique par exemple, pour redemarrer le réseau, il fallait faire un

  service interfaces restart

Avec systemd, il faut faire :

  systemctl restart netconfig.service

Il fallait donc que je retrouve les correspondances de chaque service utilisé sur le serveur, pour pouvoir les gérer. À noter cependant qu’un mode de compatibilité est présent et les anciennes commandes sont encore fonctionnelles. Voici la liste des services correspondants en lancant systemctl -t service ( ce qui permet de filtrer le listing par type )

  UNIT                      LOAD   ACTIVE SUB     JOB DESCRIPTION
  crond.service             loaded active running     Cron Daemon
  dbus.service              loaded active running     D-Bus System Message Bus
  display-manager.service   loaded ESC[1;31mfailed failed ESC[0m     Display Manager
  firewall.service          loaded active exited      SYSV: iptables firewall
  getty@tty1.service        loaded active running     Getty on tty1
  getty@tty10.service       loaded active running     Getty on tty10
  getty@tty11.service       loaded active running     Getty on tty11
  getty@tty2.service        loaded active running     Getty on tty2
  getty@tty3.service        loaded active running     Getty on tty3
  getty@tty4.service        loaded active running     Getty on tty4
  getty@tty5.service        loaded active running     Getty on tty5
  getty@tty6.service        loaded active running     Getty on tty6
  getty@tty7.service        loaded active running     Getty on tty7
  getty@tty8.service        loaded active running     Getty on tty8
  getty@tty9.service        loaded active running     Getty on tty9
  gpm.service               loaded active running     Console Mouse manager
  hwclock-load.service      loaded active exited      Apply System Clock UTC Offset
  lighttpd.service          loaded active running     SYSV: Init script for lighttpd
  local.service             loaded active exited      SYSV: Local system initialization script
  mysqld.service            loaded active running     SYSV: MySQL database server.
  netconfig.service         loaded active exited      Network configurator
  prosody.service           loaded active running     SYSV: Start and stop Prosody daemon, a light and fast XMPP server
  remount-rootfs.service    loaded active exited      Remount Root FS
  rsyncd.service            loaded active running     SYSV: Start/stop the rsync server, an open source utility that provides fast incremental file transfer
  sshd.service              loaded active exited      SYSV: OpenSSH daemon
  syslog.service            loaded active running     LSB: Syslog
  systemd-...yslogd.service loaded active running     Syslog Kernel Log Buffer Bridge
  systemd-logger.service    loaded active running     Stdio Syslog Bridge
  systemd-...s-load.service loaded active exited      Load Kernel Modules
  systemd-...pi-vfs.service loaded active exited      Remount API VFS
  systemd-sysctl.service    loaded active exited      Apply Kernel Variables
  systemd-...-setup.service loaded active exited      Recreate Volatile Files and Directories
  systemd-...ssions.service loaded active exited      Permit User Sessions
  systemd-...-setup.service loaded active exited      Setup Virtual Console
  udev-trigger.service      loaded active exited      udev Coldplug all Devices
  udev.service              loaded active running     udev Kernel Device Manager
  vsftpd.service            loaded active running     SYSV: Start and stop the vsftpd server

En plus de l'implémentation de Systemd ( une page sur le [wiki de Frugalware http://wiki.frugalware.org/index.php/SystemD_(Fran%C3%A7ais)] permet de s'y retrouver ), pas mal de changements ont été apportés avec la version 1.5 de Frugalware, nommée Mores. Vous pouvez en voir la liste dans l'annonce officielle. Bien sur, tout ne concerne pas ce serveur ( notamment Gnome 3 et toutes les applications graphiques ) mais comme vous pouvez le voir sur cette capture, toutes les applications majeures ont été mises à jour ou presque. On peut rajouter également un nouveau kernel.

C'est donc ce matin que je me suis lancé. J'ai suivi le tutoriel d'upgrade présent sur le site et j'ai croisé les doigts ^^. Au final, à part un petit souci avec le remplacement de util-linux-ng par util-linux, qui m'a donné ce message d'erreur :

  checking for file conflicts (102/102)             [#######################] 100%
  error: failed to commit transaction (conflicting files)
  util-linux: /etc/mtab exists in filesystem

Résolu par Devil505 sur Irc, il m'a suffit de forcer son installation avant de relancer la mise à jour.

  pacman -Sf util-linux
  pacman -Su

Après la mise à jour, tous les services étaient opérationnels. Il ne restait plus qu'à redémarrer pour valider la mise à jour du kernel et voir comment Systemd gérait le bouzin. J'ai eu une petite frayeur au redémarrage : pas d'accès SSH et les sites internets étaient tous down ! Je pensais à la connexion réseau mais finalement, c'était le parefeu, ufw qui me faisait un caca nerveux. Après désactivation, tout était correct. Il m'a fallu remettre à zero les régles et les recréer, ce qui n'est pas bien méchant.

Voilà comment on se fait une montagne de pas grand chose finalement ! Frugalware m'a encore démontré que je pouvais avoir toute confiance dans ses développeurs. La seule chose qui déconne est Vim, mais ce devrait être résolu d'ici peu. C'est à ce moment là aussi qu'on se rend compte de l'importance ( toute relative tout de même ) d'un serveur par rapport à une machine de bureau : Les conséquences d'un plantage ne sont pas individuelles mais collectives. Le serveur hébergeant plusieurs blogs ( Drine, ActuBob, PeupleLoup et le mien ), je n'avais pas l'envie que cela parte en couille !

Lien Permanent pour cet article : http://www.terranux.net/?p=37

avr 09

Activer un video-projecteur avec Xrandr

Encore une petite astuce pour ne pas se trouver con lorsque l’on veut utiliser un vidéo-projecteur. J’ai lu pas mal de documentation qui donnait des configuration du fichien etc/X11/xorg.conf. Malheureusement, ce fichier est devenu obsolète avec les nouvelles versions de Xorg. Et finalement, ce n’est pas nécessaire.

Xrandr est un outil qui permet de gérer tout ça. Déja en faisant un petit xrandr, vous aurez des informations sur vos sorties graphiques :

  Screen 0: minimum 320 x 200, current 1366 x 768, maximum 8192 x 8192
  LVDS connected 1366x768+0+0 (normal left inverted right x axis y axis) 293mm x 164mm
     1366x768       60.0*+
     1280x720       59.9  
     1152x768       59.8  
     1024x768       59.9  
     800x600        59.9  
     848x480        59.7  
     720x480        59.7  
     640x480        59.4  
  VGA-0 disconnected (normal left inverted right x axis y axis)
  HDMI-0 disconnected (normal left inverted right x axis y axis)

Ici, LVDS est mon écran et supporte tous les modes listés. Le mode utilisé est signalé par un *. On peut voir que les sorties VGA et HDMI sont supportées mais non connectées pour le moment. À savoir que votre projecteur devrait probablement utiliser la sortie VGA, notez bien comment il est noté (ici VGA-0).

En fait pour activer le vidéo-projecteur, branchez le (non, c’est vrai ??) puis, tapez ceci :

  xrandr --output VGA-0 --mode 1024x768

Le mode 1024×768 dépend principalement des caractéristiques de votre appareil. Cependant, si votre laptop utilise une résolution différente, vous allez voir que votre image sera tronqué sur le mur. Il faut en fait passer votre ordinateur dans la meme résolution. xrandr peut faire cela facilement :

  xrandr -s 1024x768

Pour automatiser cela, j’ai crée un script dans un répertoire adéquat ( exemple ~/bin/vga.sh ) dans lequel on réunit tout ça :

  #!/bin/sh
  # Configure sortie Vga en 1024x768
  xrandr -s 1024x768
  xrandr --output VGA-0 --mode 1024x768
  exit

Il suffit ensuite de rendre le fichier executable avec un chmod +x ~/bin/vga.sh et faire un petit alias ( oui, j’aime bien les alias ! ) dans votre bashrc ou zshrc :

  alias vga="sh ~/bin/vga.sh"

En console, il suffira de taper vga pour activer le projo. Un moyen simple pour projeter votre beau bureau sous linux \o/

Lien Permanent pour cet article : http://www.terranux.net/?p=38

avr 07

Marre du touchpad ? Xinput est votre ami

Si comme moi, le touchpad de votre ordinateur portable vous fait tourner en bourrique. Si vous en arrivez, comme moi, à recourir au DuckTape et au morceau de carton pour l’éradiquer. C’est vrai quoi, c’est soulant un touchpad ! surtout quand il est de mauvaise qualité ou que vous ne vous en servez jamais. Il est toujours là pour bouger le curseur au mauvais moment ( quand on tape du texte !!! sisi, ca vous est déja arrivé ! ). Mort aux touchpads !!

Alors hier, j’ai pris la décision de lui fermer le clapet définitivement. Sans rire : un morceau de carton et du DuckTape, c’est super efficace et pas prise de tete. Un peu radical, soit. C’est ce que m’a dit JLaunay sur twitter, qui m’a proposé une solution : utiliser Xinput. Un article de son blog permet de comprendre le principe ( lisez aussi les commentaires ).

Je découvre et fais un petit xinput --list pour savoir ce qu’il y a dans le ventre de mon Hp.

  ⎡ Virtual core pointer                      id=2    [master pointer  (3)]
  ⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
  ⎜   ↳ Logitech USB Optical Mouse                id=10   [slave  pointer  (2)]
  ⎜   ↳ ImPS/2 Generic Wheel Mouse                id=13   [slave  pointer  (2)]
  ⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
      ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
      ↳ Power Button                              id=6    [slave  keyboard (3)]
      ↳ Video Bus                                 id=7    [slave  keyboard (3)]
      ↳ Power Button                              id=8    [slave  keyboard (3)]
      ↳ Sleep Button                              id=9    [slave  keyboard (3)]
      ↳ hp webcam                                 id=11   [slave  keyboard (3)]
      ↳ AT Translated Set 2 keyboard              id=12   [slave  keyboard (3)]
      ↳ HP WMI hotkeys                            id=14   [slave  keyboard (3)]

Pour ma part, le touchpad est répertorié sous l’id 13 (ImPS/2 Generic Wheel Mouse). La logitech Usb est la souris externe. En suivant l’aide de Jlaunay, je tente un

  xinput set-int-prop 13 "Device Enabled" 8 0

Et miracle, ce fichu touchpad est réduit au silence \o/ Pour réactiver le touchpad :

  xinput set-int-prop 13 "Device Enabled" 8 1

il me suffit donc de faire deux alias dans mon ~/.zshrc

  alias nopad='xinput set-int-prop 13 "Device Enabled" 8 0'
  alias pad='xinput set-int-prop 13 "Device Enabled" 8 1'

Et l’affaire est réglée. Merci encore à JLaunay pour l’aide, je n’y serais pas arrivé tout seul, et le DuckTape c’est vrai que ça fonctionne, mais c’est moins constructif !!

Edit du 27 octobre 2011

Suite au commentaire de Pat Guano, je rajoute ici un script de sa composition, qui permet la meme chose mais en beaucoup plus propre :

  #!/bin/sh
  # Désactiver le touchpad
  DNAME="Generic Wheel Mouse"
  DEV=`xinput --list | grep "$DNAME"|cut -d= -f2|cut -c1,2`
  xinput -set-prop "$DEV" "Device Enabled" 0
  exit

Je vous remets également le contenu de son commentaire (Ça s’est déjà vu que des commentaires se perdaient :/) :

Il devrait suffire d’écrire xinput set-int-prop 13 « Device Enabled » 1. En effet, c’est ici que j’ai vu la première fois le ’8′. L’idée avec les alias n’est pas mal, mais les IDs peuvent changer avec un update du système. Ça m’est arrivé. Des variables, bien placée, aident à compenser cet effet. Aussi, un script est plus facilement adaptée aux noms du «device». Alors, je favorise la version avec grep et cut:

  DNAME="Touchpad"
  DEV=`xinput --list | grep "$DNAME"|cut -d= -f2|cut -c1,2`
  xinput -set-prop "$DEV" "Device Enabled" 0`` 

Lien Permanent pour cet article : http://www.terranux.net/?p=39

oct 17

Monter un serveur sous Frugalware

Cela fait un moment que ce blog est resté inactif. Je vais lui redonner un peu de vie en vous décrivant ma première expérience pour monter un serveur «at home». Je vais commencer par vous décrire l’installation de base de l’ordinateur, pour ensuite décrire la configuration du serveur Web et des services indispensables. Ce premier essai peut motiver certains à se lancer dans l’hébergement maison et ainsi contrôler intégralement leurs publications.

Installation de la base

Pour servir de base à mon beau serveur, j’ai décidé d’installer Frugalware, une distribution légère, stable et que je commence à connaître. Pour apporter une petite touche de fun et parce que j’ai toute confiance en Fw, mon serveur sera en Current ! La première étape est de graver un cd avec la version 1.3 (la version 1.4 Nexon est bientôt disponible).

L’installation d’un serveur ne demande pas beaucoup de choses. À l’étape du choix des catégories, je ne laisse que « base« , je complète l’installation en modifiant le compte root et en ajoutant un utilisateur (moi) puis je reboote la machine.

Au redémarrage, la première chose à faire est d’installer Vim et de passer en current en décommentant la ligne qui va bien:

  pacman -S vim
  vim /etc/pacman-g2.conf

Ensuite une petite mise à jour du système (grosse en fait) et un redémarrage va nous permettre d’aborder ensuite une partie plus intéressante.

  pacman -Syu
  reboot

En attendant la suite, on va se pencher sur une étape importante : l’adresse Ip, où comment montrer son beau serveur.

Adresse IP et Noms de domaines

Une adresse Ip est un élément indispensable pour un serveur : c’est l’adresse où les gens pourront aller le visiter. À ne pas confondre avec l’adresse interne de votre réseau (commençant en général par 192.168.). Étant sur Free, la configuration initiale vous donne accès à une adresse Ip dynamique : elle change régulièrement et ce n’est donc pas le top. Si vous avez la possibilité comme moi de fixer cette adresse (chez Free, c’est dans votre compte Free, n’hésitez pas, tout est beaucoup plus simple comme ça.

En ce qui concerne l’Ip interne, mon réseau utilise l’adressage dynamique. Pour être sur que le serveur ait toujours la même, j’ai attribué une adresse Ip à la MAC adresse de sa carte réseau (visible en tapant ifconfig). Pour passer au travers des sécurités de Free, j’ai attribué cette même adresse Ip le statut « DMZ » qui signifie «Démilitarisé». Ce sera mon firewall qui se chargera de gérer les ports. Mon serveur a donc une Ip interne qui ne changera pas : 192.168.0.50

Faisons un tour chez le registrar de mon nom de domaine, Gandi. Je compte utiliser le Ndd « Wolf.am » pour pointer sur le serveur. En premier lieu, il faut que Gandi gère les serveurs de noms (de base si vous n’avez rien changé). Ensuite, il faut aller dans l’interface « Gérer les zones » pour envoyer le Ndd chez vous. Voici ce que ça donne chez moi, avec ce qui va bien pour le serveur web et XMPP :

  _xmpp-client._tcp 3600 IN SRV 0 0 5222 wolf.am. # pour prosody 
  _xmpp-server._tcp 3600 IN SRV 0 0 5269 wolf.am. # pour prosody
  drine 10800 IN A 62.147.206.154   # un sous domaine de test
  @ 10800 IN A 62.147.206.154  # le domaine principal envoie vers l'Ip public du serveur
  * 10800 IN A 62.147.206.154  # Tous les sous domaines renvoient vers le serveur

En complément, il est nécessaire de modifier /etc/hosts du serveur pour l’informer que « wolf.am » c’est lui :

  127.0.0.1 localhost
  127.0.0.1 wolf.am

et celui de votre poste de travail pour lui indiquer que le serveur (Ip interne) se fait appeler « wolf.am » (sinon, vous verrez rien !)

  192.168.0.50 wolf.am

Dyndns et Ip publique dynamique

Si votre FAI ne vous propose pas d’Ip publique fixe, il est nécessaire de passer par un intermédiaire comme dyndns.com qui vous permettra de diriger votre nom de domaine chez vous. Comme votre Ip va changer, il peut être intéressant d’installer une application qui se chargera de mettre à jour votre Ip publique sur votre compte Dyndns. Sur Frugalware, il existe Ddclient qui se lance en service et qui s’occupe de tout

  pacman -S ddclient
  service ddclient add
  service ddclient start

La configuration se fait en éditant le fichier **/etc/ddclient et ressemble à ça :

  # Basic configuration file for ddclient
  #
  # /etc/ddclient.conf
  daemon=600
  cache=/tmp/ddclient.cache
  pid=/var/run/ddclient.pid
  use=web, web=checkip.dyndns.com/, web-skip='IP Address'
  login=your-username
  password=your-password
  protocol=dyndns2
  server=members.dyndns.org
  wildcard=YES
  example.dyndns.org # votre adresse dyndns
  custom=yes, example.com # votre ndd

OpenSSH et Iptables

Une fois la base du serveur installé, il est temps de pouvoir prendre le contrôle de la bête à distance et de sécuriser un peu les ports du serveur. Les outils utilisés sont OpenSSH et Ufw,une interface simple à IpTables que j’ai découvert sur le blog de Lenezir. Pour installer ces deux applications, présentes dans les dépôts de Frugalware :

  pacman -S openssh ufw

Le protocole SSH permet de se connecter à distance et de manière sécurisée. Je vous laisse le soin de découvrir cette petite merveille si vous ne connaissez pas, mais c’est un truc énorme ! Et cela permet donc d’administrer le serveur sans être devant. La configuration d’OpenSSH se fait par l’édition du fichier /etc/ssh/sshd_config. Les points à modifier (à décommenter souvent) sont :

  port 22  # C'est le port par défaut et il est préférable de le modifier
  PermitRootLogin no  # interdit au compte root de se logguer (c'est mieux)
  PasswordAuthentication no  # oblige l'utilisation des clés privées
  HostKey /etc/ssh/ssh_host_rsa_key  # chemin des clés rsa
  HostKey /etc/ssh/ssh_host_dsa_key  # chemin des clés dsa
  PubkeyAuthentication yes  # On autorise les connexions via les clés publiques
  AuthorizedKeysFile .ssh/authorized_keys # Fichiers des clés publiques autorisées 

Il faut bien sur ajouter votre clé public dans le fichier /home/user/.ssh/authorized_keys du serveur. Après cela, vous êtes capables de vous connecter au serveur depuis votre pc avec cette commande :

  ssh -p 4200 user@host  # où 4200 est le port réservé à SSH (si vous laissez le port 22 par défaut, c'est optionnel, sinon obligatoire).

Mais avant de vous connecter par SSH, il faut configurer le pare-feu. Outil indispensable pour éviter que tout le web se sente chez lui ! Pour configurer Ufw, je me suis basé sur l’article de Lenezir cité plus haut, en ajoutant les règles pour le protocole Xmpp, car je souhaite mettre en place un serveur Prosody, et de MySql dont j’aurais aussi besoin.

  ufw enable
  ufw deny all  # de base, on bloque tout
  ufw allow 80  # on autorise le trafic internet
  ufw allow 22  # on autorise le SSH (modifier selon le port choisi)
  ufw allow 5222 # pour prosody
  ufw allow 5269 # pour prosody
  ufw allow 5280 # pour prosody
  ufw allow 3306 # pour le serveur Mysql

Et on active le démarrage de ufw au boot en ajoutant ufw enable à /etc/rc.d/rc.local.

Serveur Prosody

C’était une de mes motivation pour monter mon serveur : avoir mon compte Jabber indépendant (JabberFR est dans les choux souvent et j’ai envie de gérer cet aspect). Alors, Kooda m’avait affirmé qu’avec Prosody, c’était un jeu d’enfant. Et effectivement, c’est même trop simple. Pour l’installer :

  pacman -S prosody
  service prosody add
  service prosody start

Et on édite le fichier /etc/prosody.cfg.lua. On indique les JID administrateurs :

  admins = {"botchchikii@wolf.am"}

On autorise l’enregistrement des nouveaux comptes (ou pas…)

  allow_registration = true;

On configure le domaine :

  VirtualHost "wolf.am"

Et si vous le souhaitez (c’est mieux), vous mettez en place le SSL en suivant ce tutoriel

  ssl = {
    key = "/path/to/prosody.key";
    certificate = "/path/to/prosody.cert";
   }

Pour le fun et pour avoir accès à des salons (MUC), il suffit de décommenter une ligne et de choisir un sous domaine :

  -- Set up a MUC (multi-user chat) room server on conference.example.com:
  Component "conference.example.com" "muc"

Et pour finir, on relance le service :

  service prosody restart

Il ne reste plus qu’à attendre que Gandi propage vos CNAMES que vous avez modifié auparavant (voir la section plus haut) et enregistrer votre compte avec Gajim ou un autre. Non, y’a rien de plus à faire !

Serveur Lighttpd

Bon, tant qu’à avoir un serveur, autant qu’il affiche des pages web… Il existe plusieurs serveurs web, dont le plus connu est Apache. Pour ma part, je vais me tourner sur Lighttpd, réputé plus léger que son illustre confrère. Pour l’installer, c’est toujours aussi facile :

  pacman -S lighttpd
  service lighttpd add
  service lighttpd start

Pour Le configurer, un seul fichier : /etc/lighttpd/lighttpd.conf. On active quelques modules utiles (je vais avoir besoin du php, sinon les modules « cgi » et « fastcgi » ne sont pas utiles):

  #
  server.modules = (
  "mod_rewrite",
  "mod_redirect",
  "mod_alias",
  "mod_access",
  "mod_fastcgi",
  "mod_cgi",
  "mod_accesslog" )

On définit la page par défaut du serveur :

  server.document-root        = "/srv/www/wolf.am/"

On définit quelques VirtualHosts (domaines ou sous domaines) :

  $HTTP["host"] == "wolf.am" {
  server.document-root = "/srv/www/wolf.am"
  }
  
  $HTTP["host"] =~ "(^|\.)botchchikii\.com$" {
  server.document-root = "/srv/www/nb"
  }
  
  $HTTP["host"] == "drine.wolf.am" {
  server.document-root = "/srv/www/drine/drine.info"
  server.error-handler-404 = "/index.php?error=404"
  
  url.rewrite = (
  "^/(wp-.+).*/?" => "$0",
  "^/(sitemap.xml)" => "$0",
  "^/(xmlrpc.php)" => "$0",
  "^/(.+)/?$" => "/index.php/$1"
  )
  }

On peut ajouter des logs d’accès et d’erreur pour chaque domaine. « url.rewrite » permet de compenser l’absence de .htaccess comme sur Apache. Dans cet exemple, c’est pour le Wordpress de Drine et cela marche impeccable.

Avec Cela et après avoir relancer le service lighttpd, vous pouvez déjà afficher des pages statiques, comme ce blog par exemple (il tourne d’ailleurs dessus :) ). Maintenant, abordons la partie la moins sympa : le php et MySql.

Php et MySql

Php en lui même, ça ne pose pas de souci :

  pacman -S php php-cgi

Il faut modifier /etc/php.ini pour lighttpd et ajouter la ligne :

  cgi.fix_pathinfo = 1

N’oubliez pas d’inclure vos répértoires web dans la ligne :

  open_basedir = /home/:/tmp/:/usr/share/pear/:/srv/www

Dans /etc/lighttpd/lighttpd.conf, il faut activer le module « fastcgi » et décommenter la section concernée (adaptez le chemin vers php-cgi) :

  #### fastcgi module
  ## read fastcgi.txt for more info
  ## for PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini
  
  fastcgi.server = ( ".php" =>
  ( "localhost" =>
  (
  "socket" => "/tmp/php-fastcgi.socket",
  "bin-path" => "/usr/bin/php-cgi"
  
  )
  )
  )
   
  fastcgi.debug = 1
  fastcgi.map-extensions = (".php3" => ".php")

À ce niveau là, vous pouvez vérifier que le php est bien interprété en créant un fichier test dans votre espace web, par exemple test.php avec:

  <?PHP phpinfo(); ?>

En visitant cette page, vous devriez avoir une pleine page d’info sur votre installation de Php. Je ne vais pas rentrer dans les détails de cette configuration, principalement parce que je ne m’y suis pas encore penché :D

Au tour de MySql, qui m’a particulièrement gonflé… L’installation est banale :

  pacman -S mysql
  service mysqld add
  service mysqld start

Il est conseillé de lancer le script d’installation pour sécuriser un minimum le service :

  mysql_secure_installation

La configuration se fait par l’édition du fichier /etc/my.cnf. Les informations importantes sont dans la section Mysqld :

  # The following options will be passed to all MySQL clients
  
  [client]
  #password = your_password
  port = 3306
  socket = /var/lib/mysql/mysql.sock
  
  # The MySQL server
  
  [mysqld]
  
  port = 3306
  socket = /var/lib/mysql/mysql.sock
  datadir = /var/lib/mysql
  skip-external-locking
  key_buffer = 16M
  max_allowed_packet = 1M
  table_cache = 64
  sort_buffer_size = 512K
  net_buffer_length = 8K
  myisam_sort_buffer_size = 8M
  character-set-server=utf8
  skip-character-set-client-handshake

Les deux dernières lignes permettent de basculer en UTF-8. Vous aurez peut-être comme moi le fameux souci au redémarrage du service (qui ne voudra pas se lancer…) :

  ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Un sacré casse-tête qui m’a bloqué plusieurs jours. J’ai erré sur le net en recherche de solution, réinstallé le bouzin, réussi à me connecter une fois (pas deux à la suite)… et les logs d’erreurs restaient vides. Sauf que je ne regardais pas le bon log :D Donc, si cela vous arrive, zieutez du coté de /var/lib/mysql/serveur.err ! Il m’a donné l’erreur suivante :

  Failed to open log (file './serveur-bin.000015'

Ce qui m’a permis de trouver la solution ici. Et depuis ça marche bien :/

La page Ubuntu de MySql vous apportera les informations de base pour administrer les votres (de bases). Il est possible aussi d’installer PhpMyAdmin pour faire ça depuis le web, mais je me suis contenté de la console pour le moment.

Le résultat

Et bien, Wolf.am est en ligne et bien opérationnel ! Ce blog est hébergé dessus, ainsi que le blog de Drine. Le serveur Jabber tourne impeccable et au niveau vitesse et réactivité, ça semble très honorable. Je pense ainsi me défaire de mon hébergement chez Lautre.net et rapatrier un second blog WP si tout va bien. (Bob, prépare toi !).

Je dois bien sur m’instruire dans plusieurs domaines, comme le monitoring et les sauvegardes, et optimiser la partie Php/Mysql qui m’est encore bien étrangère. J’attends maintenant Kooda de pied ferme pour peaufiner mon installation et l’améliorer. D’ailleurs, il m’a promis d’attaquer ce sujet très intéressant sur son blog suite à ce billet !

Sinon, je me suis surtout lancé dans cette aventure pour m’attaquer à ce thème qui m’intéresse. En effet, la perspective de pouvoir gérer soi-même son serveur est très stimulante et me permet d’en apprendre un peu plus sur Gnu/Linux et le fonctionnement d’un ordinateur.

Lien Permanent pour cet article : http://www.terranux.net/?p=40

juin 19

Un nouveau compagnon sur la route du libre

Suite aux dons recus en ce debut d’année, Peuple Loup peut se permettre de remplacer le brave mais usé Thinkpad. Voici mon nouvel environnent de travail. Reçu il y a deux jours, il était livré avec un virus. Heureusement vigilant, j’ai administré l’antidote avant qu’il ne s’active. Voici le d7eacute;tqil de l’opération !

L’ordinateur portable HP Pavilion dm3 vous montre ses tripes :

lspci

00:00.0 Host bridge: Advanced Micro Devices [AMD] RS780 Host Bridge
00:01.0 PCI bridge: Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (int gfx)
00:04.0 PCI bridge: Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (PCIE port 0)
00:05.0 PCI bridge: Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (PCIE port 1)
00:11.0 SATA controller: ATI Technologies Inc SB700/SB800 SATA Controller [AHCI mode]
00:12.0 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI0 Controller
00:12.1 USB Controller: ATI Technologies Inc SB700 USB OHCI1 Controller
00:12.2 USB Controller: ATI Technologies Inc SB700/SB800 USB EHCI Controller
00:13.0 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI0 Controller
00:13.2 USB Controller: ATI Technologies Inc SB700/SB800 USB EHCI Controller
00:14.0 SMBus: ATI Technologies Inc SBx00 SMBus Controller (rev 3c)
00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA)
00:14.3 ISA bridge: ATI Technologies Inc SB700/SB800 LPC host controller
00:14.4 PCI bridge: ATI Technologies Inc SBx00 PCI to PCI Bridge
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
01:05.0 VGA compatible controller: ATI Technologies Inc RS780M/RS780MN [Radeon HD 3200 Graphics]
01:05.1 Audio device: ATI Technologies Inc RS780 Azalia controller
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller (rev 02)
08:00.0 Network controller: Atheros Communications Inc. AR928X Wireless Network Adapter (PCI-Express) (rev 01)

La matière première

  wget http://www7.frugalware.org/pub/frugalware/frugalware-1.2-iso/frugalware-1.2-i686-usb.img 
  dd if=frugalware-1.2-i686-usb.img of=/dev/sdb

Pour connaître l’emplacement de la clé USB à graver, un petit tour dans /dev/disk/by-id/, qui liste les périphériques branchés. Une fois la clé prête, on la démonte et on peut la mettre dans le HP, tout juste sorti du déballage et jamais encore booté.

Les fondations

Au démarrage, un écran aux couleurs de Frugalware et on lance l’installation. La première étape est de choisir la langue et le clavier, nécessaire pour poursuivre sereinement ;) puis vient le moment de partitionner le disque dur. Je choisi parted.

Il existe un très bon tutoriel pour expliquer les manoeuvres à faire avec parted pour tout configurer comme du monde. Pour ma part, lorsque je visualise la table des partitions, j’en découvre 4, réalisées lors de la préinstallation de windows.

Je compte repartir de 0 et recrée donc une nouvelle table de partition en sélectionnant l’option u puis w pour écrire la table. Je retourne ensuite sur l’installation de Frugalware et revalide l’étape de partitionnement du disque. Cette fois ci, a table est vide. Je crée 4 partitions primaires :

  • 50go destiné au système (possible ensuite que je le splitte pour tester d’autres OS, autant de place n’est pas nécessaire)
  • 50go pour mon /home
  • 2go pour la swap
  • le reste (210go environ) pour mes datas

Lorsque les 4 partitions sont créées, je modifie le système de fichier de la partition swap et valide les changements. Retour à l’installateur, qui me demande ensuite de spécifier les points de montage, indiquées plus haut. Je formate bien sur chacune des partitions et je choisis le système de fichier ext3 pour les 3 partitions utilisables (la swap étant spécifique).

Ensuite vient l’étape de la connexion réseau. L’installateur détecte sans souci la carte ethernet et je passe ensuite au choix des paquets à installer et du miroir de téléchargement. Comme j’ai choisi la méthode NetInstall, il me faut récupérer tout ce dont j’ai besoin. Je ne souhaite pas mettre gros pour le moment et je décoche tous les choix proposés par défaut, excepté base et X11. J’ai hésité à prendre X11, mais je l’ai mis dans le lot.

Ces deux groupes font un total de 409 paquets et 212mb de données à télécharger, pour un poids décompressé de 645mb. Je lance le tout. Malgrès un début encourageant avec glibc, le transfert va s’interrompre un bon moment. Lors de mes mises à jour, je peux contourner ce blocage en interrompant celle-ci et en la relancant. Dans le cas présent, je dois laisser pacman décider seul du moment où il relancera la requête et ca peut prendre du temps :/

L’étape suivante est l’nstallation de Grub, que je place dans le MBR, la création du compte root et personnel, la configuration de l’heure et du fuseau horaire et l’installation se termine par un test de l’écran (concluant) et le choix de la résolution (je laisse le 1024×768 proposé par défaut pour le moment).

En dernier, Frugal me demande quel gestionnaire de login mettre en place. Je laisse vide car je vais faire tout ça moi même (pas encore installé). Un message de félicitation plus tard, X se lance et m’affiche un écran blanc : il n’a rien à lancer encore, du calme ! Control+Alt+F1` me bascule en tty et je me loggue pour la première fois sur ce pc :)

Les murs

Pour l’instant, mon installation est basée sur le dépôt stable. Je vais basculer de suite sur Current en modifiant le fichier de configuration de pacman /etc/pacman-g2.conf :

  # -current
  Include = /etc/pacman-g2/repos/frugalware-current
  
  # -stable
  #Include = /etc/pacman-g2/repos/frugalware

Le problème est que je n’ai pas encore vim :D je l’installe donc avant et modifie le fichier cité.Je lance ensuite la mise à jour du système avec un pacman-g2 -syu. S’en suit un jeu de patience, le temps que 124 paquets se refassent une jeunesse.

Avec seulement base et X11, je suis assez loin du compte et Il me faut installer les logiciels que je me sers au quotidien :

  pacman-g2 -S wmii zsh slim mutt-devel mcabber sakura newsbeuter openssh elinks rox-filer midori nanoblogger abook    

soit, avec les dépendances, 68 paquets et 71mo. Le reste sera fait un peu plus tard (Gimp, Gthumb, Firefox, Kino,…) et au fur et à mesure de mes besoins.

je mets en place zsh:

  chsh botchchikii /bin/zsh
  chsh root /bin/zsh

Et je configure /etc/sysconfig/desktop et /etc/slim.conf pour mettre slim et ma session graphique en place. Après un redémarrage pour la forme. Au démarrage suivant, l’écran de slim s’affiche et la goutte de sueur perle alors que Xorg se lance… sans raison : j’arrive sur mon bureau « habituel », ayant importé mon wmiircdu thinkpad, envoyé dans les nuages pour l’occasion.

La peinture

Il est temps ensuite de rapatrier mes fichiers de configuration, sauvegardés sur un disque dur externe que je dois monter avant. Je souhaitais réaliser cette étape avant de me logguer en graphique mais mount ne reconnaissait pas vfat, même en le forçant. La manoeuvre a réussi après le redémarrage :

  mkdir /mnt/freecom
  mount /dev/sdb1 /mnt/freecom
  cp -r /mnt/freecom/frugalware/home/* /home/botchchikii/
  chown -R botchchikii:users /home/botchchikii/

Il me reste donc à installer différents paquets et dépendances. Voici les autres applications qui sont sur le laptop :

  • Système : gnetconfig, gservice, wget, git, j2re, alsa-utils, gtk+2, disk-manager, gconf, zenity, keepassx, wicd, sshfs, xclip, txt2tags, antiword, geany, gcc, urxvt
  • Apparence : lxappearance, frugalware-icon-theme, gnome-color-icon-theme, nitrogen, ttf-droid, conky
  • Multimedia : gimp, gthumb, mirage, imagemagick, ffmpeg, vlc
  • Internet : firefox, weechat, gnash, lynx

Ensuite, je suis le tutoriel de post-installation du wiki pour installer le son. J’ai quelques soucis d’ailleurs et je n’ai que le bip système. Néanmoins, je trouve des bonnes pistes sur le net concernant ma carte, une . Je passe le système en UTF-8, mais je bute sur Mutt qui n’aime pas trop (résolu \o/)

Je n’installe pas le plugin non libre pour flash. J’ai installé gnash à la place. Pour le moment, les pages man ne sont pas francisées et j’ai Firefox en anglais (j’aurais du demander firefox-fr à pacman), mais cela va peut-rester comme cela pour le moment..

Il est nécessaire bien sur de retoucher certains fichiers de configuration, et j’envisage de modifier la <modkey> de wmii, car je possède maintenant une touche super !

Les soucis de chantier

Il me reste donc le wifi à faire fonctionner : la carte est reconnue en ajoutant le module ath9k : modprobe ath9k. La connexion ne se fait pas pour le moment mais le spot de test n’est pas le plus simple au monde. A suivre.

Le son aussi oppose une résistance, ainsi que les touches multimedia. Le wiki de archlinux va mette d’un grand secours et c’est en modifiant le fichier /etc/modprobe.d/sound en lui ajoutant la ligne :

  options snd-hda-intel-model=hp-m4 enable_msi=1

Au reboot suivant, vlc me joue triomphalement le concert de Louis Bertignac à Crosnes. Victoire !

Le passage à l’UTF-8 m’a bien gonflé par contre. Ma hantise, l’encodage est mon porte-poisse depuis que je le connais…Et comme toujours ca a merdé. mutt me sort des hieroglyphes en lieu et place de vos accents. Urxvt-unicode, qui a pourtant un joli nom, est encore pire que sakura…

J’en suis presque venu à songer m’abandonner dans les bras d’Iso, si familière et peu farouche ! mais dans un dernier sursaut, je retourne dans mon /etc/profile.d/lang.sh et m’aperçoit que je n’avais réalisé qu’une modification sur les deux nécessaires… Pour un fichier de 3 lignes, c’est fort. Avant :

  export LANG=fr_FR
  export LC_ALL=$LANG
  export CHARSET=iso-8859-15

Après :

  export LANG=fr_FR.utf8
  export LC_ALL=$LANG
  export CHARSET=utf-8

Ca a tout de suite beaucoup mieux marché après la correction. Boulet du jour, bonjour :D

ToDo

  • Changer de map pour le clavier. Un détail qui m’embête car si je met la version canadienne du qwerty, je retrouve mes accents mais avec des touches qui ne correspondent plus :/ Quitte à ça, je vais peut-être suivre le conseil de Kooda et me mettre au Bépo. Reste à savoir si j’aurais le temps de m’adapter à ce nouveau clavier.
  • Il faut que je Génère une nouvelle clé SSH et l’intégre dans mes différents recoins distants. Je dois juste me connecter avec le thinkpad pour y déposer la nouvelle clé, et je n’ai qu’une seule connexion possible. Patience, comme ça j’ai une bonne excuse pour laisser bosser Drine sur le pluxml de Peuple Loup.
  • Peut-être recompiler le noyau pour activer le [PAE ] et ainsi profiter des 4go de RAM. Mais bon. Pas sur que ca en vaille la peine. Parfait à garder sous le coude en cas de crise geek aigüe.

Conclusion

Le laptop est bien fini : coque en aluminium brossé du plus bel effet, très fin. La qualité de l’écran est sans commune mesure avec la dalle terne du thinkpad et je découvre des couleurs que je ne savais pas exister ! Le clavier est sensible et agréable au contact, mais le touchpad est très moyen. J’ai toujours préféré le système « joystick » des thinkpads mais ce n’est pas rebutant : la souris, je ne m’en sers pas souvent ;)

Au niveau de la vélocité : c’est une bombe et avec 4go de RAM, firefox ne me fait plus les gros yeux ;) Couplé avec Frugalware, wmii et des applications en console, la réactivité est instantanée ! Il faudra bien sur tempérer avec le temps et ce que je vais lui faire subir comme outrages.

En ce qui concerne ma seconde installation de Frugalware, je n’ai pas eu de problèmes majeurs encore une fois. Il y a des petites recherches à faire et des réglages à peaufiner pour que tout soit optimum, mais le laptop est déjà fonctionnel et je n’ai pas eu trop à mettre les mains dans le cambouis.

J’en conclus donc que cet ordinateur est psychologiquement prêt pour une vie saine et libre, loin des carcans auquel il était destiné en usine :) J’ai un nouveau compagnon de route, ce qui ne met pas le thinkpad au placard bien entendu : je vais lui redonner une nouvelle jeunesse, il l’a bien mérité :)

Lien Permanent pour cet article : http://www.terranux.net/?p=41

Articles plus anciens «