Septembre 2011 Archives

2011-09-28 07:58

Freebsd : augmenter le time out d'Anyterm

anyterm logo

Anyterm est un émulateur de terminal accessible via un navigateur web. C'est une bonne solution de dépannage quand l'administrateur réseau du coin a, comme c'est souvent le cas, bloqué le port ssh.

Le time out par défaut est de 30s. Le temps d'ouvrir un onglet, de faire une recherche sur le waibe, et vous êtes déconnecté. Je trouve ça vite énervant de se re-logger toutes les cinq minutes :-)

Il n'y a malheureusement pas d'option de compilation pour modifier ce paramètre. Seule solution : modifier directement les sources. C'est un peu "crade" : à chaque mise à jour il faudra refaire la manipulation.

Le fichier à éditer s'appelle config.hh :

vim /usr/ports/www/anyterm/work/anyterm-1.1.29/src/config.hh

Il faut modifier la macro ANYTERM_TIMEOUT par la durée souhaitée, en secondes. Par exemple, j'ai passé le miens à 10 minutes :

#define ANYTERM_TIMEOUT 600

Il ne reste plus qu'à recompiler tout ça :

cd /usr/ports/www/anyterm/
make deinstall
make install clean

Et voilà, plus besoin d'appuyer sur une touche toutes les 30 secondes pour garder sa session :-)


Posted by St3rk | Permanent link

2011-09-17 18:07

Migration sous NanoBlogger

NanoBlogger logo

Après quelques soucis avec Dotclear, j'ai décidé de passer sous NanoBlogger. Ce dernier a l'avantage d'être à la fois plus robuste et plus simple, puisqu'il utilise quelques outils shell pour générer des pages html statiques à partir de fichiers textes.

Ce mode de fonctionnement me permet d'utiliser VIM pour rédiger mes billets, et a le mériter de diminuer le temps de chargement des pages.

J'ai remis tous les anciens articles, mais il me faudra encore un peu de temps pour refaire quelques pages et peaufiner la feuille de style. J'espère que mes milliers de lecteurs me le pardonneront :-)))


Posted by St3rk | Permanent link | File under: autre, waibe

2011-09-09 21:53

FreeBSD : Passerelle introuvable en IPv6

pf_book.jpg

Une erreur bête sur laquelle on peut passer beaucoup de temps, ça servira peut-être à d'autres.

Si la passerelle reste introuvable en IPv6 (par exemple avec la commande rtsol -d <interface>), ne pas oublier de débloquer le protocole icmp6 dans /etc/pf.conf.
:-)


Posted by St3rk | Permanent link | File under: freebsd

2011-09-09 21:23

Itinéraire vélo sympa

vélo

Bon, c'est décidé, je reprends le vélo. C'est assez difficile de sortir de Clermont-Ferrand sans en baver, la dernière sortie que j'avais tenté m'avait un peu dégoûté. Cette fois je me suis inspiré d'un itinéraire de sortie trouvé sur ce blog pour faire une petite boucle.

La monté est assez progressive malgré quelques "coups de cul", et on a une belle vue sur le Puy de Dôme à plusieurs reprises (j'ai regretté d'avoir oublié l'appareil photo). Un temps idéal (beau, chaud mais pas trop), plus de 10km de descente, de quoi avaler quelques mouches à force de sourire :-)


Posted by St3rk | Permanent link | File under: humeur

2011-08-25 21:57

Aide mémoire : installer dotclear sous FreeBSD

logo-dotclear.svg

Je vais déplacer ce blog sur mon serveur dédié. Voici les quelques étapes nécessaires pour faire fonctionner dotclear sous FreeBSD.


Installer le module zlib pour php (qui permettra entre autre les mises à jour de dotclear) :

cd /usr/ports/archivers/php5-zlib/ && make install clean

Se rendre dans le dossier du port et le compiler :

cd /usr/ports/www/dotclear/
make config-recursive
make install clean

Créer la base de donnée :

mysql
mysql> CREATE DATABASE dotclear_db;
mysql> GRANT ALL PRIVILEGES ON dotclear_db.* TO 'dotclear'@'localhost' IDENTIFIED BY 'UnMotDePasse' WITH GRANT OPTION;
mysql> quit

Créer le fichier de configuration et l'éditer :

cp /usr/local/www/dotclear/inc/config.php.in /usr/local/www/dotclear/inc/config.php
vim /usr/local/www/dotclear/inc/config.php

Modifier le début du fichier de cette manière :

# Copyright (c) 2003-2009 Olivier Meunier and contributors
# Licensed under the GPL version 2.0 license.
# See LICENSE file or
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
#
# -- END LICENSE BLOCK ------------------------------------
if (!defined('DC_RC_PATH')) { return; }
// Database driver (mysql, pgsql, sqlite)
define('DC_DBDRIVER','mysql');
// Database hostname (usually "localhost")
define('DC_DBHOST','localhost');
// Database user
define('DC_DBUSER','dotclear');
// Database password
define('DC_DBPASSWORD','UnMotDePasse');
// Database name
define('DC_DBNAME','dotclear_db');
// Tables' prefix
define('DC_DBPREFIX','dc_');
// Persistent database connection
define('DC_DBPERSIST',false);
// Crypt key (password storage)
define('DC_MASTER_KEY','UneLongueSuiteDeCaractèresSansApostrophe');

Modifier la configuration d'apache afin de rendre le dossier accessible :

vim /usr/local/etc/apache22/httpd.conf

Ajouter à la fin :

##############################################
##############################################
# Dotclear
##############################################
##############################################
<VirtualHost *:80>
ServerName mon.nom.de.domaine
ServerAlias www.mon.nom.de.domaine
DocumentRoot /usr/local/www/dotclear/
<Directory "/usr/local/www/dotclear/">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</Virtualhost>

Donner au serveur web les droits sur le dossier :

chown -R www:www /usr/local/www/dotclear

Se rendre dans l'interface de configuration à l'adresse http://mon.nom.de.domaine/admin/install/, remplir le formulaire et le valider. Dotclear est maintenant utilisable.


Posted by St3rk | Permanent link | File under: waibe

2011-08-25 03:05

Parce qu'il n'y a pas que les bánh bao dans la vie

Il y a les bánh cam aussi :-)))

