KubuntuBlog

Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. Jamie Zawinski

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

dimanche 17 décembre 2006

Mumble : un serveur de chat vocal libre

Introduction

Icone Un serveur de chat vous permet de discuter à plusieurs au travers d'un réseau. C'est par exemple beaucoup utilisé dans la communauté des joueurs en ligne. Cela peut aussi vous permettre de mettre en place des conférences à peu de frais. En général c'est mis en place sous forme d'un réseau en étoile : Un serveur centralisé et N client qui se connectent. Charge au serveur de redistribuer l'audio vers les clients concernés.

Si vous avez déjà cherché un logiciel de ce type, vous connaissez surement teamspeak. Il fonctionne correctement et est multiplateforme. Mais c'est un logiciel propriétaire et la version pour Linux est un peu laissée à l'abandon.

Je vous invite donc à découvrir Mumble qui propose à peu prêt les même fonctions mais qui est libre et semble avoir un développement actif. De plus il se base sur un codec libre : Speex.

Installation

Si vous êtes sous Edgy, presque aucun problème[1], les auteurs proposent des paquets tous prêts. Je vous invite quand même à lire la suite pour la configuration.

Si vous êtes sous Dapper, ça se complique. En effet, la dernière version en date (Beta 0.9.4) n'est pas compatible avec la version de libspeex disponible.

Qu'a cela ne tienne, je vous ai fait des paquets de backport pour Mumble. Pour ne pas casser les autres logiciels qui dépendent de libspeex, j'ai statiquement lié la dernière version[2] avec Mumble. J'en ai profité pour ajouter quelques petits bonus qui vont vous simplifier la vie.

Vous pouvez donc les télécharger mumble et mumble-server dans mon dépot pour dapper.

Pour les installer :

sudo dpkg -i mumble_0.9.4-0ubuntu1_i386.deb
sudo dpkg -i mumble-server_0.9.4-0ubuntu1_i386.deb

Vous aurez surement d'autres paquets à installer, je pense par exemple à libqt4-core, libqt4-gui, libqt4-sql et libxevie1, mais vous remarquerez qu'il ne dépendent pas de libspeex qui est "embarqué"

Configuration

Murmur : le serveur

La configuration du serveur se fait à l'aide du fichier /opt/mumble-server/murmur.ini[3]. A priori, vous n'aurez rien à y changer. Par contre le répertoire /opt/mumble-server/ doit appartenir à l'utilisateur qui lancera murmur. Vous changerez le propriétaire de cette manière :

sudo chown -R jjl:jjl /opt/mumble-server/

Puis démarrez le :

murmur -ini /opt/mumble-server/murmur.ini

Ensuite il vous faut créer des utilisateurs. Pour cela un script CGI vous est fournit (murmur.pl). Notez que vous devrez sans doute installer d'autres paquets perl pour l'utiliser. A titre d'exemple j'ai du ajouter libnet-dns-perl, libdbix-abstract-perl et libdbd-sqlite3-perl.

Si vous ne disposez pas d'un serveur web, j'ai ajouté ce qu'il fallait[4] :

cd /opt/mumble-server/
./web.py

Un petit serveur web vous attend alors sur le port 31284 : http://localhost:31284/ il ne sert qu'a l'accès au script CGI. Renseignez alors les champs et vous allez recevoir un email d'activation de votre compte.[5]

Capture

Sinon, plus bourrin[6], vous pouvez aussi utiliser SQLite Browser pour ajouter les utilisateurs dans la table Players[7]

Capture

Pour ceux qui sont sous Edgy, vous pouvez disposer des mêmes outils en téléchargant le paquet mumble-server et en en extrayant les fichiers à l'aide de :

dpkg-deb -X mumble-server_0.9.4-0ubuntu1_i386.deb .

Par contre, à cause de ce bug vous devez être dans /opt/mumble-server/ avant de lancer murmur !

Mumble : le client

Lancez simplement mumble en ligne de commande et vous voyez apparaître sa jolie interface graphique. Pour vous connecter au serveur, rien de plus simple : Menu Server / Connect et entrez vos paramètres :

Capture

Vous pouvez alors créer des Channels, gérer les droits etc... Il ne vous reste qu'a trouver des copains pour discuter avec eux ;)

Capture

Précisions sur les paquets

Quelques petites notes sur la construction des paquets

  • Oui, ils n'ont pas été construits dans les règles de l'art, des modifictions existent hors du repertoire debian, les chemins d'install ne sont pas très beaux...
  • Vous pouvez trouver le patch à appliquer aux sources de Mumble 0.9.4 ici. Pour l'appliquer : patch -p0 < mumble-0.9.4-dapper.patch
  • Si vous voulez recompiler, speex doit être compilé en statique uniquement dans le répertoire speex-1.2beta1 au même niveau que mumble-0.9.4
  • J'en ai profité pour ajouter la correction de ce bug avec ce patch

PS: et je suis en train de vous préparer une traduction.

Notes

[1] sur le forum ca n'a pas l'air aussi évident

[2] Speex 1.2beta1

[3] Oui, je sais le chemin n'est pas très orthodoxe

[4] commandes à executer avec le même utilisateur que ci-dessus

[5] Notez bien que vos mails doivent pouvoir être délivrés à partir de votre machine. Allez voir la première partie de ce billet pour plus de détails

[6] et votre machine doit disposer d'un serveur XWindow

[7] le mot de passe est stocké en clair

lundi 4 décembre 2006

[KDE] Un menu pour le traitement d'images

Vous voulez souvent faire des traitements sur vos images (réduction, compression, retournement, conversion) ? L'interface des KIPI plugins dans Gwenview vous rebute[1] ? La ligne de commande et les 1500 options de ImageMagick vous font peur ? Alors, voici peut-être LA solution que vous attendiez !

J'ai nommé Kim (KDE Image Menu)

Kim est un service menu pour Konqueror. C'est à dire un sous-menu additionnel qui viendra s'insérer sous Action dans le menu contextuel. Vous pourrez ainsi exécuter de multiples commandes ImageMagick d'un simple click de souris.

Ses fonctions en bref :

  • Re-compression (70%, 80%, 90% ou autre)
  • Redimensionnement (300x225, 600x450, 800x600, 1024x768, 1200x900 ou autre)
  • Paramètres pré-définis pour le web ou le mail
  • Conversion (JPG, PNG, GIF, TIFF ou autre)
  • Rotations
  • Renommage
  • Et plusieurs autres effets amusants (flash slideshow, gif animé, bordure ...)

Pour l'installer :

  • installez ImageMagick (disponible dans les dépots)
  • téléchargez Kim sur kde-apps
  • décompressez le
  • exécutez le script install.sh en tant que root (ie: avec sudo)[2]
  • relancez Konqueror

