Aide-mémoire Linux

Ce document (FAQ, aide-mémoire...) existe pour fixer des informations qui me sont utiles dans mes premiers pas (et les suivants) avec Linux en général, Debian et Mandrake en particulier. Ce document est accessible via http://linux.cybermonde.org.


Table des matières
1. Présentation du document
2. Commandes de base
3. Impression
4. Installation
5. Système
6. Réseau
7. Sécurité
8. Multimédia
9. Programmation
10. Applications
11. Education et jeux
12. Samba
13. Hardware
14. PHP-MySQL et plus
15. Communauté
16. Micro-distribution
17. Ipaq
18. XML
19. Brouillon

1. Présentation du document

1.1. Auteur

Rédigé par Laurent Lefèvre (webmaster@cybermonde.org) dont vous retrouvez les créations sur http://www.cybermonde.org.


1.2. Licence

Ce document est copyleft. Une mention de la source est souhaitée.


1.3. Remerciements

A tous ceux qui contribuent par leurs expériences à l'ajout de certaines questions. A la communauté qui répond aux miennes.


1.4. Historique de la mise en forme

Historique des versions
Version 07/07/2004 ajout des tailles pour html unique et PDF
Version 10/01/2004 feuille de style colorisée
Version 05/01/2004 ajout d'une feuille de style
Version 03/01/2004 première publication au format PDF
Version 02/01/2004 première publication comme article Docbook
Version 14/02/2002 mise en ligne sous la forme d'une seule page html

2. Commandes de base

2.1. root

Passer en utilisateur root :

su

Puis le mot de passe.

Pour autoriser certains utilisateurs à exécuter des commandes réservées à root, lancer l'utilitaire suivant :

visudo

Vous éditez ainsi le fichier sudoers qui contient les commandes autorisées (voyez les exemples inclus). Ensuite l'utilisateur aura à précéder les commandes autorisées de sudo, ce qui donne :

sudo macommande_de_superpouvoir

2.2. Utiliser vi

vi est un des éditeurs les plus célèbres, pour le lancer :

vi nom_du_fichier

pour passer en mode insertion i

pour passer en mode commande esc

pour sauver le fichier (en mode commande) :w

pour quitter (en mode commande) :q

supprimer un caractère (en mode commande) x

supprimer une ligne (en mode commande) dd