bancam1.JPG

Farce composée de soja, de noix de coco, et d'une bonne dose de sucre, qu'on emballe dans une pâte à base de farine de riz. Le tout est roulé dans les graines de sésame.

bancam2.JPG

Hop, à la friture...

bancam3.JPG

C'est gras, mais c'est bon :-)


Posted by St3rk | Permanent link | File under: humeur

2011-08-11 11:28

Frais d'installation gratuits chez OVH

Je n'ai pas d'intérêts à faire de la pub à OVH, mais une info est passée un peu inaperçue : les frais d'installation sont maintenant offerts sur les serveurs dédiés, quelle que soit la durée d'engagement. C'est aussi le cas pour les VPS et les offres ADSL/SDSL.


Je m'en suis rendu compte par hasard en prennant mon dédié. Voici les explications d'Octave, datées du 5 juillet 2011 :

Bonjour,
Ça y est ! On a dépassé la barre psychologique
de 100'000 serveurs dédiés hébergés dans nos
datacentres. C'est un chiffre rond qui est
intéressant à rappeler quand on vous demandera
"Ovh, tu connais ?", "Ouais ouais j'étais là
quand ils ont dépassé 100'000 serveurs en
2011" ...  Voilà, voilà, Bref, on est content
d'héberger ces serveurs pour vous. La classe
Comment on pourrait fêter ça ?
On fait sauter les frais d'installation ? Sur
les serveurs dédiés, de VPS, de pCC et de la
téléphonie ? Allez ! Soyons fous à nouveau ! On
vit qu'une fois ! Voilà c'est fait. Il n'y a
plus de frais d'installation chez Ovh.
Combien de temps ?
On finit la mise en place de PCIDSS et on
devrait pouvoir gérer mieux le turnover à
travers le paiement automatique: vous
commandez un service chez Ovh puis quand
vous ne voulez plus renouveler vous
cliquez pour nous prévenir. Comme ça on
sait qu'on peut reprendre le serveur à
la date d'expiration du serveur. C'est ça
qui arrive grâce au PCIDSS
Sous quelques jours on va continuer la fête
avec le démarrage de tests avec les clients
américains et canadiens. On va leur offrir
quelques milliers de serveurs (5000) pour
prendre la température du marché US/CA et
de besoins. On va comprendre très vite ce
qui va chez Ovh et ce qui ne va pas.
Bref, la fête risque de se poursuivre et
on va pas de main morte ..
Amicalement
Octave
PS. On fait sauter les frais d'installation
ADSL/SDSL sous 10 jours environ. Le temps
de mettre la version gamma des offres.


Posted by St3rk | Permanent link | File under: autre

2011-08-05 22:38

Feedback : Grado RS1, GS1000 et PS1000

GS1000.png

Tout est parti d'une paire de mousses. Jeudi, avant de partir du boulot, j'ai appellé quelques magasins de HI-FI pour trouver des pads "L-cush" à mettre sur mon Alessandro MS1. Bonne pioche, l'auditorium parisien en avait en stock, et le vendeur avait même l'air cordial.

Arrivé sur place quelques minutes plus tard, on me sort la paire de mousse. Un vendeur se présente, Omer, et me demande ce que je pense du 325i. Je lui explique qu'en raison du coût excessif des Grados en France, j'ai un Alessandro. On tape la discute quelques minutes, il a l'air content de voir un jeune qui s'intéresse au son. Il me propose de revenir le lendemain avec des CD pour une écoute. Le rendez-vous était pris :-)


Vendredi


Je repasse au magasin, avec mes CD en poche. L'accueil est toujours aussi chaleureux, surtout que j'avais bien précisé que je n’achèterai rien :
- Bon, vous voulez écouter quoi? SR80, SR125, SR225, SR325?
- C'est possible de "jeter une oreille" aux RS1 et RS2?
- Oui pas de problème. Ah, je n'ai plus de RS2. Un GS1000, ça vous va?

Je pense que vous imaginez bien ma déception, être obligé de tester un casque de cette gamme :-P

On part donc dans la salle d'écoute pour casques. Omer m'installe un fauteuil devant la platine, me branche sur l'ampli Grado RA-1, et me laisse profiter de l'écoute.

J'introduis le CD "One by one" dans la platine, je branche le RS1 à l'ampli, et c'est parti pour la piste 1 ("All my life"), que je connais bien. Ce casque a du charme. On reconnaît bien la signature grado, ce son à la fois dynamique et précis. De souvenir, le son est plus équilibré et moins fatiguant que celui de la gamme "plastique".
Je passe à l'album "In you honnor", et à la chanson du même nom. C'est difficile de rendre cette chanson correctement, elle est très dense. Et le RS1 me déçoit, il n'apporte pas la clarté à laquelle je m'attendais.
Attention, je ne dis pas que c'est un mauvais casque. Mais j'en attendais peut-être trop à force de lire tests et feedback.

Bon, on va essayer le GS1000. Je remet la chanson au début, je branche le casque, et c'est parti. Je trouve le son étouffé. Il doit être plus dur à driver. Je change d'ampli pour un Musical Fidelity M1HPA.

WAOUH!!!


C'est cette sensation que je m'attendais à éprouver avec le RS1. Le son est terriblement net, la scène s'est élargie. Chaque instrument est bien audible de manière individuelle, sans perdre en musicalité. J'ai l'impression d'être au milieu des musiciens. Les basses son bien présentes, plus qu'avec le RS1, sans être baveuses. Quelle claque...

Fin de la chanson. Piste 2, No way back. Incroyable. Je redécouvre cet album. Je ne pensais pas qu'il pouvait y avoir une telle différence entre deux casques de cette gamme. On pense souvent que plus on monte dans les prix, moins l'upgrade est preceptible. Le GS1000 a dû être construit pour prouver l'inverse.

Fin de la chansons. C'est marrant, elle est passée plus vite que d'habitude. À ce moment, je pense encore que je vais remettre la piste au début pour l'écouter avec le RS1. Trop tard, première notes de guitare acoustique de "Best of you". Je reste scotché. Finalement il est bien ce casque sur ma tête...