et voila !

Edit: Comme signalé dans les commentaires, vous pouvez simplement l'installer à partir des dépôts. Il est nommé konq-kim.

Pour l'utiliser, dans Konqueror :

  • click droit sur une/des images
  • Actions
  • Kim - ...

Capture écran

Je vous invite aussi à aller voir la démo pour vous faire une idée plus précise.

Pour les Gnomistes, allez voir NIS mais qui semble beaucoup plus limité. Il en existe sans doute d'autres.

Notes

[1] Mais pourquoi la destination est toujours la racine !

[2] il va s'installer dans /usr/share/apps/konqueror/servicemenus/, /usr/bin/ et /usr/share/apps/kim

Bacula 3 : Interface graphique, Trucs et astuces

Voici mon dernier article sur Bacula. Pour finir, voyons les interfaces graphiques ainsi que quelques astuces de configuration supplémentaires.

Interfaces graphiques

Plusieurs interfaces graphiques sont disponibles pour contrôler ou suivre Bacula :

  • bimagemgr : qui permet de gérer les cdroms utilisés par Bacula. Comme j'utilise des bandes, je n'ai pas cherché plus loin.
  • wx-console : Une interface graphique à bacula Console, c'est la plus avancée
  • gnome-console : une autre, moins avancée
  • tray-monitor : un démon associé à une icône dans la barre des tâches pour suivre le fonctionnement de Bacula.
  • bacula-web : Une interface web en php pour suivre l'évolution des sauvegardes. C'est un programme read-only et qui ne fonctionne pas avec une base SQLite[1] !

L'utilisation d'une interface graphique était seulement une option de mes prés-requis. Mais je doit dire que la possibilité d'avoir une icone dans la barre des tâches pour suivre mes sauvegardes m'a emballé !
Malheuresement, je n'ai pas pu tester cette fonction. En effet, les paquets Dapper de Bacula n'integrent que les consoles Gnome et WxWidget. Le tray-monitor n'est pas présent.
Voila peut-être une raison de passer à Edgy sur le poste bureautique. Reste à vérifier la compatibilité des versions 1.36.3 de Dapper et 1.38.11 de Edgy !

WxConsole

Nous allons quand même installer et configurer cette interface graphique[2] :

Penfret$ sudo apt-get install bacula-wxconsole

Il nous faut maintenant configurer l'interface graphique pour lui indiquer sur quel Director se connecter :

Penfret$ sudo vi /etc/bacula/wx-console.conf

Modifiez le de cette manière :

Director {
Name = FortCigogne-dir # correspond au Name de bacula-dir.conf
DIRport = 9101
address = FortCigogne
Password = ""
}

Et voila, pour lancer votre interface graphique :

Penfret$ sudo bacula-wxconsole -c /etc/bacula/wx-console.conf

wx-console

Deux onglets s'offrent à vous :

  • Console qui est une interface directe à la console texte
  • Restore qui vous propose une interface à la souris pour les opérations de restauration

A noter que la dernière version semble un peu plus évoluée wx-console

Mais la version que j'ai testé semble très mal en point :

  • les options de la page de man ne sont pas reconnues
  • je n'ai pas réussit à faire fonctionner l'onglet restore
  • une fois sur deux, je n'ai aucune possibilité d'action

Bref, la version Dapper est assez décevante :(

Bacula-web

Cette interface semble très interresante, mais ne fonctionne pas avec une base SQLite.

Si vous utilisez une autre base, je vous renvoi vers une doc d'installation pour Debian ou vers le site officiel ou vous trouverez des screenshots qui font envie. :)

BaculaWeb

Trucs et astuces

logrotate

Plus qu'une astuce, cette partie est essentielle

Le fichier de log de bacula grossit ad vitam aeternam nous devons donc aussi configurer logrotate pour qu'il s'occupe de ce fichier. Normalement bacula est fournit avec un fichier d'exemple, mais dans dapper il semble ne pas exister. Vous pouvez trouver sur le CVS de bacula le fichier qui devrait être livré.

Pour le créer vous même, suivez cette procedure :

# edition du fichier en tant que root
$ sudo vi /etc/logrotate.d/bacula

Puis ajoutez y ces lignes :

/var/lib/bacula/log {
monthly
rotate 5
notifempty
missingok
}

Effacer la base de donnée de test

Normalement il existe un script drop_bacula_tables qui devrait faire le travail. mais chez moi il n'est pas installé. Donc voici la procedure pour remettre la base sqlite à zero :

$ cd /var/lib/bacula/
$ sudo mv bacula.db bacula.db.test
$ sudo /usr/share/bacula-director/make_sqlite_tables
$ sudo chown bacula:bacula bacula.db
$ ls -la bacula.db*
-rw-r- 1 bacula bacula  41984 2006-11-27 15:31 bacula.db
-rw-r- 1 bacula bacula 328704 2006-11-27 14:46 bacula.db.test

logwatch

logwatch est un utilitaire qui vous permet de suivre vos fichiers de log sans trop vous fatiguer. En effet une fois configuré, vous recevez tous les jours par mail un résumé des logs du jour. J'ai déjà détaillé l'installation et la configuration de logwatch dans un précedent billet.

De même que pour logrotate des fichiers tout prets devraient être fournit, mais je ne les ai pas trouvé. Vous pouvez aller les chercher sur le CVS de bacula téléchargez les fichiers et copiez les (en tant que root) dans le répertoire nécessaire (qui devra éventuellement être créé) :

  • bacula dans /etc/logwatch/scripts/services/ (pensez à le rendre executable par tous: chmod a+x)
  • services.bacula.conf dans /etc/logwatch/conf/services/ avec pour nom bacula.conf
  • logfile.bacula.conf.in dans /usr/share/logwatch/default.conf/logfiles/ avec pour nom bacula.conf[3].

Enfin, modifiez ce dernier fichier en remplaçant @working_dir@/log par le fichier de log de bacula, soit /var/log/bacula/log

Pour tester votre nouvel ajout, utilisez la commande suivante[4] :

sudo logwatch --print --detail high --service bacula --range today

A faire

Il vous reste un peu plus de configuration à faire. Je pense notament à des choses comme :

  • mettre des mots de passes pour sécuriser vos démons
  • changer les démons qu'ils n'ecoutent que sur le reseau local
  • ajouter des fileset ou des file dans le fileset pour sauvegarder plus que /etc
  • étudier la possibilité de faire des sauvegardes complètes
  • ...

Pour aller plus loin

Voici quelques liens qui vous permettront d'en voir un peu plus que cette petite introduction.

Pour Bacula :

Les autres logiciels de sauvegarde :

Voila, c'en est fini de ces articles sur Bacula. J'espère qu'ils vous seront utiles et surtout qu'ils vont vous inciter à sauvegarder vos données !

Notes

[1] J'ai bien l'intention d'aller voir cela de plus prêt

[2] Attention les noms de paquets ont changés en Edgy

[3] normalement on devrait le mettre dans /etc/logwatch/conf/logfiles mais cela semble ne pas fonctionner

[4] Les droits root sont necessaires pour lire le fichier de log

dimanche 3 décembre 2006

Bacula 2 : Sauvegarder, restaurer et ajouter un client

Voici le deuxième article de ma série sur la sauvegarde d'un réseau local. Nous allons étudier le processus de sauvegarde/restauration (sur le serveur) puis configurer la sauvegarde d'une nouvelle machine.

Notez que l'affichage des commandes a été allégé dans un but de simplification de l'article. Si vous les executez vous même, beaucoup plus d'informations apparaîtront. J'ai essayé de ne garder que le plus pertinent. Les ... signalent à peu pret les endroits ou j'ai coupé.
Rappelons aussi que le serveur de sauvegarde est nommé FortCigogne et le nouveau client Penfret. Les commandes sont préfixées par le nom de machine sur laquelle elles doivent être executées.

Sauvegarder

Voyons comment lancer une sauvegarde à la main.

Creer les Volumes de stockage

Les exemples sont pour des bandes, mais une procedure similaire est à faire dans les autres cas (Fichiers, dvd...).

Il faut affecter un Label aux différents média (les nommer) et les ajouter au Pool de sauvegarde (nous utilisons celui par défaut). Cette opération permet à bacula de connaître chaque média. Pensez aussi à étiquetter (physiquement) vos médias avec le label affecté.

Si la bande n'est pas vierge ou a déjà servi pour des tests, commencez par la nettoyer.

## arretons le Storage daemon qui a peut-être vérouillé le lecteur
$ sudo invoke-rc.d bacula-sd stop
## on rembobine
$ sudo mt -f /dev/st0 rewind
## on "efface"
$ sudo mt -f /dev/st0 weof
## on redemarre le Storage daemon
$ sudo invoke-rc.d bacula-sd start

Note: Si elle est deja utilisée dans un Pool de bacula utilisez plutôt purge et relabel

Puis labelisez la à l'aide de la Console (Plus d'infos dans la doc rapide ou de référence) :