Sans oublier le guide de survie sous vi (http://echo-linux.alienor.fr/articles/vi/vi.html).

Voir aussi : VIM Quick Reference Card (disponible en plusieurs langues) à http://tnerual.eriogerg.free.fr/vim.html.


2.3. Depuis combien de temps ma machine est-elle allumée ?

uptime

2.4. Revoir les messages de la séquence de boot

dmesg

Et pour enregistrer ces messages dans un fichier :

dmesg >monfic.txt

2.5. Trouver un fichier

Chercher le fichier nommé "monfic" à travers toute l'arborescence :

find / -name monfic

Ou encore :

locate monfic

A exécuter si on lance régulièrement :

updatedb

2.6. Supprimer un répertoire et tous ses fichiers

rm -r /nom_du_répertoire

2.7. Lancer un processus en arrière-plan

Permet ainsi de continuer à travailler à la console :

nom_du_process &

Pour voir les processus qui tournent en arrière-plan :

jobs

Ramener en avant-plan le processus n°1 :

fg %1

2.8. Trouver une commande

Taper la première lettre de la commande et puis 2 fois la touche tab permet d'obtenir toutes les commandes qui commencent par cette lettre.

Taper simplement 2 fois tab pour obtenir toutes les commandes !

Répertoire alphabétique des commandes Linux : http://www.onlamp.com/linux/cmd/.


2.9. Utiliser une disquette

Il faut au préalable la "monter" :

mount /dev/fd0 /floppy

Pour la formatter :

fdformat /dev/fd0

Ecrire un fichier image sur disquette (.img) :

dd if=fichier.img of=/dev/fd0

2.10. Réinitialiser un process

kill -1 nom_du_process

Par exemple pour relancer Apache :

kill -1 httpd

2.11. Monter une image iso

mount /home/moi/monimage.iso /mnt/iso/ -t iso9660 -o ro,loop=/dev/loop0

2.12. Créer une image iso

dd if=/dev/scd0 of=monimage.iso

Vérifier le device qui correspond à votre lecteur de cdrom, s'il est monté au démarrage faîtes simplement :

less /etc/fstab

2.13. Modifier la date de création d'un fichier

La commande suivante modifie la date de création et de modification du fichier test.txt en leur attribuant la valeur créé et modifié le 2 mai 2003 à 20h36 :

touch -t 0305022036 test.txt

2.14. Démarrage en plein écran

Pour démarrer la console en mode plein écran, modifier

/etc/lilo.conf 

comme suit :

vga=791

N'oubliez pas de taper la commande

lilo

pour prendre en compte les modifications.


2.15. Backup

Créer un backup de /home/moi/ (et tous ses répertoires) vers /home/moi/monbackup.tar.gz :

tar -czf /home/moi/monbackup.tar.gz /home/moi/

2.16. Arrêter mon PC à 23h30

shutdown -h 23:30

2.17. Occupation disque

Grâce à la commande du, utilisation disque des répertoires home sans détail :

du -h --max-depth=1 /home

En triant par taille des répertoires :

du -m --max-depth=1 /home | sort -n

Un script pour établir le top 10 des utilisateurs :

#!/bin/bash 
# état de monserveur - par laurent http://linux.cybermonde.org 
# version du 09/05/2005
# liste de l'utilisation de /home 
du -m --max-depth=1 /home | sort -n > home.txt 
# fichier entrée 
ficin="home.txt" 
echo "Les 10 plus gros utilisateurs de monserveur + total (en MB) :" > resultat.txt 
# nombre de lignes du fichier 
lines=`wc -l $ficin | cut -d " " -f5` 
# les 11 dernières 
start=`expr $lines - 11` 
# impression sed "1,$start d" $ficin >> etat.txt 
echo "Le disque de monserveur est rempli à :" >> etate.txt 
# on va chercher la colonne qui rapporte le % d'espace occuppé 
df -h | grep sda3  | cut -d " " -f23 >> etat.txt 
# copie du fichier résultat pour traitement ultérieur 
scp etat.txt root@192.168.0.6:/mnt/monchemin/backup/

2.18. Calendrier

Une commande disponible en standard permet d'afficher un calendrier :

- pour le mois courant :

cal

- calendrier annuel 2005 :

cal 2005

- janvier 2005 :

cal 1 2005

Avec l'application PCAL (http://pcal.sourceforge.net/), on peut générer des calendriers au format PostScript, en y intégrant des évènements récurrents, des images...


2.19. Lancer une commande à une heure précise

... et une seule fois :

at 09:30 

puis introduisez la commande et terminez par Ctrl+D

En précisant jour (format MMJJ) et heure :

at 14:30 0228

Vérifier les jobs en attente :

atq

Supprimer le job 2 :

atrm 2

2.20. Tuer le serveur X

Appuyer sur les touches :

Alt Ctrl Backspace

2.21. Copie de fichiers > 2GB

Pour transférer par ftp des fichiers de plus de 2GB, utiliser ncftpput ou ncftpget (http://www.ncftp.com).

Envoyer le contenu du répertoire "repertoirelocal" vers la machine 192.168.0.8 (répertoire courant) :

ncftpput -u monutilisateur -p monmotdepasse -R 192.168.0.8 . repertoirelocal

3. Impression

3.1. Imprimer vers une machine spécifique

Si plusieurs imprimantes sont configurées, il faut imprimer vers

lpr -P nomimprimante

ou utiliser une application graphique avec plus d'options :

/usr/bin/xpp

3.2. HP670C sous Debian

Sur une Debian minimum, installer les packages suivants (avec leurs dépendances) : gs, hpijs, printtool

En mode graphique (X indispensable) et comme root : lancer printtool (via le menu)

Configurer : modèle imprimante et taille papier.


3.3. Trouver une imprimante compatible

LinuxPrinting.org (http://www.linuxprinting.org/)

Remarque générale, toute imprimante qui supporte le langage PostScript sera compatible mais toutes les fonctions ne seront pas nécessairement accessibles. J'imprime en réseau sur les machines suivantes : HP 2100, Phaser 850DX, Ricoh 550, Xerox DocuCentre 480...

Pour certaines imprimantes, dans le driver PostScript fourni pour Windows, vous trouverez un fichier PPD installable sous Linux, notamment via le Centre de Contrôle Mandrake. J'ai ainsi pu configurer une Ricoh Aficio 2232C et une Xerox Phaser 8200N sous Mandrake 10.0.


3.4. Paramètrer CUPS

Si vous utilisez CUPS (http://www.cups.org) pour gérer vos impressions, les paramètres sont dans :

/etc/cups/cupsd.conf

Notamment le nombre de jobs conservés :

MaxJobs 10

3.5. Tiff vers PDF

J'ai écris un petit script qui, grâce à la boîte à outils libtiff (disponible dans votre distribution), me permet de convertir tous les fichiers tiff d'un répertoire vers du PDF (en passant par PostScript). Testé sur des Tiff photos et multipages.

# conversion tiff vers pdf grâce à libtiff
if [ -n "$1" ]
then
   directory=$1 # répertoire passé en argument
else
   directory=$PWD # ou répertoire courant
fi
# parcourir le répertoire
for file in $directory/*
do
   filename=${file%.tif} # prendre nom de fichier seul
   tiff2ps -a $file > $filename.ps # conversion tiff vers postscript
   ps2pdf $filename.ps $filename.pdf # conversion postscript vers pdf
   rm -f $filename.ps # suppression du postscript
done
exit 0

3.6. Imprimer un fichier sans ouvrir OpenOffice

soffice -pt "mon_imprimante" mon_fichier.sxw

Pour imprimer tous les fichiers sxw et doc d'un répertoire :

#!/bin/sh 
for i in *.doc *.sxw 
do 
soffice -pt "mon_imprimante" $i 
done

Source (http://www.bytebot.net/openoffice/faq.html#Misc0).


3.7. Brother

Brother met à disposition un certain nombre d'informations sur la compatibilité de son matériel avec Linux : http://solutions.brother.com/linux/


3.8. Lexmark

Lexmark Linux Printer/AIO Driver Developer's Kit : http://www.lexmark.com/US/products/info/linux/


4. Installation

4.1. Trouver un package Debian

- sur le site de Debian, un formulaire de recherche : http://www.debian.org/distrib/packages#search_packages est disponible.

- apt-get.org (http://www.apt-get.org) fournit des listes de serveurs pour des sources APT plus récentes.

- les développeurs Debian ont mis en place un repository public : http://mentors.debian.net

- des packages plus récents compilés pour une Debian stable : http://backports.org


4.2. Installer un package Debian

Le package ou paquet Debian se présente sous la forme d'un fichier nom_du_paquet_version.deb.

Pour l'installer :

dpkg -i nom_du_paquet_version.deb

4.3. Installer un programme à partir du code source

tar -zxvf nom_du_programme.tar.gz
cd nom_du_programme
./configure
make

comme utilisateur root :

make install

4.4. Une documentation plus complète sur Debian

Guide de référence pour Debian GNU/Linux (http://qref.sourceforge.net)

La documentation officielle (http://www.debian.org/doc/)

Formation Linux Debian (http://www.via.ecp.fr/~alexis/formation-linux/)

Another Debian Site (http://www.andesi.org)


4.5. Télécharger les images CD Debian

Version stable et instable (bas de page), via ftp ou http : http://www.debian.org/CD/http-ftp/


4.6. Comment cloner un disque dur ?

- Partition Image for Linux (http://www.partimage.org/).

- Voir également GNU Parted (http://www.gnu.org/software/parted/) pour redimensionner, copier... les partitions.

- Dolly (http://www.cs.inf.ethz.ch/stricker/CoPs/patagonia/) permet de cloner un grand nombre de machines en un temps très court.


4.7. Préparer un disque dur (ext2)

- partitionner à l'aide de

fdisk

- formatter avec

mke2fs

- ajouter un point de montage dans

/etc/fstab

4.8. Modifier le navigateur par défaut dans Gnome

Par exemple pour ouvrir les URLs de Evolution :

- lancer le Centre de contrôle Gnome

- dans Avancé choisir Gestionnaire d'URLs

- modifier le navigateur pour chaque type de service


4.9. Pochettes pour CD

Après téléchargement de vos distributions favorites, l'impression d'une pochette CD s'impose :

Debian : http://www.debian.org/CD/artwork/


4.10. KDE3 : login et démarrage

- Pour permettre un login automatique sous KDE3, il faut éditer le fichier

/etc/kde3/kdm/kdmrc

et enlever les commentaires devant les lignes suivantes :

AutoLoginEnable=True
AutoLoginUser=nom_utilisateur

- Pour qu'une application démarre automatiquement, ajouter un lien dans :

/home/votre_nom/.kde/Autostart

4.11. Types MIME OpenOffice

Les types MIME par application OpenOffice, StarOffice : http://framework.openoffice.org/documentation/mimetypes/mimetypes.html


4.12. Documentation OpenOffice

- DicOOo (http://fr.openoffice.org/DicOOo/index_dicooo.htm), un installeur multi plateformes de dictionnaires.

- Documentation Utilisateurs (http://fr.openoffice.org/Documentation/Index.html)

- Manuel rédigé par la société @picnet (http://fr.openoffice.org/Documentation/Livres/index_livr.htm)

- The OpenOffice.org Unofficial FAQ (http://www.oooauthors.org/FAQs)

- OpenOffice en français : http://fr.openoffice.org

- Forums : http://www.oooforum.org

- Macros : http://www.ooomacros.org


4.13. Trouver un package Mandrake

Packages récents, voir la version cooker : http://www.mandrakelinux.com/fr/cookerdevel.php3 et ajouter une source contrib pour installer les versions plus récentes avec leurs dépendances. Pour créer les sources d'installation des packages, voir cet outil en ligne http://easyurpmi.zarb.org/. Des packages alternatifs (problème de licence, flou juridique) sont compilés par le Penguin Liberation Front : http://plf.zarb.org/.


4.14. Mes icônes ont disparu !

Les icônes des menus KDE sous Mandrake 9.2 ont disparus ! Comme root taper :

update-menus -v

4.15. Problème lors du ./configure

Le message suivant apparaît :

Library requirements (MON_FICHIER >= 1.2.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.

Chercher MON_FICHIER.pc :

locate MON_FICHIER.pc

Résultat (par exemple) :

/usr/lib/pkgconfig/MON_FICHIER.pc 
/usr/local/lib/pkgconfig/MON_FICHIER.pc

Le 1er serait dans une version trop ancienne et c'est lui qui est pris en compte. Pour utiliser le 2ème :

export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig"

5. Système

5.1. Connaître la version du kernel

uname -a

5.2. Mise à jour du noyau (2.2 vers 2.4)

Explication complète sur “Creating custom kernels with Debian's kernel-package system” : http://newbiedoc.sourceforge.net/system/kernel-pkg.html

Mise à jour du noyau à la sauce Debian (réalisé sur une Debian 3.0 rev0 au goût "vanilla").

Au préalable, il faut installer le kernel-package (via dselect par exemple).

Ensuite :

- télécharger les sources (sur http://www.kernel.org)

- le copier et le décompresser dans

/usr/src
tar zxvf linux-2.4.19.tar.gz

- faire un lien symbolique vers le nouveau répertoire

ln -s linux-2.4.19 linux

- configurer le noyau :

cd linux
make config

- choisir les options nécessaires (selon son matériel)

- compiler :

make-kpkg --revision=Custom.1 kernel-image
cd /usr/src/
dpkg -i kernel-image-2.4.19_Custom.1_i386.deb

- répondre aux questions

- rebooter

reboot

5.3. Vérifier la date du dernier upgrade

Quand pour la dernière fois a été exécutée la ronde apt-get update/upgrade ?

J'ai décidé de vérifier la date de modification de

/var/cache/apt/archives

Ce qui donne par exemple en PHP :

$filename = '/var/cache/apt/archives';
if (file_exists($filename)) {
echo "dernier upgrade système le : " . date ("F d Y H:i:s", filemtime($filename));
}

5.4. Utilisations particulières de Konqueror

Konqueror (http://www.konqueror.org) le navigateur du projet KDE (http://www.kde.org) offre pas mal de fonctionnalités, parmi les choses que j'ai découvertes, utiliser dans la barre d'adresse :

man:macommande

affiche la page de manuel pour macommande

audiocd:/

permet de lister les pistes audio d'un CD au format cda, wav et ogg

sftp://nom_utilisateur@ip_machine_distante

pour se connecter à une ressource via SSH, détails de cet usage : http://www.linuxgazette.com/node/401


5.5. Utilisateurs et groupes

Voici un petit script qui liste tous les utilisateurs avec login et nom complet :

#!/bin/bash 
# listing des utilisateurs 
# par Laurent http://linux.cybermonde.org 
# dernière version 21-06-2004
# nom de la machine 
in_machine=`hostname` 
echo "Liste des utilisateurs de" $in_machine 
# délimiteur ':', liste le login et le nom complet 
awk -F: ' { 
    in_login = $1 
    in_nomcomp = $5 
    print in_login, " - ", in_nomcomp 
} ' /etc/passwd 

Celui ci liste les groupes et leurs membres :

#!/bin/bash 
# listing des groupes 
# par Laurent http://linux.cybermonde.org 
# dernière version 28-06-2004
# nom de la machine 
in_machine=`hostname` 
echo "Liste des groupes de" $in_machine 
# délimiteur ':' 
awk -F: '{
    in_groupe = $1
    in_liste =  $4
    print in_groupe, ": ", in_liste
} ' /etc/group

5.6. Envoi de mail via ligne de commande

SendEmail (http://caspian.dotconf.net/menu/Software/SendEmail/) est un script Perl qui permet l'envoi d'un e-mail sans faire appel à un autre module, programme...

Envoi d'un e-mail :

sendEmail -f laurent@monserveur -t destinataire@sonmail.com -u "testsendemail" -m "ceci est un test" -s mon.smtp.com:25

Envoi avec un fichier attaché :

sendEmail -f laurent@monserveur -t destinataire@sonmail.com -u "testsendemail" -m "ceci est un test" -a unfichierattaché -s mon.smtp.com:25

5.7. Gestion des backups

Voici 2 scripts mis en place pour la vérification/rotation des backups sur mon NAS :

Vérification et envoi d'un mail via l'utilitaire précédent :

#!/bin/bash 
# état du nas - par laurent http://linux.cybermonde.org 
# version du 26/01/2005
# le NAS est-il monté ? 
if [ -e /home/laurent/smb4k/NAS/backup/backup/ ] 
then 
   cd /home/laurent/scripts/ 
   echo "Le disque du NAS est rempli à :" > etatdunas.txt 
   # on va chercher la colonne qui rapporte le % d'espace occupé 
   df -h | grep NAS | cut -d " " -f18 >> etatdunas.txt 
   echo "Dernières sauvegardes (plus récentes en premier) :" >> etatdunas.txt 
   # liste des fichiers triés par ordre chronologique inverse et sans la première ligne 
   ls -lht /home/laurent/smb4k/NAS/backup/backup/ | sed 1d >> etatdunas.txt 
   # envoi du résultat par e-mail 
   /monchemin/sendEmail -f mon@mail -t "mon@mail" -u "état du NAS - message automatique" -o message-file=/home/laurent/scripts/etatdunas.txt -s relay.monisp:25 
else 
   # e-mail si disque non monté 
   /monchemin/sendEmail -f mon@mail -t "mon@mail" -u "état du NAS - ERREUR" -m "Problème lors du contrôle." -s relay.monisp:25 
fi

Rotation sur base du numéro de semaine :

#!/bin/bash 
# rotation du nas - par laurent http://linux.cybermonde.org 
# version du 09/05/2005
# le NAS est-il monté ? 
if [ -e /home/laurent/smb4k/NAS/backup/backup/ ] 
then         
   cd /home/laurent/smb4k/NAS/backup/backup/
   # PURGE
   # tri des fichiers par date
   FILES=`eval ls --sort=time backup_monserveur_*
   i=0
   for file in $FILES
   do
      if [ "$i" = 0 ]
      then
         # on garde le fichier
         echo "on garde" $file
      else
         # on le supprime
         echo "on supprime" $file
         rm -f $file
      fi
      let "i += 1"
   done
   # ROTATION 
   # numéro de semaine         
   numsemaine=$(date +%W)         
   # création du répertoire         
   mkdir semaine$numsemaine         
   # déplacement des fichiers *.tar et *.bkf         
   mv *.bkf semaine$numsemaine         
   mv *.tar semaine$numsemaine
   # semaine la + ancienne         
   numold=`expr $numsemaine - 3`         
   # suppression du set le plus ancien         
   rm -rf semaine$numold
   # envoi du résultat par e-mail
   /monchemin/sendEmail -f mon@mail -t "mon@mail" -u "rotation du NAS - message automatique" -m "Les backups ont été déplacés avec succès." -s relay.monisp:25 
else
   # e-mail si disque non monté
   /monchemin/sendEmail -f mon@mail -t "mon@mail" -u "rotation du NAS - ERREUR" -m "Problème lors de la rotation." -s relay.monisp:25 
fi

Remarque : si le format *.bkf vous cause des soucis, mtftar (http://gpl.internetconnection.net/) est un utilitaire qui permet de convertir les fichiers backups de Windows (*.bkf) en fichier *.tar :

mtftar -f monfichier.bkf -o monfichier.tar

5.8. LILO ne répond plus

Suite à une coupure de courant, le serveur de fichiers ne redémarrait plus.

En pratique le chargeur de démarrage (Lilo) s'arrêtait à "LI" ce qui est le signe d'un problème au niveau du secteur de démarrage.

Après diverses tentatives au niveau du matériel, j'ai entrepris de le redémarrer à l'aide du cd-rom d'installation fait par mes soins lors de sa configuration initiale (un Debian adapté).

En démarrant en mode "rescue", j'ai d'abord laisser s'exécuter un contrôle des disques, puis rebooté, sans résultat.

A nouveau en mode "rescue", j'ai :

Sauvegardé l'ancien lilo.conf

cp /etc/lilo.conf /etc/lilo.conf20050512

Recréé le MBR (Master Boot Record ou secteur de démarrage) :

install-mbr /dev/sda

Recopié le lilo.conf :

cp /etc/lilo.conf20050512 /etc/lilo.conf

Réexécuté lilo :

lilo

Et redémarré :

reboot

Mise en garde : cette procédure est donnée pour information, ce n'est pas une recette toujours applicable dans d'autres cas d'erreur identique ni transposable à une autre machine.


5.9. Archiver ses e-mails

Archiver ses e-mails du format mbox (par exemple utilisé par Evolution) vers HTML grâce à MHonArc (http://www.mhonarc.org).

Créer dans le répertoire courant une archive html par thread et par date avec les attachments :

mhonarc ~/evolution/local/Inbox/subfolders/mondossier/mbox

En ajoutant un titre pour la page thread et date et en inversant l'ordre de tri (les plus récents en premier) :

mhonarc -title "Archives e-mail par date" -ttitle "Archives e-mail par thread" -reverse -treverse ~/evolution/local/Inbox/subfolders/mondossier/mbox

En imposant "index.html" comme nom de page, ajouter l'option :

-idxfname "index.html"

L'option -add permet d'ajouter les nouveaux mails vers l'archive.

Créer un flux RSS : http://www.mhonarc.org/archive/html/mhonarc-users/1999-10/msg00072.html

Voici le script pour archiver tous mes dossiers Evolution avec création d'une table des matières, les dossiers avec un espace dans leur nom et les sous-dossiers ne sont pas pris en compte :

#!/bin/bash 
# transformation des boîtes mail Evolution en archives html 
# grâce à MHonArc (http://www.mhonarc.org)
# par laurent http://linux.cybermonde.org 
# version du 10/06/2005
# répertoire de destination de l'archive
destination="/home/laurent/www/mhonarc/"
cd $destination
# création d'un .htaccess pour protéger le répertoire
echo "AuthName \"Mhonarc\"" > .htaccess
echo "AuthType Basic" >> .htaccess
echo "AuthUserFile /usr/lib/apache/auth/mhonarc" >> .htaccess
echo "require user laurent" >> .htaccess
# répertoire des dossiers d'Evolution
# adapter le "-f8" pour obtenir le nom du répertoire
FILES=`eval ls -d ~/evolution/local/Inbox/subfolders/* | cut -d "/" -f8 `
i=0
echo "<html><head><title>Archives e-mail de Laurent</head><body><h1>Archives e-mail de Laurent</h1>" > index.html
for file in $FILES
do
        # création de la table des matières html
        echo "<a href=\""$file"\">"$file"</a><br/>" >> index.html
        # création du répertoire pour l'archive du dossier
        mkdir -p $file  
        # génération du html
        mhonarc -title "Archives e-mail par date pour "$file -ttitle "Archives e-mail par thread pour "$file -idxfname "index.html" -reverse -treverse -add -outdir $file ~/evolution/local/Inbox/subfolders/$file/mbox
        # dossier suivant
        let "i += 1"
done
madate=`eval date`
echo "Page générée le $madate</body></html>" >> index.html

5.10. Drivers ext2/3 pour Windows

Accès complet aux partitions ext2/3 à partir de Windows : http://www.fs-driver.org


6. Réseau

6.1. Configurer un proxy

Si vous passez par un proxy pour l'accès internet, la variable d'environnement http_proxy doit être positionnée :

export http_proxy=http://adresse_proxy:port/

6.2. Modifier l'adresse ip d'une carte réseau

ifconfig eth0 192.168.0.1

Si vous avez une seule carte réseau, si plusieurs, choisissez : eth0, eth1, eth2...


6.3. Modifier l'adresse mac d'une carte réseau

ifdown eth0
ifconfig eth0 hw ether nouvelle_adresse_mac 
ifup eth0 

Ou encore utiliser GNU MAC Changer (http://www.alobbs.com/modules.php?op=modload=macc=index) qui permet de choisir parmi une liste d'adresses existantes, ou par type (wifi)...


6.4. Connaître les ports ouverts/en écoute

netstat -na

6.5. Configurer les serveurs DNS

Editer le fichier

/etc/resolv.conf

comme suit :

nameserver ip_dns1
nameserver ip_dns2

6.6. Ajouter la passerelle (gateway)

Pour l'accès à internet par exemple :

route add default gw 123.123.123.123 eth0

remplacer 123... par l'adresse ip de la passerelle.


6.7. Vous cherchez des utilitaires réseau ?

Netwox, boîte à outils de tests réseau : http://www.laurentconstantin.com/fr/netw/netwox/


6.8. Adressage carte réseau

Sur Debian, le fichier

/etc/network/interfaces

contient les paramètres d'adressage de la carte (adresse ip, passerelle...).


6.9. Vérifier la sécurité d'une machine

A l'aide de nmap (http://www.insecure.org).


6.10. Surveiller l'activité du réseau

- Ethereal (http://www.ethereal.com), analyseur de paquets. Documentation sur l'analyse réseau à l'aide d'Ethereal : http://www.linux-france.org/prj/inetdoc/cours/intro.analyse/

- EtherApe (http://etherape.sourceforge.net/), outil graphique de monitoring réseau


6.11. Interroger les serveurs de nom

Le DNS dévoilé grâce aux commandes

nslookup

et

dig

6.12. Redémarrer l'interface réseau

Arrêter :

ifdown eth0

Redémarrer :

ifup eth0

6.13. Les machines du réseau sont-elles allumées ?

Un utilitaire, fping (http://www.fping.com), permet faire des pings sur des plages d'adresses entre autre.

Par exemple :

fping -s -g 192.168.0.0/24

permet de vérifier toutes les machines 192.168.0.x en donnant les statistiques.


6.14. Administration réseau

Guide O'Reilly en ligne : Linux Network Administrator's Guide (http://www.oreilly.com/catalog/linag2/book/index.html).


6.15. Wifi

Pour en savoir plus sur les réseaux sans fil :

Communauté Wifi :

- Bruxelles (http://reseaucitoyen.be/)

Se connecter au réseau citoyen :

# déterminer l'adresse ip à partir de l'adresse mac
ifconfig eth1 $(ifconfig |gawk -F: '/eth1/{s=10;for(i=5;i<8;i++)s=s"."strtonum("0x"$i);print s}')
# configurer l'interface wireless en mode adhoc, essid=bombolong et channel=1
iwconfig eth1 mode ad-hoc essid bombolong channel 1

- Hasselt (http://www.wardrivers.be/)

- Anvers (http://wirelessantwerpen.be/)

Sécurité :

- kitetoa (http://www.kitetoa.com/Pages/Textes/Textes/Textes8/Wireless/wirelessownzyadude.shtml)

- HSC (http://www.hsc.fr/ressources/presentations/pcexpert04-wifi/index.html.fr)

Drivers :

- Wireless LAN resources for Linux (http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Wireless.html)

- http://hostap.epitest.fi/

Articles de fond : O'Reilly Wireless DevCenter (http://www.oreillynet.com/wireless/)


6.16. Rapatrier des fichiers distants

Mon objectif est de rapatrier une revue de presse localisée sur un serveur distant. Les fichiers sont placés dans un dossier qui porte la date du jour comme nom. Il s'agit d'une table des matières html qui renvoient vers des articles au format pdf.

Le script suivant rapatrie les fichiers sur ma machine, en crée une archive et les déplace vers mon serveur web interne :

#-------------------------------------------------------
#presse.sh - version du 07/03/2003
#Laurent - http://linux.cybermonde.org
#Extraction des fichiers revue de presse
#-------------------------------------------------------
# date jour formatée jjmmaaaa
dtjour=`eval date +%d%m%Y`
echo "revue de presse du" $dtjour
# se placer dans le bon répertoire
cd /home/laurent/pdfmulti
# aller chercher la table des matières et tous les fichiers PDF liés
# option k pour transformer en liens relatifs
wget -rk http://www.mondomaine.be/press/Daily/HTML/$dtjour/TOC.html
# créer une archive avec les fichiers récupérés
tar -cf presse$dtjour.tar www.mondomaine.be/*
# déplacer fichiers - sauf archive - vers mon serveur web
mv www.mondomaine.be/press/Daily/HTML/$dtjour /home/laurent/public_html/www.mondomaine.be/press/Daily/HTML/
# supprimer les fichiers devenus inutiles
rm -fr www.mondomaine.be/

6.17. Gestion distante

Supposons que le serveur ssh tourne sur la machine à administrer et que son adresse est 192.168.1.1

Je l'administre à partir d'une autre machine du réseau 192.168.1.100

En ligne de commande :

xhost +192.168.1.1

Puis connexion via ssh :

ssh -l monutilisateur 192.168.1.1

Nous sommes connecté à la machine distante, ensuite :

export DISPLAY=192.168.1.100:0.0

Et puis lancer une application, par exemple :

mozilla&

Utiliser des applications X à distance : http://docs.mandragor.org/files/Misc/GLFM/lm33/Remote_Control_X.html


6.18. Utiliser une carte Wifi

Installez au préalable les outils wireless de votre distribution. Cela vous donnera accès à de nouvelles commandes. Tapez (sous root)

iw 

puis la touche tab et vous verrez toutes les nouvelles commandes.

Notamment

iwconfig

l'équivalent de

ifconfig

avec des spécificités wireless.

Si vous désirez explorer votre quartier, allez voir ce script : http://reseaucitoyen.be/index.php?ScriptWarDriving.

Vérifier la compatibilité d'une carte 802.11g : http://prism54.org/supported_cards.php


6.19. Streaming

Documentation : Monter sa webradio (http://rezal404.org/wikini/wakka.php?wiki=FaireSaRadioMenu).


6.19.1. Streaming simple

Voici le résumé de l'installation d'un serveur de streaming minimal.

Hardware : Pentium 133Mhz - 16 MB - HD 1,2 GB - Son : PCI basée sur un chipset ES1373 - Lan : 3Com 3C900 Combo

OS : Debian Woody 3.0r1 - kernel 2.2 - installation minimum

Logiciels installés : icecast2, ices2, libvorbis et dépendances.

Configuration : icecast via /etc/icecast2/icecast.xml et ices via /etc/ices2/ices-live.xml. La configuration est relativement simple.

Lancer comme utilisateur normal :

icecast -c /etc/icecast2/icecast.xml &

Puis comme utilisateur root :

ices /etc/ices2/ices-live.xml &

Résultat : un stream de qualité (sans coupure avec 1 client connecté !) avec un temps de latence d'environ 10 secondes. La source audio est un lecteur mp3 connecté sur l'entrée de la carte son. Le stream est réalisé au format ogg.


6.19.2. Streaming 4 canaux

L'idée est d'équiper un PC de 4 cartes son pour diffuser des débats publics (4 salles) sur intranet/internet. Le tout avec des logiciels libres et du matériel standard : PC recyclé et cartes son bon marché.

Matériel :

- PIII 733 Mhz - 256 MB RAM - 10 GB HD

- 1 carte son intégrée chipset CM8738

- 3 cartes son PCI chipset CM8738

Logiciel :

- installation minimum Debian Sarge via cd "net installer" (http://www.debian.org/devel/debian-installer/)

- Icecast et Ices :

apt-get install icecast2 ices2 

- Créer répertoire pour les fichiers de configurations de Ices :

mkdir /etc/ices2 

Fichiers de configurations :

/etc/icecast2/icecast.xml

<icecast> 
<location>MonStreaming</location> 
<admin>mon@streaming.be</admin> 
<limits> 
<clients>100</clients> 
<sources>333</sources> 
<threadpool>5</threadpool> 
<queue-size>102400</queue-size> 
<client-timeout>30</client-timeout> 
<header-timeout>15</header-timeout> 
<source-timeout>10</source-timeout> 
</limits> 
<authentication> 
<source-password>monmotdepasse</source-password> <relay-password>monmotdepasse</relay-password> 
<admin-user>admin</admin-user> 
<admin-password>monmotdepasse</admin-password> 
</authentication> 
<hostname>streaming4canaux</hostname> 
<listen-socket> 
<port>8000</port> 
</listen-socket> 
<mount> 
<mount-name>/example-complex.ogg</mount-name> 
<username>othersource</username> 
<password>hackmemore</password> 
<max-listeners>1</max-listeners> 
<fallback-mount>/example2.ogg</fallback-mount> 
</mount> 
<fileserve>1</fileserve> 
<paths> 
<basedir>/usr/share/icecast2</basedir> 
<logdir>/var/log/icecast2</logdir> 
<webroot>/usr/share/icecast2/web</webroot> <adminroot>/usr/share/icecast2/admin</adminroot> 
</paths> 
<logging> 
<accesslog>access.log</accesslog> 
<errorlog>error.log</errorlog> 
<loglevel>4</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error --> 
</logging>
<security> 
<chroot>0</chroot> 
<changeowner> 
<user>moi</user> 
<group>moi</group> 
</changeowner> 
</security> 
</icecast>

/etc/ices2/ices-live.xml

<?xml version="1.0"?> 
<ices> 
<background>0</background> <!-- run in background? (unimplemented) --> <logpath>/tmp</logpath> <!-- where logs, etc go. --> 
<logfile>ices.log</logfile> 
<loglevel>4</loglevel> <!-- 1=error,2=warn,3=info,4=debug --> <consolelog>1</consolelog> <!-- logfile is ignored if this is set to 1 --> 
<stream> 
<metadata> 
<name>MonStreaming</name> 
<genre>Vocal</genre> 
<description>Mon Programme</description> 
</metadata> 
<input> 
<module>oss</module> 
<param name="rate">22050</param> <!-- samplerate --> 
<param name="channels">1</param> <!-- number of channels --> 
<param name="device">/dev/dsp</param> <!-- audio device --> 
<param name="metadata">1</param> <!-- Read metadata (from stdin by default, or filename defined below (if the latter, only on SIGUSR1) --> 
<param name="metadatafilename">live</param> 
</input> 
<instance> 
<hostname>streaming4canaux</hostname> 
<port>8000</port> 
<password>monmotdepasse</password> 
<mount>/live.ogg</mount> 
<yp>1</yp> <!-- allow stream to be advertised on YP, default 0 --> 
<encode> 
<quality>0</quality> 
<samplerate>22050</samplerate> 
<channels>1</channels> 
</encode>
<!-- stereo->mono downmixing, enabled by setting this to 1 --> 
<downmix>0</downmix>
<!-- resampling. Set to the frequency (in Hz) you wish to resample to, or 0 to disable --> 
<resample> 
<in-rate>0</in-rate> 
<out-rate>0</out-rate> 
</resample> 
</instance>
</stream> 
</ices>

/etc/ices2/ices-live2.xml

Ce qui change :

<param name="device">/dev/dsp1</param> <!-- audio device -->
<mount>/live2.ogg</mount>

/etc/ices2/ices-live3.xml

Ce qui change :

<param name="device">/dev/dsp2</param> <!-- audio device -->
<mount>/live3.ogg</mount>

/etc/ices2/ices-live4.xml

Ce qui change :

<param name="device">/dev/dsp3</param> <!-- audio device -->
<mount>/live4.ogg</mount>

- lancer... comme utilisateur normal :

icecast2 -c /etc/icecast2/icecast.xml &

Puis comme utilisateur root :

ices2 /etc/ices2/ices-live.xml & 
ices2 /etc/ices2/ices-live2.xml & 
ices2 /etc/ices2/ices-live3.xml & 
ices2 /etc/ices2/ices-live4.xml &

Le niveau du son sur la carte intégrée était mauvais (saturation, effet métallique). Cette carte est identifiée en /dev/dsp3, j'ai donc installé un mixer en mode texte :

apt-get install aumix

Puis diminué les valeurs des entrées micro et ligne :

aumix -d /dev/mixer3

Mettre à jour la métadonnée "title" en ligne de commande :

wget -q --output-document=/dev/null --http-user=admin --http-passwd=motdepasse "http://mon_url:8000/admin/metadata?mount=/live4.ogg&mode=updinfo&song=Canal 4"

Personnaliser la page publique de statut via :

/etc/icecast2/web/status.xsl

Personnaliser la feuille de styles via :

/etc/icecast2/web/style.css

6.20. Access Point Wifi sous Linux

- Transformer sa carte à base de Prism en AP : http://hostap.epitest.fi/

- Authentification et routage : http://nocat.net/

- Une distribution tout en un : http://www.nycwireless.net/pebble/

- Plus minimaliste, Bubble : http://bulles.no-ip.org/bubble/BubbleHome

- Créer son AP avec une carte PCI Netgear MA311 :http://www.wlanfr.net/contenus.php?id=16

- Sécuriser son AP : http://www.wlanfr.net/contenus.php?id=100

- Linux scripts make wireless management a snap : http://www-128.ibm.com/developerworks/linux/library/wi-wiisp.html

- Portail captif, Talweg : http://sourcesup.cru.fr/talweg/


6.21. Limiter la bande passante

- trickle (http://www.monkey.org/~marius/trickle/) est un utilitaire qui permet de limiter la bande passante (upload et download) pour une application.


6.22. SNMP

NET-SNMP (http://net-snmp.sourceforge.net/) permet la gestion des équipements à l'aide du Simple Network Management Protocol.

Interroger une clé de l'arbre :

snmpget 192.168.0.25 public system.sysContact.0

Parcourir tout l'arbre :

snmpwalk 192.168.0.25 public | more

Chercher une valeur dans l'arbre :

snmpwalk 192.168.0.25 public | grep Uptime

6.23. Surveillance d'un réseau Wifi

WiFi Radar (http://www.bitbuilder.com/wifi_radar/) permet de gérer des profils de connexion à plusieurs réseaux sans fil.

Kismet (http://www.kismetwireless.net) permet la détection de réseaux sans fil.


7. Sécurité

7.1. Comment limiter l'accès à internet ?

Mon souhait était ici de limiter l'accès à l'intranet (192.168.25.xxx) et à un domaine sur internet (supposons ici 111.222.333.xxx). Cette configuration a été réalisée sous Mandrake 8.2 .

J'ai installé iptables (http://www.netfilter.org/) via le RPM trouvé sur http://rpmfind.net/.

Ensuite voici le script que j'ai écrit :

#!/bin/sh
#
# Script pour empêcher accès au web sauf intranet et mondomaine
# Laurent
# http://linux.cybermonde.org
# Interdire toutes les sorties
iptables -P OUTPUT DROP
# Autoriser tous les protocoles vers intranet
iptables -A OUTPUT -p all -d 192.168.25.0/24 -j ACCEPT
# Autoriser tous les protocoles vers mondomaine
iptables -A OUTPUT -p all -d 111.222.333.0/24 -j ACCEPT

J'ai ajouté une ligne dans /etc/rc.d/rc.local pour démarrer ce script au lancement de la machine.

Une documentation sur iptables : http://lea-linux.org/reseau/iptables.php3.

Réinitialiser toutes les règles :

iptables -P OUTPUT ACCEPT

7.2. Sécuriser ses échanges grâce à Gnupg

Une documentation en français : http://www.vilya.org/gpg/.

D'autres ressources : http://fa.vdb.free.fr/GPG/.

Interface graphique pour la gestion des clés : GNU Privacy Assistant (http://www.gnupg.org/gpa.html)

Génération de cartes de visite avec LaTeX ou LyX (pour diffuser largement votre key fingerprint) : http://www.linux-france.org/article/pro/entrepreneur-howto/03_visit-card/Lamiral/

Créer un fichier postscript avec l'empreinte d'une clé : http://www.trilug.org/~jeremy/

Comment signer une clé : http://www.hellea.be/?c=gpg

Utiliser GnuPG sous Gentoo (valable en général) : http://www.gentoo.org/doc/fr/gnupg-user.xml


7.3. Firewall

- Un script configuré par défaut pour interdire toute connexion entrante : rc.firewall (http://projectfiles.com/firewall/).

- Firewall Builder (http://www.fwbuilder.org/) est un outil graphique de création de règles de sécurité qui supporte entre autre iptables et ipfilter.

- Firestarter (http://www.fs-security.com), A Modern Linux Firewall.


7.4. Utiliser un système de fichiers crypté

Créer le "gros fichier" qui contiendra tous les fichiers cryptés :

dd if=/dev/urandom of=/home/laurent/pastouche bs=1M count=10

Création du système de fichiers crypté (à faire la première fois) :

su
losetup -e AES /dev/loop0 /home/laurent/pastouche
****mot de passe au moins 20 caractères****
mkfs -t ext2 /dev/loop0
mount -t ext2 /dev/loop0 /home/laurent/mnt/crypto
Se protéger quand on a fini :
umount /home/laurent/mnt/crypto
losetup -d /dev/loop0
Pour réutiliser ce système de fichiers crypté :
losetup -e AES /dev/loop0 /home/laurent/pastouche
****encoder votre mot de passe****
mount -t ext2 /dev/loop0 /home/laurent/mnt/crypto

Rédigé grâce à : http://en.tldp.org/HOWTO/Loopback-Encrypted-Filesystem-HOWTO-3.html

Voir aussi :

dm-crypt http://www.saout.de/misc/dm-crypt/

(Secure) SHell FileSystem (http://shfs.sourceforge.net/)

Disk Encryption HOWTO (http://www.tldp.org/HOWTO/Disk-Encryption-HOWTO/index.html).


7.5. Cartes à puce (smartcard)

MUSCLE (http://www.linuxnet.com/smartcard/)


7.6. Copier des fichiers à travers SSH

scp root@192.168.25.142:/home/test/screenshots/*.png /home/laurent/screenshots/

Récupère les fichiers *.png du répertoire /home/test/screenshots de la machine à l'adresse ip 192.168.25.142 et les copie vers mon dossier local /home/laurent/screenshots


7.7. Sécuriser un répertoire web d'Apache

- Création d'un répertoire pour stocker les fichiers d'authentification :

mkdir /usr/local/apache/auth

- Créer le fichier d'authentification avec un premier utilisateur "toto" :

htpasswd -c /usr/local/apache/auth/monappli toto

- Mot de passe = 2 fois

- Dans le dossier web concerné (/var/www/mondossier), créer le fichier .htaccess suivant :

AuthName "Mon application"
AuthType Basic
AuthUserFile /usr/local/apache/auth/monappli
require user toto

- Pour que cela fonctionne, dans /etc/apache/httpd.conf, juste après <Directory /var/www/> modifier la ligne suivante (remplacer None par All) :

AllowOverride All

- Redémarrer Apache


7.8. Représentation graphique de son trousseau de clés (keyring)

2 scripts Perl pour ce faire :

- sig2dot (http://www.chaosreigns.com/code/sig2dot/)

- springgraph (http://www.chaosreigns.com/code/springgraph/)

Perl doit être installé ! Sans oublier sa librairie perl-GD pour la génération de l'image PNG.

En pratique :

gpg --list-sigs --keyring ./mescles.gpg | ./sig2dot.pl > mescles.dot
cat mescles.dot | ./springgraph.pl -s 3 > mescles.png

7.9. Antivirus

Un antivirus pour Linux (pour protéger les machines Win ?), voir par exemple f-prot (http://www.f-prot.com). Un autre produit qui permet une analyse en ligne (basé sur Java) : Trend Micro's free online virus scanner (http://fr.trendmicro-europe.com/consumer/products/housecall_launch.php).


7.10. Authentification avec clé usb

pam_usb (http://www.sig11.org/~al/pam_usb/) est un module d'authentification via clé usb (par exemple) valable pour toute application basée sur PAM.


7.11. S'informer

Alertes de sécurité, failles logicielles : http://www.securityfocus.com

Lettre d'information de Bruce Schneier : http://www.schneier.com/crypto-gram.html

Exploits, alertes et outils : http://packetstormsecurity.org


7.12. Se connecter à travers SSH comme root

Même s'il est préférable de se loguer avec un autre utilisateur sur la machine et faire un su car, dans ce cas, on sait grâce aux logs qui est passé root sur la machine, voici la configuration à adapter, dans :

/etc/ssh/sshd_config 

Changer le paramètre suivant :

PermitRootLogin yes 

Puis relancer ssh :

/etc/rc.d/init.d/sshd restart

7.13. Utiliser SSH sans mot de passe

Il est possible de se connecter via SSH sans utiliser de mot de passe, mais en utilisant une clé partagée entre les 2 machines. Cela peut notamment être intéressant pour copier des fichiers via SCP dans un batch sans avoir à encoder de mot de passe.

La procédure de partage de clés est décrite ici : http://www.sukria.net/index.php?p=314


7.14. Crypter un fichier

Grâce à Gnupg :

gpg --output monfichiercrypte.gpg --encrypt --recipient mon@mail.com monfichierenclair

7.15. Carte d'identité électronique

Code source middleware software : http://www.belgium.be/zip/middleware_source_code_fr.html

SmartCard library and applications : http://www.opensc.org/

Wiki qui rassemble de nombreuses informations : http://www.esat.kuleuven.ac.be/~decockd/wiki/bin/view.cgi/Main/DannyDeCock

Quelques informations de configuration pour Firefox, Thunderbird et OOo : http://readers.eid.belgium.be/index.cfm?Content_ID=3294247


7.16. Effacement sécurisé

wipe (http://abaababa.ouvaton.org/wipe/) est un outil d'effacement sécurisé de fichiers.


8. Multimédia

8.1. Installer un serveur de streaming MP3

GNUMP3d (http://www.gnump3d.org/) est un serveur facile à installer et à paramétrer. Ne nécessite pas Apache ou PHP ou...

Installation :

tar -zxvf gnump3d-0.9.9.1.tar.gz
cd gnump3d-0.9.9.1
make linux
make install

Configuration :

vi /etc/mp3d.conf

Lancer le serveur (en arrière-plan) :

mp3d &

8.2. Utiliser un appareil photo numérique

Voir le projet gPhoto (http://www.gphoto.org)

- L'Olympus C800L est reconnu sans aucune difficulté avec gphoto, je peux voir les vignettes, sauver les photos, prendre une photo et créer une galerie d'images html automatiquement.

- Le Nikon Coolpix 2500 est reconnu comme un disque USB /dev/sda1.

- Le Canon PowerShot A70 n'étant pas encore connu par gphoto2, il doit se faire passer pour un autre, ce qui donne :

photo2 --usbid 0x4a9:0x3073=0x4a9:0x3056 --camera "Canon PowerShot S40" -P

pour copier les fichiers vers le répertoire courant. Merci à Peter Toft (http://pto.linuxbog.dk/Canon_PowerShot_A70_Linux/).

A lire égalemment : Canon Movies and Linux (http://www.edginet.org/techie/linux/canon_movies.html).

- Si vous êtes confronté au format RAW : http://www.cybercom.net/~dcoffin/dcraw/


8.3. Un fond d'écran dynamique

Voici une commande qui permet de remplacer votre fond d'écran statique par un économiseur d'écran :

/usr/X11R6/lib/xscreensaver/ifs -root &

Remplacer ifs par le nom de l'économiseur d'écran.


8.4. Utiliser plusieurs écrans et/ou cartes graphiques

Multi-Head : http://lea-linux.org/xwindow/multihead.php3


8.5. Consoles de jeu

Faire fonctionner son OS favori sur une Xbox (http://xbox-linux.sourceforge.net/) ou une GameCube (http://gc-linux.org/).


8.6. Webcam, caméra, radio et TV

De nombreuses ressources sur Video for Linux resources (http://www.exploits.org/v4l/).


8.7. Traitement du son

- Audacity est un logiciel de traitement sonore gratuit. Il permet d'enregistrer, de jouer, d'importer et d'exporter des données en plusieurs formats dont WAV, AIFF et MP3. Vous pourrez traiter vos sons avec les commandes Couper, Copier et Coller (avec annulations illimitées), combiner les pistes et ajouter des effets à vos enregistrements. Audacity intègre également un éditeur d'enveloppe de volume et permet l'analyse du son grâce à l'affichage paramétrable de spectrogrammes . Le logiciel intègre certains effets spéciaux tels l'amplification des basses, l'élimination du bruit, Wahwah et permet l'utilisation de plugiciels VST. http://audacity.sourceforge.net/

- Si vous souhaitez enregistrer un flux Realaudio, utilisez vsound qui n'est plus disponible chez son auteur (http://www.mega-nerd.com/erikd/vsound/), on peut le télécharger sur http://linuxberg.vol.at/files/console/media/vsound-0.4.tar.gz.

Après installation (configure/make/make install), modifier les droits comme suit :

chmod +s /usr/local/bin/vsound

Exemple d'utilisation :

vsound -f extraction.wav -d realplay flux.rm

- Utiliser MPlayer (http://www.mplayerhq.hu) pour sauvegarder un flux Real(audio-video) en local :

mplayer -noframedrop -dumpfile out.rm -dumpstream rtsp://adresseduflux/nomfichier.rm

- Pour l'enregistrement de flux MMS (protocole de Microsoft), il existe mms-qt (http://mms-qt.sourceforge.net/). Ce qui donne :

mmsdownloadgui mms://rtbf.streampower.be/jtadsl/jtdelartbf.wmv 

- Pour écouter vos fichiers audio, CD... : XMMS (http://www.xmms.org) est incontournable. Pour améliorer l'écoute de vos playlists, un plugin de crossfading amélioré existe : XMMS-Crossfade (http://www.mynetcologne.de/~nc-eisenlpe2/xmms-crossfade/index.htm).

- Les outils Linux pour DJ : http://linux-sound.org/ddj.html

- Mixxx (http://mixxx.sourceforge.net), permet de jouer au DJ.

- Des softwares pour la création artistique (son et vidéo) : http://dyne.org/

- Découper des fichiers mp3 ou ogg sans décodage : http://mp3splt.sourceforge.net

- Digital audio workstation : http://www.ardour.org


8.8. Installer un scanner Agfa e40

Grâce à la procédure décrite ici : SnapScan Backend for SANE (http://snapscan.sourceforge.net/)

N'oubliez pas de désinstaller l'ancienne version de SANE avant d'entamer cette procédure, sans cela je ne parvenais pas à faire fonctionner le scanner.


8.9. Linux et le son

http://linux-sound.org/


8.10. Installer plugin Flash

http://macromedia.mplug.org/


8.11. Utiliser FireWire (IEEE 1394)

Installer : http://www.linux1394.org

Utiliser : http://gscanbus.berlios.de


8.12. Ripper un vinyle

Voir GramoFile (http://panic.et.tudelft.nl/~costar/gramofile/).


8.13. Créer une icone pour votre site

Certains sites affichent dans la barre d'adresse ou dans les favoris une petite icone qui représente leur logo, comment faire ?

Il faut au préalable créer une icone de 16x16 pixels en 256 couleurs, utilisez par exemple KIconEdit (http://w1.1358.telia.com/~u135800018/prog.html) pour ouvrir un fichier image et le convertir.

Ce fichier sera nommé favicon.ico et placé à la racine du site. Ensuite dans l'entête de vos pages, il suffit d'insérer :

<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" >

8.14. Enregistrer une session VNC au format Flash

vnc2swf (http://www.unixuser.org/~euske/vnc2swf/) est un enregistreur de session VNC au format Flash, cet outil vous permet de vous connecter à distance sur une machine qui fait tourner un serveur VNC (quel que soit l'OS) et d'enregistrer dans un fichier swf toutes les actions entreprises.

N'oubliez pas, en intégrant cette animation à une page web, de spécifier correctement la taille de l'animation (voir http://www.unixuser.org/~euske/vnc2swf/vnc2swf.html#dist). En pratique c'est la résolution de la machine distante.


8.15. Traitement de films

Enregistrer chaque image d'un film vers des fichiers JPEG (beaucoup de fichiers !) :

mplayer -vo jpeg monfilm.mpg

9. Programmation

9.1. Quick Reference Cards

Aide-mémoire pour de nombreux langages : http://www.digilife.be/quickreferences/quickrefs.htm


9.2. Débuter avec Bash

A lire : Advanced Bash-Scripting Guide : http://www.tldp.org/LDP/abs/html/index.html

Linux Shell Scripting Tutorial - A Beginner's handbook : http://www.freeos.com/guides/lsst/

Voir en français :

Guide avancé d'écriture des scripts Bash : http://www.bsdbooks.net/shells/scripting/fr/index.html


9.3. Création d'un Makefile

Creating Makefiles: A Mini Tutorial http://www.linuxgazette.com/issue83/heriyanto.html


9.4. Transformer le code source en page HTML

Webcpp (http://webcpp.sourceforge.net/) permet de transformer vos codes sources (C, C++, php, basic...) en page HTML. Avec comme options, la colorisation du code, la numérotation des lignes...


9.5. Documentation Perl en français

http://www.enstimac.fr/Perl/


9.6. Ressources Python

Version librement téléchargeable de l'ouvrage "Apprendre à programmer avec Python" : http://www.ulg.ac.be/cifen/inforef/swi/python.htm

Association Francophone PYthon : http://afpy.org

Initiation à Python par l'exemple : http://www.lifl.fr/~marvie/Teaching.html


9.7. CGI avec Bash

9.7.1. Exemple simple

Le formulaire html qui appele le script /cgi-bin/test.cgi :

<html><head><title>Formulaire</title></head>
<body>
<form method="post" action="/cgi-bin/test.cgi"> 
<input type="text" name="mavaleur" size="40" />
<input type="submit" value="test" /> 
</form>
</body></html>

Le script CGI qui affiche la valeur introduite :

#!/bin/bash 
query=$( head --bytes="$CONTENT_LENGTH" ) 
echo Content-type: text/html 
echo 
echo "<html><head><title>Test CGI</title></head><body>" 
echo "Query=$query" 
echo "</body></html>"

9.7.2. Recevoir plusieurs valeurs

Le formulaire html avec liste d'options et zone texte :

<html><head><title>Formulaire</title></head>
<body>
<form method="post" action="/cgi-bin/cgi.sh">
<p><optgroup label="salle"> 
<br/><input type="radio" name="salle" value="salle1" checked>Salle 1
<br/><input type="radio" name="salle" value="salle2">Salle 2 
<br/><input type="radio" name="salle" value="salle3">Salle 3 
</optgroup></p> 
<p><input type="text" name="reunion" size="40" /></p> 
<p><input type="submit" value="go" /></p>
</form>
</body></html>

Les script cgi.sh :

#!/bin/bash 
query=$( head --bytes="$CONTENT_LENGTH" ) 
echo Content-type: text/html 
echo 
echo "<html><head><title>Résultats</title></head><body>" 
echo "<h1>Résultats</h1>" 
echo "<p>" 
commande=$( echo $query | tr '&' ';') 
eval $commande 
echo "La salle est :<strong>$salle</strong> et la réunion :<strong>$reunion</strong>" 
echo "</p></body></html>"

9.10. HTML

Editeur HTML écrit en JavaScript prêt à être intégré à une page web : http://www.themaninblue.com/experiment/widgEditor/


10. Applications

10.1. Manipulation de textes et images

- Antiword (http://www.winfield.demon.nl/) : transforme les documents Word (version 6 -> 2002) en fichier texte ou postscript.

- Concaténer des fichiers PDF :

texexec --pdfarrange --result all.pdf 1.pdf 2.pdf

texexec est inclus dans tetex-bin

ou via Ghostscript (http://www.cs.wisc.edu/~ghost/) :

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=complet.pdf un.pdf deux.pdf 

- Conversion de PDF en texte :

Conversion simple :

pdftotext images.pdf images.pdf.TEXTE_ENTIER_BRUT.txt

Conversion de la page 3 :

pdftotext images.pdf -f 3 -l 3 images.pdf.PAGE3_BRUT.txt

Conversion en respectant la mise en forme (colonne) :

pdftotext images.pdf -layout images.pdf.LAYOUT.txt

- Convertir les pages d'un fichier PDF en images :

convert foo.pdf pages-%03d.png 

convert est un des outils d'ImageMagick (http://www.imagemagick.org/)

Source : http://www-106.ibm.com/developerworks/library/l-graf2/?ca=dgr-lnxw15GraphicsLine

- pdftk (http://www.accesspdf.com/pdftk/) est la boîte à outils la plus complète pour manipuler des fichiers PDF.

Pour le compiler sur Mandrake 10.0, j'ai du modifier le Makefile.Mandrake comme suit :

<cut>
TOOLPATH= 
VERSUFF= -3.3.2 
CXX= $(TOOLPATH)g++$(VERSUFF) 
export GCJ= $(TOOLPATH)gcj 
export GCJH= $(TOOLPATH)gcjh 
<cut>

- Convertir toutes les images JPEG du répertoire courant en PostScript :

convert -page A4 *.jpg resultat.ps

Puis vers PDF :

ps2pdf resultat.ps

- Redimensionner toutes les images JPEG du répertoire courant à 30% :

for img in `ls *.jpg`; 
do   
   convert -sample 30%x30% $img small-$img; 
done

10.2. Serveur FTP

- vsftpd (http://vsftpd.beasts.org/) : serveur ftp qui allie sécurité, performance et stabilité. Brève documentation en français : http://www.hsc.fr/ressources/breves/vsftpd.html

Installation du serveur :

apt-get install vsftpd

Editer inetd pour autoriser le ftp :

vi /etc/inetd.conf 

Décommenter la ligne suivante :

ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/vsftpd 

Redémarrer inetd :

killall -HUP inetd

Configuration du serveur pour interdire anonymous et laisser les utilisateurs dans leur répertoire :

vi /etc/vsftpd.conf 

Décommenter/ajouter les lignes suivantes :

anonymous_enable=NO 
local_enable=YES 
chroot_local_user=YES

10.3. Associer commande et touche clavier

- XBindKeys (http://hocwp.free.fr/xbindkeys/xbindkeys.fr.html) est un programme qui permet de lancer des commandes shell avec le clavier ou la souris sous X Window. Il associe, à l'aide d'un fichier de configuration, une commande à une touche du clavier ou à un bouton de la souris. Il est indépendant du gestionnaire de fenêtres et peut capturer toutes les touches du clavier (ex: Power, Wake...).


10.4. Webmail

- Squirrelmail est un webmail (c'est-à-dire une interface web pour consulter son courrier électronique), écrit en PHP4. Il supporte les protocoles IMAP et SMTP, et toutes les pages générées le sont en pur HTML (sans aucun Javascript), ceci afin d'être compatible avec le maximum de navigateurs. Il n'est pas nécessaire de posséder un serveur avec un processeur puissant pour faire tourner Squirrelmail :), de plus il est très facile à installer et à configurer. Squirrelmail inclut de base toutes les options que vous êtes en droit d'attendre d'un logiciel de messagerie, y compris le support MIME, un carnet d'adresses, et la création de dossiers pour trier vos e-mails.

Extrait de http://www.squirrelmail-fr.org

Site officiel : http://www.squirrelmail.org


10.5. Weblog

- Un outil simple et original : blosxom (http://www.blosxom.com)

Un seul fichier cgi (mais la possibilité de l'utiliser en mode statique), pas de base de données, un principe simple et un produit suivi par une communauté enthousiaste.

- NanoBlogger (http://nanoblogger.sourceforge.net/) est un blog entièrement construit sur base de commandes bash.


10.6. Cartographie

- Localis (http://localis.org) est un outil cartographique en ligne contributif. Il permet de visualiser sur la carte des points de saisie d'autres utilisateurs, et d'y ajouter les siens.

- Le RAVEL (http://ravel.wallonie.be) met à disposition des cartes au format DjVu, pour les lire : DjVuLibre (http://djvu.sourceforge.net). Voici une suggestion de méthode de travail :

Pour lire les fichiers :

djview nomfichier.djvu

Une fois le logiciel lancé, enregistrer une image au format PPM puis convertir en JPEG comme suit :

ppmtojpeg nomfichier.ppm > nomfichier.jpg

Imprimer dans un fichier postscript pour convertir en pdf :

ps2pdf carte.ps carte.pdf

Attention à la taille du fichier !


10.7. PAO

- Scribus (http://web2.altmuehlnet.de/fschmid/about.html) est un logiciel de PAO concurrent de Adobe PageMaker, QuarkXPress ou Adobe InDesign.

- The Gimp (http://www.gimp.org), tutoriel en français : http://www.le-radar.com/?mm/gimp


10.8. CAD

- QCad (http://www.qcad.org) permet la création de plans en 2D. Ce logiciel gère les fichiers DXF (AutoCad).

- Varicad (http://www.varicad.com) propose une visionneuse de documents DWG, DXF...

- D'autres liens : http://www.tech-edv.co.at/lunix/CADlinks.html.

- Kicad (http://www.lis.inpg.fr/realise_au_lis/kicad/index.html) : ensemble de logiciels et un gestionnaire de projets destinés à la réalisation de cartes électroniques.


10.9. Créer une pochette de CD

- cdlabelgen (http://www.aczoom.com/tools/cdinsert/) est un script Perl qui permet de générer des pochettes CD au format PDF ou PostScript. Version en ligne : http://www.aczoom.com/tools/cdinsert/form.html


10.10. Photos digitales

- jhead (http://www.sentex.net/~mwandel/jhead/) permet d'extraire ou de modifier les données techniques d'une photo prise avec un appareil photo numérique (Exif JPEG).

Extraire les informations de l'entête du fichier :

jhead monimage.jpg

Extraire la vignette incluse dans le fichier (en nommant le résultat petit_monimage.jpg) :

jhead -st "petit_&i" monimage.jpg

Modifier le métatag commentaire sur tous les fichiers jpg du répertoire courant :

jhead -cl "Mes belles photos de vacances" *.jpg

Un utilitaire (script bash) qui utilise entre autre jhead pour créer des galeries photos : http://su2.info/easygg/

Pour créer une galerie web, une solution complète : http://gallery.sourceforge.net


10.11. Devenir un as du clavier

- GNU Typist (http://www.gnu.org/software/gtypist/gtypist.fr.html) est un programme universel pour apprendre à taper au clavier ou pour se perfectionner, en pratiquant ses exercices de façon régulière.

Lancer les leçons en français :

gtypist ktfr.typ

10.12. Code à barres

Après la lecture de cet excellent article (http://www.phpzoom.com/cbar.php) je vous recommande les logiciels suivants :

- kbarcode (http://www.kbarcode.net) est une application de génération de codes à barres et d'impression d'étiquettes.

- barcode (http://www.mribti.com/barcode/home.php) est une classe PHP qui génère des codes barres au format PNG ou JPEG.


10.13. Messagerie instantanée

10.13.1. Jabber

Le protocole Jabber (http://www.jabber.org) est incontournable et sert de base à de nombreux développement. Parmi les clients Linux, citons Gabber (http://gabber.sourceforge.net).

Outils dérivés :

- Jogger (http://jabber.linux.it/jogger/), un weblog alimenté par votre client Jabber.

- Les amessage web-tools (http://amessage.info/webtools/)

- RSS newsfeed (http://jabber.linux.it/rss.html)

- rss2jabber (http://rss2jabber.berlios.de) : s'abonner à un flux RSS via son client Jabber

Google Talk (http://www.google.com/talk/) est basé sur ce protocole.


10.13.2. Skype

Non libre mais disponible sous Linux, Skype (http://www.skype.com) permet de la téléphonie sur IP, y compris vers des téléphones classiques.

Le son ne fonctionnait qu'en lançant Skype en tant que root, solution :

chgrp audio /dev/dsp

FAQ son Linux : http://www.skype.com/help/guides/soundsetup_linux.html

An Analysis of the Skype Peer-to-Peer Internet Telephony Protocol : http://www1.cs.columbia.edu/~salman/publications/cucs-039-04.pdf

Un script pour enregistrer une conversation Skype : http://twistedlittlegnome.com/Podcasting/Podcasting-HOW-TOs/Recording-your-Skype-Calls-in-Linux.html


10.14. OSD

Abréviation de On Screen Display ou comment afficher des informations par dessus toutes les fenêtres actives : voir XOSD (http://www.ignavus.net/software.html).

Par exemple, afficher “vous avez un message” au milieu de l'écran en rouge et en grand :

echo "vous avez un message" | osd_cat --pos=middle --align=center --font=-adobe-helvetica-bold-r-normal-*-34-*-*-*-p-*-iso10646-1

XOSD Guide and Reference : http://ldots.org/xosd-guide/


10.15. P2P

- Parmi les clients peer-to-peer, aMule (http://www.amule.org) donne accès au réseau eDonkey/eMule. La liste des serveurs mise à jour régulièrement, par exemple, sur http://ed2k.2x4u.de/index.html.


10.16. WiKi

Qu'est-ce que le WiKI, en très bref, c'est une application qui rend les pages de votre site modifiables par tout le monde en utilisant un langage simplifié.

Parmi les produits existants :

- Un Wiki simple à mettre en oeuvre, une page PHP et pas de base de données : rowiki (http://www.rowlff.de/rowiki/).


10.17. CMS (Content Management System)

Outils de gestion de contenu :


10.17.1. Plone et Zope

Installation de Plone sur Debian :

1) installation de Plone, Zope et dépendances (Python) :

apt-get install plone 

2) création d'une instance de Zope :

/usr/lib/zope2.7/bin/mkzopeinstance.py moninstance 

J'ai choisi de l'installer dans /home/moninstance

3) lancer Zope :

/home/moninstance/bin/runzope 

4) dans l'installation, tous les composants de Zope étaient mal placés, j'ai du faire :

mv /usr/lib/zope/lib/python/Products/* /usr/lib/zope2.7/lib/python/Products/ 

En fait il semble qu'un script spécifique à Debian remette tout en place !

5) la suite dans l'interface d'administration de Zope :

http://localhost:9673/manage/ 

Après je vous invite à lire The Definitive Guide to Plone (http://docs.neuroinf.de/PloneBook) ou cette documentation en français : http://cielissime.free.fr/inforezo/index.php

La configuration du serveur Zope (n° de port par exemple) est stockée dans :

/home/moninstance/etc/zope.conf

Objectis est un service gratuit qui vous permet d'héberger une ou plusieurs applications Zope ou Plone : http://www.objectis.org


10.17.2. Mambo

Mambo (http://www.mamboserver.com) est un CMS basé sur PHP et MySql. L'installation est aisée...

Aide en français : http://www.mambofacile.com et http://mambonewbies.com.

Formation (gratuite !) : utilisation (http://www.technofutur3.be/code/fr/detail.asp?ID=170) et administration (http://www.technofutur3.be/code/fr/detail.asp?ID=171).

Après l'installation, un peu d'administration (j'utiliserai la terminologie de l'interface en français) :

1. Configuration générale (ce qui change) :

1.1 Site :

- traduire les 2 messages techniques

Ce serveur est arrêté pour maintenance.<br /> Revenez plus tard.

Ce site est temporairement indisponible.<br /> Veuillez prévenir l'administrateur système.

- mettre à "Non" l'option "Exiger une adresse e-mail unique".

Ce qui permet d'avoir la même adresse e-mail pour le rôle de "super-admin" et de simple utilisateur.

1.2 Lieu :

- Paramètre du pays : fr_BE (pour Belgique)

1.3 Métadonnées :

- modifier les 2 zones

1.4 E-mail :

- Serveur de mail : "Serveur SMTP"

- SMTP: Hôte: "relay.xxx.be"

2. Gestion des utilisateurs :

- créer un utilisateur à votre nom avec le rôle "super-admin"

Ensuite je me reconnecte avec ce nouveau login.

Gestion multilingues :

J'installe ensuite MambelFish (http://mamboforge.net/projects/mambelfish/) pour le support multilingue : via le tutoriel

http://www.mambofacile.com/index.php?option=com_content=view=58=53

J'ajoute le néerlandais au 2 langues installées (français et anglais). Je traduis quelques articles pour l"exemple.

Gestion documentaire :

Installation de DOCMan (http://www.mambodocman.com), gestionnaire de documents pour Mambo :

1. télécharger "DOCMan 1.3 RC 1"

2. installer via "Installateur/Composants"

3. dans "Composants/DOCMan/Catégories" créer une première catégorie, par exemple "Logos officiel"

4. dans "Composants/DOCMan/Files" ajouter un fichier, puis choisir "Make a new document entry using this file."

5. changer son nom, le placer dans la bonne catégorie et ajouter une description, l'approuver et le publier

6. pour ajouter DOCMan dans un menu, "Menu/Menu principal", puis "Nouveau"

7. cliquer sur "Component" puis "Suivant"

8. choisir le composant "DOCMan" dans la liste, donner un nom de menu (par exemple "Documents") et sauver

Changer de templates :

Ajout de nouveaux thèmes (templates), pour en trouver : http://www.mambohut.com

http://www.open4g.compropose un "Mambo Template Builder" pour NVU (http://www.nvu.com).

L'installation de cette extension n'a fonctionné que comme root.

Pour l'utilisation, voir http://www.open4g.com/content/view/13/9/1/1/


10.18. Gestion de parc informatique

GLPI (http://glpi.indepnet.org/index.php3) : gestion libre de parc informatique.

OCS4all (http://ocs4all.sourceforge.net) : solution d'inventaire automatisé de parc informatique avec agent sous Linux et Windows.


10.19. Gestion de projets

- GanttProject (http://ganttproject.sourceforge.net) : logiciel de gestion de projets basé sur Java.

- View Your Mind (http://www.insilmaril.de/vym/) : représentation graphique d'un projet, d'une idée.

J'avais des problèmes d'encodage des caractères accentués lors de l'exportation html, ces problèmes sont résolus comme suit :

Comme root :

vi /usr/share/vym/styles/vym2xhtml.xsl 

A la ligne 30, changer :

encoding="UTF-8" 

Par :

encoding="ISO-8859-1"

10.20. Médical

Suite de logiciels adaptés au monde médical (France) : Medintux (http://upsis.club.fr/MedinTux/index.html).


11. Education et jeux

11.1. Echecs

Pour jouer aux échecs, vous avez besoin du moteur GNU Chess (http://www.gnu.org/software/chess/) couplé à l'interface graphique XBoard (http://www.tim-mann.org/xboard.html). Une base de données de parties est librement téléchargeable : Scid (http://scid.sourceforge.net/). Enfin pour en savoir plus sur le jeu d'échecs : iEchecs (http://www.iechecs.com).

Un projet PHP pour jouer en ligne , Online Chess Club (http://lgames.sourceforge.net/index.php?project=OCC).


11.2. Simulation voiture

TORCS, The Open Racing Car Simulator (http://torcs.sourceforge.net/) est un jeu de courses de voiture en 3D.


11.3. Dessin

Tux Paint (http://www.newbreedsoftware.com/tuxpaint/) est un programme de dessin pour les jeunes enfants. On peut y ajouter des petits dessins sous forme de tampons.


11.4. Arcade

- Vous avez aimé SuperMario, alors installez SuperTux (http://super-tux.sourceforge.net/). Votre pingouin devra échapper aux pièges de la banquise.

- Pour préparer votre saison d'hiver, dévalez les pistes avec Tux Racer (http://tuxracer.sourceforge.net).


11.5. Lettres

Tux Typing (http://tuxtype.sourceforge.net/) propose des activités autour de l'apprentissage des lettres et du clavier.


11.6. Ludo-éducatif

- GCompris (http://gcompris.net) est une suite d'activités pédagogiques, le graphisme reste simple mais les apprentissages nombreux : lecture, mathématiques, sciences.

- AbulEdu (http://www.abuledu.org) héberge dans son terrier (http://www.abuledu.org/article.php3?id_article=64) des logiciels libres fait par les enseignants.

- L'Espace libre (http://libre.pedagosite.net) met à dispositions de nombreux documents pour les enseignants : http://libre.pedagosite.net/liste_documents.php.


11.7. Histoire-géographie

L'alternative gratuite et libre pour créer facilement tout document en histoire-géographie avec OpenOffice.Org : http://ooo.hg.free.fr/, cartes, atlas, croquis, lignes du temps...


12. Samba

12.1. Installer le serveur de fichiers Samba

Télécharger Samba

Décompresser l'archive :

tar -zxvf samba-2.2.3a.tar.gz 

(selon la version téléchargée)

Se placer dans le répertoire source :

cd samba-2.2.3a/source/

Exécuter le script de configuration :

configure

Compiler :

make

Installer :

make install

Démarrer Samba (à inclure dans un script de démarrage) :

/usr/local/samba/bin/smbd -D
/usr/local/samba/bin/nmbd -D

Exemple : partager le répertoire "/home/partage"

Créer le répertoire :

mkdir /home/partage

Editer le fichier de configuration :

vi /usr/local/samba/lib/smb.conf

Samba 3.0 sous Mandrake 10.0 :

vi /etc/samba/smb.conf

Puis relancer :

/usr/sbin/samba restart

Voici un exemple simple (un dossier partagé sans mot de passe) :

[global]
workgroup = informatique
netbios name = debian
server string = Serveur Samba sur Debian
security = share
name resolve order = bcast
guest account = smbguest
[partage]
comment = Partage pour tous sans mot de passe
path = /home/partage
public = yes
writable = yes
browsable = yes

Changer les droits sur ce fichier (dans mon cas ?) :

chmod 777 /usr/local/samba/lib/smb.conf

Créer l'utilisateur smbguest :

useradd smbguest

Changer les droits sur le dossier partagé :

chmod 777 /home/partage

Pour aller plus loin : http://ftp.easynet.be/samba/


12.2. Accéder à un partage Windows via Samba

En ligne de commande :

smbclient //nom_machine/nom_partage

Ensuite au nouveau prompt, taper help pour une liste de commandes disponibles.

Pour monter un dossier Windows partagé :

smbmount //nom_machine_win/nom_dossier /home/quelque_part/sur/linux

12.3. Monter automatiquement un dossier Windows partagé

Ajouter une ligne dans /etc/fstab

//nom_machine/nom_partage /home/point_de_montage smbfs password=abc,username=toto 0 0

dans le cas ou le dossier est protégé par mot de passe abc pour l'utilisateur toto


12.5. Exporter les utilisateurs vers Samba 2

cat /etc/passwd | /usr/share/samba/script/mksmbpasswd.sh > /etc/samba/smbpasswd

12.6. Gestion des utilisateurs et mots de passe de Samba 3

Dans Samba 3, la gestion des utilisateurs et mots de passe prend place dans /var/lib/samba/passdb.tdb et secrets.tdb

2 utilitaires permettents de manipuler ces fichiers :

pdbedit 

Par exemple, pour liste les utilisateurs :

pdbedit -L 

et pour la sauvegarde de ces fichiers :

tdbbackup

12.7. Création d'utilisateurs à partir d'un fichier délimité

Ce script - redirigé vers un autre fichier - génère un script de création des utilisateurs au niveau Linux et Samba, le mot de passe est identique pour tout le monde. En entrée un fichier délimité par “:” avec nom:prénom:login.

#!/bin/bash 
# ajout d'utilisateurs à partir d'un fichier délimité 
# à rediriger vers outawk.sh 
# puis exécuter outawk.sh sur la machine cible 
# par Laurent http://linux.cybermonde.org 
# dernière version 24-06-2004
# mot de passe générique 
echo "mommdp=passe" 
# fichier d'entrée monfichier.csv avec délimiteur ":" 
# 1) ajout de l'utilisateur dans le système 
# 2) ajout de l'utilisateur Samba avec "encodage" automatique du mot de passe 
awk -F: '{         
    print "useradd -c \""$2" "$1"\" -m -g users -p passe "$3         
    print "smbpasswd -a "$3" -s <<EOF"         
    print "${monmdp}"         
    print "${monmdp}"         
    print "EOF"         
} ' /home/laurent/scripts/monfichier.csv

12.8. Informations sur une machine netbios

Nom netbios d'une machine identifiée par son adresse ip :

nmblookup -A 192.168.1.2

Un script bash pour lister toutes les machines du réseau :

#-------------------------------------------------------
#nomnetbios.sh - version du 17/10/2002
#Laurent - http://linux.cybermonde.org
#Parcourt le réseau à la recherche des noms Netbios
#-------------------------------------------------------
echo "Parcourt le réseau à la recherche des noms Netbios";
i=1;
endip=254;
while [ $i -le $endip ];
do
nmblookup -A 192.168.25.$i;
i=$((i+1));
done

12.9. Documentation Samba

Fast start with Samba : http://www.newsforge.com/software/03/12/01/2212222.shtml?tid=79=82=92

The Official Samba-3 HOWTO and Reference Guide (disponible en téléchargement) : http://www.informit.com/promotion/1041


12.10. LDAP

Using OpenLDAP on Debian Woody to serve Linux and Samba users : http://aqua.subnet.at/~max/ldap/


12.11. Une configuration standard

Créer un utilisateur Linux :

useradd -c "Prenom nom" -m -g users -p motdepasse login 

Créer un utilisateur Samba :

smbpasswd -a login

Ce qui donne pour le /etc/samba/smb.conf :

[homes] 
comment = Home Directories 
valid users = %S 
browseable = no 
writable = yes 
create mask = 0700 
directory mask = 0700

Créer un groupe :

groupadd mongroupe 

Créer répertoire :

mkdir /home/mongroupe 

Changer propriétaire :

chown :mongroupe /home/mongroupe 

Changer droits :

chmod 0770 /home/mongroupe 

Ajouter un utilisateur au groupe :

usermod -G mongroupe login

Ce qui donne pour le /etc/samba/smb.conf :

[mon-groupe] 
path = /home/mongroupe 
valid users = @mongroupe 
writable = yes 
create mask = 0700 
directory mask = 0700

12.12. Accéder à des ressources partagées Windows/Samba via le web

SmbWebClient (http://www.nivel0.net/SmbWebClient) est un script PHP qui permet de parcourir le réseau (Windows/Samba) avec ou sans authentification.


12.13. Tester la configuration Samba

En cas d'édition de smb.conf à la main :

testparm /etc/samba/smb.conf

13. Hardware

13.1. Identifier le matériel connecté

Lister les cartes PCI :

lspci

Sur certaines distributions (les plus récentes), les périphériques USB seront identifiés par

lsusb

13.2. Processeur

Obtenir des informations sur le(s) processeur(s) :

cat /proc/cpuinfo

Quelques valeurs :

Intel :

Pentium III 500 : 497.562 Mhz et 992.87 bogomips

Pentium III 600 : 597.958 Mhz et 1183.74 bogomips

Pentium III 700 : 698.915 Mhz et 1380.35 bogomips

Pentium IV 2.00 : 1993.167 Mhz et 3948.54 bogomips

Pentium IV 2.40 : 2399.42 Mhz et 4784.12 bogomips

Pentium IV 3.40 : 3399.399 Mhz et 6733.82 bogomips

Xeon 2.40 : 2392.322 Mhz et 4771.02 bogomips

AMD :

AMD 1200 : 1244.707 Mhz et 2483.81 bogomips

AMD Athlon XP 2600+ : 1936.487 Mhz et 3833.85 bogomips

PPC :

MacMini 1.25 : 1249 MHz et 1245.18 bogomips

iBook G4 : 1199 MHz et 1196.03 bogomips


13.3. Installer un disque dur externe

- Modèle basé sur le chipset Prolific 2307.

Boîtier : http://www.compgeeks.com/details.asp?invtid=VE-007NHD, disque dur : IBM 4,87GB DBCA-204860

Le driver est sur cette page : http://bravin.home.cern.ch/bravin/usbide/usbide.html

J'ai modifié le Makefile car le lien vers les sources de mon kernel est linux.

Si le disque dur était branché au moment de l'installation, débranchez-le et rebranchez-le.

Sur ma Mandrake 9.0 (voir remarque de l'auteur du driver) le disque était en

/dev/ud/disc0/part1

- Disque dur externe Maxtor One Touch 250GB

http://www.maxtor.com/en/products/external/onetouch/onetouch_combo/index.htm, fonctionne sans manipulation sur ma Mandrake 9.1, le disque est en /dev/sda1

Testé uniquement en usb, la copie de 1GB s'effectue en 6 minutes.

- Boîtier disque dur 3'1/2 sur USB 2.0 (acheté sur http://www.ldlc.be/fiche/PB00015982.html). Fonctionne sous Mandrake 10.0.

Identifié comme :

ID 04b4:6830 Cypress Semiconductor Corp.

- Boîtier disque dur 2'1/2 sur USB 2.0 (acheté sur http://www.ldlc.be/fiche/PB00017145.html). Fonctionne sous Mandrake 10.0.

Identifié comme :

ID 05e3:0702 Genesys Logic, Inc. USB 2.0 IDE Adapter

13.4. Matériel ne fonctionnant pas sous Linux

Si vous avez pu installer un des produits ci-après, contactez-moi : webmaster@cybermonde.org

- Webcam Trust Spacec@m 100 portable, basée sur le chipset Divio NW800. Travaux sur ce chipset : http://nw802.sourceforge.net

- Mémoire USB Trek thumbdrive standard

Q-Tec (http://www.qtec.info) me répond suite à ma demande de support Linux d'une carte PCI Wifi :

We regret to inform you that our Computer Products are generally developed for use with Windows® operating systems only, and therefore no drivers or installation instructions for Linux operating systems are provided. Nor is in fact the use of our products with Linux in any way supported.

Une solution binaire et payante existe sur http://www.linuxant.com (merci Marco).


13.5. Vérifier les performances d'un disque dur

Grâce à l'utilitaire hdparm :

hdparm -tT /dev/hda

Si l'UDMA n'était pas activé, le fichier /etc/sysconfig/harddisks doit être modifié en activant la ligne

USE_DMA=1

13.6. Utiliser un Palm Vx

Pour installer les programmes utiles, établir la communication et sauvegarder les données du Palm vers le PC, voir ce document : http://www.pdacool.com/article.php3?id_article=72

Backup du Palm vers le disque dur :

pilot-xfer -p /dev/ttyS0 -b /home/monlogin/monpalm

Installer un fichier sur le Palm :

pilot-xfer -p /dev/ttyS0 -i /home/monlogin/monfichier.pdb

Base de données Opensource pour Palm : http://pilot-db.sourceforge.net/


13.7. Lecteur de cartes mémoire

- lecteur 9in1 (acheté sur http://www.ldlc.be/fiche/PB00022782.html), fonctionne sous Mandrake 9.0, testé avec une CompactFlash. Identifié comme :

ID 0424:20fc Standard Microsystems Corp.

- lecteur USB SmartMedia : le "USB SM READER / WRITER - Modèle 900991" identifié comme "Shuttle Technology Inc. eUSB SmartMedia Card Reader" fonctionne en lecture seule sur ma Mandrake 9.0. La carte mémoire est en /dev/sda1


13.8. Modem

Sur les PC portables, on rencontre souvent des Winmodem, comment les utiliser sous Linux :

http://www.linuxant.com/drivers/modemident.php

http://www.heby.de/ltmodem


13.9. Installation de Mandrake 9.2 sur un Compaq Evo N1015v

Dans la procédure d'installation automatisée, après quelques instants, le message suivant apparaît :

Bank 3: b40000000000083b at 00000001fc0003c8 Kernel panic

Il faut redémarrer l'instalation en choisissant F1 (More options) et lancer la commande :

linux nomce noauto nousb

Dans la phase de configuration, il faudra complèter :

Carte vidéo : Ati 1024x768 en 16 millions de couleur

Carte réseau : 8139cp

Carte son : après le premier démarrage, via Harddrake vérifier snd-ali5451, dans le Pilote, j'ai du choisir Trident.


13.10. Installation de Mandrake/Debian sur un Dell Inspiron 1100

- Sur http://www.geocities.com/randomnumbergenerator2001/ tous les détails sur l'installation de Linux sur cette machine, l'installation de Mandrake 9.2 se déroule sans problème jusqu'au premier démarrage de KDE, là l'écran n'est utilisé qu'en partie. Le 845patch décrit sur la page précitée lancé à chaque démarrage (automatiquement) résoud ce souci.

Un driver pour la carte réseau Broadcom 4401 est aussi disponible ici : http://www.broadcom.com/drivers/downloaddrivers.php

Quelques semaines plus tard, j'ai installé Mandrake 10.0 Community, le problème d'affichage a été résolu en mettant à jour le Bios (vers la version A29).

- Installation d'une Debian à partir de l'image Sarge du nouvel installeur Debian (http://www.debian.org/devel/debian-installer/). Poste bureautique standard, voici la configuration de XServer :

### BEGIN DEBCONF SECTION
# XF86Config-4 (XFree86 server configuration file) generated by dexconf, the
# Debian X Configuration tool, using values from the debconf database.
#
# Edit this file with caution, and see the XF86Config-4 manual page.
# (Type "man XF86Config-4" at the shell prompt.)
#
# If you want your changes to this file preserved by dexconf, only make changes
# before the "### BEGIN DEBCONF SECTION" line above, and/or after the
# "### END DEBCONF SECTION" line below.
#
# To change things within the debconf section, run the command:
# dpkg-reconfigure xserver-xfree86
# as root. Also see "How do I add custom sections to a dexconf-generated
# XF86Config or XF86Config-4 file?" in /usr/share/doc/xfree86-common/FAQ.gz.
Section "Files"
FontPath "unix/:7100" # local font server
# if the local font server has problems, we can fall back on these
FontPath "/usr/lib/X11/fonts/Type1"
# FontPath "/usr/lib/X11/fonts/CID"
# FontPath "/usr/lib/X11/fonts/Speedo"
FontPath "/usr/lib/X11/fonts/misc"
# FontPath "/usr/lib/X11/fonts/cyrillic"
FontPath "/usr/lib/X11/fonts/100dpi"
# FontPath "/usr/lib/X11/fonts/75dpi"
EndSection
Section "Module"
# Load "GLcore"
Load "bitmap"
Load "dbe"
Load "ddc"
Load "dri"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "record"
Load "speedo"
Load "type1"
Load "vbe"
Load "xtt"
EndSection
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "keyboard"
Option "CoreKeyboard"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc105"
Option "XkbLayout" "fr"
EndSection
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/psaux"
Option "Protocol" "PS/2"
Option "Emulate3Buttons" "true"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
Identifier "Generic Mouse"
Driver "mouse"
Option "SendCoreEvents" "true"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "Emulate3Buttons" "true"
Option "ZAxisMapping" "4 5"
EndSection
Section "Device"
Identifier "Intel I845GL chip"
Driver "i810"
VideoRam 16000
EndSection
Section "Monitor"
Identifier "1024X768"
HorizSync 30-60
VertRefresh 50-75
Option "DPMS"
EndSection
Section "Screen"
Identifier "Default Screen"
Device "Intel I845GL chip"
Monitor "1024X768"
DefaultDepth 24
SubSection "Display"
Depth 1
Modes "1600x1200" "1280x1024" "1024x768"
EndSubSection
SubSection "Display"
Depth 4
Modes "1600x1200" "1280x1024" "1024x768"
EndSubSection
SubSection "Display"
Depth 8
Modes "1600x1200" "1280x1024" "1024x768"
EndSubSection
SubSection "Display"
Depth 15
Modes "1600x1200" "1280x1024" "1024x768"
EndSubSection
SubSection "Display"
Depth 16
Modes "1600x1200" "1280x1024" "1024x768"
EndSubSection
SubSection "Display"
Depth 24
Modes "1600x1200" "1280x1024" "1024x768"
EndSubSection
EndSection
Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
InputDevice "Generic Mouse"
EndSection
Section "DRI"
Mode 0666
EndSection
### END DEBCONF SECTION

13.11. Installation de Debian sur un Dell Poweredge 2600

Ce serveur équipé de cartes ethernet gigabit et d'un contrôleur raid PERC4 nécessite des drivers récents, une image ISO taillée sur mesure (http://wiki.osuosl.org/display/LNX/Debian+on+Dell+Servers) permet une installation minimum : partitionnement des disques, configuration réseau et définition des sources pour la suite de l'installation. Le support de Dell pour Linux est regroupé sur ce site : http://linux.dell.com/.


13.12. Du son avec le chipset CM8738

Ce chipset équipe des cartes sons intégrées à la carte mère, il est parfaitement reconnu sous Mandrake 9.2 mais aucun son ne sort... La seule solution qui a été efficace pour moi fut de me débarrasser d'Alsa. Pour rappel 2 grandes familles de drivers gèrent le son : OSS (l'ancien) et Alsa (le moderne). Une fois Alsa évacué de mon système, OSS a rempli son rôle.


13.13. NetGear FA411 et Mandrake 10.0

Ma carte réseau était reconnue à l'installation mais ne démarrait jamais, l'ordre de chargement des modules pcmcia et réseau, ou les modules chargés en sont la/les cause(s). Je m'interroge. Solution temporaire, après démarrage, comme root je lance les commandes suivantes :

modprobe -kr pcnet_cs
service pcmcia start

Ce problème est résolu en Mandrake 10.1.


13.14. Installation de Debian sur un IBM 300PL

Configuration de la machine : Pentium 200Mhz - 64MB Ram - HD 4,3 Gb. Carte son, réseau et vidéo sont intégrées, 2 ports usb.

Son : chipset Crystal CS4236B, fonctionne avec le module CS4232

Réseau : Intel Ethernet 82557, module eepro100

Vidéo : Matrox Mystique, module mga


13.15. Portable-Laptop

Plusieurs sites référencent les procédures d'installation par marque :

Linux on Laptops : http://www.linux-on-laptops.com

TuxMobil (anc. Mobilix) : http://tuxmobil.org

Linux-Sony Laptop Documentation Site : http://insue.com/linux/phpwiki/

IBM : http://www-307.ibm.com/pc/support/site.wss/MIGR-48NT8D.html


13.16. Epson

Solutions Linux pour les produits Epson : http://www.epkowa.co.jp/english/linux_e/index.html


13.17. Lecteur multimédia

Le lecteur multimédia USB offert par Belgacom à ses clients ADSL est identifié comme :

Bus 001 Device 002: ID 10d6:1100 Actions Semiconductor Co., Ltd

Fonctionne sous Mandrake 10.1.


13.18. Clé usb wifi

Indices pour faire fonctionner une clé D-Link DWL-122 (http://www.ldlc.be/fiche/PB00019709.html) :

- D-Link DWL-122 Wireless USB Adapter linux HOWTO : http://julian.coccia.com/blog/index.php?p=53=1

- Voir les fichiers ma111* sur http://eric.bachard.free.fr


13.19. Debian sur Mac Mini

Je me suis basé sur les explications suivantes : Linux on the Mac Mini (http://sowerbutts.com/linux-mac-mini/)

XF86Config-4 avec un écran Dell 17''TFT via DVI (j'ai nettoyé les commentaires) :

Section "Module"
    Load        "dbe"   # Double buffer extension
    SubSection  "extmod"
      Option    "omit xfree86-dga"   # don't initialise the DGA extension
    EndSubSection
    Load        "type1"
    Load        "speedo"
EndSection
Section "Files"
    RgbPath     "/usr/X11R6/lib/X11/rgb"
    FontPath   "/usr/X11R6/lib/X11/fonts/misc/"
    FontPath   "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
    FontPath   "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
    FontPath   "/usr/X11R6/lib/X11/fonts/Speedo/"
    FontPath   "/usr/X11R6/lib/X11/fonts/Type1/"
    FontPath   "/usr/X11R6/lib/X11/fonts/75dpi/"
    FontPath   "/usr/X11R6/lib/X11/fonts/100dpi/"
EndSection
Section "ServerFlags"
EndSection
Section "InputDevice"
    Identifier  "Keyboard1"
    Driver      "Keyboard"
    Option "AutoRepeat" "500 30"
    Option "XkbRules"   "xfree86"
    Option "XkbModel"   "macintosh"
    Option "XkbLayout"  "be"
EndSection
Section "InputDevice"
    Identifier  "Mouse1"
    Driver      "mouse"
    Option      "Device"        "/dev/input/mice"
   Option       "Protocol"      "ImPS/2"
EndSection
Section "Monitor"
    Identifier  "Dell17tft"
    HorizSync   30-80
    VertRefresh 56-76
EndSection
Section "Device"
    Identifier  "Standard VGA"
    VendorName  "Unknown"
    BoardName   "Unknown"
    Driver     "vga"
EndSection
Section "Device"
    Identifier  "radeon4mac"
    Driver      "radeon"
EndSection
Section "Screen"
    Identifier  "Screen 1"
    Device      "radeon4mac"
    Monitor     "Dell17tft"
    DefaultDepth 24
    Subsection "Display"
        Depth       8
        Modes       "1280x1024" "1024x768" "800x600" "640x480"
        ViewPort    0 0
    EndSubsection
    Subsection "Display"
        Depth       16
        Modes       "1280x1024" "1024x768" "800x600" "640x480"
        ViewPort    0 0
    EndSubsection
    Subsection "Display"
        Depth       24
        Modes       "1280x1024"
        ViewPort    0 0
    EndSubsection
EndSection
Section "ServerLayout"
    Identifier  "Simple Layout"
    Screen "Screen 1"
    InputDevice "Mouse1" "CorePointer"
    InputDevice "Keyboard1" "CoreKeyboard"
EndSection
 Section "DRI"
    Mode 0666
 EndSection

Résultat d'un lspci :

0000:00:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 AGP 
0000:00:10.0 VGA compatible controller: ATI Technologies Inc: Unknown device 5962 (rev 01) 
0001:10:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 PCI 
0001:10:17.0 ff00: Apple Computer Inc. KeyLargo/Intrepid Mac I/O 
0001:10:18.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB 
0001:10:19.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB 
0001:10:1a.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB 
0001:10:1b.0 USB Controller: NEC Corporation USB (rev 43) 
0001:10:1b.1 USB Controller: NEC Corporation USB (rev 43) 
0001:10:1b.2 USB Controller: NEC Corporation USB 2.0 (rev 04) 
0002:20:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 Internal PCI 
0002:20:0d.0 ff00: Apple Computer Inc. UniNorth/Intrepid ATA/100 
0002:20:0e.0 FireWire (IEEE 1394): Apple Computer Inc. UniNorth 2 FireWire (rev 81) 
0002:20:0f.0 Ethernet controller: Apple Computer Inc. UniNorth 2 GMAC (Sun GEM) (rev 80)

Résultat de la commande cat /proc/cpuinfo :

processor       : 0 
cpu             : 7447A, altivec supported 
clock           : 1249MHz 
revision        : 1.2 (pvr 8003 0102) 
bogomips        : 1245.18 
machine         : PowerMac10,1 
motherboard     : PowerMac10,1 MacRISC3 Power Macintosh 
detected as     : 287 (Unknown Intrepid-based) 
pmac flags      : 00000000 
L2 cache        : 512K 
unified memory  : 256MB 
pmac-generation : NewWorld

A propos du son, en appliquant la modification mentionnée dans ce forum : http://ubuntuforums.org/showthread.php?t=12748, j'ai compilé un kernel 2.6.11 à l'aide du fichier config du site mentionné en début de chapître, et cela fonctionne !

Les résultats avec le clavier Mac sont étranges, j'ai commencé à y travailler sur base du document suivant : http://www.linux-france.org/macintosh/clavier_v4.html

La dissection d'un MacMini pour le rendre moins énergivore : http://www.home.earthlink.net/~silasb/macbat/


13.20. Ubuntu sur Dell Optiplex SX260

Installation de Ubuntu 5.04 (http://www.ubuntulinux.org) sur un Dell Optiplex SX260, sans souci.

Résultat d'un lspci :

0000:00:00.0 Host bridge: Intel Corp. 82845G/GL[Brookdale-G]/GE/PE DRAM Controller/Host-Hub Interface (rev 01) 
0000:00:02.0 VGA compatible controller: Intel Corp. 82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device (rev 01) 
0000:00:1d.0 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01) 
0000:00:1d.1 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01) 
0000:00:1d.2 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01) 
0000:00:1d.7 USB Controller: Intel Corp. 82801DB/DBM (ICH4/ICH4-M) USB 2.0 EHCI Controller (rev 01) 
0000:00:1e.0 PCI bridge: Intel Corp. 82801 PCI Bridge (rev 81) 
0000:00:1f.0 ISA bridge: Intel Corp. 82801DB/DBL (ICH4/ICH4-L) LPC Bridge (rev 01) 0000:00:1f.1 IDE interface: Intel Corp. 82801DB/DBL (ICH4/ICH4-L) UltraATA-100 IDE Controller (rev 01) 
0000:00:1f.3 SMBus: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 01) 
0000:00:1f.5 Multimedia audio controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01) 
0000:01:0c.0 Ethernet controller: Intel Corp. 82540EM Gigabit Ethernet Controller (rev 02) 

Résultat de la commande cat /proc/cpuinfo :

processor : 0 
vendor_id : GenuineIntel 
cpu family : 15 
model : 2 
model name : Intel(R) Pentium(R) 4 CPU 2.00GHz 
stepping : 7 
cpu MHz : 1993.167 
cache size : 512 KB 
fdiv_bug : 
no hlt_bug : 
no f00f_bug : 
no coma_bug : 
no fpu : yes 
fpu_exception : yes 
cpuid level : 2 
wp : yes 
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe cid 
bogomips : 3948.54 

13.21. Debian sur un iBook G4

Références : http://twolife.org/debian/ibook.php et http://www.aronchi.org/LinuxOnIBookG4

lspci :

0000:00:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 AGP 
0000:00:10.0 VGA compatible controller: ATI Technologies Inc RV250 5c63 [Radeon Mobility 9200 M9+] (rev 01) 
0001:10:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 PCI 
0001:10:12.0 Network controller: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 03) 
0001:10:17.0 ff00: Apple Computer Inc. KeyLargo/Intrepid Mac I/O 
0001:10:18.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB 
0001:10:19.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB 
0001:10:1a.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB 
0001:10:1b.0 USB Controller: NEC Corporation USB (rev 43) 
0001:10:1b.1 USB Controller: NEC Corporation USB (rev 43) 
0001:10:1b.2 USB Controller: NEC Corporation USB 2.0 (rev 04) 
0002:20:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 Internal PCI 
0002:20:0d.0 ff00: Apple Computer Inc. UniNorth/Intrepid ATA/100 
0002:20:0e.0 FireWire (IEEE 1394): Apple Computer Inc. UniNorth 2 FireWire (rev 81) 
0002:20:0f.0 Ethernet controller: Apple Computer Inc. UniNorth 2 GMAC (Sun GEM) (rev 80)

cat /proc/cpuinfo :

processor : 0 
cpu : 7447A, altivec 
supported clock : 1199MHz 
revision : 1.1 (pvr 8003 0101) 
bogomips : 1196.03 
machine : PowerBook6,5 
motherboard : PowerBook6,5 MacRISC3 
Power Macintosh detected as : 287 (iBook G4) 
pmac flags : 0000000a 
L2 cache : 512K 
unified memory : 768MB 
pmac-generation : NewWorld

Pour le mapping des touches, 2 applications : http://pbbuttons.sourceforge.net/ et http://hocwp.free.fr/xbindkeys/xbindkeys.fr.html

Dans mon fichier .xbindkeysrc, pour la touche d'éjection du cd-rom :

"eject" 
m:0x0 + c:96

Configuration serveur X :

Section "Files"
        RgbPath         "/usr/X11R6/lib/X11/rgb"
        FontPath        "/usr/lib/X11/fonts/misc"
        FontPath        "/usr/lib/X11/fonts/100dpi/:unscaled"
        FontPath        "/usr/lib/X11/fonts/75dpi/:unscaled"
        FontPath        "/usr/lib/X11/fonts/Type1"
        FontPath        "/usr/lib/X11/fonts/Speedo"
        FontPath        "/usr/lib/X11/fonts/cyrillic"
        FontPath        "/usr/lib/X11/fonts/100dpi"
        FontPath        "/usr/lib/X11/fonts/75dpi"
        FontPath        "/var/lib/defoma/x-ttcidfont-conf.d/dirs/CID"
        FontPath        "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection
Section "Module"
        Load    "GLcore"
        Load    "bitmap"
        Load    "dbe"
        Load    "dri"
        Load    "extmod"
        Load    "freetype"
        Load    "glx"
        Load    "record"
        Load    "speedo"
        Load    "type1"
EndSection
Section "InputDevice"
        Identifier      "Generic Keyboard"
        Driver          "keyboard"
        Option          "CoreKeyboard"
        Option          "XkbRules"      "xfree86"
        Option          "XkbModel"      "macintosh"
        Option          "XkbLayout"     "be"
EndSection
Section "InputDevice"
        Identifier      "Configured Mouse"
        Driver          "mouse"
        Option          "CorePointer"
        Option          "Device"                "/dev/input/mice"
        Option          "Protocol"              "ImPS/2"
        Option          "Buttons"               "5"
        Option          "ZAxisMapping"          "4 5"
EndSection
Section "Device"
        Identifier      "ATI Radeon Mobility 9200 M9+"
        Driver          "radeon"
        Option          "AGPMode" "4"
        Option          "UseFBDev"
        Option          "EnablePageFlip"
EndSection
Section "Monitor"
        Identifier      "Apple iBook G4 LCD"
        Gamma           0.75
        Option          "DPMS"
EndSection
Section "Screen"
        Identifier      "Default Screen"
        Device          "ATI Radeon Mobility 9200 M9+"
        Monitor         "Apple iBook G4 LCD"
        DefaultDepth    24
        SubSection "Display"
                Depth           1
                Modes           "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           4
                Modes           "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           8
                Modes           "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           15
                Modes           "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           16
                Modes           "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           24
                Modes           "1024x768" "800x600" "640x480"
        EndSubSection
EndSection
Section "ServerLayout"
        Identifier      "Default Layout"
        Screen          "Default Screen"
        InputDevice     "Generic Keyboard"
        InputDevice     "Configured Mouse"
EndSection
Section "DRI"
        Mode    0666
EndSection

Configuration serveur X pour sortie VGA (mais dans ce cas rien sur l'écran interne) :

Section "Files"
        RgbPath         "/usr/X11R6/lib/X11/rgb"
        FontPath        "/usr/lib/X11/fonts/misc"
        FontPath        "/usr/lib/X11/fonts/100dpi/:unscaled"
        FontPath        "/usr/lib/X11/fonts/75dpi/:unscaled"
        FontPath        "/usr/lib/X11/fonts/Type1"
        FontPath        "/usr/lib/X11/fonts/Speedo"
        FontPath        "/usr/lib/X11/fonts/cyrillic"
        FontPath        "/usr/lib/X11/fonts/100dpi"
        FontPath        "/usr/lib/X11/fonts/75dpi"
        FontPath        "/var/lib/defoma/x-ttcidfont-conf.d/dirs/CID"
        FontPath        "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection
Section "Module"
        Load    "GLcore"
        Load    "bitmap"
        Load    "dbe"
        Load    "dri"
        Load    "extmod"
        Load    "freetype"
        Load    "glx"
        Load    "record"
        Load    "speedo"
        Load    "type1"
EndSection
Section "InputDevice"
        Identifier      "Generic Keyboard"
        Driver          "keyboard"
        Option          "CoreKeyboard"
        Option          "XkbRules"      "xfree86"
        Option          "XkbModel"      "macintosh"
        Option          "XkbLayout"     "be"
EndSection
Section "InputDevice"
        Identifier      "Configured Mouse"
        Driver          "mouse"
        Option          "CorePointer"
        Option          "Device"                "/dev/input/mice"
        Option          "Protocol"              "ImPS/2"
        Option          "Buttons"               "5"
        Option          "ZAxisMapping"          "4 5"
EndSection
Section "Device"
        Identifier      "ATI Radeon Mobility 9200 M9+"
        Driver          "radeon"
        Option          "AGPMode" "4"
#       Option          "UseFBDev"
        Screen 0
        Option          "EnablePageFlip"
EndSection
Section "Monitor"
        Identifier      "Apple iBook G4 LCD"
        Gamma           0.75
        Option          "DPMS"
EndSection
Section "Monitor"
        Identifier "Projecteur"
EndSection
Section "Screen"
        Identifier      "Screen 0"
        Device          "ATI Radeon Mobility 9200 M9+"
        Monitor         "Apple iBook G4 LCD"
        DefaultDepth    24
        SubSection "Display"
                Depth           1
                Modes           "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           4
                Modes           "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           8
                Modes           "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           15
                Modes           "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           16
                Modes           "1024x768" "800x600" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           24
                Modes           "1024x768" "800x600" "640x480"
        EndSubSection
EndSection
Section "ServerLayout"
        Identifier      "Default Layout"
        Screen 0        "Screen 0"
        InputDevice     "Generic Keyboard"
        InputDevice     "Configured Mouse"
        Option "MergedFB" "On"
EndSection
Section "DRI"
        Mode    0666
EndSection

Reste à résoudre :

- symbole euro

- symbole | (pipe)

- cloner écran in et out

- carte wifi

Installation d'une Ubuntu 5.10 avec recompilation du kernel (http://wiki.ubuntu-fr.org/doc/custom_kernel) sur base 2.6.14 avec le .config de http://static.twolife.org/ibook/ibookG4-4.html#ss4.1


14. PHP-MySQL et plus

14.1. Copier une base MySql de Windows vers Linux

- créer un "dump" de la base hébergée sur la machine Windows, par exemple avec PhpMyAdmin : transmettre structure et données. On obtient un fichier nomdb.sql

- copier ce fichier vers la machine Linux

- créer la base de données :

mysqladmin create nomdb

- passer en ligne de commande MySql :

mysql nomdb

- importer le fichier Windows :

source /mon/chemin/nomdb.sql
quit

- supprimer nomdb.sql


14.2. Quelques instructions en ligne de commande MySql :

Créer une base de données "anniv" :

CREATE database anniv;

Voir toutes les tables :

SHOW TABLES;

Ajouter un champ "langue" de 2 caractères à une table "anniversaire" :

ALTER TABLE anniversaire ADD langue CHAR(2);

Créer une table "authentification" avec "idanniv" comme entier non null et clé primaire, "login" et "password" comme chaîne de 100 :

CREATE TABLE authentification (idanniv TINYINT(4) NOT NULL, login VARCHAR(100), password VARCHAR(100), PRIMARY KEY(idanniv));

Rechercher et remplacer via SQL :

UPDATE nomdetable SET nomdechamp = REPLACE(nomdechamp,'texteachercher','textearemplacer');

D'autres astuces : Interesting Things to Know about MySQL(http://souptonuts.sourceforge.net/readme_mysql.htm).


14.3. POST et GET

A partir de la version 4.2.0 de PHP, la clause register_globals est à Off par défaut. Ceci empêche la récupération de la valeur des variables par un simple $nomvar. Si vous ne désirez pas adapter votre code, voici la procédure :

- sous Linux, ajouter un fichier .htaccess dans votre répertoire web avec la directive

php_flag register_globals on

- sous Windows, modifier php.ini en changeant register_globals de Off vers On


14.4. Sauvegarde et restauration

- Sauvegarder toute la base :

mysqldump nomdb >/mon/chemin/nomdb.sql

- Restaurer :

mysql -p nomdb < /mon/chemin/nomdb.sql

14.5. Importer des données

En créant un fichier avec les données séparées par une tabulation et chaque enregistrement séparé par un retour à la ligne, vous pouvez facilement injecter ces données dans une table MySql.

Le fichier portera le nom de la table :

mysqlimport nomdb fichier

14.6. Récupérer des données Access

Pour lire une base de données Access sur une machine Linux, il existe une trousse à outils : MDBtools (http://mdbtools.sourceforge.net/) qui permettra divers traitement sur la base.

Lister les tables :

mdb-tables nombase.mdb

Exporter une table :

mdb-export nombase.mdb nomtable > matable.txt

Afficher la structure de la base :

mdb-schema nombase.mdb

14.7. Interface avec MS SQL Server

Si vous devez vous interfacer avec une base de données MS SQL Server, nul besoin d'une machine Windows équipée du SQL Query Analyser, essayer KSqlAnalyser (http://www.kpage.de/en/).

Ce travail est basé sur la librairie FreeTDS (http://www.freetds.org/).

Utiliser PHP avec FreeTDS pour interroger MS SQL Server : http://www.peceny.de/misc/freetds.html.


14.8. Sécurité du serveur MySQL

Accèder à la base de données système :

mysql mysql

Voir les utilisateurs autorisés du serveur :

select Host, User, password from user;

Donner à l'utilisateur laurent tous les droits sur la base test à partir de la machine 192.168.0.1 avec le mot de passe mdp :

grant all privileges on test.* to laurent@192.168.0.1 identified by "mdp";

14.9. Gestion des bases MySQL

A part le très célèbre phpMyAdmin (http://www.phpmyadmin.net), il existe un script facile à mettre en oeuvre (une page), WizMySQLadmin (http://wiz.homelinux.net/php.php).

Plus complet : Aqua Data Studio (http://www.aquafold.com) est un outil d'administration de serveurs de bases de données qui permet la gestion de : Oracle, DB2, SQL Server, Sybase, Informix, Postgres, MySQL, JDBC, ODBC. Compatible avec de nombreux OS (Java).


14.10. phpinfo

Pour obtenir des informations sur votre installation PHP, créer la page minimum suivante :

<? phpinfo() ?>

En appelant cette page sur votre serveur web vous obtiendrez de nombreux détails.


14.11. Safe mode

PHP peut fonctionner en safe mode afin d'interdir certaines fonctions qui peuvent représenter un risque de sécurité ou pénaliser les performances du serveur. Certaines fonctions ne peuvent se satisfaire du fonctionnement en safe mode, pour désactiver cette option introduiser la ligne suivante dans php.ini :

safe_mode = Off

Si vous ne trouvez pas de fichier php.ini, c'est que votre serveur tourne en mode par défaut, vous pouvez le créer :

/etc/php.ini

14.12. Applications PHP

Classes : http://pear.php.net/packages.php


14.13. Accès distant aux bases MySql

Sur mon serveur Debian, les connexions distantes à MySql n'étaient plus possibles.

Dans le fichier de configuration :

/etc/mysql/my.cnf 

Mettre en commentaire la ligne suivante :

#skip-networking 

Redémarrer MySql :

/etc/init.d/mysql restart

14.14. Se connecter à une base de données MySql via JDBC

Utile en OpenOffice.org par exemple :

Télécharger le Mysql Connector/J : http://www.mysql.com/products/connector/j/

Décompresser l'archive obtenue et copier le fichier .jar dans le répertoire /lib/ext de votre installation Java, dans mon cas (comme root) :

cp mysql-connector-java-3.1.7-bin.jar /usr/java/j2re1.4.2_05/lib/ext/

Redémarrer OpenOffice.org.


15. Communauté


15.2. Réservoir d'applications

http://freshmeat.net

http://www.icewalkers.com

http://www.gnu.org/directory/

http://savannah.nongnu.org

http://openclipart.org (Bibliothèque d'images vectorielles libres)

http://www.framasoft.net (Partir de Windows pour découvrir le Libre...)

http://www.guideopensource.com (Le Guide IDEALX des logiciels Open Source)


15.3. Savoir et faire savoir

http://fr.wikipedia.org/wiki/Accueil

http://www.coredump.fr.to : docs Unix *BSD et Linux testées et approuvées ... par le voisin de Richard Stallman en personne.


15.4. Groupe d'utilisateurs (LUG)

Belgique FR

Bruxelles (http://www.bxlug.be/)


15.5. Entreprises orientées logiciel libre

15.5.1. Belgique

Multitel (http://www.multitel.be/) : centre de formation agréé Red Hat.

Arafox (http://www.arafox.com/) : développement et formation.

Openstuff (http://openstuff.net) : s'habiller GNU/Linux.

Alunys (http://www.alunys.com/) : Conseil, Audit, Développement, Installation, Entretien, Maintenance de parcs informatiques en OS: GNU/Linux.


15.5.2. France

Linbox-Free&ALter Soft (http://www.linbox.com) : solutions et produits pour l'entreprise.

Liste plus complète sur http://www.linux-france.org/article/pro/annuaire/


15.6. O'Reilly

Concevez votre propre couverture de livre O'Reilly : http://www.monkeyboy.is-a-geek.org/oracover.jsp


15.7. Fosdem

Cette réunion de développeur du logiciel libre se déroule chaque année, l'édition 2005 a eu lieu les 26 et 27 février.

Le site : http://fosdem.org

Les photos : http://fosdem.3ti.be/


15.8. Radio format OGG

- Radio France, les flux officiels : http://www.radiofrance.fr/services/aide/difflive.php#ogg

Voir ce script : http://membres.lycos.fr/flipouk/ basé sur XDialog (http://xdialog.dyns.net) pour lancer les radios via menu.

- Radio 404, webradio alternative : http://www.erreur404.org/html2/radio.php3

- Une liste de radio au format OGG avec la description du genre musical, de la qualité et du morceau en cours : http://www.oddsock.org/icecast2yp/

Un script basé sur kdialog (http://developer.kde.org/documentation/tutorials/kdialog/t1.html) pour lancer une radio au choix :

#-------------------------------------------------------
#radiolog.sh - version du 30/10/2003
#Laurent - http://linux.cybermonde.org
#Utiliser kdialog pour lancer mes radios favorites
#-------------------------------------------------------
# liste de choix
choix=`kdialog --menu "Quelle radio ?" a "France Inter" b "Radio 404" c "La Première"`
# si OK
if [ $? = 0 ]
then
# selon le choix, lancer xmms avec l'URL du flux audio
case $choix in
a) xmms http://unix.rulez.org:8888/fr-inter.ogg;;
b) xmms http://radio404.arobass.org:10000/radio404.ogg;;
c) xmms http://stream1.rtbf.be:8000/lapremiere;;
esac
# si Annuler
else
kdialog --sorry "Au revoir"
fi

15.9. Formations en Belgique

- Centre PME-Formation (http://centrepme.be/certifications/index.html) : certifications RedHat

- Technofutur3 (http://www.technofutur3.be) : formations PHP/MySQL et plus

- IBM (formation en ligne) : http://www-128.ibm.com/developerworks/linux/lpi/201.html?S_TACT=105AGX59=LPIGR=dgr-lnxw19LPI


15.10. Carte des utilisateurs Debian

http://www.linuks.mine.nu/debian-worldmap/


15.11. Shopping

Conics.Net (http://conics.net/shp/) : les ultraportables livrés dans le monde entier

La Fraise (http://www.lafraise.com) : t-shirts

J!NX (http://www.jinx.com) : vêtements et accessoires

Adaptateur CF-IDE... : http://www.pcengines.ch/order1.php?c=2


16. Micro-distribution

16.1. Comment installer Linux sur un ordinosaure ?

Voir http://perso.wanadoo.fr/dbecaert/inst2mo.htm

Grâce à ce document, j'ai réussi l'installation sur un Toshiba T1850 (386sx25/4MB ram/120MB hd).

D'autres distributions historiques sur http://www.ibiblio.org/pub/historic-linux/.

Pour des configurations modestes tout en disposant d'outils modernes : Damn Small Linux (http://www.damnsmalllinux.org).


16.2. Partager sa connexion internet

Une connexion à haut-débit à partager, un vieux PC à recycler, de nombreuses distributions prêtes à l'emploi sont décrites sur http://adsl.cybermonde.org (section : bricoler son routeur).


16.3. Tester Linux sans douleur

Imaginez un CD-Rom bootable, qui contient des centaines d'applications et ne modifie rien à votre disque dur : Knoppix (informations en français : http://www.knoppixfr.org).

J'ai testé ce produit sur de nombreux PC (y compris des portables), cela fonctionne à merveille, si vous êtes séduits, l'installation définitive sur le disque dur est très facile.

Une liste complète (plus de 200) de LiveCD : http://www.frozentech.com/content/livecd.php


16.4. Débloquer un PC sous NT

L'administrateur NT/2000/XP distrait ne pourra se passer de cette disquette qui lui permettra de retrouver le mot de passe oublié : Offline NT Password & Registry Editor (http://home.eunet.no/~pnordahl/ntpasswd/).


16.5. Créer son NAS

ServerElements (http://www.serverelements.com) propose NASLite, une distribution sur disquette qui permet de créer un NAS (“un serveur de stockage”) accessible via SMB, FTP, HTTP ou NFS.


16.6. Non-voyants

Oralux (http://oralux.org/) : Distribution GNU/Linux audio pour personnes non-voyantes, mal-voyantes.


17. Ipaq

17.1. Installer Linux sur un Ipaq.

- pour la synchronisation avec le PC, installer SynCE (http://synce.sourceforge.net) à partir du rpm : synce-0.8.2-1.i386.rpm

- comme root :

synce-serial-config ttyS0

- comme user normal :

dccm

- comme root :

synce-serial-start

- comme user normal, lister par exemple les fichiers :

pls

Procédure extraite de http://familiar.handhelds.org/familiar/releases/v0.7.1/install/bootldr-synce.html :

- copier les 2 fichiers suivants :

pcp /home/.../bootldr-sa-2.20.4.bin.gz ":/My Documents/bootldr.bin.gz"
pcp /home/.../BootBlaster_1.19.exe ":/Windows/Programmes/Bootblaster.exe"

- sur l'Ipaq, lancer Bootblaster

- exécuter "Flash -> Save Bootldr .gz Format" pour sauver le bootloader vers "My Documentssaved_bootldr.gz"

- exécuter "Flash -> Save Wince .gz Format" pour sauver l'image du PocketPC vers "My Documentswince_image.gz"

- backup vers le PC des 2 fichiers créés précédemment :

pcp ":/My Documents/saved_bootldr.gz"
pcp ":/My Documents/wince_image.gz"

- installation du bootloader : à partir du menu "Flash" sélectionner "Program" puis choisir le fichier "bootldr.bin.gz"

- à partir du menu "Flash" choisir "Verify"

- lancer :

killall dccm

On continue avec http://familiar.handhelds.org/familiar/releases/v0.7.1/install/install-serial.html :

- installer au préalable minicom

- maintenir le joypad enfoncé et appuyer sur le bouton reset. Quand l'écran du bootloader apparaît, relacher le joypad

- appuyer sur le bouton calendrier: "Serial Bootldr Console"

- configurer minicom : 115200 8N1, pas de contrôle de flux, pas de vérification matérielle

- sur minicom : load root puis Ctrl-A Z choisir le fichier "bootopie-v0.7.1a-h3600.jffs2" à copier (cela dure très, très longtemps)

- ensuite au retour de l'invite, taper :

boot

- Linux démarre


17.2. Créer une connexion PPP entre le PC et l'Ipaq.

ip PC = 50, ip Ipaq = 11, voir http://www.handhelds.org/z/wiki/PPPHowto :

Sans être loggé sur l'Ipaq, lancer :

/usr/sbin/pppd /dev/ttyS0 192.168.0.50:192.168.0.11 nodetach local noauth nocrtscts lock user ppp connect "/usr/sbin/chat -v -t3 ogin--ogin: ppp"

17.3. Trouver des packages (ipk).

http://ipkgfind.handhelds.org


18. XML

18.1. Quelques applications

- PyUt, UML1.3 diagram editor : http://pyut.sourceforge.net/

- Sécurité sociale (DMFA), glossaire et schéma : https://www.socialsecurity.be/site_fr/Applics/dmfa/index.htm

- Umbrello UML Modeller : http://uml.sourceforge.net

- XUL : http://xulfr.org/

- Papyrus XML Reporting Engine : http://papyrus.treshna.com/


18.2. Docbook

Ce document est créé au format Docbook (http://www.docbook.org/) grâce à l'éditeur Lyx (http://www.lyx.org/). Le point de départ est l'explication trouvée à http://www.abul.org/conferences/LyX_DocBook/t1.htm.

Le document est créé sous Lyx en utilisant des styles prédéfinis, principalement : Section/Soussection/Code et Standard. Le document est ensuite exporté au format SGML, le fichier résultant sera ensuite traité grâce aux feuilles de style Docbook standards.

Pour une sortie HTML par chapîtres, par exemple :

jade -t sgml -d /usr/share/sgml/docbook/dsssl-stylesheets/html/docbook.dsl /home/votre_nom/mon_fichier.sgml

Pour une sortie HTML en une seule page, ajouter le paramètre nochunks :

jade -t sgml -V nochunks -d /usr/share/sgml/docbook/dsssl-stylesheets/html/docbook.dsl /home/votre_nom/mon_fichier.sgml > unepage.htm

Des options sont possibles pour ajouter table des matières, numérotations... Pour ce site j'ai créé une feuille de style qui incorpore égalemment un lien vers une page CSS pour enjoliver la présentation.

Pour la sortie PDF, il faut passer par un fichier de transition au format TEX :

jade -t tex -d /usr/share/sgml/docbook/dsssl-stylesheets/print/docbook.dsl -V %section-autolabel% /home/votre_nom/mon_fichier.sgml

Puis conversion :

pdfjadetex /home/votre_nom/mon_fichier.tex

18.3. Documentation Docbook

L'indispensable DocBook: The Definitive Guide accessible en ligne : http://www.docbook.org/tdg/en/html/docbook.html

De nombreux exemples, Docbook Frequently Asked Questions : http://www.dpawson.co.uk/docbook/index.html

DocBook XSL Stylesheet Reference Documentation : http://docbook.sourceforge.net/release/xsl/current/doc/reference.html

ooo2dbk : Générer du DocBook à partir de documents OpenOffice.org : http://www.indesko.com/sites/fr/telechargements/ooo2dbk___du_docbook/view


18.4. CSS

Feuilles de style CSS : http://www.carto.net/help/selfhtml_8_fr/css/

Index des propriétés CSS : http://www.blooberry.com/indexdot/css/propindex/all.htm

En quoi la mise en page par tableaux est-elle stupide : http://www.cybercodeur.net/weblog/presentations/seybold/index.html

Eric Meyer et les CSS : http://www.meyerweb.com/eric/css/

Editeur de feuilles de styles, CSSED (http://cssed.sourceforge.net)

Colour contrast checker : http://shift.freezope.org/tools_lab


18.5. Transformer OpenOffice grâce à XSL

Lectures préliminaires :

XML + XSL http://www.ccim.be/ccim328/xml/index.htm

Le langage XSL http://www.laltruiste.com/document.php?compteur=1=1=5

Cours XML - Par Abderrazak Mkadmi http://h2ptm.hymedia.univ-paris8.fr/mkadmi/coursXML/sommaire.htm

XSL Frequently Asked Questions http://www.dpawson.co.uk/xsl/xslfaq.html

Aide mémoire : de SQL à XPath http://www.fragbase.com/sql2xpath.php

OpenOffice 1.1 et XML http://xmlfr.org/actualites/tech/031029-0001

OpenOffice.org XML Essentials http://books.evc-cit.info/

Bobiciel (http://www.bobiciel.com/maxopeninfo/default_zone/fr/html/page-69.html), cette société met à disposition un grand nombre de solutions d'interfaçage XML avec OOo.

C'est quoi un fichier OpenOffice ?

Le fichier est en fait une archive dont vous pouvez voir le contenu de la façon suivante :

less monfichier.sxw

Parmi les fichiers de cette archive, le contenu est stocké dans content.xml :

less monfichier.sxw:content.xml

Stocker ce contenu dans un fichier :

less monfichier.sxw:content.xml > moncontenu.xml

Pour appliquer à ce résultat une feuille XSL, il est nécessaire d'utiliser un outil de transformation, par exemple xsltproc (http://xmlsoft.org/XSLT/). Absent dans Mandrake 10.0, vous le trouverez à (dans la bonne version) : ftp://fr2.rpmfind.net/linux/Mandrake/10.0/i586/Mandrake/RPMS/libxslt-proc-1.1.2-1mdk.i586.rpm

xsltproc mafeuille.xsl moncontenu.xml

La feuille XSL minimum pour traiter un fichier OpenOffice :

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:accel="http://openoffice.org/2001/accel"
    xmlns:chart="http://openoffice.org/2000/chart"
    xmlns:config="http://openoffice.org/2001/config"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:dlg="http://openoffice.org/2000/dialog"
    xmlns:dr3d="http://openoffice.org/2000/dr3d"
    xmlns:draw="http://openoffice.org/2000/drawing"
    xmlns:event="http://openoffice.org/2001/event"
    xmlns:fo="http://www.w3.org/1999/XSL/Format"
    xmlns:form="http://openoffice.org/2000/form"
    xmlns:image="http://openoffice.org/2001/image"
    xmlns:library="http://openoffice.org/2000/library"
    xmlns:manifest="http://openoffice.org/2001/manifest"
    xmlns:math="http://www.w3.org/1998/Math/MathML"
    xmlns:menu="http://openoffice.org/2001/menu"
    xmlns:meta="http://openoffice.org/2000/meta"
    xmlns:number="http://openoffice.org/2000/datastyle"
    xmlns:office="http://openoffice.org/2000/office"
    xmlns:script="http://openoffice.org/2000/script"
    xmlns:statusbar="http://openoffice.org/2001/statusbar"
    xmlns:style="http://openoffice.org/2000/style"
    xmlns:svg="http://www.w3.org/2000/svg"
    xmlns:table="http://openoffice.org/2000/table"
    xmlns:text="http://openoffice.org/2000/text"
    xmlns:toolbar="http://openoffice.org/2001/toolbar"
    xmlns:xlink="http://www.w3.org/1999/xlink"
>
<xsl:output method="xml"
    doctype-public="-//OpenOffice.org//DTD OfficeDocument 1.0//EN"
    doctype-system="office.dtd"/>
<xsl:template match="/office:document-content">
(...) votre traitement ici (...)
</xsl:template>
</xsl:stylesheet>

18.6. Transformer OpenOffice vers Latex, xhtml...

Conversion de documents Writer vers LaTeX, BibTeX, xhtml et de feuilles Calc vers xhtml :

Writer2Latex (http://www.hj-gym.dk/~hj/writer2latex/index.html)


18.7. Créer “à la main” des fichiers OpenOffice

Tout d'abord, décompressons l'archive que constitue notre fichier tableau.sxw dans un répertoire tableau :

unzip tableau.sxw -d tableau/

Dans notre répertoire tableau, nous retrouvons les fichiers suivants :

content.xml 
META-INF/manifest.xml
meta.xml 
settings.xml 
styles.xml

Intéressons-nous à content.xml, en y modifiant quelques données par exemple. Ensuite, recréons un fichier OpenOffice valable. En se plaçant dans le répertoire tableau, créons un fichier tabmodif.sxw :

zip -r tabmodif.sxw *

Ouvrons ce fichier tabmodif.sxw.

Si vous voulez construire vos métadonnées (ce qui s'affiche quand vous demandez les propriétés du document), intervenez dans meta.xml.

Il existe égalemment un filtre qui permet d'ouvrir directement le fichier content.xml dans OpenOffice : MaXOOoXML (http://www.bobiciel.com/maxopeninfo/default_zone/fr/html/page-69.html).


18.8. PHP et XML

A explorer : php_libxslt (http://nona.net/software/phplibxslt/) et PHP DocWriter (http://gayuba2.datsi.fi.upm.es/~jmsanchez/index.php?lang=en).

OOoPHP (http://www.apicnet.net/article.php3?id_article=73) est une classe orientée objet et écrite en php permettant la création et la modification de documents OpenOffice.org.

Manipulation de fichiers XMLvia domxml : http://qte.dk/articles/php/xml-xpathusingphp/


18.9. RSS

- RSS 2.0 traduction française : http://www.stervinou.com/projets/rss/

- Créer un bouton personnalisé pour identifier un fil RSS : http://kalsey.com/tools/buttonmaker/ ou http://smartgvprod.gavoille.com/bouton/


19. Brouillon

19.1. A quoi sert cette rubrique ?

A garder des traces de choses en cours, à complèter, à conserver...


19.2. Liens

Cours LINUX Académie de Créteil (http://www.ac-creteil.fr/reseaux/systemes/linux)

Linux France (http://www.linux-france.org/)

Guide de Survie du Débutant sous Linux (http://www.delafond.org/survielinux/)

FAQ fr.comp.os.linux.* (http://usenet-fr.news.eu.org/fur/comp/os/linux-debutant.html)

IBM developper (http://www-106.ibm.com/developerworks/linux/)

The Linux Documentation Project (http://www.tldp.org/)

Linux Compatible (http://www.linuxcompatible.org)

Loads of Linux Links (http://loll.sourceforge.net/linux/links/)


19.3. Script qui vérifie si mp3d est actif et dans ce cas écrit online dans un fichier

monproc=`ps -H | grep mp3d`
set $monproc
if [ $1 ]; then
echo 'online'>monjob.txt;
else
echo 'offline'>monjob.txt;
fi

19.4. A lire, à voir, à écouter

Retrouver tous les contenus des Journées Réseaux 2003 : http://2003.jres.org/archives.html


19.5. Streaming vidéo

VideoLAN (http://www.videolan.org) : media player et streaming.

Codec vidéo libre : http://www.theora.org

Conversion de MPEG vers Theora grâce à ffmpeg2theora (http://www.v2v.cc/~j/ffmpeg2theora/) Nécessite ffmpeg (http://ffmpeg.sourceforge.net/index.php) :

cvs -z3 -d:pserver:anonymous@cvs.mplayerhq.hu:/cvsroot/ffmpeg/ co ffmpeg

19.7. A tester

EasyMoblog (http://easymoblog.sourceforge.net/index.php) : blog mis à jour par e-mail

PimenGest2 (http://www.pimentech.fr/pimentech/site/solutions/pimengest) : Progiciel de Gestion Intégré, facturation, devis, suivi clients, chantiers...

Lodel (http://www.lodel.org/) : logiciel d'édition électronique. Il permet de publier en ligne des articles issus d'un traitement de texte.

phpcompta (http://www.alchimerys.be/FR/phpcompta/index.php) : logiciel GPL adapté à la législation belge en matière de comptabilité, il vous permet de tenir votre comptabilité de manière centralisée.

Dolibarr (http://www.dolibarr.com) : système libre de gestion d'entreprise.

GRR (http://www.lpi.ac-poitiers.fr/grr_lpi/) est un système de Gestion et de Réservations de Ressources.

Eventum (http://dev.mysql.com/downloads/other/eventum/index.html) est un logiciel de suivi d'intervention (ticketing, bug tracking).

CheckDoc-SQL (http://www.checkdoc.org) est un logiciel d'indicatage de courriers financé initialement par le Service Public Fédéral - Personnel et Organisation (SPF P-O) et co-sourcé avec la société coopérative de services informatiques Arafox.