Plein de bonne volonté, j'arrive à le retirer avant le début de "LOA". Je branche le RS1 sur l'ampli Musical Fidelity. Ah oui, la différence est flagrante. Le son me parait brouillon, les aigus m'agressent les oreilles. Ça veut dire quoi spacialisation, déjà?

Peut-être que l'ampli n'arrange pas les choses, je repasse sur le RA-1. Les aigus sont légèrement adoucis, mais pas de miracle. Quelle idée aussi d'essayer le GS1000?

Omer entre dans la salle, me demande ce que j'en pense. Il est d'accord sur l'ampleur du gap entre le RS1 et le GS1000. Il doit fermer la boutique, il est 19h00. Je suis tombé dans une faille spatio-temporelle, ou quoi?

Il me propose de revenir demain à 15h essayer le PS1000. Ça ne se refuse pas...

Attention, je tiens à modérer ces impressions. Le RS1 est un très bon casque, mais le GS1000 est clairement un cran au dessus (en terme de prix aussi). Ces deux casques ne sont pas comparables, c'était donc perdu d'avance pour le pauvre RS1.


Samedi


Retour à l'auditorium parisien vers 15h. Omer me ré-installe dans la salle découte, en compagnie du GS1000, du PS1000, et du Musical Fidelity M1HPA. J'ai ramené les mêmes CD que la veille, cette fois-ci je vais me concentrer sur l'album "In your honnor", qui a le mérite des comporter des chansons très heavy, mais aussi des pistes acoustiques.

Échauffement. Je branche le GS1000, afin de ne pas tomber dans la comparaison "de mémoire", et j'écoute la piste 1. La scène est toujours aussi large qu'hier soir. Ces basses rondes et précises, quel délice. Fin de la piste. J'ouvre la boite du PS1000. La finition et magnifique, le cuir et l'aluminium vont si bien ensemble. Je l'attrape, et constate son poids conséquent. Rien à voir avec son petit frère. Malheureusement, le confort s'en ressent : l'arceau appuie de manière désagréable sur le haut du crâne, et les rapides mouvements de tête sont à proscrire, sous peine de faire bouger le casque.

Piste 1, lecture. Dès les premières notes, on réalise qu'on a bien à faire à un grado, à ses basses sèches, à ses aigus précis et incisifs. La différence ressentie entre le GS1000 et le PS1000 est inférieure à celle entre le GS1000 et le RS1, car on gagne peu (pas?) en spacialisation. Par contre tous ces détails... Je me concentre sur le batteur. Un plaisir. Chaque coup est audible, la cymbale sonne parfaitement juste.

En contrepartie, l'écoute est plus fatigante, le son est plus agressif. Ajoutez ça à l'inconfort, et vous obtenez un casque taillé pour une écoute courte et concentrée. Je ne m'imagine pas porter ce casque plusieurs heures tout en faisant autre chose.

Bon, passons au deuxième CD, et à la partie acoustique de cet album. Le PS1000 est taillé pour ça, on imagine le guitariste pincer chaque corde. Les aigus et les medium aigus sont bien le point fort de ce casque. Est-ce grâce à l'aluminium?

Une heure est passée, il est l'heure de repartir. J'aide Omer à ranger les casques, on discute de la gamme grado, de mes impressions. Il me dit que le côté fatiguant du PS1000 s'atténue avec le rodage. A vérifier :-)

Il me fait aussi rêver, en parlant des installations HI-FI qu'il a fait récemment, d'ensembles à plus de 50 000€. Je repars de la boutique, la tête ailleurs.


Conclusion


On a bien a faire à deux gammes différentes. Le RS1, pourtant bon, fait pâle figure face à ses deux grand frères. Je trouve par contre les deux autres assez complémentaires, le GS1000 proposant une écoute colorée et reposante (un OVNI dans la gamme Grado), alors que le PS1000 mise tout sur les détails. Reste la question du prix : le PS1000 valant presque le double du GS1000, passer de l'un à l'autre méritera une réflexion approfondie.


Posted by St3rk | Permanent link | File under: musique

2011-07-19 13:49

Lettre contre la formation cisco en IUT

your ad here

Monsieur,

Je vous écris cette lettre suite à la publi-formation cisco que j'ai subi durant les semestres 1 et 2. Je voudrais vous indiquer à quel point je trouve cette formation anti-pédagogique.

Beaucoup d'efforts sont faits dans l'établissement afin de donner une certaine ouverture d'esprit aux étudiants. Dans le plupart des matières, la formation théorique reste assez neutre, puis les travaux pratiques nous permettent d'expérimenter différentes solutions.

Cette approche, consistant à enseigner aux étudiants un "socle" neutre, puis à leur présenter différents outils, ne peut être que bénéfique : non seulement ils ont des chances d'y être confrontés dans leur vie professionnelle, mais peut-être que leur rôle sera aussi de choisir parmi ces différentes solutions au sein de leur entreprise.

En fournissant une formation délibérément orientée pour une marque, vous jouez son jeu. Vous lui offrez un petit morceau du cerveau, précieux car encore malléable mais bientôt figé, de chaque étudiant.

En espérant que vous prendrez en compte cet avis, je vous prie d'agréer, Monsieur, mes respectueuses salutations.

Envoyé par email le 18/07/2011 à mon professeur de réseau. Déléguer deux module de formation à une entreprise privée me parait inacceptable.
Je n'ai pas parlé de l'interface propriétaire entièrement en flash histoire de ne pas passer pour un "intégriste du libre".


Posted by St3rk | Permanent link | File under: humeur

2011-07-13 16:34

Slackware : activer le support de l'AAC dans audacious

Ipoo
source de l'image : Paul Roberts (http://www.nohypehere.co.uk/)

Bon, alors je vais commencer par me défendre, sinon je vais finir attaché avec de la ficelle bleue et traîné derrière un tracteur John Deere.

C'est vrai que l'AAC n'est pas un format libre : même s'il est standard, les fabricants de matériels ou de logiciels capables de d'encoder ou de décoder de l'AAC doivent payer une licence. C'est vrai aussi qu'il est lossy., et qu'il s'est répandu principalement grâce à Itunes©™. Mais parfois, après de longues minutes à rechercher un album, on fini par céder à la facilité. C'est ce qui m'est arrivé récemment avec la compilation des chansons de Karmin.