$ sudo bconsole
*label
Using default Catalog name=MyCatalog DB=bacula
Automatically selected Storage: DDS-3
Enter new Volume name: Backup01
Automatically selected Pool: Default
...
3001 Device /dev/st0 is mounted with Volume "Backup01"
*list media
Pool: Default
+---------+------------+-----------+-----------+------------+ ...
| MediaId | VolumeName | VolStatus | MediaType |LastWritten |
+---------+------------+-----------+-----------+------------+
| 1       | Backup01   | Append    | DDS-3     | 0          |
+---------+------------+-----------+-----------+------------+
*quit

Démarrer une Sauvegarde

Pour lancer notre sauvegarde à la main, nous allons utiliser la Console :

FortCigogne$ sudo bconsole
*show filesets
FileSet: name=Config
      I /etc
FileSet: name=Catalog
      I /var/lib/bacula/bacula.sql
...
*status dir
FortCigogne-dir Version: 1.36.3 (22 April 2005) i486-pc-linux-gnu debian testing/unstable
Scheduled Jobs:
Level          Type     Pri  Scheduled          Name               Volume
===================================================================================
Incremental    Backup    10  28-Nov-06 01:05    FortCigogne_Config Backup01
Full           Backup    11  28-Nov-06 01:10    BackupCatalog      Backup01
...
*run
A job name must be specified.
The defined Job resources are:
     1: FortCigogne_Config
     2: BackupCatalog
     3: RestoreFiles
Select Job resource (1-3): 1
Run Backup job
JobName:  FortCigogne_config
...
OK to run? (yes/mod/no): yes
Job started. JobId=1
*status dir
...
Running Jobs:
 JobId Level   Name                       Status
======================================================================
     1 Full    FortCigogne_Config.2006-11-27_21.21.51 is running
...

Quand il est terminé, vous pouvez voir le rapport en tapant messages. Si vous avez configuré correctement l'envoi de mail, vous devriez aussi en recevoir un.

Restaurer des fichiers

Toujours à partir de la Console :

*restore all
Using default Catalog name=MyCatalog DB=bacula
To select the JobIds, you have the following choices:
    1: List last 20 Jobs run
    2: List Jobs where a given File is saved
    3: Enter list of comma separated JobIds to select
    4: Enter SQL list command
    5: Select the most recent backup for a client
    6: Select backup for a client before a specified time
    7: Enter a list of files to restore
    8: Enter a list of files to restore before a specified time
    9: Cancel
Select item:  (1-9): 5
+-------+----------+---------------------+------------+ ...
| JobId | JobFiles | StartTime           | VolumeName |
+-------+----------+---------------------+------------+
| 1     | 1157     | 2006-11-27 21:21:53 | Backup01   |
+-------+----------+---------------------+------------+
You have selected the following JobId: 1
...
cwd is: /
#### A ce moment vous pouvez selectionner quels fichiers vous allez restaurer
#### Pour la manière de faire, voyez toujours dans la documentation
$ done
The job will require the following Volumes:
   Backup01
1157 files selected to be restored.
Run Restore job
JobName:    RestoreFiles
Where:      /tmp/bacula-restores
...
OK to run? (yes/mod/no): yes
Job started. JobId=2
*quit

Vous notez que la restauration se fait dans un repertoire temporaire. Cela se change dans bacula-dir.conf ou via la Console.

Vous pouvez tester la restauration :

FortCigogne$ sudo diff /tmp/bacula-restores/etc/ /etc/

Ajouter un client

Nous allons maintenant ajouter la sauvegarde d'une autre machine : Penfret.

Installer et Configurer le client

Sur les clients, seul le service de fichier est necessaire :

Penfret$ sudo apt-get install bacula-fd
Penfret$ sudo vi /etc/bacula/bacula-fd.conf

Modifiez le de cette manière :

# Authorise le serveur a se connecter
Director {
Name = FortCigogne-dir # Correspond au Name de Director dans bacula-dir.conf sur le serveur
Password = ""
}

Verifiez la syntaxe de votre fichier et redémarrez le File daemon :

Penfret$ sudo bacula-fd -t -c /etc/bacula/bacula-fd.conf
Penfret$ sudo invoke-rc.d bacula-fd restart

Configurer le serveur