Mais au moment de lancer la lecture, un beau message d'erreur :

Aucun décodeur trouvé pour file:///home/...

Un tour sur linuxquestions.org m'apprend qu'audacious ne contient plus de copie de faad2 (librairie permettant le décodage de l'AAC). Comme Slackware ne l'intègre pas non-plus, le package audacious n'est pas capable de lire l'AAC.

Heureusement, il est facile de remédier à ce problème.


Compiler et installer faad2


Télécharger la slackbuild et l'extraire. Pour slackware 13.37 :

$ wget http://slackbuilds.org/slackbuilds/13.37/audio/faad2.tar.gz
$ tar xvzf faad2.tar.gz

Aller ensuite sur le site slackbuilds.org et télécharger les sources correspondantes. Les enregistrer dans le dossier faad2 qui vient d'être créé. Il faut maintenant le compiler (vous utilisez certainement fakeroot pour des raisons de sécurité) :

$ cd faad2
$ fakeroot ./faad2.SlackBuild

Se logger en en root et installer le paquet (en root) :

# upgradepkg --install-new /tmp/faad2*.tgz

Désinstaller, compiler, et ré-installer audacious-plugins


Désinstaller le package audacious-plugins (en root) :

# slackpkg remove audacious-plugins

Télécharger les sources d'audacious-plugins sur un serveur miroir de Slackware, et les compiler (l'URL est valable pour la release 13.37) :

$ wget -r -nH --cut-dir=7 --no-parent http://ftp.lip6.fr/pub/linux/distributions/slackware/slackware-13.37/source/xap/audacious-plugins/
$ cd audacious-plugins
$ chmod +x audacious-plugins.SlackBuild
$ fakeroot ./audacious-plugins.SlackBuild

On peut maintenant installer notre package :

# upgradepkg --install-new /tmp/audacious-plugins*.txz

Vous pouvez maintenant profiter de ce plaisir coupable : écouter de la musique encodée en AAC :-)


Posted by St3rk | Permanent link | File under: linux, musique, slackware

2011-07-10 23:32

Linux : configurer la souris pour un gaucher

mr_bump

C'est marrant comme chaque action quotidienne devient compliquée avec le bras droit dans le plâtre. Tout devient complexe : valider un ticket SNCF/RATP (on valide sa carte du mauvais côté), utiliser des ciseaux (on ne voit pas ce qu'on coupe), se servir d'un ordinateur (la souris devient inutilisable), ouvrir son canif (prévu pour s'ouvrir d'une seule main, mais de la droite)...
L'avantage, pour la souris, c'est qu'on peut modifier facilement sa configuration et l'adapter à ses besoins.

La manière la plus simple de le faire et d'utiliser xmodmap. Mais cette méthode modifie le mapping de manière identique pour toutes les souris connectées.
À l'inverse, xinput permet de configurer indépendamment chaque souris. Il permet par exemple de modifier le mapping d'une souris USB sans toucher à celui du touchpad. C'est cet outil que je vais utiliser.


Configurer la souris


Il faut d'abord lister les différents périphériques connectés :

~$ xinput list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver                   	id=10	[slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver                   	id=11	[slave  pointer  (2)]
⎜   ↳ ImPS/2 Generic Wheel Mouse              	id=14	[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-50                            	id=12	[slave  keyboard (3)]
↳ AT Translated Set 2 keyboard            	id=13	[slave  keyboard (3)]
↳ HP WMI hotkeys                          	id=15	[slave  keyboard (3)]

On voit que deux périphériques correspondent à ma souris et portent le même nom. L'option --long permet d'avoir une description plus détaillée.
~$ xinput list --long
[...]
⎜   ↳ Logitech USB Receiver                   	id=10	[slave  pointer  (2)]
Reporting 3 classes:
Class originated from: 10
Buttons supported: 24
Button labels: Button Left Button Middle Button Right Button Wheel Up Button Wheel Down Button Horiz Wheel Left Button Horiz Wheel Right Button Side Button Extra Button Forward Button Back Button Task Button Unknown Button Unknown Button Unknown Button Unknown Button Unknown Button Unknown Button Unknown Button Unknown Button Unknown Button Unknown Button Unknown Button Unknown
Button state:
Class originated from: 10
Detail for Valuator 0:
Label: Rel X
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 10
Detail for Valuator 1:
Label: Rel Y
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
⎜   ↳ Logitech USB Receiver                   	id=11	[slave  pointer  (2)]
Reporting 3 classes:
Class originated from: 11
Buttons supported: 7
Button labels: Button 0 Button Unknown Button Unknown Button Wheel Up Button Wheel Down Button Horiz Wheel Left Button Horiz Wheel Right
Button state:
Class originated from: 11
Keycodes supported: 248
Class originated from: 11
Detail for Valuator 0:
Label: None
Range: 1.000000 - 652.000000
Resolution: 10000 units/m
Mode: absolute
Current value: 683.000000
[...]

C'est donc la première qui possède les boutons à inverser (Button Left, Button Middle et Button Right). On note qu'elle est identifiée par l'id 10. On va tester ça tout de suite. Pas trop d'hésitations à avoir : si on s'est trompé, un redémarrage de X.org rétablira les paramètres d'origine.

 ~$ xinput set-button-map 10 3 2 1

10 correspond ici à l'ID de la souris. Les trois chiffres qui suivent correspondent aux différentes actions affectées, dans l'ordre des boutons : 1 correspond au clic gauche pour un droitier, 2 au clic du milieu, et 3 au clic droit pour un droitier. On inverse ici les actions 1 et 3.

Conserver la configuration au redémarrage


La souris devrait maintenant fonctionner comme attendu, mais les paramètres d'origine seront restaurés au prochain redémarrage de X.org ou de l'ordinateur. Il faudra donc lancer cette commande à chaque lancement de X.org.

Pour les utilisateurs d'OpenBox, il suffit d'éditer ~/.config/openbox/autostart.sh et d'ajouter la ligne :

xinput set-button-map <id> 3 2 1 &
Où <id> correspond à l'identifiant de la souris, 10 chez moi.

Pour les utilisateurs de gnome, il faut créer un script de démarrage. Ouvrir un éditeur de texte et coller le texte suivant :

#!/bin/sh
xinput set-button-map <id> 3 2 1 &
exit 0
Où <id> correspond à l'identifiant de la souris, 10 chez moi.

L'enregistrer, par exemple sous dans ~/.lhmouse.sh, et le rendre exécutable :

chmod +x ~/.lhmouse.sh

Il faudra ensuite ajouter ce script aux programmes lancés au démarrage par gnome (Système → Préférences → Applications au démarrage).


Posted by St3rk | Permanent link | File under: linux

2011-05-29 01:16

FreeBSD : activer l'égaliseur sous OSS

FreeBSD utilise OSS pour la gestion du son. Certes, l'interface de mixer est bien plus sobre que celle d'alsamixer, mais elle est tout aussi efficace.

Une fois la carte son activée, il suffit d'éditer /boot/loader.conf pour ajouter le support de l'égaliseur.

Ajouter la ligne :

hint.pcm.0.eq=1

Après un reboot, on vérifie le changement grâce à mixer :

%mixer
Mixer vol is currently set to 75:75
Mixer bass is currently set to 50:50
Mixer treble is currently set to 50:50

Cool, ça marche :-)
On peut maintenant modifier le niveau des basses ou des aigus à l'aide de la commande mixer. Par exemple, pour passer les basses à 40% au lieu de 50% :

%mixer bass 40
Setting the mixer bass from 50:50 to 40:40.


Posted by St3rk | Permanent link | File under: freebsd, musique

2011-05-14 18:48

FreeBSD : jail et client VPN

monopoly_icon_small.gif

Les jails sous FreeBSD sont souvent qualifiées de "chroot sous steroïdes". Elle permettent de confiner des processus, mais également des systèmes FreeBSD complets.

On se rapproche alors des possibilités de la para-virtualisation : la jail possède sa propre IP, et sa propre liste d'utilisateurs.

La configuration du réseau est cependant plus complexe qu'avec une solution de types xen. Par exemple, la jail partage la table de routage de la machine "hôte". Il est également impossible de changer d'IP ou de créer une interface virtuelle depuis la jail.


Le problème


Je souhaite mettre en place la configuration suivante :

- Une jail, configurée et démarrée par ezjail. Elle devra router router le trafic à destination de l'extérieur par un serveur VPN, ce qui me permettra de télécharger des ISO Linux en toute tranquillité.

- La machine "hôte", qui me sert entre autre de serveur mail. Pour continuer à bénéficier du reverse-DNS, elle devra conserver l'IP publique attribuée par mon FAI.

Il est impossible de créer une interface virtuelle tun/tap depuis la jail. Il est possible d'en créer une depuis la machine "hôte", puis de l’attribuer à la jail, mais cette procédure est complexe. Il est plus simple d'installer le client VPN sur la machine "hôte".


Le plan


On procédera de la manière suivante :

- Installer et configurer OpenVPN :
configurer la machine hôte pour qu'elle soit connectée au VPN.

- Activer le support des tables de routage multiples :
recompiler le noyau afin de pouvoir configurer plusieurs tables de routage.

- Attribuer l'une des tables de routage à la jail et la remplir :
une des tables de routage, comportant le serveur VPN comme passerelle par défaut, permettra à la jail de joindre l'extérieur via le VPN.

- Créer un script afin de remplir la table de routage au démarrage :
pour ne pas avoir à le faire à la main à chaque reboot.


Toutes les manipulations seront effectuées sur la machine "hôte".


Installer et configurer OpenVPN


Installons OpenVPN :

#cd /usr/ports/security/openvpn
#make config-recursive
#make install clean

Il faut configurer OpenVPN afin de se connecter au serveur. Le fichier par défaut se trouve dans /usr/local/etc/openvpn/openvpn.conf. Créons le fichier :

#mkdir /usr/local/etc/openvpn
#touch /usr/local/etc/openvpn/openvpn.conf

Il faut maintenant le remplir. Son contenu dépend du serveur VPN. Le fichier d'exemple est un bon point de départ si vous ne pouvez pas vous en procurer un "tout fait".

Dans ma configuration, la machine est connectée au serveur VPN mais continue de router le traffic normalement. Il faut donc empêcher OpenVPN de changer la passerelle par défaut, en commentant le ligne suivante si elle est présente (toujours dans /usr/local/etc/openvpn/openvpn.conf) :

# redirect-gateway def1 bypass-dhcp

Ajoutons ensuite la ligne suivante à /etc/rc.conf afin de lancer OpenVPN au démarrage :

openvpn_enable="YES"

Lançons openVPN afin de vérifier qu'il n'y a pas d'erreur :

#openvpn /usr/local/etc/openvpn/openvpn.conf &

Si tout se passe bien, vous verrez normalement une ligne de ce types au démarrage :

May 14 15:19:00 kirby openvpn[1492]: Initialization Sequence Completed

Notez également la présence d'une ligne ressemblant à :

openvpn[1492]: /sbin/route add -net 10.13.3.0 10.13.3.61 255.255.255.0

On voit ici que l'IP de la passerelle permettant de passer par le VPN est 10.13.3.61. Retenez-la, elle servira bientôt.

Activer le support des tables de routage multiples


Le problème qui se pose dans cette partie est le suivant :

- La machine "hôte" est connectée au serveur VPN, mais celui-ci n'est pas défini comme passerelle par défaut. Le trafic est donc toujours routé par la box.

- La machine "hôte" et la jail partagent la même table de routage.

Donc le trafic de la jail est également routé par la box (ça ressemble à un sophisme, mais le raisonnement me semble bon :-) ).


Il faut donc attribuer des tables de routage différentes à la machine "hôte" et à la jail. Pour cela, nous allons recompiler le noyau en activant le support des tables de routage multiple.

Créons le fichier de configuration pour notre noyau :

#cd /usr/src/sys/<ARCHITECTURE_PROC>/conf
#cp GENERIC KIRBY

<ARCHITECTURE_PROC> devra être remplacé par le type d'architecture de votre micro-processeur, i386 dans mon cas.
Le nom du noyeau, ici KIRBY n'a pas d'importance. Vous pouvez l'appeler comme vous le souhaitez. Conventionnelement, il est écrit tout en majuscule.