Nous allons donc modifier la configuration du serveur pour y ajouter un nouveau Job et un nouveau Client. Editez le fichier bacula-dir.conf
Les modifications sont assez similaires à celles que nous avons vu pour la sauvegarde du serveur FortCigogne.



Job {
Name = "Penfret_Config"
JobDefs = "DefaultJob"
FileSet = "Config" # Ici le même que pour FortCigogne
Client = Penfret-fd # Voir Client ci-dessous
Write Bootstrap = "/var/lib/bacula/Penfret.bsr"
}

Client {
Name = Penfret-fd # voir Job ci-dessus
Address = Penfret # La nouvelle machine à sauver
FDPort = 9102
Catalog = MyCatalog
Password = "" # password for FileDaemon
File Retention = 30 days # 30 days
Job Retention = 6 months # six months
AutoPrune = yes # Prune expired Jobs/Files
}

Redémarrez le Director daemon pour prendre en compte vos modifications.

FortCigogne$ sudo bacula-dir -t -c /etc/bacula/bacula-dir.conf
FortCigogne$ sudo invoke-rc.d bacula-director restart

Pour vérifier que le nouveau client est bien connu, utilisez la console :

FortCigogne$ sudo bconsole
*status dir
Scheduled Jobs:
Level          Type     Pri  Scheduled          Name               Volume
===================================================================================
Incremental    Backup    10  28-Nov-06 01:05    FortCigogne_Config Backup01
Incremental    Backup    10  28-Nov-06 01:05    Penfret_Config     Backup01
Full           Backup    11  28-Nov-06 01:10    BackupCatalog      Backup01
...

Vous pouvez alors le sauvegarder de la même manière que vue pour le serveur.

A noter, nous n'avons pas modifié la programation automatique des sauvegardes. Par défaut, elles sont toutes les nuits à partir de 1h05 :

  • Complètes (Full) le 1er dimanche de chaque mois
  • Différentielles (Difeferential) les autres dimanches
  • Incrémentales (Incremental) les autres jours

Pour plus d'explications, allez lire ... la documentation ;)

Dans le dernier article nous découvrirons les possibilités d'utiliser une interface graphique, comment paufiner un peu notre configuration et enfin tous les liens pour aller plus loin.

samedi 2 décembre 2006

Bacula 1 : Installation et configuration du serveur

Cet article est le premier d'une série de trois. Nous allons voir comment installer et configurer une solution de sauvegarde réseau. Nous pourrons ainsi centraliser sur un serveur la sauvegarde des données de toutes les machines du réseau.

Introduction

Cahier des charges

J'ai récupéré il y a peu de temps un lecteur de bandes SCSI et quelques bandes DDS-3. Je me suis donc mis en recherche d'une solution de sauvegarde qui me permette de centraliser celle-ci sur le serveur pour toutes les machines du réseau. Mon cahier des charges était le suivant :

  • Présent empaqueté dans Ubuntu
  • Gestion automatique d'un catalogue
  • Sauvegarde centralisée sur un serveur de backup
  • Possibilité de gérer plusieurs clients indépendants
  • Gestion d'un lecteur de bandes mais aussi d'autres médias (disque dur, cdroms, dvds)
  • Si possible présence d'une inteface graphique pour gérer et suivre les sauvegardes

Après avoir étudié plusieurs logiciels, je me suis orienté vers Bacula qui répond à tous mes prés-requis. Il a l'avantage de disposer d'une documentation très bien faite et presque entièrement en Français. Par contre il semble très puissant et donc compliqué à mettre en place. Nous verrons qu'en fait un peu de rigueur et pas mal de lecture font qu'il ne l'est pas tant que ca.

Vue d'ensemble

Pour avoir une idée plus complète des composants de Bacula, je vous renvoi vers la documentation

Voici quand même une brève introduction des composants :

  • Director daemon : composant principal de Bacula, il va diriger tous les autres.
  • Storage daemon : c'est le service qui va s'occuper d'écrire les fichiers de sauvegarde. Dans notre cas il accèdera au lecteur de bandes
  • File daemon : c'est la partie client qui va lire les fichiers à sauvegarder sur chaque machine et les envoyer au Storage daemon. Il doit y en avoir un par machine à sauvegarder.
  • Bacula console : c'est l'interface utilisateur. Grâce à lui nous pourrons communiquer avec le Director et gérer nos sauvegardes (les lancer, voir les rapports ...)

Voyons aussi rapidement les termes employés dans la configuration de Bacula :

  • FileSet : Quels fichiers allons nous sauvegarder ? c'est le point d'entrée des File daemon
  • Client : Quelles machines devons nous sauvegarder ?
  • Schedule : Quand les sauvegardes doivent être executées ?
  • Pool : Ou ces sauvegardes seront-elles écrites ? Cela peut-être par exemple un ensemble de bandes.
  • service / daemon / démon : tous ces termes désignent un processus qui fonctionne en arrière plan sur votre ordinateur. Vous connaissez surement cron ou Xorg ou encore apache qui sont tous des démons.

Installer le lecteur de bandes

Cette partie est spécifique à ma configuration. Si le votre est déjà fonctionel ou que vous sauvegardez autrement vous pouvez passer au point suivant.

## module de la carte SCSI ISA
$ sudo modprobe aha1542  aha1542=0x230
## module du lecteur de bandes
$ sudo modprobe st
## Testons maintenant le fonctionnement
$ sudo mt -f /dev/st0 status
drive type = Generic SCSI-2 tape
drive status = 620756992
[...]
## Faire une sauvegarde The old way : avec tar
$ cd /tmp
$ cat > test
Bonjour, je suis un fichier de test.
^D
$ sudo mt -f /dev/st0 rewind
$ sudo tar cvzf /dev/st0 test
test
$ sudo rm test
$ sudo tar xvzf /dev/st0 test
test
$ cat test
Bonjour, je suis un fichier de test.

Si tout cela fonctionne, on peux alors ajouter les modules à /etc/modules.

Bacula sur le serveur

Note: Cette installation à été faite sur une Ubuntu Dapper. Si votre serveur est en Edgy[1] quelques différences peuvent apparaître.

Installer

Comme bacula est disponible en paquets, l'installation est très simple. Une seule chose à faire : choisir quelle base de donnée hébergera le catalogue des fichiers sauvegardés.
Vous avez le choix entre MySQL, PostgreSQL ou SQLite. Pour simplifier l'installation, nous choisirons SQLite qui ne nécessite pas de démon de BDD.

$ sudo apt-get install bacula-director-sqlite bacula-sd bacula-console bacula-fd