Ajoutons la ligne suivante à notre fichier de configuration (toujours /usr/src/sys/<ARCHITECTURE_PROC>/conf/kirby) :

options         ROUTETABLES=4         # default is 1, max 16

On va maintenant compiler le noyau, et l'installer :

cd /usr/src
make buildkernel KERNCONF=KIRBY
make installkernel KERNCONF=KIRBY


Attribuer l'une des tables de routage à la jail et la remplir


Il faut maintenant attribuer la table de routage à notre jail. Avec ezjail, le fichier de configuration est :

/usr/local/etc/ezjail/<NOM_DE_LA_JAIL>

Il faut ajouter ou modifier la ligne suivante :
export jail_<NOM_DE_LA_JAIL>_fib="1"

<NOM_DE_LA_JAIL> correspond au nom que vous avez donné à votre jail.

Remplissons la table de routage afin de lui donner accès à l'extérieur:

setfib 1 route add default <IP_DE_LA_PASSERELLE>

<IP_DE_LA_PASSERELLE> correspond à l'adresse de la passerelle du VPN, chez moi 10.13.3.61.

Vous pouvez tester le fonctionnement, par exemple en vous rendant sur le site geoiptool depuis la machine "hôte" et depuis la jail. Vous devriez avoir deux IP publiques différentes.


Créer un script afin de remplir la table de routage au démarrage


Tout devrait fonctionner à cette étape. Mais dans la configuration actuelle il faut remplir la table de routage à chaque démarrage. Afin d'automatiser tout ça, j'ai crée un petit script. Au passage, merci à Smortex de m'avoir aidé à comprendre le système de démarrage de FreeBSD.

Créons le fichier /usr/local/etc/rc.d/fib, et insérons :

#!/bin/sh
#

# PROVIDE: fib
# REQUIRE: NETWORKING openvpn ezjail

. /etc/rc.subr

name="fib"
start_cmd="${name}_start"
stop_cmd="${name}_stop"
rcvar=`set_rcvar`

load_rc_config $name

: ${fib_enable="NO"}

command="/usr/sbin/setfib"

fib_start()
{
         :       ${fib_gw=$(cat /var/log/messages | grep -E '/sbin/route add' | awk '{print $10}' | sed -n ' $p')}
         ${command} ${fib_nb} route add default ${fib_gw}
}

fib_stop()
{
         ${command} ${fib_nb} route delete default
}

load_rc_config $name
run_rc_command "$1"

Modifions les droits pour le rendre exécutable :
#chown +x /usr/local/etc/rc.d/fib

Il faut aussi remplir /etc/rc.conf afin de lancer le script script au démarrage et de lui fournir les information dont il a besoin :
fib_enable="YES"
fib_nb="1"

Si l'IP de la passerelle est toujours identique, on peut ajouter dans /etc/rc.conf :
fib_gw="<IP_DE_LA_PASSERELLE>"

Tout est maintenant configuré. Il ne reste plus qu'à redémarrer pour en tester le fonctionnement.


sources :
http://www.freebsd.org/doc/handbook/kernelconfig-building.html
http://forums.freebsd.org/showthread.php?t=19607

source de l'image :
http://www.worldofmonopoly.com/fansite/index.php


Posted by St3rk | Permanent link | File under: freebsd

2011-04-26 15:07

FreeBSD : configurer un serveur mail

Je continue donc ma migration sous freeBSD, et c'est maintenant le home-server qui y passe.
Première étape de configuration, le serveur mail, en utilisant Postfix et Procmail.

Ce tutoriel vous permettra de configurer facilement et rapidement un serveur mail. Par contre, chaque boite mail devra correspondre à un utilisateur existant sur le système. Cette méthode est donc inadaptée si vous souhaitez créer un nombre important de boites mail : à chaque fois il faudra créer l'utilisateur, éventuellement le chrooter ou désactiver l'accès ssh, paramétrer le .procmailrc, etc.

Bref, si vous avez des besoins plus complexes, je vous conseille plutôt d'aller voir ce tutoriel, bien plus élaboré mais aussi plus long à mettre en place.


Étape 1 : désactiver sendmail

Sendmail est le M.T.A. installé par défaut sous freeBSD. Comme je souhaite le remplacer par postfix (plus simple à configurer), il va falloir le désactiver.

On va commencer par l'arrêter à l'aide de la commande :

# /etc/rc.d/sendmail forcestop

S'il fait de la résistance, un killall sendmail devrait résoudre le problème.

Sendmail est maintenant désactivé, mais il sera relancé automatiquement au prochain démarrage de l'ordinateur. Afin d'empêcher cela, on prendra soin d'éditer le fichier /etc/rc.conf, et d'ajouter la ligne suivante :

sendmail_enable="NONE"

Étape 2 : installer les programmes nécessaires

Nous allons d'abord installer postfix, le MTA qui remplacera sendmail :

# cd /usr/ports/mail/postfix/
# make config-recursive
# make install clean

Les questions suivantes vous seront posées durant l'installation :

You need user "postfix" added to group "mail". Would you like me to add it [y]?
Would you like to activate Postfix in /etc/mail/mailer.conf [n]?

Il faut répondre oui au deux (en tapant "Y").

Maintenant, installons procmail :

# cd ../procmail/
# make config-recursive
# make install clean

Étape 3 : configurer postfix

Nous allons adapter la configuration de postfix à nos besoins. Le fichier de configuration principal est /usr/local/etc/postfix/main.cf.

Déplaçons le afin d'en garder ne copie intacte :

# mv /usr/local/etc/postfix/main.cf /usr/local/etc/postfix/main.cf.bak

Recréons un fichier vide :

# touch /usr/local/etc/postfix/main.cf

On peut maintenant coller dans le fichier vierge /usr/local/etc/postfix/main.cf ainsi obtenu la configuration suivante :

queue_directory = /var/spool/postfix
command_directory = /usr/local/sbin
daemon_directory = /usr/local/libexec/postfix
mail_owner = postfix
unknown_local_recipient_reject_code = 550
mynetworks_style = host

debug_peer_level = 2

debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
xxgdb $daemon_directory/$process_name $process_id & sleep 5