Dans la suite de ces articles, nous allons créer une configuration pour sauvegarder

  • le répertoire /etc du serveur FortCigogne
  • le Catalogue des fichiers sauvegardés (en fait c'est déjà configuré par défaut)
  • le répertoire /etc d'une autre machine : Penfret

Configurer

La configuration est centralisée dans le répertoire /etc/bacula.

Storage Daemon

Ce service s'occupe d'ecrire les fichiers sur le media choisi. Dans notre exemple, un lecteur de bandes. Pour les autres médias, voir sur le site de Bacula

$ sudo vi /etc/bacula/bacula-sd.conf

Beaucoup d'exemples sont présents dans ce fichier. Pour mon lecteur de bandes :

Device {
Name = "HP C1537A"
Media Type = DDS-3
Archive Device = /dev/st0
AutomaticMount = yes; # when device opened, read it
AlwaysOpen = yes;
RemovableMedia = yes;
RandomAccess = no;
}

Vous pouvez vérifiez la syntaxe du fichier de configuration avec cette commande :

$ sudo bacula-sd -t -c /etc/bacula/bacula-sd.conf

puis redémarrez le daemon.

$ sudo invoke-rc.d bacula-sd restart
Director Daemon

Ce service controle et commande tout le processus de backup. Sa configuration est la plus ardue. Voir la documentation pour tous les détails

$ sudo vi /etc/bacula/bacula-dir.conf

Modifiez la configuration par defaut (commentaires en ajoutant un # devant la ligne) :

  • dans JobDefs
    • commentez uniquement la ligne FileSet = "Full Set"
    • Changez le Storage pour le votre, voir la directive Storage ci-dessous
  • pour les Job
    • commentez entièrement le Job correspondant à Client1
  • pour les FileSet
    • commentez entièrement le FileSet correspndant à Full Set[2]
  • pour les Storage
    • si vous sauvegardez autrement que sur fichiers, commentez le Storage File

Ajoutez alors votre propre configuration.

D'abord quelle couple Machine / Fichiers allons nous sauvegarder ?

# Configuration de FortCigogne
# Sauvegarder les fichiers de /etc pour Fortcigogne
Job {
Name = "FortCigogne_config"
FileSet = "Config" # doit correspondre à la directive FileSet ci-dessous
JobDefs = "DefaultJob" # paramètres non spécifiques à ce Job
Write Bootstrap = "/var/lib/bacula/FortCigogne.bsr"
}

Définissons maintenant les fichiers à sauvegarder :

# Fichiers de /etc
FileSet {
Name = "Config" # utilisé dans Job/FileSet
Include { # Fichiers à inclure dans la sauvegarde
Options {
signature = MD5
compression = GZIP
}
File = /etc # Une ou plusieurs ligne correspondant aux repertoires à sauver
}
}

Enfin définissons le lieu de sauvegarde (ici aussi beaucoup d'exemples sont présents) :

# Sauvegarde sur bandes
Storage {
Name = DDS-3 # Le nom utilisé dans JobDef ci-dessus
Address = FortCigogne # le serveur hébergant le Storage daemon
SDPort = 9103
Password = ""
Device = "HP C1537A" # doit correspondre au Device définit dans bacula-sd.conf
Media Type = DDS-3
}

Pour la restauration, pensez à changer les lignes Storage et FileSet du Job RestoreFile pour coller à votre media/fileset. Dans mon exemple ce sera DDS-3 et Config

Notes sur les mails:

  • Vous pouvez aller voir la première partie de ce billet pour configurer l'envoi de mails locaux.
  • Les rapports seront envoyés par email à l'utilisateur root. Pour changez cela, modifiez mail et operator dans les diretives Messages
  • Si votre FAI necessite une adresse email valide dans le from, remplacer le -f des mailcommand et operatorcommand par l'email voulu, par exemple :

... -f \"\(Bacula\) root@domain.tld\" ...

Testez la syntaxe de votre fichier :

$ sudo bacula-dir -t -c /etc/bacula/bacula-dir.conf

et redemarrez le daemon director

$ sudo invoke-rc.d bacula-director restart

Voila, dans le prochain article, nous verrons comment Sauvegarder puis restaurer des fichiers. Ensuite nous ajouterons une nouvelle machine à notre processus de sauvegarde.

Edit du 03/12: typo et ajout des liens vers la suite

Notes

[1] quelle drole d'idée ! ;)

[2] profitez en pour lire les commentaires très instructifs

samedi 25 novembre 2006

Cups : Installer et utiliser une imprimante via le réseau

Nous allons voir comment connecter une imprimante sur un serveur, la partager sur le réseau et enfin comment l'utiliser à partir des autres ordinateurs connectés au réseau local. Reseau

Sur le serveur

La première étape est d'installer cupsd, le serveur d'impression. Nous allons aussi installer les drivers pour un certain nombre d'imprimantes. Pour cela vous pouvez passer par synaptic, adpet ou la ligne de commande :

sudo apt-get install cupsys foomatic-db-hpijs hplip-ppds
[...]
Les NOUVEAUX paquets suivants seront installés :
  cupsys fontconfig gs-common gs-esp gsfonts laptop-detect libcupsimage2 libcupsys2
  libfontconfig1 libice6 libpaper1 libpoppler1 libslp1 libsm6 libtiff4 libx11-6 libxau6 libxext6
  libxt6 poppler-utils ttf-bitstream-vera ttf-freefont x11-common
  foomatic-db foomatic-db-hpijs foomatic-filters hpijs libsnmp-base libsnmp9

La, vous remarquez que certains paquets en rappoort avec X11 vont être installés ! Il s'agit de la Xlib[1] qui n'a absolument rien à faire sur un serveur sans interface graphique :(
J'ai créé le bug 72324 à ce propos.

Pour Installer l'imprimante en elle-même sur le serveur, je vous renvoi vers la doc du wiki ubuntu-fr

Mais si votre serveur est effectivement sans X11, vous allez avoir un peu de mal à utiliser l'interface web de cups[2]. Pour autoriser l'acces du reseau local, éditez le fichier /etc/cups.d/ports.conf pour qu'il ressemble à celui-ci :

# ouverture pour tous
# il faudrait trouver comment specifier un sous-reseau
Listen *:631

Puis nous allons autoriser l'administration de cups à partir d'une autre machine du reseau local (en l'occurence 192.168.0.100) : Editez /etc/cups/cupsd.conf

# Restrict access to the admin pages...
<Location /admin>
Order allow,deny
Allow localhost
Allow 192.168.0.100
Encryption Never # sinon, generer un certificat
</Location>
<Location /admin/conf>
# Laissez les lignes déjà présentes, et ajoutez la suivante :
Allow 192.168.0.100
</Location>
# acces aux imprimantes du reseau local
<Location />
Order allow,deny
Allow localhost
Allow @LOCAL
</Location>

Puis il vous faut redémarrer cups :

sudo invoke-rc.d cupsys restart
# verifier qu'il écoute bien tout le monde :
netstat -ln|grep 631
tcp        0      0 0.0.0.0:631             0.0.0.0:*               LISTEN

Installer l'imprimante dans KDE

Voyons maintenant comment configurer votre imprimante à partir de l'interface graphique de KDE sur une kubuntu standard.
Allez dans Paramètres du système puis Imprimantes.
Ajouter / Ajouter une imprimante/une classe
Quand demandé, choisissez Serveur CUPS distant Capture

puis entrez le nom ou l'adresse du serveur Capture

vous pouvez alors choisir l'imprimante à installer Capture

à ce moment, l'assistant vous demande de choisir le modèle. Il ne devrait pas le faire puisque ce n'est pas à lui de gérer le driver. Il s'agit apparament d'un bug KDE qui se combine avec une regression Ubuntu/cupsys[3] Pour contourner le problème choisissez simplement Impression brute. Capture

Vous pouvez alors tester votre imprimante.
Je passe sur la suite qui ne présente pas de difficulté particulière. Pensez juste à entrer une localisation/description, c'est toujours utile Capture Et voila, votre imprimante est maintenant completement utilisable.

Installer l'imprimante sous Gnome

Désolé, je n'ai pas de Gnome sous la main, je vous renvois alors vers la doc ubuntu-fr et en particulier la

Installer simplement la partie client

Voyons maintenant comment installer un client leger. Par exemple une machine sans GUI pour configurer les imprimantes, ou une machine sans serveur CUPS. Nous allons alors nous contenter de la partie cliente de CUPS.

Pour cela, installez cupsys-client uniquement :

sudo apt-get install cupsys-client

ce paquet va remplacer les outils d'impression standard d'Unix (lp, lpq, lprm, ...)
Editez alors le fichier /etc/cups/client.conf pour y mettre le nom de votre serveur :

ServerName fortcigogne

et voila ! les outils de base imprimeront maintenant via votre serveur CUPS distant. Par exemple dans abiword sous Xubuntu dapper : Capture

Vous pouvez aussi voir les imprimantes en ligne de commande :

jjl@client:~$ lpstat -t
scheduler is running
no system default destination
device for HP_LaserJet_net: parallel:/dev/lp0
HP_LaserJet_net accepting requests since sam 18 nov 2006 19:26:02 CET
printer HP_LaserJet_net is idle.  enabled since sam 18 nov 2006 19:26:02 CET

Cette technique peut bien entendu être appliquée à n'importe quelle machine, même si celle-ci dispose d'un serveur CUPS. Dans ce cas, il devient alors inutile.

Conclusion et Liens

Voila, cette petite introduction à CUPS est terminée, il y aurait encore beaucoup à dire, sur le browsing reseau ou l'ergonomie de l'ensemble. Pour cela, je vous renvoi vers les liens ci-dessous.

Notes

[1] libx11 libxau6 libxext6 libxt6 x11-common ...

[2] ou alors essayez links ou lynx ou w3m...

[3] celle-ci devrait déjà être corrigée en edgy et sera un jour reportée en dapper

jeudi 16 novembre 2006

Lettre Hebdomadaire Ubuntu

Hier, en me promenant sur le Wiki Ubuntu-Fr, je suis tombé sur une initiative très interressante. A savoir la traduction en Français de la Ubuntu Weekly Newsletter D'ailleurs, ce matin hier Effraie a fait l'annonce sur le blog de suivi Ubuntu-fr du changement d'adresse[1]

Bref si vous voulez vous tenir au courant de l'actu d'Ubuntu sans travailler votre anglais[2] vous savez maintenant ou aller :) C'est sur la Lettre Hebdomadaire Ubuntu en Français

J'en profite aussi pour féliciter et remercier l'équipe de traduction de leur travail. A mon avis, Ubuntu ne peux conquérir le grand public qu'avec une traduction complète tant des logiciels que de la doc et des sources d'informations. Bravo donc.

PS: à quand un flux RSS pour suivre la lettre ? Peut-être qu'une catégorie sur le blog de suivi serait suffisante ?

Notes

[1] Pour info, la page sur le wiki est la

[2] c'est mal

dimanche 29 octobre 2006

John the Ripper: Vérifier la sureté de ses mots de passe

Introduction

John The Ripper (que nous appellerons JtR) est un programme qui va tenter de cracker les mots de passe de vos utilisateurs. C'est un outil très utile pour tout administrateur système. Comme l'algorithme de chiffrement des mots de passe sous Unix est à sens unique, le seul moyen de découvrir un mot de passe est la force brute. Cela vous demandera beaucoup de ressources machine.

Pour plus d'informations, je vous renvois sur Wikipedia ou sur le site officiel.

Pour l'installer :

sudo apt-get install john

Tester

Pour tester le fonctionnement de JtR, je vous propose de creer un utilisateur avec un password faible. Mon utilisateur sera : jambon avec comme mot de passe 654321

ATT ATTENTION: Une fois vos tests terminés, SUPPRIMEZ immédiatement cet utilisateur !! Le fait de le laisser ou de l'oublier ouvrira une faille dans votre système !!

Une fois celui-ci créé, essayons de cracker son mot de passe :

## copions le fichier shadow par précaution :
## Il faudra aussi penser a L'EFFACER !
$ sudo cp /etc/shadow .
$ sudo chown jjl:jjl shadow
## pendant l'execution appuyez sur Entrée pour avoir l'état d'avancement
$ john shadow
Loaded 3 passwords with 3 different salts (FreeBSD MD5 32/32)
guesses: 0  time: 0:00:00:09 72% (1)  c/s: 577  trying: {j99999}
654321           (jambon)
^C
## Pour voir les password crackés après une execution :
$ john -show shadow
jambon:654321:13450:0:99999:7:::
1 password cracked, 2 left
## Pour relancer une execution interrompue :
$ john -restore

Configurer un peu plus John

Les fichiers de configuration se trouvent dans /etc/john/

  • john.conf : configuration générale
  • john-mail.conf : configuration de l'envoi de mail
  • john-mail.msg : message a envoyer en cas de crack réussit

Comment utiliser un dictionnaire francais :

JtR est livré avec une liste de password à essayer /usr/share/john/password.lst. Liste qui est surtout valable pour les utilisateurs anglophones. Nous allons utiliser un dictionnaire français à la place.

## Installer le dictionnaire :
$ sudo apt-get install wfrench
## Le convertir en UTF-8
$ iconv -f ISO-8859-15 -t utf-8 < /usr/share/dict/french > /tmp/french.utf8.lst
## Pour tester JtR avec ce nouveau dictionnaire :
## note: mon utilisateur jambon a changé de mot de passe
$ john -wordfile:/tmp/french.utf8.lst -users:jambon shadow
Loaded 1 password (FreeBSD MD5 32/32)
guesses: 0  time: 0:00:00:07 2%  c/s: 555  trying: agréions
apprivoisèrent  (jambon)
## Le test étant concluant, configurons JtR pour qu'il utilise ce dictionnaire :
$ sudo cp /tmp/french.utf8.lst /usr/share/john/french.lst
$ sudo vi /etc/john/john.conf
## Remplacer le dictionnaire actuel par cette ligne :
Wordfile = /usr/share/john/french.lst

Comment lancer JtR automatiquement

Il peut être interressant de vérifier régulièrement les mots de passe et d'être prévenu automatiquement en cas de mot de passe faible. Pour cela nous allons lancer JtR toutes les nuits et lui demander de nous prévenir par mail en cas de succès.

Note: si votre machine n'est pas configurée pour envoyer les mails locaux, vous pouvez aller voir la 1ère partie de mon billet sur la surveillance des logs par email

Commençons par activer le cron :

$ sudo vi /etc/cron.d/john 
## Décommentez les deux lignes contenant /usr/share/john/cronjob (start et stop)
## Changez les heures si necessaire, par défaut, il travaille de 1h à 7h

Un mail sera envoyé à l'utilisateur fautif pour le prévenir. Nous voulons aussi que root soit prévenu afin de tancer ce même utilisateur :

## Editons le texte du mail qui sera envoyé
$ sudo vi /etc/john/john-mail.msg
## Ajoutez la ligne suivante après le Subject
## il faut une ligne blanche entre celle-ci et le corps du message
Cc: root
## Puis la manière d'envoyer le mail
$ sudo vi /etc/john/john-mail.conf
## Ajoutez les lignes suivantes :
# Lis les destinataires dans le fichier de mail
mailargs=-t

Si certains de vos mots de passe sont crackés, vous pourrez voir lesquels avec une commande de ce genre :

$ sudo john -show /var/run/john/cronpasswd.nyqqTJ

Documentation

Voila, pour plus d'informations, vous pouvez lire les liens proposés dans l'introduction. D'autres sources sont disponibles en local, grâce àla page de man et la documention stockée dans le répertoire /usr/share/doc/john/. Par exemple je vous conseille de lire les exemples :

zcat /usr/share/doc/john/EXAMPLES.gz |less

ET SURTOUT, pensez à supprimer l'utilisateur créé pour vos tests et toutes les copies du fichier shadow que vous auriez pu faire !

lundi 23 octobre 2006

logwatch : surveiller ses log par email

Surveiller ses fichiers de log est une activité nécessaire[1] mais bien souvent rébarbative.
De nombreux programmes existent pour nous faciliter la tâche. On peux par exemple citer KSytemLog installé par défaut sur votre Kubuntu. Mais le propre de ces programmes est d'être exhaustifs. De plus ils demandent une action de votre part, à savoir : penser à aller les regarder ;)

Je vais vous présenter un moyen d'obtenir tous les jours par mail une synthèse des fichiers de log. Cela vous permettra de voir facilement les problèmes et de décider à bon escient d'aller voir plus de détails.

Pre-requis : recevoir les mails locaux

Si vous possédez déjà une configuration vous permettant de recevoir les mails en local[2] vous pouvez sauter cette partie. Sinon, nous allons voir comment les recevoir simplement. Pour cela, nous ne configurerons pas un serveur de mails complet, mais nous allons utiliser les serveurs de votre FAI. Vous pourrez alors transférer vos mails locaux vers n'importe quelle adresse email.

Nous allons nous placer dans ce cas : Architecture

Commençons par installer ce qui est nécessaire :

sudo apt-get install mailx

Cela devrait aussi vous installer postfix. Lors de la configuration du paquet répondez ainsi :

Internet par un FAI
LeNomDeVotreMachine
smtp.fai.fr

Certains FAI demandent que l'adresse expéditeur d'un mail soit valide[3]. Nous allons pour cela utiliser un nom de domaine dynamique, tel que fourni par exemple par dyndns. Editez le fichier /etc/postfix/main.cf en tant que root et modifiez les lignes ainsi :

relayhost = smtp.fai.fr # normalement deja fait
myorigin = /etc/mailname
mydestination = LeNomDeVotreMachine.mon.domaine.dyndns.com, localhost.mon.domaine.dyndns.com, localhost

Le fichier /etc/mailname doit contenir LeNomDeVotreMachine.mon.domaine.dyndns.com
Enfin nous allons indiquer vers quelle adresse relayer les mails de votre utilisateur local :

sudo vi /etc/aliases

# Added by installer for initial user
root: MonUtilisateur
# ajoutez la ligne :
MonUtilisateur: nom.prenom@fai2.fr

Puis pour prendre en compte les modifications :

sudo newaliases
sudo invoke-rc.d postfix reload

Vous pouvez maintenant tester votre configuration : icone

mail MonUtilisateur
...
^D
# voir les mails en cours d'envoi :
mailq
# voir les logs d'envoi :
tail /var/log/mail.info

Lisez le avec votre client de mail habituel pour nom.prenom@fai2.fr

logwatch pour synthétiser les logs

Logwatch est une petite application permettant d'analyser les logs de nombreux service et de produire un rapport synthétique. Le nombre de services connus est impressionnant[4] et il est assez facile d'en ajouter de nouveaux.

Pour l'installer, faîtes simplement :

sudo apt-get install logwatch

Vous pouvez voir qu'il se lancera touts les jours grâce au fichier /etc/cron.daily/00logwatch.

Et voila ! Vous avez maintenant un système de suivit de logs fonctionnel.

Un exemple, un exemple !

Vous recevrez tous les jours par mail, un petit rapport qui devrait ressembler à cela :

Les fichiers ont été rendus anonymes

Configuration "avancée" de logwatch

Plusieurs répertoires sont utilisés pour la configuration :

  1. /usr/share/logwatch/default.conf/ : pour la configuration générique
  2. /usr/share/logwatch/dist.conf/ : pour la configuration spécifique à Ubuntu
  3. /etc/logwatch/ : pour la machine en elle-même, c'est la que vous ferez votre propre configuration

Sans entrez dans les détails, vous trouverez plusieurs niveaux de configuration :

  • configuration de l'application : logwatch.conf
  • emplacement des fichiers de log : logfiles/*.conf
  • paramètres spécifiques à un service à surveiller : services/*.conf

Je vous invite à aller lire la documentation très complète, soit en ligne soit en utilisant la commande suivante :

zcat /usr/share/doc/logwatch/HOWTO-Customize-LogWatch.gz |less

Comme exemple, voyons comment augmenter les détails de l'analyse puis comment ajouter les logs de Cherokee à la place de ceux d'Apache :

sudo vi /etc/logwatch/conf/logwatch.conf
# ajouter la ligne :
Detail = High

Cette ligne remplace Detail = Med de /usr/share/logwatch/dist.conf/logwatch.conf qui remplace elle-même la ligne Detail = Low de /usr/share/logwatch/default.conf/logwatch.conf :)

icone Puis pour remplacer les fichiers de logs d'Apache par ceux de Cherokee créez le fichier suivant :

sudo vi /etc/logwatch/conf/override.conf
 # logfile for http if we use cherokee
logfiles/http: LogFile =
logfiles/http: LogFile = cherokee.error
logfiles/http: LogFile = cherokee.access
logfiles/http: LogFile = cherokee/*.error
logfiles/http: LogFile = cherokee/*.access
logfiles/http: Archive =
logfiles/http: Archive = cherokee.access.*.gz
logfiles/http: Archive = cherokee.error.*.gz
logfiles/http: Archive = cherokee/*.access.*.gz
logfiles/http: Archive = cherokee/*.error.*.gz

Pour tester la configuration de logwatch, vous pouvez utiliser une commande de ce genre :

logwatch --print --detail high --service http --range today

Je vous renvoi vers la page de man pour de plus amples détails.

Il vous reste maintenant le plus compliqué : lire vos mails tous les jours ;)

Notes

[1] en particulier si l'on fait tourner un serveur accessible sur internet

[2] càd envoyés aux utilisateurs locaux de votre machine

[3] au sens des RFC

[4] pour s'en convaicre, allez voir le répertoire /usr/share/logwatch/default.conf/services/

dimanche 15 octobre 2006

Sondage Ubuntu

Me voila un peu en retard !

Dépéchez vous de participer au Sondage Ubuntu proposé par le Team Marketing. Cela prend peu de temps et il ne reste qu'une journée !
Plus d'infos sur le Wiki de Ubuntu

via Ploum sur LinuxFr

samedi 14 octobre 2006

Bon anniversaire ... KDE

10 ans, jours pour jours que Matthias Ettrich demandait des bonnes volontés pour la création d'un environement de bureau pour Linux qui soit unifié et au service des utilisateurs.

The Kool Desktop Environement

Quelques dates clefs :

  • 14 Octobre 1996 : création du projet. Vous pouvez lire son acte de naissance (long)
  • 12 Juillet 1998 : Version 1.0 ( Annonce)

Capture

  • 23 Octobre 2000 : Version 2.0 (Annonce)

Capture

  • 3 Avril 2002 : Version 3.0 (Annonce)

Capture

  • 2 Aout 2006 : version 3.5.5 (Annonce)
  • Un jour futur : version 4.0 (Roadmap)

Retrouvez toutes les dates sur Wikipedia

Aujourd'hui KDE se porte au mieux, le pseudo-troll sur sa non-liberté est mort, son utilisation est répendue et son avenir assuré et 'très' prometteur. Bref, 10 ans l'age de raison ou de domination ? ;)

PS: il y a aussi une fête de prévue.

jeudi 12 octobre 2006

KDE 3.5.5

iconeVoici venue une nouvelle version de maintenance de KDE. Celle-ci corrige un certain nombre de bugs et ajoute quelques fonctionnalités. Je recopie une partie de l'annonce officielle :

  • Version 0.12.3 de Kopete, remplace la version 0.11.3 dans KDE 3.5.4. Elle comprend la prise en charge des thèmes Adium avec une amélioration de la performance et une meilleure gestion pour les protocoles Yahoo! et Jabber.
  • Prise en charge de sudo dans kdesu.
  • Gestion des "input shape" de XShape1.1 dans KWin (gestionnaire des fenêtres de KDE).
  • Plusieurs améliorations de rapidité et correctifs dans le moteur de rendu HTML de Konqueror : KHTML.
  • Prise en charge de CUPS 1.2 dans KDEPrint.
  • Améliorations dans l'interface pour les traductions : Chinois traditionnel, Farsi, Khmer, Bas Saxon et Slovaque.

Pour plus de détails, allez voir le changelog

Les paquets sont disponibles pour votre distribution préférées. Les détails sont sur le site Kubuntu En résumé :

  • Ajouter la clef de j. Riddell
wget http://people.ubuntu.com/~jriddell/kubuntu-packages-jriddell-key.gpg
sudo apt-key add kubuntu-packages-jriddell-key.gpg
  • Ajouter le dépot à votre source.list
deb http://kubuntu.org/packages/kde-355 dapper main # ou alors
deb http://kubuntu.org/packages/kde-latest/ dapper main # pour être toujours à jour
  • Mettre à jour
sudo apt-get update
sudo apt-get upgrade

Edit: Et voila, ca ne valait pas le coup de mettre le bazard dans ses dépendances, Kopete est maintenant disponible dans les dépôts pour dapper. Un simple oubli bien vite réparé.

lundi 9 octobre 2006

Un point sur le multi-ecran

Introduction

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

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

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

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

DualDesktop, Xinerama ... késako ?

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

DualDesktop, multi-bureau

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

DualScreen, multi-écran, bureau étendu

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

Le mode Clone

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

Carte Video avec deux sorties

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

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

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

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

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

Deux cartes graphiques

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

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

La nouvelle carte

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

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

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

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

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

  • PNP Configuration
  • Primary Graphic Controler
  • PCI ou AGP

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

dpkg-reconfigure xserver-xorg
reboot

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

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

Mixons donc tout cela

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

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

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

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

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

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

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

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

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

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

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

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

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

Et mon ancienne Matrox ?

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

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

Bref c'esr rédibitoire :(

Les Scrinechoutes

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

En cas de problème

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

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

Liens connexes

Pour aller plus loin :

Notes

[1] si l'on omet la sortie TV

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

[3] C'est mal ;)

[4] votre ancien fichier est alors automatiquement sauvegardé

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

[6] réalisée avec Ksnapshot

[7] ou gdm

lundi 2 octobre 2006

Jeux pour les nostalgiques

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

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

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

Capture ecran

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

Capture ecran

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

Notes

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

mercredi 27 septembre 2006

[KDE] Katapult : un lanceur commandé au clavier

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

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

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

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

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

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

Capture d'ecran

Pour conclure, voici quelques petits liens utiles :

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

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

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

Notes

[1] et bientôt directement dans KDE

[2] et même ailleurs

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

[4] lui aussi en GPL

< 1 2 3 4 5 6 7 >