sendmail_path = /usr/local/sbin/sendmail
mailq_path = /usr/local/bin/mailq
setgid_group = maildrop
html_directory = no
manpage_directory = /usr/local/man
sample_directory = /usr/local/etc/postfix
readme_directory = no
home_mailbox = Maildir/
mailbox_command = /usr/local/bin/procmail -a "$EXTENSION" DEFAULT=$HOME/Maildir/ MAILDIR=$HOME/Maildir
mydomain = mon_nom_de_domaine.fr
myhostname = hote.$mydomain
myorigin = $myhostname
mydestination = $myhostname, localhost,$mydomain

mynetworks = 192.168.1.0/24
mynetworks_style = subnet

Les variables soulignées sont à remplacer par celles correspondant à votre machine. Le nom de domaine fini géralement par .com, .fr, .org (ou tout autre TLD). Le nom d'hôte correspond généralement au nom de la machine affiché sur le prompt, avant le "$" ou le "#".

La ligne home_mailbox = Maildir/ permet à chaque utilisateur d'avoir sa boite mail dans son home. Par exemple, toto pourra accéder à ses mails dans /usr/home/toto/Maildir/, au lieu de /var/mail/toto.

La ligne mailbox_command = /usr/local/bin/procmail -a "$EXTENSION" permet d'appeler procmail à chaque fois qu'on reçoit un mail. On pourra ainsi créer des règles pour trier le courrier.

Le plus gros est fait. On peut maintenant essayer de lancer postfix :

# /usr/local/etc/rc.d/postfix onestart

Étape 4 : tester le fonctionnement de postfix

Afin de tester son fonctionnement, vous pouvez vous envoyer un message à l'aide de mail depuis le serveur. Vous pouvez soit l'utiliser en mode interactif à l'aide de la commande :

% mail <utilisateur>

On rentrera ensuite le sujet, entrée, puis le corps du message. La saisie se termine par "ctrl + D" sur une ligne vide, ou un point sur une ligne vide puis entrée.

On peut aussi tout faire tenir en une ligne de commande :

% echo "<Message_à_envoyer>" | mail -s "<sujet_du_message>" <utilisateur>

Si tout s'est bien passé, un dossier Maildir a dû être créé dans le home de votre utilisateur. Vous devez pouvoir lire votre message :

% cat /usr/home/<utilisateur>/Maildir/new/1303821288.V5bd4c369I14M268867.hote.nomdedomaine.fr

La suite de chiffre est bien sûr variable, et hote.nomdedomaine.fr dépend de votre configuration (heureusement qu'il y a la complétion :-) ).

Donc si tout s'est bien passé, vous pouvez voir votre dossier et votre mail. Ce n'était pas le cas pour moi. J'ai donc été voir le fichier de log (/var/log/message).

% cat /var/log/messages
[...]
Apr 26 12:28:50 <hote> postfix/smtpd[24331]: fatal: open database /etc/aliases.db: No such file or directory
[...]

Il suffit dans ce cas de créer une fichier d'allias vide, de reconstruire la base de donnée, puis de rédémarrer postfix :

# touch /etc/aliases
# postmap /etc/aliases
# /usr/local/etc/rc.d/postfix onestart

Vous pouvez re-tester en vous envoyant un mail, cette fois-ci ça devrait marcher.

Par contre, la configuration telle-quelle ne permet pas l'envoi de mail depuis le serveur : la configuration par défaut de procmail impose un chroot des démons.
Il y a donc deux possibilités :

- on met correctement en place le chroot, afin d'augmenter la sécurité du serveur
- on désactive le chroot dans les fichiers de configuration

J'ai choisi la deuxième solution, je pense que le niveau de sécurité reste largement suffisant. Il faut alors modifier le /usr/local/etc/postfix/main.cf.

Copier le fichier afin d'en garder une copie :

# cp /usr/local/etc/postfix/master.cf /usr/local/etc/postfix/master.cf.bak

Il faut maintenant éditer le fichier, afin de rdéfinir tous les démons comme non chrootés. On peut voir ici une ligne qui défini smtp comme chrooté :

# #================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
#================================================================
smtp inet n - - - - smtpd

Il faudra la modifier en :

# #================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
#================================================================
smtp inet n - n - - smtpd

Il faudra procéder de même pour toutes les lignes non commentées du fichier.

Maintenant que postfix est paramétré, et fonctionne correctement, on peut le lancer au démarrage. Il faut éditer le fichier /etc/rc.conf, et ajouter :

postfix_enable="YES"

Étape 5 : paramétrer procmail

Le paramétrage de procmail se fait directement dans le dossier de l'utilisateur, à l'aide du fichier ~/.procmailrc. Je ne vais pas m'étendre en explications dessus, il y a déjà pas mal de documentation.

Il faut par contre faire bien attention aux droits de ce fichier. Si vous avez un message du types :

Apr 26 21:39:13 <hote> procmail[56673]: Suspicious rcfile "/home/<user>/.procmailrc"

Vérifiez que le .procmailrc appartient bien à l'utilisateur, et que les droits sur le fichier sont à 640.


Conclusion

Voilà, le serveur mail est fonctionnel. Il reste à installer un client en ligne de commande (ex : mutt), un webmail (ex : roundcube), ou à le paramétrer pour le rendre accessible via un M.U.A..


Posted by St3rk | Permanent link | File under: freebsd

2011-04-22 21:31

FreeBSD : faire fonctionner le NuForce uDac

nuforce µDAC

Le NuForce uDac est un DAC USB, qui joue le rôle d'une carte son externe. Malgré sa taille très réduite, sa qualité sonore est plus que correcte. Il permet donc de remplacer avantageusement les puces audio, souvent de qualité médiocre, intégrées au ordinateurs portables.

J'ai cependant eu quelques problèmes pour le faire fonctionner sous freeBSD. La démarche proposée dans le handbook ne permet pas de charger le driver adéquat.

On peut d'abord constater que le DAC est bien détecté au branchement :

# dmesg [...]
uhid1: <Vendor strings are placed here. Nuforce DAC, class 0/0, rev 1.10/1.00, addr 2> on usbus0

On tente donc de charger le méta-pilote snd_driver, ce qui permet de charger les pilotes audio les plus courants :

# kldload snd_driver

On affiche ensuite les modules sélectionnés :

cat /dev/sndstat
FreeBSD Audio Driver (newpcm: 32bit 2009061500/i386)
Installed devices:
pcm0: <Intel ICH4 (82801DB)> (play/rec) default

Manque de bol, seul le driver de la puce audio interne du portable a été chargé (Intel ICH4). Apparement la puce du NuForce uDac ne fait pas partie des plus courantes. Il va donc falloir trouver sa référence et chercher le driver correspondant dans les notes de compatibilité matérielle.

Un petit tour par headfi nous apprend que la puce utilisée est une Sabre ESS9022.
Re-manque de bol, elle ne fait pas partie de la liste de compatibilité. Si un driver existe, il faudra le trouver autrement.

Coup de chance cette fois, à force de chercher une solution sur internet, je suis tombé sur une page parlant de snd_uaudio. Un petit coup d’œil dans la page de man nous apprend que ce driver est destiné aux cartes son USB. Ça semble correspondre...

On le charge à la main :

# kldload snd_uaudio

On regarde s'il correspond bien au uDac :

# cat /dev/sndstat
FreeBSD Audio Driver (newpcm: 32bit 2009061500/i386)
Installed devices:
pcm0: <Intel ICH4 (82801DB)> (play/rec) default
pcm1: <USB audio> (play)

Cette fois ça marche. Il ne reste donc qu'à ajouter la ligne suivante dans /boot/loader.conf afin de charger tout ça au démarrage :

snd_uaudio_load="YES"

Voilà, après ces quelques efforts, je peux enfin profiter de ma musique sans saigner des oreilles :-P


Posted by St3rk | Permanent link | File under: freebsd, musique

2011-03-26 18:46

Compiler ePDFView sous slackware current

Mise à jour : plus besoin de cette manipulation, une slackbuild est maintenant disponible.

ePDFView est un lecteur de PDF libre et léger, dans la lignée d'Evince, les dépendances gnome en moins. Il s'accorde donc très bien avec l'utilisation d'Openbox.

Malheureusement, depuis mon passage en current, impossible de le lancer. C'était déjà arrivé avec plusieurs logiciels. Dans la plupart des cas il suffit de les re-compiler sous le nouvel environnement et des les réinstaller.

Je vérifie que j'ai bien le dernier slackbuild, et c'est parti. Jusqu'à cette erreur :

PDFDocument.cxx: In member function ‘virtual void
ePDFView::PDFDocument::setTextSelection(ePDFView::DocumentRectangle*)’:
PDFDocument.cxx:690:22: erreur: too many arguments to function ‘char*
poppler_page_get_text(PopplerPage*)’
/usr/include/poppler/glib/poppler-page.h:101:24: note: declared here
make\[3]: *** \[libepdfview_a-PDFDocument.o] Erreur 1
make\[3] : on quitte le répertoire « /tmp/SBo/epdfview-0.1.7/src »
make\[2]: *** \[all-recursive] Erreur 1
make\[2] : on quitte le répertoire « /tmp/SBo/epdfview-0.1.7/src »
make\[1]: *** \[all-recursive] Erreur 1
make\[1] : on quitte le répertoire « /tmp/SBo/epdfview-0.1.7 »
make: *** \[all] Erreur 2



Heureusement, j'ai pu trouver rapidement la solution sur un site espagnol.

Le problème est dû à une incompatibilité avec poppler 0.16.x (version 0.16.2 actuellement en current). Heureusement, il suffit de modifier légèrement le slackbuild, qui se chargera à son tour de modifier le code source.

La méthode :



Télécharger le dernier slackbuild :

wget http://slackbuilds.org/slackbuilds/13.1/office/epdfview.tar.gz


Le décompresser, puis se rendre dans le dossier qu'on vient de créer :

cd epdfview


Télécharger les sources correspondantes :

wget http://trac.emma-soft.com/epdfview/chrome/site/releases/epdfview-0.1.7.tar.bz2


Ouvrir le fichier epdfview.SlackBuild à l'aide de votre éditeur de texte favoris (vim est le meilleur, toussa) et se rendre à la ligne 78. Vous êtes normalement situé juste après les lignes suivantes :

# Add patch to fix mouse-scrolling in 0.1.7
patch -p0 &lt; $CWD/mouse-scroll-fix.patch

Après ces deux lignes donc, ajouter :

sed -e 's:poppler_page_get_text:poppler_page_get_selected_text:' \
-e 's:page, &textRect:page, POPPLER_SELECTION_GLYPH, \&textRect:' -i src/PDFDocument.cxx


Enregistrer et quitter. Vous pouvez maintenant relancer la compilation, elle doit se dérouler sans problème.


Cette méthode est valable le 26/03/2011, mais sera certainement inapplicable et inutile dès le passage à slackware 13.37.


Posted by St3rk | Permanent link | File under: linux, slackware

2011-03-26 17:05

Profiter du clavier azerty sous xorg en slackware current

Je suis passé depuis peu en slackware current, pour profiter de firefox 4. Je n'ai pas eu à le regretter, la current est très stable. Il y a déjà eu 3 release candidate, et la version 13.37 (appréciez le clin d'oeil) n'est plus très loin. Par contre, j'ai eu un peu de mal à passer le clavier en azerty sous openbox.

En effet, xorg n'utilise plus hal pour la détection du matériel. La modification du fichier /etc/hal/fdi/policy/10-keymap.fdi n'est donc plus d'aucune aide. Il faut modifier directement la configuration de xorg de la manière suivante :

Se logger en root :
su

Copier le fichier de configuration du clavier dans le bon dossier :
cp /usr/share/X11/xorg.conf.d/90-keyboard-layout.conf /etc/X11/xorg.conf.d/

L'éditer à l'aide de votre éditeur de texte préféré (sûrement vim, vu que c'est le meilleur du monde entier :-D ) :
vim /etc/X11/xorg.conf.d/90-keyboard-layout.conf

Modifier la ligne suivante :
Option "XkbLayout" "us"
par :
Option "XkbLayout" "fr"

Il ne reste plus qu'à enregistrer et à (re)démarrer xorg.

Merci à Thom1 du forum slackware-fr, qui m'a aidé à résoudre ce problème.


Posted by St3rk | Permanent link | File under: linux, slackware