diff options
author | Nik Clayton <nik@FreeBSD.org> | 1999-11-10 21:29:15 +0000 |
---|---|---|
committer | Nik Clayton <nik@FreeBSD.org> | 1999-11-10 21:29:15 +0000 |
commit | 0f9e3260d70b88672037b1ccf761db8079500840 (patch) | |
tree | f8ad8659aabb0980cf651bc5b5bfdf2d9b8337cb /fr_FR.ISO_8859-1 | |
parent | 212679edca0d1e666ee1cffbbd82e2ddba57c69a (diff) | |
download | doc-0f9e3260d70b88672037b1ccf761db8079500840.tar.gz doc-0f9e3260d70b88672037b1ccf761db8079500840.zip |
French translation tree, meet CVS, CVS, this is the French translation
tree.
A round of applause, please, for Sebastien Gioria, Frederic Haby, and
the other volunteers on the French FreeBSD Documentation Project.
I haven't turned this on in the top level Makefile yet because I've almost
certainly missed something. I want to be able to grab a copy of the tree
after I've committed it and build it from scratch to make sure everything
works before I break the website. . .
Notes
Notes:
svn path=/head/; revision=6043
Diffstat (limited to 'fr_FR.ISO_8859-1')
89 files changed, 67141 insertions, 0 deletions
diff --git a/fr_FR.ISO_8859-1/Makefile b/fr_FR.ISO_8859-1/Makefile new file mode 100644 index 0000000000..1097bbc7d9 --- /dev/null +++ b/fr_FR.ISO_8859-1/Makefile @@ -0,0 +1,9 @@ +# $FreeBSD$ + +SUBDIR = articles +SUBDIR+= books + +COMPAT_SYMLINK = fr + +DOC_PREFIX?= ${.CURDIR}/.. +.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO_8859-1/articles/Makefile b/fr_FR.ISO_8859-1/articles/Makefile new file mode 100644 index 0000000000..ab5bfabee6 --- /dev/null +++ b/fr_FR.ISO_8859-1/articles/Makefile @@ -0,0 +1,24 @@ +# +# The FreeBSD Documentation Project +# The FreeBSD French Documentation Project +# +# $FreeBSD$ +# Original revision: 1.3 +# + +SUBDIR = diskless-x +SUBDIR+= fonts +SUBDIR+= formatting-media +SUBDIR+= ip-aliasing +SUBDIR+= make-world +SUBDIR+= mh +SUBDIR+= multi-os +SUBDIR+= new-users +SUBDIR+= ntfs +SUBDIR+= ppp +SUBDIR+= programming-tools + +ROOT_SYMLINKS+= new-users + +DOC_PREFIX?= ${.CURDIR}/../.. +.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO_8859-1/articles/Makefile.inc b/fr_FR.ISO_8859-1/articles/Makefile.inc new file mode 100644 index 0000000000..3e2eea4dc7 --- /dev/null +++ b/fr_FR.ISO_8859-1/articles/Makefile.inc @@ -0,0 +1,9 @@ +# +# The FreeBSD Documentation Project +# The FreeBSD French Documentation Project +# +# $FreeBSD$ +# Original revision: 1.2 +# + +DESTDIR?= ${DOCDIR}/fr_FR.ISO_8859-1/books/${.CURDIR:T} diff --git a/fr_FR.ISO_8859-1/articles/diskless-x/Makefile b/fr_FR.ISO_8859-1/articles/diskless-x/Makefile new file mode 100644 index 0000000000..72c1d9b8c9 --- /dev/null +++ b/fr_FR.ISO_8859-1/articles/diskless-x/Makefile @@ -0,0 +1,20 @@ +# +# The FreeBSD Documentation Project +# The FreeBSD French Documentation Project +# +# $FreeBSD$ +# Original revision: 1.4 +# + +DOC?= article + +FORMATS?= html + +INSTALL_COMPRESSED?=gz +INSTALL_ONLY_COMPRESSED?= + +SRCS= article.sgml + +DOC_PREFIX?= ${.CURDIR}/../../.. + +.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO_8859-1/articles/diskless-x/article.sgml b/fr_FR.ISO_8859-1/articles/diskless-x/article.sgml new file mode 100644 index 0000000000..fdbd117e7c --- /dev/null +++ b/fr_FR.ISO_8859-1/articles/diskless-x/article.sgml @@ -0,0 +1,298 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + +<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ +<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man; +<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls; +<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract; +<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader; +<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators; + +<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors; +<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists; + <!ENTITY rel.current CDATA "3.2"> +]> + +<article lang="fr"> + <artheader> + <title>Mise en oeuvre d'un terminal X sans disque dur</title> + + <authorgroup> + <author> + <firstname> Jerry</firstname> + <surname>Kendall</surname> + <affiliation> + <address> + <email>jerry@kcis.com</email> + </address> + </affiliation> + </author></authorgroup> + + <pubdate>28 Décembre 1996</pubdate> + + <copyright> + <year>1996</year> + <holder>Jerry Kendall</holder> + </copyright> + + <abstract> + <para>Avec l'aide de quelques amis de la &a.hackers;, j'ai pu mettre en service un terminal X sans disque dur. Pour cela, j'ai d'abord dû installer une station sans disque qui dispose d'un minimum d'utilitaires montés par NFS. J'ai répété l'opération pour disposer de deux systèmes sans disque. Pour les deux, j'ai procédé de la même façon. Le premier est <hostid role="fqdn">altair.kcis.com</hostid>. C'est un terminal X sur mon vieux 386DX-40. Il a bien un disque dur de 340 Mo, mais je ne voulais pas y toucher. Il démarre donc à partir de <hostid role="fqdn">antares.kcis.com</hostid> sur le réseau Ethernet. Le second est un 486DX2-66. J'ai installé un système FreeBSD (complet) qui n'utilise pas de disque local. Le serveur de démarrage est un Sun 670MP sous SunOs 4.1.3. Les deux systèmes FreeBSD sont configurés de la même façon.</para> + + <para>Je suis sûr qu'il y a des choses à ajouter à ce document. Faites-moi s'il vous plaît part de vos commentaires.</para> + + &abstract.license; + &abstract.disclaimer; + &trans.a.haby; + </abstract> + </artheader> + + <sect1> + <title>Préparation de la disquette de démarrage (sur le système sans disque)</title> + + <para>Les gestionnaires de démarrage via le réseau ne sont pas compatibles avec les TSRs et autres qu'utilise MS-DOS, il est préférable de préparer une disquette de démarrage, ou, si vous le pouvez, de mettre en place un menu MS-DOS qui (par l'intermédiaire des fichiers <filename>config.sys</filename>/<filename>autoexec.bat</filename>) vous demande au démarrage quelle configuration charger. C'est cette dernière méthode que j'ai utilisée et elle fonctionne à merveille. Voici mon menu MS-DOS :</para> + + <example> + <title><filename>config.sys</filename></title> + + <programlisting>[menu] +menuitem=normal, normal +menuitem=unix, unix +[normal] +.... +config.sys habituel +... +[unix]</programlisting> + </example> + + <example> + <title><filename>autoexec.bat</filename></title> + + <programlisting>@ECHO OFF +goto %config% + +:normal +... +autoexec.bat habituel +... +goto end + +:unix +cd \netboot +nb8390.com + +:end</programlisting> + </example> + </sect1> + + <sect1> + <title>Générer les programmes de démarrage en réseau (sur le serveur)</title> + + <para>Compilez les programmes de “démarrage en réseau” que vous trouverez dans <filename>/usr/src/sys/i386/boot/netboot</filename>. Lisez les commentaires au début du <filename>Makefile</filename>. Faites les modifications nécessaires. Faites une sauvegarde de l'original, pour vous prémunir en cas de problèmes. Après compilation, vous devriez obtenir deux exécutables, <filename>nb8390.com</filename> et <filename>nb3c509.com</filename>. C'est l'un de ces programmes que vous devrez exécuter sur la machine sans disque. Il chargera le noyau depuis le serveur de démarrage. Recopiez alors ces deux programmes sur la disquette de démarrage que vous avez créée auparavant.</para> + </sect1> + + <sect1> + <title>Déterminer le programme à utiliser (sur la machine sans disque)</title> + + <para>Si vous savez quel composant utilise votre carte Ethernet, c'est facile. Si vous avez un circuit NS8390 ou équivalent, servez vous de <filename>nb8390.com</filename>. Si vous avez un circuit de type 3Com 509, utilisez le programme de démarrage <filename>nb3C509.com</filename>. Si vous ne savez pas, essayez l'un et si vous avez le message “<errorname>No adapter found</errorname>”, essayez avec l'autre. Si rien ne marche, vous êtes livré à vous-même.</para> + </sect1> + + <sect1> + <title>Démarrer en réseau</title> + + <para>Démarrez la station sans disque sans fichiers <filename>config.sys/autoexec.bat</filename>. Essayez d'exécuter le programme de démarrage qui correspond à votre carte Ethernet.</para> + + <para>Ma carte Ethernet utilise le mode 16bit WD8013 16bit, j'exécute donc + <filename>nb8390.com</filename> :</para> + + <screen><prompt>C:></prompt> <userinput>cd \netboot</userinput> +<prompt>C:></prompt> <userinput>nb8390</userinput> + +<prompt>Boot from Network (Y/N) ?</prompt> <userinput>Y</userinput> + +BOOTP/TFTP/NFS bootstrap loader ESC for menu + +Searching for adapter.. +WD8013EBT base 0x0300, memory 0x000D8000, addr 00:40:01:43:26:66 + +Searching for server...</screen> + + <para>La machine sans disque essaye maintenant de trouver un serveur de démarrage. Notez la valeur de <literal>addr</literal> sur l'avant dernière ligne, vous en aurez besoin ensuire. Redémarrez la machine sans disque et modifiez vos +fichiers <filename>config.sys</filename> et <filename>autoexec.bat</filename> pour qu'ils fassent automatiquement ce que vous venez de faire à la main. Peut-être avec un menu. Si vous aviez dû utiliser <command>nb3c509.com</command> au lieu de <command>nb8390.com</command>, les messages seraient identiques. Si vous obtenez le message “<errorname>No adapter found</errorname>” après “<literal>Searching for adapter...</literal>”, vérifiez que vous avez défini les bonnes valeurs dans le <filename>Makefile</filename> au moment de compiler.</para> + </sect1> + + <sect1> + <title>Permettre aux systèmes de démarrer via le réseau (sur le serveur)</title> + + <para>Vérifiez qu'il y a bien des entrées pour <citerefentry><refentrytitle>tftp</refentrytitle></citerefentry> et <citerefentry><refentrytitle>bootps</refentrytitle></citerefentry> dans le fichier <filename>/etc/inetd.conf</filename>. Voici le mien :</para> + + <programlisting>tftp dgram udp wait nobody /usr/libexec/tftpd tftpd +# +# Ajout de qui que vous soyez +bootps dgram udp wait root /usr/libexec/bootpd bootpd /etc/bootptab</programlisting> + + <para>Si vous devez modifier le fichier <filename>/etc/inetd.conf</filename>, envoyez ensuite un signal <literal>HUP</literal> à <citerefentry><refentrytitle>inetd</refentrytitle></citerefentry>. Pour cela, utilisez la commande <command>ps -ax | grep inetd | grep -v grep</command> pour connaître le numéro de processus d'<citerefentry><refentrytitle>inetd</refentrytitle></citerefentry>. Une fois que vous l'avez, envoyez lui le signal HUP. Cela se fait avec <command>kill -HUP <pid></command>. Cela obligera <citerefentry><refentrytitle>inetd</refentrytitle></citerefentry> à relire ses fichiers de configuration.</para> + + <para>Vous avez bien noté la valeur de <literal>addr</literal> dans les messages du programme de démarrage sur la machine sans disque ? C'est maintenant que vous allez en avoir besoin.</para> + + <para>Ajoutez une entrée à <literal>/etc/bootptab</literal> (vous devrez peut-être créer ce fichier). Voici à quoi elle doit ressembler :</para> + + <programlisting>altair:\ + :ht=ether:\ + :ha=004001432666:\ + :sm=255.255.255.0:\ + :hn:\ + :ds=199.246.76.1:\ + :ip=199.246.76.2:\ + :gw=199.246.76.1:\ + :vm=rfc1048:</programlisting> + + <para>Ce qui, ligne par ligne, signifie :</para> + + <informaltable frame="none"> + <tgroup cols="2"> + <tbody> + <row> + <entry><literal>altair</literal></entry> + <entry>nom du système sans disque, sans nom de domaine</entry> + </row> + + <row> + <entry><literal>ht=ether</literal></entry> + <entry>type matériel “ethernet”</entry> + </row> + + <row> + <entry><literal>ha=004001432666</literal></entry> + <entry>adresse matérielle (le nombre que vous avez noté auparavant)</entry> + </row> + + <row> + <entry><literal>sm=255.255.255.0</literal></entry> + <entry>masque de sous-réseau</entry> + </row> + + <row> + <entry><literal>hn</literal></entry> + <entry>dit au serveur de donner au client son nom de machine</entry> + </row> + + <row> + <entry><literal>ds=199.246.76.1</literal></entry> + <entry>dit au client quel est son serveur de noms de domaine</entry> + </row> + + <row> + <entry><literal>ip=199.246.76.2</literal></entry> + <entry>dit au client quelle est son adresse IP</entry> + </row> + + <row> + <entry><literal>gw=199.246.76.1</literal></entry> + <entry>dit au client quelle est sa passerelle par défaut</entry> + </row> + + <row> + <entry><literal>vm=...</literal></entry> + <entry>laissez cela tel que</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <note> + <para>Veillez à bien définir les adresses IP, j'ai inventé celles de l'exemple.</para> + + </note> + + <para>Créez le répertoire <filename>/tftpboot</filename> sur le serveur. Il contiendra les fichiers de configuration pour les systèmes sans disque dont ce sera le serveur de démarrage. Ces fichiers s'appeleront <filename>cfg.<ip></filename>, où <ip> est l'adresse IP de la machine sans disque. Le fichier de configuration pour “altair” est <filename>/tftpboot/cfg.199.246.76.2</filename>. Voici son contenu :</para> + + <programlisting>rootfs 199.246.76.1:/DiskLess/rootfs/altair +hostname altair.kcis.com</programlisting> + + <para>La ligne <literal>hostname altair.kcis.com</literal> indique seulement au système sans disque quel est son nom qualifié.</para> + + <para>La ligne <literal>rootfs 199.246.76.1:/DiskLess/rootfs/altair</literal> lui dit où est son système de fichiers racine qui sera monté par NFS.</para> + + <note> + <para>Ce système de fichiers racine sera monté en <emphasis>lecture seule</emphasis> par NFS.</para> + </note> + + <para>L'arborescence de la machine sans disque peut ensuite être remontée pour autoriser les opérations de lecture/écriture.</para> + + <para>J'utilise mon 386DX-40 comme terminal X dédié.</para> + + <para>Voici l'arborescence d'“altair” :</para> + + <literallayout>/ +/bin +/etc +/tmp +/sbin +/dev +/dev/fd +/usr +/var +/var/run</literallayout> + + <para>Et la liste des fichiers qu'elle contient :</para> + + <screen>-r-xr-xr-x 1 root wheel 779984 Dec 11 23:44 ./kernel +-r-xr-xr-x 1 root bin 299008 Dec 12 00:22 ./bin/sh +-rw-r--r-- 1 root wheel 499 Dec 15 15:54 ./etc/rc +-rw-r--r-- 1 root wheel 1411 Dec 11 23:19 ./etc/ttys +-rw-r--r-- 1 root wheel 157 Dec 15 15:42 ./etc/hosts +-rw-r--r-- 1 root bin 1569 Dec 15 15:26 ./etc/XF86Config.altair +-r-x------ 1 bin bin 151552 Jun 10 1995 ./sbin/init +-r-xr-xr-x 1 bin bin 176128 Jun 10 1995 ./sbin/ifconfig +-r-xr-xr-x 1 bin bin 110592 Jun 10 1995 ./sbin/mount_nfs +-r-xr-xr-x 1 bin bin 135168 Jun 10 1995 ./sbin/reboot +-r-xr-xr-x 1 root bin 73728 Dec 13 22:38 ./sbin/mount +-r-xr-xr-x 1 root wheel 1992 Jun 10 1995 ./dev/MAKEDEV.local +-r-xr-xr-x 1 root wheel 24419 Jun 10 1995 ./dev/MAKEDEV</screen> + + <para>N'oubliez pas d'exécuter <command>MAKEDEV all</command> dans le répertoire <filename>dev</filename>.</para> + + <para>Voici enfin mon <filename>/etc/rc</filename> pour <hostid>altair</hostid> :</para> + +<programlisting>#!/bin/sh +# +PATH=/bin:/ +export PATH +# +# configurer l'interface “en boucle” +/sbin/ifconfig lo0 127.0.0.1 +# +# configurer la carte Ethernet +/sbin/ifconfig ed0 199.246.76.2 netmask 0xffffff00 +# +# monter le système de fichiers racine via NFS +/sbin/mount antares:/DiskLess/rootfs/altair / +# +# monter le système de fichiers /usr via NFS +/sbin/mount antares:/DiskLess/usr /usr +# +/usr/X11R6/bin/XF86_SVGA -query antares -xf86config /etc/XF86Config.altair > /dev/null 2>&1 +# +# Rédemarrer lorsque l'on quitte X +/sbin/reboot +# +# Nous avons planté ... +exit 1</programlisting> + + <para>Vos commentaires et questions sont bienvenus.</para> + </sect1> +</article> + +<!-- + Local Variables: + mode: sgml + sgml-indent-data: t + sgml-omittag: nil + sgml-always-quote-attributes: t + End: +--> diff --git a/fr_FR.ISO_8859-1/articles/fonts/Makefile b/fr_FR.ISO_8859-1/articles/fonts/Makefile new file mode 100644 index 0000000000..72c1d9b8c9 --- /dev/null +++ b/fr_FR.ISO_8859-1/articles/fonts/Makefile @@ -0,0 +1,20 @@ +# +# The FreeBSD Documentation Project +# The FreeBSD French Documentation Project +# +# $FreeBSD$ +# Original revision: 1.4 +# + +DOC?= article + +FORMATS?= html + +INSTALL_COMPRESSED?=gz +INSTALL_ONLY_COMPRESSED?= + +SRCS= article.sgml + +DOC_PREFIX?= ${.CURDIR}/../../.. + +.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO_8859-1/articles/fonts/article.sgml b/fr_FR.ISO_8859-1/articles/fonts/article.sgml new file mode 100755 index 0000000000..146bd45422 --- /dev/null +++ b/fr_FR.ISO_8859-1/articles/fonts/article.sgml @@ -0,0 +1,775 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + +<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ +<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man; +<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls; +<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract; +<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader; +<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators; + +<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors; +<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists; + <!ENTITY rel.current CDATA "3.2"> +]> + +<article lang="fr"> + <artheader> + <title>FreeBSD et les polices de caractères</title> + <subtitle>Un guide utilisateur</subtitle> + <authorgroup> + <author> + <firstname>Dave</firstname> + <surname>Bodenstab</surname> + </author> + </authorgroup> + &artheader.copyright; + <abstract> + <para><email>imdave@synet.net</email></para> + <para>Mercredi 7 Aout 1996</para> + <para>Ce document décrit les différents fichiers de polices de caractères + qui peuvent être utilisés avec FreeBSD et le pilote syscons, X11, + GhostScript et Groff. Des exemples immédiatement applicables sont donnés + pour passer l'affichage à la console en mode 80x60 et pour se servir des + polices “Type 1” avec les programmes d'application + précités.</para> + &abstract.license; + &abstract.disclaimer; + &trans.a.haby; + </abstract> + </artheader> + <sect1> + <title>Introduction</title> + <para>Il y a de nombreuses sources de polices de caractères disponibles, + et l'on peut se demander comment les utiliser avec FreeBSD. La + réponse peut être obtenue en détaillant attentivement la + documentation du composant voulu. Cela peut prendre beaucoup de + temps, ce guide essaie donc de fournir un raccourci pour les autres + personnes que cela intéresserait.</para> + </sect1> + <sect1> + <title>Terminologie élémentaire</title> + <para>Il y a de nombreux formats de polices de caractères avec chacun + son propre suffixe de nom de fichier. Quelques uns d'entre eux + seront discutés dans ce document:</para> + <variablelist> + <varlistentry> + <term><filename>.pfa</filename>, <filename>.pfb</filename></term> + <listitem> + <para>Polices PostScript “Type 1”. + <filename>.pfa</filename> est le format <emphasis>A</emphasis>scii + et <filename>.pfb</filename> le format + <emphasis>B</emphasis>inaire.</para> + </listitem> + </varlistentry> + <varlistentry> + <term><filename>.afm</filename></term> + <listitem> + <para>Le fichier de dimensions d'une police + “Type 1”.</para> + </listitem> + </varlistentry> + <varlistentry> + <term><filename>.pfm</filename></term> + <listitem> + <para>Le fichier de dimensions pour l'impression d'une police + “Type 1”.</para> + </listitem> + </varlistentry> + <varlistentry> + <term><filename>.ttf</filename></term> + <listitem> + <para>Police “True Type”.</para> + </listitem> + </varlistentry> + <varlistentry> + <term><filename>.fot</filename></term> + <listitem> + <para>Référence indirecte à une police “True Type” (ce + n'est pas la police elle-même).</para> + </listitem> + </varlistentry> + <varlistentry> + <term><filename>.fon</filename>, <filename>.fnt</filename></term> + <listitem> + <para>Police de caractères “bitmap” pour affichage à + l'écran.</para> + </listitem> + </varlistentry> + </variablelist> + <para>Les fichiers <filename>.fot</filename> sont employés par Windows un + peu de la même façon que des liens symboliques vers le fichiers de police + “True Type” (<filename>.ttf</filename>). Les fichiers + <filename>.fon</filename> sont aussi utilisés par Windows. Je ne + connais pas de moyen de se servir de ces fichiers avec FreeBSD.</para> + </sect1> + <sect1> + <title>Quels formats de polices de caractères puis-je utiliser?</title> + <para>Le format de fichier de police de caractères utile dépend de + l'application. FreeBSD lui-même n'utilise pas de police de + caractères. Ce sont les programmes d'application et/ou les pilotes + qui se servent éventuellement de ces fichiers. Voici un petit tableau + associant application/pilote de périphérique et suffixe des fichiers de + police de caractères:</para> + <informaltable> + <tgroup cols="6"> + <thead> + <row> + <entry></entry> + <entry><filename>.fnt</filename></entry> + <entry><filename>.pfa</filename></entry> + <entry><filename>.pfb</filename></entry> + <entry><filename>.ttf</filename></entry> + <entry><filename>.afm</filename></entry> + </row> + </thead> + <tbody> + <row> + <entry>Pilote <devicename>syscons</devicename></entry> + <entry>Oui</entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + </row> + <row> + <entry><application>GhostScript</application></entry> + <entry></entry> + <entry>Oui</entry> + <entry>Oui</entry> + <entry>Oui</entry> + <entry></entry> + </row> + <row> + <entry>X11</entry> + <entry></entry> + <entry>Oui</entry> + <entry>Oui</entry> + <entry></entry> + <entry></entry> + </row> + <row> + <entry><application>Groff</application></entry> + <entry></entry> + <entry>Oui</entry> + <entry></entry> + <entry></entry> + <entry>Oui</entry> + </row> + <row> + <entry><application>Povray</application></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry>Oui</entry> + <entry></entry> + </row> + </tbody> + </tgroup> + </informaltable> + <para>Le suffixe <filename>.fnt</filename> est assez fréquemment utilisé. + Je soupçonne que lorsque quelqu'un veut créer un fichier de police de + caractères spécialisé pour son application, il choisit la plupart du temps + ce suffixe. Il y a donc des chances pour que des fichiers avec ce + suffixe n'aient pas tous le même format; en particulier, les fichiers + <filename>.fnt</filename> utilisés par le pilote syscons de FreeBSD + n'auront peut-être pas le même format qu'un fichier + <filename>.fnt</filename> utilisé dans l'environnement DOS/Windows. Je + n'ai jamais essayé d'utiliser d'autres fichiers <filename>.fnt</filename> + que ceux fournis avec FreeBSD.</para> + </sect1> + <sect1> + <title>Configurer une console virtuelle en mode 80x60 lignes</title> + <para>Il faut d'abord charger une police de caractères 8x8. Le fichier + <filename>/etc/sysconfig</filename><footnote><para>N.d.T.: + <filename>/etc/rc.conf</filename> dans les versions récentes de + FreeBSD.</para></footnote> doit donc contenir les lignes:</para> + <programlisting> +# choose font 8x8 from /usr/share/syscons/fonts/* (or NO for default) +font8x8=/usr/share/syscons/fonts/cp437-8x8.fnt + </programlisting> + <para>La commande pour changer de mode d'affichage est + <citerefentry><refentrytitle>vidcontrol</refentrytitle> + <manvolnum>1</manvolnum></citerefentry>:</para> + <informalexample> +<screen><prompt>bash$</prompt> <userinput>vidcontrol VGA_80x60</userinput></screen> + </informalexample> + <para>Différents programmes en mode plein-écran, tel + <citerefentry><refentrytitle>vi</refentrytitle> + <manvolnum>1</manvolnum></citerefentry>, + doivent pouvoir déterminer la taille actuelle de l'écran. Elle peut être + configurée avec + <citerefentry><refentrytitle>stty</refentrytitle> + <manvolnum>1</manvolnum></citerefentry>:</para> + <informalexample> +<screen><prompt>bash$</prompt> <userinput>stty crt rows 60 columns 80</userinput></screen> + </informalexample> + <para>Pour rendre cela moins fastidieux, ces commandes peuvent être + introduites dans une procédure exécutée au démarrage du système. Voici une + façon de le faire:</para> + <orderedlist> + <listitem> + <para>Modifiez <filename>/etc/sysconfig</filename> comme expliqué plus + haut,</para> + </listitem> + <listitem> + <para>Ajoutez les lignes suivantes à + <filename>/etc/rc.local</filename>:</para> + <programlisting> +for tty in /dev/ttyv? +do + vidcontrol VGA_80x60 <$tty >/dev/null 2>&1 +done + </programlisting> + </listitem> + <listitem> + <para>Ajoutez les lignes suivantes à + <filename>/etc/profile</filename>:</para> + <programlisting> +TTYNAME=`basename \`tty\`` +if expr "$TTYNAME" : 'ttyv' > /dev/null +then + stty crt rows 60 columns 80 +fi + </programlisting> + </listitem> + </orderedlist> + <para>Références: + <citerefentry><refentrytitle>stty</refentrytitle> + <manvolnum>1</manvolnum></citerefentry>, + <citerefentry><refentrytitle>vidcontrol</refentrytitle> + <manvolnum>1</manvolnum></citerefentry>.</para> + </sect1> + <sect1> + <title>X11 et les polices “Type 1”</title> + <para>X11 peut employer les formats de police de caractères + <filename>.pfa</filename> et <filename>.pfb</filename>. Il y a une + référence croisée de chaque fichier sur son nom X11 par l'intermédiaire du + fichier <filename>fonts.dir</filename> de chaque répertoire.</para> + <para>Il y a déjà un répertoire appelé <filename>Type1</filename>. La façon + la plus immédiate d'ajouter une police de caractères est de la mettre dans + ce répertoire. Une meilleure manière de procéder est de mettre toutes les + nouvelle polices dans un répertoire distinct et d'utiliser un lien + symbolique sur ces nouvelles polices. Il est alors plus facile de + distinguer ses propres polices de celles qui sont fournies d'origine. Par + exemple:</para> + <itemizedlist> + <listitem> + <para><emphasis>Créer un repertoire pour les fichiers de police de + caractères.</emphasis></para> + <informalexample> +<screen><prompt>bash$</prompt> <userinput>mkdir -p /usr/local/share/fonts/type1</userinput> +<prompt>bash$</prompt> <userinput>cd /usr/local/share/fonts/type1</userinput></screen> + </informalexample> + </listitem> + <listitem> + <para><emphasis>Y mettre les fichiers <filename>.pfa</filename>, + <filename>.pfb</filename> et <filename>.afm</filename>. On peut aussi + vouloir y conserver les fichiers <filename>README</filename> et autres + documentations concernant les polices de caractères.</emphasis></para> + <informalexample> +<screen><prompt>bash$</prompt> <userinput>cp /cdrom/fonts/atm/showboat/showboat.pfb .</userinput> +<prompt>bash$</prompt> <userinput>cp /cdrom/fonts/atm/showboat/showboat.afm .</userinput></screen> + </informalexample> + </listitem> + <listitem> + <para><emphasis>Tenir à jour un index pour créer les références croisées + sur les polices.</emphasis></para> + <informalexample> +<screen><prompt>bash$</prompt> <userinput>echo showboat - InfoMagic CICA, Dec 1994, /fonts/atm/showboat >>INDEX</userinput></screen> + </informalexample> + </listitem> + </itemizedlist> + <para>Pour pouvoir maintenant utiliser une nouvelle police de caractères, il + faut mettre le fichier à disposition, et mettre à jour le fichier des + noms de polices. Les noms de police X11 se présentent comme suit:</para> + <programlisting> +-bitstream-charter-medium-r-normal-xxx-0-0-0-0-p-0-iso8859-1 + | | | | | | | | | | | | \ \ + | | | | | \ \ \ \ \ \ \ +----+- jeu de caractères + | | | | \ \ \ \ \ \ \ +- largeur moyenne + | | | | \ \ \ \ \ \ +- espacement + | | | \ \ \ \ \ \ +- résolution verticale + | | | \ \ \ \ \ +- résolution horizontale + | | | \ \ \ \ +- points + | | | \ largeur \ +- pixels + | | | \ \ + casse famille graisse inclinaison style supplémentaire + </programlisting> + <para>Il faut créer un nouveau nom pour chaque nouvelle police. Si la + documentation qui l'accompagne vous donne quelques informations, elle + peut servir de base pour définir ce nom. Si vous n'avez aucune + information, vous pouvez utiliser la commande + <citerefentry><refentrytitle>strings</refentrytitle> + <manvolnum>1</manvolnum></citerefentry> sur le fichier de police. Par + exemple:</para> + <informalexample> +<screen><prompt>bash$</prompt> <userinput>strings showboat.pfb | more</userinput></screen> + </informalexample> + <programlisting> +%!FontType1-1.0: Showboat 001.001 +%%CreationDate: 1/15/91 5:16:03 PM +%%VMusage: 1024 45747 +% Generated by Fontographer 3.1 +% Showboat + 1991 by David Rakowski. Alle Rechte Vorbehalten. +FontDirectory/Showboat known{/Showboat findfont dup/UniqueID known{dup +/UniqueID get 4962377 eq exch/FontType get 1 eq and}{pop false}ifelse +{save true}{false}ifelse}{false}ifelse +12 dict begin +/FontInfo 9 dict dup begin + /version (001.001) readonly def + /FullName (Showboat) readonly def + /FamilyName (Showboat) readonly def + /Weight (Medium) readonly def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -106 def + /UnderlineThickness 16 def + /Notice (Showboat + 1991 by David Rakowski. Alle Rechte Vorbehalten.) readonly def +end readonly def +/FontName /Showboat def +--stdin-- + </programlisting> + <para>A partir de ces informations, le nom pourrait être:</para> + <programlisting> +-type1-Showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1 + </programlisting> + <para>Les composantes de ce nom sont:</para> + <variablelist> + <varlistentry> + <term>Casse</term> + <listitem> + <para>Appelons simplement toutes nos nouvelles polices + <literal>type1</literal>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Famille</term> + <listitem> + <para>Le nom de la police.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Graisse</term> + <listitem> + <para>Normal, gras, médium, semi-gras, etc. D'après les résultats + de <citerefentry><refentrytitle>strings</refentrytitle> + <manvolnum>1</manvolnum></citerefentry> ci-dessus, la police a une + graisse <emphasis>médium</emphasis>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Inclinaison</term> + <listitem> + <para><emphasis>r</emphasis>oman, <emphasis>i</emphasis>talique ou + <emphasis>o</emphasis>blique. Comme + <emphasis>ItaliqueAngle</emphasis> vaut 0, nous utiliserons + <emphasis>roman</emphasis>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Largeur</term> + <listitem> + <para>Normale, large, condensée, étendue, etc. Jusqu'à ce que nous la + déterminions à l'usage, nous supposerons qu'elle est + <emphasis>normale</emphasis>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Style supplémentaire</term> + <listitem> + <para>Habituellement non renseigné, mais nous nous en servons pour + indiquer que la police contient des majuscules décoratives.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Espacement</term> + <listitem> + <para>Proportionnel ou fixe. Comme <emphasis>isFixedPitch</emphasis> + est faux, nous utilisons <emphasis>Proportionnel</emphasis>.</para> + </listitem> + </varlistentry> + </variablelist> + <para> Tous ces noms sont arbitraires, mais il faut essayer de rester + compatible avec les conventions existantes. Une police est connue d'une + application X11 sous un nom qui peut éventuellement comporter des + caractères de substitution, il faut donc choisir un nom significatif. On + peut commencer en utilisant simplement:</para> + <programlisting> +...-normal-r-normal-...-p-... + </programlisting> + <para>comme nom, puis se servir de + <citerefentry><refentrytitle>xfontsel</refentrytitle> + <manvolnum>1</manvolnum></citerefentry> pour visualiser la police et + affiner son nom en fonction de ce à quoi elle ressemble.</para> + <para>Donc, pour compléter notre exemple:</para> + <itemizedlist> + <listitem> + <para><emphasis>Rendre la police accessible à X11</emphasis></para> + <informalexample> +<screen><prompt>bash$</prompt> <userinput>cd /usr/X11R6/lib/X11/fonts/Type1</userinput> +<prompt>bash$</prompt> <userinput>ln -s /usr/local/share/fonts/type1/showboat.pfb .</userinput></screen> + </informalexample> + </listitem> + <listitem> + <para><emphasis>Editer <filename>fonts.scale</filename> et + <filename>fonts.dir</filename> pour y ajouter une ligne décrivant la + nouvelle police et incrémenter le nombre de polices qui est défini en + première ligne</emphasis></para> + <informalexample> +<screen><prompt>bash$</prompt> <userinput>ex fonts.dir</userinput> +<userinput>:1p</userinput> +<userinput>25</userinput> +<userinput>:1c</userinput> +<userinput>26</userinput> +<userinput>.</userinput> +<userinput>:$a</userinput> +<userinput>showboat.pfb -type1-showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1</userinput> +<userinput>.</userinput> +<userinput>:wq</userinput></screen> + </informalexample> + </listitem> + <listitem> + <para><emphasis><filename>fonts.scale</filename> et + <filename>fonts.dir</filename> sont apparemment + identiques</emphasis></para> + <informalexample> +<screen><prompt>bash$</prompt> <userinput>cp fonts.dir fonts.scale</userinput></screen> + </informalexample> + </listitem> + <listitem> + <para><emphasis>Informer X11 des modifications</emphasis></para> + <informalexample> +<screen><prompt>bash$</prompt> <userinput>xset fp rehash</userinput></screen> + </informalexample> + </listitem> + <listitem> + <para><emphasis>Visualiser la nouvelle police</emphasis></para> + <informalexample> +<screen><prompt>bash$</prompt> <userinput>xfontsel -pattern -type1-*</userinput></screen> + </informalexample> + </listitem> + </itemizedlist> + <para>Références: <citerefentry><refentrytitle>xfontsel</refentrytitle> + <manvolnum>1</manvolnum></citerefentry>, + <citerefentry><refentrytitle>xset</refentrytitle> + <manvolnum>1</manvolnum></citerefentry>, <emphasis>The X Window System + in a Nutshell</emphasis>, <ulink url="http://www.ora.com">O'Reilly & + Associates</ulink>.</para> + </sect1> + <sect1> + <title>Utiliser les polices “Type 1” avec GhostScript</title> + <para>GhostScript référence les polices via son fichier + <filename>Fontmap</filename>. Il doit donc être modifié de la même façon + que le fichier X11 <filename>fonts.dir</filename>. GhostScript peut + utiliser des fichiers de police de caractères aux formats + <filename>.pfa</filename> ou <filename>.pfb</filename>. Voici comment nous + utiliserions la police de l'exemple précédent avec GhostScript:</para> + <itemizedlist> + <listitem> + <para><emphasis>Mettre la police dans le répertoire des polices de + GhostScript</emphasis></para> + <informalexample> +<screen><prompt>bash$</prompt> <userinput>cd /usr/local/share/ghostscript/fonts</userinput> +<prompt>bash$</prompt> <userinput>ln -s /usr/local/share/fonts/type1/showboat.pfb .</userinput></screen> + </informalexample> + </listitem> + <listitem> + <para><emphasis>Editer le fichier <filename>Fontmap</filename> pour que + GhostScript ait connaissance de la nouvelle police</emphasis></para> + <informalexample> +<screen><prompt>bash$</prompt> <userinput>cd /usr/local/share/ghostscript/4.01</userinput> +<prompt>bash$</prompt> <userinput>ex Fontmap</userinput> +<userinput>:$a</userinput> +<userinput>/Showboat (showboat.pfb) ; % From CICA /fonts/atm/showboat</userinput> +<userinput>:wq</userinput></screen> + </informalexample> + </listitem> + <listitem> + <para><emphasis>Utiliser GhostScript pour visualiser la + police</emphasis></para> + <informalexample> +<screen><prompt>bash$</prompt> <userinput>gs prfont.ps</userinput></screen> + </informalexample> + <programlisting> +Aladdin Ghostscript 4.01 (1996-7-10) +Copyright (C) 1996 Aladdin Enterprises, Menlo Park, CA. All rights +reserved. +This software comes with NO WARRANTY: see the file PUBLIC for details. +Loading Times-Roman font from /usr/local/share/ghostscript/fonts/tir_____.pfb... + /1899520 581354 1300084 13826 0 done. + </programlisting> + <informalexample> +<screen><prompt>GS></prompt> <userinput>Showboat DoFont</userinput></screen> + </informalexample> + <programlisting> +Loading Showboat font from /usr/local/share/ghostscript/fonts/showboat.pfb... + 1939688 565415 1300084 16901 0 done. +>>showpage, press <return> to continue<< +>>showpage, press <return> to continue<< +>>showpage, press <return> to continue<< + </programlisting> + <informalexample> +<screen><prompt>GS></prompt> <userinput>quit</userinput></screen> + </informalexample> + </listitem> + </itemizedlist> + <para>Références: <filename>fonts.txt</filename> de la distribution de + GhostScript 4.01.</para> + </sect1> + <sect1> + <title>Utiliser les polices “Type 1” avec Groff</title> + <para>Maintenant que nous pouvons utiliser la nouvelle police avec X11 et + GhostScript, comment faire pour s'en servir aussi avec groff? Tout + d'abord, comme nous nous occupons de polices PostScript + “Type 1”, le périphérique groff à utiliser est + <devicename>ps</devicename>. Il faut créer un fichier de police pour + chaque police utilisée par groff. Le nom d'une police groff se résume à un + fichier dans le répertoire + <filename>/usr/share/groff_font/devps</filename>. Dans notre exemple, ce + pourrait être <filename>/usr/share/groff_font/devps/SHOWBOAT</filename>. + Il faut créer ce fichier avec les outils fournis par groff.</para> + <para>Le premier outil est <filename>afmtodit</filename>. Il n'est pas + normalement installé et doit donc être extrait de la distribution sous + forme de sources. Je me suis aperçu qu'il fallait modifier la première + ligne du fichier, voici donc ce que j'ai fait:</para> + <informalexample> +<screen><prompt>bash$</prompt> <userinput>cp /usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.pl /tmp</userinput> +<prompt>bash$</prompt> <userinput>ex /tmp/afmtodit.pl</userinput> +<userinput>:1c</userinput> +<userinput>#!/usr/bin/perl -P-</userinput> +<userinput>.</userinput> +<userinput>:wq</userinput></screen> + </informalexample> + <para>Cet outil crée le fichier de police groff à partir du fichier de + dimensions de la police (suffixe <filename>.afm</filename>). Pour + continuer avec notre exemple:</para> + <itemizedlist> + <listitem> + <para><emphasis>De nombreux fichiers <filename>.afm</filename> sont au + format Mac... avec des lignes terminées par des ^M</emphasis></para> + <para>Il faut les convertir au style Unix avec des lignes terminées par + des ^J</para> + <informalexample> +<screen><prompt>bash$</prompt> <userinput>cd /tmp</userinput> +<prompt>bash$</prompt> <userinput>cat /usr/local/share/fonts/type1/showboat.afm |</userinput> + <userinput>tr '\015' '\012' >showboat.afm</userinput></screen> + </informalexample> + </listitem> + <listitem> + <para><emphasis>Créons maintenant le fichier de police + groff</emphasis></para> + <informalexample> +<screen><prompt>bash$</prompt> <userinput>cd /usr/share/groff_font/devps</userinput> +<prompt>bash$</prompt> <userinput>/tmp/afmtodit.pl -d DESC -e text.enc /tmp/showboat.afm generate/textmap SHOWBOAT</userinput></screen> + </informalexample> + </listitem> + </itemizedlist> + <para>La police peut maintenant être référencée par le nom SHOWBOAT.</para> + <para>Si l'on utilise GhostScript pour piloter les imprimantes du système, + il n'y a rien d'autre à faire. Si, par contre, l'on utilise de vraies + imprimantes PostScript, il faut alors charger la police sur l'imprimante + pour pouvoir l'utiliser (à moins que l'imprimante ne dispose de la police + “showboat” en interne ou sur une disquette de polices + accessible). La dernière étape consiste à créer la police chargeable. + L'outil <filename>pfbtops</filename> est utilisé pour créer le format + <filename>.pfa</filename> de la police et le fichier + <filename>download</filename> est modifié pour faire référence à la + nouvelle police. Le fichier <filename>download</filename> doit indiquer le + nom interne de la police. Ce nom peut être facilement connu à l'aide du + fichier de police groff, comme le montre l'exemple:</para> + <itemizedlist> + <listitem> + <para><emphasis>Créer le fichier de police + <filename>.pfa</filename></emphasis></para> + <informalexample> +<screen><prompt>bash$</prompt> <userinput>fgrep internalname SHOWBOAT</userinput> +internalname Showboat</screen> + </informalexample> + </listitem> + <listitem> + <para><emphasis>Dire à groff qu'il faut charger la + police</emphasis></para> + <informalexample> +<screen><prompt>bash$</prompt> <userinput>ex download</userinput> +<userinput>:$a</userinput> +<userinput>Showboat showboat.pfa</userinput> +<userinput>.</userinput> +<userinput>:wq</userinput></screen> + </informalexample> + </listitem> + </itemizedlist> + <para>Pour tester la police:</para> + <informalexample> +<screen><prompt>bash$</prompt> <userinput>cd /tmp</userinput> +<prompt>bash$</prompt> <userinput>cat >exemple.t <<EOF</userinput> +<userinput>.sp 5</userinput> +<userinput>.ps 15</userinput> +<userinput>C'est un exemple de police Showboat:</userinput> +<userinput>.br</userinput> +<userinput>.ps 48</userinput> +<userinput>.vs (\n(.s+2)p</userinput> +<userinput>.sp</userinput> +<userinput>.ft SHOWBOAT</userinput> +<userinput>ABCDEFGHI</userinput> +<userinput>.br</userinput> +<userinput>JKLMNOPQR</userinput> +<userinput>.br</userinput> +<userinput>STUVWXYZ</userinput> +<userinput>.sp</userinput> +<userinput>.ps 16</userinput> +<userinput>.vs (\n(.s+2)p</userinput> +<userinput>.fp 5 SHOWBOAT</userinput> +<userinput>.ft 5</userinput> +<userinput>Utilisée comme première lettre d'un paragraphe. Cela ressemblera à:</userinput> +<userinput>.sp50p</userinput> +<userinput>\s(48\f5V\s0\fRoici la première phrase d'un paragraphe qui utilise</userinput> +<userinput>la police showboat pour sa première lettre. Il faut augmenter</userinput> +<userinput>l'espacement vertical pour laisser de la place pour la première</userinput> +<userinput>lettre.</userinput> +<userinput>EOF</userinput> +<prompt>bash$</prompt> <userinput>groff -Tps exemple.t >exemple.ps</userinput></screen> + </informalexample> + <itemizedlist> + <listitem> + <para><emphasis>Pour utiliser GhostScript/GhostView</emphasis></para> + <informalexample> +<screen><prompt>bash$</prompt> <userinput>ghostview exemple.ps</userinput></screen> + </informalexample> + </listitem> + <listitem> + <para><emphasis>Pour l'imprimer</emphasis></para> + <informalexample> +<screen><prompt>bash$</prompt> <userinput>lpr -Ppostscript exemple.ps</userinput></screen> + </informalexample> + </listitem> + </itemizedlist> + <para>Références: + <filename>/usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.man</filename>, + <citerefentry><refentrytitle>groff_font</refentrytitle> + <manvolnum>5</manvolnum></citerefentry>, + <citerefentry><refentrytitle>groff_char</refentrytitle> + <manvolnum>5</manvolnum></citerefentry>, + <citerefentry><refentrytitle>pfbtops</refentrytitle> + <manvolnum>1</manvolnum></citerefentry>.</para> + </sect1> + <sect1> + <title>Peut-on utiliser des polices “True Type”?</title> + <para>Le format de police “True Type” est utilisée par Windows, + Windows 95 et le Macintosh. Il est assez répandu et il y a de nombreuses + polices de ce format disponibles.</para> + <para>Malheureusement, je connais peu d'applications qui puissent utiliser + ce format: GhostScript et Povray viennent à l'esprit. Le support par + GhostScript est, d'après la documentation, assez rudimentaire et il y a + des chances que le résultat soit moins bon qu'avec les polices + “Type 1”. Povray version 3 est aussi capable d'utiliser des + des polices “True Type”, mais je doute que beaucoup de + personnes créent des documents sous forme de pages générées par lancer de + rayon :-).</para> + <para>Il est difficile d'utiliser une police “True Type” avec + groff parce que groff a besoin d'un fichier de description de la police, + et je ne connais pas d'outil pour déterminer les dimensions d'une police + “True Type”. De plus, il faudrait charger la police sur les + imprimantes PostScript avec le format approprié et, de nouveau, groff ne + peut gérer de cette façon les polices “True Type”.</para> + <para>Cette situation plutôt désolante changera peut-être bientôt. Le + <ulink url="http://www.freetype.org">Projet FreeType</ulink> développe + actuellement un ensemble d'utilitaire FreeType:</para> + <itemizedlist> + <listitem> + <para>Le serveur de polices <filename>xfsft</filename> pour X11 peut + gérer les polices “TrueType” en plus des polices + ordinaires. Bien que ce soit encore une version béta, elle a la + réputation d'être à peu près utilisable. Voyez + <ulink url="http://www.dcs.ed.sc.uk/home/jec/programs/xfsft">la page de + Juliusz Chroboczek</ulink> pour plus d'informations. Il y a des + instructions de portage sous FreeBSD sur + <ulink url="http://math.missouri.edu/~stephen/software">la page + logicielle de Stephen Montgomery</ulink>.</para> + </listitem> + <listitem> + <para><filename>xfstt</filename> est un autre serveur X11, disponible + sur <ulink url="ftp://sunsite.unc.edu/pub/Linux/X11/fonts">ftp://sunsite.unc.edu/pub/Linux/X11/fonts</ulink>.</para> + </listitem> + <listitem> + <para>Il y a un programme appelé <filename>ttf2bdf</filename> qui peut + créer des fichiers BDF utilisables en environnement X à partir de + fichiers “TrueType”. Les binaires pour Linux sont censés + être disponibles sur + <ulink url="ftp://crl.nmsu.edu/CLR/multiling/General/">ftp://crl.nmsu.edu/CLR/multiling/General/</ulink>.</para> + </listitem> + <listitem> + <para>Pour les personnes qui ont besoin de polices “True + Type” asiatiques, il peut valoir la peine de jetter un coup + d'oeil au serveur de polices <filename>XTT</filename>. Il y a des + informations sur <filename>XTT</filename> à l'adresse: + <ulink url="http://hawk.ise.chuo-u.ac.jp/student/person/tshiozak/study/freebsd-at-random/x-tt/index-en.html">http://hawk.ise.chuo-u.ac.jp/student/person/tshiozak/study/freebsd-at-random/x-tt/index-en.html</ulink>.</para> + </listitem> + <listitem> + <para>et d'autres ...</para> + </listitem> + </itemizedlist> + </sect1> + <sect1> + <title>Où peut-on trouver des polices supplémentaires?</title> + <para>Il y a de nombreuses polices disponibles sur l'Internet. Elles sont + soit complètement gratuites ou en “partagiciel”. Il y a aussi + de nombreux CD-ROMs peux onéreux qui contiennent beaucoup de polices. + Voici quelques sites Internet (au mois d'Août 1996):</para> + <itemizedlist> + <listitem> + <para><ulink url="ftp://ftp.winsite.com">ftp://ftp.winsite.com</ulink> + (auparavant CICA),</para> + </listitem> + <listitem> + <para><ulink url="http://www.simtel.net/simcgi-bin/dosfind.cgi">http://www.simtel.net/simcgi-bin/dosfind.cgi</ulink>,</para> + </listitem> + <listitem> + <para><ulink url="ftp://ftp.coast.net/">ftp://ftp.coast.net/</ulink>,</para> + </listitem> + <listitem> + <para><ulink url="http://af-pc-plloyd.ecel.uwa.edu.au/fonts/index.html">http://af-pc-plloyd.ecel.uwa.edu.au/fonts/index.html</ulink>,</para> + </listitem> + <listitem> + <para><ulink url="http://www.esselte.com/letraset/index.html">http://www.esselte.com/letraset/index.html</ulink>,</para> + </listitem> + <listitem> + <para><ulink url="http://www.inil.com/users/elfring/esf.htm">http://www.inil.com/users/elfring/esf.htm</ulink>.</para> + </listitem> + </itemizedlist> + </sect1> + <sect1> + <title>D'autres questions</title> + <itemizedlist> + <listitem> + <para>Que sont que les fichiers <filename>.pfm</filename>?</para> + </listitem> + <listitem> + <para>Peut-on générer des fichiers <filename>.afm</filename> à partir de + fichiers <filename>.pfa</filename> ou + <filename>.pfb</filename>?</para> + </listitem> + <listitem> + <para>Comment générer des fichiers de correspondance de caractères pour + groff pour les polices PostScript dont les caractères ont des noms qui + ne sont pas standard?</para> + </listitem> + <listitem> + <para>Les périphériques <filename>xditview</filename> et + <devicename>devX??</devicename> peuvent-ils être configurés pour + accéder aux nouvelles polices?</para> + </listitem> + <listitem> + <para>Il serait bien d'avoir des exemples d'utilisation de polices + “True Type” avec GhostScript et Povray.</para> + </listitem> + </itemizedlist> + </sect1> +</article> diff --git a/fr_FR.ISO_8859-1/articles/formatting-media/Makefile b/fr_FR.ISO_8859-1/articles/formatting-media/Makefile new file mode 100644 index 0000000000..72c1d9b8c9 --- /dev/null +++ b/fr_FR.ISO_8859-1/articles/formatting-media/Makefile @@ -0,0 +1,20 @@ +# +# The FreeBSD Documentation Project +# The FreeBSD French Documentation Project +# +# $FreeBSD$ +# Original revision: 1.4 +# + +DOC?= article + +FORMATS?= html + +INSTALL_COMPRESSED?=gz +INSTALL_ONLY_COMPRESSED?= + +SRCS= article.sgml + +DOC_PREFIX?= ${.CURDIR}/../../.. + +.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO_8859-1/articles/formatting-media/article.sgml b/fr_FR.ISO_8859-1/articles/formatting-media/article.sgml new file mode 100755 index 0000000000..f58946b2fd --- /dev/null +++ b/fr_FR.ISO_8859-1/articles/formatting-media/article.sgml @@ -0,0 +1,557 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + +<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ +<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man; +<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls; +<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract; +<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader; +<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators; + +<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors; +<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists; + <!ENTITY rel.current CDATA "3.2"> +]> + +<article lang="fr"> + <artheader> + <title>Formatage des supports pour FreeBSD 2.2-RELEASE</title> + <subtitle>Un guide</subtitle> + <authorgroup> + <author> + <firstname>Doug</firstname> + <surname>White</surname> + </author> + </authorgroup> + &artheader.copyright; + <abstract> + <para><email>dwhite@resnet.uoregon.edu</email></para> + <para>Mars 1997</para> + <para>Ce document décrit comment découper, partitionner et formater les + disques durs et autres supports similaires pour les utiliser avec + FreeBSD. Les exemples proposés ont été testés avec FreeBSD 2.2-GAMMA et + devraient être applicables à d'autres versions.</para> + &abstract.license; + &abstract.disclaimer; + &trans.a.haby; + </abstract> + </artheader> + <sect1> + <title>Introduction et définitions</title> + <sect2> + <title>Résumé</title> + <para>Réussir à ajouter des disques à un système existant est la + marque d'un administrateur système expérimenté. Découper, partitionner + et ajouter des disques requiert de combiner avec soin commande + adéquate et syntaxe de nommage. Une frappe malheureuse et un disque + entier peut disparaître en quelques secondes. Ce document est une + tentative pour simplifier le processus et éviter les accidents. + Heureusement, les outils existants (tout particulièrement + <citerefentry><refentrytitle>sysinstall</refentrytitle></citerefentry>) + ont notablement amélioré ce processus dans les dernières versions de + FreeBSD.</para> + <para>Il y a deux possibilités de formatage d'un disque:</para> + <itemizedlist> + <listitem> + <para><emphasis>mode compatible</emphasis>: Configurer un disque + pour qu'il ait une table des + tranches - “<foreignphrase>slices</foreignphrase>” - utilisable + avec d'autres systèmes d'exploitation.</para> + </listitem> + <listitem> + <para><emphasis>mode dangeureusement dédié</emphasis>: Formater un + disque sans table des + tranches - “<foreignphrase>slices</foreignphrase>”. + Cela facilite l'ajout de disques, mais des systèmes d'exploitation + autres que FreeBSD risquent de ne pas reconnaître de tels + disques.</para> + </listitem> + </itemizedlist> + <para>Dans la plupart des cas, le mode dédié est le plus facile à mettre + en oeuvre et à utiliser sur des systèmes existants, auquel cas le + nouveau disque est en général entièrement dédié à FreeBSD. Cependant, + le mode compatible garantit le maximum d'interopérabilité avec des + installations ultérieures, au prix d'une plus grande complexité.</para> + <para>En plus du choix du mode, il existe deux méthodes pour découper le + disque. La première est d'utiliser l'outil + <citerefentry><refentrytitle>/stand/sysinstall</refentrytitle></citerefentry> + d'installation du système. A partir de la version 2.1.7-RELEASE de + FreeBSD, + <citerefentry><refentrytitle>sysinstall</refentrytitle></citerefentry> + contient du code qui facilite la + configuration de disques en cours d'opération normale du système, + donnant essentiellement accès aux éditeurs de labels et de partitions, + et comportant un fonctionnalité d'écriture qui ne met à jour que le + disque sélectionné sans toucher aux autres disques. La seconde méthode + consiste à employer les utilitaires, à la main, depuis la ligne de + commande, en session sous le compte super-utilisateur + <username>root</username>. Pour le mode dangeureusement dédié, il n'y + a que trois ou quatre commandes concernées, alors que + <citerefentry><refentrytitle>sysinstall</refentrytitle></citerefentry> + demande quelques manipulations.</para> + </sect2> + <sect2> + <title>Définitions</title> + <para>La gestion de disques Unix a, au fil des siècles, inventé de + nombreuses nouvelles définitions pour d'anciens mots. Le glossaire + ci-dessous donne les définitions des expressions utilisées dans + ce document et (espérons-le) pour ce qui concerne FreeBSD en + général.</para> + <itemizedlist> + <listitem> + <para><emphasis>mode compatible</emphasis>: Configurer un disque + pour qu'il ait une table des + tranches - “<foreignphrase>slices</foreignphrase>” - utilisable + avec d'autres systèmes d'exploitation. C'est le contraire du mode + dangeureusement dédié.</para> + </listitem> + <listitem> + <para><emphasis>mode dangeureusement dédié</emphasis>: Formater un + disque sans table des + tranches - “<foreignphrase>slices</foreignphrase>”. + Cela facilite l'ajout de disques, mais des systèmes d'exploitation + autres que FreeBSD risquent de ne pas reconnaître de tels + disques. C'est le contraire du mode compatible.</para> + </listitem> + <listitem> + <para>disque: un disque circulaire recouvert d'un matériau magnétique + ou équivalent, qui tourne, mû par un moteur, devant une tête de + lecture. Les données sont enregistrées sur le disque en modifiant + la magnétisation du support, et peuvent être ensuite relues. Les + disques durs, CD-ROMs, disques magnéto-optiques et supports + amovibles Zip ou Jaz, sont des exemples de disques.</para> + </listitem> + <listitem> + <para>tranche - “<foreignphrase>slice</foreignphrase>”: + une subdivision du disque. Il peut y avoir jusqu'à quatre tranches + sur un disque d'après le standard PC. Les tranches sont constituées + de secteurs adjacents. Les tranches sont décrites par une + “table des tranches” utilisée par le BIOS du système + pour localiser les partitions démarrables. La table des tranches + est habituellement appelée “table des partitions” en + langage DOS. Les tranches sont gérées par l'utilitaire + <citerefentry><refentrytitle>fdisk</refentrytitle></citerefentry>.</para> + </listitem> + <listitem> + <para>partition: une subdivision de la + tranche - “<foreignphrase>slice</foreignphrase>”. + Habituellement utilisée pour désigner les divisions de la tranche + FreeBSD du disque. Chaque système de fichiers et espace de + pagination réside sur une partition. Les partitions sont gérées par + l'utilitaire + <citerefentry><refentrytitle>disklabel</refentrytitle></citerefentry>.</para> + </listitem> + <listitem> + <para>secteur: la plus petite subdivision d'un disque. Un secteur + contient habituellement 512 octets de données.</para> + </listitem> + </itemizedlist> + </sect2> + <sect2> + <title>Avertissements et pièges à éviter</title> + <para>Installer des disques n'est pas quelque chose à prendre à la + légère. Il est tout à fait possible de détruire le contenu d'autres + disques de votre système si vous ne prenez pas les précautions + nécessaires.</para> + <para><emphasis>Vérifiez avec soin ce que vous faites</emphasis>. Il est + très facile d'effacer le mauvais disque quand vous utilisez ces + commandes. En cas de doute, consultez les messages de démarrage du + noyau pour connaître le nom exact du périphérique.</para> + <para>Inutile de préciser que nous ne serions en rien responsable des + dégats que vous causeriez à vos données ou à votre matériel. Vous + travaillez à vos risques et périls.</para> + </sect2> + <sect2> + <title>Zip, Jaz et autres disques amovibles</title> + <para>Les disques amovibles peuvent être formatés de la même façon que les + disques durs ordinaires. Il est indispensable que le lecteur soit + connecté et qu'il y ait un disque dedans au démarrage du système, pour + que le noyau puisse déterminer la géométrie du disque. Consultez les + résultats de + <citerefentry><refentrytitle>dmesg</refentrytitle></citerefentry> + et vérifiez que le disque et sa taille y figurent. Si le noyau émet le + message:</para> + <programlisting> +Can't get the size + </programlisting> + <para>c'est que le disque n'était pas dans le lecteur. Dans ce cas, vous + devrez redémarrer la machine avant de formater des disques.</para> + </sect2> + </sect1> + <sect1> + <title>Formater des disques en mode dédié</title> + <sect2> + <title>Introduction</title> + <para>Cette section explique en détail comment configurer des disques + entièrement dédiés à FreeBSD. N'oubliez pas que des disques en mode + dédié ne peuvent pas être utilisés par l'architecture PC pour démarrer + le système.</para> + </sect2> + <sect2> + <title>Formater des disques en mode dédié avec Sysinstall</title> + <para><filename>/stand/sysinstall</filename>, l'utilitaire + d'installation du système, a été amélioré dans les versions récentes + pour rendre le processus de découpage propre des disques moins + pénible. Les éditeurs + <citerefentry><refentrytitle>fdisk</refentrytitle></citerefentry> et + <citerefentry><refentrytitle>disklabel</refentrytitle></citerefentry> + inclus dans + <citerefentry><refentrytitle>sysinstall</refentrytitle></citerefentry> + sont des outils interactifs qui + dissipent une bonne partie de la confusion liée aux opérations de + découpage de disques en “tranches”. Avec FreeBSD 2.1.7 et + ultérieur, c'est probablement la méthode la plus simple pour le + faire.</para> + <orderedlist> + <listitem> + <para>Lancez + <citerefentry><refentrytitle>sysinstall</refentrytitle></citerefentry> + en tant que super-utilisateur <username>root</username> en + tapant:</para> + <informalexample> +<screen>&prompt.root; <userinput>/stand/sysinstall</userinput></screen> + </informalexample> + <para>sur la ligne de commande.</para> + </listitem> + <listitem> + <para>Sélectionnez <option>Index</option>.</para> + </listitem> + <listitem> + <para>Sélectionnez <option>Partition</option>.</para> + </listitem> + <listitem> + <para>Sélectionnez le disque à configurer avec les touches Flèches et + la barre d'espacement.</para> + </listitem> + <listitem> + <para>Si vous utilisez tout le disque pour FreeBSD, sélectionnez + <option>A</option>.</para> + </listitem> + <listitem> + <para>A la question:</para> + <programlisting> +Do you want to do this with a true partition entry so as to remain +cooperative with any future possible operating systems on the +drive(s)? + +[Voulez-vous créer une vraie entrée de partition pour rester +compatible avec d'éventuels futurs systèmes d'exploitation +sur le(s) disque(s)?] + </programlisting> + <para>répondez <option>No</option> (Non).</para> + </listitem> + <listitem> + <para>Quand on vous demande si vous voulez continuer, répondez + <option>Yes</option> (Oui).</para> + </listitem> + <listitem> + <para>Sélectionnez <option>Write</option> (Ecrire).</para> + </listitem> + <listitem> + <para>A l'avertissement à propos de l'écriture sur des systèmes + déjà installés, répondez <option>Yes</option> (Oui).</para> + </listitem> + <listitem> + <para><option>Quit</option>tez l'éditeur + <citerefentry><refentrytitle>fdisk</refentrytitle></citerefentry> + et revenez au menu d'<option>Index</option> avec + <keycap>Echap</keycap>.</para> + </listitem> + <listitem> + <para>Sélectionnez <option>Label</option> dans le menu + d'<option>Index</option>.</para> + </listitem> + <listitem> + <para>Libellez le disque comme vous le souhaitez. Si vous ne voulez + qu'une seule partition, tapez <keycap>C</keycap> pour créer une + partition, validez la taille proposée par défaut, prenez comme + type de partition <option>Filesystem</option> (système de fichiers) + et indiquez un point de montage (qui dans ce cas ne sert à + rien).</para> + </listitem> + <listitem> + <para>Tapez <keycap>W</keycap> une fois que vous avez terminé. Le + système de fichiers sera initialisé avec + <citerefentry><refentrytitle>newfs</refentrytitle></citerefentry> + sans que vous n'ayez autre chose à faire, à moins que vous ne + fassiez un autre choix (pour les nouvelles partitions, il faut + initialiser le système de fichiers!). Vous aurez un message + d'erreur:</para> + <programlisting> +Error mounting /mnt/dev/wd2s1e on /mnt/blah : No such file or directory + </programlisting> + <para>Ne vous en occupez pas.</para> + </listitem> + <listitem> + <para>Quittez le programme, en utilisant à plusieurs reprises la + touche <keycap>Echap</keycap>.</para> + </listitem> + </orderedlist> + </sect2> + <sect2> + <title>Formater des disques en mode dédié depuis la ligne de + commande</title> + <para>Exécutez les commandes suivantes, en substituant à + <devicename>wd2</devicename> le nom de votre disque. Les lignes + qui commencent par <literal>#</literal> sont des commentaires.</para> + <informalexample> +<screen><userinput>dd if=/dev/zero of=/dev/rwd2 count=2</userinput> +<userinput>disklabel /dev/rwd2 | disklabel -B -R -r wd2 /dev/stdin</userinput> +# Nous ne voulons qu'une partition, utiliser la tranche 'c' devrait aller: +<userinput>newfs /dev/rwd2c</userinput></screen> + </informalexample> + <para>Si vous avez besoin de modifier le label du disque pour créer + plusieurs partitions (pour la pagination par exemple), utilisez la + séquence suivante:</para> + <informalexample> +<screen><userinput>dd if=/dev/zero of=/dev/rwd2 count=2</userinput> +<userinput>disklabel /dev/r$d > /tmp/label</userinput> +# Modifiez le label du disque pour ajouter des partitions: +<userinput>vi /tmp/label</userinput> +<userinput>disklabel -B -R -r wd2 /tmp/label</userinput> +# Créez les systèmes de fichiers sur les partitions avec newfs selon les besoins</screen> + </informalexample> + <para>Votre disque est maintenant prêt à être utilisé.</para> + </sect2> + </sect1> + <sect1> + <title>Formater des disques en mode compatible</title> + <sect2> + <title>Introduction</title> + <para>Travailler depuis la ligne de commande est la manière la plus facile + de formater des disques dédiés, et la pire pour formater des disques + compatibles. L'utilitaire en ligne de commande + <citerefentry><refentrytitle>fdisk</refentrytitle></citerefentry> + demande une bonne connaissance des mathématiques et une compréhension en + profondeur de la structure de la table des “tranches”, qui + dépassent ce dont la plupart des gens souhaitent se préoccuper. Utilisez + <citerefentry><refentrytitle>sysinstall</refentrytitle></citerefentry> + comme décrit dans ce qui suit.</para> + </sect2> + <sect2> + <title>Formater des disques en mode compatible avec Sysinstall</title> + <orderedlist> + <listitem> + <para>Lancez + <citerefentry><refentrytitle>sysinstall</refentrytitle></citerefentry> + en tant que super-utilisateur <username>root</username> en + tapant:</para> + <informalexample> +<screen>&prompt.root; <userinput>/stand/sysinstall</userinput></screen> + </informalexample> + <para>sur la ligne de commande.</para> + </listitem> + <listitem> + <para>Sélectionnez <option>Index</option>.</para> + </listitem> + <listitem> + <para>Sélectionnez <option>Partition</option>.</para> + </listitem> + <listitem> + <para>Sélectionnez le disque à configurer avec les touches Flèches et + la barre d'espacement.</para> + </listitem> + <listitem> + <para>Si vous utilisez tout le disque pour FreeBSD, sélectionnez + <option>A</option>.</para> + </listitem> + <listitem> + <para>A la question:</para> + <programlisting> +Do you want to do this with a true partition entry so as to remain +cooperative with any future possible operating systems on the +drive(s)? + +[Voulez-vous créer une vraie entrée de partition pour rester +compatible avec d'éventuels futurs systèmes d'exploitation +sur le(s) disque(s)?] + </programlisting> + <para>répondez <option>Yes</option> (Oui).</para> + </listitem> + <listitem> + <para>Sélectionnez <option>Write</option> (Ecrire).</para> + </listitem> + <listitem> + <para><option>Quit</option>tez l'éditeur + <citerefentry><refentrytitle>fdisk</refentrytitle></citerefentry>.</para> + </listitem> + <listitem> + <para>A la question à propos du gestionnaire de démarrage, répondez + encore <option>None</option> (aucun).</para> + </listitem> + <listitem> + <para>Sélectionnez <option>Label</option> dans le menu + d'<option>Index</option>.</para> + </listitem> + <listitem> + <para>Libellez le disque comme vous le souhaitez. Si vous ne voulez + qu'une seule partition, validez la taille proposée par + défaut, prenez comme type de partition <option>Filesystem</option> + (système de fichiers) et indiquez un point de montage (qui dans ce + cas ne sert à rien).</para> + </listitem> + <listitem> + <para>Le système de fichiers sera initialisé avec + <citerefentry><refentrytitle>newfs</refentrytitle></citerefentry> + sans que vous n'ayez autre chose à faire, à moins que vous ne + fassiez un autre choix (pour les nouvelles partitions, il faut + initialiser le système de fichiers!). Vous aurez un message + d'erreur:</para> + <programlisting> +Error mounting /mnt/dev/wd2s1e on /mnt/blah : No such file or directory + </programlisting> + <para>Ne vous en occupez pas.</para> + </listitem> + <listitem> + <para>Quittez le programme, en utilisant à plusieurs reprises la + touche <keycap>Echap</keycap>.</para> + </listitem> + </orderedlist> + <para>Votre nouveau disque est prêt à être utilisé.</para> + </sect2> + </sect1> + <sect1> + <title>Autres opérations sur les disques</title> + <sect2> + <title>Ajout d'espace de pagination</title> + <para>Au fur et à mesure que le système grossit, ses besoins d'espace de + pagination peuvent aussi augmenter. Alors qu'il est très difficile + d'ajouter de l'espace de pagination à des disques en service, un nouveau + disque peut être partitionné pour mettre en oeuvre de l'espace de + pagination supplémentaire.</para> + <para>Pour ajouter de l'espace de pagination au moment de l'installation + d'un nouveau disque:</para> + <orderedlist> + <listitem> + <para>Au moment de partitionner le disque, éditez son label et + allouer la quantité d'espace de pagination voulue en ajoutant une + partition 'b' et en affectant le reste à une autre partition, + telle que 'a' ou 'e'. La taille est à donner en blocs de 512 + octets.</para> + </listitem> + <listitem> + <para>Au moment de créer les systèmes de fichiers avec + <citerefentry><refentrytitle>newfs</refentrytitle></citerefentry>, + ne formatez pas la partition 'c'. Formatez à la place la partition + qui n'est pas réservée à la pagination.</para> + </listitem> + <listitem> + <para>Ajoutez la ligne qui suit à + <filename>/etc/fstab</filename>:</para> + <programlisting> +/dev/wd0b none swap sw 0 0 + </programlisting> + <para>En remplacant <filename>/dev/wd0b</filename> par le nom du + nouvel espace de pagination.</para> + </listitem> + <listitem> + <para>Pour que l'espace de pagination soit immédiatement utilisable, + utilisez la commande + <citerefentry><refentrytitle>newfs</refentrytitle></citerefentry>:</para> + <informalexample> +<screen>&prompt.user; <userinput>swapon /dev/sd0b</userinput> +swapon: added /dev/sd0b as swap space</screen> + </informalexample> + </listitem> + </orderedlist> + </sect2> + <sect2> + <title>Copier le contenu d'un disque sur un autre</title> + <para>Proposé par: Renauld Waldura + <email>renaud@softway.com</email>.</para> + <para>Pour déplacer le contenu d'un disque sur un nouveau, faites:</para> + <informalexample> +<screen>&prompt.root; <userinput>mount /dev/wd2 /mnt</userinput> +&prompt.root; <userinput>pax -r -w -p e /usr/home /mnt</userinput> +&prompt.root; <userinput>umount /mnt</userinput> +&prompt.root; <userinput>rm -rf /usr/home/*</userinput> +&prompt.root; <userinput>mount /dev/wd2 /usr/home</userinput></screen> + </informalexample> + </sect2> + <sect2> + <title>Créer des disques à écritures réparties avec + <devicename>ccd</devicename></title> + <para>Commandes transmises par: Stan Brown + <email>stanb@awod.com</email>.</para> + <para>Le pilote de disques + concaténés - “<foreignphrase>Concatenated Disk + Driver</foreignphrase>”, ou CCD - vous permet + d'utiliser plusieurs disques comme s'il s'agissait d'un seul. Les + écritures réparties peuvent augmenter les performances disque en + distribuant les lectures et les écritures sur plusieurs disques. + Voyez les pages de manuel de + <citerefentry><refentrytitle>ccd</refentrytitle> + <manvolnum>4</manvolnum></citerefentry> et + <citerefentry><refentrytitle>ccdconfig</refentrytitle> + <manvolnum>4</manvolnum></citerefentry> ou la + <ulink url="http://stampede.cs.berkeley.edu/ccd/">page de + CCD</ulink>, pour plus d'informations.</para> + <para>Pour créer un nouveau CCD, exécutez les commandes ci-dessous. + Elles décrivent comment concaténer trois disques; ajoutez ou + supprimez des périphériques selon vos besoins. Rappelez-vous + que les disques sur lequels se fera la répartition doivent être + <emphasis>identiques</emphasis>.</para> + <para>Avant d'exécuter ces commandes, vérifiez que vous avez bien + ajouté la ligne:</para> + <programlisting> +pseudo-device ccd 4 + </programlisting> + <para>à la configuration de votre noyau.</para> + <informalexample> +<screen>&prompt.root; <userinput>cd /dev ; sh MAKDEV ccd0</userinput></screen> + </informalexample> + <informalexample> +<screen>&prompt.root; <userinput>disklabel -r -w sd0 auto</userinput> +&prompt.root; <userinput>disklabel -r -w sd1 auto</userinput> +&prompt.root; <userinput>disklabel -r -w sd2 auto</userinput></screen> + </informalexample> + <informalexample> +<screen>&prompt.root; <userinput>disklabel -e sd0c</userinput> # changer le type en 4.2BSD +&prompt.root; <userinput>disklabel -e sd1c</userinput> # changer le type en 4.2BSD +&prompt.root; <userinput>disklabel -e sd2c</userinput> # changer le type en 4.2BSD</screen> + </informalexample> + <informalexample> +<screen>&prompt.root; <userinput>ccdconfig ccd0 32 0 /dev/sd0c /dev/sd1c /dev/sd2c</userinput></screen> + </informalexample> + <informalexample> +<screen>&prompt.root; <userinput>newfs /dev/rccd0c</userinput></screen> + </informalexample> + <para>Vous pouvez maintenant monter et utiliser votre CCD en le + référençant comme périphérique + <filename>/dev/ccd0c</filename>.</para> + </sect2> + </sect1> + <sect1> + <title>Remerciements</title> + <para>L'auteur aimerait remercier les personnes suivantes pour leur + contribution à ce projet:</para> + <itemizedlist> + <listitem> + <para>Darryl Okahata <email>darrylo@hpnmhjw.sr.hp.com</email>, + pour sa documentation simple sur la configuration de + disques en mode dédié, que j'ai utilisée à plusieurs reprises + sur la &a.questions;.</para> + </listitem> + <listitem> + <para>&a.jkh; pour avoir rendu + <citerefentry><refentrytitle>sysinstall</refentrytitle></citerefentry> + utile à ce type de tâches.</para> + </listitem> + <listitem> + <para>John Fieber <email>jfieber@indiana.edu</email> pour avoir + mis au point la documentation et les exemples d'utilisation de + la <foreignphrase>DTD Docbook</foreignphrase> utilisée + pour mettre en forme ce document.</para> + </listitem> + <listitem> + <para>&a.grog; pour avoir contrôlé mon travail et mentionné les + inexactitudes, ainsi que pour son concours sur divers points.</para> + </listitem> + </itemizedlist> + </sect1> +</article> diff --git a/fr_FR.ISO_8859-1/articles/ip-aliasing/Makefile b/fr_FR.ISO_8859-1/articles/ip-aliasing/Makefile new file mode 100644 index 0000000000..72c1d9b8c9 --- /dev/null +++ b/fr_FR.ISO_8859-1/articles/ip-aliasing/Makefile @@ -0,0 +1,20 @@ +# +# The FreeBSD Documentation Project +# The FreeBSD French Documentation Project +# +# $FreeBSD$ +# Original revision: 1.4 +# + +DOC?= article + +FORMATS?= html + +INSTALL_COMPRESSED?=gz +INSTALL_ONLY_COMPRESSED?= + +SRCS= article.sgml + +DOC_PREFIX?= ${.CURDIR}/../../.. + +.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO_8859-1/articles/ip-aliasing/article.sgml b/fr_FR.ISO_8859-1/articles/ip-aliasing/article.sgml new file mode 100755 index 0000000000..149e58a4da --- /dev/null +++ b/fr_FR.ISO_8859-1/articles/ip-aliasing/article.sgml @@ -0,0 +1,277 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + +<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ +<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man; +<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls; +<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract; +<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader; +<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators; + +<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors; +<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists; + <!ENTITY rel.current CDATA "3.2"> +]> + +<article lang="fr"> + <artheader> + <title>Alias IP avec FreeBSD 2.x</title> + <authorgroup> + <author> + <firstname>Ben</firstname> + <surname>Black</surname> + </author> + </authorgroup> + &artheader.copyright; + <abstract> + <para><email>black@cypher.net</email></para> + &abstract.license; + &abstract.disclaimer; + &trans.a.haby; + </abstract> + </artheader> + <sect1> + <title>Introduction</title> + <para>Définir des <emphasis>alias IP</emphasis> consiste à affecter plus + d'une adresse IP à une interface réseau. Les alias IP sont typiquement + employés pour héberger des serveurs Web et FTP virtuels et pour + réorganiser ses serveurs sans avoir à mettre à jour d'autres machines + (ce dernier usage est particulièrement utile avec les serveurs de noms + de domaines). Voyez un alias IP comme un petit enfant perché sur le + dos de son interface parente (qui est l'adresse primaire de l'interface + physique).</para> + <para>Les alias IP <emphasis>n'ont rien à voir</emphasis> avec la notion + de <emphasis>multi-hébergement</emphasis> - “<foreignphrase>multi-homing</foreignphrase>” + (lorsqu'une machine dispose de plus d'une interface réseau active), sauf + au cas où une machine sur plusieurs réseaux fournit des services tels que + ceux listés plus haut. La confusion entre les deux notions est une erreur + propagée du monde Macintosh et vous seriez avisé de ne pas les suivre sur + ce point.</para> + <para>Il y a deux commandes essentielles à la mise en place d'alias IP sur + FreeBSD (et sur tous les autres systèmes Unix que j'aie jamais utilisés), + ce sont <command>ifconfig</command> et <command>route</command>. + L'utilisation correcte de ces commandes est décrite ci-dessous. Pour + connaître toutes les subtilités de leur emploi, reportez-vous aux pages de + manuel correspondantes. Il y a deux autres commandes utiles pour vérifier + que tout fonctionne comme il se doit et pour mettre les choses au point + si ce n'est pas le cas. <command>netstat</command> vous permet de + consulter la table de routage du noyau (entre autres choses utiles), et + ping est un appréciable petit outil pour tester l'accès à votre nouvel + alias (comme à toute autre adresse IP).</para> + <important> + <para>Vous <emphasis>devez</emphasis> être en session sous le compte + super-utilisateur <username>root</username> pour pouvoir exécuter la + plupart des commandes décrites dans ce qui suit.</para> + </important> + </sect1> + <sect1> + <title>Utiliser <command>ifconfig</command></title> + <para><citerefentry><refentrytitle>ifconfig</refentrytitle></citerefentry> + sert à configuer les différentes caractéristiques d'une interface réseau + (adresse, protocole, masque de réseau, etc.). + <citerefentry><refentrytitle>ifconfig</refentrytitle></citerefentry> nous + servira ici à ajouter (et parfois à supprimer) les adresses des alias des + interfaces.</para> + <para>Dans l'exemple ci-dessous, nous supposerons que notre machine n'a + qu'une seule interface Ethernet 3Com 3C509 (<devicename>ep0</devicename>) + d'adresse <hostid role="ipaddr">192.168.57.82</hostid> avec comme masque + de sous-réseau <hostid role="netmask">255.255.255.0</hostid>, en plus + de l'interface “en boucle” standard + <hostid role="ipaddr">127.0.0.1</hostid>. Vous devrez bien sûr remplacer + ces valeurs par l'adresse et le masque de sous-réseau de votre(vos) + interface(s). L'adresse et le masque de sous-réseau de l'interface + “en boucle” sont les mêmes sur toutes les machines.</para> + <para>Pour ajouter un alias à <devicename>ep0</devicename>, nous passons + simplement une commande du style:</para> + <informalexample> +<screen>&prompt.root; <userinput>ifconfig ep0 inet 192.168.57.10 netmask 255.255.255.255 alias</userinput></screen> + </informalexample> + <para>Ce qui dit à FreeBSD que nous définissons une adresse IP + (<literal>inet</literal>) pour la carte 3Com + (<devicename>ep0</devicename>) avec comme adresse + <hostid role="ipaddr">192.168.57.10</hostid>, comme masque de + sous-réseau (<literal>netmask</literal>) + <hostid role="netmask">255.255.255.255</hostid> (i.e., tous + les bits à 1) pour éviter que le système d'exploitation ne proteste qu'il + y a déjà une adresse affectée à cette interface, et que c'est un alias + pour cette interface (<literal>alias</literal>).</para> + <para>Vous pouvez aussi omettre le masque de sous-réseau (ou lui donner une + autre valeur). Jusqu'à FreeBSD 2.1.0 compris, il y a néanmoins un bogue + qui fait que les commandes <command>ifconfig alias</command> échouent à + la première tentative, mais réussissent à la seconde, si vous n'indiquez + pas <hostid role="netmask">255.255.255.255</hostid> comme masque de + sous-réseau. Si vous ne donnez pas ce masque de sous-réseau de + <hostid role="netmask">255.255.255.255</hostid>, vous devrez aussi ajouter + une route manuellement, comme décrit ci-dessous.</para> + <para>Pour supprimer l'alias, nous exécutons une commande très + similaire:</para> + <informalexample> +<screen>&prompt.root; <userinput>ifconfig ep0 inet 192.168.57.10 -alias</userinput></screen> + </informalexample> + <para>Il n'y a pas besoin de paramètres supplémentaires, tels que le masque + de sous-réseau, parce que l'alias est entièrement défini par l'adresse IP, + de sorte que FreeBSD peut supprimer toutes les ressources associées en se + basant sur cette adresse.</para> + </sect1> + <sect1> + <title>Utiliser <command>route</command></title> + <para><citerefentry><refentrytitle>route</refentrytitle></citerefentry> sert + à modifier à la main la table de routage du noyau. Pour nos besoins, une + fois que nous avons donné à FreeBSD l'alias pour l'interface, nous devons + définir une route IP vers cet alias. Si vous avez précisé le masque de + sous-réseau de <hostid role="netmask">255.255.255.255</hostid> avec la + commande précédente, vous pouvez vous dispenser de cette étape.</para> + <para>Pour ajouter une route vers notre nouvelle interface, nous + exécutons:</para> + <informalexample> +<screen>&prompt.root; <userinput>route add -host 192.168.57.10 127.0.0.1 0</userinput></screen> + </informalexample> + <para>Cela dit à FreeBSD que pour arriver à la machine + <hostid role="ipaddr">192.168.57.10</hostid>, les paquets doivent être + envoyés sur l'interface “en boucle” + (<hostid role="ipaddr">127.0.0.1</hostid> aussi appelée + <hostid role="hostname">localhost</hostid> et que la distance (décompte + de noeuds intermédiaires) est de <literal>0</literal>, ce qui signifie + que c'est la machine locale.</para> + <para>Pour supprimer cette route, nous exécutons:</para> + <informalexample> +<screen>&prompt.root; <userinput>route delete -host 192.168.57.10</userinput></screen> + </informalexample> + <para>De nouveau, comme la route est entièrement définie par les paramètres + indiqués, nous pouvons laisser de côté les autres données telles que + le masque de sous-réseau et la distance. Pour des informations complètes + sur la commande + <citerefentry><refentrytitle>route</refentrytitle></citerefentry>, + voyez les pages de manuel.</para> + </sect1> + <sect1> + <title>Tester notre travail</title> + <para>Maintenant que nous avons (espérons-le) un alias défini et accessible, + nous devons vérifier qu'il fonctionne correctement. Nous examinerons + d'abord la table de routage du noyau, pour vérifier que la route vers + l'alias est bien présente, puis nous utiliserons + <citerefentry><refentrytitle>ping</refentrytitle></citerefentry> pour + nous assurer que des paquets peuvent l'atteindre.</para> + <para>Pour voir la table de routage du noyau, sous forme numérique, + tapons:</para> + <informalexample> +<screen>&prompt.user; <userinput>netstat -nr</userinput></screen> + </informalexample> + <para>Dans notre exemple, voici à quoi ressemblerait le résultat:</para> + <programlisting> +Routing tables + +Internet: +Destination Gateway Flags Refs Use Netif Expire +default 192.168.57.1 UGSc 4 964 ep0 +127.0.0.1 127.0.0.1 UH 1 39 lo0 +192.168.57 link#2 UC 0 0 +192.168.57.10/32 link#2 UC 0 0 +192.168.57.82 127.0.0.1 UGHS 0 0 lo0 +224/4 link#2 UCS 0 0 + </programlisting> + <para>Nous y voyons la route par défaut, la route vers l'interface + “en boucle”, la route vers notre réseau local et une curieuse + route vers notre alias. Le <literal>/32</literal> qui suit l'adresse de + l'alias donne la longueur du masque de sous-réseau (le nombre de 1, en + partant de la gauche). Comme nous avons utilisé un masque de sous-réseau + de <hostid role="netmask">255.255.255.255</hostid>, la longueur de + celui-ci (le nombre de 1) est de 32.</para> + <para>Maintenant que nous avons vérifié que la route est bien dans la table + de routage du noyau, nous pouvons effectuer un contrôle rapide pour nous + assurer que cette route fonctionne bien. Exécutons une commande + <citerefentry><refentrytitle>ping</refentrytitle></citerefentry> comme + ci-dessous:</para> + <informalexample> +<screen>&prompt.user; <userinput>ping 192.168.57.10</userinput></screen> + </informalexample> + <para>Si tout va bien, voici ce que nous verrions:</para> + <programlisting> +PING 192.168.57.10 (192.168.57.10): 56 data bytes +64 bytes from 192.168.57.10: icmp_seq=0 ttl=255 time=0.313 ms +64 bytes from 192.168.57.10: icmp_seq=1 ttl=255 time=0.197 ms +64 bytes from 192.168.57.10: icmp_seq=2 ttl=255 time=0.190 ms + </programlisting> + <para>Appuyons simplement sur + <keycombo><keycap>Ctrl</keycap><keycap>C</keycap></keycombo> pour arrêter + <citerefentry><refentrytitle>ping</refentrytitle></citerefentry> si tout + paraît satisfaisant. Il nous “crachera” alors quelques + statistiques, que nous pouvons normalement ignorer. S'il n'y a pas de + retour ou s'il y a des messages d'erreur, quelque chose ne va pas. + Reprenez tout du début et lisez les pages de manuel (non, vraiment, + <emphasis>allez lire les pages de manuel</emphasis>), et, finalement, + posez vos questions sur la &a.questions;.</para> + </sect1> + <sect1> + <title>Tout mettre en place</title> + <para>Maintenant que nous avons compris comment utiliser les commandes + <citerefentry><refentrytitle>ifconfig</refentrytitle></citerefentry> et + <citerefentry><refentrytitle>route</refentrytitle></citerefentry> pour + ajouter et supprimer des alias IP, faisons en sorte que la machine + exécute les commandes voulues au démarrage de façon à ce que l'alias soit + toujours actif.</para> + <para>Vers la fin de notre fichier <filename>/etc/rc.local</filename>, nous + ajouterons la ligne:</para> + <programlisting> +ifconfig ep0 inet 192.168.57.10 netmask 255.255.255.255 alias + </programlisting> + <para>Si nous utilisons un autre masque de sous-réseau que + <hostid role="netmask">255.255.255.255</hostid>, nous devrons aussi + utiliser la commande + <citerefentry><refentrytitle>route</refentrytitle></citerefentry> comme + expliqué plus haut. Il est possible d'ajouter de cette façon autant + d'alias que l'on veut (en supposant que nous disposons de suffisamment + d'adresses allouées). Il suffit de mettre plusieurs commandes comme + la précédente dans <filename>/etc/rc.local</filename>, avec les adresses + appropriées. Il est même possible de définir comme alias des adresses + d'un autre réseau IP, si ce réseau est aussi routé sur nous. C'est une + situation différente de celle d'une machine avec plusieurs interfaces + <emphasis>physiques</emphasis> qui doivent <emphasis>toujours</emphasis> + avoir des adresses sur des réseaux IP différents.</para> + <para>Il y a un certains nombre de points à connaître lorsque l'on utilise + un grand nombre d'alias (plus de ~10), que je citerai.</para> + <para>Tout d'abord, il y a un bogue dans toutes les distributions de + <application>bind</application> (le serveur DNS + <application>named</application> fait partie de + <application>BIND</application>) qui empêche le démarrage correct de + <application>named</application> lorsqu'il y a plus de 64 alias sur + une interface. Il n'y a pas de palliatif particulièrement simple, je ne + les mentionnerai donc pas ici.</para> + <para>En second lieu, pour éviter de truffer votre fichier + <filename>/etc/rc.local</filename> de quantité + d'<citerefentry><refentrytitle>ifconfig</refentrytitle></citerefentry>, je + vous suggère d'utiliser un fichier à part dans <filename>/etc</filename> + pour les y mettre. Créez par exemple un fichier + <filename>ifconfig.ep0</filename> et mettez-y tous les + <literal>ifconfig alias</literal>. Puis dans + <filename>/etc/rc.local</filename>, ajoutez les lignes suivantes:</para> + <programlisting> +if [ -x /sbin/ifconfig ]; then + echo -n 'Adding local ifconfigs ' + . /etc/ifconfig.ep0 + echo ' done.' +fi + </programlisting> + <para>Ce fragment de procédure provient d'un fichier + <filename>/etc/rc.local</filename> fourni par Neil Fowler Wright + <email>neil@corpex.com</email>. Le bricoleur trouvera moyen d'y mettre + des boucles s'il y a plusieurs interfaces dont les alias sont définis + dans différents fichiers <filename>ifconfig.*</filename>.</para> + </sect1> + <sect1> + <title>Où trouver plus d'aide</title> + <para>M'envoyer directement un courrier électronique n'est probablement pas + le meilleur moyen d'obtenir de l'aide sur les problèmes d'alias IP. Je + suis assez occupé la plupart du temps, et ai tendance à devenir assez + rouspéteur. Néanmoins, les participants de la &a.questions; sont + amicaux et secourables et répondront à vos questions plus rapidement que + je ne le ferais.</para> + <para>Cette page a grandement bénéficié des suggestions de Neil Fowler + Wright, Paul DuBois, Gabe Schuyler, et de Brodie le chat.</para> + </sect1> +</article> diff --git a/fr_FR.ISO_8859-1/articles/make-world/Makefile b/fr_FR.ISO_8859-1/articles/make-world/Makefile new file mode 100644 index 0000000000..72c1d9b8c9 --- /dev/null +++ b/fr_FR.ISO_8859-1/articles/make-world/Makefile @@ -0,0 +1,20 @@ +# +# The FreeBSD Documentation Project +# The FreeBSD French Documentation Project +# +# $FreeBSD$ +# Original revision: 1.4 +# + +DOC?= article + +FORMATS?= html + +INSTALL_COMPRESSED?=gz +INSTALL_ONLY_COMPRESSED?= + +SRCS= article.sgml + +DOC_PREFIX?= ${.CURDIR}/../../.. + +.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO_8859-1/articles/make-world/article.sgml b/fr_FR.ISO_8859-1/articles/make-world/article.sgml new file mode 100755 index 0000000000..dd12d95e46 --- /dev/null +++ b/fr_FR.ISO_8859-1/articles/make-world/article.sgml @@ -0,0 +1,1376 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: 1.39 +--> + +<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ +<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man; +<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls; +<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract; +<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader; +<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators; + +<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors; +<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists; + <!ENTITY rel.current CDATA "3.2"> +]> + +<article lang="fr"> + <artheader> + <title>Refaire votre monde (avec “make world”)</title> + <authorgroup> + <author> + <firstname/Nik/ + <surname/Clayton/ + <affiliation> + <address><email/Nik.Clayton@nothing-going-on.demon.co.uk/</address> + </affiliation> + </author> + </authorgroup> + <pubdate>10 Juillet 1997</pubdate> + + <abstract> + <para>Ce document présuppose que vous ayez installé une version du code + source de FreeBSD dans le répertoire <filename>/usr/src</filename>. + Ce peut être la dernière version de la branche en cours de + développement -current, à moins que vous ne restiez simplement à niveau + sur la branche -stable. Vous pouvez avoir téléchargé l'instantané le plus + récent, ou bien rester à jour en utilisant les mécanismes fournis + par CVSup ou CTM.</para> + + <para>Dans les deux cas, vous diposez du code source et voulez maintenant + mettre à jour votre système.</para> + + <para>Il y a un certain nombre d'étapes à effectuer pour y arriver, + et quelques pièges à éviter en cours de route. Ce document vous + guide pas à pas à chacune de ces étapes.</para> + + <para>Il existe aussi des <link linkend="translations">Traductions</link> + de ce document dans d'autres langues.</para> + &trans.a.haby; + </abstract> +</artheader> + +<sect1> + <title>Avertissements préalables</title> + <note> + <title>Faites une sauvegarde</title> + + <para>Je n'insisterai jamais assez sur l'importance de faire un sauvegarde + de votre système <emphasis>avant</emphasis> toute autre chose. Bien qu'il + soit facile de “refaire le monde” + (N.d.T.: recompiler FreeBSD) - si + vous suivez ces instructions, vous ferez forcément des erreurs à un moment + ou à un autre, sans compter les erreurs des autres dans l'arborescence des + sources qui empêcheraient votre système de redémarrer.</para> + + <para>Assurez-vous que vous avez bien fait une sauvegarde. Ayez une + disquette de maintenance à portée de la main. Je n'ai jamais eu à les + utiliser, et, je touche du bois, espère ne jamais devoir m'en servir, + mais prudence est mère de sûreté.</para> + </note> + + <note> + <title>Abonnez-vous à la bonne liste de diffusion</title> + + <para>Les branches -stable et -current du code de FreeBSD sont, par nature, + <emphasis>en développement</emphasis>. Les gens qui participent au projet + FreeBSD sont humains, et des erreurs se produisent parfois.</para> + + <para>Ces erreurs sont parfois bénignes. Votre système affiche simplement + un nouveau message d'avertissement. Elles peuvent aussi être + catastrophiques, et empêcher votre sytème de redémarrer, détruire vos + systèmes de fichiers (ou pire).</para> + + <para>Quand de tels problèmes se produisent, un avertissement + “heads up” est posté sur la liste de diffusion appropriée, + décrivant le problème et les machines concernées. Un message + “all clear” est diffusé quand le problème est + résolu.</Para> + + <para>Si vous restez à niveau sur -stable ou -current et ne lisez pas + <email>FreeBSD-stable@FreeBSD.ORG</email> ou + <email>FreeBSD-current@FreeBSD.ORG</email>, vous allez au devant + d'ennuis.</para> + </note> + + <important> + <para>S'il vous plaît, ne me posez pas de questions que vous devriez poster + sur les listes -questions, -current, ou -stable. Je n'ai ni le temps + ni l'environnement nécessaire pour diagnostiquer des problèmes + spécifiques, et n'ai probablement pas votre réponse. Les membres de + ces listes de diffusion sont nombreux, expérimentés et serviables, aussi, + posez leur vos questions. Adressez-moi cependant vos commentaires, + réponses et corrections<footnote><para>En anglais !</para></footnote>. + Si vous vous adressez à moi au sujet de ce + document, <emphasis>merci</emphasis> de m'indiquer le numéro de version + qui se trouve en haut de cette page, que je sache à quelle version vous + faites référence.</para> + + <para>Ce document est un effort collectif. De nombreuses personnes y ont + participé, elles sont mentionnées dans les + <link linkend="contributors">Contributions</link> + en fin de document.</para> + + <para>Copyright (c) 1997, 1998 Nik Clayton, All rights reserved.</para> + + <para>Vous pouvez redistribuer et utiliser ce document sous forme + de source (SGML DocBook) ou 'compilé' (HTML, PDF, PostScript, RTF, + etc..) avec ou sans modifications à la condition suivante:</para> + + <itemizedlist> + <listitem> + <para>Le document redistribué doit inclure la notice de copyright + ci-dessus et l'avertissement ci-dessous, avant le corps du + document.</para> + </listitem> + </itemizedlist> + + <para>THIS TUTORIAL IS PROVIDED BY NIK CLAYTON “AS IS” AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + ANY WAY OUT OF THE USE OF THIS TUTORIAL, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE.</para> + + <para>CE DOCUMENT EST FOURNI PAR NIK CLAYTON “TEL QUEL” ET + AUCUNE GARANTIE EXPRESSE OU IMPLICITE, Y COMPRIS, MAIS NON LIMITEE, + GARANTIES IMPLICITES DE COMMERCIABILITE ET D'ADEQUATION A UN BUT + PARTICULIER N'EST DONNEE. EN AUCUN CAS NIK CLAYTON NE + SAURAIT ETRE TENU RESPONSABLE + DES DOMMAGES DIRECTS, INDIRECTS, ACCIDENTELS, SPECIAUX OU CONSEQUENTS + (Y COMPRIS, MAIS SANS LIMITATION, LA FOURNITURE DE BIENS ET SERVICES + ANNEXES; DEFAUT D'UTILISABILITE, PERTE DE DONNEES OU DE PROFITS; OU + INTERRUPTION DE TRAVAIL) QUELLE QU'EN SOIT LA CAUSE ET SELON TOUTE + DEFINITION DE RESPONSABILITE, SOIT PAR CONTRAT, RESPONSABILITE STRICTE, + OU PREJUDICE (Y COMPRIS NEGLIGENCE OU AUTRES) IMPUTABLE D'UNE FACON + OU D'UNE AUTRE A L'UTILISATION DE CE DOCUMENT, MEME APRES AVOIR ETE AVISE + DE LA POSSIBILITE D'UN TEL DOMMAGE.</para> + </important> +</sect1> + + <sect1> + <title>Examinez <filename>/etc/make.conf</filename></title> + + <para>Reportez-vous au fichier <filename>/etc/make.conf</filename>. + Il contient les valeurs par défaut utilisées par la commande + <command/make/, qui sera employée pour la recompilation. Elles sont aussi + utilisées toutes les fois que vous invoquez <command/make/, il est donc + bon de vous assurer qu'elles comportent les valeurs appropriées à votre + système.</para> + + <para>Tout y est, par défaut, en commentaire. Activez les options qui + vous paraîssent utiles. Pour un utilisateur normal (qui ne développe + pas), il faut probalement utiliser les définitions de CFLAGS et + NOPROFILE.</para> + + <note> + <title/Version 2.1.7 et antérieures/ + + <para>Si votre machine dispose d'une unité de calcul en virgule + flottante (386DX, 486DX, Pentium et ultérieurs) vous pouvez aussi + activer l'option HAVE_FPU.</para> + + <para>Cette définition a disparu depuis la version 2.2.2 de + FreeBSD.</para> + </note> + + <para>Examinez les autres définitions (COPTFLAGS, NOPORTDOCS et ainsi de + suite) et décidez de celles qui vous conviennent.</para> + </sect1> + + <sect1> + <title>Mettez à jour le fichier <filename>/etc/group</filename></title> + + <para>Le répertoire <filename>/etc</filename> contient la plupart des + informations de configuration de votre système, ainsi que ses procédures + de démarrage. Certaines de ces procédures changent d'une version à l'autre + de FreeBSD.</para> + + <para>Certains fichiers de configuration sont aussi utilisés en permanence + par le système. En particulier, <filename>/etc/group</filename>.</para> + + <para>Il est arrivé que la phase d'installation de “make + world” ait besoin que certains utilisateurs et groupes existent. + Il y a de fortes chances qu'ils n'aient pas été définis avant la mise + à jour. C'est une source de problèmes.</para> + + <para>L'exemple le plus récent concerne l'ajout du groupe “ppp” + (renommé par la suite “network”). Les utilisateurs ont vu leur + mise à jour avorter à l'installation du sous-sytème + <filename>ppp</filename> sous un groupe inexistant (chez eux).</para> + + <para>La solution consiste à examiner le fichier + <filename>/usr/src/etc/group</filename> et à le comparer à votre propre + liste de groupes. S'il y a des groupes dans le nouveau fichier qui ne + sont pas dans votre fichier, copiez-les. De même, vous devez renommer + tout groupe de votre fichier <filename>/etc/group</filename> qui a le + même GID, mais un nom différent, qu'un groupe du fichier + <filename>/usr/src/etc/group</filename>.</para> + + <tip> + <para>Si vous êtes particulièrement paranoïaque, vous pouvez contrôler + votre système pour trouver les fichiers appartenant au groupe que vous + renommez ou supprimez. Une commande du type: + + <informalexample> + <screen><prompt/#/ <userinput>find / -group <replaceable>GID</replaceable> -print</userinput></screen> + </informalexample> + + vous donnera la liste des fichiers appartenant au groupe + <replaceable>GID</replaceable> + (qui peut être un nom de groupe ou un identifiant numérique).</para> + </tip> + </sect1> + + <sect1> + <title/Passez en mode mono-utilisateur/ + + <para>Il vaut mieux recompiler le système en mode mono-utilisateur. En + dehors du fait que cela ira un peu plus vite, la réinstallation va + modifier un grand nombre de fichiers systèmes importants, tous les + binaires de base, les bibliothèques, les fichiers inclus et ainsi de + suite. Les modifier quand le système est en service (en particulier + s'il y a des utilisateurs connectés à ce moment là), c'est aller au devant + de problèmes.</para> + + <para>Cela dit, si vous avez confiance en vous, vous pouvez vous en + passer.</para> + + <note> + <title>Version 2.2.5 et ultérieure</title> + + <para>Comme décrit plus bas, la version 2.2.5 et les suivantes de + FreeBSD séparent la recompilation et l'installation. Vous pouvez + dès lors <emphasis>compiler</emphasis> le nouveau système en mode + multi-utilisateurs et passer en mode mono-utilisateur juste pour + l'installer.</para> + </note> + + <para>En tant que super-utilisateur, vous pouvez passer la commande: + + <informalexample> +<screen><prompt/#/ <userinput/shutdown now/</screen> + </informalexample> + + sur un système en fonctionnement, pour passer en mode + mono-utilisateur.</para> + + <para>Ou bien, redémarrez le système, et, à l'invite de démarrage, entrez + l'indicateur <option>-s</option>. Le système redémarrera en mode + mono-utilisateur. A l'invite de l'interpréteur de commandes, exécutez: + + <informalexample> +<screen><prompt/#/ <userinput/fsck -p/ +<prompt/#/ <userinput>mount -u /</userinput> +<prompt/#/ <userinput/mount -a -t ufs/ +<prompt/#/ <userinput/swapon -a/</screen> + </informalexample> + + pour effectuer la vérification des systèmes de fichiers, remontez + <filename>/</filename> en mode lecture/écriture, et monter tous les + autres systèmes de fichiers UFS listés dans le fichier + <filename>/etc/fstab</filename>, puis activez la pagination.</para> + </sect1> + + <sect1> + <title>Effacez <filename>/usr/obj</filename></title> + + <para>Les composants du système reconstruit sont au fur et à mesure placés + dans les sous-répertoires de <filename>/usr/obj</filename> (par défaut). + Ces répertoires masquent ceux de <filename>/usr/src</filename>.</para> + + <para>Vous pouvez accélérer le travail de “make world”, + et peut-être vous éviter quelques maux de tête en supprimant aussi + le répertoire <filename>/usr/obj</filename>.</para> + + <para>Certains fichiers dans <filename>/usr/obj</filename> sont marqués + immuables (reportez-vous aux pages de manuel de + <command>chflags(1)</command> pour plus de détails). Il faut d'abord + supprimer cet indicateur.</para> + + <para><informalexample> +<screen><prompt/#/ <userinput>cd /usr/obj</userinput> +<prompt/#/ <userinput/chflags -R noschg */ +<prompt/#/ <userinput/rm -rf */</screen></informalexample></para> + </sect1> + + <sect1> + <title/Recompilez les sources et installez le nouveau système/ + + <sect2> + <title>Toutes versions</title> + + <para>Vous devez être dans le répertoire <filename>/usr/src</filename>, + donc: + + <informalexample> + <screen><prompt/#/ <userinput>cd /usr/src</userinput></screen> + </informalexample> + + (à moins, bien sûr, que votre code source soit ailleurs, auquel cas vous + devez aller dans le répertoire correspondant).</para> + + <para>Pour recompiler le système, vous utilisez la commande <citerefentry> + <refentrytitle>make</refentrytitle> + <manvolnum>1</manvolnum> + </citerefentry>. Cette commande lit ses instructions dans le fichier + <filename>Makefile</filename>, qui décrit comment reconstruire les + modules qui constituent FreeBSD, dans quel ordre, + et ainsi de suite.</para> + + <para>Le format général de la commande que vous taperez sera: + + <informalexample> + <screen><prompt/#/ <userinput>make <option>-<replaceable/x/</option> <option>-D<replaceable>VARIABLE</replaceable></option> <replaceable>cible</replaceable></userinput></screen> + </informalexample> + </para> + + <para>Dans cet exemple, <option>-<replaceable>x</replaceable></option> est + une option que vous donnez à <citerefentry> + <refentrytitle>make</refentrytitle> + <manvolnum>1</manvolnum> + </citerefentry>. Reportez-vous aux pages de manuel pour connaître les + options disponibles.</para> + + <para><option>-D<replaceable>VARIABLE</replaceable></option> transmet une + variable au fichier <filename>Makefile</filename>. Le comportement de + <filename>Makefile</filename> est défini par ces variables. Ce sont les + mêmes variables que l'on trouve dans + <filename>/etc/make.conf</filename>, et c'est un autre moyen de les + positionner.</para> + + <para>Par exemple: + + <informalexample> + <screen><prompt/#/ <userinput>make -DNOPROFILE=true <replaceable>cible</replaceable></userinput></screen> + </informalexample> + + est une autre manière de dire qu'il ne faut pas compiler les + bibliothèques profilées et correspond aux lignes: + + <programlisting>NOPROFILE= true +# Avoid compiling profiled librairies +# Ne pas compiler les bibliothèques profilées + </programlisting> + + du fichier <filename>/etc/make.conf</filename>.</para> + + <para><replaceable>cible</replaceable> dit à <citerefentry> + <refentrytitle>make</refentrytitle> + <manvolnum>1</manvolnum> + </citerefentry> ce que vous voulez faire. Chaque + <filename>Makefile</filename> définit un certains nombre de + “cibles” différentes, et votre choix de cibles détermine + ce qui se passe.</para> + + <para>Il y a des cibles définies dans le fichier + <filename>Makefile</filename> que + vous n'avez pas à employer. Ce sont des étapes intermédiaires utilisées + par le processus de recompilation pour décomposer les étapes en + sous-étapes.</para> + + <para>La plupart du temps, vous n'aurez pas besoin de donner d'options à + <citerefentry> + <refentrytitle>make</refentrytitle> + <manvolnum>1</manvolnum> + </citerefentry>, et votre commande sera simplement: + + <informalexample> + <screen><prompt/#/ <userinput>make <replaceable>cible</replaceable></userinput></screen> + </informalexample> + </para> + </sect2> + + <sect2> + <title>Enregistrez le résultat</title> + + <para>C'est une bonne idée d'enregistrer le résultat de + <citerefentry> + <refentrytitle>make</refentrytitle> + <manvolnum>1</manvolnum> + </citerefentry> dans un ficher. Si quelque chose se passe mal, vous + aurez une trace des messages d'erreur, et la liste complète de ce qui + a été fait. Même si cela ne vous aide pas à diagnostiquer ce qui n'a pas + marché, cela peut aider les autres si vous soumettez votre problème sur + une des listes de diffusion de FreeBSD.</para> + + <para>La meilleure façon de faire cela est d'utiliser la commande + <citerefentry><refentrytitle>script</refentrytitle> + <manvolnum>1</manvolnum> + </citerefentry>, avec en paramètre le nom du fichier où enregistrer + les résultats. Vous devez faire cela juste avant de recompiler le + système, et taper <userinput>exit</userinput> une fois que c'est + terminé.</para> + + <informalexample> + <screen><prompt/#/ <userinput>script /var/tmp/mw.out</userinput> +Script started, output file is /var/tmp/mw.out +<prompt/#/ <userinput/make world/ +<emphasis>… compile, compile, compile …</emphasis> +<prompt/#/ <userinput/exit/ +Script done, … + </screen> + </informalexample> + + <para>Si vous le faites, <emphasis>n'enregistrez pas</emphasis> les + résultats dans <filename>/tmp</filename>. Ce répertoire peut être vidé + au prochain redémarrage du sytème. Il vaut mieux les mettre dans + <filename>/var/tmp</filename> + (comme dans l'exemple précédent) ou dans le répertoire utilisateur de + root.</para> + </sect2> + + <sect2> + <title>Version 2.2.2 et antérieure</title> + + <para><filename>/usr/src/Makefile</filename> contient la cible + “world”, qui recompile tout le système et + l'installe.</para> + + <para>Utilisez donc: + <informalexample> + <screen><prompt/#/ <userinput>make world</userinput></screen> + </informalexample> + </para> + </sect2> + + <sect2> + <title>Version 2.2.5 et ultérieure</title> + + <para>A partir de la version 2.2.5 de FreeBSD (de fait, c'est la première + version à avoir été créée sur la branche -current, puis rapatriée dans + la branche -stable entre les versions 2.2.2 et 2.2.5) la cible + “world” a été décomposée en deux: “buildworld” + et “installworld”.</para> + + <para>Comme leurs noms l'indiquent, “buildworld” reconstruit + la nouvelle arborescence dans <filename>/usr/obj</filename>, et + “installworld” l'installe sur la + machine.</para> + + <para>C'est très utile pour deux raisons. Tout d'abord, vous pouvez + recompiler en toute sûreté, sans toucher aux composants du système + actuel. Le processus est “autonome”. Vous pouvez donc + exécuter “buildworld” sur une machine en mode + multi-utilisateurs + sans redouter d'effets fâcheux. Je vous recommande néanmoins de toujours + exécuter l'étape “installworld” en mode + mono-utilisateur.</para> + + <para>En second lieu, cela vous permet d'utiliser des systèmes de fichiers + montés par NFS pour mettre à jour les autres machines de votre réseau. + Si vous avez trois machines, A, B, et C que vous voulez mettre à jour, + exécutez <command>make buildworld</command> et + <command>make installworld</command> sur A. B et C doivent alors monter + par NFS <filename>/usr/src</filename> et <filename>/usr/obj</filename> + depuis A, et vous pouvez alors exécuter + <command>make installworld</command> pour + installer le système recompilé sur B et C.</para> + + <para>La cible “world” existe toujours + et vous pouvez l'utiliser + exactement comme avec la version 2.2.2. + <command>make world</command> exécute + <command>make buildworld</command> suivi de <command>make + installworld</command>.</para> + + <note> + <para>Si vous utilisez séparement <command>make buildworld</command> et + <command>make installworld</command>, vous devez donner à chaque fois + les mêmes paramètres à <citerefentry> + <refentrytitle>make</refentrytitle> + <manvolnum>1</manvolnum> + </citerefentry>.</para> + + <para>Par exemple, si vous exécutez: + + <informalexample> + <screen><prompt/#/ <userinput>make -DNOPROFILE=true buildworld</userinput></screen> + </informalexample> + + vous devrez ensuite installer les résultats avec: + + <informalexample> + <screen><prompt/#/ <userinput>make -DNOPROFILE=true installworld</userinput></screen> + </informalexample> + + sinon il essayera d'installer les bibliothèques profilées + qui n'ont pas été recompilées à l'étape + <command>make buildworld</command>.</para> + </note> + </sect2> + + <sect2> + <title>-current et ultérieure</title> + + <para>Si vous êtes sur la branche -current, vous pouvez aussi donner + l'option <option>-j</option> à <command>make</command>. Cela permet à + <command>make</command> d'exécuter plusieurs programmes + simultanément.</para> + + <para>C'est particulièrement utile sur une machine avec plusieurs + processeurs. Néanmoins, comme la compilation est plus gourmande en + Entrées/Sorties qu'en CPU, c'est aussi + utile sur une machine mono-processeur.</para> + + <para>Typiquement, sur une machine mono-processeur, vous exécuteriez: + + <informalexample> + <screen><prompt/#/ <userinput>make -j4 <replaceable>cible</replaceable></userinput></screen> + </informalexample> + + pour autoriser + <citerefentry> + <refentrytitle>make</refentrytitle> + <manvolnum>1</manvolnum> + </citerefentry> à exécuter 4 programmes simultanément. + Les constatations empiriques postées sur les listes de diffusion + montrent que c'est en général ce qui apporte le plus de gain en + performances.</para> + + <para>Si vous avez une machine multi-processeurs et que vous avez + configuré un noyau SMP, essayez des valeurs entre 6 et 10 et voyez quel + bénéfice vous en tirez.</para> + + <para>N'oubliez pas que c'est toujours expérimental (au moment où j'écris + ceci), et que des modifications de l'arborescence des sources rendent + parfois cette possibilité inutilisable. Si vous n'arrivez pas à recompiler + avec ce paramètre, essayez sans avant de signaler votre problème.</para> + </sect2> + + <sect2> + <title/Durée/ + + <para>En supposant que tout ce passe bien, il vous faudra attendre + entre une heure et demie et une demi-journée.</para> + + <para>En règle générale, un P6 200MHz avec plus de 32MB de RAM + et des disques SCSI corrects exécutera <command>make world</command> + en environ une heure et demie. Un P133 32MB prendra 5 à 6 + heures. Revoyez ces chiffres à la baisse si vos machines sont + plus lentes…</para> + </sect2> + </sect1> + + <sect1> + <title>Mettez à jour <filename>/etc</filename></title> + + <para>Recompiler le système ne met pas à jour certains répertoires (en + particulier, <filename>/etc</filename>, <filename>/var</filename> et + <filename>/usr</filename>) pour y installer des fichiers de configuration + nouveaux ou modifiés. + Il vous faudra le faire à la main, à vue, et en utilisant à bon escient + la commande <command/diff/.</para> + + <para>Vous ne pouvez pas vous contenter de copier les fichiers de + <filename>/usr/src/etc</filename> dans <filename>/etc</filename> pour + que cela marche. Certains de ces fichiers doivent d'abord être + “installés”. + En effet le répertoire <filename>/usr/src/etc</filename> + <emphasis>n'est pas</emphasis> une simple copie de ce que devrait + contenir votre répertoire<filename>/etc</filename>. De plus, il y a + des fichiers qui doivent être dans <filename>/etc</filename> et ne + sont pas dans <filename>/usr/src/etc</filename>.</para> + + <para>La façon la plus simple de procéder est d'installer les fichiers + dans un nouveau répertoire, puis de passer en revue les différences.</para> + + <note> + <title>Sauvegardez vos fichiers actuels dans + <filename>/etc</filename></title> + + <para>Bien qu'en principe rien ne sera modifié automatiquement dans ce + répertoire, prudence est mère de sûreté. Copiez donc votre répertoire + <filename>/etc</filename> dans un endroit sûr. + Quelque chose du genre:</para> + + <informalexample> + <screen><prompt/#/ <userinput>cp -Rp /etc /etc.old</userinput></screen> + </informalexample> + + <para>fera l'affaire (<option>-R</option> fait une copie récursive, + <option>-p</option> conserve la date, les autorisations des fichiers + et ainsi de suite).</para> + </note> + + <para>Vous devez créer un jeu de répertoires provisoires pour y installer + les fichiers de <filename>/etc</filename> et autres. En général, + je les mets dans <filename>/var/tmp/root</filename>; + il y a un certain nombre de sous-répertoires à créer. Pour ce faire, + exécutez: + + <informalexample> + <screen><prompt/#/ <userinput>mkdir /var/tmp/root</userinput> +<prompt/#/ <userinput>cd /usr/src/etc</userinput> +<prompt/#/ <userinput>make DESTDIR=/var/tmp/root distrib-dirs distribution</userinput></screen> + </informalexample> + + qui va créer l'arborescence nécessaire et y installera les fichiers. Un + grand nombre des sous-répertoires créés dans + <filename>/var/tmp/root</filename> seront vides et devront être + supprimés. La façon la plus simple de le faire est: + + <informalexample> + <screen><prompt/#/ <userinput>cd /var/tmp/root</userinput> +<prompt/#/ <userinput>find -d . -type d | /usr/bin/perl -lne \ + 'opendir(D,$_);@f=readdir(D);rmdir if $#f == 1;closedir(D);'</userinput></screen> + </informalexample> + + qui fait une recherche en profondeur, examine chaque répertoire, et s'il + ne contient que 2 fichiers (“1” n'est pas une faute de frappe + dans la procédure), i.e. “<filename>.</filename>” et + “<filename>..</filename>” supprime le répertoire.</para> + + <para><filename>/var/tmp/root</filename> contient maintenant tous les + fichiers à installer à l'endroit requis sous + <filename>/</filename>. Vous devez ensuite examiner chacun de ces + fichiers pour voir en quoi ils diffèrent de vos propres fichiers.</para> + + <para>Notez que certains des fichiers qui ont été installés dans + <filename>/var/tmp/root</filename> commencent par un “.” Au + moment où j'écris ceci, les seuls fichiers concernés sont les fichiers + d'initialisation des interpréteurs de commandes dans + <filename>/var/tmp/root/</filename> et + <filename>/var/tmp/root/root/</filename>, mais il pourrait y en + avoir d'autres + (cela dépend de quand vous lirez ces lignes). Assurez-vous d'utiliser + <command/ls -a/ pour ne pas les oublier.</para> + + <para>La manière la plus simple de procéder est d'utiliser la commande + <command/diff/ pour comparer deux fichiers.</para> + + <para>Par exemple: + + <informalexample> + <screen><prompt/#/ <userinput>diff /etc/shells /var/tmp/root/etc/shells</userinput></screen> + </informalexample> + + vous indiquera les différences entre votre fichier + <filename>/etc/shells</filename> et le nouveau fichier + <filename>/etc/shells</filename>. A partir de là, décidez si vous + allez reporter les modifications que vous y avez apportées ou si vous + allez simplement recopier le nouveau fichier.</para> + + <para><ulink url="http://www.nothing-going-on.demon.co.uk/FreeBSD/make-world/dircmp.pl"><filename>http://www.nothing-going-on.demon.co.uk/FreeBSD/make-world/dircmp.pl</filename></ulink> est une + petite procédure Perl (Perl 4.036, qui est installé par défaut à partir de + la version 2.0 de FreeBSD) qui compare les fichiers de deux répertoires + (<filename>/etc</filename> et + <filename>/var/tmp/root/etc</filename> par défaut) et liste les fichiers + absents ou différents dans les deux répertoires.</para> + + <tip> + <title>Donnez au nouveau répertoire + (<filename>/var/tmp/root</filename>) un nom qui inclue une date, pour + pouvoir facilement comparer différentes versions</title> + + <para>Si vous recompilez fréquemment votre système, vous devrez aussi + souvent mettre à jour <filename>/etc</filename>, ce qui peut devenir + une vrai corvée.</para> + + <para>Vous pouvez accélérer le processus en gardant une copie du dernier + jeu de fichiers reportés dans <filename>/etc</filename>. La + procédure suivante vous suggère comment faire.</para> + + <procedure> + <step> + <para>Recompilez le système comme d'habitude. Au moment de mettre à + jour <filename>/etc</filename> et les autres répertoires, donnez au + répertoire cible un nom basé sur la date du jour. Si vous faisiez + cela le 14 Février 1998, vous pouviez procéder comme suit:</para> + + <informalexample> + <screen><prompt/#/ <userinput>mkdir /var/tmp/root-980214</userinput> +<prompt/#/ <userinput>cd /usr/src/etc</userinput> +<prompt/#/ <userinput>make DESTDIR=/var/tmp/root-980214 \ + distrib-dirs distribution</userinput></screen> + </informalexample> + </step> + + <step> + <para>Reportez les modifications depuis ce répertoire comme décrit + plus haut.</para> + + <para><emphasis>Ne supprimez pas</emphasis> le répertoire + <filename>/var/tmp/root-980214</filename> quand vous aurez + terminé.</para> + </step> + + <step> + <para>Quand vous chargerez la version la plus récente des sources et + la recompilerez, faites de même. Vous aurez alors un nouveau + répertoire, + <filename>/var/tmp/root-980221</filename> par exemple + (si vous faites une mise à jour chaque semaine).</para> + </step> + + <step> + <para>Vous pouvez maintenant voir les modifications intervenues + d'une semaine à l'autre avec quelque chose comme: + + <informalexample> + <screen><prompt/#/ <userinput>cd /var/tmp</userinput> +<prompt/#/ <userinput>diff -r root-980214 root-980221</userinput></screen> + </informalexample> + + qui vous donnera les différences entre tous les fichiers des deux + répertoires.</para> + + <para>Typiquement, il y aura beaucoup moins de différences + qu'entre <filename>/var/tmp/root-980221/etc</filename> + et <filename>/etc</filename>. Comme il y a beaucoup moins de + différences, il est beaucoup plus facile de les reporter dans + le répertoire <filename>/etc</filename>.</para> + </step> + + <step> + <para>Vous pouvez maintenant supprimer le plus ancien des deux + répertoires <filename>/var/tmp/root-*</filename>: + + <informalexample> + <screen><prompt/#/ <userinput>rm -rf /var/tmp/root-980214</userinput></screen> + </informalexample> + </para> + </step> + + <step> + <para>Répétez l'opération chaque fois que vous devez reporter + des modifications dans <filename>/etc</filename>.</para> + </step> + </procedure> + + <para>Vous pouvez utiliser la commande <command>date(1)</command> pour + automatiser la génération des noms de répertoires. Par exemple: + + <informalexample> + <screen><prompt/#/ <userinput>mkdir /var/tmp/root-`date "+%y%m%d"`</userinput></screen> + </informalexample> + + crée un répertoire dont le nom dépend de l'année, du mois et + du jour.</para> + </tip> + </sect1> + + <sect1> + <title>Mettez à jour <filename>/dev</filename></title> + + <note> + <title>DEVFS</title> + + <para>Si vous utilisez DEVFS ce qui suit ne vous concerne probalement + pas.</para> + </note> + + <para>Pour des raisons de sécurité, cette mise à jour se fait en plusieurs + étapes.</para> + + <para>Copiez tout d'abord <filename>/var/tmp/root/dev/MAKEDEV</filename> + dans <filename>/dev</filename>. + + <informalexample> + <screen><prompt/#/ <userinput>cp /var/tmp/root/dev/MAKEDEV /dev</userinput></screen> + </informalexample></para> + + <para>Prenez maintenant un instantané de l'état de votre répertoire + <filename>/dev</filename>. Il doit indiquer + les propriétaires, les droits et les codes majeur et mineur de chaque + fichier spécial de périphérique, mais pas leur date de dernière mise à jour. + La façon la plus facile de procéder est d'utiliser + la commande <command>awk</command> pour éliminer les informations inutiles: + + <informalexample> + <screen><prompt/#/ <userinput>cd /dev</userinput> +<prompt/#/ <userinput>ls -l | awk '{print $1, $2, $3, $4, $5, $6, $NF}' > /var/tmp/dev.out</userinput></screen> + </informalexample></para> + + <para>Ensuite, recréez tous les fichiers spéciaux de périphériques:. + + <informalexample> + <screen><prompt/#/ <userinput/sh MAKEDEV all/</screen> + </informalexample></para> + + <para>Reprenez un instantané de l'état de votre répertoire, cette fois-ci + dans <filename>/var/tmp/dev2.out</filename>. Comparez maintenant ces deux + instantanés pour voir si certains fichiers spéciaux de périphériques + n'ont pas été recréés. Il ne devrait pas en manquer, mais prudence est + mère de sûreté. + + <informalexample> + <screen><prompt/#/ <userinput>diff /var/tmp/dev.out /var/tmp/dev2.out</userinput></screen> + </informalexample></para> + + <para>Il manquera peut-être des descripteurs de partitions, + il vous faudra alors exécuter des commandes du type : + + <informalexample> +<screen><prompt/#/ <userinput>sh MAKEDEV sd0s1</userinput> +</screen> + </informalexample> + + pour les recréer. Les détails dépendent de votre installation.</para> + </sect1> + + <sect1> + <title>Mettez à jour <filename>/stand</filename></title> + + <note> + <para>Cette étape n'est décrite que pour être exhaustif, elle peut être + omise sans danger.</para> + </note> + + <para>Pour être exhaustif, vous pouvez aussi mettre à jour les fichiers de + <filename>/stand</filename>. Ces fichiers sont des liens physiques sur + le programme <filename>/stand/sysinstall</filename>. L'édition de liens + de cet exécutable doit être statique, pour qu'on puisse l'utiliser sans + qu'aucun autre système de fichiers (et en particulier + <filename>/usr</filename>) ne soit monté.</para> + + <informalexample> + <screen><prompt/#/ <userinput>cd /usr/src/release/sysinstall</userinput> +<prompt/#/ <userinput>make all install</userinput></screen> + </informalexample> + + <note> + <title>Sources antérieurs au 2 Avril 1998</title> + + <para>Si votre code source date d'avant le 2 Avril 1998, ou que + la version de votre <filename>Makefile</filename> est inférieure à + 1.68 (pour FreeBSD-current et les systèmes 3.x) ou à 1.48.2.21 + (pour les systèmes 2.2.x), vous devrez ajouter l'option + <userinput>NOSHARED=yes</userinput> comme suit:</para> + + <informalexample> + <screen><prompt/#/ <userinput>make NOSHARED=yes all install</userinput></screen> + </informalexample> + + </note> + </sect1> + + <sect1> + <title/Compilez et installez un nouvau noyau/ + + <para>Pour tirer pleinement parti de votre nouveau système, vous devez + recompiler le noyau. C'est pratiquement indispensable, parce que des + structures de données peuvent avoir changé, et des programmes + comme <command/ps/ et <command/top/ ne marcheront pas + tant que le système et le noyau ne seront pas au même niveau + de version.</para> + + <para>Suivez les instructions du "manuel" pour compiler un nouveau + noyau. Si vous avez déjà recompilé un noyau personnalisé + examinez en détail le fichier de configuration + <filename/LINT/ pour voir s'il y a de nouvelles options dont vous + pourriez tirer parti.</para> + + <para>Une version précédente de ce document suggérait de redémarrer + le système avant de recompiler le noyau. C'est un erreur parce + que :</para> + + <itemizedlist> + <listitem><para>Des commandes comme <command/ps/, <command/ifconfig/ and + <command/sysctl/ peuvent ne plus fonctionner. Dans ce cas, votre + machine ne peut plus se connecter au réseau.</para></listitem> + + <listitem><para>De même, des utilitaires essentiels comme + <command/mount/ peuvent aussi être inutilisables, + auquel cas <filename>/</filename>, <filename>/usr</filename> et ainsi + de suite, ne peuvent plus être montés. Il y a peu de chances + que cela arrive si vous êtes sur la branche -stable, mais c'est plus + probable sur la branche -current après des modifications + importantes.</para></listitem> + + <listitem> + <para>Les LKMs ("Loadable Kernel Modules" - modules du noyau à chargement + dynamique) reconstruits en même temps que “world” + peuvent "planter" un noyau plus ancien.</para> + </listitem> + </itemizedlist> + + <para>Pour toutes ces raisons, il vaut mieux recompiler et installer un + nouveau noyau avant de redémarrer.</para> + + <para>Vous devez recompiler le noyau après avoir terminé + <userinput>make world</userinput> (ou <userinput>make + installworld</userinput>). Si vous ne le faites pas (peut-être + voulez-vous vous assurer que le noyau compile avant de mettre à + jour le système), vous pourriez avoir des problèmes. Cela parce que + votre commande <command>config</command> n'est pas à niveau + avec les sources du noyau.</para> + + <para>Dans ce cas, exécutez: + + <informalexample> + <screen><prompt/#/ <userinput>/usr/obj/usr/src/usr.sbin/config <replaceable>NOM_DU_NOYAU</replaceable></userinput></screen> + </informalexample> + + pour recompiler le noyau avec la nouvelle version de + <command>config</command>. Cela ne marchera peut-être pas à tous les + coups. Il est recommandé d'en finir avec + <userinput>make world</userinput> (ou + <userinput>make installworld</userinput>) avant de compiler un nouveau + noyau.</para> + </sect1> + + <sect1> + <title/Redémarrez/ + + <para>Vous en avez fini. Après avoir vérifié que tout semble être en + place, vous pouvez maintenant redémarrez votre système. Un simple + <citerefentry> + <refentrytitle>fastboot</refentrytitle> + <manvolnum>8</manvolnum> + </citerefentry> devrait suffire.</para> + + <informalexample> + <screen><prompt/#/ <userinput>fastboot</userinput></screen> + </informalexample> + </sect1> + + <sect1> + <title>C'est fini</title> + + <para>Vous devriez maintenant avoir mis à jour avec succès votre système + FreeBSD. + Félicitations.</para> + + <para>Vous aurez peut-être de petits problèmes si des détails vous + ont échappés. Par + exemple, il m'est arrivé d'effacer le fichier + <filename>/etc/magic</filename> au moment de la mise à jour de + <filename>/etc</filename>, de ce fait, la commande + <command>file</command> ne marchait plus. Un petit moment de réflexion + et j'ai trouvé que: + + <informalexample> + <screen><prompt/#/ <userinput>cd /usr/src/usr.bin/file</userinput> +<prompt/#/ <userinput/make all install/</screen> + </informalexample> + + suffisait à régler ce problème.</para> + </sect1> + + <sect1> + <title/Questions?/ + + <sect2> + <title/Dois-je refaire le monde à chaque évolution?/ + + <para>Il n'y a pas de réponse toute faite à cette question, tout dépend + de la nature des évolutions. Je viens juste, par exemple, d'exécuter + CVSup, et les fichiers suivants ont été modifiés depuis ma dernière + recompilation:</para> + + <informalexample> +<screen><filename>src/games/cribbage/instr.c</filename> +<filename>src/games/sail/pl_main.c</filename> +<filename>src/release/sysinstall/config.c</filename> +<filename>src/release/sysinstall/media.c</filename> +<filename>src/share/mk/bsd.port.mk</filename></screen> + </informalexample> + + <para>Il n'y a pas là matière à ce que je recompile mon système. Je + vais simplement aller dans les bons sous-répertoires et exécuter + <command/make all + install/, et c'est à peu près tout. Mais s'il y a des évolutions + importantes, par + exemple sur <filename>src/lib/libc/stdlib</filename> alors ou je + referais, le monde, ou je recompilerais au moins toutes les parties + du système qui sont liées statiquement + (de même que tout ce que je pourrais avoir ajouté qui serait lié + statiquement).</para> + + <para>En fin de journée, c'est à vous de voir. + Vous préférerez peut-être recompiler votre système tous les quinze + jours, et laisser les modifications s'empiler pendant ces quinze jours. + Ou bien vous préférez ne recompiler que ce qui a changé et vous faire + confiance pour repérer ce qui en dépend.</para> + + <para>Et, bien sûr, cela dépend de la fréquence avec laquelle vous voulez + faire vos mises à jour, et de si vous êtes sur la branche -stable ou + sur la branche -current.</para> + </sect2> + + <sect2> + <title>Ma compilation échoue avec de nombreuses erreurs "signal 12" + (ou tout autre numéro de signal)</title> + + <para>Cela indique généralement un problème matériel. (Re)faire le + monde est un bon moyen de mettre votre matériel sous pression, et + mettra souvent en évidence des défaillances de la mémoire vive. Cela se + manifeste normalement de soi-même: le compilation échoue en recevant + de mystérieux signaux.</para> + + <para>Vous pouvez vous en assurer si vous relancer la compilation + et qu'elle échoue en un endroit différent.</para> + + <para>Dans ce cas, vous ne pouvez guère faire autre chose que + d'intervertir les différents composants de votre matériel pour déterminer + lequel est en cause.</para> + </sect2> + + <sect2> + <title>Puis-je détruire <filename>/usr/obj</filename> après avoir + fini?</title> + + <para>Tout dépend de comment vous voulez refaire le monde par + la suite.</para> + + <para><filename>/usr/obj</filename> contient tous les fichiers objets + générés à la compilation. Normalement, une des premières étapes de + “make world” est de supprimer ce répertoire + et de repartir à zéro. Dans ce cas, conserver ce répertoire + <filename>/usr/obj</filename> après en avoir terminé ne sert pas à + grand chose, alors que vous économiseriez pas mal d'espace disque + (au jour d'aujourd'hui + environ 150Mo).</para> + + <para>Néanmoins, si vous savez ce que vous faites, vous pouvez faire en + sorte que “make + world” saute cette étape. Les reconstructions ultérieures seront + beaucoup plus rapides, car la plupart des sources n'auront pas besoin + d'être recompilés. Le revers de la médaille est que des + problèmes de dépendance subtils peuvent se manifester, provoquant + l'échec de votre recompilation de manière étrange. Cela génère + fréquemment du bruit sur les listes de diffusion de FreeBSD, + quand quelqu'un se plaint que sa mise à jour a échoué, sans réaliser + qu'il a tenté de brûler les étapes.</para> + + <para>Si vous aimez vivre dangereusement, passez le paramètre + “NOCLEAN” à <command/make/, comme suit: + + <informalexample> + <screen><prompt/#/ <userinput>make -DNOCLEAN world</userinput></screen> + </informalexample> + </para> + </sect2> + + <sect2> + <title>Une recompilation interrompue peut-elle être reprise?</title> + + <para>Tout dépend de jusqu'où vous êtes allé avant de rencontrer un + problème.</para> + + <para><emphasis>En général</emphasis> (mais ce n'est pas une règle + absolue) “make world” crée de nouveaux exemplaires + des utilitaires de base (comme <command>gcc</command>, et + <command>make</command>) et des bibliothèques système. Ces outils et + bibliothèques sont ensuite installés. Ils sont ensuite utilisés + pour se reconstruire eux-mêmes, et installés de nouveau. Le système + entier (y compris maintenant les outils usuels, comme + <command>ls</command> ou + <command>grep</command>) est ensuite recompilé avec les nouveaux + outils et bibliothèques de base.</para> + + <para>Si vous en êtes à cette dernière étape, et que vous le savez + (parce que vous avez consulté les résultats que vous avez enregistrés) + alors vous pouvez (avec une bonne chance de réussite) faire: + + <informalexample> + <screen><emphasis>… régler le problème …</emphasis> +<prompt/#/ <userinput>cd /usr/src</userinput> +<prompt/#/ <userinput/make -DNOCLEAN all/ + </screen> + </informalexample> + + qui ne détruira pas les résultats du travail qu'a déjà effectué + “make world”.</para> + + <para>Si vous voyez le message : + +<screen> +-------------------------------------------------------------- + Building everything.. +-------------------------------------------------------------- +</screen> + + dans les comptes-rendus de “make world”, cette façon de + procéder est probablement sûre.</para> + + <para>Si vous ne voyez pas ce message, ou doutez de vous, alors prudence + est mère de sûreté, et il vaut mieux tout reprendre depuis le + début.</para> + </sect2> + + <sect2> + <title/Puis-je utiliser une seule machine de <emphasis/référence/ pour + mettre à jour plusieurs machines (NFS)?/ + + <para>On pose souvent la question sur les listes de diffusion de FreeBSD + de savoir s'il est possible de tout compiler sur une seule machine + puis d'installer les résultats de cette compilation sur d'autres + machines du réseau avec <command/make install/.</para> + + <para>C'est quelque chose que je n'ai jamais fait, aussi les indications + qui suivent m'ont-elles été données par d'autres ou déduites des + <filename>Makefile</filename>s.</para> + + <para>La marche exacte à suivre dépend de votre version de FreeBSD.</para> + + <note> + <para>Vous devrez encore mettre à jour <filename>/etc</filename> et + <filename>/dev</filename> sur les machines cibles après cette + étape.</para> + </note> + + <sect3> + <title>Version 2.1.7 et antérieures</title> + + <para>Dans un message adressé à questions@freebsd.org, + Antonio Bemfica a suggéré la méthode suivante:</para> + +<screen> +Date: Thu, 20 Feb 1997 14:05:01 -0400 (AST) +From: Antonio Bemfica <bemfica@militzer.me.tuns.ca> +To: freebsd-questions@freebsd.org +Message-ID: <Pine.BSI.3.94.970220135725.245C-100000@militzer.me.tuns.ca> + +Josef Karthauser a demandé: + +> Quelqu'un a-t-il la bonne méthode pour mettre à jour +> les machines d'un réseau? + +D'abord <command>make world</command>, etc... sur votre machine de référence +Ensuite, montez <filename>/</filename> and <filename>/usr</filename> sur la machine distante: + +machine_de_référence% mount machine_distante:/ /mnt +machine_de_référence% mount machine_distante:/usr /mnt/usr + +Ensuite, faites <command>make install</command> avec <filename>/mnt</filename> comme cible: + +machine_de_référence% make install DESTDIR=/mnt + +Répétez cela pour chaque machine de votre réseau. +Cela marche très bien dans mon cas. + +Antonio +</screen> + + <para>Ce mécanisme ne fonctionne (autant que je sache) que si + vous pouvez écrire sur <filename>/usr/src</filename> sur le serveur + NFS, car ce devait être la cible d'“install” avec la + version 2.1.7 et les précédentes.</para> + </sect3> + + <sect3> + <title>Version 2.2.0 and ultérieures</title> + + <para>Entre les versions 2.1.7 et 2.2.0 la cible + “reinstall” a été introduite. Vous pouvez utiliser + la méthode décrite ci-dessus pour + la version 2.1.7, en remplaçant “install” par + “reinstall”.</para> + + <para>Cela <emphasis>ne demande plus</emphasis> de droits d'écriture + sur le répertoire <filename>/usr/src</filename> du serveur NFS.</para> + <note> + <para>Un bogue est apparu avec cette cible entre les versions + 1.68 et 1.107 du <filename>Makefile</filename>, qui impliquait + qu'il <emphasis>fallait</emphasis> + avoir les droits d'écriture. Ce bogue a été corrigé avant la + diffusion de la version 2.2.0 de FreeBSD, mais peut encore poser + problème si vous avez un vieux serveur sous -stable de cette + époque.</para> + </note> + </sect3> + + <sect3> + <title>Version 2.2.5 et ultérieure</title> + + <para>Comme décrit plus haut, les cibles “buildworld” et + “installworld” peuvent être employées pour recompiler + sur une machine, puis monter par NFS + <filename>/usr/src</filename> et <filename>/usr/obj</filename> sur + la machine distante et y installer le nouveau système.</para> + </sect3> + </sect2> + + <sect2> + <title>Comment puis-je accélérer <command>make world</command>?</title> + + <itemizedlist> + <listitem> + <para>Passez en mode mono-utilisateur.</para> + </listitem> + + <listitem> + <para>Mettez les répertoires <filename>/usr/src</filename> et + <filename>/usr/obj</filename> sur des systèmes de fichiers + et des disques différents. Si possible, installez ces disques + sur des contrôleurs différents.</para> + </listitem> + + <listitem> + <para>Mieux encore, mettez ces systèmes de fichiers sur + plusieurs disques et utilisez “ccd” + ("concatenated disk driver" = pilote de disques concaténés).</para> + </listitem> + + <listitem> + <para>Ne compilez pas les bibliothèques profilées + (mettez “NOPROFILE=true” dans + <filename>/etc/make.conf</filename>). Vous n'en avez certainement + pas besoin.</para> + </listitem> + + <listitem> + <para>Dans <filename>/etc/make.conf</filename>, positionnez aussi + “CFLAGS” à quelque chose comme “-O -pipe”. + L'optimisation “-O2” est bien plus lente, et la + différence d'optimisation entre “-O” et + “-O2” est en général négligeable. “-pipe” + dit au compilateur d'utiliser des tuyaux (“pipes”) + à la place de fichiers, ce qui économise des accès disque + (mais utilise plus de mémoire).</para> + </listitem> + + <listitem> + <para>Donnez l'option <option>-j<n></option> au compilateur + (Si vous avez une version suffisamment récente de FreeBSD) + pour exécuter plusieurs programmes en parallèle. Cela améliore + les choses, que vous ayez une machine mono- ou + multi-processeurs. </para> + </listitem> + + <listitem><para>Le système de fichiers qui contient + <filename>/usr/src</filename> peut être monté (ou remonté) avec l'option + “noatime”. De cette manière, les dates de dernier accès + aux fichiers ne sont pas enregistrées sur disque. Vous n'avez de toute + façon probablement pas besoin de cette information. + + <note> + <para>“noatime” existe à partir de la version + 2.2.0.</para> + </note> + + <informalexample> + <screen><prompt/#/ <userinput>mount -u -o noatime /usr/src</userinput></screen> + </informalexample> + + <note> + <para>Cet exemple suppose que <filename>/usr/src</filename> + constitue à lui seul un système de fichiers. Si ce n'est + pas le cas (s'il fait partie de + <filename>/usr</filename> par exemple) vous devez indiquez + le point de montage de ce système de fichiers, et non + <filename>/usr/src</filename>.</para> + </note></para> + </listitem> + + <listitem><para>Le système de fichiers où se trouve + <filename>/usr/obj</filename> + peut être monté (ou remonté) avec l'option “async”. + Les écritures sur disque se font alors de façon asynchrone. En + d'autres termes, le programme reprend immédiatement la main, + mais l'écriture se fait quelques secondes après. Les accès + disque sont ainsi groupés, et le gain en performances est + spectaculaire.</para> + + <note> + <para>Rappelez-vous que cette option rend votre système de + fichiers plus fragile. Avec cette option, les risques sont accrus + qu'en cas de coupure d'alimentation, le système de fichiers soit + irrécupérable quand la machine redémarrera.</para> + + <para>S'il n'y a que <filename>/usr/obj</filename> sur ce système + de fichiers, ce n'est pas un problème. S'il contient des + informations + plus sensibles, assurez-vous que vos sauvegardes soient à jour + avant d'activer cette option.</para> + </note> + + <para><informalexample> + <screen><prompt/#/ <userinput>mount -u -o async /usr/obj</userinput></screen> + </informalexample> + + <note> + <para>Comme auparavant, si <filename>/usr/obj</filename> ne + constitue pas un système de fichiers en soit, + remplacez-le dans l'exemple par le nom du point + de montage qui convient.</para> + </note></para> + </listitem> + </itemizedlist> + </sect2> + </sect1> + + <sect1 id="translations"> + <title>Traductions</title> + + <sect2> + <title>Document original</title> + <para>L'original de ce document se trouve sur + <ulink url="http://www.nothing-going-on.demon.co.uk/FreeBSD/make-world/make-world.html">http://www.nothing-going-on.demon.co.uk/FreeBSD/make-world/make-world.html</ulink>.</para> + </sect2> + <sect2> + <title>Japonais</title> + + <para>MAEKAWA Masahide a traduit ce document en + Japonais. Sa traduction est disponible à l'adresse <ulink + url="http://www.rr.iij4u.or.jp/~bishop/FreeBSD/mw.html">http://www.rr.iij4u.or.jp/~bishop/FreeBSD/mw.html</ulink>.</para> + </sect2> + </sect1> + + <sect1 id="contributors"> + <title>Contributions</title> + + <para>Les personnes suivantes ont contribué d'une façon ou d'une autre à la + rédaction de ce document. Soit directement en suggérant des modifications + ou des améliorations ou en signalant des erreurs, soit par leurs messages + sur les listes de diffusion de FreeBSD, où j'ai puisé sans scrupule de + l'information. Mes remerciements à tous.</para> + + <itemizedlist> + <listitem> + <para>Antonio Bemfica, <ulink url="mailto:bemfica@militzer.me.tuns.ca">bemfica@militzer.me.tuns.ca</ulink></para> + </listitem> + + <listitem> + <para>Sue Blake, <ulink url="mailto:sue@welearn.com.au">sue@welearn.com.au</ulink></para> + </listitem> + + <listitem> + <para>Brian Haskin, <ulink url="mailto:haskin@ptway.com">haskin@ptway.com</ulink></para> + </listitem> + <listitem> + <para>Kees Jan Koster, <ulink url="mailto:kjk1@ukc.ac.uk">kjk1@ukc.ac.uk</ulink></para> + </listitem> + + <listitem> + <para>A Joseph Kosy, <ulink url="mailto:koshy@india.hp.com">koshy@india.hp.com</ulink></para> + </listitem> + + <listitem> + <para>Greg Lehey, <ulink url="mailto:grog@lemis.com">grog@lemis.com</ulink></para> + </listitem> + + <listitem> + <para>Wes Peters, <ulink + url="mailto:softweyr@xmission.com">softweyr@xmission.com</ulink></para> + </listitem> + + <listitem> + <para>Joseph Stein, <ulink url="mailto:joes@wstein.com">joes@wstein.com</ulink></para> + </listitem> + + <listitem> + <para>Studded, <ulink url="mailto:studded@dal.net">studded@dal.net</ulink></para> + </listitem> + + <listitem> + <para>Axel Thimm <ulink url="mailto:Axel.Thimm@physik.fu-berlin.de">Axel.Thimm@physik.fu-berlin.de</ulink></para> + </listitem> + + <listitem> + <para>Matthew Thyer <ulink url="mailto:Matthew.Thyer@dsto.defence.gov.au">Matthew.Thyer@dsto.defence.gov.au</ulink></para> + </listitem> + </itemizedlist> + </sect1> +</article> diff --git a/fr_FR.ISO_8859-1/articles/mh/Makefile b/fr_FR.ISO_8859-1/articles/mh/Makefile new file mode 100644 index 0000000000..72c1d9b8c9 --- /dev/null +++ b/fr_FR.ISO_8859-1/articles/mh/Makefile @@ -0,0 +1,20 @@ +# +# The FreeBSD Documentation Project +# The FreeBSD French Documentation Project +# +# $FreeBSD$ +# Original revision: 1.4 +# + +DOC?= article + +FORMATS?= html + +INSTALL_COMPRESSED?=gz +INSTALL_ONLY_COMPRESSED?= + +SRCS= article.sgml + +DOC_PREFIX?= ${.CURDIR}/../../.. + +.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO_8859-1/articles/mh/article.sgml b/fr_FR.ISO_8859-1/articles/mh/article.sgml new file mode 100644 index 0000000000..26763e00a3 --- /dev/null +++ b/fr_FR.ISO_8859-1/articles/mh/article.sgml @@ -0,0 +1,744 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: 1.2 +--> + +<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ +<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man; +<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls; +<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract; +<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader; +<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators; + +<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors; +<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists; + <!ENTITY rel.current CDATA "3.2"> +]> +<article id="mh" LANG="fr"> + <artheader> + <title>Introduction à MH</title> + <authorgroup> + <author> + <firstname>Matt</firstname> + <surname>Midboe</surname> + <affiliation> + <address><email>matt@garply.com</email></address> + </affiliation> + </author> + </authorgroup> + <pubdate>v1.0, 16 Janvier 1996</pubdate> + &artheader.copyright; + <abstract> + <para>Ce document est une introduction sur la façon d'utiliser MH + sous FreeBSD.</para> + &abstract.license; + &abstract.disclaimer; + &trans.a.gioria; + </abstract> + </artheader> + <sect1> + <title>Introduction</title> + <para>MH débuta en 1977 dans la société RAND + Corporation, oû la philosophie MH fut développée. MH + n'est pas seulement un programme monolithique de courrier + électronique mais plutôt une philosophie sur la meilleure + façon de développer des outils permettant de lire son + courrier. Les développeurs de MH ont fourni un logiciel superbe + tout en adhérent au concept <acronym>KISS</acronym> : + “Keep It Simple Stupid” (Rester le plus simple + possible).</para> + <para>Plutôt que de disposer d'un seul et complexe logiciel pour + lire, envoyer et gérer ses courriers électroniques, ils + ont écrit une multitude de petits programmes + spécialisés. Certains aimeront MH pour cette + spécificité, d'autres non. Chaque outil de MH effectue une + action, et l'effectue très bien.</para> + <para>En plus de tous les outils de gestion des courriers + électroniques, chaque outil MH comporte un mécanisme de + configuration uniforme. En fait, si vous ne savez pas vraiment comment + marche un outil, ou de quels arguments il dispose, vous vous en sortez + généralement très facilement. Toutes les commandes + de MH gèrent de façon identique les fichiers de + configuration et les arguments de la ligne de commande. La chose la plus + importante est de se souvenir que vous pouvez toujours passer l'option + <option>-help</option> à une commande pour afficher toutes les + options disponibles.</para> + <para>Pour commencer, assurez vous que vous avez installé les + programmes de MH sur votre machine. Si vous disposez d'un CDROM vous + devez pouvoir l'installer en exécutant la commande + suivante :</para> + <informalexample> +<screen>#<userinput>>pkg_add /cdrom/packages/mh-6.8.3.tgz</userinput></screen> + </informalexample> + <para>Vous verrez alors la création d'un répertoire + <filename>/usr/local/lib/mh</filename> ainsi que l'ajout de + différents binaires dans le répertoire + <filename>/usr/local/bin</filename>. Si vous préférez le + compiler vous même, vous pouvez télécharger les + sources en ftp anonyme depuis + <ulink url="ftp://ftp.ics.uci.edu/">ftp.ics.uci.edu</ulink> ou + <ulink url="ftp://louie.udel.edu/">louie.udel.edu</ulink>.</para> + <para>Cette introduction n'est pas une explication détaillée + de la façon de fonctionner de MH. Elle vous permettra juste + démarrer sur la route de la façon la plus rapide de lire vos emails. Vous devrez +surement consulter les pages de manuels des différentes commandes par +la suite. De même il serait bon de lire le <ulink +URL="http://www.cis.ohio-state.edu/hypertext/faq/usenet/mh-faq/part1/faq.html">FAQ +sur MH</ulink> et de vous abonnez au forum de discussion <ulink +URL="news:comp.mail.mh">comp.mail.mh</ulink>. Cependant la meilleur +ressource sur MH est le livre écrit par Jerry Peek aux éditions +O'Reilly et Associates.</para> +</sect1> +<sect1> +<title>Lire le courrier</title> +<para>Ce chapitre explique les commandes <command>inc</command>, +<command>show</command>, <command>scan</command>, <command>next</command>, +<command>prev</>, <command>rmm</command>, <command>rmf</command>, and +<command>msgchk</command>. Le meilleur atout de MH est la consistence de +l'interface entre les différents programmes. La chose la plus +importante à retenir lorsque l'on utilise les différentes commandes, +est la façon de spécifier une liste de messages. Dans le cas de la +commande <command>inc</command> cela n'a aucun sens mais avec des commandes +comme <command>show</command> c'est plus qu'utile.</para> + +<para>Une liste de messages consiste en quelque chose comme <parameter>23 20 +16</parameter>, qui corresponds aux messages 23, 20 et 16. C'est vraiment très +simple, mais vous pouvez avoir des choses plus utiles comme +<parameter>23-30</parameter> correspondant à tous les messages entre le message +23 et le message 30. Vous pouvez aussi spécifier <parameter>cur:10</parameter>, +qui correspond au message courant et aux 9 messages suivants. Les +messages <parameter>cur</parameter><parameter>last</parameter>, et <parameter>first</parameter> +sont des messages spéciaux reférant au message courant, dernier +message, et premier message du dossier.</para> + +<sect2 id="inc"> +<title><command>inc</command>, <command>msgchk</command>—lire ou vérifier vos +messages</title> + +<para>Si vous tapez la commande <userinput>inc</userinput> sans arguments, vous +débutez sur la bonne voie pour lire votre courrier avec MH. La +première fois ou vous utilisez <command>inc</command>, il configurera votre +compte pour utilisez toutes les valeurs par défaut de MH et vous +demandera la création d'un répertoire Mail. Si vous avez des messages +et attente de téléchargement, vous verrez quelque chose qui peut +ressembler à ceci: +<informalexample> +<screen> 29 01/15 Doug White Re: Another Failed to boot problem<<On Mon, 15 J + 30 01/16 "Jordan K. Hubbar Re: FBSD 2.1<<> Do you want a library instead of + 31 01/16 Bruce Evans Re: location of bad144 table<<>> >It would appea + 32 01/16 "Jordan K. Hubbar Re: video is up<<> Anyway, mrouted won't run, ev + 33 01/16 Michael Smith Re: FBSD 2.1<<Nate Williams stands accused of sa</screen> +</informalexample> +Vous obtenez la même vue que si vous utilisiez la commande <command>scan</command> (voir +<xref linkend="scan">). Si vous lancez <command>inc</command> sans arguments +, cela vous affiche juste le courrier qui vous est destiné.</para> + +<para>Enormément de personnes utilisent le protocole POP pour lire +leur mail. MH sait utiliser le protocole POP pour rapatrier les emails +sur votre poste. Vous devez passer plusieurs arguments à +<command>inc</command> pour cela. +<informalexample> +<screen>tempest% <userinput>inc -host mail.pop.org -user <replaceable>NomUtilisateur</replaceable> -norpop</userinput></screen> +</informalexample> +Cela invoque la commande <command>inc</command> en lui disant d'aller +télécharger le courrier sur le serveur <parameter>mail.pop.org</parameter>, +avec comme nom d'utilisateur <replaceable>NomUtilisateur</replaceable>. L'option +<option>-norpop</option> demande à la commande <command>inc</command> de +télécharger le courrier en clair suivant le protocole POP3. MH +supporte plusieurs variantes du protocole POP3. Vous n'utiliserez pas +dans la plupart des cas les autres variantes. Vous pouvez effectuer +des taches plus complexes avec <command>inc</command> comme, auditer des +fichiers ou parcourir des fichiers formattés +</para> +<para>La commande <command>msgchk</command> vous permet de savoir si +vous avez ou non de nouveaux messages dans votre +boite.<command>msgchk</command> accepte les mêmes options +,<option>-host</option> et <option>-user</option>, que la commande +<command>inc</command>.</para> +</sect2> +<sect2 id="show"> +<title><command>show</command>, <command>next</command> et <command>prev</command>—afficher un message et se déplacer dans une boite.</title> +<para><command>show</command> vous permet de visualiser un courrier de votre boite. Comme <command>inc</command>,<command>show</command> est une commande assez franche.Si vous tapez <userinput>show</userinput> sans paramètres elle affiche le message courant. Vous pouvez aussi demander l'affichage de messages particuliers en donnant son numéro à <command>show</command>: +<informalexample> +<screen>tempest% <userinput>show 32 45 56</></screen> +</informalexample> +Cela affichera les fichiers numéros 32 45 56 à la suite l'un de +l'autre. Si vous changez rien à la configuration par défaut, +<command>show</command> ne fera rien d'autre qu'un +<command>more</command> sur le fichier contenant votre message.</para> + +<para><command>next</command> s'utilise pour se déplacer au message +suivant et <command>prev</command> pour revenir au message +précedent. Ces deux commandes executent automatiquement un +<command>show</command> ce qui vous permet de lire automatiquement le +message suivant ou précédant.</para> +</sect2> + +<sect2 id="scan"> +<title><command>scan</command>—Afficher un résumé de vos +messages</title> +<para><command>scan</command> affiche un bref descriptif de tous les +messages de votre répertoire courant. Voici un exemple d'affichage de +la commande <command>show</command>: +<informalexample> +<screen> 30+ 01/16 "Jordan K. Hubbar Re: FBSD 2.1<<> Do you want a library instead of + 31 01/16 Bruce Evans Re: location of bad144 table<<>> >It would appea + 32 01/16 "Jordan K. Hubbar Re: video is up<<> Anyway, mrouted won't run, ev + 33 01/16 Michael Smith Re: FBSD 2.1<<Nate Williams stands accused of sa</screen> +</informalexample> +Comme tout dans MH, l'affichage est complètement configurable. Ce qui +est fournit dans l'exemple ci-dessus est l'affichage par défaut. Il +vous permet de visualiser le numéro du message, la date d'envoi, +l'envoyeur, le sujet et une partie du début du message. Le caractère +<literal>+</literal> vous indique le message courant donc si vous +tapez la commande <command>show</command> vous visualiserez ce +message.</para> +<para>Une option très utile de <command>scan</command> est l'option +<option>-reverse</option>. Cette option permet de lister l'ensemble de +vos messages en affichant en premier le message ayant le numéro le +plus élevé. Une autre option très interessante de +<command>scan</command> lui permet de lire les données depuis un +fichier. Si vous désirez parcourir votre boite aux lettres de courrier +entrant sans avoir à lancer la commande <command>inc</command>, il +vous suffit de faire <command>scan -file +/var/mail/<replaceable>nom_d_utilisateur</replaceable></command>. Cela +peut etre fait sur n'importe quel fichier au format +<database>mbox</database>.</para> +</sect2> + +<sect2 id="rmm"> +<title><command>rmm</command> et <command>rmf</command>— Effacer +le message courant ou le dossier</title> + +<para><command>rmm</command> est utilisé pour effacer un message. Par +défaut le message n'est pas vraiment détruit mais renommé en un +fichier dont le nom est ignoré par les commandes de MH. Vous devrez +effacer physiquement de façon périodique les messages +“effacés”.</para> +<para>La commande <command>rmf</command> permet d'effacer un +dossier. Cela ne renomme pas les fichiers mais les efface du disque +dur, vous devez donc faire extrèmement attention lorsque vous +l'utilisez.</para> +</sect2> +<sect2 id="samplereading"> +<title>Un session typique de lecture avec MH</title> +<para>La première chose que vous ferez sera de lancer la commande +<command>inc</command>. Donc sous l'interpréteur de commandes tapez +<command>inc</command> et la touche <keycap>entrée</keycap>. +<informalexample> +<screen>tempest% <userinput>inc</userinput> +Incorporating new mail into inbox... + + 36+ 01/19 "Stephen L. Lange Request...<<Please remove me as contact for pind + 37 01/19 Matt Thomas Re: kern/950: Two PCI bridge chips fail (multipl + 38 01/19 "Amancio Hasty Jr Re: FreeBSD and VAT<<>>> Bill Fenner said: > In +tempest%</screen> +</informalexample> +Cela vous permet de visualiser les nouveaux messages rapatriés dans +votre boite aux lettres. La commande suivante a éxécuter est +<command>show</command> pour vous permettre de les visualiser et de +vous déplacer dans votre liste de messages. +<informalexample> +<screen>tempest% <userinput>show</> +Received: by sashimi.wwa.com (Smail3.1.29.1 #2) + id m0tdMZ2-001W2UC; Fri, 19 Jan 96 13:33 CST +Date: Fri, 19 Jan 1996 13:33:31 -0600 (CST) +From: "Stephen L. Lange" <stvlange@wwa.com> +To: matt@garply.com +Subject: Request... +Message-Id: <Pine.BSD.3.91.960119133211.824A-100000@sashimi.wwa.com> +Mime-Version: 1.0 +Content-Type: TEXT/PLAIN; charset=US-ASCII + + +Please remove me as contact for pindat.com + +tempest% <userinput>rmm</> +tempest% <userinput>next</> +Received: from localhost (localhost [127.0.0.1]) by whydos.lkg.dec.com (8.6.11/8 +.6.9) with SMTP id RAA24416; Fri, 19 Jan 1996 17:56:48 GMT +Message-Id: <199601191756.RAA24416@whydos.lkg.dec.com> +X-Authentication-Warning: whydos.lkg.dec.com: Host localhost didn't use HELO pro +tocol +To: hsu@clinet.fi +Cc: hackers@FreeBSD.org +Subject: Re: kern/950: Two PCI bridge chips fail (multiple multiport ethernet + boards) +In-Reply-To: Your message of "Fri, 19 Jan 1996 00:18:36 +0100." + <199601182318.AA11772@Sysiphos> +X-Mailer: exmh version 1.5omega 10/6/94 +Date: Fri, 19 Jan 1996 17:56:40 +0000 +From: Matt Thomas <matt@lkg.dec.com> +Sender: owner-hackers@FreeBSD.org +Precedence: bulk + + +This is due to a typo in pcireg.h (to +which I am probably the guilty party).</screen> +</informalexample></para> +<para>La commande <command>rmm</command> efface le message courant et +la commande <command>next</command> permet de déplacer le numéro du +message courant au message suivant. Maintenant vous désirez visualiser les +dix courriers les plus récents, pour choisir lequel vous désirez lire: +<informalexample> +<screen>tempest% <userinput>scan last:10</> + 26 01/16 maddy Re: Testing some stuff<<yeah, well, Trinity has + 27 01/17 Automatic digest NET-HAPPENINGS Digest - 16 Jan 1996 to 17 Jan 19 + 28 01/17 Evans A Criswell Re: Hey dude<<>From matt@tempest.garply.com Tue + 29 01/16 Karl Heuer need configure/make volunteers<<The FSF is looki + 30 01/18 Paul Stephanouk Re: [alt.religion.scientology] Raw Meat (humor)< + 31 01/18 Bill Lenherr Re: Linux NIS Solaris<<--- On Thu, 18 Jan 1996 1 + 34 01/19 John Fieber Re: Stuff for the email section?<<On Fri, 19 Jan + 35 01/19 support@foo.garpl [garply.com #1138] parlor<<Hello. This is the Ne + 37+ 01/19 Matt Thomas Re: kern/950: Two PCI bridge chips fail (multipl + 38 01/19 "Amancio Hasty Jr Re: FreeBSD and VAT<<>>> Bill Fenner said: > In +tempest%</screen> +</informalexample> +Maintenant vous voulez lire le message numéro 27, donc vous +tapez<userinput>show 27</userinput> et il s'affiche. Comme vous pouvez +le voir après ce court exemple MH est très simple à utiliser pour +visualiser et lire votre courrier et est de plus très intuitif. +</para> +</sect2> +</sect1> + + +<sect1> +<title>Chercher parmis les messages et les dossiers</title> + +<para>Toute personne qui a beaucoup de mails aime à pouvoir mettre des +priorités, marquer les messages, les numéroter de différentes +façons. MH permet de faire toutes ces taches de façons très simple +comme d'habitude. Une chose dont nous n'avons pas encore parlé est le +concept de dossier. Vous avez surement utilisé le concept de dossier +avec d'autres programmes de lecture de courrier éléctronique. MH a +aussi des dossiers. MH peut aussi avoir des sous-dossiers de +dossiers. Un chose que vous devez avoir à l'esprit quand vous utilisez +la commande <command>inc</command>, pour la première fois, est qu'elle +demande si vous voulez créer le répertoire <filename>Mail</filename>, +et qu'elle enregistre tout dans ce répertoire. Si vous regardez ce +qu'il se trouve dans ce répertoire, vous verrez un répertoire +<filename>inbox</filename>. Ce répertoire comporte tous vos nouveaux +messages qui n'ont pas encore été déplacés dans un autre +dossier.</para> + +<para>Lorsque vous créez un nouveau dossier, un répertoire est crée +sous votre répertoire <filename>Mail</filename> et les messages à +destination de se dossier sont stockés dans ce répertoire. Lorsque un +nouveau message arrive, il est déposé dans votre répertoire +<filename>inbox</filename> avec comme nom le numéro du message. Donc +même si vous n'avez pas les outils MH pour lire votre courrier, +vous pouvez utiliser les commandes standards UNIX pour vous déplacer +parmis les dossiers et visualiser vos messages. C'est cette simplicité +qui vous donne autant de puissance dans le traitement de vos +messages.</para> + +<para>De la meme façon ou vous pouvez utiliser une liste de messages, +comme <parameter>23 16 42</parameter>, avec la plupart des commandes +MH; il y a une option utilisable avec toutes les commandes MH vous +permettant de travailler dans le dossier spécifié. Si vous essayer +<command>scan +freebsd</command>, vous allez parcourir le dossier +<filename>freebsd</filename>. Si vous faites un <command>show +freebsd +23 16 42</command>, la commande <command>show</command> affichera les +messages 23, 26 et 42 du dossier <filename>freebsd</filename>. Donc +souvenez vous que la syntaxe +<option>+<replaceable>dossier</replaceable></option>. Vous en aurez besoin pour +lancer les commandes dans les différents dossiers. Souvenez vous aussi +que votre dossier de courrier entrant par défaut est +<filename>inbox</filename>, donc en faisant un <command>folder ++inbox</command> vous aurez la liste de vos nouveaux messages. Bien +sur grace à la flexibilité de MH, vous pourriez changer ce dossier, +mais il y a peu d'interet à le faire.</para> + +<sect2> +<title><command>pick</command>— recherche par critères dans les +messages</title> +<para><command>pick</command> est une des commandes les plus +compliquées de MH. Je ne saurais pas mieux vous conseiller que d'aller +voir la page de manuel de +<citerefentry><refentrytitle>pick</refentrytitle><manvolnum>1</manvolnum></citerefentry> +pour bien la comprendre. La plus simple façon de s'en servir est la +suivante: +<informalexample> +<screen>tempest% <userinput>pick -search pci</userinput> +15 +42 +55 +56 +57</screen> +</informalexample> +Cela vous permet de trouver les numéros de tous les messages +comprenant le mot <literal>pci</literal> dans une des lignes du +message. Vous pouvez ensuite lancer la commande +<command>show</command> sur ces messages pour les lire ou +<command>rmm</command> pour les effacer. Vous devrez bien sur lancer +la commande suivante <command>show 15 42 55-57</command> pour les voir +tous. Une façon un peu plus compliquée d'utiliser +<command>pick</command> serait la suivante: +<informalexample> +<screen>tempest% <userinput>pick -search pci -seq pick</userinput> +5 hits +tempest% <userinput>show pick</userinput></screen> +</informalexample> +Cela vous permet de voir les memes messages que précédemment sans vous +fatiguer. L'option <option>-seq</option> n'est rien de plus qu'une +abréviation de l'option<option>-sequence</option> et la commande +<command>pick</command> n'est rien de plus qu'une sequence comportant +les numéros des messages vérifiant le critère. Vous pouvez aussi +utiliser la commande <command>rmm pick</command> pour effacer tous les +messages qui répondent au critère. Le nom de la sequence n'est pas +signifiant. Si vous relancez la commande <command>pick</command> de +nouveau, l'ancienne séquence sera effacée si vous utilisez le meme +nom.</para> + +<para>Si vous n'utilisiez que la commande <command>pick +-search</command>, cela peut prendre plus de temps que de chercher un +message entre un destinataire et un envoyeur. La commande +<command>pick</command> dispose donc de certains critères prédéfinis: +<variablelist> + +<varlistentry> +<term><option>-to</option></term> +<listitem> +<para>recherche sur le destinataire</para> +</listitem> +</varlistentry> + + +<varlistentry> +<term><option>-cc</option></term> +<listitem> +<para>recherche dans le champ cc du message</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><option>-from</option></term> +<listitem> +<para>recherche sur l'expéditeur du message</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><option>-subject</option></term> +<listitem> +<para>recherche dans le sujet du message</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><option>-date</option></term> +<listitem> +<para>recherche par rapport à la date du message</para> +</listitem> +</varlistentry> + + +<varlistentry> +<term><option>--<replaceable>component</replaceable></option></term> +<listitem> +<para>recherche sur un quelconque autre entete. (ex: +<option>--reply-to</option> pour rechercher dans les entetes reply-to +des messages)</para> +</listitem> +</varlistentry></variablelist></para> + +<para>Cela permet d'avoir des requetes de ce type: +<informalexample> +<screen>tempest% <userinput>pick -to freebsd-hackers@freebsd.org -seq hackers</userinput></screen> +</informalexample> +pour avoir tous les messages envoyés à la liste de diffusion hackers +de FreeBSD. <command>pick</command> vous permet de grouper de +différentes façon en fonctiondu critère. +<itemizedlist> + +<listitem> +<para>… <option>-and</option> …</para> +</listitem> + +<listitem> +<para>… <option>-or</option> &hellip</para> +</listitem> + +<listitem> +<para><option>-not</option> …</para> +</listitem> + +<listitem> +<para><option>-lbrace</option> … <option>-rbrace</option></para> +</listitem> +</itemizedlist> +Ces options permettent de faire des choses comme ceci: +<informalexample> +<screen>tempest% <userinput>pick -to freebsd-hackers -and -cc freebsd-hackers</userinput></screen> +</informalexample> +Cela vous permet de retrouver tous les messages envoyés à la liste +freebsd-hackers ou mis en copie à cette liste. Les options <option>lbrace</option> et +<option>rbrace</option> vous permettent de grouper les critères ensemble. Cela peut +etre util dans certaines situations, comme dans l'exemple suivant: +<informalexample> +<screen>tempest% <userinput>pick -lbrace -to freebsd-hackers -and + -not -cc freebsd-questions -rbrace -and -subject pci</></screen> +</informalexample></para> + +<para>Cet exemple vous permet d'extraire tous les mails destinés à <quote>la +liste freebsd-hackers (mais qui ne sont pas mis en copie pour la liste +freebsd-questions) et dont le sujet est pci</quote>. Normalement vous +vous poseriez la question; mais quelle est la précédence des +opérateurs ? Vous vous rappelez qu'en mathématiques les expressions +sont évaluées de gauche à droite et que la multiplication et la +division ont plus de poids que les additions et les soustractions. MH +utilise les memes règles pour la commande <command>pick</command>. Les +combinaisons peuvent etre très complexes, donc lisez la page de manuel +pour plus d'informations. Ce document est juste la pour vous aider à +découvrir MH.</para> +</sect2> + +<sect2> +<title><command>folder</command>, <command>folders</command>, +<command>refile</command>— trois programmes utiles pour gérer vos +dossiers.</title> + +<para>Il y a trois programmes vous permettant de gérer de façon +primitive vos dossiers. Le programme <command>folder</command> est +utilisé pour changer de dossiers, lister leur contenu. Vous pouvez +lancer la commande <command>folder ++<replaceable>dossier2</replaceable></command> et automatiquement, +vous vous retrouverez dans le dossier +<replaceable>dossier2</replaceable>. Alors toutes les commandes MH, +telles que +<command>comp</command>,<command>repl</command>,<command>scan</command>, +et <command>show</command> utiliserons le dossier <filename>dossier2</filename>.</para> + +<para>Quelques fois lorsque vous lisez et effacez dans messages vous +avez des <quote>discontinuitées</quote> dans vos dossiers. Si vous faites un +<command>scan</command> vous pouvez voir les messages 34, 35, 36, 43, +55, 56, 57, 80. Si vous faites un <command>folder -pack</command>, +cela vous permet de renuméroter tous vos messages, et vous n'aurez +plus de disccontinuitées. Cela n'efface aucun message. Vous devez donc +périodiquement faire des <command>rmm</command> sur vos +messages.</para> + +<para>Si vous desirez des statistiques sur vos dossiers, vous pouvez +faire des <command>folders</command> ou des <command>folder +-all</command> pour obtenir la liste de vos dossiers, combien de +messages comporte chaque dossier et quel est le message courant dans +chacun. La ligne de statistique affichée est la meme que celle que +vous avez lorsque vous changez de dossier avec la commande +<command>folder +dossier2</>. Un exemple de la commande +<command>folders</command> pourrait etre: +<informalexample> +<screen> Folder # of messages ( range ); cur msg (other files) + announce has 1 message ( 1- 1). + drafts has no messages. + f-hackers has 43 messages ( 1- 43). + f-questions has 16 messages ( 1- 16). + inbox+ has 35 messages ( 1- 38); cur= 37. + lists has 8 messages ( 1- 8). + netfuture has 1 message ( 1- 1). + out has 31 messages ( 1- 31). + personal has 6 messages ( 1- 6). + todo has 58 messages ( 1- 58); cur= 1. + + TOTAL= 199 messages in 13 folders. +</screen> +</informalexample></para> + +<para>La commande <command>refile</command> vous permet de deplacer +les messages entre les dossiers. Si vous faites un <command>refile 23 ++nouveaudossier</command>, le message 23 sera déplacer dans le dossier +<filename>nouveaudossier</filename>. Vous pouvez tout aussi bien faire +un <command>refile 23 +nouveaudossier/sousdossier1</command> qui +déplacera le message 23 dans le un sous +dossier,<filename>sousdossier1</filename>, du dossier +<filename>nouveaudossier</filename>. Si vous voulez garder un message +dans le dossier courant tout en le mettant dans un autre, vous devez +lancer la commande <command>refile -link 23 +nouveaudossier</command>, +qui gardera le message dans le dossier <filename>inbox</filename> tout +en le listant dans le dossier +<filename>nouveaudossier</filename>. Cela vous permet de réaliser +toutes les choses merveilleuses que vous pouvez faire avec MH.</para> +</sect2> +</sect1> + +<sect1> +<title>Envoyer des messages</title> +<para>L'email est pour beaucoup de gens, comme une rue a double sens, +vous voudrez donc répondre a certains messages. La façon qu'emploie MH +pour envoyer des messages peut etre difficile a comprendre au début, +mais il permet une énorme flexibilitée.La première chose que fait MH, +est de copier un "composant" dans votre file de messages sortant. Un +"composant" est en fait un squelette de message comportant les entetes +<filename>To:</filename> et <filename>Subject:</filename>. Le système +lance ensuite votre éditeur favori ou vous pouvez remplir les entetes +et composer le corps du message sous les pointillés dans le +message. Ensuite vous lancez la commande +<command>whatnow</command>. Et lorsque vous avez le prompt +<prompt>What now?</prompt>, vous pouvez répondre par une des commandes +suivante <command>send</command>, <command>list</command>, <command>edit</command>, +<command>edit</command>, <command>push</command>, and +<command>quit</command>. La plupart des commandes précédentes +s'expliquent d'elles meme. Donc le processus d'envoi de message est le +suivant; copie du fichier "composant", édition de votre message, et +lancement de la commande <command>whatnow</command> en lui indiquant +quoi faire de votre message.</para> + +<sect2> +<title><command>comp</>, <command>forw</>, +<command>reply</>—composer, faire suivre ou répondre à un +message</title> + +<para>La commande <command>comp</command> comporte quelques options de +la ligne de commande intéressantes. La plus importante est +<option>-editor</option>.Lorsque vous installez MH, un programme +appellé <command>prompter</command> est utiliser comme éditeur de +texte par défaut. Ce n'est pas un éditeur très interessant. Donc +lorsque vous composez un message, vous utiliserez surement +<command>comp -editor /usr/bin/vi</command> ou <command>comp -editor +/usr/local/bin/pico</command> a la place. Après avoir lancer +<emphasis>comp</emphasis>, vous vous trouvez dans votre éditeur de +texte favori et vous voyez quelque chose qui ressemble à ceci: +<informalexample> +<screen>To: +cc: +Subject: +-------- +</screen> +</informalexample></para> +<para>Vous devez ajoutez l'addresse de votre destinataire apres le mot +<literal>To:</literal>. Vous devez remplir de la meme manière les +autres entetes, donc vous devez mettre le sujet après le mot +<literal>Subject:</literal>. Vous pouvez ensuite ajouter le corps de +votre message après les lignes pointillées. Cela peut vous sembler un +peu simpliste par rapport a d'autres programmes de messagerie qui vous +pose des questions et remplissent automatiquement les différents +entete, mais cela vous apporte une excellente flexibilité. +<informalexample> +<screen>To:<userinput>freebsd-rave@freebsd.org</userinput> +cc: +Subject:<userinput>Et le 8ème jour, Dieu créa le bureau des directeurs de FreeBSD</userinput> +-------- +<userinput>Ouah, c'est un super système d'exploitation. Merci !</userinput></screen> +</informalexample> +Vous pouvez ensuite, sauvegarder le message et quitter votre +éditeur. Vous aurez alors le prompt <prompt>What now?</prompt> et vous +pourrez taper <userinput>send</userinput> ou <userinput>s</userinput> +et appuyer sur la touche <keycap>entrée</keycap>. Alors l'équipe +principal de développemet de FreeBSD recevra votre gratitude. Comme +mentionné précedemment vous pouvez utiliser une des autres réponse, +par exemple <command>quit</command> si vous ne voulez pas envoyer ce +message.</para> + +<para>La commande <command>forw</command> s'utilise de façon +similaire. La principal différence est que le message que vous envoyez +comprends dans son corps le message courant. Lorsque vous utilisez la +commande <command>forw</command>, vous faites suivre le message +courant a un autre destinataire. Vous pouvez faire suivre un autre +message en utilisant de la façon suivante <command>forw 23</command> +la commande <command>forw</command>, ainsi le message 23 sera ajoute +dans le corps du message composé. A part ces simples différences, la +commande <command>forw</command>, fonctionne de la meme façon que la +commande <command>comp</command>. </para> + +<para>La commande <command>repl</command> vous permet de répondre au +message courant, sauf si vous lui indiquez un autre numéro de +message. La commande <command>repl</command> essaye de remplir au +mieux les différents champs de l'entete en fonction de ce qui se +trouve dans le message de base. Vous noterez donc que le +champ<literal> To:</literal> de l'entete comporte deja l'adresse du +destinataire et que la ligne <literal>Subject:</literal> est deja +remplie. Ensuite vous composez de la façon habituelle votre +message. Un option interessante de cette commande est +<option>-cc</option>. Vous pouvez utiliser comme parametre +<parameter>all</parameter>, <parameter>to</parameter>, +<parameter>cc</parameter>,<parameter>me</parameter> avec cette option; +cela vous permet d'ajouter de façon simple, les adresses en copie du +message original. Vous noterez que le message original n'est pas inclu +par défaut. C'est le comportement par défaut de la plupart des +configuration de MH. +</para> +</sect2> + +<sect2> +<title><filename>components</filename>, et +<filename>replcomps</filename>—les fichiers de composition pour +<command>comp</> and <command>repl</></title> + +<para>Le fichier <filename>components</filename> se trouve la plupart +du temps dans le répertoire +<filename>/usr/local/lib/mh</filename>. Vous pouvez copier ce fichier +dans votre répertoire de MH et l'éditer pour ajouter ce que vous +voulez. Vous avez certaines lignes d'entete de mail par défaut au +début, une ligne pointillée et puis plus rien. La commande +<command>comp</command> ne fait que copier ce fichier et vous permet +ensuite de l'éditer. Vous pouvez ajouter n'importe quel entete valide +(RFC822). Par exemple, vous pourriez avoir le fichier +<filename>components</filename> suivant: +<informalexample> +<screen>To: +Fcc: out +Subject: +X-Mailer: MH 6.8.3 +X-Comment: FreeBSD the power to serve +X-Home-Page: http://www.freebsd-fr.org/ +-------</screen> +</informalexample> +MH copiera donc ce fichier et vous enverra dans votre éditeur +favori. Le fichier <filename>components</filename> est très simple. Si +vous désirez inclure une signature, il vous suffit de l'ajouter dans +ce fichier.</para> + +<para>Le fichier <filename>replcomps</filename> est un peu plus +complexe. Son contenu par défaut ressemble à ceci: +<informalexample> +<screen>%(lit)%(formataddr %<{reply-to}%?{from}%?{sender}%?{return-path}%>)\ +%<(nonnull)%(void(width))%(putaddr To: )\n%>\ +%(lit)%(formataddr{to})%(formataddr{cc})%(formataddr(me))\ +%<(nonnull)%(void(width))%(putaddr cc: )\n%>\ +%<{fcc}Fcc: %{fcc}\n%>\ +%<{subject}Subject: Re: %{subject}\n%>\ +%<{date}In-reply-to: Your message of "\ +%<(nodate{date})%{date}%|%(pretty{date})%>."%<{message-id} + %{message-id}%>\n%>\ +-------- +</screen> +</informalexample></para> + +<para>Ce fichier a le meme format de base que le fichier +<filename>components</filename> mais il comporte un peu plus de codes +de mise en forme. La commande <literal>%(lit)</literal> crée l'espace +nécessaire pour l'adresse. La commande <literal>%(formataddr</literal> +est une fonction qui retourne une adresse e-mail cohérente. Le morceau +suivant <literal>%<</literal> permet de remplir le champ de +l'adresse avec l'adresse correspondante dans le cas ou elle se trouve +dans le champ <literal>{reply-to}</literal> du message de +l'emetteur. Cela sera donc transfomé de la manière suivante: +<informalexample> +<screen>%<<emphasis remap=bf>si</emphasis> {reply-to} <emphasis +remap=bf> dans le message original ou trouve un champ reply-to</emphasis> +alors la mettre dans le champ formataddr, %? <emphasis remap=bf>sinon +prendre le contenu du champ </emphasis> {from} <emphasis +remap=bf></emphasis>, %? <emphasis remap=bf>sinon</emphasis> prendre +le champ {sender} <emphasis remap=bf></emphasis>, %? +<emphasis remap=bf>et en dernier lieu prendre le champ </emphasis> {return-path} <emphasis remap=bf></emphasis>, %> <emphasis remap=bf>endif</emphasis>.</screen> +</informalexample></para> + +<para>Comme vous pouvez le voir, le formattage des champs de MH peut +etre largement étendu. Vous pourrez surment décrypter le maximum des +autres fonctions et des noms de variables. Toutes les autres +informations sur le façon d'écrire ces chaines de formattage se trouve +dans la page de manuel de MH. Donc lorsque vous aurez finit de creer +votre fichier <filename>replcomps</filename> vous n'aurez plus besoin +d'y toucher. Aucun autre programme ne vous donne autant de flexibilité +et de pouvoir que MH.</para> +</sect2> + +</sect1> + + + +</article> + diff --git a/fr_FR.ISO_8859-1/articles/multi-os/Makefile b/fr_FR.ISO_8859-1/articles/multi-os/Makefile new file mode 100644 index 0000000000..72c1d9b8c9 --- /dev/null +++ b/fr_FR.ISO_8859-1/articles/multi-os/Makefile @@ -0,0 +1,20 @@ +# +# The FreeBSD Documentation Project +# The FreeBSD French Documentation Project +# +# $FreeBSD$ +# Original revision: 1.4 +# + +DOC?= article + +FORMATS?= html + +INSTALL_COMPRESSED?=gz +INSTALL_ONLY_COMPRESSED?= + +SRCS= article.sgml + +DOC_PREFIX?= ${.CURDIR}/../../.. + +.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO_8859-1/articles/multi-os/article.sgml b/fr_FR.ISO_8859-1/articles/multi-os/article.sgml new file mode 100755 index 0000000000..994298fd4a --- /dev/null +++ b/fr_FR.ISO_8859-1/articles/multi-os/article.sgml @@ -0,0 +1,700 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + +<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ +<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man; +<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls; +<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract; +<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader; +<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators; + +<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors; +<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists; + <!ENTITY rel.current CDATA "3.2"> +]> + +<article lang="fr"> + <artheader> + <title>Installer et utiliser FreeBSD en même temps que d'autres systèmes d'exploitation</title> + <authorgroup> + <author> + <firstname>Jay</firstname> + <surname>Richmond</surname> + </author> + </authorgroup> + &artheader.copyright; + <abstract> + <para><email>jayrich@sysc.com</email></para> + <para>6 Aout 1996</para> + <para>Ce document explique comment faire cohabiter proprement FreeBSD et + d'autres systèmes d'exploitation courants tels que Linux, MS-DOS, OS/2 + et Windows 95. Remerciements particuliers à Annelise Anderson + <email>andrsn@stanford.edu</email>, Randall Hopper + <email>rhh@ct.picker.com</email> et Jordan K. Hubbard + <email>jkh@time.cdrom.com</email>.</para> + &abstract.license; + &abstract.disclaimer; + &trans.a.haby; + </abstract> + </artheader> + <sect1> + <title>Résumé</title> + <para>La plupart des gens n'arrivent pas à faire cohabiter leurs divers + systèmes d'exploitation sans des disques de grande capacité, + des informations sur les gros disques EIDE sont donc incluses. Comme il + y a de nombreuses combinaisons possibles de systèmes d'exploitation et + de configurations de disques durs, la section + <link linkend="examples">Exemples</link> sera peut-être celle + qui vous sera la plus utile. Elle décrit plusieurs configurations + d'ordinateurs utilisant plusieurs systèmes d'exploitation.</para> + <para>Ce document suppose que vous avez déjà préparé de la place sur votre + disque dur pour un système d'exploitation supplémentaire. Chaque fois que + vous repartitionnez votre disque dur, vous prenez le risque de détruire + les données qui se trouvent sur les partitions existantes. Toutefois, si + votre disque est entièrement occupé par DOS, vous trouverez peut-être le + programme FIPS (qui se trouve sur le CD-ROM FreeBSD dans le répertoire + <filename>\TOOLS</filename> ou que vous pouvez télécharger par + <ulink url="ftp://ftp.freebsd.org/pub/FreeBSD/tools">ftp</ulink>) utile. + Il vous permet de repartitionner votre disque sans détruire les données + qui s'y trouvent. Il existe aussi une programme commercial appelé + Partition Magic, qui vous permet de dimensionner et de supprimer des + partitions sans dégât.</para> + </sect1> + <sect1 id="boot-managers"> + <title>Revue des gestionnaires de démarrage</title> + <para>Ce ne sont que de brèves descriptions des différents gestionnaires + de démarrage que vous rencontrerez. Selon la configuration de votre + ordinateur, vous pourrez trouver utile d'en employer plus d'un sur le + même système.</para> + <variablelist> + <varlistentry> + <term>Boot Easy</term> + <listitem> + <para>C'est le gestionnaire de démarrage par défaut de FreeBSD. Il + peut démarrer à peu près n'importe quoi, y compris BSD, OS/2 + (HPFS), Windows 95 (FAT et FAT32) et Linux. Les partitions sont + sélectionnées à l'aide des touches fonction.</para> + </listitem> + </varlistentry> + <varlistentry> + <term><foreignphrase>OS/2 Boot Manager</foreignphrase></term> + <listitem> + <para>Il démarrera depuis la FAT, HPFS, FFS (FreeBSD) et EXT2 + (Linux). Il peut aussi démarrer depuis des partitions FAT32. + Les partitions sont sélectionnées avec les touches Flèches. + Le gestionnaire de démarrage + <foreignphrase>OS/2 Boot Manager</foreignphrase> est le + seul à utiliser sa propre partition distincte, à l'inverse des + autres qui utilisent l'enregistrement principal de démarrage + (<foreignphrase>Master Boot + Record</foreignphrase> - MBR). Il doit donc être + installé dans les 1024 premiers cylindres pour éviter des + problèmes de démarrage. Il peut charger Linux en utilisant LILO + lorsque ce dernier se trouve sur le secteur de démarrage et non sur + le MBR. Allez sur les + <ulink url="http://www.freenix.fr/linux/HOWTO">HOWTO Linux</ulink> + sur le World Wide Web pour plus d'informations sur le démarrage + de Linux avec le gestionnaire de démarrage d'OS/2.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>OS-BS</term> + <listitem> + <para>C'est une alternative à Boot Easy. Il vous donne plus de + contrôle sur le processus de démarrage, avec la possibilité de + sélectionner la partition à démarrer par défaut et le délai de + démarrage. La version béta de ce programme vous permet de + sélectionner le système d'exploitation à démarrer avec les + touches Flèches. Il est inclus sur le CD-ROM FreeBSD dans le + répertoire <filename>\TOOLS</filename> et vous pouvez le + télécharger par + <ulink url="ftp://ftp.freebsd.org/pub/FreeBSD/tools">ftp</ulink>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>LILO, ou LInux LOader (“chargeur Linux”)</term> + <listitem> + <para>C'est un gestionnaire de démarrage limité. Il peut démarrer + FreeBSD, mais il faut acommoder son fichier de configuration.</para> + </listitem> + </varlistentry> + </variablelist> + <informaltable> + <tgroup cols="1"> + <tbody> + <row> + <entry><emphasis>A propos de la FAT32:</emphasis> La FAT32 + remplace le système de fichiers FAT depuis la version Microsoft + OEM SR2 Béta, qui sera utilisée sur les ordinateurs avec Windows + 95 pré-installé vers la fin de 1996. Elle convertit le système + de fichiers FAT habituel et permet d'utiliser des tailles + d'agrégat - “<foreignphrase>cluster</foreignphrase>” - plus + petites sur de plus gros disques. La FAT32 modifie aussi le + secteur de démarrage et la table d'allocation habituels de la FAT, + ce qui la rend incompatible avec certains gestionnaires de + démarrage.</entry> + </row> + </tbody> + </tgroup> + </informaltable> + </sect1> + <sect1 id="typical"> + <title>Une configuration typique</title> + <para>Supposons que nous ayons deux gros disques EIDE, et que nous + voulions y installer FreeBSD, Linux et Windows 95.</para> + <para>Voici comment je procéderais avec ces disques durs:</para> + <itemizedlist> + <listitem> + <para><filename>/dev/wd0</filename> (premier disque dur + physique),</para> + </listitem> + <listitem> + <para><filename>/dev/wd1</filename> (second disque dur).</para> + </listitem> + </itemizedlist> + <para>Ils ont tous deux 1416 cylindres.</para> + <orderedlist> + <listitem> + <para>Je démarre avec une disquette de démarrage MS-DOS ou + Windows qui contient l'utilitaire <filename>FDISK.EXE</filename> + et crée une petite partition primaire de 50 Mo (35-40 pour Windows + 95 et un peu d'espace libre) sur le premier disque. Je crée aussi + une partition plus importante sur le second disque pour mes + applications et mes données Windows.</para> + </listitem> + <listitem> + <para>Je redémarre et installe Windows 95 (plus facile à dire qu'à + faire) sur la partition <filename>C:</filename>.</para> + </listitem> + <listitem> + <para>J'installe ensuite Linux. Je ne suis pas certain pour qui + concerne toutes les distributions de Linux, mais la Slackware + comprend LILO (voyez la section + <link linkend="boot-managers">Revue des gestionnaires de + démarrage</link>). Au moment de partitionner mon disque dur + avec l'utilitaire <filename>fdisk</filename> de Linux, + je mets tout Linux sur le premier disque (peut-être 300 Mo + pour une partition racine confortable et de l'espace de + pagination).</para> + </listitem> + <listitem> + <para>Après avoir installé Linux, et quand on me demande si je veux + installer LILO, je fais <emphasis>attention</emphasis> à l'installer + sur le secteur de démarrage de ma partition racine Linux, et non + sur le MBR (<foreignphrase>Master Boot + Record</foreignphrase> - enregistrement principal de + démarrage).</para> + </listitem> + <listitem> + <para>L'espace restant disponible sur le disque peut servir à + FreeBSD. Je vérifie aussi que la + tranche - “<foreignphrase>slice</foreignphrase>” - racine + de FreeBSD ne déborde pas de la limite des 1024 cylindres (1024 + cylindres correspond à 528 Mo à partir du début du disque sur nos + hypothétiques disques de 720 Mo). J'utiliserai éventuellement le + reste du disque dur (environ 270 Mo) pour les tranches + <filename>/usr</filename> et <filename>/var</filename>. Le + reste du second + disque (l'espace disponible dépend de la taille de ma partition + d'applications/données Windows que j'ai créée à l'étape 1) peut être + utilisé pour la tranche <filename>/usr/src</filename> et l'espace + de pagination.</para> + </listitem> + <listitem> + <para>Vus de l'utilitaire <filename>fdisk</filename> de Windows 95, mes + disques ressembleraient à ceci:</para> + <programlisting> +--------------------------------------------------------------------- + + Display Partition Information + +Current fixed disk drive: 1 + +Partition Status Type Volume_Label Mbytes System Usage +C: 1 A PRI DOS 50 FAT** 7% + 2 A Non-DOS (Linux) 300 43% + +Total disk space is 696 Mbytes (1 Mbyte = 1048576 bytes) + +Press Esc to continue + +--------------------------------------------------------------------- + + Display Partition Information + +Current fixed disk drive: 2 + +Partition Status Type Volume_Label Mbytes System Usage +D: 1 A PRI DOS 420 FAT** 60% + +Total disk space is 696 Mbytes (1 Mbyte = 1048576 bytes) + +Press Esc to continue + +--------------------------------------------------------------------- + </programlisting> + <para>Disons FAT16, ou FAT32 si vous utilisez la mise à jour + OEM SR2 (voyez la section + <link linkend="boot-managers">Revue des gestionnaires de + démarrage</link>).</para> + </listitem> + <listitem> + <para>J'installe FreeBSD. Je veille à démarrer avec le premier + disque dur défini comme “NORMAL” dans le paramétrage + du BIOS. Sans cela, je devrais indiquer la géométrie réelle de mon + disque au démarrage (pour la connaître, démarrez Windows 95 et + consultez les diagnostics Microsoft (<filename>MSD.EXE</filename>) + ou allez voir dans le BIOS) avec le paramètre + <literal>hd0=1416,16,63</literal> où <replaceable>1416</replaceable> + est le nombre de cylindres de mon disque dur, + <replaceable>16</replaceable> est le nombre de têtes par piste et + <replaceable>63</replaceable> est le nombre de secteurs par + tête.</para> + </listitem> + <listitem> + <para>Au moment de partitionner le disque dur, je fais attention à + bien installer Boot Easy sur le premier disque. Je ne m'occupe pas + du second disque, à partir duquel rien n'est démarré.</para> + </listitem> + <listitem> + <para>Au redémarrage, Boot Easy devrait reconnaître mes trois + partitions démarrables comme DOS (Windows 95), Linux et BSD + (FreeBSD)</para> + </listitem> + </orderedlist> + </sect1> + <sect1 id="special"> + <title>Considérations particulières</title> + <para>La plupart des systèmes d'exploitation sont très chatouilleux sur la + façon et l'endroit où ils sont installés sur le disque dur. Windows 95 et + DOS doivent être sur la première partition primaire du premier disque dur. + OS/2 fait exception. Il peut être sur le premier ou le second disque et + sur une partition primaire ou étendue. Si vous n'êtes pas sûr de vous, + gardez le début des partitions démarrables avant le 1024ème + cylindre.</para> + <para>Si vous installez Windows 95 sur un système BSD existant, cela va + “écraser” le MBR, et vous devrez réinstaller votre précédent + gestionnaire de démarrage. Boot Easy peut être réinstallé avec + l'utilitaire <filename>BOOTINST.EXE</filename> qui se trouve dans le + répertoire <filename>\TOOLS</filename> du CD-ROM, ou peut être téléchargé + par <ulink url="ftp://ftp.freebsd.org/pub/FreeBSD/tools">ftp</ulink>. + Vous pouvez aussi relancer le processus d'installation et aller dans + l'éditeur de partitions. De là, indiquez que la partition FreeBSD est + démarrable, choisissez l'option <option>Boot Manager</option> + (gestionnaire de démarrage) et tapez + <literal>W</literal> pour écrire les informations sur le MBR. Vous + pouvez maintenant redémarrer, et Boot Easy reconnaîtra votre Windows 95 + en tant que DOS.</para> + <para>N'oubliez pas s'il vous plaît qu'OS/2 peut lire les partitions FAT + et HPFS, mais pas les partitions FFS (FreeBSD) ou EXT2 (Linux). De même, + Windows 95 ne peut que lire et écrire sur les partitions FAT et FAT32 + (voyez la section <link linkend="boot-managers">Revue des gestionnaire + de démarrage</link>). FreeBSD peut lire la plupart des systèmes de + fichiers, mais ne sait pas actuellement lire les partitions HPFS. Linux + peut lire les partitions HPFS, mais ne peut pas y écrire. Les versions + récentes du noyau Linux (2.x) peuvent lire et écrire les partitions VFAT + de Windows 95 (La VFAT est ce qui permet à Windows d'utiliser des noms + de fichiers longs - c'est à peu près la même chose que la + FAT). Linux peut lire et écrire sur la plupart des systèmes de fichiers. + Pigé? Je l'espère.</para> + </sect1> + <sect1 id="examples"> + <title>Exemples</title> + <para><emphasis>(Cette section a besoin d'être revue, envoyez s'il vous + plaît vos exemples à <email>jayrich@sysc.com</email>.)</emphasis></para> + <para>FreeBSD + Windows 95: Si vous avez installé FreeBSD après Windows 95, + vous devriez voir la mention <literal>DOS</literal> sur le menu de Boot + Easy. C'est Windows 95. Si vous avez installé Windows 95 après FreeBSD, + lisez la section <link linkend="special">Considérations + particulières</link> ci-dessus. Tant que votre disque n'a pas 1024 + cylindres, vous ne devriez pas avoir de problèmes pour démarrer. Si + toutefois une de vos partitions va au-delà du 1024ème cylindre, et que + vous avez des messages du type <literal>invalid system disk</literal> + sous DOS (Windows 95) et que FreeBSD ne démarre pas, cherchez dans les + paramètres de configuration de votre BIOS quelque chose appelé + “<literal>> 1024 cylinder support</literal>” ou + mode “<literal>NORMAL/LBA</literal>”. DOS peut avoir besoin + du LBA (<foreignphrase>Logical Block + Adressing</foreignphrase> - Adressage de bloc logique) pour + démarrer correctement. Si la perspective de modifier les paramètres du + BIOS à chaque démarrage ne vous enchante pas, vous pouvez démarrer + FreeBSD depuis DOS avec l'utilitaire <filename>FBSDBOOT.EXE</filename> + du CD (il devrait reconnaître votre partition FreeBSD et la + démarrer).</para> + <para>FreeBSD + OS/2 + Windows: Rien de nouveau dans ce cas. Le gestionnaire + de démarrage d'OS/2 peut démarrer tous ces systèmes d'exploitation, il ne + devrait pas y avoir de problème.</para> + <para>FreeBSD + Linux: Vous pouvez aussi utiliser Boot Easy pour démarrer + les deux systèmes d'exploitation.</para> + <para>FreeBSD + Linux + Windows 95: (voyez la section + <link linkend="typical">Une installation typique</link>).</para> + </sect1> + <sect1 id="help"> + <title>Autres endroits où trouver de l'aide</title> + <para>Il y a de nombreux + <ulink url="http://www.freenix.fr/linux/HOWTO">HOWTO Linux</ulink> + qui traitent des systèmes d'exploitation multiples sur un même + disque.</para> + <para>Le + <ulink url="http://www.linuxresources.com/LDP/HOWTO/mini/Linux+DOS+Win95+OS2.html">mini-HOWTO + Linux+DOS+Win95+OS2</ulink> donne des indications sur la configuration + du gestionnaire de démarrage d'OS/2, et le + <ulink url="http://www.freenix.fr/linux/HOWTO/mini/Linux+FreeBSD.html">mini-HOWTO + Linux+FreeBSD</ulink> peut aussi vous intéresser. + L'<ulink url="http://www.in.net/~jkatz/win95/Linux-HOWTO.html">HOWTO + Linux</ulink> est aussi utile.</para> + <para>Le + <ulink url="http://www.dorsal.org/~dcl/publications/NTLDR_hacking">Guide + de programmation du chargeur NT</ulink> fournit des informations + intéressantes sur le démarrage de Windows NT, 95 et DOS avec d'autres + systèmes d'exploitation.</para> + <para>Le jeu de documents d'Hale Landis, “Comment ça marche”, + contient de bonnes informations sur toutes sortes de géométries de disques + et autres sujets liés au démarrage. Voici quelques liens qui peuvent vous + aider à le trouver:</para> + <itemizedlist> + <listitem> + <para><ulink url="ftp://fission.dt.wdc.com/pub/otherdocs/pc_systems/how_it_works/allhiw.zip">ftp://fission.dt.wdc.com/pub/otherdocs/pc_systems/how_it_works/allhiw.zip</ulink>,</para> + </listitem> + <listitem> + <para><ulink url="http://www.cs.yorku.ca/People/frank/docs/">http://www.cs.yorku.ca/People/frank/docs/</ulink>.</para> + </listitem> + </itemizedlist> + <para>Enfin, ne négligez pas la documentation du noyau de FreeBSD sur le + processus de démarrage, disponible dans la distribution du source du + noyau (elle est installée dans + <ulink url="file:/usr/src/sys/i386/boot/biosboot/README.386BSD">file:/usr/src/sys/i386/boot/biosboot/README.386BSD</ulink>).</para> + </sect1> + <sect1> + <title>Détails Techniques</title> + <para><emphasis>(Contribution de Randall Hopper + <email>rhh@ct.picker.com</email>)</emphasis></para> + <para>Cette section tente de vous donner assez d'informations de base + sur vos disques durs et sur le processus de démarrage à partir d'un + disque pour vous permettre de régler la plupart des problèmes que vous + pourriez rencontrer lorsque vous configurerez le démarrage de plusieurs + systèmes d'exploitation. Elle commence par des choses relativement + élémentaires, vous préférerez donc peut-être la parcourir en diagonale + jusqu'à ce que les points abordés vous paraissent moins familiers et + commencer alors à la lire en détail.</para> + <sect2> + <title>Introduction aux disques</title> + <para>Trois termes fondamentaux décrivent la localisation des données + sur vos disques durs: Cylindres, Têtes et Secteurs. Il n'est pas très + important de savoir à quoi ils se rapportent sinon qu'ensemble, ils + définissent où sont physiquement les données sur le disque.</para> + <para>Votre disque a un nombre donné de cylindres, de têtes, et de + secteurs par tête-cylindre (un doublet tête-cylindre est aussi appelé + une piste). Ensemble, ces informations définissent la “géométrie + physique” de votre disque. Il y a typiquement 512 octets par + secteur et 63 secteurs par pistes, le nombre de cylindres et de têtes + variant très largement d'un disque à l'autre. Vous pouvez alors + calculer la quantité d'informations que peut enregistrer votre disque + par la formule:</para> + <programlisting> +nombre de cylindres X nombre de têtes X 63 secteurs/piste X 512 octets/secteur + </programlisting> + <para>Par exemple, pour mon disque Western Digital AC31600 EIDE de 1,6 Go, +cela donne:</para> + <programlisting> +3148 cylindres X 16 têtes X 63 secteurs/piste X 512 octets/secteur + </programlisting> + <para>c'est-à-dire 1.624.670.208 octets, ou environ 1,6 Go.</para> + <para>Vous pouvez connaître la géométrie physique de votre disque dur + (nombre de cylindres, de têtes et de secteurs par piste) avec ATAID + ou d'autres programmes que vous trouverez sur l'Internet. Ces + informations sont peut-être aussi fournies avec votre disque. Faites + cependant attention: si vous utilisez le LBA du BIOS (voyez la section + <link linkend="limits">Restrictions pour le démarrage et + avertissements</link>), vous ne pouvez pas vous servir de n'importe + quel programme pour connaître la géométrie physique. Cela parce que de + nombreux programmes (e.g., <filename>MSD.EXE</filename> ou + le <filename>fdisk</filename> de FreeBSD) ne reconnaissent pas la + géométrie physique, ils listent à la place la <emphasis>géométrie + redéfinie</emphasis> (des valeurs virtuelles dues à l'utilisation + du LBA). Continuez à lire pour savoir ce que cela veut dire.</para> + <para>Une autre chose à savoir à propos de ces termes. 3 + valeurs - un numéro de cylindre, un numéro de tête, et un + numéro du secteur sur la piste - identifient l'adresse absolue + d'un secteur sur votre disque. Les cylindres et les têtes sont + numérotés à partir de 0, et les numéros de secteurs commencent à + 1.</para> + <para>Ceux que des détails plus techniques intéressent peuvent + trouver un peu partout sur l'Internet des informations sur la géométrie + des disques, les secteurs de démarrage, les BIOS, etc. Faites une + recherche sur Yahoo, Lycos, etc. pour <literal>boot sector</literal> ou + <literal>master boot record</literal>. Parmi les choses utiles que vous + trouverez, il y a le jeu de documents + “Comment ça marche” - <foreignphrase>How It + Works</foreignphrase> de Hale Landis. Voyez la section + <link linkend="help">Autres endroits où trouver de l'aide</link> pour + avoir quelques pointeurs vers ces documents.</para> + <para>OK, assez de terminologie. Nous sommes censés parler de démarrage + ici.</para> + </sect2> + <sect2 id="booting"> + <title>Le processus de démarrage</title> + <para>Sur le premier secteur de votre disque (cylindre 0, tête 0, + secteur 1) se trouve l'enregistrement principal de + démarrage - <foreignphrase>Master Boot + Record</foreignphrase> (MBR). Il contient une carte de votre disque. + Il identifie jusqu'à <emphasis>4 partitions</emphasis>, chacune d'elle + étant un espace contigu sur ce disque. FreeBSD appelle les partitions + des tranches - <foreignphrase>slices</foreignphrase> - pour + éviter la confusion avec ses propres partitions, mais nous + n'utiliserons pas ici ce terme. Chaque partition peut contenir son + propre système d'exploitation.</para> + <para>Chaque entrée de partition dans le MBR comprend un + <emphasis>IDentifiant de partition</emphasis>, un + <emphasis>Cylindre/Tête/Secteur de Début</emphasis> et un + <emphasis>Cylindre/Tête/Secteur de Fin</emphasis>. L'IDentifiant de + partition dit de quel type de partition il s'agit (de quel OS) et le + Début/Fin dit où elle se trouve. La table des + <link linkend="partitions">IDs de partitions</link> liste un + échantillon d'identifiants de partitions usuels.</para> + <informaltable id="partitions"> + <tgroup cols="2"> + <thead> + <row> + <entry>ID (hex)</entry> + <entry>Description</entry> + </row> + </thead> + <tbody> + <row> + <entry>01</entry> + <entry>DOS12 primaire (FAT 12-bit)</entry> + </row> + <row> + <entry>04</entry> + <entry>DOS16 primaire (FAT 16-bit)</entry> + </row> + <row> + <entry>05</entry> + <entry>DOS12 étendue</entry> + </row> + <row> + <entry>06</entry> + <entry>DOS primaire large (> 32 Mo)</entry> + </row> + <row> + <entry>0A</entry> + <entry>OS/2</entry> + </row> + <row> + <entry>83</entry> + <entry>Linux (EXT2FS)</entry> + </row> + <row> + <entry>A5</entry> + <entry>FreeBSD, NetBSD, 386BSD (UFS)</entry> + </row> + </tbody> + </tgroup> + </informaltable> + <note> + <para>Toutes les partitions ne dont pas démarrables (e.g. DOS étendue). + Certaines le sont - d'autres ne le sont pas. Ce qui rend + une partition démarrable est la configuration du secteur de démarrage + de la + partition - <foreignphrase>Partition Boot Sector</foreignphrase> - qui + est toujours présent au début de chaque partition.</para> + </note> + <para>Quand vous configurez votre gestionnaire de démarrage favori, il + consulte les entrées dans les tables de partitions du MBR de tous vos + disques et vous donne la possibilité de donner un nom à ces entrées. + Quand vous démarrez ensuite, le gestionnaire de démarrage + est appelé par du code prévu pour cela à partir secteur principal de + démarrage - <foreignphrase>Master Boot Sector</foreignphrase> - du + premier disque trouvé sur votre système. Le gestionnaire consulte + l'entrée de la table de partitions du MBR correspondant à la partition + que vous avez choisie, charge le secteur de démarrage de cette partition + et lui passe le contrôle. Ce secteur de démarrage de la partition + elle-même contient suffisamment d'informations pour commencer à charger + le système d'exploitation qui se trouve sur cette partition.</para> + <para>Il y a une chose importante à savoir dont nous n'avons pas encore + parlé. Tous vos disques durs ont un MBR. Toutefois, celui qui est + important est celui qui se trouve sur le premier disque reconnu par le + BIOS. Si vous n'avez que des disques durs IDE, c'est le premier disque + IDE (e.g. le disque maître sur le premier contrôleur). De même pour les + systèmes entièrement SCSI. Si vous avez et des disques durs IDE et des + disques durs SCSI, le disque IDE est habituellement le premier disque + dont la présence est testée par le BIOS, le premier disque IDE est donc + le premier disque reconnu. Le gestionnaire de démarrage que vous + installerez sera implémenté sur le premier disque dur reconnu comme + nous venons de l'expliquer.</para> + </sect2> + <sect2 id="limits"> + <title>Restrictions pour le démarrage et avertissements</title + <para>Voici maintenant les choses intéressantes auxquelles il faut + faire attention.</para> + <sect3> + <title>La redoutable limitation à 1024 cylindres et en quoi le LBA du + BIOS peut être utile</title> + <para>La première partie du processus de démarrage est entièrement + confiée au BIOS, (si ce terme est nouveau pour vous, le BIOS est + un circuit électronique sur votre carte mère qui contient le + code de démarrage de votre ordinateur). C'est pourquoi cette + première partie du processus est soumise aux limitations du + BIOS.</para> + <para>L'interface BIOS utilisée pour lire le disque dur durant + cette phase (INT 13H, Sous-fonction 2) alloue 10 bits pour le + numéro de cylindre, 8 bits pour le numéro de tête, et 6 bits + pour le numéro de secteur. Cela limite les utilisateurs de + cette interface (i.e. les gestionnaires de démarrage implémentés + sur le MBR du disque ainsi que les chargeurs de systèmes + d'exploitation implémentés sur les secteurs de démarrage) à:</para> + <itemizedlist> + <listitem> + <para>1024 cylindres au plus,</para> + </listitem> + <listitem> + <para>256 têtes au plus,</para> + </listitem> + <listitem> + <para>64 secteurs/piste au plus, (en fait 63, 0 n'est pas + disponible).</para> + </listitem> + </itemizedlist> + <para>Or les diques durs de grande capacité ont beaucoup de + cylindres et peu de têtes, le nombre de cylindres de ces disques + est donc invariablement supérieurs à 1024. De ce fait et à cause + de l'interface BIOS telle qu'elle est, vous ne pouvez pas démarrer + n'importe où sur votre disque dur. Le code de démarrage (le + gestionnaire de démarrage et le chargeur du système d'exploitation + implémenté sur les secteurs de démarrage de chaque partition + démarrable) doivent se situer avant le 1024ème cylindre. Si votre + disque dur est standard et a 16 têtes, cela équivaut à:</para> + <programlisting> +1024 cylindres/disque X 16 têtes/disque X 63 secteurs/piste X 512 octets + </programlisting> + <para>c'est-à-dire la limite souvent citée de 528 Mo.</para> + <para>C'est là qu'intervient le LBA (<foreignphrase>Logical Block + Adressing</foreignphrase> - “adressage de bloc + logique”) du BIOS. Le LBA du BIOS donne à l'utilisateur + des routines de l'API (<foreignphrase>Application Programming + Interface</foreignphrase> - “interface de + programmation”) du BIOS, la possibilité d'accéder aux + cylindres au-delà de 1024 avec les interfaces du BIOS en + redéfinissant le cylindre. Cela signifie qu'il construit une + nouvelle géométrie de vos cylindres et têtes, faisant croire + au BIOS que votre disque a moins de cylindres et plus de têtes + qu'en réalité. En d'autres termes, il profite du fait que les + disques ont relativement peu de têtes et beaucoup de cylindres, + pour modifier le rapport entre nombre de cylindres et nombre de + têtes de façon à ce que tous deux soient inférieurs aux limites + mentionnées ci-dessus (1024 cylindres, 256 têtes).</para> + <para>Pour prendre de nouveau l'exemple de mon Western Digital 1,6 + Go, il a pour géométrie physique:</para> + <programlisting> +(3148 cylindres, 16 têtes, 63 secteurs/piste, 512 octets/secteur) + </programlisting> + <para>Alors que le LBA du BIOS la redéfinit comme suit:</para> + <programlisting> +( 787 cylindres, 64 têtes, 63 secteurs/piste, 512 octets/secteur) + </programlisting> + <para>ce qui correspond à la même capacité physique, mais avec des + nombres de cylindres et de têtes dans les limites acceptables par + les API du BIOS. (Au passage, j'ai sur l'un de mes disques, et + Linux et FreeBSD au-delà du 1024ème cylindre, et les deux démarrent + sans problème, grâce au LBA du BIOS.)</para> + </sect3> + <sect3> + <title>Gestionnaires de démarrage et allocation de l'espace + disque</title> + <para>Une autre chose à laquelle il faut faire attention lorsque vous + installez un gestionnaire de démarrage est l'allocation d'espace + disque pour ce gestionnaire. Il vaut mieux être informé de cette + question avant de commencer pour vous éviter d'avoir à réinstaller un + ou plusieurs de vos systèmes d'exploitation.</para> + <para>Si vous avez suivi ce qui a été dit sur le + <link linkend="booting">processus de démarrage</link> + à propos du secteur principal de démarrage (où se trouve le MBR), + des secteurs de démarrage des partitions et du processus de démarrage, + vous vous êtes peut-être demandé où va se trouver ce foutu + gestionnaire de démarrage. Bien, certains gestionnaires de démarrage + sont suffisament légers pour tenir entièrement dans le secteur + principal de démarrage (cylindre 0, tête 0, secteur 1) avec la table + de partitions. D'autres ont besoin d'un peu plus d'espace et débordent + en fait de quelques secteurs après le secteur principal de démarrage + sur la piste cylindre 0 tête 0, qui sont normalement libres... + normalement.</para> + <para>Là est le hic... Certains systèmes d'exploitation (y compris + FreeBSD) vous permettent de faire débuter vos partitions juste après + le secteur principal de démarrage au cylindre 0, tête 0, secteur 2, + si vous le voulez. En fait, si vous donnez au programme + <citerefentry><refentrytitle>sysinstall</refentrytitle></citerefentry> + de FreeBSD, un disque dont le début est vierge ou un disque totalement + vide, c'est là qu'il fera commencer par défaut la partition FreeBSD + (c'est tout du moins ce qu'il a fait quand je suis tombé dans ce + piège). Quand vous installez ensuite le gestionnaire de démarrage, si + c'est l'un de ceux qui occupent quelques secteurs supplémentaires + après le MBR, il écrase les données qui se trouvent au début de la + première partie. Dans le cas de FreeBSD, cela écrase le label du + disque et empêche de démarrer votre partition FreeBSD.</para> + <para>Le moyen facile d'éviter ce problème (et de vous garder le + possibilité d'essayer différents gestionnaires de démarrage par la + suite) est de ne pas allouer la première piste du disque quand vous le + partitionnez. Cela réserve l'espace entre le cylindre 0, tête 0, + secteur 2 et le cylindre 0, tête 0, secteur 63, et votre partition + commence au cylindre 1, tête 1, secteur 1. Pour ce que cela vaut, + quand vous créez une partition DOS au début de votre disque, DOS + laisse par défaut cet espace inoccupé (c'est pourquoi certains + gestionnaires de démarrage font l'hypothèse qu'il est disponible). + Mettre une partition DOS au début de votre disque vous permet aussi + d'éviter le problème. C'est ce que je préfère personnellement faire, + mettre une partition DOS de 1 Mo au début, parce que cela évite + aussi que la lettre désignant mon disque DOS primaire soit modifiée + ensuite quand je repartitionne.</para> + <para>Pour servir de référence, les gestionnaires de démarrage + suivants n'utilisent que le secteur principal de démarrage pour + mettre leur code et leurs données:</para> + <itemizedlist> + <listitem> + <para>OS-BS 1.35,</para> + </listitem> + <listitem> + <para>Boot Easy,</para> + </listitem> + <listitem> + <para>LILO.</para> + </listitem> + </itemizedlist> + <para>Ces gestionnaires de démarrage occupent quelques secteurs + supplémentaires après le secteur principal de démarrage:</para> + <itemizedlist> + <listitem> + <para>OS-BS 2.0 Béta 8 (secteurs 2-5),</para> + </listitem> + <listitem> + <para>gestionnaire de démarrage d'OS/2.</para> + </listitem> + </itemizedlist> + </sect3> + <sect3> + <title>Que faire si votre système ne démarre pas?</title> + <para>Il se peut qu'à un moment donné + de l'installation d'un gestionnaire + de démarrage, vous laissiez le MBR dans un état tel que votre machine + ne redémarre plus. C'est peu probable, mais possible lorsque vous + refaites un FDISK alors qu'il y a déjà un gestionnaire de démarrage + installé.</para> + <para>Si vous avez une partition DOS démarrable, vous pouvez démarrer + avec une disquette de démarrage DOS, et lancer:</para> + <informalexample> +<screen><prompt>A:\></prompt> <userinput>FDISK /MBR</userinput></screen> + </informalexample> + <para>pour réinstaller le code d'origine de démarrage simple du DOS + seul sur le système. Vous pouvez alors démarrer DOS (et DOS + uniquement) depuis le disque dur. Une autre solution consiste à + réexécuter le programme d'installation de votre gestionnaire de + démarrage à partir d'une disquette démarrable.</para> + </sect3> + </sect2> + </sect1> +</article> diff --git a/fr_FR.ISO_8859-1/articles/new-users/Makefile b/fr_FR.ISO_8859-1/articles/new-users/Makefile new file mode 100644 index 0000000000..72c1d9b8c9 --- /dev/null +++ b/fr_FR.ISO_8859-1/articles/new-users/Makefile @@ -0,0 +1,20 @@ +# +# The FreeBSD Documentation Project +# The FreeBSD French Documentation Project +# +# $FreeBSD$ +# Original revision: 1.4 +# + +DOC?= article + +FORMATS?= html + +INSTALL_COMPRESSED?=gz +INSTALL_ONLY_COMPRESSED?= + +SRCS= article.sgml + +DOC_PREFIX?= ${.CURDIR}/../../.. + +.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO_8859-1/articles/new-users/article.sgml b/fr_FR.ISO_8859-1/articles/new-users/article.sgml new file mode 100755 index 0000000000..50a698babe --- /dev/null +++ b/fr_FR.ISO_8859-1/articles/new-users/article.sgml @@ -0,0 +1,827 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + +<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ +<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man; +<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls; +<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract; +<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader; +<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators; + +<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors; +<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists; + <!ENTITY rel.current CDATA "3.2"> +]> + +<article lang="fr"> +<artheader> +<title>Pour les Nouveaux Venus à FreeBSD et Unix</title> +<authorgroup> +<author> +<firstname>Annelise</firstname> +<surname>Anderson</surname> +<affiliation> +<address><email>andrsn@hoover.stanford.edu</email></address> +</affiliation> +</author> +</authorgroup> +<pubdate>15 Août 1997</pubdate> +&artheader.copyright; +<abstract> +<para>Félicitations pour avoir installé FreeBSD! Cette +introduction concerne les nouveaux venus à la fois à FreeBSD +<emphasis>et</emphasis> à Unix - elle commence donc par les bases. Elle +suppose que vous utilisiez la version 2.0.5 ou une version ultérieure de +FreeBSD telle que distribuée par Walnut Creek ou FreeBSD.ORG, que votre +système n'a (jusqu'à présent) qu'un seul utilisateur (vous) - et que vous +êtes probablement à l'aise avec DOS/Windows ou OS/2.</para> +&abstract.license; +&abstract.disclaimer; +&trans.a.haby; +</abstract> +</artheader> +<sect1> +<title>Initialiser et Terminer une Session Utilisateur</title> +<para>Ouvrez une session (quand vous obtenez à l'écran l'invite <systemitem +class=prompt>login:</systemitem>) avec le compte utilisateur que vous avez +défini à l'installation ou sous le compte super-utilisateur + <firstterm>root</firstterm>. (FreeBSD a déjà créé le compte root lors de +l'installation; root peut accéder à tous les répertoires et tout faire, y +compris effacer des fichiers essentiels, donc soyez prudents!). Les symboles % +et # dans les exemples sont l'invite du système (la votre peut être différente), +où % correspond à un utilisateur normal et # distingue le compte root.</para> +<para>Pour terminer la session (vous obtiendrez à nouveau l'invite +<systemitem class=prompt>login:</systemitem>), tapez: +<informalexample> +<screen># <userinput>exit</userinput></screen> +</informalexample> +autant de fois que nécessaire. Bien sûr, n'oubliez pas la touche +<keysym>Entrée</keysym> à la fin des commandes, et rappelez-vous qu'Unix +fait la distinction entre les majuscules et les +minuscules - <command>exit</command>, mais pas +<command>EXIT</command>.</para> +<para>Pour arrêtez l'ordinateur, tapez: +<informalexample> +<screen># <userinput>/sbin/shutdown -h now</userinput></screen> +</informalexample> +Ou, pour le redémarrer, tapez: +<informalexample> +<screen># <userinput>/sbin/shutdown -r now</userinput></screen> +</informalexample> +ou: +<informalexample> +<screen># <userinput>/sbin/reboot</userinput></screen> +</informalexample> +</para> +<para>Vous pouvez aussi redémarrer avec: +<keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>Delete</keycap></keycombo>. +Laissez au système un peu de temps pour faire son travail. Cette séquence est, +dans les plus récentes versions de FreeBSD, l'équivalent de la commande +<command>/sbin/reboot</command>, et il est nettement préférable de l'employer +que d'utiliser l'interrupteur de réinitialisation de votre machine. A moins que +vous ne vouliez tout réinstaller ?</para> +</sect1> +<sect1> +<title>Créer un Nouveau Compte Utilisateur avec les Mêmes Droits que Root</title> +<para>Si vous n'avez pas créé de compte utilisateur au moment de l'installation, +et utilisez donc le compte root, vous devriez maintenant définir un nouvel +utilisateur avec: +<informalexample> +<screen># <userinput>adduser</userinput></screen> +</informalexample> +La première fois que vous utiliserez adduser, le programme vous demandera +peut-être de lui indiquer des options par défaut qu'il sauvegardera. Par +exemple, vous préférez peut-être que l'interpréteur de commandes soit csh, s'il +vous propose l'interpréteur sh. Sinon, tapez simplement Entrée pour conserver +les valeurs par défaut. Celles-ci sont enregistrées dans le fichier +<filename>/etc/adduser.conf</filename>, que vous pouvez éditer. +Supposons que vous ayez créé l'utilisateur <emphasis>jacques</emphasis> dont +le nom est <emphasis>Jacques Dupont</emphasis>. Attribuez un mot de passe +à jacques si la sécurité (pourquoi pas, même des enfants pourraient pianoter +sur le clavier) vous préoccupe. Quand le programme vous demande si vous +voulez que jacques appartienne à d'autres groupes, répondez: +<informalexample> +<screen>Login group is ``jacques''. Invite jacques into other groups: <userinput>wheel</userinput></screen> +</informalexample> +Vous pourrez alors ouvrir une session avec le compte +<emphasis>jacques</emphasis> puis utiliser la commande +<command>su</command> pour devenir root. Vous n'aurez dorénavant +plus besoin d'ouvrir immédiatement une session avec le compte root.</para> +<para>Vous pouvez quitter <command>adduser</command> à tout moment en tapant +<keycombo><keycap>Ctrl</keycap><keycap>C</keycap></keycombo>, et +pour finir vous pourrez valider le nouveau compte utilisateur ou simplement +taper <keycap>n</keycap> pour non. Peut-être voudrez vous créer un second +compte utilisateur (jeanne?), vous aurez ainsi une issue de secours si vous +modifiez les fichiers de configuration de jacques et que quelque chose tourne +mal.</para> +<para>Une fois que vous avez fini, utilisez <command>exit</command> +pour revenir à l'invite <systemitem class=prompt>login:</systemitem> +et ouvrez une session sous le compte <emphasis>jacques</emphasis>. Il est +toujours préférable de travailler autant que possible avec un compte utilisateur +ordinaire qui n'a pas autant de droits - et donc ne présente pas autant de +risques - que root.</para> +<para>Si vous avez déjà créé un compte et que vous voulez que cet utilisateur +puisse utiliser <command>su</command> pour devenir root, vous pouvez devenir +root et éditer le fichier <filename>/etc/group</filename>, pour y ajouter +jacques à la première ligne (le groupe wheel). Familiarisez-vous d'abord avec +l'éditeur de texte <command>vi</command> - ou utilisez l'éditeur plus +simple <command>ee</command>, présent sur les versions les plus récentes +de FreeBSD.</para> +</sect1> +<sect1> +<title>Tour d'Horizon</title> +<para>Sous une session utilisateur ordinaire, faites un tour d'horizon et +essayez quelques commandes qui vous fourniront des informations et de l'aide +quand vous utiliserez FreeBSD.</para> +<para>Voici quelques commandes et ce qu'elles font : +<variablelist> +<varlistentry><term><command>id</command></term> +<listitem> +<para>Vous dit qui vous êtes!</para> +</listitem> +</varlistentry> +<varlistentry><term><command>pwd</command></term> +<listitem> +<para>Vous dit où vous êtes - le répertoire de travail +courant.</para> +</listitem> +</varlistentry> +<varlistentry><term><command>ls</command></term> +<listitem> +<para>Donne la liste des fichiers du répertoire courant.</para> +</listitem> +</varlistentry> +<varlistentry><term><command>ls <option>-F</option></command></term> +<listitem> +<para>Donne la liste des fichiers du répertoire courant suivis d'une +<literal>*</literal> pour les exécutables, d'un <literal>/</literal> pour +les répertoires, et d'une <literal>@</literal> pour les liens +symboliques.</para> +</listitem> +</varlistentry> +<varlistentry><term><command>ls <option>-l</option></command></term> +<listitem> +<para>Donne la liste détaillée des fichiers du répertoire courant - taille, +date, autorisations.</para> +</listitem> +</varlistentry> +<varlistentry><term><command>ls <option>-a</option></command></term> +<listitem> +<para>Liste tous les fichiers, y compris les fichiers “.” +cachés. Si vous êtes root, les fichiers “.” sont visibles +sans l'option <option>-a</option>.</para> +</listitem> +</varlistentry> +<varlistentry><term><command>cd</command></term> +<listitem> +<para>Change de répertoire courant. <command>cd +<parameter>..</parameter></command> remonte d'un niveau dans l'arborescence; +notez l'espace après <command>cd</command>. <command>cd +<parameter>/usr/local</parameter></command> va dans ce répertoire. <command>cd +<parameter>~</parameter></command> va dans le répertoire de +l'utilisateur courant - e.g., <filename>/usr/home/jacques</filename>. +Essayez <command>cd <parameter>/cdrom</parameter></command>, puis +<command>ls</command>, pour voir si votre CDROM est monté et fonctionne.</para> +</listitem> +</varlistentry> +<varlistentry><term><command>view <replaceable>nom_de fichier</replaceable></command></term> +<listitem> +<para>Vous permet de visualiser le fichier +<replaceable>nom_de_fichier</replaceable> sans le modifier. Essayez +<command>view <parameter>/etc/fstab</parameter></command>. +<command>:q</command> pour quitter.</para> +</listitem> +</varlistentry> +<varlistentry><term><command>cat <replaceable>nom_de_fichier</replaceable></command></term> +<listitem> +<para>Liste <replaceable>nom_de_fichier</replaceable> à l'écran. S'il +est trop long et que vous n'en voyez que la fin, appuyez sur +<keycap>Arrêt Défil</keycap> et utilisez <keycap>flèche-vers-le-haut</keycap> +pour revenir en arrière; vous pouvez aussi utiliser <keycap>Arrêt Défil</keycap> +avec les pages de manuel. Appuyez à nouveau sur +<keycap>Arrêt Défil</keycap> pour +terminer votre lecture. Essayez <command>cat</command> sur quelques fichiers +“.” de votre répertoire utilisateur - <command>cat +<parameter>.cshrc</parameter></command>, <command>cat +<parameter>.login</parameter></command>, <command>cat +<parameter>.profile</parameter></command>.</para> +</listitem> +</varlistentry> +</variablelist> +Notez les alias de quelques commandes <command>ls</command> +dans le fichier <filename>.cshrc</filename> (ils sont très pratiques). +Vous pouvez créer d'autres alias en éditant le fichier +<filename>.cshrc</filename>. Vous pouvez aussi les mettre à disposition +de tous les utilisateurs en les définissant dans le fichier de configuration +général <filename>/etc/csh.cshrc</filename>.</para> +</sect1> +<sect1> +<title>Obtenir de l'Aide et de l'Information</title> +<para>Voici quelques moyens d'obtenir de l'aide. +<replaceable>Texte</replaceable> désigne quelque chose de votre choix + - normalement une commande ou un nom de fichier - que vous +tapez.</para> +<variablelist> +<varlistentry><term><command>apropos <replaceable>texte</replaceable></command></term> +<listitem> +<para>Tout ce qui contient la chaîne <replaceable>texte</replaceable> +dans la <database>base de données whatis</database>.</para> +</listitem> +</varlistentry> +<varlistentry><term><command>man <replaceable>texte</replaceable></command></term> +<listitem> +<para>La page de manuel pour <replaceable>texte</replaceable>. C'est la +principale source de documentation des systèmes Unix. <command>man +<parameter>ls</parameter></command> vous expliquera toutes les possibilités +d'utilisation de la commande <command>ls</command>. Utilisez +<keycap>Entrée</keycap> pour faire défiler le texte, +<keycombo><keycap>Ctrl</keycap><keycap>b</keycap></keycombo> pour remonter +d'une page, <keycombo><keycap>Ctrl</keycap><keycap>f</keycap></keycombo> pour +passer à la page suivante, et <keycap>q</keycap> ou +<keycombo><keycap>Ctrl</keycap><keycap>c</keycap></keycombo> pour +quitter.</para> +</listitem> +</varlistentry> +<varlistentry><term><command>which <replaceable>texte</replaceable></command></term> +<listitem> +<para>Vous dit où se trouve la commande +<replaceable>texte</replaceable> +dans vos chemins d'accès.</para> +</listitem> +</varlistentry> +<varlistentry><term><command>locate <replaceable>texte</replaceable></command></term> +<listitem> +<para>Tous les répertoires où l'on trouve la chaîne +<replaceable>texte</replaceable>.</para> +</listitem> +</varlistentry> +<varlistentry><term><command>whatis <replaceable>texte</replaceable></command></term> +<listitem> +<para>Vous dit ce qu'est la commande <replaceable>texte</replaceable> +et où se trouve la page de manuel correspondante.</para> +</listitem> +</varlistentry> +<varlistentry><term><command>whereis <replaceable>text</replaceable></command></term> +<listitem> +<para>Cherche le fichier <replaceable>texte</replaceable>, et vous en donne +le chemin d'accès complet.</para> +</listitem> +</varlistentry> +</variablelist> +<para>Essayez la commande <command>whatis</command> sur quelques utilitaires +d'usage courant comme <command>cat</command>, +<command>more</command>, <command>grep</command>, +<command>mv</command>, <command>find</command>, +<command>tar</command>, <command>chmod</command>, +<command>chown</command>, <command>date</command> et +<command>script</command>. <command>more</command> vous permet de lire +une page à la fois comme sous DOS, e.g., <command>ls -l | +more</command> ou <command>more +<replaceable>nom_de_fichier</replaceable></command>. +<literal>*</literal> sert de caractère de substitution - e.g., <command>ls +w*</command> vous donnera la liste de tous les fichiers commençant par +<literal>w</literal>.</para> +<para>Certaines de ces commandes ne fonctionnent pas correctement? +<command>locate</command> et <command>whatis</command> +interrogent une base de données qui est reconstruite chaque semaine. +Si votre machine n'est pas en service le weekend (et sous FreeBSD), vous +devrez peut-être exécuter les commandes de maintenance quotidienne, hebdomadaire +et mensuelle de temps à autre. Faites-le sous le compte root et attendez qu'elles se terminent avant de lancer la suivante. +<informalexample> +<screen># <userinput>/etc/daily</userinput> +<lineannotation>sortie non mentionnée</lineannotation> +# <userinput>/etc/weekly</userinput> +<lineannotation>sortie non mentionnée</lineannotation> +# <userinput>/etc/monthly</userinput> +<lineannotation>sortie non mentionnée</lineannotation> +</screen></informalexample></para> +<para>Si vous êtes las d'attendre, appuyez sur +<keycombo><keycap>Alt</keycap><keycap>F2</keycap></keycombo> pour obtenir une +nouvelle <firstterm>console virtuelle</firstterm>, et rouvrir une session. +Après tout, c'est un système multi-utilisateurs, multi-tâches. Ces +commandes afficheront probablement des messages à l'écran pendant +qu'elles s'exécutent; vous pouvez taper <command>clear</command> pour effacer +l'écran. Une fois qu'elles auront terminé, regardez le contenu des fichiers +<filename>/var/mail/root</filename> et +<filename>/var/log/messages</filename>.</para> +<para>Utiliser de telles commandes est une des tâches d'administration +système - étant seul utilisateur d'un système Unix, vous êtes votre +propre administrateur système. Pratiquement tout ce que vous aurez à faire +sous le compte root sera l'administration de votre système. Ces tâches +sont souvent mal décrites dans les ouvrages volumineux sur Unix +qui passent plus de temps à détailler les menus des gestionnaires de fenêtres. +Procurez-vous l'un des deux ouvrages de référence sur l'administration système, +soit Evi Nemeth et.al.'s <citetitle>UNIX System +Administration Handbook</citetitle> (Prentice-Hall, 1995, ISBN +0-13-15051-7) - deuxième édition avec une couverture rouge; ou +Æleen Frisch's <citetitle>Essential System +Administration</citetitle> (O'Reilly & Associates, 1993, ISBN +0-937175-80-3)<footnote><para>N.d.T.: traduit en français sous le titre +<citetitle>Les Bases de l'Administration Système</citetitle>, chez le même +éditeur.</para></footnote>. J'ai personnellement utilisé Nemeth.</para> +</sect1> +<sect1> +<title>Editer des Fichiers Texte</title> +<para>Pour configurer votre système, vous devez éditer des fichiers texte. Ils +sont presque tous dans le répertoire <filename>/etc</filename>; vous devrez +utiliser la commande <command>su</command> pour devenir root pour les +modifier. Vous pouvez vous servir de l'éditeur simple <command>ee</command>, +mais à long terme, cela vaut la peine d'apprendre à utiliser +<command>vi</command>. Il y a une excellente introduction à vi dans +<filename>/usr/src/contrib/nvi/docs/tutorial</filename> si vous l'avez +installé. Sinon vous pouvez le télécharger par ftp sur +<ulink url="ftp://ftp.cdrom.com">ftp://ftp.cdrom.com</ulink> +dans le répertoire +<filename>FreeBSD/FreeBSD-current/src/contrib/nvi/tutorial</filename>.</para> +<para>Avant d'éditer un fichier, faites-en une copie de sauvegarde. Supposons +que vous vouliez modifier le fichier <filename>/etc/rc.conf</filename>. Avec +la commande <command>cd /etc</command> vous allez dans le répertoire +<filename>/etc</filename>, puis tapez: +<informalexample> +<screen># <userinput>cp rc.conf rc.conf.orig</userinput></screen> +</informalexample> +pour recopier le fichier <filename>rc.conf</filename> dans +<filename>rc.conf.orig</filename>, de façon à pouvoir ensuite +recopier <filename>rc.conf.orig</filename> dans <emphasis +remap=tt>rc.conf</emphasis> pour revenir à la version originale. Il serait +encore mieux de le déplacer (renommer) puis de faire la copie en sens inverse: +<informalexample> +<screen># <userinput>mv rc.conf rc.conf.orig</userinput> +# <userinput>cp rc.conf.orig rc.conf</userinput></screen> +</informalexample> +parce que la commande <command>mv</command> conserve la date et le nom du +propriétaire d'origine du fichier. Vous pouvez maintenant éditer le fichier +<filename>rc.conf</filename>. Si vous voulez revenir à la version d'origine, +utilisez alors <userinput>mv rc.conf rc.conf.myedit</userinput> +(en supposant que vous vouliez conserver la version que vous avez modifiée) +puis: +<informalexample> +<screen># <userinput>mv rc.conf.orig rc.conf</userinput></screen> +</informalexample> +pour remettre l'original à sa place.</para> +<para>Pour éditer un fichier, tapez: +<informalexample> +<screen># <userinput>vi <replaceable>nom_de_fichier</replaceable></userinput></screen> +</informalexample> +déplacez vous dans le fichier avec les touches flèches. <keycap>Echap</keycap> (la touche d'échappement) met <command>vi</command> en mode commande. Voici +quelques-unes de ces commandes: +<variablelist> +<varlistentry><term><command>x</command></term> +<listitem> +<para>efface le caractère sur lequel se trouve le curseur.</para> +</listitem> +</varlistentry> +<varlistentry><term><command>dd</command></term> +<listitem> +<para>efface toute la ligne (même si elle dépasse la largeur de l'écran et +s'affiche sur plus d'une ligne).</para> +</listitem> +</varlistentry> +<varlistentry><term><command>i</command></term> +<listitem> +<para>permet d'insérer du texte devant la position du curseur.</para> +</listitem> +</varlistentry> +<varlistentry><term><command>a</command></term> +<listitem> +<para>permet d'insérer du texte après la position du curseur.</para> +</listitem> +</varlistentry> +</variablelist> +Après avoir tapé <command>i</command> ou <command>a</command>, +vous pouvez insérer du texte. <command>Echap</command> vous ramène en mode +commande. Vous pouvez alors taper: +<variablelist> +<varlistentry><term><command>:w</command></term> +<listitem> +<para>pour enregistrer le fichier modifié sur disque et continuer à +l'éditer,</para> +</listitem> +</varlistentry> +<varlistentry><term><command>:wq</command></term> +<listitem> +<para>pour enregistrer le fichier modifié sur disque et quitter +l'éditeur,</para> +</listitem> +</varlistentry> +<varlistentry><term><command>:q!</command></term> +<listitem> +<para>pour quitter l'éditeur sans enregistrer vos modifications,</para> +</listitem> +</varlistentry> +<varlistentry><term><command>/<replaceable>texte</replaceable></command></term> +<listitem> +<para>recherche la prochaine occurence de <replaceable>texte</replaceable> et +y positionne le curseur; <command>/<keycap>Entrée</keycap></command> (la touche +Entrée) recherche ensuite la prochaine occurrence de <replaceable>texte</replaceable>,</para> +</listitem> +</varlistentry> +<varlistentry><term><command>G</command></term> +<listitem> +<para>va à la fin du fichier,</para> +</listitem> +</varlistentry> +<varlistentry><term><command><replaceable>n</replaceable>G</command></term> +<listitem> +<para>va à la <replaceable>n</replaceable>ième ligne du fichier,</para> +</listitem> +</varlistentry> +<varlistentry><term><keycombo><keycap>Ctrl</><keycap>L</></keycombo></term> +<listitem> +<para>rafraîchit l'affichage,</para> +</listitem> +</varlistentry> +<varlistentry><term><keycombo><keycap>Ctrl</><keycap>b</></> et <keycombo><keycap>Ctrl</><keycap>f</></></term> +<listitem> +<para>remonte ou descend d'une page, de la même façon qu'avec les utilitaires +<command>more</> et <command>view</>.</para> +</listitem> +</varlistentry> +</variablelist> +</para> +<para>Entraînez-vous à utiliser <command>vi</> dans votre répertoire utilisateur +en créant un nouveau fichier avec <command>vi +<replaceable>nom_de_fichier</></> puis ajoutez-y et effacez du texte, +enregistrez le ficher et rééditez-le. <command>vi</> peut vous réserver +des surprises parce qu'il est assez complexe, et il vous arrivera de taper +accidentellement des commandes au résultat inattendu. (Certains aiment +vraiment <command>vi</> - il est bien plus puissant qu'EDIT +de DOS - voyez par exemple la commande <command>:r</> command.) Utilisez +<keycap>Echap</> une ou plusieurs fois pour être sûr que vous êtes en mode +commande quand vous êtes dans l'embarras, enregistrez régulièrement vos +modifications avec la commande <command>:w</>, et utilisez la commande +<command>:q!</> pour sortir et rééditer la dernière version enregistrée +avec <command>:w</> au besoin.</para> +<para>Vous pouvez maintenant <command>cd</> vers <filename>/etc</filename>, +<command>su</> pour devenir root, utiliser <command>vi</> pour éditer le +fichier <filename>/etc/group</filename>, et ajouter un utilisateur au groupe +wheel pour qu'il ait les mêmes droits que root. Ajoutez juste une virgule puis +le nom de l'utilisateur à la fin de la première ligne, appuyez sur +<keycap>Echap</>, et utilisez la commande <command>:wq</> pour enregistrer +le fichier et quitter l'éditeur. La modification est aussitôt prise en compte +par le système. (vous n'avez pas mis de blanc après la virgule, +n'est-ce-pas?)</para> +</sect1> +<sect1> +<title>Imprimer des fichiers DOS</title> +<para>A ce stade, vous n'avez probablement pas encore configuré FreeBSD +pour pouvoir utiliser votre imprimante. Voici donc une méthode pour +créer un fichier à partir d'une page de manuel, l'enregistrer sur disquette +et l'imprimer sous DOS. Si par exemple, vous voulez lire dans le détail +ce qui concerne la modification des droits d'accès aux fichiers (c'est assez +important), la commande man chmod vous affiche la page de manuel. La commande: +<informalexample> +<screen># <userinput>man chmod > chmod.txt</></screen> +</informalexample> +recopie la page de manuel dans le fichier <filename>chmod.txt</filename> au lieu +de l'afficher à l'écran. Mettez maintenant une disquette formatée DOS dans le +lecteur de disquettes A:, <command>su</> pour devenir root, et tapez: +<informalexample> +<screen># <userinput>/sbin/mount -t msdos /dev/fd0 /mnt</></screen> +</informalexample> +pour monter le lecteur de disquettes dans le répertoire +<filename>/mnt</filename>.</para> +<para>Ensuite (plus besoin d'être root, vous pouvez utiliser +<command>exit</> pour redevenir l'utilisateur jacques), vous pouvez aller +dans le répertoire où vous avez créé le fichier chmod.txt et le recopier +sur la disquette avec la commande: +<informalexample> +<screen>% <userinput>cp chmod.txt /mnt</></screen> +</informalexample> +puis utiliser <command>ls /mnt</command> pour lister le contenu du répertoire +<filename>/mnt</filename>, où devrait figurer le fichier +<filename>chmod.txt</filename>.</para> +<para>En particulier, il vous sera utile de créer un fichier à partir du +résultat de la commande +<filename>/sbin/dmesg</filename> en tapant: +<informalexample> +<screen>% <userinput>/sbin/dmesg > dmesg.txt</></screen> +</informalexample> +et en copiant <filename>dmesg.txt</filename> sur la disquette. +<command>/sbin/dmesg</command> liste les informations affichées au démarrage +du système, qu'il est utile de comprendre, parce qu'elles décrivent la +configuration matérielle reconnue par FreeBSD au démarrage. +Si vous posez des questions sur <email>freebsd-questions@FreeBSD.ORG</> ou +dans un forum USENET - du type “FreeBSD ne reconnaît pas mon +lecteur de bande, que faire ? ” - on vous demandera ce qu'indique +<command>dmesg</> sur votre système.</para> +<para>Vous pouvez maintenant démonter le lecteur de disquette (sous le compte +root) pour retirer la disquette avec la commande: +<informalexample> +<screen># <userinput>/sbin/umount /mnt</></screen> +</informalexample> +et redémarrer la machine pour passer sous DOS. Copiez ces fichiers dans un +répertoire DOS, éditez-les avec DOS EDIT, Windows Notepad, ou un traitement +de texte, faites une petite modification pour avoir à les enregistrer et +imprimez-les comme d'habitude sous DOS ou Windows. J'espère que cela marche! +Les pages de manuel s'impriment mieux avec la commande <command>print</command> +du DOS. (Copier des fichiers de FreeBSD vers une partition DOS montée est +dans certains cas encore un peu risqué).</para> +<para>Pour pouvoir imprimer depuis FreeBSD, il faut définir l'imprimante dans +le fichier <filename>/etc/printcap</filename> et créer le répertoire tampon +correspondant dans <filename>/var/spool/output</filename>. Si votre imprimante +est sur le port <hardware>lpt0</hardware> (qui s'appelle <hardware>LPT1</hardware> sous DOS), +il suffit d'aller dans le répertoire <filename>/var/spool/output</filename> et +(sous le compte root) de créer le répertoire <filename>lpd</>, s'il n'existe +pas, en tapant: +<informalexample> +<screen># <userinput>mkdir lpd</></screen> +</informalexample> +L'imprimante devrait alors répondre si elle était sous tension au démarrage du +système et les commandes lp ou lpr devraient envoyer un fichier à +l'imprimante. Que le fichier s'imprime ou non dépend de la +configuration de l'imprimante, qui est décrite dans le +<ulink url="&url.handbook;index.html">manuel FreeBSD.</></para> +</sect1> +<sect1> +<title>D'autres Commandes Utiles</title> +<para> +<variablelist> +<varlistentry><term><command>df</></term> +<listitem> +<para>liste les systèmes de fichiers montés, leur taille et leur utilisation.</para> +</listitem> +</varlistentry> +<varlistentry><term><command>ps aux</></term> +<listitem> +<para>liste les processus actifs. <command>ps ax</> en est une forme abregée.</para> +</listitem> +</varlistentry> +<varlistentry><term><command>rm <replaceable>nom_de_fichier</></></term> +<listitem> +<para>efface le fichier <replaceable>nom_de_fichier.</></para> +</listitem> +</varlistentry> +<varlistentry><term><command>rm -R <replaceable>répertoire</></></term> +<listitem> +<para>efface le répertoire <replaceable>répertoire</> et tous ses +sous-répertoires - attention!</para> +</listitem> +</varlistentry> +<varlistentry><term><command>ls -R</command></term> +<listitem> +<para>liste les fichiers du répertoire courant et de tous ses sous-répertoires; +j'en utilisais une variante, <command>ls -AFR > where.txt</command>, +pour avoir la liste de tous les fichiers du répertoire racine +<filename>/</filename> et (indépendamment) du répertoire +<filename>/usr</filename> avant de trouver un meilleur moyen pour rechercher +des fichiers.</para> +</listitem> +</varlistentry> +<varlistentry><term><command>passwd</></term> +<listitem> +<para>pour changer le mot de passe d'un utilisateur +(ou le mot de passe root).</para> +</listitem> +</varlistentry> +<varlistentry><term><command>man hier</></term> +<listitem> +<para>pages de manuel du système de fichier Unix.</para> +</listitem> +</varlistentry> +</variablelist></para> +<para>Avec le commande <command>find</> vous pouvez localiser le fichier +<replaceable>nom_de_fichier</replaceable> dans <filename>/usr</filename> ou un +de ses sous-répertoires: +<informalexample> +<screen>% <userinput>find /usr -name "<replaceable>nom_de_fichier</>"</></screen> +</informalexample> +Vous pouvez employer <literal>*</literal> comme caractère de substitution dans +<parameter>"<replaceable>nom_de_fichier</>"</> (qui doit être entre guillemets). +Si vous demandez à <command>find</command> d'effectuer la recherche dans <filename>/</filename> +au lieu de <filename>/usr</filename>, il va parcourir tous les systèmes de +fichiers montés, y compris le CDROM et la partition DOS.</para> +<para>Voici un excellent livre qui détaille les commandes et les utilitaires +du système Unix: +Abrahams & Larson, <citetitle>Unix for the Impatient</citetitle> +(2nd ed., Addison-Wesley, 1996). Vous trouverez aussi beaucoup d'informations +sur Unix sur l'Internet. Essayez l' +<ulink url="http://www.eecs.nwu.edu/unix.html">Unix Reference +Desk</ulink>.</para> +</sect1> +<sect1> +<title>Etapes Suivantes</title> +<para>Vous avez maintenant les outils nécessaires à l'exploration du système et +à l'édition de fichiers. Il y a énormement d'informations dans le +<ulink url="&url.handbook;index.html">manuel FreeBSD +</ulink> (que vous avez probablement aussi sur votre disque +dur) et sur le +<ulink url="http://www.freebsd.org/"> +site Internet de FreeBSD</ulink>. Il y a un grand nombre de logiciels sur le +CDROM de <ulink url="http://www.cdrom.com/">Walnut Creek</ulink> et sur leur +site Internet. Le "manuel" vous explique comment les utiliser +(installer le logiciel s'il existe, avec <command>pkg_add +/cdrom/packages/All/<replaceable>nom_du_logiciel</></>, +où <replaceable>nom_du_logiciel</replaceable> est le nom du fichier +correspondant au logiciel voulu). Le CDROM donne la liste des logiciels +pré-compilés ou non <footnote><para>N.d.T: Les logiciels prévus pour être utilisés avec FreeBSD peuvent être pré-compilés (“packages”) ou +disponibles sous forme de code source (“ports”) livré avec +les procédures nécessaires à sa compilation.</para></footnote> avec une +courte description de +chacun dans <filename>/cdrom/packages/index</filename>, +<filename>/cdrom/packages/index.txt</filename> et +<filename>/cdrom/ports/index</filename>. Il y a des descriptifs plus détaillés +dans <filename>/cdrom/ports/*/*/pkg/DESCR</filename>, où les +<literal>*</literal>s désignent respectivement les sous-répertoires regroupant +les logiciels par catégories et les noms des logiciels.</para> +<para>Si vous trouvez le "manuel" trop subtil (avec ses commandes +<command>lndir</> et ainsi de suite) en ce qui concerne l'installation des +logiciel à compiler, voici une méthode qui fonctionne habituellement:</para> +<para>Trouvez le logiciel que vous voulez, par exemple <command>kermit</>. Il +y aura un sous-répertoire correspondant sur le CDROM. Copiez ce sous-répertoire +dans <filename>/usr/local</filename> (là où l'on met généralement les logiciels +que l'on installe pour les mettre à la disposition de tous les utilisateurs) +avec: +<informalexample> +<screen># <userinput>cp -R /cdrom/ports/comm/kermit /usr/local</></screen> +</informalexample> +Ceci crée normalement un sous-répertoire <filename>/usr/local/kermit</filename> +qui contient tous les fichiers du sous-répertoire +<command>kermit</command> du CDROM.</para> +<para>Recherchez ensuite dans le répertoire +<filename>/cdrom/ports/distfiles</filename> un fichier dont le nom +indique que c'est le logiciel que vous voulez installer. Copiez ce fichier dans +<filename>/usr/ports/distfiles</filename>; avec les versions récentes, +vous pouvez sauter cette étape, FreeBSD s'en chargera. +Dans le cas de <command>kermit</>, il n'y a aucun fichier associé dans +<filename>/cdrom/ports/distfiles</filename>.</para> +<para>Puis <command>cd</> dans le sous-répertoire de +<filename>/usr/local/kermit</filename> qui contient le fichier +<filename>Makefile</>. Tapez: +<informalexample> +<screen># <userinput>make all install</></screen> +</informalexample> +</para> +<para>Pendant l'installation, le système ira chercher par ftp les +fichiers compressés qu'il ne trouve pas dans +<filename>/usr/ports/distfiles</filename>. Si vous n'êtes pas +encore connecté à l'Internet et que le fichier correspondant au +logiciel n'existe pas dans +<filename>/cdrom/ports/distfiles</filename>, vous devrez récupérer +ce fichier sur une autre machine et le copier dans +<filename>/usr/ports/distfiles</filename> depuis une disquette ou +votre partition Dos. Lisez <filename>Makefile</> (Avec <command>cat</>, +<command>more</> ou <command>view</>) pour trouver sur quel site (le +"master distribution site" - site de distribution d'origine) aller pour +récupérer le fichier et pour connaître +son nom. Ce nom sera tronqué si vous téléchargez le fichier sous DOS, et +vous devrez redonner au fichier son nom d'origine après l'avoir recopié +dans <filename>/usr/ports/distfiles</filename> +(avec la commande <command>mv</>) pour que FreeBSD le trouve. +(Utilisez le transfert de fichier en mode binaire!) Revenez ensuite dans +<filename>/usr/local/kermit</filename>, trouvez le sous-répertoire où est +<filename>Makefile</>, et tapez <command>make all install</>.</para> +<para>Il peut aussi arriver quand vous installez des logiciels pré-compilés ou +non qu'un autre logiciel soit nécessaire. Si l'installation s'interrompt avec +un message du style <errorname>can't find unzip</errorname>, vous devez d'abord +installer le logiciel unzip avant de continuer.</para> +<para>Un fois le logiciel installé, tapez <command>rehash</> pour que FreeBSD +relise la liste des fichiers dans les chemins d'accès par défaut, de façon +à ce qu'il sache ce qui s'y trouve. (Si vous obtenez de nombreux messages +d'erreur <errorname>path not found</> avec les commandes +<command>whereis</> ou <command>which</command>, ajoutez les répertoires +nécessaires à la liste des chemins d'accès par défaut définis dans le +fichier <filename>.cshrc</filename> de votre répertoire utilisateur. L'instruction +path d'Unix fonctionne de la même façon que sous DOS, à ceci près que, pour des +raisons de sécurité, le répertoire courant n'y est pas défini (par défaut); si +le programme que vous cherchez se trouve dans le répertoire courant, vous devrez +faire précéder le nom du programme de <filename>./</filename> pour l'exécuter +(pas d'espace après le “<filename>/</filename>”.) </para> +<para>Vous voudrez peut-être installer la version la plus récente de Netscape +depuis leur <ulink url="ftp://ftp.netscape.com">site ftp</ulink>. (Netscape +a besoin du gestionnaire graphique X Window.) Il vous faut la version +“unknown bsd”. Appliquez au fichier téléchargé les commandes +<command>gunzip <replaceable>nom_de_fichier</></> puis <command>tar xvf +<replaceable>nom_de_fichier</></>, recopiez l'exécutable dans +<filename>/usr/local/bin</filename> ou dans tout autre répertoire où vous mettez les programmes, <command>rehash</>, et ajoutez les lignes suivantes aux fichiers +<filename>.cshrc</filename> dans les répertoires de tous les +utilisateurs ou (plus simplement) au fichier +<filename>/etc/csh.cshrc</filename> de démarrage de l'interpréteur de commandes +csh applicable à tous les utilisateurs: +<informalexample> +<programlisting>setenv XKEYSYMDB /usr/X11R6/lib/X11/XKeysymDB +setenv XNLSPATH /usr/X11R6/lib/X11/nls</> +</informalexample> +Ce qui présuppose que les fichiers <filename>XKeysymDB</> et le répertoire +<filename>nls</> existent dans <filename>/usr/X11R6/lib/X11</filename>; s'ils +n'y sont pas, trouvez-les et recopiez-les dans ce répertoire.</para> + +<para>Si vous aviez auparavant installé Netscape depuis le CDROM (ou par +ftp), ne remplacez pas <filename>/usr/local/bin/netscape</filename> par +le nouveau binaire; ce fichier n'est qu'une procédure qui positionne des +variables d'environnement. Au lieu de cela, renommez le nouveau fichier +binaire en <filename>netscape.bin</filename> et installez-le à la place +de l'ancien, qui s'appelle <filename>/usr/local/lib/netscape/netscape.bin</filename>.</para> +</sect1> +<sect1> +<title>Votre Environnement de Travail</title> +<para>Votre interpréteur de commandes est la composante la plus importante de +votre environnement de travail. C'est l'équivalent de COMMAND.COM sous DOS. +C'est lui qui analyse les commandes que vous tapez au clavier et communique +avec le reste du système d'exploitation. Vous pouvez aussi écrire des +procédures, qui sont l'équivalent des fichiers .BAT de DOS.</para> +<para>Deux interpréteurs de commandes sont pré-installés par FreeBSD : csh et +sh. csh est utile pour le travail en ligne de commande, mais vous devriez mieux +écrire vos procédures pour sh (ou bash). <command>echo $SHELL</command> vous +retourne le nom de l'interpréteur que vous utilisez actuellement.</para> +<para>L'interpréteur csh est commode, mais tcsh fait tout ce que fait csh et +plus encore. Il vous permet de rappeler des commandes avec les touches flèches +et de les éditer. Il sait compléter les noms de fichiers avec la touche Tab (csh +utilise la touche Echap) et il vous permet de revenir dans le répertoire où vous +étiez auparavant avec <command>cd -</command>. Il est aussi plus facile de +modifier l'invite du système avec tcsh. Il vous rend la vie beaucoup plus +facile.</para> +<para>Voici les trois étapes pour installer un nouvel interpréteur de +commandes:</para> +<para>Installez l'interpréteur, pré-compilé ou non, comme vous le feriez pour +n'importe quel autre logiciel. Utilisez <command>rehash</command> puis +<command>which tcsh</command> (en supposant que vous installiez tcsh) pour vous +assurer qu'il est bien installé.</para> +<para>Sous le compte root, éditez le fichier <filename>/etc/shells</filename>, +ajoutez-y une ligne pour le nouvel interpréteur, dans notre cas +/usr/local/bin/tcsh, et enregistrez votre modification. (certaines procédures +d'installation font cela pour vous.)</para> +<para>Utilisez <command>chsh</command> pour changer de façon permanente +d'interpréteur de commandes, ou tapez <command>tcsh</command> sous l'invite +du système pour changer d'interpréteur sans ouvrir de nouvelle session.</para> +<para>Note: Il peut être dangereux de changer l'interpréteur de commandes du +compte root en autre chose que sh ou csh avec les premières versions de FreeBSD +et de nombreuses autres versions d'Unix; vous pourriez ne plus avoir +d'interpréteur de commandes quand le système passe en mode mono-utilisateur. +La solution est d'utiliser <command>su -m</command> pour devenir root et +disposer de tcsh, parce que l'interpréteur de commandes est partie intégrante +de l'environnement. Vous pouvez rendre ce fonctionnement définitif en ajoutant +un alias dans votre fichier <filename>.tchsrc</filename>:</para> +<informalexample><screen>alias su su -m</screen> +</informalexample> +<para>Quand tcsh démarre, il lit les fichiers +<filename>/etc/csh.cshrc</filename> et <filename>/etc/csh.login</filename>. +Il lit aussi le fichier <filename>.login</filename> de votre répertoire +utilisateur, ainsi que le fichier <filename>.cshrc</filename>, à moins que vous +n'ayez un fichier <filename>.tchsrc</filename>. Vous pouvez facilement en +créer un en copiant simplement <filename>.cshrc</filename> dans +<filename>.tcshrc</filename>.</para> +<para>Maintenant que vous avez installé tcsh, vous pouvez modifier l'invite +du système. Vous trouverez plus de détails dans les pages de manuel de tcsh, +mais voici une ligne que vous pouvez mettre dans votre fichier +<filename>.tchsrc</filename>, qui vous dira combien de commandes vous avez +tapées, quelle heure il est, et dans quel répertoire vous vous +trouvez. Un > sera aussi +affiché si vous êtes un utilisateur ordinaire et un # si vous êtes root, mais +tcsh fait cela de toute façon:</para> +<informalexample><screen>set prompt = "%h %t %~ %#"</screen> +</informalexample> +<para>Mettez cette ligne à la place de la ligne "set prompt" s'il y en a déjà +une, ou après la ligne "if($?prompt) then" sinon. Mettez l'ancienne ligne en +commentaire; vous pourrez toujours y revenir si vous le souhaitez. N'oubliez +pas les espaces et les guillemets. Vous pouvez forcer la relecture du fichier +<filename>.tchsrc</filename> en tapant <command>source .tcshrc</command>.</para> +<para>Vous pouvez obtenir la liste des autres variables d'environnement qui ont +été positionnées avec la commande <command>env</command>. Le résultat vous +indiquera entre autres quels sont votre éditeur et votre gestionnaire de page +affichée par défaut, et quel type de terminal vous utilisez. Une +commande utile si vous vous connectez à distance et ne pouvez exécuter un +programme parce que le terminal n'est pas adapté est +<command>setenv TERM vt100</command>.</para> +</sect1> +<sect1> +<title>Autres</title> +<para>En tant que root, vous pouvez démonter le CDROM avec <command>/sbin/umount +/cdrom</>, le sortir du lecteur, en mettre un autre, et monter ce dernier avec +<command>/sbin/mount_cd9660 /dev/cd0a /cdrom</> en supposant que +<hardware>cd0a</> est le nom du périphérique associé à votre lecteur de +CDROMs.</para> +<para>Le système de fichier actif - le deuxième CDROM de la +distribution de FreeBSD - est utile si vous manquez d'espace disque. +Vous pouvez essayez d'utiliser <command>emacs</> ou des jeux depuis le +cdrom. Vous devrez utiliser <command>lndir</>, qui est installé en même temps +que le gestionnaire graphique X Window, pour dire au(x) programme(s) +où trouver les fichiers dont il a besoin, parce qu'ils se trouvent dans le +système de fichiers <filename>/cdrom</filename> et non dans +<filename>/usr</filename> et ses sous-répertoires, où ils devraient +normalement être. Lisez <command>man lndir</>.</para> +<para>Vous pouvez supprimer un utilisateur (par example, jacques) en utilisant +la commande <command>vipw</> pour éditer le fichier <filename>master.passwd</filename> +(n'utilisez pas <command>vi</> directement sur le fichier +<filename>master.passwd</filename>); effacez la ligne pour jacques et sauvez le +fichier. Editez ensuite <filename>/etc/group</filename> et supprimez toutes +les occurences de jacques. +Enfin, allez dans <filename>/usr/home</filename> et utilisez +<command>rm -R jacques</command> (pour effacer les fichiers et sous-répertoires +du répertoire utilisateur de jacques).</para> +</sect1> +<sect1> +<title>Vos Commentaires sont la Bienvenue</title> +<para>Si vous utilisez ce guide, je suis interessée de savoir où il ne vous est +pas suffisament clair et ce que vous trouvez qu'il y manque, et aussi s'il vous +a été utile. <footnote><para>N.d.T.: en anglais !</para></footnote> +Mes remerciements à Eugene W. Stark, professeur d'informatique +à SUNY-Stony Brook, et à John Fieber pour ses commentaires pertinents.</para> +<para>Annelise Anderson, <email>andrsn@hoover.stanford.edu</></para> +</sect1> +</article> diff --git a/fr_FR.ISO_8859-1/articles/ntfs/Makefile b/fr_FR.ISO_8859-1/articles/ntfs/Makefile new file mode 100644 index 0000000000..72c1d9b8c9 --- /dev/null +++ b/fr_FR.ISO_8859-1/articles/ntfs/Makefile @@ -0,0 +1,20 @@ +# +# The FreeBSD Documentation Project +# The FreeBSD French Documentation Project +# +# $FreeBSD$ +# Original revision: 1.4 +# + +DOC?= article + +FORMATS?= html + +INSTALL_COMPRESSED?=gz +INSTALL_ONLY_COMPRESSED?= + +SRCS= article.sgml + +DOC_PREFIX?= ${.CURDIR}/../../.. + +.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO_8859-1/articles/ntfs/article.sgml b/fr_FR.ISO_8859-1/articles/ntfs/article.sgml new file mode 100644 index 0000000000..a1922b42a2 --- /dev/null +++ b/fr_FR.ISO_8859-1/articles/ntfs/article.sgml @@ -0,0 +1,490 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + +<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ +<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man; +<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls; +<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract; +<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader; +<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators; + +<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors; +<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists; + <!ENTITY rel.current CDATA "3.2"> +]> + +<article id="ntfs" lang="fr"> + <artheader> + <title>Installer le pilote NTFS pour FreeBSD</title> + &artheader.copyright; + <abstract> + &abstract.license; + &abstract.disclaimer; + &trans.a.laurand; + </abstract> + </artheader> + + <sect1> + <title>Installer le pilote NTFS pour FreeBSD 3.x</title> + + <para>Pour installer ce pilote, vous aurez besoin de recompiler un noyau car + les fichiers d'en-tête utilisés seront mis à niveau. + Pour autant, aucun changement dans le fichier de configuration ne sera + nécessaire. Si vous n'avez pas installé les sources du + noyau, vous pouvez soit recourir à <filename>sysinstall</filename>, + ou bien entrer successivement en tant que + <username>root</username> :</para> + + <informalexample> +<screen>&prompt.root <userinput>mount -t cd9660 /dev/cd0c /mnt</userinput> +&prompt.root <userinput> cd /mnt/src</userinput> +&prompt.root <userinput> cat ssys.?? | tar --unlink -zxpvf - -C /usr/src</userinput></screen> + </informalexample> + + <para>Le pilote requiert également le fichier + <filename>mntopt.h</filename> de l'archive source. Pour + extraire son contenu :</para> + + <informalexample> +<screen>&prompt.root <userinput> cd /mnt/src</userinput> +&prompt.root <userinput> cat ssbin.?? | tar --unlink -zxpvf - -C /usr/src sbin/mount</userinput></screen> + </informalexample> + + <para>Ensuite, en tant que <username>root</username>, créez un + répertoire pour y extraire le contenu de l'archive du pilote + ntfs :</para> + + <informalexample> +<screen>&prompt.root <userinput> cd /tmp</userinput> +&prompt.root <userinput> mkdir ntfs</userinput></screen> + </informalexample> + + <para>Téléchargez le fichier d'archive compressé + contenant le code source du pilote ainsi que son fichier de mise à + niveau - <foreignphrase>patch</foreignphrase> - dans + <filename>/tmp/ntfs</filename>. Les deux fichiers dont vous avez besoin + sont <filename>ntfs-0.17beta.tgz</filename> et + <filename>ntfs.0.17beta-0.18beta.diff</filename>.</para> + + <para>Extrayez le contenu du fichier d'archive :</para> + + <informalexample> +<screen>&prompt.root <userinput> cd /tmp/ntfs</userinput> +&prompt.root <userinput> tar xzvf ntfs-0.17beta.tgz</userinput></screen> + </informalexample> + + <para>Il se peut que le numéro de version (0.17beta) soit + différent.</para> + + <para>Ensuite, appliquez la mise à niveau de la version 0.17 à + la version 0.18.</para> + + <informalexample> +<screen>&prompt.root <userinput> cd /tmp/ntfs/src/sys/ntfs</userinput> +&prompt.root <userinput> patch < /tmp/ntfs/ntfs.0.17beta-0.18beta.diff</userinput></screen> + </informalexample> + + <para>Prenez garde à ce qu'aucune partie ne fasse défaut. + <citerefentry><refentrytitle>patch</refentrytitle> + <manvolnum>1</manvolnum></citerefentry> génère des copies de + sauvegarde des fichiers qu'il met à jour (avec l'extension + <filename>.orig</filename>), par conséquent, si un problème + survient, recopiez les fichiers <filename>.orig</filename>, et + recherchez-en la cause.</para> + + <para>Recopiez maintenant les fichiers sources là où ils + doivent normalement être :</para> + + <informalexample> +<screen>&prompt.root <userinput>cd /tmp/ntfs</userinput> +&prompt.root <userinput>cp -p -R -i src /usr/</userinput></screen> + </informalexample> + + <para>Il faut ensuite mettre à jour + <filename>vnode.h</filename> :</para> + + <informalexample> +<screen>&prompt.root <userinput>cd /usr/src/sys/sys</userinput> +&prompt.root <userinput>patch < /tmp/ntfs/diff/vnode.h.diff</userinput></screen> + </informalexample> + + <para>Encore une fois, vérifiez que la mise à niveau s'est + bien passée, vous devriez avoir :</para> + + <programlisting> +Hmm... Looks like a new-style context diff to me... +The text leading up to this was: +-------------------------- +|*** ./sys/sys/vnode.h.orig Fri Jan 1 06:12:51 1999 +|--- ./sys/sys/vnode.h Wed Dec 2 12:31:31 1998 +-------------------------- +Patching file vnode.h using Plan A... +Hunk #1 succeeded at 62. +done + </programlisting> + + <para>Vous allez maintenant pouvoir maintenant compiler l'exécutable + <filename>mount_ntfs</filename> :</para> + + <informalexample> +<screen>&prompt.root <userinput>cd /usr/src/sbin/mount_ntfs</userinput> +&prompt.root <userinput>make</userinput> +&prompt.root <userinput>make install</userinput></screen> + </informalexample> + +<para>ainsi que le module du noyau :</para> + + <informalexample> +<screen>&prompt.root <userinput>cd /usr/src/sys/modules/ntfs</userinput> +&prompt.root <userinput>make</userinput> +&prompt.root <userinput>make install</userinput></screen> + </informalexample> + + <para>Pour finir, il faudra aussi recompiler le noyau (parce que + <filename>vnode.h</filename> a été modifié). Si vous + utilisez le noyau <filename>GENERIC</filename>, faites une copie + du fichier de configuration du noyau <filename>GENERIC</filename> (ce + n'est pas absolument nécessaire, mais de cette manière le + nom du noyau sera mis à jour, et il sera plus facile d'identifier + celui avec lequel vous démarrez). J'ai pour habitude d'utiliser + des noms assez représentatifs, aussi + <filename>GENERIC_NTFS</filename> me semble-t-il + approprié :</para> + + <informalexample> +<screen>&prompt.root <userinput>cd /usr/src/sys/i386/conf</userinput> +&prompt.root <userinput>cp GENERIC GENERIC_NTFS</userinput> +&prompt.root <userinput>/usr/sbin/config GENERIC_NTFS</userinput> +&prompt.root <userinput>cd ../../compile/GENERIC_NTFS</userinput> +&prompt.root <userinput>make depend</userinput> +&prompt.root <userinput>make</userinput> +&prompt.root <userinput>make install</userinput></screen> + </informalexample> + + <para>Ok, parfait, mais avant de redémarrer avec votre nouveau noyau, + il faut identifier la + tranche - <foreignphrase>slice</foreignphrase> - NTFS. + Le numéro de cette tranche va dépendre du format de votre + disque. Pour l'instant, si vous avez une tranche FAT suivie d'une tranche + NTFS et que votre tranche FreeBSD est la dernière, elles seront + numérotées (“<literal>da</literal>” ou + peut-être “<literal>sd</literal>” pour les disques SCSI, + si vous avez mis à jour votre système 2.2.x pour passer en + 3.1, et ce sera “<literal>wd</literal>” si vous avez des + disques IDE) :</para> + + <programlisting> +FAT - da0s1 +NTFS - da0s2 +FreeBSD - da0s3 + </programlisting> + + <para>Si votre tranche NTFS et votre tranche FreeBSD sont inversées + et que vous avez installé NT avant FreeBSD, ce qui est d'ailleurs la méthode recommandée, vos numéros de + tranches seront les mêmes, mais pas dans le même + ordre :</para> + + <programlisting> +FAT - da0s1 +FreeBSD - da0s3 +NTFS - da0s2 + </programlisting> + + <para>Vous pouvez jeter un coup d'oeil au fichier + <filename>/etc/fstab</filename> pour être sûr du numéro + de la tranche de FreeBSD (et également de celui de la tranche + FAT).</para> + + <para>Il y a cependant une exception à tout cela, lorsque votre + tranche NTFS est une “partition logique” dans une + “partition étendue”. Les “partitions + logiques” sont toujours numérotées à partir de + 5, peut importe le nombre de “partitions” sur le disque. Mon + disque, par exemple, est agencé comme ceci :</para> + + <programlisting> +FAT - da0s1 +FreeBSD - da0s3 +Extended partition - da0s2 + NTFS - da0s5 + </programlisting> + + <para>Notez qu'une “partition étendue;” se voit attribuer + une + tranche - “<foreignphrase>slice</foreignphrase>”, + mais celle-ci ne peut pas être utilisée en tant que telle, + c'est-à-dire que vous ne pouvez pas la monter.</para> + + <para>Après avoir identifié la tranche NTFS, vous pouvez + ajouter une entrée dans le fichier + <filename>/etc/fstab</filename>. Notez que l'option <literal>ro</literal> + signifie que le montage se fera en lecture seule (souvenez-vous que le + pilote est en lecture seule). Cette entrée provoquera le montage + automatique de la tranche NTFS lors du démarrage. Si vous voulez + désactiver cette dernière option, modifiez + <literal>ro</literal> en <literal>ro,noauto</literal>, sans aucun espace + ni avant ni après la virgule ! Vous aurez également + besoin d'un point de montage, <filename>/ntfs</filename> dans cet + exemple, ou si vous préferez, <filename>/mnt</filename> à + la place de <filename>/ntfs</filename> dans le fichier + <filename>/etc/fstab</filename> :</para> + + <programlisting> +# Device Mountpoint FStype Options Dump Pass# +/dev/da0s5 /ntfs ntfs ro 0 0 + </programlisting> + + <para>Si vous préferez ne pas monter la “partition” au + démarrage, montez-la ensuite en tant que <username>root</username> + avec la commande :</para> + + <informalexample> +<screen>&prompt.root <userinput>mount -t ntfs /dev/da0s5 /ntfs</userinput></screen> + </informalexample> + + <para>Bien entendu, ajustez le fichier de pilote de + périphérique ainsi que le point de montage à votre + système.</para> + + <para>C'est fait ! Il ne reste plus qu'à + redémarrer.</para> + + <para>Bon courage ! </para> + + </sect1> + + <sect1> + <title>Installation du pilote NTFS sous FreeBSD 2.2.X</title> + + <para>Pour installer ce pilote, vous aurez besoin de recompiler un noyau car + les fichiers d'en-tête utilisés seront mis à niveau. + Pour autant, aucun changement dans le fichier de configuration ne sera + nécessaire. Si vous n'avez pas installé les sources du + noyau, vous pouvez soit recourir à <filename>sysinstall</filename>, + ou bien entrer successivement en tant que + <username>root</username> :</para> + + <informalexample> +<screen>&prompt.root <userinput>mount -t cd9660 /dev/cd0c /mnt</userinput> +&prompt.root <userinput> cd /mnt/src</userinput> +&prompt.root <userinput> cat ssys.?? | tar --unlink -zxpvf - -C /usr/src</userinput></screen> + </informalexample> + + <para>Le pilote requiert également les fichiers + <filename>mntopt.h</filename> de l'archive source. Pour extraire son + contenu, tapez :</para> + + <informalexample> +<screen>&prompt.root <userinput> cd /mnt/src</userinput> +&prompt.root <userinput> cat ssbin.?? | tar --unlink -zxpvf - -C /usr/src sbin/mount</userinput></screen> + </informalexample> + + <para>Ensuite, en tant que <username>root</username>, créez un + répertoire pour extraire le contenu de l'archive du pilote + ntfs :</para> + + <informalexample> +<screen>&prompt.root <userinput> cd /tmp</userinput> +&prompt.root <userinput> mkdir ntfs</userinput></screen> + </informalexample> + + <para>Téléchargez le fichier d'archive compressé + contenant le code source du pilote ainsi que son fichier de mise à + jour dans <filename>/tmp/ntfs</filename>.</para> + + <para>Extrayez le contenu de l'archive :</para> + + <informalexample> +<screen>&prompt.root <userinput> cd /tmp/ntfs</userinput> +&prompt.root <userinput> tar xzvf ntfs-releng22-0.12beta.tgz</userinput></screen> + </informalexample> + + <para>Il se peut que le numéro de version (0.12beta) soit + différent.</para> + + <para>Recopiez maintenant les fichiers sources à l'endroit + adéquat :</para> + + <informalexample> +<screen>&prompt.root <userinput>cd src</userinput> +&prompt.root <userinput>cp -p -r * /usr/src</userinput></screen> + </informalexample> + + <para>Ensuite, vous devez mettre à niveau les 3 fichiers + d'en-tête du système. Utilisez l'option <option>-l</option> + (L minuscule) qui permet d'ignorer la différence d'espacement, car + j'ai remarqué que l'utilisation des touches <keycap>TAB</keycap> + et <keycap>Espace</keycap> rendait incompatible les fichiers originaux et + les fichiers <filename>diff</filename>.</para> + + <informalexample> +<screen>&prompt.root <userinput>cd /usr/src/sys/sys</userinput> +&prompt.root <userinput>patch -l malloc.h /tmp/ntfs/diff/malloc.h.diff</userinput> +&prompt.root <userinput>patch -l mount.h /tmp/ntfs/diff/mount.h.diff</userinput> +&prompt.root <userinput>patch -l vnode.h /tmp/ntfs/diff/vnode.h.diff</userinput></screen> + </informalexample> + + <para>Si cette opération réussit, vous verrez s'afficher + quelque chose de similaire à :</para> + + <programlisting> +Hmm... Looks like a new-style context diff to me... +The text leading up to this was: +-------------------------- +|*** ./sys/sys/vnode.h.orig Fri Jan 1 00:17:30 1999 +|--- ./sys/sys/vnode.h Fri Jan 1 00:17:35 1999 +-------------------------- +Patching file vnode.h using Plan A... +Hunk #1 succeeded at 58. +done + </programlisting> + + <para>Si malencontreusement, un (ou plusieurs) fichier de mise à + jour faisait défaut, sachez que + <citerefentry><refentrytitle>patch</refentrytitle></citerefentry> + fait toujours des copies des fichiers originaux avec le même nom + suivi de l'extension <filename>.orig</filename>.</para> + + <para>Maintenant, vous pouvez compiler le pilote. Il est nécessaire + d'ajouter <literal>BINDIR=/usr/sbin</literal> qui n'est pas + défini dans le <filename>Makefile</filename>.</para> + + <informalexample> +<screen>&prompt.root <userinput>cd /usr/src/sbin/i386/mount_ntfs</userinput> +&prompt.root <userinput>make</userinput> +&prompt.root <userinput>make BINDIR=/usr/sbin install</userinput></screen> + </informalexample> + + <para>Compilez ensuite les modules du noyau :</para> + + <informalexample> +<screen>&prompt.root <userinput>cd /usr/src/lkm</userinput> +&prompt.root <userinput>make</userinput> +&prompt.root <userinput>make install</userinput></screen> + </informalexample> + + <para>Pour finir, vous devez recompiler le noyau. Si vous utilisez le noyau + <filename>GENERIC</filename>, faites une copie du fichier de configuration + du noyau <filename>GENERIC</filename> (ce n'est pas absolument + nécessaire, mias de cette manière le nom du noyau sera mis + à jour, et ce sera plus facile pour identifier le noyau avec lequel + vous démarrez). J'ai pour habitude d'utiliser des noms assez + représentatifs, aussi <filename>GENERIC_NTFS</filename> me semble + approprié :</para> + + <informalexample> +<screen>&prompt.root <userinput>cd /usr/src/sys/i386/conf</userinput> +&prompt.root <userinput>cp GENERIC GENERIC_NTFS</userinput> +&prompt.root <userinput>/usr/sbin/config GENERIC_NTFS</userinput> +&prompt.root <userinput>cd ../../compile/GENERIC_NTFS</userinput> +&prompt.root <userinput>make depend</userinput> +&prompt.root <userinput>make</userinput> +&prompt.root <userinput>make install</userinput></screen> + </informalexample> + + <para>Ok, parfait, mais avant de redémarrer avec votre nouveau noyau, + il faut identifier la + tranche - <foreignphrase>slice</foreignphrase> - NTFS. + Le numéro de cette tranche va dépendre du format de votre + disque. Pour l'instant, si vous avez une tranche FAT suivie d'une tranche + NTFS et que votre tranche FreeBSD est la dernière, elles seront + numérotées (remplacez “<literal>w</literal>” par + “<literal>s</literal>” pour les disques SCSI) :</para> + + <programlisting> +FAT - wd0s1 +NTFS - wd0s2 +FreeBSD - wd0s3 + </programlisting> + + <para>Si votre tranche NTFS et votre tranche FreeBSD sont inversées + et que vous avez installé NT avant FreeBSD, ce qui est d'ailleurs la méthode recommandée, vos numéros de + tranches seront les mêmes, mais pas dans le même + ordre :</para> + + <programlisting> +FAT - wd0s1 +FreeBSD - wd0s3 +NTFS - wd0s2 + </programlisting> + + <para>Vous pouvez jeter un coup d'oeil au fichier + <filename>/etc/fstab</filename> pour être sûr du numéro + de la tranche FreeBSD (et également de celui de la tranche + FAT).</para> + + <para>Il y a cependant une exception à tout cela, lorsque votre + tranche NTFS est une “partition logique” dans une + “partition étendue”. Les “partitions + logiques” sont toujours numérotées à partir de + 5, peut importe le nombre de “partitions” sur le disque. Mon + disque, par exemple, est agencé comme ceci :</para> + + <programlisting> +FAT - sd0s1 +FreeBSD - sd0s3 +Extended partition - sd0s2 + NTFS - sd0s5 + </programlisting> + + <para>Notez qu'une “partition étendue” se voit attribuer + une + tranche - “<foreignphrase>slice</foreignphrase>”, + mais celle-ci ne peut pas être utilisée en tant que telle, + c'est-à-dire que vous ne pouvez pas la monter.</para> + + <para>Après avoir identifié la tranche NTFS, vous pouvez + ajouter une entrée dans le fichier + <filename>/etc/fstab</filename>. Notez que l'option <literal>ro</literal> + signifie que le montage se fera en lecture seule (souvenez-vous que le + pilote est en lecture seule). Cette entrée provoquera le montage + automatique de la tranche NTFS lors du démarrage. Si vous voulez + désactiver cette dernière option, modifiez + <literal>ro</literal> en <literal>ro,noauto</literal>, sans aucun espace + ni avant ni après la virgule ! Vous aurez également + besoin d'un point de montage, <filename>/ntfs</filename> dans cet + exemple, ou si vous préferez, <filename>/mnt</filename> à + la place de <filename>/ntfs</filename> dans le fichier + <filename>/etc/fstab</filename> :</para> + + <programlisting> +# Device Mountpoint FStype Options Dump Pass# +/dev/sd0s5 /ntfs ntfs ro 0 0 + </programlisting> + + <para>Si vous préferez ne pas monter la “partition” au + démarrage, montez-la ensuite en tant que <username>root</username> + avec la commande :</para> + + <informalexample> +<screen>&prompt.root <userinput>mount -t ntfs /dev/sd0s5 /ntfs</userinput></screen> + </informalexample> + + <para>Bien entendu, ajustez le fichier de pilote de + périphérique ainsi que le point de montage à votre + système.</para> + + <para>C'est fait ! Il ne reste plus qu'à + redémarrer. Si vous avez choisi de monter la + “partition” au démarrage, vous verrez s'afficher + quelques messages de diagnostic tout à fait + inoffensifs :</para> + + <programlisting> +ntfs_init(): +ntfs_mountfs(): bps: 512, spc: 1, media: f8, mftrecsz: 2 (2 sects) +ntfs_mountfs(): mftcn: 0x315e5|0x287245 +ntfs_mountfs(): case-sens., uid: 0, gid: 0, mode: 777 +ntfs_iget(): read $MFT ntnode +ntfs_mountfs(): reading $UpCase....OK + </programlisting> + + <para>Bon courage ! </para> + + </sect1> +</article> diff --git a/fr_FR.ISO_8859-1/articles/ppp/Makefile b/fr_FR.ISO_8859-1/articles/ppp/Makefile new file mode 100644 index 0000000000..72c1d9b8c9 --- /dev/null +++ b/fr_FR.ISO_8859-1/articles/ppp/Makefile @@ -0,0 +1,20 @@ +# +# The FreeBSD Documentation Project +# The FreeBSD French Documentation Project +# +# $FreeBSD$ +# Original revision: 1.4 +# + +DOC?= article + +FORMATS?= html + +INSTALL_COMPRESSED?=gz +INSTALL_ONLY_COMPRESSED?= + +SRCS= article.sgml + +DOC_PREFIX?= ${.CURDIR}/../../.. + +.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO_8859-1/articles/ppp/article.sgml b/fr_FR.ISO_8859-1/articles/ppp/article.sgml new file mode 100755 index 0000000000..100f07af58 --- /dev/null +++ b/fr_FR.ISO_8859-1/articles/ppp/article.sgml @@ -0,0 +1,1894 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + +<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ +<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man; +<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls; +<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract; +<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader; +<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators; + +<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors; +<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists; + <!ENTITY rel.current CDATA "3.2"> +]> + +<article lang="fr"> +<artheader> +<title>Pédants Principes PPP</title> +&artheader.copyright; +<abstract> +&abstract.license; +&abstract.disclaimer; +&trans.a.haby; +</abstract> +</artheader> +<sect1> +<title>Introduction</title> +<para>Le protocole de connexion PPP en mode utilisateur de la version 2.2 de +FreeBSD (appelé aussi “IIJ-PPP”) supporte maintenant +la réécriture de paquets pour les connexions à l'Internet. Cette possibilité, +connue aussi sous le nom de “Mascarade (Masquerading)”, +“Alias IP (IP Aliasing)”, ou “Traduction d'Adresse +Réseau (Network Adresse Translation)”, permet à un système FreeBSD +d'interagir comme routeur de connexion à la demande entre un réseau local +et un fournisseur d'accès à Internet. Les machines du réseau local peuvent +utiliser l'unique connexion de la machine FreeBSD à l'Internet pour échanger +des informations avec ce dernier.</para> +<sect2> +<title>But de ce document</title> +<para>Ce document<footnote><para>N.d.T: Si vous souhaitez consulter le document +original en langue anglaise, il se trouve sur +<ulink url="http://www.FreeBSD.org/tutorials/ppp/ppp.html">http://www.FreeBSD.org/ppp/ppp.html</ulink>.</para></footnote> +vous explique comment:</para> +<itemizedlist> +<listitem><para>Configurer le système FreeBSD pour permettre les connexions +vers l'extérieur,</para></listitem> +<listitem><para>Partager une seule connexion vers l'extérieur avec les autres +machines du réseau,</para></listitem> +<listitem><para>Configurer les machines Windows pour utiliser la machine +FreeBSD comme passerelle vers l'Internet.</para></listitem> +</itemizedlist> +<para>Bien que l'objectif de ce document soit avant tout d'expliquer comment +configurer la traduction d'adresses IP, il fournit aussi des exemples +d'installation et de configuration des autres composants. Chaque section +est indépendante et peut être utilisée pour configurer divers aspects d'une +passerelle FreeBSD entre plusieurs réseaux.</para> +</sect2> +</sect1> +<sect1 id="sect2"> +<title>Mise en oeuvre du réseau local</title> +<para>Bien que le programme <command>ppp</command> puisse, et soit généralement +utilisé pour fournir des services à la <emphasis>seule</emphasis> machine +FreeBSD, il peut aussi servir à en faire une “passerelle” ou +“routeur” entre les autres dispositifs reliés au réseau local +et l'Internet ou tout autre service connecté.</para> +<sect2> +<title>Topologie classique du réseau</title> +<para>Ce document s'applique à un réseau local dont la +topologie est - classiquement - la suivante:</para> +<programlisting> + ++=========+ =======> Connexion à Internet ( Wanadoo, AOL, etc. ) +| | \ +| FreeBSD |======= +| "Curly" | +| | ++====+====+ + | +|=================+============+====| <== Réseau Local Ethernet + | | | ++====+====+ +====+====+ +====+====+ +| | | | | | +| Win95 | | WFW | | WinNT | +| "Larry" | | "Moe" | | "Shemp" | +| | | | | | ++=========+ +=========+ +=========+ + +</programlisting> +</sect2> +<sect2> +<title>Hypothèses sur le réseau local</title> +<para>Pour les besoins de notre exemple, nous supposerons que :</para> +<para>Il y a trois stations et un serveur reliés par le réseau Ethernet +local:</para> +<itemizedlist> +<listitem><para>un serveur FreeBSD (“Curly”) avec un contrôleur +Ethernet NE-2000 configuré sur “ed0”,</para></listitem> +<listitem><para>une station de travail Windows 95 (“Larry”) avec +les pilotes TCP/IP 32-bits natifs de Microsoft,</para></listitem> +<listitem><para>une station de travail Windows for Workgroups +(“Larry”) avec les extension TCP/IP 16-bits de +Microsoft,</para></listitem> +<listitem><para>une station de travail Windows NT (“Larry”) avec +les pilotes TCP/IP 32-bits natifs de Microsoft.</para></listitem> +</itemizedlist> +<para>Les adresses IP du réseau Ethernet sur lequel se base notre exemple +ont été attribuées dans l'espace d'adresses privées défini par la RFC-1597, +comme suit:</para> +<programlisting> +Nom Adresse IP +"Curly" 192.168.1.1 # La machine FreeBSD +"Larry" 192.168.1.2 # La machine Windows 95 +"Moe" 192.168.1.3 # La machine Windows for Workgroups +"Shemp" 192.168.1.4 # La machine Windows NT +</programlisting> +<para>Nous supposerons aussi que le modem est connecté sur le premier port série +(<filename>/dev/cuaa0</filename> ou <filename>COM1:</filename> selon la +terminologie DOS) de la machine FreeBSD.</para> +<para>Enfin, nous supposerons que notre fournisseur d'accès Internet nous +fournit automatiquement les adresses IP des deux extrémités de la liaison PPP +(point à point) : celle de notre machine FreeBSD et celle de la machine du côté +du fournisseur (adressage dynamique). Les détails de configuration de la +connexion de la machine FreeBSD à l'extérieur sont donnés au chapitre +<link linkend="chap3">Configuration du système FreeBSD</link>.</para> +</sect2> +</sect1> +<sect1 id="chap3"> +<title>Configuration du système FreeBSD</title> +<para>Il y a trois informations à fournir au système FreeBSD avant de le relier +au réseau local de notre exemple:</para> +<itemizedlist> +<listitem><para>Son nom de machine (<filename>hostname</filename>), +“Curly” dans notre exemple,</para></listitem> +<listitem><para>La configuration de son interface réseau,</para></listitem> +<listitem><para>Le fichier <filename>/etc/hosts</filename> (qui liste les noms +et les adresses IP des autres machines du réseau).</para></listitem> +</itemizedlist> +<para>Si vous avez installé FreeBSD via une connexion réseau, il +est possible que certaines de ces informations soient déjà définies.</para> +<para>Même si vous pensez que votre système FreeBSD a déjà été correctement +configuré au moment de l'installation, il vous mieux vous assurer de la +validité de chacune de ces informations pour vous éviter des ennuis par la +suite.</para> +<sect2 id="sect31"> +<title>Contrôler le nom de la machine FreeBSD</title> +<para>Il est possible que le nom de la machine FreeBSD ait été défini et +enregistré lors de l'installation du système. Pour le vérifier, entrez, +à l'invite du système, la commande suivante:</para> +<para> +<userinput> +<prompt>#</prompt> hostname +</userinput> +</para> +<para>Le nom de la machine FreeBSD sera affiché sur une seule ligne. Si ce nom +paraît correct (c'est très subjectif :-), vous pouvez passer au paragraphe +<link linkend="sect32">Contrôler la configuration de l'interface Ethernet</link>.</para> +<para>Dans notre exemple, le résultat de la commande <command>hostname</command> +devrait être “curly.my.domain” si le nom de la machine a été +correctement défini à l'installation, ou ensuite. (A ce stade, ne vous +préoccupez pas du suffixe “.my.domain”, nous verrons cela par la +suite. Ce qui compte maintenant est le nom qui précède le premier +“.”)</para> +<para>Si le nom de machine n'a pas été défini à l'installation, la réponse de +<command>hostname</command> sera probablement “myname.my.domain”. +Vous devez alors éditer le fichier <filename>/etc/rc.conf</filename> pour +définir le nom du système.</para> +<sect3> +<title>Définir le nom de la machine FreeBSD</title> +<note> +<para>Vous devez être en session sous “root” pour éditer les +fichiers de configuration du système.</para> +</note> +<note> +<para>Si vous introduisez des erreurs dans les fichiers de configuration, il y +a de fortes chances que votre système <emphasis>ne redémarre</emphasis> pas +correctement! Soyez prudents !</para> +</note> +<para>Le nom de machine du système FreeBSD est défini au démarrage par le +fichier <filename>/etc/rc.conf</filename>. Utilisez l'éditeur par défaut +(“ee”) pour éditer ce fichier.</para> +<para>Sous une session “root”, visualisez le fichier dans l'éditeur +avec la commande:</para> +<para> +<userinput> +<prompt>#</prompt> ee /etc/rc.conf +</userinput> +</para> +<para>Avec les touches flèches, allez jusqu'à la ligne qui définit le nom de +machine du système FreeBSD. Par défaut, vous y trouvez:</para> +<literallayout> +--- +### Basic network options: ### +hostname="myname.my.domain" # Set this ! +--- +</literallayout> +<para>Remplacez ces lignes, par exemple, par:</para> +<literallayout> +--- +### Basic network options: ### +hostname="curly.my.domain" # Set this ! +--- +</literallayout> +<para>Une fois la modification faite, appuyez sur la touche +<keycap>Echap</keycap> pour aller dans le menu de commandes de +l'éditeur. Choisissez +“leave editor” (quitter l'éditeur) et sélectionnez bien l'option +“save changes” (enregistrer les modifications) quand la question +vous est posée.</para> +</sect3> +</sect2> +<sect2 id="sect32"> +<title>Contrôler la configuration de l'interface Ethernet</title> +<para>Rappelons nos hypothèses : l'interface Ethernet de la machine s'appelle +“ed0”. C'est la valeur par défaut pour les contrôleurs NE-1000, +NE-2000, WD/SMC modèles 8003, 8013 et Elite Ultra (8216).</para> +<para>Les fichiers d'interface d'autres modèles de contrôleurs peuvent +avoir d'autres noms sous FreeBSD. Si vous n'êtes pas certain du nom +correspondant à votre contrôleur, consultez les Questions Fréquemment Posées +à propos de +FreeBSD (“FAQ”) et substituez la bonne valeur dans les exemples +qui suivent.</para> +<para>De la même façon que pour le nom de la machine, l'interface Ethernet du +système FreeBSD a peut-être été configurée à l'installation.</para> +<para>Pour consulter la configuration des interfaces (Ethernet et autres) de +votre système FreeBSD), utilisez la commande suivante:</para> +<screen> +<prompt>#</prompt> <userinput>ifconfig -a</userinput> +</screen> +<para>Soit en clair: "Donnes-moi la CONFIGuration des InterFaces de mes +périphériques réseau."</para> +<para>Par exemple:</para> +<screen> +<prompt>#</prompt> <userinput>ifconfig -a</userinput> +ed0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 +inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255 +ether 01:02:03:04:05:06 +lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500 +tun0: flags=8050<POINTOPOINT,RUNNING, MULTICAST> mtu 1500 +l0: flags=c010<OINTOPOINT,LINK2,MULTICAST> mtu 552 +ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500 +lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 +inet 127.0.0.1 netmask 0xff000000 +<prompt>#</prompt> +</screen> +<para>Sur cet exemple, les périphériques suivants sont reconnus :</para> +<itemizedlist> +<listitem><para><filename>ed0</filename>: l'interface +Ethernet,</para></listitem> +<listitem><para><filename>lp0</filename>: l'interface parallèle +(que nous n'utiliserons pas ici),</para></listitem> +<listitem><para><filename>tun0</filename>: l'interface SLIP (IP sur ligne série, +que nous n'utiliserons pas ici),</para></listitem> +<listitem><para><filename>ppp0</filename>: un autre interface PPP +(pour le module <command>ppp</command> intégré au noyau, que n'utiliserons pas +ici),</para></listitem> +<listitem><para><filename>lp0</filename>: l'interface +"en boucle" - "loopback" - que +nous n'utiliserons pas non plus).</para></listitem> +</itemizedlist> +<para>Dans l'exemple, l'interface “ed0” est active +(“UP”) et fonctionne (“RUNNING”). Les indications +importantes sont:</para> +<orderedlist> +<listitem><para>L'interface est active (“UP”),</para></listitem> +<listitem><para>Elle a une adresse Ethernet (“inet”), dans notre +cas: 192.168.1.1,</para></listitem> +<listitem><para>Elle a un masque de sous-réseau (“netmask”; +0xffffff00 qui équivaut à 255.255.255.0) correct,</para></listitem> +<listitem><para>Elle a une adresse de diffusion (“broadcast”; +ici, 192.168.1.255) valide.</para></listitem> +</orderedlist> +<para>Si la ligne décrivant l'interface Ethernet mentionne quelque chose +comme:</para> +<programlisting> +ed0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500 +ether 01:02:03:04:05:06 +</programlisting> +<para>c'est que cette interface n'est pas encore configurée.</para> +<para>Si l'interface Ethernet est déjà configurée, vous pouvez passer +directement au paragraphe <link linkend="sect34">Renseigner la liste des +autres machines du réseau</link>. +Sinon, continuez en séquence.</para> +<sect3> +<title>Configurer votre interface Ethernet</title> +<note> +<para>Vous devez être en session sous “root” pour éditer les +fichiers de configuration du système.</para> +</note> +<note> +<para>Si vous introduisez des erreurs dans les fichiers de configuration, il y +a de fortes chances que votre système <emphasis>ne redémarre</emphasis> pas +correctement! Soyez prudents !</para> +</note> +<para>Les paramètres de configuration des interfaces réseau sont définis au +démarrage par le fichier <filename>/etc/rc.conf</filename>. Utilisez l'éditeur +par défaut (“ee”) pour éditer ce fichier.</para> +<para>Sous une session “root”, visualisez le fichier dans l'éditeur +avec la commande:</para> +<para> +<userinput> +<prompt>#</prompt> ee /etc/rc.conf +</userinput> +</para> +<para>Vers la vingtième ligne environ du fichier, se trouve la section qui +définit quelles interfaces réseau doivent être mises en service au +démarrage. Le fichier de configuration par défaut contient la ligne :</para> +<programlisting> +network_interfaces="lo0" # List of network interfaces (lo0 is loopback) +</programlisting> +<para>que vous devrez modifier pour dire à FreeBSD que vous voulez ajouter un +autre périphérique, en l'occurence l'interface “ed0”, en:</para> +<programlisting> +network_interfaces="lo0 ed0" # List of network interfaces (lo0 is loopback) +</programlisting> +<para>(Faites attention à l'espace entre la définition de l'interface en boucle +“lo0” et l'interface Ethernet “ed0”.)</para> +<note> +<para>Si le nom correspondant à votre interface n'est pas “ed0”,n'oubliez pas de mettre la valeur adéquate à la place.</para> +</note> +<para>Si vous avez installé FreeBSD via une connexion réseau, la ligne +“<filename>network_interfaces</filename>” comporte peut-être +déjà un référence à votre carte Ethernet. Dans ce cas, assurez vous que son nom +soit correct.</para> +<para>Les lignes qui suivent celles où sont listées les interfaces à mettre en +service décrivent les paramètres de chacune de ces interfaces. Dans le fichier +<filename>/etc/rc.conf</filename> par défaut, il n'y a qu'un seule ligne qui +dit:</para> +<programlisting> +ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration +</programlisting> +<para>Vous devrez ajouter une ligne qui définisse les caractéristiques de +votre interface “ed0”.</para> +<para>Si vous avez installé FreeBSD via une connexion réseau, la ligne +“<filename>ifconfig_ed0=</filename>” existe peut-être +déjà. Vérifiez alors qu'elle contienne bien les bonnes valeurs.</para> +<para>En nous référant à notre exemple, nous insérerons la ligne suivante, +immédiatement après la définition de l'interface +“en boucle”:</para> +<programlisting> +ifconfig_ed0="inet 192.168.1.1 netmask 255.255.255.0" +</programlisting> +<para>Après modification, cette section du fichier +<filename>/etc/rc.conf</filename> doit ressembler à:</para> +<programlisting> +--- +network_interfaces="lo0 ed0" # List of network interfaces (lo0 is loopback) +ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration +ifconfig_ed0="inet 192.168.1.1 netmask 255.255.255.0" +--- +</programlisting> +<para>Un fois que vous avez fait toutes les modifications nécessaires, +appuyez sur la touche +<keycap>Echap</keycap> pour aller dans le menu de commandes de +l'éditeur. Choisissez +“leave editor” (quitter l'éditeur) et sélectionnez bien l'option +“save changes” (enregistrer les modifications) quand la question +vous est posée.</para> +</sect3> +</sect2> +<sect2 id="sect33"> +<title>Autoriser la transmission de paquets</title> +<para>Par défaut, FreeBSD n'active pas le transmission de paquets +entre les différentes interfaces réseau d'une machine. En d'autres +termes, les fonctions de routage (aussi appelées de passerelle) +ne sont pas disponibles.</para> +<para>Si vous voulez utiliser le programme <command>ppp</command> +comme poste Internet autonome et non comme passerelle entre le +réseau local et votre fournisseur d'accès à Internet, vous pouvez +passer directement au paragraphe +<link linkend="sect34">Renseigner la liste des autres machines du réseau</link>.</para> +<para>Si vous voulez utiliser le programme <command>ppp</command> +pour connecter à la fois votre machine FreeBSD (pour servir de +routeur) et les autres postes du réseau local, vous devez autoriser +la transmission de paquets IP.</para> +<para>Pour cela, vous devez éditer le fichier +<filename>/etc/rc.conf</filename>. Visualisez le fichier dans l'éditeur +avec la commande:</para> +<para> +<userinput> +<prompt>#</prompt> ee /etc/rc.conf +</userinput> +</para> +<para>Vers la quatre-vingt-cinquième ligne environ, vous trouverez la section +qui contrôle la transmission de paquets. Elle ressemblera a ceci:</para> +<literallayout> +--- +gateway_enable="NO" # Set to YES if the host will be a gateway +--- +</literallayout> +<para>Modifiez-la en:</para> +<para> +<literallayout> +--- +gateway_enable="YES" # Set to YES if the host will be a gateway +--- +</literallayout> +</para> +<para>et quittez l'éditeur (en enregistrant vos modifications!).</para> +<note> +<para>Cette ligne contient peut-être déjà +<command>gateway_enable="YES"</command> +si la transmission de paquets IP a été autorisée au moment de l'installation +du système FreeBSD.</para> +</note> +</sect2> +<sect2 id="sect34"> +<title>Renseigner la liste des autres machines du réseau +(<filename>/etc/hosts</filename>)</title> +<para>La dernière étape de la configuration du réseau local vu de la machine +FreeBSD consiste à créer la liste des noms et des adresses TCP/IP des +différentes machines raccordées au réseau local. Cette liste est définie dans le +fichier <filename>/etc/hosts</filename>.</para> +<para>Par défaut, ce fichier ne contient qu'une ligne: le nom et l'adresse +de l'interface “en boucle”. Par convention, ce nom est toujours +“localhost” et son adresse 127.0.0.1. (Reportez-vous à l'exemple +de configuration des interfaces au paragraphe +<link linkend="sect32">Contrôler la configuration de l'interface Ethernet</link>.)</para> +<para>Pour éditer le fichier <filename>/etc/hosts</filename>, tapez la +commande:</para> +<para> +<userinput> +<prompt>#</prompt> ee /etc/hosts +</userinput> +</para> +<para>Allez jusqu'à la fin du fichier (en lisant au passage les commentaires, +ce sont des informations utiles!) et ajoutez (toujours dans le cas du +réseau de notre exemple) les noms et les adresses IP suivantes:</para> +<programlisting> +192.168.1.1 curly curly.my.domain # machine FreeBSD +192.168.1.2 larry larry.my.domain # machine Windows 95 +192.168.1.3 moe moe.my.domain # machine Windows for Workgroups +192.168.1.4 shemp shemp.my.domain # machine Windows NT +</programlisting> +<para>(Vous ne devez pas modifier la ligne +“<command>127.0.0.1 localhost</command>”.)</para> +<para>Une fois que vous avez ajouté ces lignes, appuyez sur la touche +<keycap>Echap</keycap> pour aller dans le menu de commandes de +l'éditeur. Choisissez +“leave editor” (quitter l'éditeur) et sélectionnez bien l'option +“save changes” (enregistrer les modifications) quand la question +vous est posée.</para> +</sect2> +<sect2 id="sect35"> +<title>Tester le système FreeBSD</title> +<para>Félicitations! Une fois que vous en êtes arrivé là, votre machine +FreeBSD est maintenant une machine UNIX connectée au réseau! Si vous avez +dû modifier votre fichier <filename>/etc/rc.conf</filename>, il faut +redémarrer votre machine FreeBSD. Cela va faire deux choses importantes:</para> +<itemizedlist> +<listitem><para>Appliquer les modifications de configuration des interfaces, +et:</para></listitem> +<listitem><para>Vérifier que le système redémarre sans erreur de configuration +flagrante.</para></listitem> +</itemizedlist> +<sect3> +<title>Vérifier le bon fonctionnement de l'interface +“en boucle”</title> +<para>Pour vérifier que l'interface “en boucle” est correctement +configurée, ouvrez une session sous “root” et tapez:</para> +<para> +<userinput><prompt>#</prompt> ping localhost</userinput> +</para> +<para>Vous devriez voir défiler des messages du type:</para> +<para> +<userinput><prompt>#</prompt> ping localhost</userinput> +<programlisting> +PING localhost.my.domain. (127.0.0.1): 56 bytes +64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=0.219 ms +64 bytes from 127.0.0.1: icmp_seq=1 ttl=255 time=0.200 ms +64 bytes from 127.0.0.1: icmp_seq=2 ttl=255 time=0.187 ms +[...] +</programlisting> +</para> +<para>jusqu'à ce que vous tapiez +<keycombo><keycap>Ctrl</keycap><keycap>C</keycap></keycombo> +pour arrêter ce délire.</para> +</sect3> +<sect3> +<title>Vérifier le bon fonctionnement de l'interface Ethernet</title> +<para>Pour vérifier que l'interface Ethernet est correctement +configurée, tapez:</para> +<para> +<userinput><prompt>#</prompt> ping curly</userinput> +</para> +<para>Vous devriez voir:</para> +<para> +<userinput><prompt>#</prompt> ping curly</userinput> +<programlisting> +PING curly.my.domain. (192.168.1.1): 56 bytes +64 bytes from 192.168.1.1: icmp_seq=0 ttl=255 time=0.219 ms +64 bytes from 192.168.1.1: icmp_seq=1 ttl=255 time=0.200 ms +64 bytes from 192.168.1.1: icmp_seq=2 ttl=255 time=0.187 ms +[...] +</programlisting> +</para> +<para>L'information importante dans ces deux exemples est que les noms +(“localhost” et “curly”) correspondent bien +à leurs adresses IP (127.0.0.1 et 192.168.1.1). Cela confirme que le fichier +<filename>/etc/hosts</filename> est correct.</para> +<para>Si les noms et les adresses apparaîssent correctement dans les résultats +de la commande <command>ping</command> mais que des messages d'erreur sont +affichés, quelque chose ne va pas dans la configuration des interfaces. +Retournez au paragraphe <link linkend="sect31">Contrôler le nom de la machine FreeBSD</link> et +vérifiez de nouveau votre configuration.</para> +<para>Si maintenant, tout va bien, passez à la section suivante.</para> +</sect3> +</sect2> +</sect1> +<sect1> +<title>Configurer la liaison PPP vers l'extérieur</title> +<para>Il y a deux façons d'utiliser le programme <command>ppp</command>: en +mode “Interactif” et en mode “Automatique”.</para> +<para>En mode Interactif, vous:</para> +<itemizedlist> +<listitem> +<para>Etablissez manuellement la connexion avec votre fournisseur d'accès +Internet,</para> +</listitem> +<listitem> +<para>Surfez, transférez des fichiers et envoyez du courrier +électronique, etc.</para> +</listitem> +<listitem> +<para>Coupez manuellement la connexion avec votre fournisseur d'accès +Internet.</para> +</listitem> +</itemizedlist> +<para>En mode Automatique, le programme <command>ppp</command> surveille +silencieusement les opérations du système FreeBSD et se connecte et se +déconnecte automagiquement à votre fournisseur d'accès selon le besoin, +intégrant de façon transparente l'Internet à votre réseau.</para> +<sect2> +<title>Sauvegarder vos fichiers de configuration <command>ppp</command> +d'origine</title> +<para>Avant de modifier les fichiers qu'utilise <command>ppp</command>, il +est bon de sauvegarder les fichiers par défaut créés à l'installation de +FreeBSD.</para> +<para>Ouvrez une session sous le compte “root”, et suivez la +procédure ci-dessous:</para> +<para>Allez dans le répertoire <filename>/etc</filename>:</para> +<para> +<userinput> +<prompt>#</prompt> cd etc +</userinput> +</para> +<para>Faites un copie des fichiers d'origine du répertoire +<filename>ppp</filename>:</para> +<para> +<userinput> +<prompt>#</prompt> cp -R ppp ppp.ORIGINAL +</userinput> +</para> +<para>Vous devriez maintenant avoir un répertoire <filename>ppp</filename> +et un répertoire <filename>ppp.ORIGINAL</filename> dans le répertoire +<filename>etc</filename>.</para> +</sect2> +<sect2> +<title>Créer vos propres fichiers de configuration de +<command>ppp</command></title> +<para>Par défaut, la procédure d'installation de FreeBSD crée un certain +nombre de fichiers d'exemple dans le répertoire <filename>/etc/ppp</filename>. +Prenez un peu de temps pour parcourir ces fichiers. Ce sont des exemples +empruntés à des systèmes qui fonctionnent et ils illustrent les différentes +possibilités du programme <command>ppp</command>.</para> +<para>Je vous encourage <emphasis>fortement</emphasis> à étudier ces exemples +et à les adapter à votre configuration.</para> +<para>Pour plus d'informations sur le programme <command>ppp</command>, lisez +les pages de manuel:</para> +<para> +<userinput> +<prompt>#</prompt> man ppp +</userinput> +</para> +<para>Pour plus d'informations sur le langage <command>chat</command>, utilisé +par <command>ppp</command> pour établir la connexion, lisez les pages de +manuel:</para> +<para> +<userinput> +<prompt>#</prompt> man chat +</userinput> +</para> +<para>La suite de ce chapitre décrit le contenu recommandé des fichiers +de configurations de <command>ppp</command>.</para> +<sect3> +<title>Le fichier <filename>/etc/ppp/ppp.conf</filename></title> +<para>Le fichier <filename>/etc/ppp/ppp.conf</filename> contient les +informations et les paramètres nécessaires pour établir une connexion +vers l'extérieur. Le +<ulink url="&url.handbook;index.html">Manuel +FreeBSD</ulink> décrit en détail le contenu et la syntaxe de ce fichier.</para> +<para>N'est décrite ici que la configuration minimale nécessaire pour arriver +à établir une connexion.</para> +<para>Voici le fichier <filename>/etc/ppp/ppp.conf</filename> que nous +utiliserons sur notre passerelle entre le réseau local et l'Internet:</para> +<para> +<programlisting> +#################################################################### +# Fichier de Configuration de PPP ('/etc/ppp/ppp.conf') +# +# Paramètres par défaut: Ces commandes sont toujours exécutées +# quand PPP est appelé et s'appliquent à toutes les configurations +#################################################################### +default: +set device /dev/cuaa0 +set speed 57600 +disable pred1 +deny pred1 +disable lqr +deny lqr +set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0M0 +OK-AT-OK\\dATDT\\T TIMEOUT 40 CONNECT" +set redial 3 10 +# +# +#################################################################### +# +# Configuration utilisée en mode interactif : +# +# appelée par: `ppp -alias interactive` +# +#################################################################### +interactive: +set authname Your_User_ID_On_Remote_System +set authkey Your_Password_On_Remote_System +set phone 1-800-123-4567 +set timeout 300 +set openmode active +accept chap +# +#################################################################### +# +# Configuration utilisée en mode à la demande ( automatique) +# +# appelée par: 'ppp -auto -alias demand' +# +#################################################################### +demand: +set authname Your_User_ID_On_Remote_System +set authkey Your_Password_On_Remote_System +set phone 1-800-123-4567 +set timeout 300 +set openmode active +accept chap +set ifaddr 127.1.1.1/0 127.2.2.2/0 255.255.255.0 +add 0 0 127.2.2.2 +################################################################ +# Fin de /etc/ppp/ppp.conf +</programlisting> +</para> +<para>Ce fichier, recopié tel quel d'un système opérationnel, comporte trois +parties:</para> +<sect4> +<title>La section “default”</title> +<para> La section “default:” contient les informations et +paramètres utilisés par toutes les autres sections du fichier. Cette section +est donc implicitement ajoutée à toutes les autres.</para> +<para>C'est l'endroit idéal pour définir les valeurs par défaut qui s'appliquent +à toutes les connexions vers l'extérieur; en particulier, la configuration +du modem et le dialogue d'initialisation de la connexion, qui ne changent +pas, quel que soit le système distant auquel vous vous connectez.</para> +<para>Voici le détail de chacune des lignes de la section +“default:” du fichier +<filename>/etc/ppp/ppp.conf</filename>:</para> +<para> +<programlisting> +set device /dev/cuaa0 +</programlisting> +</para> +<para>Cette instruction dit au programme <command>ppp</command> d'utiliser le +premier port série. Sous FreeBSD, le périphérique “/dev/cuaa0” +correspond au port appelé “COM1:” de DOS, Windows, Windows 95, +etc.</para> +<para>Si votre modem est sur le port “COM2”: vous devrez mettre +“/dev/cuaa1”. “/dev/cuaa2” serait le port +“COM3:”.</para> +<para> +<programlisting> +set speed 57600 +</programlisting> +</para> +<para>Cette ligne indique au programme <command>ppp</command> la vitesse +en émission et en réception entre le port série et le modem. Bien que le modem +de notre configuration fonctionne à 28.8 Kbps, donner la valeur 56000 permet +à la liaison série de fonctionner suffisamment vite pour gérer la compression de +données intégrée aux modems les plus récents.</para> +<para>Si vous avez des problèmes pour dialoguer avec votre modem à cette +vitesse, descendez à une valeur inférieure: 38400, voir aussi faible que +19200.</para> +<para> +<programlisting> +disable pred1 +deny pred1 +</programlisting> +</para> +<para>Ces deux lignes désactivent la compression “CCP/Predictor 1” +dont est capable le programme <command>ppp</command>. La version actuelle +de <command>ppp</command> supporte la compression de données selon la +définition provisoire des standards Internet. Malheureusement, de nombreux +fournisseurs d'accès ont des équipements qui n'offrent pas cette possibilité. +Comme la plupart des modems récents sont capables de compression à la volée, +vous ne perdrez probablement pas grand-chose en termes de performances en +désactivant cette possibilité sur votre machine FreeBSD et en interdisant +au site distant de vous la réclamer.</para> +<para> +<programlisting> +disable lqr +deny lqr +</programlisting> +</para> +<para>Ces deux lignes contrôlent l'“audit de la qualité de la +liaison (Link Quality Reporting)” qui est partie intégrante des +spécifications du protocole PPP. +(Voyez la RFC-1989 pour plus de détails.)</para> +<para>La première ligne, “disable lqr” instruit le programme +<command>ppp</command> de ne pas émettre de demandes de contrôle de la +qualité de la liaison à la machine distante.</para> +<para>La seconde ligne, “deny lqr” instruit le progamme +<command>ppp</command> de ne pas accepter de demandes de contrôle de la +qualité de la liaison de la machine distante.</para> +<para>Comme la plupart des modems ont des procédures intégrées de détection et +de correction d'erreur et que l'audit LQR est rarement intégralement +implémentée par les constructeurs, il vaut en général mieux ne pas utiliser +cette possibilité.</para> +<para> +<programlisting> +set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0M0 OK-AT-OK\\dATADT\\T TIMEOUT 40 CONNECT" +</programlisting> +</para> +<note> +<para>(Cette instruction doit être écrite sur une seule ligne; ne tenez +pas compte du formatage sur deux lignes, si elle se présente ainsi dans ce +document.)</para> +</note> +<para>Cette ligne décrit le dialogue entre le programme <command>ppp</command> +et le modem qui doit permettre d'établir la connexion et fournit des +instructions rudimentaires sur la marche à suivre:</para> +<itemizedlist> +<listitem> +<para>Une tentative d'appel échoue si le modem renvoie le code d'erreur +“BUSY (occupé)”,</para> +<para>Une tentative d'appel échoue aussi si le modem renvoie le code d'erreur +“NO CARRIER (pas de porteuse),”,</para> +<para>Le programme <command>ppp</command> doit constater, avec +un délai maximum de cinq secondes entre chaque événement, la séquence +d'événements suivants:</para> +</listitem> +<listitem> +<itemizedlist> +<listitem> +<para>Initialement, le programme <command>ppp</command> n'attend pas de +réponse du modem (c'est le sens de la chaîne <literal>\"\"</literal> dans +l'instruction),</para> +</listitem> +<listitem> +<para>Le programme enverra au modem la chaîne “ATE1Q0M0” et +attendra la réponse “OK”. Si cette réponse n'arrive pas, il enverra +la commande d'interrogation “AT” et attendra à nouveau une réponse +“OK”,</para> +</listitem> +<listitem> +<para>Le programme devra attendre une seconde (c'est le sens de la chaîne +“\\d” dans l'instruction), et envoyer la séquence d'appel au +modem. Le préfixe “ATDT” est la commande d'appel standard pour +les lignes téléphoniques à fréquences vocales. Si vous n'avez pas de ligne +à fréquence vocale, remplacez “ATDT” par “ATDP”. +La chaîne “\\T” sera remplacée par le numéro +de téléphone réel (qui sera défini plus loin par la ligne +“set dial”).</para> +</listitem> +</itemizedlist> +</listitem> +<listitem> +<para>Pour finir, avec un délai d'attente de quarante secondes au maximum, +le programme <command>ppp</command> doit recevoir un code d'acquittement +“CONNECT” du modem.</para> +</listitem> +</itemizedlist> +<para>Un échec à une phase quelconque de ce dialogue sera interpreté comme +un échec d'appel et la connexion ne sera pas établie.</para> +<para>(Pour avoir une description détaillée du mini-langage de commande +utilisé par <command>ppp</command>, reportez-vous aux pages de manuel de +<command>chat</command>.)</para> +<para> +<programlisting> +set redial 3 10 +</programlisting> +</para> +<para>Cette ligne indique au programme <command>ppp</command> qu'en cas d'échec, +il peut faire jusqu'à trois nouvelles tentatives avec un temps d'attente de dix +secondes entre chaque nouvel appel.</para> +</sect4> +<sect4 id="sect4122"> +<title>La section “interactive”</title> +<para>La section “interactive:” contient les valeurs et les +paramètres utilisés par les connexions PPP interactives avec un système +distant particulier. Les lignes de la section “default:” sont +automatiquement incluses dans cette section.</para> +<para>L'exemple donné ci-dessous suppose que vous vous connectiez à un système +qui sait identifier un utilisateur sans avoir à utiliser une série de commandes +baroques. Nous supposerons que le protocole CHAP est utilisé pour initialiser +la session.</para> +<para>A priori, si un système Windows 95 peut établir la connexion d'un simple +clic sur le bouton “Connecter”, la configuration donnée en exemple +devrait fonctionner.</para> +<para>Si, à l'inverse, quand vous vous connectez chez votre fournisseur d'accès +avec les utilitaires de Microsoft Windows 95, vous devez utiliser l'option +“Utiliser des procédures de connexion”<footnote><para>N.d.T: ne +disposant du matériel nécessaire au contrôle de certains de ces libellés dans +les versions françisées de Windows, ils ont été traduits du document en langue +anglaise. En cas d'inexactitude, le lecteur voudra bien rectifier de +lui-même.</para></footnote>. il vous faudra alors +lire les pages de manuel de <command>ppp</command> pour trouver des exemples +de fichiers de configuration de PPP comportant des procédures +“expect / reponse” pour établir votre connexion et vous devrez +utiliser la commande “set login” à cet effet.</para> +<para>Ou mieux, trouvez-vous un fournisseur d'accès qui offre l'authentification +par PAP ou CHAP!</para> +<para>La configuration donnée en exemple a été utilisée avec succès pour se +connecter:</para> +<itemizedlist> +<listitem> +<para>à Divers Shiva LanRovers,</para> +</listitem> +<listitem> +<para>au réseau IBM +(<ulink url="http://www.ibm.net">http://www.ibm.net</ulink>),</para> +</listitem> +<listitem> +<para>à AT&T WorlNet +(<ulink url="http://www.att.com/worldnet">http://www.att.com/worldnet</ulink>),</para> +</listitem> +<listitem> +<para>à Erol's +(<ulink url="http://www.erols.com">http://www.erols.com</ulink>).</para> +</listitem> +</itemizedlist> +<para>Voici la description de chacune des lignes de la section +“interactive:” du fichier <filename>/etc/ppp/ppp.conf</filename> +de l'exemple:</para> +<para> +<programlisting> +set authname Votre_Nom_d_Utilisateur_du_Système_Distant +</programlisting> +</para> +<para>Cette ligne définit avec quel nom d'utilisateur vous vous connectez au +système distant.</para> +<para> +<programlisting> +set authkey Votre_Mot_de_Passe_Utilisateur_du_Système_Distant +</programlisting> +</para> +<para>Cette ligne définit le mot de passe que vous utilisez pour vous connecter +au système distant.</para> +<para> +<programlisting> +set phone 012345678789 +</programlisting> +</para> +<para>C'est le numéro de téléphone avec lequel vous joignez le système +distant.</para> +<para> +<programlisting> +set timeout 300 +</programlisting> +</para> +<para>Cette ligne indique au programme <command>ppp</command> de couper la ligne +s'il n'y a aucun échange pendant cinq minutes (300 secondes). Vous pouvez +adapter cette ligne à votre besoin particulier.</para> +<para> +<programlisting> +set openmode active +</programlisting> +</para> +<para>Cette ligne dit au programme <command>ppp</command> de négocier la +connexion dès que la liaison entre les modems est établie. Certains sites +distants le font automatiquement, d'autres non. Cette instruction permet +à votre site d'initialiser la négociation.</para> +<para> +<programlisting> +accept chap +</programlisting> +</para> +<para>Cette ligne dit au programme <command>ppp</command> d'utiliser le +protocole CHAP “Challenge Handsake Autentification Protocole +(protocole d'authentification par poignée de main avec défi de +décryptage)” pour vous authentifier. Les valeurs échangées entre le +système local et le système distant pour transmettre le nom d'utilisateur +et le mot de passe sont définies par les lignes “authname” et +“authkey”.</para> +</sect4> +<sect4> +<title>La section “demand”</title> +<para>La section “demand:” contient les valeurs et les +paramètres utilisés par les connexions PPP automatiques avec un système +distant particulier. Les lignes de la section “default:” sont +automatiquement incluses dans cette section.</para> +<para>A l'exception des deux dernières lignes, cette section est identique à +la section qui définit la configuration “interactive”.</para> +<para>Comme indiqué au paragraphe +<link linkend="sect4122">La section “interactive”</link>, l'exemple donné +ci-dessous suppose que vous vous connectiez à un système +qui comprenne le protocole CHAP pour initialiser +la session.</para> +<para>Voici la description de chacune des lignes de la section +“demand:” du fichier <filename>/etc/ppp/ppp.conf</filename> +de l'exemple:</para> +<para> +<programlisting> +set authname Votre_Nom_d_Utilisateur_du_Système_Distant +</programlisting> +</para> +<para>Cette ligne définit avec quel nom d'utilisateur vous vous connectez au +système distant.</para> +<para> +<programlisting> +set authkey Votre_Mot_de_Passe_Utilisateur_du_Système_Distant +</programlisting> +</para> +<para>Cette ligne définit le mot de passe que vous utilisez pour vous connecter +au système distant.</para> +<para> +<programlisting> +set phone 012345678789 +</programlisting> +</para> +<para>C'est le numéro de téléphone avec lequel vous joignez le système +distant.</para> +<para> +<programlisting> +set timeout 300 +</programlisting> +</para> +<para>Cette ligne indique au programme <command>ppp</command> de couper la ligne +s'il n'y a aucun échange pendant cinq minutes (300 secondes). Vous pouvez +adapter cette ligne à votre besoin particulier.</para> +<para> +<programlisting> +set openmode active +</programlisting> +</para> +<para>Cette ligne dit au programme <command>ppp</command> de négocier la +connexion dès que la liaison entre les modems est établie. Certains sites +distants le font automatiquement, d'autres non. Cette instruction permet +à votre site d'initialiser la négociation.</para> +<para> +<programlisting> +accept chap +</programlisting> +</para> +<para>Cette ligne dit au programme <command>ppp</command> d'utiliser le +protocole CHAP “Challenge Handsake Autentification Protocole +(protocole d'authentification par poignée de +main avec défi de décryptage)” +pour vous authentifier. Les valeurs échangées entre le système local et le +système distant pour transmettre le nom d'utilisateur et le mot de passe +sont définies par les lignes “authname” et +“authkey”</para> +<para> +<programlisting> +set ifaddr 127.1.1.1/0 127.2.2.2/0 255.255.255.0 +</programlisting> +</para> +<para>Cette commande définit une paire d'adresses IP fictives pour les deux +extrémités de la liaison point-à-point. Elle dit au programme +<command>ppp</command> d'utiliser l'adresse 127.1.1.1 pour l'extrémité locale +de la liaison gérée par le pilote de périphérique +“tun0 (tunnel)”(Reportez-vous au <ulink url="&url.handbook;index.html">manuel FreeBSD</ulink> pour une +description de ce pilote) et l'adresse 127.2.2.2 pour l'extrémité distante. +Le “/0” qui les suit précise le nombre de digits significatifs de +ces adresses, qui peuvent, (et doivent en fait) être négociées entre les +deux systèmes une fois la liaison établie. 255.255.255.0 est le masque de +sous-réseau qui s'applique à ces deux pseudo-interfaces.</para> +<para>Rappelez-vous, nous avons supposé que votre fournisseur d'accès vous +assigne les adresses des deux extrémités de la ligne! Si votre fournisseur +vous a donné une adresse particulière, vous pouvez la mentionner sur cette +ligne <emphasis>à la place</emphasis> de l'adresse 127.1.1.1.</para> +<para>Inversement, si votre fournisseur vous a donné une adresse particulière +pour son côté de la liaison, vous pouvez la mentionner sur cette +ligne <emphasis>à la place</emphasis> de l'adresse 127.2.2.2.</para> +<para>Dans les deux cas, il vaut mieux conserver le “/0” après les +deux adresses. Cela laisse la possibilité au programme <command>ppp</command> +de changer d'adresse(s) <emphasis>s'il en a besoin</emphasis>.</para> +<para> +<programlisting> +add 0 0 127.2.2.2 +</programlisting> +</para> +<para>Cette dernière ligne dit au programme <command>ppp</command> d'ajouter une +route par défaut pour le trafic vers l'adresse (fictive) 127.2.2.2 du +fournisseur d'accès.</para> +<note> +<para>Si vous avez donnée l'adresse que vous a indiqué votre fournisseur d'accès +à la place de l'adresse 127.2.2.2 à la ligne “set ifaddr”, vous +devez utiliser la même adresse ici, à la place de 127.2.2.2.</para> +</note> +<para>En ajoutant cette route “fictive” pour le trafic IP, le +programme <command>ppp</command> peut, successivement, avant et au moment +d'établir la liaison:</para> +<itemizedlist> +<listitem> +<para>Accepter des paquets que FreeBSD ne sait pas encore comment +rediriger,</para> +</listitem> +<listitem> +<para>Etablir la connexion avec votre fournisseur d'accès,</para> +</listitem> +<listitem> +<para>Reconfigurer les adresses IP des deux côtés de la ligne,</para> +</listitem> +<listitem> +<para>Transmettre les paquets entre votre sytème local et votre fournisseur +d'accès,</para> +</listitem> +</itemizedlist> +<para>automatiquement!</para> +<para>Une fois le nombre de secondes défini par l'instruction +“timeout” de la section “default” écoulé sans +trafic TCP/IP, le programme <command>ppp</command> coupe automatiquement la +connexion, et le processus peut recommencer.</para> +</sect4> +</sect3> +<sect3> +<title>Le fichier <filename>/etc/ppp/ppp.linkup</filename></title> +<para>L'autre fichier nécessaire à la configuration de <command>ppp</command> +est <filename>/etc/ppp/ppp.linkup</filename>. Ce fichier contient les +instructions qui définissent ce que <command>ppp</command> doit faire une +fois que la connexion est établie.</para> +<para>Dans le cas d'une connexion à la demande, le programme +<command>ppp</command> doit supprimer la route par défaut vers l'adresse IP +fictive du système distant (127.2.2.2 dans notre exemple plus haut) et +définir une nouvelle route vers l'adresse IP réelle de ce système (obtenue +à l'établissement de la connexion).</para> +<para>Voici un bon exemple de fichier +<filename>/etc/ppp/ppp.linkup</filename>:</para> +<para> +<programlisting> +#########################################################################= +# +# Fichier PPP Link Up ('/etc/ppp/ppp.linkup') +# +# Ce fichier est consulté une fois que PPP a établi une connexion +# +# Ce fichier est lu dans l'ordre suivant : +# +# 1) En premier, l'adresse IP qui nous a été assignée est recherchée +# et la/les commande(s) associée(s) exécutée(s) +# +# 2) Si l'adresse IP n'est pas trouvée, alors l'étiquette donnée au +# démarrage de PPP est recherchée, et la/les commande(s) associée(s) +# exécutée(s) +# +# 3) Si ni l'une ni l'autre n'ont été trouvées, les commandes associées +# à l'étiquette 'MYADDR:' sont exécutées. +# +#########################################################################= + +# +# Cette section correspond à la configuration "demand" de +# /etc/ppp/ppp.conf: +demand: +delete ALL +add 0 0 HISADDR +# +# Toutes les autres configurations de /etc/ppp/ppp.conf utilisent +# ce qui suit: +# +MYADDR: +add 0 0 HISADDR +######################################################################## +# Fin de /etc/ppp/ppp.linkup +</programlisting> +</para> +<para>Remarquez qu'une section de ce fichier s'appelle “demand:”, +tout comme dans le fichier <filename>/etc/ppp/ppp.conf</filename>. Cette section +dit au programme <command>ppp</command> ce qu'il doit faire, une fois la +connexion à la demande établie:</para> +<orderedlist> +<listitem> +<para>Supprimer toutes les informations de routage qu'il a déjà créées,</para> +</listitem> +<listitem> +<para>Ajouter une route par défaut vers l'adresse réelle de la machine +distante.</para> +</listitem> +</orderedlist> +<para>Il est capital que les configurations définies dans le fichier +<filename>/etc/ppp/ppp.conf</filename> et qui comportent les lignes +“set ifaddr” et “add 0 0” (i.e.: les configurations +de connexion à la demande) exécutent les instructions “delete ALL” +et “add 0 0 HISADDR” du fichier +<filename>/etc/ppp/ppp.linkup.</filename></para> +<para><emphasis>C'est le mécanisme qui contrôle la configuration de la liaison +dans le cas d'une connexion à la demande.</emphasis></para> +<para>Toutes les configurations qui ne sont pas explicitement définies dans +le fichier <filename>/etc/ppp/ppp.linkup</filename> utiliseront les commandes +listées dans la section “MYADDR:” de ce fichier. C'est ce que +feront les connexions manuelles (comme dans notre exemple +“interactive:”). Cette section ajoute simplement une route par +défaut vers l'adresse IP du fournisseur d'accès (à l'autre extrémité de la +ligne).</para> +</sect3> +</sect2> +<sect2> +<title>Alias IP</title> +<para>Toutes les étapes précédentes s'appliquent à un systeme FreeBSD utilisé +pour se connecter à la demande à un fournisseur d'accès Internet.</para> +<para>Si vous cherchez simplement, en lisant ce guide, à connecter votre +systeme FreeBSD à l'Internet, vous pouvez passer directement au chapitre +<link linkend="sect6">Tester le réseau</link>.</para> +<para>Une possibilité très intéressante du programme <command>ppp</command> +en mode “connexion à la demande” est sa capacité à aiguiller +automatiquement le trafic vers les autres systèmes du réseau local. On donne +à cela des noms divers “alias IP (IP Aliasing)”, +“traduction d'adresse réseau (Network Adress Translation)”, +“mascarade d'adresse (Adress Masquerading)” ou +“mandatement transparent (Transparent Proxying)”.</para> +<para>Quelle que soit la terminologie employée, ce fonctionnement n'est +cependant pas automatique. Si le programme <command>ppp</command> est démarré +de façon habituelle, il ne fera pas transiter de paquets entre l'interface avec +le réseau local et la liaison vers l'extérieur. En effet, seul le système +FreeBSD est connecté à l'Internet; les autres systèmes ne peuvent pas partager +la même connexion.</para> +<para>Par exemple, si le programme <command>ppp</command> est lancé par:</para> +<para> +<userinput> +<prompt>#</prompt> ppp interactive +</userinput> +</para> +<para>ou:</para> +<para> +<userinput> +<prompt>#</prompt> ppp -auto demand +</userinput> +</para> +<para>correspondant respectivement aux modes manuel et automatique, alors +il établira une connexion à l'Internet pour la <emphasis>seule</emphasis> +machine FreeBSD.</para> +<para>Pour démarrer le programme <command>ppp</command> pour l'utiliser comme +passerelle entre le réseau local et l'Internet, il faut utiliser l'une des +commandes suivantes:</para> +<para> +<userinput> +<prompt>#</prompt> ppp -alias interactive +</userinput> +</para> +<para>ou:</para> +<para> +<userinput> +<prompt>#</prompt> ppp -auto -alias demand +</userinput> +</para> +<para>Alternativement, vous pouvez utiliser l'instruction “alias enable +yes” dans votre fichier de configuration de <command>ppp</command> +(Reportez-vous aux pages de manuel pour plus de détails).</para> +<para>Gardez cela présent à l'esprit si vous passez maintenant au chapitre +<link linkend="sect5">Configurer les systèmes Windows</link>.</para> +</sect2> +</sect1> +<sect1 id="sect5"> +<title>Configurer les Systèmes Windows</title> +<para>Comme indiqué au Chapitre <link linkend="sect2">Mise en oeuvre du réseau local</link>, +le réseau de notre exemple +comporte un système FreeBSD (“Curly”) qui sert de passerelle +(ou routeur) pour un réseau local composé de trois moutures différentes +de systèmes Windows. Pour que ces stations puissent utiliser Curly comme +routeur, elles doivent être correctement configurées. Notez bien que l'on +ne vous explique pas ici comment configurer les postes Windows pour qu'ils +puissent se connecter eux-mêmes. Si vous cherchez de bonnes explications sur +le sujet, voyez +<ulink url="http://www.aladdin.co.uk/techweb">http://www.aladdin.co.uk/techweb</ulink>.</para> +<sect2> +<title>Configurer Windows 95</title> +<para>Il est relativement simple de configurer Windows 95 pour relier un poste +à votre réseau local. Le configuration réseau Windows 95 doit être légérement +modifiée pour pouvoir utiliser le système FreeBSD comme passerelle par défaut +vers votre fournisseur d'accès. Effectuez les étapes suivantes:</para> +<sect3> +<title>Créer le fichier Windows 95 <filename>hosts</filename></title> +<para>Pour vous connecter aux autres postes TCP/IP du réseau local, vous devrez +installer une copie du fichier <filename>hosts</filename> que vous avez créé +sur votre système FreeBSD au paragraphe +<link linkend="sect34">Renseigner la liste des autres machines du réseau</link>.</para> +<itemizedlist> +<listitem><para>Cliquez sur le bouton “Démarrer”, choisissez +“Exécuter ...”, lancez +<userinput>notepad \WINDOWS\HOSTS</userinput> +et cliquez sur “OK”,</para></listitem> +<listitem><para>Sous l'éditeur, entrez les noms et les adresses des machines +recopiés du fichier <filename>hosts</filename> du paragraphe +<link linkend="sect34">Renseigner la liste des autres machines du réseau</link>,</para></listitem> +<listitem><para>Une fois que c'est fait, quittez <command>notepad</command> +(assurez-vous d'avoir enregistré le fichier!).</para></listitem> +</itemizedlist> +</sect3> +<sect3> +<title>Définir le configuration réseau TCP/IP Windows 95</title> +<itemizedlist> +<listitem><para>Cliquez sur le bouton “Démarrer” de la barre de +tâches, Choisissez “Paramètres” et +“Panneau de Configuration”,</para></listitem> +<listitem><para>Double-cliquez sur l'icône réseau pour +l'ouvrir.</para> +<para>Les paramètres des éléments du réseau sont tous +affichés.</para></listitem> +<listitem><para>Sélectionnez l'option “Configuration” et faites +défiler la liste des composants installés pour choisir la ligne +“TCP/IP -><replaceable>votre interface</replaceable>” (où +<replaceable>votre interface</replaceable> est le nom ou le modèle de +votre contrôleur Ethernet),</para> +<para>Si “TCP/IP” ne figure pas dans la liste des composants +réseau installés, cliquez sur le bouton “Ajouter” pour +l'installer avant de continuer</para> +<tip><para>Ajouter | Protocoles | Microsoft | TCP/IP | OK.</para></tip> +</listitem> +<listitem><para>Cliquez sur le bouton “Propriétés” pour afficher +la liste des paramètres associés au composant TCP.</para></listitem> +</itemizedlist> +</sect3> +<sect3> +<title>Configurer les informations relatives à l'adresse IP</title> +<itemizedlist> +<listitem><para>Choisissez l'onglet “Adresse IP”</para></listitem> +<listitem><para>Enfoncez le bouton “Spécifier une adresse +IP”.</para> +<para>(Dans notre exemple, le système Windows 95 est celui que nous avons +appelé “Larry”.)</para></listitem> +<listitem><para>Dans la zone “Adresse IP”, entrez +“192.168.1.2”,</para></listitem> +<listitem><para>Entrez “255.255.255.0” dans le zone +“Masque de Sous-réseau”.</para></listitem> +</itemizedlist> +</sect3> +<sect3> +<title>Configurer les informations relatives à la passerelle</title> +<itemizedlist> +<listitem><para>Cliquez sur l'onglet “Passerelle”.</para> +<para>Dans le réseau de notre exemple, c'est le système FreeBSD qui sera notre +passerelle vers l'Internet (routant les paquets entre le réseau local Ethernet +et la connexion PPP). Entrez l'adresse IP de l'interface Ethernet de la +machine FreeBSD, “192.168.1.1”, dans la zone +“Nouvelle Passerelle” et cliquez sur le bouton +“Ajouter”. S'il y a d'autres passerelles définies dans les +“Passerelles Installées”, peut-être devrez-vous les +supprimer.</para></listitem> +</itemizedlist> +</sect3> +<sect3> +<title>Configurer les informations relatives au DNS</title> +<para>Nous supposons que votre fournisseur d'accès Internet vous a donné une +liste de serveurs de noms de domaines (Domain Name Servers) - ou +“Serveurs DNS” - que vous devez utiliser. Si vous voulez +mettre en service un serveur DNS sur votre machine FreeBSD, reportez-vous au +chapitre +<link linkend="sect7">Exercices pour l'étudiant intéressé</link> pour avoir des indications sur +l'installation d'un serveur DNS sur une machine FreeBSD.</para> +<itemizedlist> +<listitem><para>Cliquez sur l'onglet “Configuration DNS”,</para> +</listitem> +<listitem><para>Assurez-vous que l'option “Activer DNS” est +bien sélectionnée,</para> +<para>(Si cette option n'est pas sélectionnée, seules les machines définies dans +votre fichier <filename>hosts</filename> seront accessibles et vous ne pourrez +pas “surfer” comme vous le souhaitez!)</para></listitem> +<listitem><para>Dans la zone “Hôte”, entrez le nom du poste +Windows 95, dans notre cas : “Larry”,</para></listitem> +<listitem><para>Dans la zone “Domaine”, entrez le nom du réseau +local, dans notre cas : “my.domain”,</para></listitem> +<listitem><para>Dans la zone “Ordre de recherche DNS”, +entrez les adresses +IP des serveurs DNS que votre fournisseur vous a données, cliquez sur +“Ajouter” à chaque adresse que vous définissez. Répétez l'opération +autant de fois que nécessaire pour entrer toutes les adresses que votre +fournisseur vous a indiquées.</para></listitem> +</itemizedlist> +</sect3> +<sect3> +<title>Autres options TCP/IP Windows 95</title> +<para>Pour nos besoins, les paramètres des sections “Avancées”, +“Configuration WINS” et “Liens” sont inutiles.</para> +<para>Si vous souhaitez utiliser le service de noms Internet de Windows +(Windows Internet Naming Service - “WINS”), vous trouverez +plus d'informations sur +<ulink url="http://www.localnet.org">http://www.localnet.org</ulink>, +en particulier en ce qui concerne le partage de fichiers de façon transparente +à travers l'Internet.</para> +</sect3> +<sect3> +<title>Pour finir</title> +<itemizedlist> +<listitem><para>Cliquez sur “OK” pour fermer la fenêtre +“Propriétés TCP/IP”,</para></listitem> +<listitem><para>Cliquez sur “OK” pour fermer la fenêtre +“Panneau de Contrôle Réseau”,</para></listitem> +<listitem><para>Redémarrez votre ordinateur si on vous le demande.</para> +</listitem> +</itemizedlist> +<para>C'est tout!</para> +</sect3> +</sect2> +<sect2> +<title>Configurer Windows NT</title> +<para>Il est relativement simple de configurer Windows NT pour relier un poste +à votre réseau local. Les procédures sont semblables à celles suivies pour +Windows 95 à quelques différences près quant à l'interface utilisateur.</para> +<para>Les étapes décrites ci-dessous s'appliquent à Windows NT 4.0 Workstation, +mais les principes sont les mêmes pour Windows NT 3.5x. Si vous installez un +poste Windows NT 3.5x, vous pouvez vous référer +au paragraphe <link linkend="sect53">Configurer Windows for Workgroups</link>, en +effet, l'interface utilisateur est la même pour NT 3.5x et WfW.</para> +<para>Effectuez les opérations suivantes:</para> +<sect3> +<title>Créer le fichier Windows NT <filename>hosts</filename></title> +<para>Pour vous connecter aux autres postes TCP/IP du réseau local, vous devrez +installer une copie du fichier <filename>hosts</filename> que vous avez créé +sur votre système FreeBSD au paragraphe +<link linkend="sect34">Configurer Windows for Workgroups</link>.</para> +<itemizedlist> +<listitem><para>Cliquez sur le bouton “Démarrer”, choisissez +“Exécuter ...”, lancez +<userinput>notepad \WINDOWS\SYSTEM\DRIVERS\ETC\HOSTS</userinput> +et cliquez sur “OK”,</para></listitem> +<listitem><para>Sous l'éditeur, entrez les noms et les adresses des machines +recopiés du fichier <filename>hosts</filename> du paragraphe +<link linkend="sect34">Renseigner la liste des autres machines du réseau</link>,</para></listitem> +<listitem><para>Une fois que c'est fait, quittez <command>notepad</command> +(assurez-vous d'avoir enregistré le fichier!).</para></listitem> +</itemizedlist> +</sect3> +<sect3> +<title>Définir le configuration réseau TCP/IP Windows NT</title> +<itemizedlist> +<listitem><para>Cliquez sur le bouton “Démarrer” de la barre de +tâches, Choisissez “Paramètres” et +“Panneau de Configuration”,</para></listitem> +<listitem><para>Double-cliquez sur l'icône réseau pour +l'ouvrir,</para></listitem> +<listitem><para>Dans l'onglet “Identification”, +vérifiez les informations des zones “Nom d'Ordinateur” et +“Workgroup”. Dans notre exemple, “Shemp” sera +le nom de la machine, et “Stooges” celui du groupe de travail. +Choisissez “Modifier” pour corriger ces valeurs au +besoin,</para></listitem> +<listitem><para>Choisissez l'onglet “Protocoles”.</para> +<para>Les Protocoles Réseau installés seront affichés. Il peut y en avoir un +certain nombre, mais le seul qui nous intéresse ici est le +“Protocole TCP/IP”. Si le “Protocole TCP/IP” +n'apparaît pas dans la liste, cliquez sur le bouton “Ajouter” +pour l'installer.</para> +<tip><para>Ajouter | Protocole TCP/IP | OK.</para></tip> +</listitem> +<listitem><para>Sélectionnez “Protocole TCP/IP” et cliquez sur le +bouton “Propriétés”.</para> +<para>Les différentes propriétés associées à TCP/IP apparaîtront.</para> +</listitem> +</itemizedlist> +</sect3> +<sect3> +<title>Configurer les informations relatives à l'adresse IP</title> +<para>Vérifiez que l'interface Ethernet est bien définie dans la zone +“Carte Réseau”; si ce n'est pas le cas, parcourez la +liste des contrôleurs jusqu'à ce que l'interface adéquate soit affichée.</para> +<itemizedlist> +<listitem><para>Choisissez l'option “Spécifier une Adresse IP” +pour activer les trois zones de texte,</para> +<para>Dans notre exemple, le poste Windows NT est celui qui s'appele +“Shemp”.</para></listitem> +<listitem><para>Dans la zone “Adresse IP”, entrez +“192.168.1.4”,</para></listitem> +<listitem><para>Entrez “255.255.255.0” dans le zone +“Masque de Sous-réseau.”.</para></listitem> +</itemizedlist> +</sect3> +<sect3> +<title>Configurer les informations relatives à la passerelle</title> +<para>Dans le réseau de notre exemple, c'est le système FreeBSD qui sera notre +passerelle vers l'Internet (routant les paquets entre le réseau local Ethernet +et la connexion PPP).</para> +<itemizedlist> +<listitem><para>S'il n'y a rien encore dans la zone “Nouvelle +Passerelle”, entrez l'adresse IP de l'interface Ethernet de la +machine FreeBSD, “192.168.1.1”, dans cette zone +et cliquez sur le bouton “Ajouter”. Sinon, utilisez le bouton +"Avancées" et la fonction “Ajouter” pour ajouter cette nouvelle +passerelle.</para> +<para>S'il y a d'autres passerelles définies dans les +“Passerelles Installées”, peut-être devrez-vous les +supprimer.</para></listitem> +</itemizedlist> +</sect3> +<sect3> +<title>Configurer les informations relatives au DNS</title> +<para>Nous supposons que votre fournisseur d'accès Internet vous a donné une +liste de serveurs de noms de domaines (Domain Name Servers) - ou +“Serveurs DNS” - que vous devez utiliser.</para> +<para>Si vous voulez +mettre en service un serveur DNS sur votre machine FreeBSD, reportez-vous +au chapitre +<link linkend="sect7">Exercices pour l'étudiant intéressé</link> pour avoir des indications sur +l'installation d'un serveur DNS sur une machine FreeBSD.</para> +<itemizedlist> +<listitem><para>Cliquez sur le bouton “DNS”,</para> +</listitem> +<listitem><para>Dans la zone “Nom d'Hôte”, entrez le nom du poste +Windows NT, dans notre cas : “Shemp”,</para></listitem> +<listitem><para>Dans la zone “Domaine”, entrez le nom du réseau +local, dans notre cas : “my.domain”,</para></listitem> +<listitem><para>Dans la zone “Ordre de recherche du service DNS”, +entrez les adresses +IP des serveurs DNS que votre fournisseur vous a données, cliquez sur +“Ajouter” à chaque adresse que vous définissez. Répétez l'opération +autant de fois que nécessaire pour entrer toutes les adresses que votre +fournisseur vous a indiquées.</para></listitem> +</itemizedlist> +</sect3> +<sect3> +<title>Autres options TCP/IP Windows NT</title> +<para>Pour nos besoins, les paramètres des sections +“Adresses WINS” et “Routage” sont inutiles.</para> +<para>Si vous souhaitez utiliser le service de noms Internet de Windows +(Windows Internet Naming Service - “WINS”), vous trouverez +plus d'informations sur +<ulink url="http://www.localnet.org">http://www.localnet.org</ulink>, +en particulier en ce qui concerne le partage de fichiers de façon transparente +à travers l'Internet.</para> +</sect3> +<sect3> +<title>Pour finir</title> +<itemizedlist> +<listitem><para>Cliquez sur “OK” pour fermer la fenêtre +“Propriétés TCP/IP”,</para></listitem> +<listitem><para>Cliquez sur “OK” pour fermer la fenêtre +“Panneau de Contrôle Réseau”,</para></listitem> +<listitem><para>Redémarrez votre ordinateur si on vous le demande.</para> +</listitem> +</itemizedlist> +<para>C'est tout!</para> +</sect3> +</sect2> +<sect2 id="sect53"> +<title>Configurer Windows for Workgroups</title> +<para>Pour qu'un poste Windows for Workgroups puisse être utilisé en réseau, il +faut avoir installé les pilotes qui sont sur la disquette Microsoft TCP/IP. Ces +pilotes ne sont pas inclus avec WfW et les disquettes qui vont avec. S'il vous +en faut une copie, ils sont disponibles sur +<ulink url="ftp://ftp.microsoft.com/peropsys/windows/public/tcpip">ftp://ftp.microsoft.com/peropsys/windows/public/tcpip.</ulink></para> +<para>Une fois que les pilotes TCP/IP ont été installés, effectuez les +opérations suivantes:</para> +<sect3> +<title>Créer le fichier Windows for Workgroups +<filename>hosts</filename></title> +<para>Pour vous connecter aux autres postes TCP/IP du réseau local, vous devrez +installer une copie du fichier <filename>hosts</filename> que vous avez créé +sur votre système FreeBSD au paragraphe +<link linkend="sect34">Renseigner la liste des autres machines du réseau</link>.</para> +<itemizedlist> +<listitem><para>Dans le Gestionnaire de Programmes, cliquez sur le bouton +“Fichier”, choisissez “Exécuter ...”, lancez +<userinput>notepad \WINDOWS\HOSTS</userinput> +et cliquez sur “OK”,</para></listitem> +<listitem><para>Sous l'éditeur, entrez les noms et les adresses des machines +recopiés du fichier <filename>hosts</filename> de +<link linkend="sect34">Renseigner la liste des autres machines du réseau</link>,</para></listitem> +<listitem><para>Une fois que c'est fait, quittez <command>notepad</command> +(assurez-vous d'avoir enregistré le fichier!).</para></listitem> +</itemizedlist> +</sect3> +<sect3> +<title>Définir le configuration réseau TCP/IP Windows for Workgroups</title> +<itemizedlist> +<listitem><para>Dans le Gestionnaire de Programmes, ouvrez le groupe +“Réseau” en double-cliquant sur l'icône,</para></listitem> +<listitem><para>Double-cliquez sur l'icône “Paramètres +Réseau”,</para></listitem> +<listitem><para>Dans la boîte de dialogue “Pilotes Réseau”, +double-cliquez sur l'option “Microsoft TCP/IP-32”.</para> +</listitem> +</itemizedlist> +</sect3> +<sect3> +<title>Configurer les informations relatives à l'adresse IP</title> +<para>Vérifiez que l'interface Ethernet est bien définie dans la liste +“Carte Réseau”; si ce n'est pas le cas, parcourez la +liste des contrôleurs jusqu'à ce que l'interface adéquate soit affichée +et sélectionnez-la en cliquant dessus.</para> +<itemizedlist> +<listitem><para>Vérifiez que l'option “Activer la Configuration DHCP +Automatique” n'est pas sélectionnée. Si c'est le cas, cliquez dessus +pour effacer le “X”.</para></listitem> +<listitem><para>Dans notre exemple, le poste Windows for Workgroups est celui +qui s'appelle “Moe”; dans la zone “Adresse IP”, entrez +“192.168.1.3”,</para></listitem> +<listitem><para>Entrez “255.255.255.0” dans le zone +“Masque de Sous-réseau”.</para></listitem> +</itemizedlist> +</sect3> +<sect3> +<title>Configurer les informations relatives à la passerelle</title> +<para>Dans le réseau de notre exemple, c'est le système FreeBSD qui sera notre +passerelle vers l'Internet (routant les paquets entre le réseau local Ethernet +et la connexion PPP).</para> +<itemizedlist> +<listitem><para>Entrez l'adresse IP de l'interface Ethernet de la +machine FreeBSD, “192.168.1.1”, dans la zone +“Passerelle par Défaut”.</para></listitem> +</itemizedlist> +</sect3> +<sect3> +<title>Configurer les informations relatives au DNS</title> +<para>Nous supposons toujours que votre fournisseur d'accès Internet vous a +donné une liste de serveurs de noms de domaines (Domain Name Servers) - ou +“Serveurs DNS” - que vous devez utiliser.</para> +<para>Si vous voulez +mettre en service un serveur DNS sur votre machine FreeBSD, reportez-vous +au chapitre +<link linkend="sect7">Exercices pour l'étudiant intéressé</link> pour avoir des indications sur +l'installation d'un serveur DNS sur une machine FreeBSD.</para> +<itemizedlist> +<listitem><para>Cliquez sur l'onglet “Configuration DNS”,</para> +</listitem> +<listitem><para>Dans la zone “Hôte”, entrez le nom du poste +Windows for Workgroups, dans notre cas : “Moe”,</para></listitem> +<listitem><para>Dans la zone “Domaine”, entrez le nom du réseau +local, dans notre cas : “my.domain”,</para></listitem> +<listitem><para>Dans la zone “Ordre de recherche DNS”, +entrez les adresses +IP des serveurs DNS que votre fournisseur vous a données, cliquez sur +“Ajouter” à chaque adresse que vous définissez. Répétez l'opération +autant de fois que nécessaire pour entrer toutes les adresses que votre +fournisseur vous a indiquées,</para></listitem> +<listitem><para>Cliquez sur “OK” pour fermer la fenêtre +“Configuration DNS”.</para></listitem> +</itemizedlist> +</sect3> +<sect3> +<title>Pour finir</title> +<itemizedlist> +<listitem><para>Cliquez sur “OK” pour fermer la fenêtre +“Propriétés TCP/IP”,</para></listitem> +<listitem><para>Cliquez sur “OK” pour fermer la fenêtre +“Panneau de Contrôle Réseau”,</para></listitem> +<listitem><para>Redémarrez votre ordinateur si on vous le demande.</para> +</listitem> +</itemizedlist> +<para>C'est tout!</para> +</sect3> +</sect2> +</sect1> +<sect1 id="sect6"> +<title>Tester le réseau</title> +<para>Une fois que vous aurez terminé les opérations nécessaires décrites plus +haut, votre passerelle PPP vers l'Internet devrait être opérationnelle.</para> +<sect2> +<title>Tester la connexion vers l'extérieur</title> +<para>La première chose à vérifier est que la connexion s'établisse entre votre +modem et votre fournisseur d'accès.</para> +</sect2> +<sect2> +<title>Tester le réseau local</title> +<para>*** à faire ***</para> +</sect2> +</sect1> +<sect1 id="sect7"> +<title>Exercices pour l'étudiant intéressé</title> +<sect2> +<title>Gérer un mini-DNS</title> +<para>Bien que gérer une hiérarchie du service de noms de domaines +(“Domain Name Service” - DNS) puisse être une tâche +diabolique, il est tout à fait faisable d'installer un mini-serveur +DNS sur le sytème FreeBSD qui vous sert aussi de passerelle vers votre +fournisseur d'accès.</para> +<para>A partir des fichiers existants dans <filename>/etc/namedb</filename> +après installation de FreeBSD, il est possible de définir un serveur DNS qui +ait autorité sur le réseau de notre exemple et serve d'interface avec +l'architecture DNS de l'Internet.</para> +<para>Pour cette configuration minimale, il suffit de trois fichiers:</para> +<itemizedlist> +<listitem><para><filename>/etc/namedb/named.boot</filename></para></listitem> +<listitem><para><filename>/etc/namedb/named.root</filename></para></listitem> +<listitem><para><filename>/etc/namedb/mydomain.db</filename></para></listitem> +</itemizedlist> +<para>Le fichier <filename>/etc/namedb/named.root</filename> est automatiquement +initialisé à l'installation de FreeBSD, les deux autres fichiers doivent être +renseignés manuellement.</para> +<sect3> +<title>Le fichier <filename>/etc/namedb/named.boot</filename></title> +<para>Le fichier <filename>/etc/namedb/named.boot</filename> décrit la +configuration initiale du serveur DNS. Essentiellement, il indique au +serveur de noms:</para> +<orderedlist> +<listitem><para>Où sont les fichiers de configuration,</para></listitem> +<listitem><para>De quels “noms de domaines” il a la +responsabilité,</para></listitem> +<listitem><para>Où trouver les autres serveurs DNS.</para></listitem> +</orderedlist> +<para>Avec l'éditeur <command>ee</command>, créez un fichier +<filename>/etc/namedb/named.boot</filename> comme suit:</para> +<para> +<programlisting> + +; fichier de démarrage pour un mini-serveur de noms de domaines + +directory /etc/namedb + +; type domain source machine/fichier fichier de sauvegarde + +cache . named.root +primary my.domain. mydomain.db +</programlisting> +</para> +<para>Les lignes qui commencent par un point-virgule sont des commentaires. +Voici la signification des autres lignes:</para> +<itemizedlist> +<listitem> +<para> +<programlisting> +directory /etc/namedb +</programlisting> +</para> +<para>Dit au serveur de noms où trouver les fichiers de configuration référencés +dans la suite du fichier <filename>/etc/namedb/named.boot</filename>.</para> +</listitem> +<listitem> +<para> +<programlisting> +cache . named.root +</programlisting> +</para> +<para>Dit au serveur de noms que la liste des serveurs de la racine (“Root +Servers”) se trouve dans le fichier <filename>named.root</filename>. (Ce +fichier est inclus dans l'installation standard et n'est pas décrit ici.)</para> +</listitem> +<listitem> +<para> +<programlisting> +primary my.domain mydomain.db +</programlisting> +</para> +<para>Dit au serveur de noms qu'il a “autorité” sur un domaine DNS +appelé “my.domain” et que la liste des adresses IP des machines +du domaine “my.domain” (le réseau local) se trouve dans le fichier +<filename>/etc/namedb/mydomain.db</filename>. +</para> +</listitem> +</itemizedlist> +<para>Une fois créé et sauvegardé le fichier +<filename>/etc/namedb/named.boot</filename>, passez à l'étape suivante pour +créer le fichier <filename>/etc/namedb/named.db</filename>.</para> +</sect3> +<sect3> +<title>Le fichier <filename>/etc/namedb/named.db</filename></title> +<para>Le fichier <filename>/etc/namedb/named.boot</filename> liste les noms +et les adresses IP de <emphasis>toutes</emphasis> les machines du réseau +local.</para> +<para><emphasis>Pour une description détaillée des instructions de ce fichier, +reportez-vous aux pages de manuel de <command>named</command></emphasis>.</para> +<para>Le fichier <filename>/etc/namedb/named.boot</filename> de notre serveur +DNS minimum contient les lignes suivantes:</para> +<para> +<programlisting> +@ IN SOA my.domain. root.my.domain. ( + 961230 ; Serial + 3600 ; Refresh + 300 ; Retry + 3600000 ; Expire + 3600 ) ; Minimum + IN NS curly.my.domain. + +curly.my.domain. IN A 192.168.1.1 # The FreeBSD box +larry.my.domain. IN A 192.168.1.2 # The Win'95 box +moe.my.domain. IN A 192.168.1.3 # The WfW box +shemp.my.domain. IN A 192.168.1.4 # The Windows NT box + +$ORIGIN 1.168.192.IN-ADDR.ARPA + IN NS curly.my.domain. +1 IN PTR curly.my.domain. +2 IN PTR larry.my.domain. +3 IN PTR moe.my.domain. +4 IN PTR shemp.my.domain. + +$ORIGIN 0.0.127.IN-ADDR.ARPA + IN NS curly.my.domain. +1 IN PTR localhost.my.domain. +</programlisting> +</para> +<para>Brièvement, ce fichier déclare que le serveur DNS local est:</para> +<itemizedlist> +<listitem><para>Le “Début d'Autorité” (Start Of Authority) pour +le domaine appelé “my.domain”,</para></listitem> +<listitem><para>Le serveur de noms (Name Server - “NS”) pour +“my.domain”,</para></listitem> +<listitem><para>Responsable de la résolution inverse des adresses IP qui +commencent par “192.168.1” et “127.0.0” +(“$ORIGIN ...”).</para></listitem> +</itemizedlist> +<para>Pour ajouter de nouvelles machines, vous devez ajouter deux lignes pour +chaque système; une dans la section du haut où les noms des systèmes sont +associés aux adresses Internet (“IN A”), et une autre ligne qui +associe inversement l'adresse au nom de la machine (“IN PTR”), +dans la section +“$ORIGIN 1.168.192.IN-ADDR.ARPA”.</para> +</sect3> +<sect3> +<title>Démarrer le serveur DNS</title> +<para>Par défaut, le serveur DNS (<filename>/etc/sbin/named</filename>) n'est +pas lancé au démarrage du système. Vous pouvez modifier ce comportement en +rectifiant une seule ligne dans le fichier <filename>/etc/rc.conf</filename>, +comme suit:</para> +<para>Avec l'éditeur <command>ee</command>, visualisez le fichier +<filename>/etc/rc.conf</filename>. Descendez d'une quarantaine de lignes jusqu'à +ce que vous trouviez la section qui dit:</para> +<para> +<programlisting> +--- +named_enable="NO" # Run named, the DNS server (or NO). +named_flags="-b /etc/namedb/named.boot" # Flags to named (if enabled). +--- +</programlisting> +</para> +<para>et modifiez-la en:</para> +<para> +<programlisting> +--- +named_enable="YES" # Run named, the DNS server (or NO). +named_flags="-b /etc/namedb/named.boot" # Flags to named (if enabled). +--- +</programlisting> +</para> +<para>Sauvegardez le fichier et redémarrez le système.</para> +<para>Vous pouvez aussi démarrer le serveur DNS avec la commande +suivante:</para> +<para> +<userinput> +<prompt>#</prompt> named -b /etc/namedb/named.boot +</userinput> +</para> +<para>Chaque fois que vous modifiez les fichiers du répertoire +<filename>/etc/namedb/named.boot</filename>, vous devez faire relire ces +modifications par le serveur DNS avec la commande suivante:</para> +<para> +<userinput> +<prompt>#</prompt> kill -HUP `cat /var/run/named.pid` +</userinput> +</para> +</sect3> +</sect2> +<sect2> +<title>Essayer les filtres PPP</title> +<para>Le programme <command>ppp</command> a la capacité d'appliquer des règles +de filtrage au trafic qu'il route. Bien que cela ne soit pas aussi sécurisé +qu'un véritable coupe-feu, cela autorise quelques contrôles d'accès à la +liaison.</para> +<para>(“<filename>man ipfw</filename>” pour plus +d'informations sur la configuration d'un système FreeBSD plus sécurisé.)</para> +<para>La documentation complète des différents filtres et règles utilisables +avec le programme <command>ppp</command> se trouve dans les pages de manuel +de <command>ppp</command>.</para> +<para>Il y a quatre classes de filtres qui s'appliquent au programme +<command>ppp</command>:</para> +<itemizedlist> +<listitem> +<para><filename>afilter</filename> - filtre compteur d'accès +(ou “Keep Alive” - garder en vie)</para> +<para>Ils définissent quels événements sont ignorés par l'instruction +<filename>set timeout=</filename>.</para> +</listitem> +<listitem> +<para><filename>dfilter</filename> - filtre d'appel</para> +<para>Ils définissent quels événements sont ignorés par <command>ppp</command> +en mode connexion à la demande.</para> +</listitem> +<listitem> +<para><filename>ifilter</filename> - filtre d'entrée</para> +<para>Ils définissent quels paquets entrants sont acceptés ou +refusés par le programme <command>ppp</command>.</para> +</listitem> +<listitem> +<para><filename>ofilter</filename> - filtre de sortie</para> +<para>Ils définissent quels paquets sortants sont acceptés ou +refusés par le programme <command>ppp</command>.</para> +</listitem> +</itemizedlist> +<para>L'exemple qui suit est un extrait de la configuration d'un système +opérationnel qui donne une bonne base pour un fonctionnement Internet +“normal”, tout en empêchant que <command>ppp</command> accepte +n'importe quoi sur la liaison. Les commentaires décrivent la logique de +chaque jeu de règles.:</para> +<para> +<programlisting> + # + # filtres KeepAlive + # ne pa prendre en compte les paquets ICMP,DNS et RIP + # + set afilter 0 deny icmp + set afilter 1 deny udp src eq 53 + set afilter 2 deny udp dst eq 53 + set afilter 3 deny udp src eq 520 + set afilter 4 deny udp dst eq 520 + set afilter 5 permit 0/0 0/0 + # + # filtre d'appel: + # Note: ICMP établira la connexion dans cette configuration! + # + set dfilter 0 permit 0/0 0/0 + # + # autoriser les paquets ident + # + set ifilter 0 permit tcp dst eq 113 + set ofilter 0 permit tcp src eq 113 + # + # autoriser les connexions telnet à l'Internet + # + set ifilter 1 permit tcp src eq 23 estab + set ofilter 1 permit tcp dst eq 23 + # + # autoriser l'accès ftp à l'Internet + # + set ifilter 2 permit tcp src eq 21 estab + set ofilter 2 permit tcp dst eq 21 + set ifilter 3 permit tcp src eq 20 dst gt 1023 + set ofilter 3 permit tcp dst eq 20 + # + # autoriser les requêtes DNS + # + set ifilter 4 permit udp src eq 53 + set ofilter 4 permit udp dst eq 53 + # + # autoriser les transferts de zone DNS + # + set ifilter 5 permit tcp src eq 53 + set ofilter 5 permit tcp dst eq 53 + # + # autoriser l'accès depuis/vers le réseau local + # + set ifilter 6 permit 0/0 192.168.1.0/24 + set ofilter 6 permit 192.168.1.0/24 0/0 + # + # autoriser les réponses au ping et traceroute + # + set ifilter 7 permit icmp + set ofilter 7 permit icmp + set ifilter 8 permit udp dst gt 33433 + set ofilter 9 permit udp dst gt 33433 + # + # autoriser cvsup + # + set ifilter 9 permit tcp src eq 5998 + set ofilter 9 permit tcp dst eq 5998 + set ifilter 10 permit tcp src eq 5999 + set ofilter 10 permit tcp dst eq 5999 + # + # autoriser NTP pour la synchronization des horloges + # + set ifilter 11 permit tcp src eq 123 dst eq 123 + set ofilter 11 permit tcp src eq 123 dst eq 123 + set ifilter 12 permit udp src eq 123 dst eq 123 + set ofilter 12 permit udp src eq 123 dst eq 123 + # + # SMTP serait une bonne idée! + # + set ifilter 13 permit tcp src eq 25 + set ofilter 13 permit tcp dst eq 25 + # + # + # nous utilisons beaucoup whois, donc nous le laissons passer + # + set ifilter 14 permit tcp src eq 43 + set ofilter 14 permit tcp dst eq 43 + set ifilter 15 permit udp src eq 43 + set ofilter 15 permit udp dst eq 43 + # + # si aucune des conditions ci-dessus n'est remplie, le paquet est refusé + #------- +</programlisting> +</para> +<para>Il peut y avoir jusqu'à vingt règles dans chaque classe de filtres. Dans +chaque classe, les règles sont numérotées séquentiellement de 0 à 20, +<emphasis>mais aucune règle dans une classe particulière n'est appliquée tant +que la règle “0” n'est pas définie!</emphasis></para> +<para>Si vous décidez de <emphasis>ne pas</emphasis> utiliser de règles de +filtrage dans votre configuration du programme <command>ppp</command>, alors +<emphasis>TOUT</emphasis> le trafic de/vers votre système sera accepté lorsqu'il +est connecté à votre fournisseur d'accès.</para> +<para>Si vous décidez d'appliquer des règles de filtrages, ajoutez les lignes +précédentes à votre fichier <filename>/etc/ppp/ppp.conf</filename> dans l'une +des sections “default”, “demand” ou +“interactive” (ou à toutes - c'est à vous de voir).</para> +</sect2> +</sect1> +</article> diff --git a/fr_FR.ISO_8859-1/articles/programming-tools/Makefile b/fr_FR.ISO_8859-1/articles/programming-tools/Makefile new file mode 100644 index 0000000000..72c1d9b8c9 --- /dev/null +++ b/fr_FR.ISO_8859-1/articles/programming-tools/Makefile @@ -0,0 +1,20 @@ +# +# The FreeBSD Documentation Project +# The FreeBSD French Documentation Project +# +# $FreeBSD$ +# Original revision: 1.4 +# + +DOC?= article + +FORMATS?= html + +INSTALL_COMPRESSED?=gz +INSTALL_ONLY_COMPRESSED?= + +SRCS= article.sgml + +DOC_PREFIX?= ${.CURDIR}/../../.. + +.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO_8859-1/articles/programming-tools/article.sgml b/fr_FR.ISO_8859-1/articles/programming-tools/article.sgml new file mode 100755 index 0000000000..064144f61c --- /dev/null +++ b/fr_FR.ISO_8859-1/articles/programming-tools/article.sgml @@ -0,0 +1,2001 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + +<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ +<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man; +<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls; +<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract; +<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader; +<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators; + +<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors; +<!ENTITY % mailing-lists SYSTEM "../../books/handbook/mailing-lists.ent"> %mailing-lists; + <!ENTITY rel.current CDATA "3.2"> +]> + +<article LANG="fr"> + <artheader> + <title>Les outils de développement sous FreeBSD : Guide de + l'utilisateur</title> + <authorgroup> + <author> + <firstname>James</firstname> + <surname>Raynard</surname> + <affiliation> + <address> + <email>jraynard@freebsd.org</email> + </address> + </affiliation> + </author> + </authorgroup> + <abstract> + <para>17 Août 1997</para> + <para>Copyright © James Raynard, 1997.</para> + <para>Ce document est une introduction à l'utilisation de + quelques-uns des outils de programmation fournis avec FreeBSD, + quoique l'essentiel reste aussi valable pour de nombreuses autres + versions d'Unix. Il ne cherche <emphasis>pas</emphasis> à + expliquer en détail comment coder. La plus grande partie du + document suppose que vous n'avez aucune ou peu de notions + préalables de programmation, bien que l'on espère + que la plupart des programmeurs y trouveront quelque chose qui leur + sera utile.</para> + &abstract.disclaimer; + &trans.a.haby; + </abstract> + </artheader> + <sect1> + <title>Introduction<anchor id=foo></title> + <para>FreeBSD fournit un excellent environnement de développement. + Le système de base comprend des compilateurs C, C++ et Fortran, + et un assembleur, pour ne pas mentionner l'interpréteur Perl et + les outils Unix classiques comme <command>sed</command> et + <command>awk</command>. Si cela ne vous suffit pas, il y a beaucoup + d'autres compilateurs et interpréteurs au catalogue des logiciels + portés. FreeBSD est très largement compatible avec les + standards comme <acronym>POSIX</acronym> et <acronym>ANSI</acronym> C, + de même qu'avec son propre héritage BSD, il est donc + possible d'écrire des applications qui compilent et + s'exécutent sur une grande variété de + plates-formes.</para> + <para>Toute cette puissance, toutefois, peut submerger au premier abord, + si vous n'avez jamais auparavant écrit de programme sur une + plate-forme Unix. Ce document vise à vous aider à vous + y mettre, sans approfondir trop les questions les plus avancées. + L'intention est de vous fournir suffisamment de bases pour vous + permettre de tirer ensuite profit de la documentation.</para> + <para>La plus grande partie du document ne demande aucune ou peu de + connaissance de la programmation mais suppose une compétence de + base dans l'utilisation d'Unix et la volonté d'apprendre!</para> + </sect1> + <sect1> + <title>Introduction à la programmation</title> + <para>Un programme est une série d'instructions qui dit à + l'ordinateur de faire des choses diverses; l'instruction qu'il doit + exécuter dépend parfois de ce qui s'est passé + lorsqu'il a exécuté une instruction + précédente. Cette section vous donne un aperçu + des deux principales méthodes pour transmettre ces instructions, + ou “commandes” comme on les appellent. L'une est d'utiliser + un <firstterm>interpréteur</firstterm>, l'autre de se servir d'un + <firstterm>compilateur</firstterm>. Comme les langues humaines sont trop + compliquées pour être comprises sans ambiguïté + par un ordinateur, les commandes sont généralement + écrites dans l'un ou l'autre des languages spécialement + conçus à cet effet.</para> + <sect2> + <title>Interpréteurs</title> + <para>Dans le cas d'un interpréteur, le langage s'accompagne d'un + environnement, sous lequel vous tapez des commandes à son invite + et qui les exécute pour vous. Pour des programmes plus + compliqués, vous pouvez saisir les commandes dans un fichier + et le faire charger et exécuter les commandes qu'il contient par + l'interpréteur. Si quelque chose se passe mal, la plupart des + interpréteurs passeront le contrôle à un + débogueur pour vous aider à trouver l'origine du + problème.</para> + <para>Cela a l'avantage de vous permettre de voir immédiatement + le résultat de vos commandes et de corriger sur le champ vos + erreurs. Le principal inconvénient survient lorsque vous voulez + partager vos programmes avec d'autres. Il faut qu'ils aient le + même interpréteur que vous ou que vous ayez le moyen de + leur fournir cet interpréteur; il faut aussi qu'ils comprennent + comment s'en servir. Les utilisateurs peuvent aussi ne pas + apprécier de se retrouver sous un débogueur s'ils + appuyent sur la mauvaise touche! Du point de vue de la performance, + les interpréteurs utilisent parfois beaucoup de mémoire + et ne générent habituellement pas le code aussi + efficacement que les compilateurs.</para> + <para>A mon avis, les langages interprétés sont le meilleur + moyen de débuter si vous n'avez jamais programmé + auparavant. On trouve typiquement ce genre d'environnement avec des + langages tels que Lisp, Smalltalk, Perl et Basic. On peut aussi + avancer que le <foreignphrase>shell</foreignphrase> Unix est + lui-même un interpréteur, beaucoup écrivent en fait + avec des + procédures - <foreignphrase>scripts</foreignphrase> - pour + se faciliter le travail d'administration de leur machine. De fait, + une partie de la philosphie d'origine d'Unix était de fournir + nombre de petits programmes utilitaires qui puissent être + utilisés de concert dans des procédures pour effectuer + des tâches utiles.</para> + </sect2> + <sect2> + <title>Interpréteurs disponibles pour FreeBSD</title> + + <para>Voici une liste des interpréteurs disponibles sous forme de + <ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/">“paquetages”</ulink> + FreeBSD, accompagnée d'une brève description des langages + interprétés les plus répandus.</para> + <para>Pour vous procurer l'un de ces “paquetages”, il vous + suffit de cliquer sur le lien correspondant et d'exécuter + ensuite:</para> +<screen>&prompt.root; <userinput>pkg_add <replaceable>nom_du_paquetage</replaceable></userinput></screen> + <para>sous le compte super-utilisateur <username>root</username>. Il faut + bien évidemment que vous ayez un système FreeBSD 2.1.0 + ou ultérieur en état de marche pour que le logiciel + fonctionne.</para> + <variablelist> + <varlistentry> + <term><acronym>BASIC</acronym></term> + <listitem> + <para>Abréviation pour “<foreignphrase>Beginner's + All-purpose Symbolic Instruction + Code</foreignphrase>” - code d'instructions + symbolique universel pour les débutants. + Développé dans les années 50 pour apprendre + la programmation aux étudiants des Universités et + fourni avec tout ordinateur personnel qui se respectait dans les + années 80, <acronym>BASIC</acronym> a été le + premier langage pour de nombreux programmeurs. C'est aussi la base + de <trademark>Visual Basic</trademark>.</para> + <para>L'<ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/lang/bwbasic-2.10.tgz">interpréteur + Basic Bywater</ulink> et + l'<ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/lang/pbasic-2.0.tgz">interpréteur + Basic de Phil Cockroft</ulink> (appelé auparavant + “Rabbit Basic”) sont disponibles sous forme de + <ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/">“paquetages” + FreeBSD</ulink>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Lisp</term> + <listitem> + <para>Un langage développé à la fin des + années 1950 comme alternative aux langages + “dévoreurs de nombres” qui e´taient + populaires à l'époque. Au lieu d'être + basé sur les nombres, Lisp repose sur les listes; de fait, + son nom est une abréviation pour “<foreignphrase>List + Processing</foreignphrase>” - traitement de + listes. Trés répandu dans les milieux de l'IA + (Intelligence Artificielle).</para> + <para>Lisp est un langage très puissant et + sophistiqué, mais peut être assez lourd et + bavard.</para> + <para>FreeBSD dispose de + <ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/gcl-2.0.tgz">GNU + Common Lisp</ulink> sous forme de “paquetage”.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Perl</term> + <listitem> + <para>Très employé par les administrateurs + système pour écrire des procédures; et + souvent aussi sur les serveurs <foreignphrase>World Wide + Web</foreignphrase> pour écrire des procédures + <acronym>CGI</acronym>.</para> + <para>La Version 4, qui est probablement encore la version la plus + largement répandue est fournie avec FreeBSD; le plus + récent + <ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/lang/perl-5.001.tgz">Perl + Version 5</ulink> est disponible sous forme de + “paquetage”.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Scheme</term> + <listitem> + <para>Un dialecte de Lisp qui est plutôt plus compact et plus + propre que Common Lisp. Courant dans les Universités parce + qu'il est assez facile à enseigner en premier cycle comme + langage d'initiation et présente un niveau d'abstraction + suffisant pour être utilisé pour du travail de + recherche.</para> + <para>FreeBSD offre en “paquetages” + l'<ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/lang/elk-3.0.tgz">Interpréteur + Scheme Elk</ulink>, + l'<ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/lang/mit-scheme-7.3.tgz">Interpréteur Scheme du MIT</ulink> et + l'<ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/lang/scm-4e1.tgz">Interpréteur + Scheme SCM</ulink>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Icon</term> + <listitem> + <para><ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/lang/icon-9.0.tgz">Le + langage de programmation Icon</ulink>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Logo</term> + <listitem> + <para><ulink URL="ftp://ftp.freebsd.org:pub/FreeBSD/packages/lang/ucblogo-3.3.tgz">L'interpréteur + LOGO de Brian Harvey</ulink>.</para> + </listitem> + </varlistentry> + <varlistentry><term>Python</term> + <listitem> + <para><ulink URL="ftp://ftp.freebsd.org/pub/FreeBSD/packages/lang/python-1.2">Le + langage de programmation orienté objet Python</ulink>.</para> + </listitem> + </varlistentry> + </variablelist> + </sect2> + <sect2> + <title>Compilateurs</title> + <para>Les compilateurs sont assez différents. Vous écrivez + d'abord votre code dans un(des) fichiers(s) à l'aide d'un + éditeur. Vous exécutez ensuite le compilateur et voyez + s'il valide votre programme. S'il ne le compile pas, serrez les dents et + retournez sous l'éditeur. S'il le compile et vous en fait un + programme, vous pouvez l'utiliser soit à l'invite de + l'interpréteur de commande, soit en vous servant d'un + débogueur pour voir s'il fonctionne + correctement<footnote><para>Dans + le cas contraire, si vous l'exécutez sur la ligne de commande, il + peut éventuellement + planter - “<foreignphrase>core + dump</foreignphrase>”.</para></footnote>.</para> + <para>Ce n'est évidemment pas aussi immédiat que de se + servir d'un interpréteur. Cela vous permet cependant de faire + beaucoup de choses qui sont très difficiles ou même + irréalisables avec un interpréteur, comme écrire + du code qui interagisse étroitement avec le système + d'exploitation - ou même écrire votre propre + système d'exploitation! C'est aussi utile si vous avez besoin + d'écrire du code très efficace, parce que le compilateur + peut prendre son temps et optimiser le code, ce qui ne serait pas + acceptable d'un interpréteur. Distribuer un programme + écrit pour un compilateur est généralement plus + facile - il suffit de livrer une copie de l'exécutable, + en supposant que les destinataires aient le même système + d'exploitation que vous.</para> + <para>Les langages compilés incluent Pascal, C et C++. C et C++ + sont des langages qui pardonnent assez peu, et plus adaptés aux + programmeurs plus expérimentés. Pascal, d'un autre + côté, a été conçu pour l'enseignement, + et est un assez bon langage avec lequel commencer. Malheureusement, + FreeBSD n'a aucun support pour Pascal, à l'exception d'un + convertisseur de Pascal en C, au catalogue des logiciels + portés.</para> + <para>Comme le cycle + “édition-compilation-exécution-débogage” + est assez fastidieux, de nombreux fournisseurs de compilateurs + commerciaux + ont produit des Environnements de Développement + Intégrés (<acronym>EDI</acronym> en abrégé). + FreeBSD ne dispose pas d'<acronym>EDI</acronym> en tant que tel; il est + cependant possible d'utiliser Emacs à cet effet. C'est + expliqué à la section <link linkend="emacs">Utiliser + Emacs comme environnement de développement</link>.</para> + </sect2> + </sect1> + <sect1> + <title>Compiler avec <command>cc</command></title> + <para>Cette section ne s'occupe que du compilateur GNU pour C et C++, qui + est fourni de base avec le système FreeBSD. Il peut être + appelé soit avec la commande <command>cc</command>, soit avec + <command>gcc</command>. Les détails de la réalisation + d'un programme avec un interpréteur varient considérablement + d'un interpréteur à l'autre, est sont + généralement bien décrits par l'aide en ligne de + l'interpréteur.</para> + <para>Une fois que vous avez écrit votre chef-d'oeuvre, + l'étape suivante consiste à le convertir en quelque chose + qui (espérons-le!) s'exécutera sous FreeBSD. Cela demande + habituellement plusieurs opérations successives, dont chacune est + confiée à un programme différent.</para> + <procedure> + <step> + <para>Pré-processer votre code source pour en éliminer les + commentaires et faire diverses autres choses, comme la substitution + des macros-instructions en C.</para> + </step> + <step> + <para>Vérifier la syntaxe de votre code pour s'assurer que vous + avez respecté les règles du langage. Si ce n'est pas le + cas, il rouspétera.</para> + </step> + <step> + <para>Convertir le code source en langage + assembleur - c'est très proche du code machine, mais + encore compréhensible par des êtres humains. C'est du + moins ce que l'on prétend<footnote><para>Pour être + rigoureusement exact, <command>cc</command> convertit le code source + en un <firstterm>P-code</firstterm> qui lui est propre, et ne + dépend pas de la machine, et non en assembleur à ce + stade.</para></footnote>.</para> + </step> + <step> + <para>Convertir le langage assembleur en code machine - oui, + nous parlons ici de bits et d'octets, de zéros et de + uns.</para> + </step> + <step> + <para>Vérifier que vous avez utilisé de façon + cohérente les fonctions et les variables globales. Si, par + exemple, vous avez appelé une fonction qui n'existe pas, il + s'en plaindra.</para> + </step> + <step> + <para>Si vous essayez de générer un programme à + partir de plusieurs fichiers de source, faire ce qu'il faut pour + les regrouper.</para> + </step> + <step> + <para>S'arranger pour produire quelque chose que le chargeur de + programmes du système pourra mettre en mémoire et + exécuter.</para> + </step> + </procedure> + <para>Le mot <firstterm>compiler</firstterm> est souvent utilisé pour + ne désigner que les étapes 1 à 4 - les + autres sont appelées <firstterm>édition de + liens</firstterm>. L'étape 1 est parfois appelée + <firstterm>pré-processer</firstterm> et les étapes 3-4 + <firstterm>assembler</firstterm>.</para> + <para>Heureusement, pratiquement tous ces détails vous sont + transparents, car la commande <command>cc</command> est une interface + qui gère pour vous l'appel de ces différents programmes + avec les bons arguments; taper simplement:</para> +<screen>&prompt.user; <userinput>cc foobar.c</userinput></screen> + <para>effectue la compilation de <filename>foobar.c</filename> en passant + par toutes les étapes décrites ci-dessus. Si vous avez + à compiler plus d'un fichier, faites simplement quelque chose + comme:</para> +<screen>&prompt.user; <userinput>cc foo.c bar.c</></screen> + <para>Notez que la vérification syntaxique ne consiste qu'en cela: + vérifier la syntaxe. Il n'y aura pas de contrôle sur les + erreurs logiques que vous auriez commises, comme faire exécuter + au programme une boucle infinie ou utiliser un tri à bulles au lieu + d'un tri par arbre binaire<footnote><para>Au cas où vous ne le + sauriez pas, un tri par arbre binaire est une manière efficace + d'ordonner des données, ce qui n'est pas le cas du tri + à bulles.</para></footnote>.</para> + <para><command>cc</command> dispose d'une quantité d'options, qui + sont toutes décrites dans les pages de manuel. En voici + quelques-unes des plus importantes, et la façon de les + utiliser.</para> + <variablelist> + <varlistentry> + <term><option>-o <replaceable>nom_de_fichier</replaceable></option></term> + <listitem> + <para>Le nom du fichier résultat. Si vous n'utilisez pas cette + option, <command>cc</command> générera un + exécutable appelé + <filename>a.out</filename><footnote><para>Les raisons de cela se + sont perdues dans les brumes de + l'histoire.</para></footnote>.</para> + <informalexample> +<screen>&prompt.user; <userinput>cc foobar.c</userinput> <lineannotation>l'exécutable est <filename>a.out</filename></lineannotation> +&prompt.user; <userinput>cc -o foobar foobar.c</userinput> <lineannotation>l'exécutable est <filename>foobar</filename></lineannotation></screen> + </informalexample> + </listitem> + </varlistentry> + <varlistentry> + <term><option>-c</option></term> + <listitem> + <para>Uniquement compiler le fichier, ne pas faire l'édition de + liens. Utile pour des programmes d'essai, quand vous voulez + simplement vérifier la syntaxe, ou si vous vous servez d'un + <filename>Makefile</filename>.</para> + <informalexample> +<screen>&prompt.user; <userinput>cc -c foobar.c</userinput></screen> + </informalexample> + <para>Cela générera un <firstterm>fichier + objet</firstterm> (et non un exécutable) appelé + <filename>foobar.o</filename>. Il pourra être lié avec + d'autres fichiers objet pour constituer un exécutable.</para> + </listitem> + </varlistentry> + <varlistentry> + <term><option>-g</option></term> + <listitem> + <para>Crée une version débogable de l'exécutable + Le compilateur inclut alors dans l'exécutable des + informations de correspondance entre les numéros de ligne du + fichier source et les fonctions appelées. Un débogueur + peut alors utiliser ces informations pour vous afficher le code + source tandis que vous exécutez pas à pas le + programme, ce qui est <emphasis>très</emphasis> utile; + l'inconvénient est que toutes ces informations augmentent + considérablement la taille du programme. Normalement, vous + compilez avec <option>-g</option> quand vous développez le + programme, et compilez ensuite une “version de + livraison” quand vous êtes satisfait parce qu'il + fonctionne correctement.</para> + <informalexample> +<screen>&prompt.user; <userinput>cc -g foobar.c</userinput></screen> + </informalexample> + <para>Cela produira une version débogable du + programme<footnote><para>Remarquez que nous n'avons pas + utilisé l'indicateur <option>-o</option> pour préciser + le nom de l'exécutable, celui-ci s'appelera donc + <filename>a.out</filename>. Générer une version + débogable appelée <filename>foobar</filename> est + laissé à titre d'exercice aux soins du + lecteur!</para></footnote>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term><option>-O</option></term> + <listitem> + <para>Génère une version optimisée de + l'exécutable. Le compilateur effectue alors diverses + opérations bien pensées pour essayer de construire + un programme qui aille plus vite que normalement. Vous pouvez + faire suivre <option>-O</option> d'un nombre pour demander un + degré plus important d'optimisation, mais cela met souvent + en évidence des bogues dans l'optimiseur du compilateur. + Par exemple, on sait que la version de <command>cc</command> de + FreeBSD 2.1.0 produit du code incorrect avec l'option + <option>-O2</option> dans certaines circonstances.</para> + <para>On n'active en général l'optimisation + qu'à la compilation de la version de livraison.</para> + <informalexample> +<screen>&prompt.user; <userinput>cc -O -o foobar foobar.c</userinput></screen> + </informalexample> + <para>Cela construira une version optimisée de + <filename>foobar</filename>.</para> + </listitem> + </varlistentry> + </variablelist> + <para>Les trois indicateurs suivants demanderont à + <command>cc</command> de vérifier que votre code est conforme + à la norme internationale, souvent appelée norme + <acronym>ANSI</acronym>, bien que ce soit à proprement parler + une norme <acronym>ISO</acronym>.</para> + <variablelist> + <varlistentry> + <term><option>-Wall</option></term> + <listitem> + <para>Active tous les messages d'avertissement que les auteurs du + compilateur <command>cc</command> ont jugés + intéressants. Malgré son nom + (“<foreignphrase>all</foreignphrase>” - tous), + cela n'active pas tous les messages d'avertissement dont le + compilateur est capable.</para> + </listitem> + </varlistentry> + <varlistentry> + <term><option>-ansi</option></term> + <listitem> + <para>Désactive la plupart, mais pas toutes, les + possibilités non-<acronym>ANSI</> C fournies par + <command>cc</command>. Malgré son nom, cela ne garantit pas + absolument que votre code soit conforme à la norme.</para> + </listitem> + </varlistentry> + <varlistentry> + <term><option>-pedantic</option></term> + <listitem> + <para>Désactive <emphasis>toutes</emphasis> les + possibilités non-<acronym>ANSI</> C de + <command>cc</command>.</para> + </listitem> + </varlistentry> + </variablelist> + <para>Sans ces indicateurs, <command>cc</command> vous permet d'utiliser + ses extensions non-standard de la norme. Quelques-unes sont très + utiles, mais ne se retrouveront pas sur d'autres + compilateurs - de fait, l'un des objectifs principaux de la + norme est de permettre l'écriture de code qui puissent être + réutilisé avec n'importe quel compilateur sur n'importe + quel système. C'est cela que l'on appelle du <firstterm>code + portable</firstterm>.</para> + <para>En général, vous devriez vous efforcer de rendre votre + code aussi portable que possible, sans quoi vous risquez de devoir + réécrire entièrement votre programme par la suite + pour qu'il fonctionne ailleurs - et qui peut dire ce que vous + utiliserez dans quelques années?</para> + <informalexample> +<screen>&prompt.user; <userinput>cc -Wall -ansi -pedantic -o foobar foobar.c</userinput></screen> + </informalexample> + <para>Cela générera un exécutable + <filename>foobar</filename> après avoir vérifié que + <filename>foobar.c</filename> respecte la norme.</para> + <variablelist> + + <varlistentry> + <term><option>-l<replaceable>bibliothèque</replaceable></option></term> + <listitem> + <para>Définit une bibliothèque de fonctions à + utiliser pour l'édition de liens.</para> + <para>L'exemple le plus courant est la compilation d'un programme + qui utilise certaines des fonctions mathématiques de C. A + l'inverse de la plupart des autres plates-formes, ces fonctions + sont dans une bibliothèque différente de la + bibliothèque C standard et vous devez préciser au + compilateur qu'il doit l'utiliser.</para> + <para>La règle est que si la bibliothèque s'appelle + <filename>lib<replaceable>quelque_chose</replaceable>.a</filename>, + vous donnez à <command>cc</command> l'argument + <option>-l<replaceable>quelque_chose</replaceable></option>. Par + exemple, la bibliothèque mathématique s'appelle + <filename>libm.a</filename>, vous donnez donc à + <command>cc</command> l'argument <option>-lm</option>. Un + détail à connaître à propos de la + bibliothèque mathématique est que ce doit + généralement être la dernière sur + la ligne de commande.</para> + <informalexample> +<screen>&prompt.user; <userinput>cc -o foobar foobar.c -lm</userinput></screen> + </informalexample> + <para>Cela ajoutera à l'édition de liens de + <filename>foobar</filename> des fonctions de la + bibliothèque mathématique.</para> + <para>Si vous compilez du code C++, vous devrez ajouter + <option>-lg++</option>, ou <option>-lstdc++</option> si vous + utilisez la version 2.2 de FreeBSD ou une version + ultérieure, à la ligne de commande pour + éditer les liens avec les fonctions de la + bibliothèque C++. Au lieu de cela, vous pouvez utiliser la + commande <command>c++</command> au lieu de <command>cc</command>, + qui fera la même chose à votre place. Sous FreeBSD, + <command>c++</command> peut aussi être appellé avec + <command>g++</command>.</para> + <informalexample> +<screen>&prompt.user; <userinput>cc -o foobar foobar.cc -lg++</userinput> <lineannotation>Avec FreeBSD 2.1.6 et antérieurs</lineannotation> +&prompt.user; <userinput>cc -o foobar foobar.cc -lstdc++</userinput> <lineannotation>Avec FreeBSD 2.2 et ultérieurs</lineannotation> +&prompt.user; <userinput>c++ -o foobar foobar.cc</userinput></screen> + </informalexample> + + <para>Chacun de ces exemples construira un exécutable + <filename>foobar</filename> à partir du fichier source C++ + <filename>foobar.cc</filename>. Remarquez que, sur les + systèmes Unix, les fichiers sources C++ ont + traditionnellement l'extension <filename>.C</filename>, + <filename>.cxx</filename> ou <filename>.cc</filename>, + plutôt que l'extension <filename>.cpp</filename> + de sytle <trademark>MS-DOS</trademark> (qui est déjà + utilisée pour autre chose). <command>gcc</command> se + fiait autrefois à l'extension pour savoir quel type de + compilateur utiliser avec le fichier source, mais cette + restriction ne s'applique plus, vous pouvez donc appeler vos + fichiers C++ <filename>.cpp</filename> en toute + impunité!</para> + </listitem> + </varlistentry> + </variablelist> + <sect2> + <title>Questions et problèmes <command>cc</command></title> + <para>Q. J'essaie d'écrire un programme qui utilise la fonction + <function>sin()</function> et j'obtiens une erreur qui ressemble + à ce qui suit. Qu'est-ce que cela veut dire? + <informalexample> +<screen>/var/tmp/cc0143941.o: Undefined symbol `_sin' referenced from text segment</screen> + </informalexample> + </para> + <para>R. Quand vous utilisez des fonctions mathématiques telles + que <function>sin()</function>, vous devez dire à + <command>cc</command> d'inclure la bibliothèque + mathématique à l'édition de liens, comme ceci: + <informalexample> +<screen>&prompt.user; <userinput>cc -o foobar foobar.c -lm</userinput></screen> + </informalexample></para> + + <para>Q. D'accord, j'ai écrit ce petit programme pour + m'entraîner à utiliser <option>-lm</option>. Il ne fait + que calculer 2.1 à la puissance 6: + <informalexample> + <programlisting> +#include <stdio.h> + +int main() { + float f; + + f = pow(2.1, 6); + printf("2.1 ^ 6 = %f\n", f); + return 0; +} + </programlisting> + </informalexample> + et l'ai compilé comme ceci: + <informalexample> +<screen>&prompt.user; <userinput>cc temp.c -lm</userinput></screen> + </informalexample> + comme vous avez dit qu'il fallait le faire, mais voilà ce que + j'obtiens à l'exécution: + <informalexample> +<screen>&prompt.user; <userinput>./a.out</userinput> +2.1 ^ 6 = 1023.000000</screen> + </informalexample></para> + <para>Ce n'est <emphasis>pas</emphasis> la bonne réponse! Que se + passe-t-il?</para> + <para>R. Quand le compilateur voit que vous appelez une fonction, il + regarde s'il en a déjà vu un prototype. Si ce n'est pas + le cas, il suppose que la fonction retourne un + <type>int</type> - <foreignphrase>entier</foreignphrase>, ce + qui n'est évidemment pas ce que vous souhaitez dans ce + cas.</para> + <para>Q. Comment alors régler ce problème?</para> + <para>R. Les prototypes des fonctions mathématiques sont dans + <filename>math.h</filename>. Si vous incluez ce fichier, le + compilateur trouvera le prototype et cessera de vous fournir un + résultat bizarre! + <informalexample> + <programlisting> +#include <math.h> +#include <stdio.h> + +int main() { +... + </programlisting> + </informalexample> + </para> + <para>Après l'avoir recompilé de la même + façon qu'auparavant, exécutez-le: + <informalexample> +<screen>&prompt.user; <userinput>./a.out</userinput> +2.1 ^ 6 = 85.766121</screen> + </informalexample> + </para> + <para>Si vous utilisez la moindre fonction mathématique, incluez + <emphasis>toujours</emphasis> <filename>math.h</filename> et n'oubliez + pas d'utiliser la bibliothèque mathématique à + l'édition de liens.</para> + <para>Q. J'ai compilé un fichier appelé + <filename>foobar.c</filename> et je ne trouve pas d'exécutable + appelé <filename>foobar</filename>. Où est-il + passé?</para> + <para>R. N'oubliez pas, <command>cc</command> appelera + l'exécutable <filename>a.out</filename> à moins que vous + ne lui disiez de faire autrement. Utilisez l'option + <option>-o <replaceable>nom_de_fichier</replaceable></option>: + <informalexample> +<screen>&prompt.user; <userinput>cc -o foobar foobar.c</userinput></screen> + </informalexample> + </para> + <para>Q. OK, si j'ai un exécutable appelé + <filename>foobar</filename>, je le vois avec <command>ls</command>, + mais quand je tape <command>foobar</command> sur la ligne de commande, + il me dit que le fichier n'existe pas. Pourquoi ne le trouve-t-il + pas?</para> + <para>R. A l'inverse de <trademark>MS-DOS</trademark>, Unix ne regarde + pas dans le répertoire courant quand il cherche le programme + que vous voulez exécuter, à moins que vous ne le lui + disiez. Soit tapez <command>./foobar</command>, ce qui veut dire + “exécuter le fichier appelé + <filename>foobar</filename> du répertoire courant”, ou + modifiez votre variable d'environnement + <systemitem class=environvar>PATH</systemitem> pour qu'elle ressemble + à: + <informalexample> +<screen>bin:/usr/bin:/usr/local/bin:.</screen> + </informalexample> + Le dernier point signifie “chercher dans le répertoire + courant si le fichier n'est pas dans les autres + répertoires”.</para> + <para>Q. J'ai appelé mon exécutable + <filename>test</filename>, mais il ne se passe rien quand je le + lance. Pourquoi?</para> + <para>R. Il y a un programme appelé <command>test</command> dans + <filename>/usr/bin</filename> sur la plupart des systèmes Unix + et c'est celui-là que trouve l'interpréteur de commandes + avant de regarder dans le répertoire courant. Soit tapez: + <informalexample> +<screen>&prompt.user; <userinput>./test</userinput></screen> + </informalexample> + ou choisissez un meilleur nom pour votre programme!</para> + <para>Q. J'ai compilé et tout a commencé à + fonctionner correctement, puis il y a eu une erreur et il m'a dit + quelque chose à propos de <errorname>core dumped</errorname>. + Qu'est-ce que cela veut dire?</para> + <para>A. L'expression <firstterm>core dump</firstterm> date des tous + premiers jours d'Unix, quand les machines utilisaient la + mémoire + centrale - “<foreignphrase>core memory</foreignphrase>” + pour stocker les informations. Essentiellement, si le programme + “plantait” dans certaines conditions, le système + enregistrait sur disque le contenu de la mémoire centrale + dans un fichier appelé <filename>core</filename>, que le + programmeur pouvait ensuite disséquer pour trouver + où les choses avaient mal tournées.</para> + <para>Q. Fascinant, mais que suis-je censé faire + maintenant?</para> + <para>A. Servez-vous de <command>gdb</command> pour analyser l'image + mémoire (Reportez-vous à la section + <link linkend="debugging">Déboguer</link>).</para> + <para>R. Quand mon programme a généré une image + mémoire, il a dit quelque chose à propose de + <errorname>segmentation fault</errorname> - “erreur + de segmentation”. Qu'est-ce que c'est?</para> + <para>Q. Cela signifie essentiellement que votre programme a + essayé d'effectuer une quelconque opération + illégale sur la mémoire; Unix est conçu pour + protéger le système d'exploitation des programmes + mal éduqués.</para> + <para>Les raisons les plus courantes en sont: + <itemizedlist> + <listitem> + <para>Essayer d'écrire en mémoire adressée par + un pointeur <symbol>NULL</symbol>, e.g.: + <programlisting> +char *foo = NULL; +strcpy(foo, "bang!"); + </programlisting> + </para> + </listitem> + <listitem> + <para>Utiliser un pointeur qui n'a pas été + initialisé, e.g.: + <programlisting> +char *foo; +strcpy(foo, "bang!"); + </programlisting> + Le pointeur aura une valeur aléatoire qui, avec de la + chance, adressera une zone mémoire non accessible à + votre programme, de sorte que le noyau tuera ce dernier avant + qu'il ne provoque de dégat. Si vous manquez de chance, + il pointera quelque part à l'intérieur de votre + programme et endommagera l'une de vos structures de + données, provoquant un dysfonctionnement mystérieux + de votre programme.</para> + </listitem> + <listitem> + <para>Tenter d'accéder au-delà du dernier + élément d'un tableau, e.g.: + <programlisting> +int bar[20]; +bar[27] = 6; + </programlisting> + </para> + </listitem> + <listitem> + <para>Essayer d'enregistrer quelque chose dans une zone de + mémoire accessible en lecture seule, e.g.: + <programlisting> +char *foo = "Mon texte"; +strcpy(foo, "bang!"); + </programlisting> + Les compilateurs Unix stockent souvent les chaînes de + caractères constantes comme <literal>"Mon texte"</literal> + en mémoire accessible en lecture seule.</para> + </listitem> + <listitem> + <para>Utiliser incorrectement les fonctions + <function>malloc()</function> et <function>free()</function>, + e.g.: + <programlisting> +char bar[80]; +free(bar); + </programlisting> + ou: + <programlisting> +char *foo = malloc(27); +free(foo); +free(foo); + </programlisting> + </para> + </listitem> + </itemizedlist> + </para> + <para>Commettre l'une de ces fautes ne provoquera pas toujours une erreur, + mais ce sont malgré tout des choses à ne pas faire. + Certains systèmes et compilateurs sont plus tolérants que + d'autres, ce qui fait que des programmes qui s'exécutent + correctement sur un système peuvent ne plus fonctionner sur un + autre.</para> + <para>Q. Parfois, le programme provoque la génération d'une + image mémoire avec le message <errorname>bus error</errorname>. + Mon manuel Unix dit qu'il s'agit d'un erreur matériel, mais + l'ordinateur fonctionne apparemment correctement. Est-ce vrai?</para> + <para>R. Fort heureusement, non (à moins bien sûr que vous + n'ayez aussi un problème matériel). C'est habituellement + une autre façon de dire que vous avez accédé + incorrectement à la mémoire.</para> + <para>Q. Il me semble que cette histoire de <foreignphrase>core + dump</foreignphrase> peut être très utile, si je peux la + provoquer quand je veux. Est-ce possible, ou dois-je attendre qu'il se + produise une erreur?</para> + <para>R. Oui, allez simplement sur une autre console ou fenêtre + <application>xterm</application> et tapez: + <screen>&prompt.user; <userinput>ps</userinput></screen> pour + connaître l'IDentifiant de processus de votre programme, puis: + <screen>&prompt.user; <userinput>kill -ABRT <replaceable>pid</replaceable></userinput></screen> + où <parameter><replaceable>pid</replaceable></parameter> est + l'ID de processus que vous avez recherché.</para> + <para>C'est par exemple utile si votre programme est parti dans une boucle + infinie. Au cas où votre programme piégerait les + interruptions <symbol>SIGABRT</symbol>, il y a plusieurs autres signaux + qui auront le même effet.</para> + </sect2> + </sect1> + <sect1> + <title>Make</title> + <sect2> + <title>Qu'est-ce que <command>make</command>?</title> + <para>Lorsque vous travaillez sur un programme simple avec seulement un + ou deux fichiers de source, taper: +<screen>&prompt.user; <userinput>cc fichier1.c fichier2.c</userinput></screen> + n'est pas trop gênant, mais cela devient rapidement très + fastidieux lorsqu'il y a plusieurs fichiers - et cela peut + aussi mettre du temps à compiler.</para> + <para>Un façon d'éviter ces problèmes est + d'utiliser des fichiers <firstterm>objets</firstterm> et de ne + recompiler que les fichiers de source dont le contenu a changé. + Nous pourrions alors avoir quelque chose du style: +<screen>&prompt.user; <userinput>cc fichier1.o fichier2.o</userinput> … <userinput>file37.c</userinput> &hellip</screen> + si nous avons modifé <filename>fichier37.c</filename>, et + celui-là uniquement, depuis notre compilation + précédente. Cela peut sérieusement + accélérer la compilation, mais ne résoud pas le + problème de saisie à répétition de la + commande.</para> + <para>Nous pourrions aussi écrire une procédure pour + résoudre ce dernier problème, mais ne ne pourrions alors + que lui faire tout recompiler, ce qui serait très peu efficace + sur un gros projet.</para> + <para>Que ce passe-t-il si nous avons des centaines de fichiers de + sources? Si nous travaillons en équipe et que d'autres + oublient de nous prévenir des modifications qu'ils ont + apportées à un des fichiers que nous utilisons?</para> + <para>Peut-être pourrions-nous rassembler les deux solutions et + écrire quelque chose qui ressemble à une + procédure et comporte une sorte de règle magique + qui dise quand tel fichier de source doit être compilé. + Nous n'aurions plus besoin que d'un programme qui comprennent ces + règles, parce que c'est un peu trop compliqué pour une + procédure.</para> + <para>Ce programme s'appelle <command>make</command>. Il lit un fichier, + qu'on appelle un <firstterm>makefile</firstterm>, qui lui dit quelles + sont les dépendances entre les différents fichiers, et + en déduit lesquels ont besoin ou non d'être + recompilés. Par exemple, une règle peut signifier + quelque chose comme “si <filename>fromboz.o</filename> est plus + ancien que <filename>fromboz.c</filename>, cela veut dire que + <filename>fromboz.c</filename> doit avoir été + modifié, il faut donc le recompiler”. Le fichier + “<foreignphrase>makefile</foreignphrase>” inclut aussi + des règles qui lui disent <emphasis>comment</emphasis> + recompiler, ce qui en fait un outil encore plus puissant.</para> + <para>Ces fichiers “makefiles” sont habituellement + rangés dans le même répertoire que les sources + auxquels ils s'appliquent, et peuvent être appelés + <filename>makefile</filename>, <filename>Makefile</filename> ou + <filename>MAKEFILE</filename>. La plupart des programmeurs utilisent + le nom <filename>Makefile</filename>, ce qui fait qu'ils se trouvent + alors vers le début de la liste des fichiers et sont ainsi + facilement repérables <footnote><para>Ils n'utilisent pas la + variante <filename>MAKEFILE</filename> parce que les noms en + majuscules servent souvent à désigner les fichiers de + documentation comme + <filename>README</filename>.</para></footnote>.</para> + </sect2> + <sect2> + <title>Exemple d'utilisation de <command>make</command></title> + <para>Voici un fichier <filename>Makefile</filename> + élémentaire : + <programlisting> +foo: foo.c + cc -o foo foo.c + </programlisting> + Il contient deux lignes, une pour la dépendance et une + pour la génération.</para> + <para>La ligne décrivant la dépendance contient le + nom du programme (qu'on appelle la <firstterm>cible</firstterm>), + suivi de “deux points”, puis d'un blanc et du nom + du fichier source. Quand <command>make</command> lit cette ligne, + il regarde si <filename>foo</filename> existe; s'il existe, il + compare la date de dernière modification de + <filename>foo</filename> à celle de dernière + modification de <filename>foo.c</filename>. Si + <filename>foo</filename> n'existe pas, ou s'il est antérieur + à <filename>foo.c</filename>, il regarde alors la ligne de + génération pour savoir ce qu'il faut faire. En + d'autres termes, c'est la règle à appliquer pour + savoir si <filename>foo.c</filename> doit être + recompilé.</para> + <para>La ligne de génération commence par une + <token>tabulation</token> (appuyez sur la touche + <keycap>Tab</keycap>) suivie de la commande que vous taperiez + pour compiler <filename>foo</filename> si vous le faisiez sur + la ligne de commande. Si <filename>foo</filename> n'est pas + à jour ou s'il n'existe pas, <command>make</command> + exécute alors cette commande pour le créer. En + d'autres termes, c'est la règle qui dit à + <command>make</command> comment recompiler + <filename>foo.c</filename>.</para> + <para>Ainsi, quand vous tapez <userinput>make</userinput>, il + fera en sorte que <filename>foo</filename> soit en phase avec les + dernières modifications que vous avez apportées à + <filename>foo.c</filename>. Ce principe s'étend aux + <filename>Makefile</filename>s avec des centaines de + cibles - de fait, sur FreeBSD, il est possible de compiler + tout le système d'exploitation en tapant simplement + <userinput>make world</userinput> dans le répertoire + adéquat!</para> + <para>Une autre particularité de <filename>Makefile</filename>s + est que les cibles ne sont pas nécessairement des programmes. + Nous pourrions par exemple avoir le <filename>Makefile</filename> + suivant: + <programlisting> +foo: foo.c + cc -o foo foo.c + +install: + cp foo /home/me + </programlisting> + </para> + <para>Nous pouvons dire à <command>make</command> quelle cible + nous voulons atteindre en tapant: +<screen>&prompt.user; <userinput>make <replaceable>cible</replaceable></userinput></screen> + <command>make</command> examinera alors cette cible et ignorera + toutes les autres. Par exemple, si, avec le + <filename>Makefile</filename> précédent, nous tapons + <userinput>make foo</userinput>, <command>make</command> ignorera + la cible <action>install</action>.</para> + <para>Si nous tapons simplement <userinput>make</userinput> tout + court, il examinera toujours la première cible et + s'arrêtera ensuite sans s'occuper des autres. Si nous + avions tapé <userinput>make</userinput> dans ce cas, il + serait simplement allé à la cible + <action>foo</action>, aurait recompilé + <filename>foo</filename> si nécessaire, et se serait + arrêté sans passer à la cible + <action>install</action>.</para> + <para>Remarquez que la cible <action>install</action> ne dépend + en fait de rien du tout! Cela signifie que la commande sur la ligne + suivante est toujours exécutée si nous essayons de + reconstruire cette cible en tapant + <userinput>make install</userinput>. Dans ce cas, il copiera + <filename>foo</filename> dans le répertoire de l'utilisateur. + C'est souvent utilisé par les <filename>Makefile</filename>s + de logiciels, de sorte que l'application soit installée dans + le bon répertoire, une fois correctement + compilée.</para> + <para>C'est un point un peu délicat à expliquer. Si vous + ne comprenez pas exactement comment <command>make</command> + fonctionne, la meilleure chose à faire est d'écrire + un programme simple comme le classique “Bonjour, le + monde!”, un fichier <filename>Makefile</filename> et de + faire des essais. Compilez ensuite en utilisant plus d'un + fichier source, ou en ayant un fichier source qui inclut un + fichier d'en-tête. La commande <command>touch</command> + vous sera très utile - elle modifie la date + d'un fichier sans que vous ayez à l'éditer.</para> + </sect2> + <sect2> + <title>Makefiles FreeBSD</title> + <para>L'écriture de <filename>Makefile</filename>s peut + être assez compliquée. Heurusement, les systèmes + basés sur BSD, comme FreeBSD, en fournissent de très + puissants, intégrés au système. Le catalogue des + logiciels portés de FreeBSD en est un excellent exemple. Voici + l'essentiel d'un de leurs <filename>Makefile</filename>s typiques: + <programlisting> +MASTER_SITES= ftp://freefall.cdrom.com/pub/FreeBSD/LOCAL_PORTS/ +DISTFILES= scheme-microcode+dist-7.3-freebsd.tgz + +.include <bsd.port.mk> + </programlisting> + </para> + <para>Si nous allons maintenant dans le répertoire associé + à ce logiciel et tapons <userinput>make</userinput>, voici ce + qui se passe:</para> + <procedure> + <step> + <para>Il regarde si le code source de ce logiciel est + déjà présent sur le système.</para> + </step> + <step> + <para>S'il n'y est pas, une connexion FTP à l'URL + indiquée par <symbol>MASTER_SITES</symbol> est + établie pour télécharger le source.</para> + </step> + <step> + <para>La somme de contrôle est calculée sur le source et + comparée à celle calculée sur une version + connue et validée. Cela pour s'assurer que le source n'a + pas été corrompu pendant le transfert.</para> + </step> + <step> + <para>Les modifications nécessaires pour que le code + fonctionne sous FreeBSD sont appliquées - c'est + ce que l'on appelle <firstterm>patcher</firstterm>.</para> + </step> + <step> + <para>Les opérations particulières de configuration + du source sont effectuées. (De nombreuses distributions de + programmes Unix essayent de déterminer sur quel + système elles sont compilées et de quelles + fonctionnalités Unix optionnelles il + dispose - c'est à ce stade du scénario + d'installation de logiciels sous FreeBSD que leur sont fournies + ces informations).</para> + </step> + <step> + <para>Le code source du programme est compilé. De fait, on + passe dans le répertoire où le code a + été décompacté et + <command>make</command> y est exécuté - le + <filename>Makefile</filename> du programme lui-même contient + les informations nécessaires à sa + compilation.</para> + </step> + <step> + <para>Nous disposons maintenant d'une version compilée du + programme. Si nous le voulons, nous pouvons maintenant la tester; + si nous avons confiance dans le programme, nous pouvons taper + <userinput>make install</userinput>. Cela recopiera le programme + et tous les fichiers d'environnement dont il a besoin à + l'endroit adéquat; une entrée sera aussi + créée dans une <database>base de données des + logiciels</database>, de façon à ce qu'il puisse + être désinstallé par la suite, si nous + changeons d'avis.</para> + </step> + </procedure> + <para>Je pense que vous serez maintenant d'accord pour trouver que c'est + assez impressionnant pour une simple procédure de quatre + lignes!</para> + <para>Le secret se trouve à la dernière ligne, qui dit + à <command>make</command> d'aller voir ce qu'il y a dans le + <filename>Makefile</filename> appelé + <filename>bsd.port.mk</filename>. Il est facile de rater cette ligne, + mais c'est pourtant de là que vient toute la mécanique + subtile. Quelqu'un a écrit un <filename>Makefile</filename> + qui dit à <command>make</command> de faire tout ce qui a + été décrit ci-dessus (plus deux ou trois autres + choses dont je n'ai pas parlé, dont le traitement des erreurs + qui pourraient se produire) et tout le monde peut l'utiliser en + mettant simplement cette unique ligne dans son propre + <filename>Makefile</filename>!</para> + <para>Si vous voulez jeter un oeil à ces + <filename>Makefile</filename>s systèmes, ils sont dans le + répertoire <filename>/usr/share/mk</filename>, mais il vaut + mieux attendre d'avoir un peu d'expérience des + <filename>Makefile</filename>s, parce qu'ils sont très + compliqués (et si vous les regardez, ayez sous la main + une bonne dose de café serré!).</para> + </sect2> + <sect2> + <title>Utilisation plus poussée de <command>make</command></title> + <para> <command>make</command> est un outil très puissant, et peut + faire beaucoup plus que l'exemple élémentaire que nous + avons donné. Il y a malheureusement plusieurs versions de + <command>make</command>, et elles sont très + différentes. La meilleure façon de savoir ce qu'elles + peuvent faire est certainement de lire la + documentation - espérons que cette introduction + vous aura fourni les bases pour le faire.</para> + <para>La version de <command>make</command> fournie avec FreeBSD est + <application>Berkeley make</application>; elle s'accompagne d'un guide + dans <filename>/usr/share/doc/psd/12.make</filename>. Pour le + visualiser, tapez: +<screen>&prompt.user; <userinput>zmore paper.ascii.gz</userinput></screen> + dans ce répertoire.</para> + <para>Il y a des nombreux logiciels du catalogue des logiciels + portés qui utilisent <application>GNU make</application>, qui + est très bien documenté dans les pages + “info”. Si vous avez installé un de ces logiciels, + <application>GNU make</application> sera automatiquement installé + sont le nom <command>gmake</command>. Il est aussi disponible sous forme + de logiciel porté ou précompilé autonome.</para> + <para>Pour visualiser les pages “info” de + <application>GNU make</application>, il vous faut éditer le + fichier <filename>dir</filename> du répertoire + <filename>/usr/local/info</filename> et y ajouter une ligne pour ce + programme. C'est une ligne du genre: + <programlisting> + * Make: (make). L'utilitaire GNU Make. + </programlisting> + Une fois que c'est fait, vous pouvez taper <userinput>info</userinput> + puis sélectionner <guimenuitem>make</guimenuitem> dans le menu + (ou sous <application>Emacs</application>, taper <userinput>C-h + i</userinput>).</para> + </sect2> + </sect1> + <sect1 id="debugging"> + <title>Déboguer</title> + <sect2> + <title>Le débogueur</title> + <para>Le débogueur qui est fourni avec FreeBSD s'appelle + <command>gdb</command> + (<application>GNU débogueur</application>). Vous le lancez en + tapant: +<screen>&prompt.user; <userinput>gdb <replaceable>nom_du_programme</replaceable></userinput></screen> + bien que la plupart des gens préfèrent l'exécuter + sous <application>Emacs</application>. Ce qui se fait avec: +<screen><userinput>M-x gdb RET <replaceable>progname</replaceable> RET</userinput></screen> + </para> + <para>Se servir d'un débogueur vous permet d'exécuter le + programme sous contrôle. Vous pouvez typiquement + l'exécuter pas à pas, inspecter les valeurs des + variables, les modifier, dire au débogueur d'exécuter + le programme jusqu'à un certain endroit et de s'y + arrêter, et ainsi de suite. Vous pouvez même + le rattacher à un programme qui est déjà en + cours d'exécution, ou charger une image + mémoire - “<foreignphrase>core</foreignphrase>”. + Il est même possible de déboguer le noyau, bien que cela + soit un peu plus compliqué que dans le cas des programmes + utilisateurs, dont nous parlerons dans cette section.</para> + <para><command>gdb</command> dispose d'une assez bonne aide en ligne, + ainsi que d'un jeu de pages “info”, cette section se + concentrera donc sur quelques commandes de base.</para> + <para>Enfin, si le mode de fonctionnement en ligne de commande vous + rebute, il existe une interface graphique appelée + <ulink URL="http://www.freebsd.org/ports/devel.html">xxgdb</ulink> + au catalogue des logiciels portés.</para> + <para>Cette section est destinée à servir d'introduction + à l'utilisation du débogueur et ne couvre pas les + questions spécialisées comme le débogage du + noyau.</para> + </sect2> + <sect2> + <title>Exécuter un programme sous le débogueur</title> + <para>Il faudra que vous ayez compilé le programme avec l'option + <option>-g</option> pour tirer le meilleur parti de + <command>gdb</command>. Cela fonctionnera sans cela, mais vous ne + verrez que le nom de la fonction dans laquelle vous êtes, au + lieu du code source. Si vous avez un message du genre: +<screen>… (no debugging symbols found) …</screen> + au démarrage de <command>gdb</command>, vous saurez que le + programme n'a pas été compilé avec l'option + <option>-g</option>.</para> + <para>A l'invite de <command>gdb</command>, tapez <userinput>break + main</userinput>. Cela dira au débogueur d'exécuter le + code préliminaire de mise en oeuvre dans le programme et de + s'arrêter au début de votre programme. Tapez maintenant + <userinput>run</userinput> pour lancer le programme - il + commencera au début du code préliminaire et sera + interrompu par le débogueur sur l'appel de + <function>main()</function>. (Si vous vous étiez jamais + demandé d'où la fonction <function>main()</function> + était appelée, vous le savez maintenant!).</para> + <para>Vous pouvez maintenant exécuter le programme une ligne + à la fois, en appuyant sur <command>n</command>. Si + vous arrivez sur un appel de fonction, vous pouvez passer dans la + fonction en appuyant sur <command>s</command>. Une fois dans la + fonction, vous pouvez terminer son exécution et en sortir en + tapant <command>f</command>. Vous pouvez aussi utiliser + <command>up</command> et <command>down</command> pour jeter un + coup d'oeil au code appelant.</para> + <para>Voici un exemple simple de la manière de diagnostiquer une + erreur dans un programme avec <command>gdb</command>. Voici notre + programme (intentionnellement faux): + <programlisting> +#include <stdio.h> + +int bazz(int un_entier); + +main() { + int i; + + printf("C'est mon programme\n"); + bazz(i); + return 0; +} + +int bazz(int un_entier) { + printf("Vous m'avez donné %d\n", un_entier); + return un_entier; +} + </programlisting> + </para> + <para>Ce programme affecte à <symbol>i</symbol> la valeur + <literal>5</literal> et la passe à la fonction + <function>bazz()</function> qui affiche la valeur que nous lui + donnons en paramètre.</para> + <para>Quand nous compilons et exécutons le programme, nous + obtenons: +<screen>&prompt.user; <userinput>cc -g -o temp temp.c</userinput> +&prompt.user; <userinput>./temp</userinput> +C'est mon programme +Vous m'avez donné 4231</screen></para> + <para>Ce n'est pas ce à quoi nous nous attendions! C'est le + moment d'aller voir ce qui ce passe! +<screen>&prompt.user; <userinput>gdb temp</userinput> +GDB is free software and you are welcome to distribute copies of it + under certain conditions; type "show copying" to see the conditions. +There is absolutely no warranty for GDB; type "show warranty" for details. +GDB 4.13 (i386-unknown-freebsd), Copyright 1994 Free Software Foundation, Inc. +(gdb) <userinput>break main</userinput> <lineannotation>Exécuter le code d'initialisation</lineannotation> +Breakpoint 1 at 0x160f: file temp.c, line 9. <lineannotation><command>gdb</command> met un pont d'arrêt à l'appel de <function>main()</function></lineannotation> +(gdb) <userinput>run</userinput> <lineannotation>Exécuter jusqu'à <function>main()</function></lineannotation> +Starting program: /home/james/tmp/temp <lineannotation>Le programme démarre</lineannotation> + +Breakpoint 1, main () at temp.c:9 <lineannotation><command>gdb</command> s'arrête à <function>main()</function></lineannotation> +(gdb) <userinput>n</userinput> <lineannotation>Aller à la ligne suivante</lineannotation> +C'est mon programme <lineannotation>Le programme imprime</lineannotation> +(gdb) <userinput>s</userinput> <lineannotation>Aller dans <function>bazz()</function></lineannotation> +bazz (un_entier=4231) at temp.c:17 <lineannotation><command>gdb</command> affiche la position dans la pile d'appel</lineannotation> +(gdb)</screen></para> + <para>Une minute! Comment <symbol>un_entier</symbol> peut-il valoir + <literal>4231</literal>? Ne l'avons-nous pas initialisé + à <literal>5</literal> dans <function>main()</function>? + Revenons à <function>main()</function> et jetons un + oeil.</para> + <para> +<screen>(gdb) <userinput>up</userinput> <lineannotation>Remonter d'un cran dans la pile d'appel</lineannotation> +#1 0x1625 in main () at temp.c:11 <lineannotation><command>gdb</command> affiche la position dans la pile d'appel</lineannotation> +(gdb) <userinput>p i</userinput> <lineannotation>Afficher la valeur de <symbol>i</symbol></lineannotation> +$1 = 4231 <lineannotation><command>gdb</command> affiche <literal>4231</literal></lineannotation></screen> + Et oui! Si nous regardons le code, nous avons oublié + d'initialiser <symbol>i</symbol>. Nous voulions mettre: + <programlisting> +<lineannotation>…</lineannotation> +main() { + int i; + + i = 5; + printf("C'est mon programme\n"); +<lineannotation>&hellip</lineannotation> + </programlisting> + mais nous avons oublié la ligne <literal>i=5;</literal>. + Comme nous n'avons pas initialisé <symbol>i</symbol>, il + prend la valeur qui se trouve à cet endroit de la + mémoire quand le programme s'exécute, dans notre + cas, il s'est trouvé que c'était + <literal>4231</literal>.</para> + <note> + <para><command>gdb</command> affiche l'endroit où nous nous + trouvons dans la pile d'appel, chaque fois que nous entrons ou + sortons d'une fonction, même si nous utilisons + <command>up</command> et <command>down</command> pour nous + déplacer dans la pile. Cela nous donne le nom de la fonction + et les valeurs de ses paramètres, ce qui nous aide à + repérer où nous sommes et ce qu'il se passe. (La pile + d'appel est une zone de mémoire où le programme + enregistre les informations sur les paramètres passés + aux fonctions et où aller quand il ressort d'un fonction + appelée.)</para> + </note> + </sect2> + <sect2> + <title>Examiner un fichier + “<foreignphrase>core</foreignphrase>”</title> + <para>Un fichier “<foreignphrase>core</foreignphrase>” est + essentiellement un fichier qui contient l'état complet du + programme au moment où il s'est “planté”. Au + “bon vieux temps”, les programmeurs devaient imprimer le + contenu en hexadécimal des fichiers + “<foreignphrase>core</foreignphrase>” et transpirer sur des + manuels de code machine, mais la vie est aujourd'hui un peu plus facile. + Au passage, sous FreeBSD et les autres systèmes 4.4BSD, un + fichier “<foreignphrase>core</foreignphrase>” s'appelle + <filename><replaceable>nom_du_programme</replaceable>.core</filename>, + et non <filename>core</filename> tout court, + de façon à ce que l'on sache à quel programme il + correspond.</para> + <para>Pour examiner un fichier + “<foreignphrase>core</foreignphrase>”, lancez + <command>gdb</command> comme d'habitude. Au lieu de taper + <command>break</command> ou <command>run</command>, tapez: +<screen>(gdb) <userinput>core <replaceable>nom_du_programme</replaceable>.core</userinput></screen> + Si vous n'êtes pas dans le même répertoire que + le fichier “<foreignphrase>core</foreignphrase>”, vous + devrez d'abord faire + <userinput>dir /ou/se/trouve/le/fichier/core</userinput>.</para> + <para>Vous devriez voir quelque chose comme: +<screen>&prompt.user; <userinput>gdb a.out</userinput> +GDB is free software and you are welcome to distribute copies of it + under certain conditions; type "show copying" to see the conditions. +There is absolutely no warranty for GDB; type "show warranty" for details. +GDB 4.13 (i386-unknown-freebsd), Copyright 1994 Free Software Foundation, Inc. +(gdb) <userinput>core a.out.core</userinput> +Core was generated by `a.out'. +Program terminated with signal 11, Segmentation fault. +Cannot access memory at address 0x7020796d. +#0 0x164a in bazz (un_entier=0x5) at temp.c:17 +(gdb)</screen></para> + <para>Dans ce cas, le programme s'appelait <filename>a.out</filename>, le + fichier “<foreignphrase>core</foreignphrase>” s'appelle + donc <filename>a.out.core</filename>. Nous constatons que le programme + s'est terminé en erreur à cause d'une tentative + d'accès à une zone de mémoire qui n'était + pas accessible dans une fonction appelé + <function>bazz</function>.</para> + <para>Il est parfois utile de pouvoir savoir comment une fonction a + été appelée, parce que le problème peut + s'être produit bien au-dessus dans la pile d'appel dans un + programme complexe. La commande <command>bt</command> dit à + <command>gdb</command> d'imprimer en remontant la pile d'appel: +<screen>(gdb) <userinput>bt</userinput> +#0 0x164a in bazz (un_entier=0x5) at temp.c:17 +#1 0xefbfd888 in end () +#2 0x162c in main () at temp.c:11 +(gdb)</screen> + La fonction <function>end()</function> est appelée quand un + programme échoue; dans le cas présent, la fonction + <function>bazz()</function> a été appelée par + <function>main()</function>.</para> + </sect2> + <sect2> + <title>Prendre le contrôle d'un programme en cours + d'exécution</title> + <para>Une des possibilités les plus intéressantes de + <command>gdb</command> est qu'il peut se rattacher à un + programme en cours d'exécution. Il faut bien sûr que vous + ayez les autorisations suffisantes pour le faire. Le cas d'un programme + qui “fourche” - <foreignphrase>fork</foreignphrase> - est + un problème classique, lorsque vous voulez suivre le + déroulement du processus fils, alors que le débogueur ne + vous permet que de tracer le processus père.</para> + <para>Vous lancez alors un autre <command>gdb</command>, utilisez + <command>ps</command> pour connaître l'IDentifiant de processus du + fils, puis faites: +<screen>(gdb) <userinput>attach <replaceable>pid</replaceable></userinput></screen> + sous <command>gdb</command>, et déboguez alors comme + d'habitude.</para> + <para>“Tout cela est bien beau”, vous dites vous + peut-être, “mais le temps que j'ai fait tout ça, le + processus fils aura déjà fait un bon bout de + chemin”. Rien à craindre, aimable lecteur, voici ce + qu'il faut faire (emprunté aux pages “info” de + <command>gdb</command>): +<screen><lineannotation>&hellip</lineannotation> +if ((pid = fork()) < 0) /* _Toujours_ effectuer se contrôle */ + error(); +else if (pid == 0) { /* C'est le processus fils */ + int PauseMode = 1; + + while (PauseMode) + sleep(10); /* Attendre que quelqu'un se rattache à nous */ + … +} else { /* parent */ + …</screen> + Il n'y a plus qu'à se rattacher au fils, positionner + <symbol>PauseMode</symbol> à <literal>0</literal>, et attendre + que l'appel de <function>sleep()</function> nous rende la main!</para> + </sect2> + </sect1> + <sect1 id="emacs"> + <title>Utiliser Emacs comme environnement de développement</title> + <sect2> + <title>Emacs</title> + <para>Les systèmes Unix ne s'accompagnent malheureusement pas + du type d'environnement de développement + intégré du genre “tout ce que vous avez toujours + voulu et encore beaucoup plus en un seul monstrueux paquetage” + dont disposent d'autres systèmes<footnote><para>Au moins, pas + à moins que vous ne soyez prêt à les payer une somme + astronomique.</para></footnote>. Il est cependant possible de mettre + au point votre propre environnement. Il ne sera peut-être pas + aussi esthétique et il ne sera peut-être pas aussi + intégré, mais vous pourrez le configurer comme vous le + voulez. Et il est gratuit. En plus, vous en avez les sources.</para> + <para>Emacs est la clé de tout. Il y a bien des gens qui le + décrient, mais nombreux sont ceux qui l'aiment. Si vous + êtes des premiers, j'ai peur que cette section n'ait que peu + d'intérêt pour vous. Il vous faudra aussi pas mal de + mémoire pour l'utiliser. Je conseille 8Mo en mode texte et + 16Mo sous X comme strict minimum pour avoir des temps de réponse + raisonnables.</para> + <para>Emacs est essentiellement un éditeur extrêmement + configurable - il a de fait été configuré + au point de ressembler plus à un système + d'exploitation qu'à un éditeur! De nombreux + développeurs et administrateurs système passent le plus + clair de leur temps à travailler sous Emacs, le quittant + seulement pour se déconnecter.</para> + <para>Il est impossible de même résumer ici tout ce qu'Emacs + est capable de faire, mais voici quelques fonctionnalités qui + intéressent les développeurs: + <itemizedlist> + <listitem> + <para>Editeur très puissant qui permet et de rechercher et + remplacer des chaînes de caractères et d'utiliser pour + le faire des expressions régulières (motifs), d'aller + au début ou à la fin de blocs syntaxiques, etc, + etc.</para> + </listitem> + <listitem> + <para>Menus déroulants et aide en ligne.</para> + </listitem> + <listitem> + <para>Mise en valeur et indentation en fonction de la syntaxe du + langage utilisé.</para> + </listitem> + <listitem> + <para>Complètement configurable.</para> + </listitem> + <listitem> + <para>Vous pouvez compiler et déboguer des programmes depuis + Emacs.</para> + </listitem> + <listitem> + <para>En cas d'erreur à la compilation, vous pouvez aller + directement à la ligne qui en est la cause.</para> + </listitem> + <listitem> + <para>Interface ergonomique au programme <command>info</command> + qui sert à lire la documentation hypertexte GNU, dont + celle d'Emacs lui-même.</para> + </listitem> + <listitem> + <para>Interface conviviale pour <command>gdb</command>, qui vous + permet de visualiser le code source en même temps que vous + exécutez pas à pas le programme.</para> + </listitem> + <listitem> + <para>Vous pouvez lire les “news” Usenet et votre + courrier électronique pendant que votre programme + compile.</para> + </listitem> + </itemizedlist> + Et sans aucun doute bien d'autres choses qui m'ont + échappées.</para> + <para>Emacs peut être installé sous FreeBSD sous forme de + <ulink URL="http://www.freebsd.org/ports/editors.html">logiciel + porté</ulink>.</para> + <para>Une fois qu'il est installé, lancez-le et tapez + <userinput>C-h t</userinput> - ce qui signifie maintenir + enfoncée la touche <keycap>Ctrl</keycap>, taper + <keycap>h</keycap>, relâcher la touche <keycap>Ctrl</keycap>, et + appuyer ensuite sur <keycap>t</keycap> - pour lire le guide + d'Emacs (Vous pouvez aussi utiliser la souris pour sélectionner + <guimenuitem>Emacs + Tutorial</guimenuitem> - “<foreignphrase>Guide + Emacs</foreignphrase>” - depuis le menu + <guimenu>Help</guimenu> - “<foreignphrase>Aide</foreignphrase>”).</para> + <para>Bien qu'Emacs ait des menus, il vaut la peine d'apprendre à + utiliser les raccourcis claviers, parce qu'il est bien plus rapide + quand vous éditez quelque chose d'appuyer sur deux ou trois + touches que de courir après la souris et cliquer ensuite au bon + endroit. Si, par ailleurs, vous discutez avec des utilisateurs + expérimentés d'Emacs, vous vous aperceverez qu'ils + utilisent assez couramment des expressions comme + “<literal>M-x replace-s RET foo RET bar RET</literal>”, + il peut donc servir de comprendre ce qu'ils veulent dire. Et de toute + façon, Emacs a bien plus de fonctions utiles qu'il ne peut en + tenir sur une barre de menus.</para> + <para>Il est heureusement assez facile de découvrir les raccourcis + claviers, ils sont affichés dans les menus. Je vous conseille + d'utiliser les menus pour, par exemple, ouvrir un fichier + jusqu'à ce que vous compreniez comment cela marche et ayez + suffisamment confiance en vous, puis d'essayer C-x C-f. Une fois que + cela vous convient, passez à une autre des commandes des + menus.</para> + <para>Si vous ne vous rappelez pas ce que fait une combinaison + donnée de touches, choisissez <guimenuitem>Describe + Key</guimenuitem> - “<foreignphrase>Description d'une + touche</foreignphrase>” - dans le menu + <guimenu>Help</guimenu> - “<foreignphrase>Aide</foreignphrase>” - et + tapez cette combinaison - Emacs vous dira ce qu'elle fait. + Vous pouvez aussi utiliser le choix <guimenuitem>Command + Apropos</guimenuitem> - “<foreignphrase>A propos d'une + commande</foreignphrase>” - pour connaître + toutes les commandes comportant un mot donné et les touches qui + leur correspondent.</para> + <para>Au fait, l'expression plus haut signifie: enfoncer la touche + <keysym>Méta</keysym>, appuyer sur <keysym>x</keysym>, + relâcher la touche <keysym>Méta</keysym>, taper + <userinput>replace-s</userinput> (abréviation de + <literal>replace-string</literal> - “<foreignphrase>remplacer + une chaîne de caractères</foreignphrase>” - une autre + caractéristique d'Emacs est de vous permettre d'abréger + les commandes), appuyer sur <keysym>Entrée</keysym>, taper + <userinput>foo</userinput> (la chaîne que vous voulez remplacer), + appuyer sur <keysym>Entrée</keysym>, taper + <userinput>bar</userinput> (la chaîne avec laquelle vous voulez + remplacer <literal>foo</literal>) et appuyer encore sur + <keysym>Entrée</keysym>. Emacs effectuera alors + l'opération de recherche et remplacement que vous venez de + demander.</para> + <para>Si vous vous demandez ce qu'est la touche + <keysym>Méta</keysym>, c'est une touche spéciale qu'ont + beaucoup de stations Unix. Malheureusement, les PCs n'en ont pas, c'est + habituellement la touche <keysym>Alt</keysym> qui est utilisée + (ou si vous n'avez pas de chance, la touche + <keysym>Echap</keysym>).</para> + <para>Oh, et pour sortir d'Emacs, tapez <command>C-x C-c</command> + (Ce qui signifie: enfoncer la touche <keysym>Ctrl</keysym>, appuyer sur + <keysym>c</keysym>, appuyer sur <keysym>x</keysym> et relâcher la + touche <keysym>Ctrl</keysym>). S'il y a des fichiers ouverts que vous + n'avez pas sauvegardés, Emacs vous demandera si vous voulez les + sauvegarder. (Oubliez que la documentation dit que la méthode + habituelle pour quitter Emacs est d'utiliser + <command>C-z</command> - cela laisse Emacs actif en + tâche de fond et n'est réellement utile que si vous + êtes sur un système qui ne gère pas de terminaux + virtuels).</para> + </sect2> + <sect2> + <title>Configurer Emacs</title> + <para>Emacs fait des choses admirables; certaines fonctionnalités + sont incorporées, d'autres doivent être + configurées.</para> + <para>Au lieu d'utiliser un langage de macros-instructions + propriétaires, Emacs se sert d'une version de Lisp + spécialement adaptée aux éditeurs, connue sous le + nom de Emacs Lisp. Ce peut être très utile si vous voulez + aller plus loin et apprendre ensuite par exemple Common Lisp, parce + qu'il est considérablement plus léger que Common Lisp + (quoique qu'encore assez imposant!).</para> + <para>La meilleure façon d'apprendre Emacs Lisp est de + télécharger + <ulink URL="ftp://prep.ai.mit.edu/pub/gnu/elisp-manual-19-2.4.tar.gz">le + Guide Emacs Lisp</ulink>.</para> + + <para>Il n'y a cependant pas besoin de connaître quoique ce soit + à Lisp pour commencer à configurer Emacs, parce que j'ai + inclu un fichier <filename>.emacs</filename> d'exemple, qui devrait + suffire au début. Copiez-le simplement dans votre + répertoire utilisateur et relancez Emacs, s'il s'exécute + déjà; il lira les commandes du fichier et (je + l'espère) vous fournira une configuration de base utile.</para> + </sect2> + <sect2> + <title>Un exemple de fichier <filename>.emacs</filename></title> + <para>Il contient malheureusement beaucoup trop de choses pour tout + expliquer en détails; il y a cependant un ou deux points + intéressants à mentionner.</para> + <para> + <itemizedlist> + <listitem> + <para>Tout ce qui commence par un <literal>;</literal> est en + commentaire et est ignoré par Emacs.</para> + </listitem> + <listitem> + <para>La première ligne, + <literal>-*- Emacs-Lisp -*-</literal> permet + d'éditer le fichier <filename>.emacs</filename> + lui-même sous Emacs et de profiter de toutes les + fonctionnalitées liées à l'édition de + code Emacs Lisp. Emacs tente habituellement de deviner le type de + fichier en fonction de son nom, mais risque de ne pas y arriver + pour le fichier <filename>.emacs</filename>.</para> + </listitem> + <listitem> + <para>La touche <keysym>Tab</keysym> est utilisée pour + l'indentation dans certains modes, de sorte que si vous appuyez + sur cette touche cela indente la ligne de code courante. Si vous + voulez mettre un caractère <token>tabulation</token> dans + votre texte, enfoncer la touche <keysym>Ctrl</keysym> en + même temps que vous appuyez sur + <keysym>Tab</keysym>.</para> + </listitem> + <listitem> + <para>Ce fichier permet le mise en valeur syntaxique de code C, + C++, Perl, Lisp et Scheme, en déterminant le langage + d'après le nom du fichier édité.</para> + </listitem> + <listitem> + <para>Emacs a déjà une fonction + prédéfinie appelée + <function>next-error</function> - “<foreignphrase>erreur + suivante</foreignphrase>”. Dans la fenêtre de + résultats d'une compilation, cela vous permet d'aller + d'une erreur à la suivante avec <command>M-n</command>; + nous définissons la fonction complémentaire + <function>previous-error</function> - “<foreignphrase>erreur + précédente</foreignphrase>”, qui vous permet + de retourner à l'erreur précédente avec + <command>M-p</command>. Le plus sympathique est que + <command>C-c C-c</command> ouvrira le fichier source où + l'erreur s'est produite et ira à la ligne + concernée.</para> + </listitem> + <listitem> + <para>Nous activons la possibilité qu'a Emacs d'agir comme + serveur, de façon à ce que si vous travaillez hors + d'Emacs et voulez éditer un fichier, il vous suffise de + taper: +<screen>&prompt.user; <userinput>emacsclient <replaceable>nom_du_fichier</replaceable></userinput></screen> + pour pouvoir ensuite le modifier avec Emacs!<footnote><para>De + nombreux utilisateurs d'Emacs affectent à leur variable + d'environnement <systemitem class=environvar>EDITOR</systemitem> + la valeur <literal>emacsclient</literal> de façon à + ce que ce soit ce qui se produise chaque fois qu'ils ont besoin + d'éditer un fichier.</para></footnote>.</para> + </listitem> + </itemizedlist> + </para> + <example> + <title>Un exemple de fichier <filename>.emacs</filename></title> +<screen> +;; -*-Emacs-Lisp-*- + +;; Ce fichier est conçu pour être relu; la variable +;; first-time est utilisée pour éviter les problèmes +;; que cela pourra poser. +(defvar first-time t + "Indicateur signifiant que le fichier .emacs est lu pour la première fois") + +;; Méta +(global-set-key "\M- " 'set-mark-command) +(global-set-key "\M-\C-h" 'backward-kill-word) +(global-set-key "\M-\C-r" 'query-replace) +(global-set-key "\M-r" 'replace-string) +(global-set-key "\M-g" 'goto-line) +(global-set-key "\M-h" 'help-command) + +;; Touches fonction +(global-set-key [f1] 'manual-entry) +(global-set-key [f2] 'info) +(global-set-key [f3] 'repeat-complex-command) +(global-set-key [f4] 'advertised-undo) +(global-set-key [f5] 'eval-current-buffer) +(global-set-key [f6] 'buffer-menu) +(global-set-key [f7] 'other-window) +(global-set-key [f8] 'find-file) +(global-set-key [f9] 'save-buffer) +(global-set-key [f10] 'next-error) +(global-set-key [f11] 'compile) +(global-set-key [f12] 'grep) +(global-set-key [C-f1] 'compile) +(global-set-key [C-f2] 'grep) +(global-set-key [C-f3] 'next-error) +(global-set-key [C-f4] 'previous-error) +(global-set-key [C-f5] 'display-faces) +(global-set-key [C-f8] 'dired) +(global-set-key [C-f10] 'kill-compilation) + +;; Touches curseur +(global-set-key [up] "\C-p") +(global-set-key [down] "\C-n") +(global-set-key [left] "\C-b") +(global-set-key [right] "\C-f") +(global-set-key [home] "\C-a") +(global-set-key [end] "\C-e") +(global-set-key [prior] "\M-v") +(global-set-key [next] "\C-v") +(global-set-key [C-up] "\M-\C-b") +(global-set-key [C-down] "\M-\C-f") +(global-set-key [C-left] "\M-b") +(global-set-key [C-right] "\M-f") +(global-set-key [C-home] "\M-<") +(global-set-key [C-end] "\M->") +(global-set-key [C-prior] "\M-<") +(global-set-key [C-next] "\M->") + +;; Souris +(global-set-key [mouse-3] 'imenu) + +;; Divers +(global-set-key [C-tab] "\C-q\t") ; Ctrl tab = caractère tabulation. +(setq backup-by-copying-when-mismatch t) + +;; 'y' ou <CR> équivaut à yes, 'n' à no. +(fset 'yes-or-no-p 'y-or-n-p) + (define-key query-replace-map [return] 'act) + (define-key query-replace-map [?\C-m] 'act) + +;; Paquetages à charger +(require 'desktop) +(require 'tar-mode) + +;; Mode diff évolué +(autoload 'ediff-buffers "ediff" "Interface Emacs intelligente pour diff" t) +(autoload 'ediff-files "ediff" "Interface Emacs intelligente pour diff" t) +(autoload 'ediff-files-remote "ediff" + "Interface Emacs intelligente pour diff") +</screen> + +<screen> +(if first-time + (setq auto-mode-alist + (append '(("\\.cpp$" . c++-mode) + ("\\.hpp$" . c++-mode) + ("\\.lsp$" . lisp-mode) + ("\\.scm$" . scheme-mode) + ("\\.pl$" . perl-mode) + ) auto-mode-alist))) + +;; Mise en valeur syntaxique automatique +(defvar font-lock-auto-mode-list + (list 'c-mode 'c++-mode 'c++-c-mode 'emacs-lisp-mode 'lisp-mode 'perl-mode 'scheme-mode) + "Listes des modes à démarrer toujours avec mise en valeur") + +(defvar font-lock-mode-keyword-alist + '((c++-c-mode . c-font-lock-keywords) + (perl-mode . perl-font-lock-keywords)) + "Associations entre modes et mots-clés") + +(defun font-lock-auto-mode-select () + "Sélectionne automatiquement type de mise en valeur si le major mode courant est dans font-lock-auto-mode-list" + (if (memq major-mode font-lock-auto-mode-list) + (progn + (font-lock-mode t)) + ) + ) + +(global-set-key [M-f1] 'font-lock-fontify-buffer) + +;; Nouveau dabbrev +;(require 'new-dabbrev) +(setq dabbrev-always-check-other-buffers t) +(setq dabbrev-abbrev-char-regexp "\\sw\\|\\s_") +(add-hook 'emacs-lisp-mode-hook + '(lambda () + (set (make-local-variable 'dabbrev-case-fold-search) nil) + (set (make-local-variable 'dabbrev-case-replace) nil))) +(add-hook 'c-mode-hook + '(lambda () + (set (make-local-variable 'dabbrev-case-fold-search) nil) + (set (make-local-variable 'dabbrev-case-replace) nil))) +(add-hook 'text-mode-hook + '(lambda () + (set (make-local-variable 'dabbrev-case-fold-search) t) + (set (make-local-variable 'dabbrev-case-replace) t))) + +;; Mode C++ et C... +(defun my-c++-mode-hook () + (setq tab-width 4) + (define-key c++-mode-map "\C-m" 'reindent-then-newline-and-indent) + (define-key c++-mode-map "\C-ce" 'c-comment-edit) + (setq c++-auto-hungry-initial-state 'none) + (setq c++-delete-function 'backward-delete-char) + (setq c++-tab-always-indent t) + (setq c-indent-level 4) + (setq c-continued-statement-offset 4) + (setq c++-empty-arglist-indent 4)) + +(defun my-c-mode-hook () + (setq tab-width 4) + (define-key c-mode-map "\C-m" 'reindent-then-newline-and-indent) + (define-key c-mode-map "\C-ce" 'c-comment-edit) + (setq c-auto-hungry-initial-state 'none) + (setq c-delete-function 'backward-delete-char) + (setq c-tab-always-indent t) +;; indentation style BSD + (setq c-indent-level 4) + (setq c-continued-statement-offset 4) + (setq c-brace-offset -4) + (setq c-argdecl-indent 0) + (setq c-label-offset -4)) + +;; Mode Perl... +(defun my-perl-mode-hook () + (setq tab-width 4) + (define-key c++-mode-map "\C-m" 'reindent-then-newline-and-indent) + (setq perl-indent-level 4) + (setq perl-continued-statement-offset 4)) + +;; Mode Scheme... +(defun my-scheme-mode-hook () + (define-key scheme-mode-map "\C-m" 'reindent-then-newline-and-indent)) + +;; Mode Emacs-Lisp... +(defun my-lisp-mode-hook () + (define-key lisp-mode-map "\C-m" 'reindent-then-newline-and-indent) + (define-key lisp-mode-map "\C-i" 'lisp-indent-line) + (define-key lisp-mode-map "\C-j" 'eval-print-last-sexp)) + +;; Ajouts des précédents +(add-hook 'c++-mode-hook 'my-c++-mode-hook) +(add-hook 'c-mode-hook 'my-c-mode-hook) +(add-hook 'scheme-mode-hook 'my-scheme-mode-hook) +(add-hook 'emacs-lisp-mode-hook 'my-lisp-mode-hook) +(add-hook 'lisp-mode-hook 'my-lisp-mode-hook) +(add-hook 'perl-mode-hook 'my-perl-mode-hook) + +;; L'inverse de next-error +(defun previous-error (n) + "Aller à l'erreur de compilation précédente et au code correspondant." + (interactive "p") + (next-error (- n))) +</screen> + +<screen>;; Divers... +(transient-mark-mode 1) +(setq mark-even-if-inactive t) +(setq visible-bell nil) +(setq next-line-add-newlines nil) +(setq compile-command "make") +(setq suggest-key-bindings nil) +(put 'eval-expression 'disabled nil) +(put 'narrow-to-region 'disabled nil) +(put 'set-goal-column 'disabled nil) + +;; Recherche dans les archives Elisp +(autoload 'format-lisp-code-directory "lispdir" nil t) +(autoload 'lisp-dir-apropos "lispdir" nil t) +(autoload 'lisp-dir-retrieve "lispdir" nil t) +(autoload 'lisp-dir-verify "lispdir" nil t) + +;; Mise en valeur syntaxique +(defun my-make-face (face colour &optional bold) + "Créer une apparence pour une couleur, éventuellement en gras" + (make-face face) + (copy-face 'default face) + (set-face-foreground face colour) + (if bold (make-face-bold face)) + ) + +(if (eq window-system 'x) + (progn + (my-make-face 'blue "blue") + (my-make-face 'red "red") + (my-make-face 'green "dark green") + (setq font-lock-comment-face 'blue) + (setq font-lock-string-face 'bold) + (setq font-lock-type-face 'bold) + (setq font-lock-keyword-face 'bold) + (setq font-lock-function-name-face 'red) + (setq font-lock-doc-string-face 'green) + (add-hook 'find-file-hooks 'font-lock-auto-mode-select) + + (setq baud-rate 1000000) + (global-set-key "\C-cmm" 'menu-bar-mode) + (global-set-key "\C-cms" 'scroll-bar-mode) + (global-set-key [backspace] 'backward-delete-char) + ; (global-set-key [delete] 'delete-char) + (standard-display-european t) + (load-library "iso-transl"))) + +;; X11 ou PC écrivant directement à l'écran +(if window-system + (progn + ;; (global-set-key [M-f1] 'hilit-repaint-command) + ;; (global-set-key [M-f2] [?\C-u M-f1]) + (setq hilit-mode-enable-list + '(not text-mode c-mode c++-mode emacs-lisp-mode lisp-mode + scheme-mode) + hilit-auto-highlight nil + hilit-auto-rehighlight 'visible + hilit-inhibit-hooks nil + hilit-inhibit-rebinding t) + (require 'hilit19) + (require 'paren)) + (setq baud-rate 2400) ; Pour les connections série lentes + ) + +;; Terminal type TTY +(if (and (not window-system) + (not (equal system-type 'ms-dos))) + (progn + (if first-time + (progn + (keyboard-translate ?\C-h ?\C-?) + (keyboard-translate ?\C-? ?\C-h))))) + +;; Sous UNIX +(if (not (equal system-type 'ms-dos)) + (progn + (if first-time + (server-start)))) + +;; Ajouter ici toute modification d'apparence des caractères +(add-hook 'term-setup-hook 'my-term-setup-hook) +(defun my-term-setup-hook () + (if (eq window-system 'pc) + (progn +;; (set-face-background 'default "red") + ))) + +;; Restaurer le "bureau" - le faire le plus tard possible +(if first-time + (progn + (desktop-load-default) + (desktop-read))) + +;; Indique que le fichier a été lu au moins une fois +(setq first-time nil) + +;; Plus besoin de déboguer quoi que ce soit maintenant. +(setq debug-on-error nil) + +;; C'est tout +(message "OK, %s%s" (user-login-name) ".") +</screen> + </example> + </sect2> + <sect2> + <title>Permettre à Emacs de comprendre de nouveaux + langages</title> + <para>Bon, tout cela est très bien si vous ne voulez programmer + qu'avec les langages déjà introduits dans le fichier + <filename>.emacs</filename> (C, C++, Perl, Lisp et Scheme), mais que se + passe-t-il quand un nouveau langage appelé + “whizbang” fait son apparition, avec plein de nouvelles + fonctionnalités attrayantes?</para> + <para>La première chose à faire est de regarder si whizbang + s'accompagne de fichiers de configuration d'Emacs pour ce langage. + Ces fichiers ont généralement comme extension + <filename>.el</filename>, raccourci pour “Emacs Lisp”. + Par exemple, si whizbang est un logiciel porté pour FreeBSD, + ces fichiers peuvent être repérés par: +<screen>&prompt.user; <userinput>find /usr/ports/lang/whizbang -name "*.el" -print</userinput></screen> + et il faut les installer en le copiant dans le répertoire du + “site Lisp” d'Emacs. Sous FreeBSD 2.1.0-RELEASE, c'est le + répertoire + <filename>/usr/local/share/emacs/site-lisp</filename>.</para> + <para>Ainsi par exemple, si la commande précédente nous + donnait: +<screen>/usr/ports/lang/whizbang/work/misc/whizbang.el</screen> + nous le copierions alors comme suit: +<screen>&prompt.user; <userinput>cp /usr/ports/lang/whizbang/work/misc/whizbang.el /usr/local/share/emacs/site-lisp</userinput></screen> + </para> + <para>Décidons ensuite de l'extension que doivent avoir les + fichiers source whizbang. Supposons, pour les besoins de l'exemple, + qu'ils se terminent tous par <filename>.wiz</filename>. Il faut ajouter + une entrée à notre fichier <filename>.emacs</filename>, + pour être sûr qu'Emacs puisse utiliser les informations du + fichier <filename>whizbang.el</filename>.</para> + <para>Recherchons l'entrée <symbol>auto-mode-alist</symbol> dans + <filename>.emacs</filename> et ajoutons une ligne pour whizbang, par + exemple: + <programlisting> +<lineannotation>…</lineannotation> +("\\.lsp$" . lisp-mode) +("\\.wiz$" . whizbang-mode) +("\\.scm$" . scheme-mode) +<lineannotation>…</lineannotation> + </programlisting> + Cela signifie qu'Emacs passera automatiquement en + <function>whizbang-mode</function> à l'édition d'un + fichier d'extension <filename>.wiz</filename>.</para> + <para>Juste après, il y a une entrée + <symbol>font-lock-auto-mode-list</symbol>. Ajoutez-y + <function>whizbang-mode</function> comme ceci: + <programlisting> +;; Auto font-lock-mode +(defvar font-lock-auto-mode-list + (list 'c-mode 'c++-mode 'c++-c-mode 'emacs-lisp-mode 'whizbang-mode 'lisp-mode 'perl-mode 'scheme-mode) + "Listes des modes à démarrer toujours en font-lock-mode") + </programlisting> + Ce qui signifie qu'Emacs activera toujours le + <function>font-lock-mode</function> (i.e., la mise en valeur + syntaxique) à l'édition d'un fichier + <filename>.wiz</filename>.</para> + <para>Cela suffit. S'il y a autre chose que vous voulez automatiser + à l'ouverture d'un fichier <filename>.wiz</filename>, vous + pouvez ajouter un <function>whizbang-mode hook</function> (voyez mon + <function>my-scheme-mode-hook</function> pour avoir un exemple simple + qui ajoute un <function>auto-indent</function> - indentation + automatique).</para> + </sect2> + </sect1> + <sect1> + <title>A lire pour aller plus loin</title> + <itemizedlist> + <listitem> + <para>Brian Harvey et Matthew Wright <emphasis>Simply + Scheme</emphasis> MIT 1994.<!-- <br> --> ISBN 0-262-08226-8</para> + </listitem> + <listitem> + <para>Randall Schwartz <emphasis>Learning Perl</emphasis> O'Reilly + 1993<!-- <br> --> ISBN 1-56592-042-2</para> + </listitem> + <listitem> + <para>Patrick Henry Winston et Berthold Klaus Paul Horn + <emphasis>Lisp (3rd Edition)</emphasis> Addison-Wesley + 1989<!-- <br> --> ISBN 0-201-08319-1</para> + </listitem> + <listitem> + <para>Brian W. Kernighan et Rob Pike <emphasis>The Unix Programming + Environment</emphasis> Prentice-Hall 1984<!-- <br> --> ISBN + 0-13-937681-X</para> + </listitem> + <listitem> + <para>Brian W. Kernighan et Dennis M. Ritchie <emphasis>The C + Programming Language (2nd Edition)</emphasis> Prentice-Hall + 1988<!-- <br> --> ISBN 0-13-110362-8</para> + </listitem> + <listitem> + <para>Bjarne Stroustrup <emphasis>The C++ Programming + Language</emphasis> Addison-Wesley 1991<!-- <br> --> ISBN + 0-201-53992-6</para> + </listitem> + <listitem> + <para>W. Richard Stevens <emphasis>Advanced Programming in the Unix + Environment</emphasis> Addison-Wesley 1992<!-- <br> --> ISBN + 0-201-56317-7</para> + </listitem> + <listitem> + <para>W. Richard Stevens <emphasis>Unix Network Programming</emphasis> + Prentice-Hall 1990<!-- <br> --> ISBN 0-13-949876-1</para> + </listitem> + </itemizedlist> + </sect1> +</article> diff --git a/fr_FR.ISO_8859-1/books/Makefile b/fr_FR.ISO_8859-1/books/Makefile new file mode 100644 index 0000000000..1ee88cd418 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/Makefile @@ -0,0 +1,15 @@ +# +# The FreeBSD Documentation Project +# The FreeBSD French Documentation Project +# +# $FreeBSD$ +# Original revision: 1.4 +# + +SUBDIR = faq +SUBDIR+= handbook + +ROOT_SYMLINKS= faq handbook + +DOC_PREFIX?= ${.CURDIR}/../.. +.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO_8859-1/books/Makefile.inc b/fr_FR.ISO_8859-1/books/Makefile.inc new file mode 100644 index 0000000000..3e2eea4dc7 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/Makefile.inc @@ -0,0 +1,9 @@ +# +# The FreeBSD Documentation Project +# The FreeBSD French Documentation Project +# +# $FreeBSD$ +# Original revision: 1.2 +# + +DESTDIR?= ${DOCDIR}/fr_FR.ISO_8859-1/books/${.CURDIR:T} diff --git a/fr_FR.ISO_8859-1/books/faq/Makefile b/fr_FR.ISO_8859-1/books/faq/Makefile new file mode 100644 index 0000000000..f8035e4ce4 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/faq/Makefile @@ -0,0 +1,45 @@ +# +# The FreeBSD Documentation Project +# The FreeBSD French Documentation Project +# +# Compilation de la FAQ FreeBSD +# +# $FreeBSD$ +# Original revision: 1.5 +# + +MAINTAINER=nik@FreeBSD.ORG + +DOC?= book + +FORMATS?= html-split html + +INSTALL_COMPRESSED?= gz +INSTALL_ONLY_COMPRESSED?= + +# +# SRCS lists the individual SGML files that make up the document. Changes +# to any of these files will force a rebuild +# + +# SGML content +SRCS= book.sgml +SRCS+= acknowledgments.sgml +SRCS+= admin.sgml +SRCS+= applications.sgml +SRCS+= commercial.sgml +SRCS+= hackers.sgml +SRCS+= hardware.sgml +SRCS+= includes.sgml +SRCS+= install.sgml +SRCS+= kernelconfig.sgml +SRCS+= misc.sgml +SRCS+= network.sgml +SRCS+= preface.sgml +SRCS+= serial.sgml +SRCS+= troubleshoot.sgml +SRCS+= x.sgml + +DOC_PREFIX?= ${.CURDIR}/../../.. + +.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO_8859-1/books/faq/acknowledgments.sgml b/fr_FR.ISO_8859-1/books/faq/acknowledgments.sgml new file mode 100644 index 0000000000..12c721893e --- /dev/null +++ b/fr_FR.ISO_8859-1/books/faq/acknowledgments.sgml @@ -0,0 +1,92 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: 1.1 +--> + + + + <chapter id="acknowledgments"> + <title> REMERCIEMENTS </title> +<programlisting> + + + +</programlisting> + <para><emphasis remap="tt"> + Si vous voyez un problème avec cette FAQ, ou que vous voulez rajouter +une entrée, mailez nous à <FAQ@FreeBSD.ORG> +Nous apprécions tout commentaire, et seul votre aide nous permettra +d'améliorer cette FAQ !</emphasis> + </para> + <programlisting> + + FreeBSD Core Team + + +</programlisting> + + <!-- Faudrait trouver l'equivalent de descript/tag en docbook) --> +<programlisting> + Version originale + +</programlisting> +<itemizedlist> + <listitem> + <para>Jordan Hubbard : +Ocasionnellement des mises à jour et des corrections de la FAQ + </para> + </listitem> + + <listitem> + <para>Doug White : +Les services ci-dessus et plus qu'il n'en faut sur freebsd-questions + </para></listitem> + + <listitem> + <para>Joerg Wunsch : +Les services ci-dessus et plus qu'il n'en faut sur Usenet + </para></listitem> + + <listitem> + <para>Garrett Wollman : +Réseaux et format + </para></listitem> + + <listitem> + <para>Jim Lowe : +Informations Multicast + </para></listitem> + + <listitem> + <para>Peter da Silva : +Tapage de la FAQ FreeBSD. + </para></listitem> + + <listitem> + <para>The FreeBSD Team : +Soumission d'information... + </para></listitem> +</itemizedlist> +<programlisting> + + L'équipe de traduction Francaise: +</programlisting> +<itemizedlist> + <listitem><para><ulink url="mailto:renaudbreard@telegroupe.fr">Renaud BREARD </ulink></para></listitem> + <listitem><para><ulink url="mailto:brive@mail.dotcom.fr">Robert Brive</ulink> </para></listitem> + <listitem><para><ulink url="mailto:gioria@francenet.fr">Sébastien GIORIA</ulink> </para></listitem> + <listitem><para><ulink url="mailto:fhaby@club-internet.fr">Frédéric Haby</ulink></para></listitem> + <listitem><para><ulink url="mailto:Stephane.Legrand@bigfoot.com">Stéphane LEGRAND </ulink></para></listitem> + <listitem><para><ulink url="mailto:nolin@mail.dotcom.fr">Philippe Nolin</ulink> </para></listitem> + <listitem><para><ulink url="mailto:regnauld@deepo.prosa.dk">Philippe REGNAULD </ulink></para></listitem> + <listitem><para><ulink url="mailto:ritsch_p@epita.fr">Pierre Yves RITSCHARD</ulink></para></listitem> + <listitem><para><ulink url="mailto:dntt@prism.uvsq.fr">Tuyêt Trâm DANG NGOC</ulink> </para></listitem> + +</itemizedlist> + <para> +Et pour tous les autres que nous avons oubliés, mille excuses, et merci de tout coeur ! + </para> + </chapter> diff --git a/fr_FR.ISO_8859-1/books/faq/admin.sgml b/fr_FR.ISO_8859-1/books/faq/admin.sgml new file mode 100644 index 0000000000..b9afc7c57f --- /dev/null +++ b/fr_FR.ISO_8859-1/books/faq/admin.sgml @@ -0,0 +1,893 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + $FreeBSD$ + Original revision: 1.20 +--> + +<chapter id="admin"> + <title>Administration système</title> + + <sect1> + <title>Où sont les fichiers de démarrage du système ?</title> + + <para>De la version 2.0.5R à la version 2.2.1R, le fichier de +configuration principal était <filename> /etc/sysconfig </filename>. +Toutes les options sont spécifiées dans ce fichier et les autres +fichiers comme <ulink url="http://www.freebsd.org/cgi/man.cgi?rc"> +/etc/rc </ulink> et <filename> /etc/netstart </filename> ne font +que l'inclure.</para> + + <para>Regardez dans le fichier <filename> /etc/sysconfig +</filename> et changez les valeurs nécessaires pour configurer votre +système. Ce fichier inclut des commentaires indiquant les valeurs à +mettre.</para> + + <para>Pour les versions 2.2.1 et suivantes, le fichier <filename> +/etc/sysconfig </filename> a été renommé en <ulink +url="http://www.freebsd.org/cgi/man.cgi?rc.conf(5)"> <filename> +rc.conf </filename> </ulink> et a été épuré au passage. Le fichier +<filename> /etc/netstart </filename> a aussi été renommé en <filename> +rc/network </filename> comme cela tous les fichiers peuvent être +copiés grâce à une seule commande : <ulink +url="http://www.freebsd.org/cgi/man.cgi?cp"> cp </ulink> +<filename>/usr/src/etc/rc* /etc</filename>. </para> + + <para>Le fichier <filename>/etc/rc.local</filename> existe +toujours et peut être utilisé pour démarrer des services additionnels +comme <ulink +url="http://www.freebsd.org/cgi/ports.cgi?^inn">INN</ulink> ou pour +positionner certaines valeurs.</para> + + <para>Le fichier <filename>/etc/rc.serial </filename> permet +d'initialiser les ports série (par exemple mettre en place les +caractéristiques du port, etc..).</para> + + <para>Le fichier <filename>/etc/rc.i386 </filename> est +spécifique aux paramètres des plateformes Intel, comme l'émulation +iBCS2 ou la configuration de la console système d'un PC.</para> + + <para>Avec la version 2.1.0R, vous pouvez définir des fichiers de +démarrage "locaux" se trouvant dans un répertoire spécifié dans le +fichier <filename>/etc/sysconfig</filename> (ou le fichier <filename> +/etc/rc.conf </filename>): +<programlisting> +# Emplacement des fichiers de démarrage locaux +local_startup=/usr/local/etc/rc.local.d +</programlisting></para> + + <para>Chaque fichier se terminant par <filename> .sh </filename> +sera éxécuté dans l'ordre alphabétique.</para> + + <para>Si vous voulez vous assurez d'un certain ordre de +démarrage sans changer le nom des fichiers, vous pouvez utiliser un +schéma similaire à celui qui suit, en faisant précéder chaque fichier +de chiffres pour assurer l'ordre de démarrage: +<programlisting> +10news.sh +15httpd.sh +20ssh.sh + </programlisting></para> + + <para>Cela peut vous sembler un peu laid (ou SysV :-)) mais cela +fournit une façon simple pour les packages locaux ajoutés sans être +obligé d'éditer <filename> /etc/rc.local </filename>. La plupart des +ports ou des packages assument que le répertoire <filename> +/usr/local/etc/rc.d </filename> permet le démarrage des programmes +locaux.</para> + + </sect1> + + <sect1> + <title>Comment ajouter simplement un utilisateur ?</title> + <para>Utilisez la commande <ulink +url="http://www.freebsd.org/cgi/man.cgi?adduser"> adduser +</ulink></para> + + <para>Il existe aussi un autre outil nommé +<filename>``new-account''</filename> écrit en Perl par <ulink +url="mailto:roberto@FreeBSD.ORG">Ollivier Robert</ulink>. Demandez le +lui. Cet outil est actuellement en cours de développements supplémentaires</para> + + <para>Pour retirer un utilisateur, utilisez la commande <ulink +url="http://www.freebsd.org/cgi/man.cgi?rmuser">rmuser</ulink>.</para> + + </sect1> + + <sect1> + <title>Comment ajouter un nouveau disque dur à mon système FreeBSD ?</title> + + <para> Voyez le <ulink +url="&url.tutorials;diskformat/index.html">tutoriel</ulink> sur le formatage des +disques dur.</para> + + </sect1> + + <sect1> + <title>Comment utiliser mon nouveau disque amovible ? </title> + + <para>Que ce soit un disque amovible de type ZIP ou EZ (ou +même une disquette), ou un disque dur, une fois installé et +reconnu par le système et que vous avez inséré une cartouche/disquette, la +manipulation est la même pour tous les périphériques.</para> + + <para><anchor id="disklabel">(Cette section est basée sur <ulink url="http://www.vmunix.com/mark/FreeBSD/ZIP-FAQ.html">la FAQ </ulink> des lecteurs ZIP de Mark Mayo)</para> + + <para>Si c'est un disque ZIP ou une disquette DOS, il y a déjà un système de fichier DOS installé, vous pouvez utilisez les commandes suivantes: +<programlisting> +mount -t msdos /dev/fd0c /floppy +</programlisting>s'il s'agit d'une disquette; ou: +<programlisting> +mount -r msdos /dev/sd2s4 /zip +</programlisting>s'il s'agit d'un lecteur ZIP dans sa configuration d'origine. +</para> + + <para>Pour les autres types de disques, voyez leur partitionnement en utilisant <filename> fdisk </filename> ou <filename> /stand/sysinstall </filename>.</para> + + <para>Les exemples qui suivent supposent que vous disposez d'un disque ZIP sur sd2, le troisième disque SCSI.</para> + + <para>Si votre disque amovible n'est pas une disquette, ou tout autre disque amovible que vous ne désirez par partager avec d'autres personnes, il vaut mieux mettre un système de fichiers BSD dessus. Vous pourrez avoir des noms longs, une amélioration de performances et une meilleur stabilité. Pour commencer, vous devez effacer la partition ou le système de fichiers DOS. Vous pouvez utiliser l'utilitaire <ulink url="http://www.freebsd.org/cgi/man.cgi?fdisk"> fdisk </ulink> ou <filename> /stand/sysinstall </filename>, ou pour un disque d'une petite capacité, détruire la table des partitions FAT et utiliser le partitionnement BSD standard : +<programlisting> +dd if=/dev/zero of=/dev/rsd2 count=2 +disklabel -Brw sd2 auto +</programlisting></para> + + <para>Vous pouvez utiliser disklabel ou <filename> /stand/sysinstall </filename> pour créer plusieurs partitions BSD. Vous effectuerez probablement ces opérations si vous ajoutez de l'espace de "swap" sur un disque fixe, mais il est inconcevable de le faire sur un disque amovible ZIP.</para> + + <para>Pour finir construisez un nouveau système de fichier, utilisant tout l'espace disponible sur votre lecteur ZIP : +<programlisting> +newfs /dev/rsd2c +</programlisting> et montez le : +<programlisting> +mount /dev/sd2c /zip +</programlisting></para> + + <para>C'est surement une bonne idée d'ajouter la ligne suivante au fichier <ulink url="http://www.freebsd.org/cgi/man.cgi?fstab"> /etc/fstab </ulink>, cela vous permettra de ne taper que "mount /zip" par la suite : +<programlisting> +/dev/sd2c /zip ffs rw,noauto 0 0 +</programlisting></para> + + </sect1> + <sect1> + <title>Comment monter une partition DOS étendue ?</title> + <para>Les partitions DOS étendues se trouvent après la fin de toutes les partitions primaires. Par exemple, si vous avez une partition "E" en tant que partition DOS étendue sur le deuxième disque SCSI, vous devez créer le fichier spécial pour la partition 5 dans /dev et monter /dev/sd1s5 : +<programlisting> +# cd /dev +# ./MAKEDEV sd1s5 +# mount -t msdos /dev/sd1s5 /dos/e +</programlisting></para> + </sect1> + + <sect1> + <title>Puis-je monter d'autres systèmes de fichiers sous FreeBSD ?</title> + + <para>Les CDROM <emphasis remap="bf"> Digital UNIX </emphasis> +au format UFS peuvent être montés directements sous FreeBSD. Il peut +être très difficile, par contre, de monter des partitions disques de +Digital UNIX, ou d'autres systèmes supportant l'UFS. Cela dépend des +partitionnements effectués sur le système en question.</para> + + <para><emphasis remap="bf">Linux:</emphasis> Les version 2.2 et +supérieures incluent le support des partitions <emphasis remap="bf"> +ext2fs </emphasis>. Pour plus d'informations voyez la page de manuel +de <ulink url="http://www.freebsd.org/cgi/man.cgi?mount_ext2fs"> +mount_ext2fs </ulink>.</para> + + <para>Toute autre information sur le sujet est appréciée.</para> + + </sect1> + + <sect1> + <title>Comment utiliser le programme de démarrage de NT pour démarrer FreeBSD ?</title> + <para>Il faut pour cela copier le premier secteur de votre +partition FreeBSD dans un fichier sur une partition DOS/NT. Nous +supposerons qu'il s'appelle <filename> c:\bootsect.bsd +</filename> (équivalent de <filename> c:\bootsect.dos +</filename>). Il suffit d'éditer le fichier <filename> +c:\boot.ini </filename> pour qu'il ressemble à ceci:</para> + + <para><programlisting> +[boot loader] +timeout=30 +default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS +[operating systems] +multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT" +C:\BOOTSECT.BSD="FreeBSD" +C:\="DOS" </programlisting> Cette +procédure implique que DOS, NT ou FreeBSD soient installés sur le +même disque. Dans mon cas DOS et NT sont installés +respectivement sur la première partition du disque et FreeBSD sur la +seconde. FreeBSD est aussi configuré pour démarrer depuis sa partition +et <emphasis remap="bf"> non </emphasis> depuis le MBR du +disque.</para> + + <para>Monter une disquette préformatée DOS (si vous cette +partition n'est pas en FAT, mais en NTFS) sous <filename> /mnt +</filename>.</para> + + <para><programlisting> +dd if=/dev/rsd0a of=/mnt/bootsect.bsd bs=512 count=1 + +</programlisting> Redémarrez en mode DOS ou NT. Si vous +avez une partition NTFS copiez le fichier <filename> bootsect.bsd +</filename> de la disquette dans le répertoire C:\. Modifiez les +attributs (permissions) du fichier boot.ini.</para> + + <para><programlisting> +attrib -s -r c:\boot.ini +</programlisting>Ajoutez la ligne correcte au fichier boot.ini et +restaurez les anciens attributs.</para> + + <para><programlisting> +attrib -s -r c:\boot.ini +</programlisting>Si FreeBSD démarre depuis le MBR, restaurez-le avec +la commande DOS <filename> fdisk /MBR </filename> après avoir +reconfiguré FreeBSD pour démarrer depuis sa partition native.</para> + + </sect1> + + <sect1> + <title>Comment démarrer FreeBSD et Linux grace à LILO ?</title> + <para>Si vous avez installé FreeBSD et Linux sur le mème disque, +suivez les instructions du manuel de LILO pour démarrer sur d'autres +systèmes que Linux. En résumé il faut :</para> + + <para>Démarrer sous Linux et ajouter les lignes suivantes au +fichier <filename> /etc/lilo.conf </filename>: +<programlisting> +other=/dev/hda2 +table=/deb/hda +label=FreeBSD +</programlisting>(l'exemple précédant suppose que la partition FreeBSD +est connue par linux sous le nom <filename> /dev/hda2 </filename>. +Ensuite lancez <filename> lilo </filename> sous root, et c'est +fini.</para> + + <para>Si FreeBSD se trouve sur un autre disque vous devez +ajouter <filename> loader=/boot/chain.b </filename> au fichier de +configuration de lilo : +<programlisting> +other=/dev/sdb4 +table=/dev/sdb +loader=/boot/chain.b +label=FreeBSD </programlisting> +Dans certains cas, vous devez spécifier le numéro du disque connu par +le BIOS au programme de démarrage de FreeBSD pour démarrer sur le +deuxième disque. Par exemple, si votre disque SCSI contenant FreeBSD +est trouvé par le BIOS comme disque numéro 1, vous devez taper la ligne +suivante au prompt du programme de démarrage: +<programlisting> +Boot: 1:sd(0,a)/kernel +</programlisting> Vous pouvez configurer le <ulink +url="http://www.freebsd.org/cgi/man.cgi?boot(8)"> programme de +démarrage </ulink> de FreeBSD version 2.2.5 ou supérieure pour prendre +cette chaine par défaut.</para> + + <para>Le document <ulink +url="http://sunsite.unc.edu/LDP/HOWTO/mini/Linux+FreeBSD.html">Linux+FreeBSD +mini-HOWTO</ulink> est une très bonne référence sur +l'interopérabilité entre FreeBSD et Linux.</para> + + </sect1> + + <sect1> + <title>Comment démarrer FreeBSD et Linux depuis BootEasy ?</title> + + <para>Il faut installer LILO au début de votre partition de +démarrage de Linux au lieu du MBR. Vous pouvez alors démarrer LILO +depuis BootEasy.</para> + + <para>Si vous utilisez Linux et Windows-95, c'est la meilleur +façon d'installer LILO si vous voulez continuer à démarrer Linux après +avoir réinstallé Windows-95 (qui lui ne tient pas contre des autres +systèmes et se croit seul sur le MBR).</para> + + </sect1> + <sect1> + <title>Est-ce dangereux d'utiliser un disque dédié ?</title> + + <para>La procédure d'installation vous permet de choisir deux +façons différentes pour partitionner vos disques. Par défaut, elle +permet de les rendre compatibles avec d'autres systèmes d'exploitation +se trouvant sur votre ordinateur en utilisant les entrées des tables +de fdisk (appelés "slices" sous FreeBSD), en faisant en sorte qu'une +"slice" FreeBSD corresponde à une partition. Vous pouvez aussi +installer un selecteur de démarrage pour choisir de démarrer sous un +autre système d'exploitation.</para> + + <para>Comme ceci correspond à la plupart des cas de personnes +venant des PC, les personnes venant d'Unix et qui désirent mettre en +place une machine pour y faire tourner FreeBSD et juste FreeBSD, +utilisent la procédure classique d'installation d'Unix, ou Unix +utilise le disque au complet, du premier secteur au dernier. Une +véritable table pour fdisk n'est d'aucune utilité dans le vas d'une +machine utilisant FreeBSD 24h/24, 7jours sur 7, car aucun autre +système d'exploitation ne sera démarré. Donc si vous sélectionnez +``A)ll FreeBSD '' dans l'éditeur de partition du programme +d'installation et répondez ``No'' à la question qui suit, vous serez +dans ce cas. Notez que cela implique que le programme de +démarrage BSD correspond au MBR de ce disque. N'essayez pas d'en +réinstaller un sous peine de détruire le précédent.</para> + + <para>Donc pourquoi est-ce donc ``dangereux'' ? Un disque +configuré de la sorte ne contient pas de table fdisk valides, pour la +plupart des utilitaires PC. Suivant la façon dont ils ont été conçus, +ils vous avertissent ou tout simplement ne disent rien et détruisent +le programme de démarrage BSD sans avertissement. Certains systèmes +d'exploitation très utilisés sur PC, sont connus pour agir de la +sorte (bien sûr, ils agissent de la sorte sous le couvert de système +"orienté-utilisateur"). Au moins un BIOS de chez Award, qui est par +exemple utilisé sur les HP Netserver (mais sur d'autre systèmes +aussi), est connu pour ignorer tout disque dur n'ayant pas de table +fdisk valide. Lorsque votre machine démarre il ignore tout simplement +de tels disques, tente de démarrer sur une disquette, et vous affiche +un ``Read error''. Très impressionnant, non ?. C'est ce que certains +appellent un système "orienté-utilisateur".</para> + + <para>Les avantages de ce partitionnement sont : FreeBSD utilise +le disque au complet, il n'y a donc pas de besoin de garder quelques +'pistes' au début du disque qui ne servaient à rien sauf pour un +modèle de partitionnement vieux et simpliste qui n'a maintenant plus +aucun sens. Ces contraintes étant ce que l'on peut appeler la plus +grosse prise de tête lors de l'installation des systèmes +d'exploitations sur PS, et qui menaient le plus souvent à deux façon +complètement redondantes de stockage des informations dans les tables +fdisk. Voyez le chapitre sur <ulink url="missingos"> ``Missing +Operating System''</ulink>. Dans le cas d'un disque ``dangereusement dédié'', +le programme de démarrage BSD commence au secteur 0, qui est le seul +secteur ne changeant de valeur C/H/S, pour les valeurs du disque du +BIOS. Vous pouvez donc, dans ce cas, interchanger des disques entre +plusieurs controleurs ou systèmes utilisant des schémas de translation +différents sans vous poser de questions.</para> + + <para>Pour passer d'un disque ``dangereusement dédié'' à un +disque normal de PC, il y a deux solutions simples. La première est de +recouvrir le MBR d'octets vides, pour permettre de faire croire que le +disque est vierge. Pour pouvez le faire de la façon suivante: +<programlisting>dd if=/dev/zero of=/dev/rds0 count=15</programlisting> +Ou en utilisant une fonctionnnalité non-documentée de DOS : +<programlisting> fdisk /mbr </programlisting> qui installe aussi un +nouveau MBR, en recouvrant le programme de démarrage BSD.</para> + + </sect1> + + <sect1> + <title>Comme faire pour ajouter plus de "swap" ?</title> + + <para>La meilleur façon de faire, est d'augmenter la taille de +votre partition de swap, ou de prendre cette excuse pour ajouter un +autre disque.</para> + + <para>Ajouter du "swap" sur un autre disque permet plus d'augmenter +la rapidité que d'en ajouter sur le même disque. Par exemple, si +vous compilez des fichiers qui se trouvent sur un disque et que le "swap" +se trouve sur un autre disque, cela va beaucoup plus vite d'avoir +le "swap" et les sources sur le même disque. Ceci est +spécialement vrai pour les disques SCSI.</para> + + <para>Les disques IDE ne permettent pas l'accès à deux disques +sur le même canal au même moment (FreeBSD ne supporte pas +le mode 4, donc toutes les entrées/sorties disques sont +``programmées''). Je vous suggère de mettre le "swap" sur un autre +disque aussi. Les disques durs sont si peu couteux, que cela ne vaut +pas le coup de tout mettre sur un.</para> + + <para>C'est une très mauvaise idée de mettre le fichier de +"swap" sur une partition NFS, sauf si vous disposez d'un environnement +réseau extrèmement rapide, et d'un très bon serveur NFS.</para> + + <para>Voici un exemple pour ajouter 64Mo de swap en utilisant un +fichier se nommant <filename> /usr/swap0 </filename>.</para> + <para>Assurez vous que votre noyau est compilé avec la ligne +<programlisting> +pseudo-device vn 1 # #Vnode driver (turns a file into a device) + </programlisting>Le noyau GENERIC la contient par +défaut. + +<itemizedlist> + <listitem> + <para>Créez un vn-device : +<programlisting> +cd /dev +sh./MAKEDEV vn0 + </programlisting></para> + </listitem> + <listitem> + <para>Créez le fichier de "swap" (<filename>/usr/swap0</filename>). +<programlisting> dd if=/dev/zero of=/usr/swap0 bs=1024k count=64 </programlisting></para> + </listitem> + <listitem> + <para>Activez le fichier de "swap" dans le fichier +<filename> /etc/rc.conf </filename> <programlisting> +swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired. +</programlisting></para> + </listitem> + <listitem> <para>Rebootez la machine</para> </listitem> + </itemizedlist></para> + + <para>Pour activer le fichier de "swap" immédiatement, tapez +<programlisting> +vnconfig -ce /dev/vn0c /usr/swap0 swap +</programlisting></para> + </sect1> + + <sect1> + <title>J'ai des problèmes pour installer mon imprimante.</title> + <para>Référez-vous à la section sur les <ulink +url="../handbook/printing.html">imprimantes du Handbook</ulink>. Elle +couvre l'essentiel des problèmes que l'on peut rencontrer.</para> + + </sect1> + + <sect1> + <title>Le clavier est mal configuré sur mon ordinateur.</title> + <para>Le programme <filename>kbdcontrol</filename> comporte une +option permettant de charger une configuration clavier différente. +Vous trouverez dans <filename>/usr/share/syscons/keymaps</filename> +différents fichiers de configuration. Choisissez celle voulue et +chargez la : <programlisting> kbdcontrol -l fr.iso +</programlisting></para> + + <para>Dans tous les cas le programme <ulink +url="http://www.freebsd.org/cgi/man.cgi?kbdcontrol">kbdcontrol</ulink> +recherche dans <filename>/usr/share/syscons/keymaps</filename> un +fichier se terminant par <filename>.kbd</filename>.</para> + + <para>Vous pouvez le configurer dans le fichier +<filename>/etc/sysconfig</filename> (ou <ulink +url="http://www.freebsd.org/cgi/man.cgi?rc.conf(5)">rc.conf</ulink>). +Regardez les commentaires apropriés dans ce fichier.</para> + + <para>Pour les versions 2.0.5 et suivantes, tout ce qui est +relatif aux fontes du texte, à la configuration du clavier se trouve dans +<filename>/usr/share/syscons</filename>.</para> + + <para>Actuellement les configurations de claviers suivantes sont supportées : +<itemizedlist> + <listitem><para>Belgian ISO-8859-1 </para></listitem> + <listitem><para>Brazilian 275 keyboard Codepage 850 </para></listitem> + <listitem><para>Brazilian 275 keyboard ISO-8859-1 </para></listitem> + <listitem><para>Danish Codepage 865 </para></listitem> + <listitem><para>Danish ISO-8859-1 </para></listitem> + <listitem><para>French ISO-8859-1 </para></listitem> + <listitem><para>German Codepage 850 </para></listitem> + <listitem><para>German ISO-8859-1 </para></listitem> + <listitem><para>Italian ISO-8859-1 </para></listitem> + <listitem><para>Japanese 106 </para></listitem> + <listitem><para>Japanese 106x </para></listitem> + <listitem><para>Latin American </para></listitem> + <listitem><para>Norwegian ISO-8859-1 </para></listitem> + <listitem><para>Polish ISO-8859-2 (programmer's) </para></listitem> + <listitem><para>Russian Codepage 866 (alternative) </para></listitem> + <listitem><para>Russian koi8-r (shift) </para></listitem> + <listitem><para>Russian koi8-r </para></listitem> + <listitem><para>Spanish ISO-8859-1 </para></listitem> + <listitem><para>Swedish Codepage 850 </para></listitem> + <listitem><para>Swedish ISO-8859-1 </para></listitem> + <listitem><para>Swiss-German ISO-8859-1 </para></listitem> + <listitem><para>United Kingdom Codepage 850 </para></listitem> + <listitem><para>United Kingdom ISO-8859-1 </para></listitem> + <listitem><para>United States of America ISO-8859-1 </para></listitem> + <listitem><para>United States of America dvorak </para></listitem> + <listitem><para>United States of America dvorakx </para></listitem> + </itemizedlist> +</para> + </sect1> + + <sect1> + <title>Comment faire en sorte que les quotas utilisateurs fonctionnent correctement ?</title> + <para> +<itemizedlist> + <listitem><para>Ne mettez pas de quotas sur '/',</para></listitem> + <listitem><para>Mettez le fichier des quotas sur le système de fichiers +qui en dispose, par ex : +<programlisting> +Système de fichier Emplacement du fichier des quotas +/usr /usr/admin/quotas +/home /home/admin/quotas +... +</programlisting></para></listitem></itemizedlist></para> + + </sect1> + + <sect1> + <title>Qu'est-ce qui ne va pas avec ma configuration de ccd ?</title> + + <para>Le symptome est le suivant : +<programlisting> +# ccdconfig -C +ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format +# +</programlisting></para> + <para>Ceci apparait la plupart du temps lorsque vous essayez de +concaténer les partitions ``c'', qui par défaut ont comme type +``unused''. Le gestionnaire de disque ccd nécessite que le type de la +partition soit de type FS_BSDFFS. Dans ce cas, éditez le label des +disques à concaténer et changez le type des partitions en type +``4.2BSD''.</para> + + </sect1> + + <sect1> + <title>Pourquoi je ne peux pas éditer le label de mes disques concaténés ? </title> + + <para>Le symptome est le suivant : +<programlisting> +# disklabel ccd0 +(ça affiche quelque chose de particulier ici, donc essayons de l'éditer) +# disklabel -e ccd0 +(édition, sauvegarde, sortie) +disklabel: ioctl DIOCWDINFO: No disk label on disk; +use "disklabel -r" to install initial label +# +</programlisting></para> + + <para>Cela apparait souvent lorsque le label retourné par le +gestionnaire de disques concaténé est un faux, un qui n'est pas +véritablement sur le disque. Pour résoudre ce problème il faut écrire +explicitement sur le disque, comme ceci : +<programlisting> +# disklabel ccd0 > /tmp/disklabel.tmp +# disklabel -Rr ccd0 /tmp/disklabel.tmp +# disklabel -e ccd0 +(maintenant cela doit fonctionner correctement) +</programlisting></para> + + </sect1> + + <sect1> + <title>Est-ce que FreeBSD supporte les communications inter-processus de type Système V (IPC) ?</title> + <para>Oui, FreeBSD supporte les communications inter-processus +de type Système V, IPC. Cela inclue la mémoire partagée, les files de +messages et les sémaphores. Vous devez ajouter les lignes suivantes à +votre fichier de configuration du noyau pour les activer :</para> +<para><programlisting> +options SYSVSHM +options "SHMMAXPGS=64" # 256Ko de mémoire partagée +options SYSVSEM # activation des sémaphores +options SYSVMSG # activation des files de messages +</programlisting>Recompilez le noyau et installez le.</para> + + <para><emphasis remap="bf">Note :</emphasis> Vous aurez sûrement +besoin d'augmenter SHMMAXPGS à un nombre plus élevé, comme 4096 (16M!) +si vous avez besoin d'utiliser GIMP. 256Ko est largement suffisant +pour la mémoire partagée dont à besoin X11R6.</para> + </sect1> + + <sect1> + <title>Comment configurer sendmail pour fonctionner avec UUCP ?</title> + + <para>La configuration de sendmail fournie avec FreeBSD, +correspond à un site directement connecté à l'Internet. Les sites qui +utilisent UUCP pour échanger du courrier électronique doivent +installer un autre fichier de configuration pour sendmail. </para> + + <para>Modifier directement le fichier <filename> +/etc/sendmail.cf </filename> est réservé la plupart du temps aux +gourous. La version 8 de sendmail dispose d'une interface <ulink +url="http://www.freebsd.org/cgi/man.cgi?m4">m4</ulink> de génération +du fichier de configuration, qui encapsule le fichier de configuration +dans un format abstrait de haut niveau. Vous devez trouvez les +différents fichiers de configuration dans le répertoire <filename> +/usr/src/usr.sbin/sendmail/cf </filename>.</para> + + <para>Si vous n'avez pas installé tous les sources du système, +vous pouvez trouver les différents fichiers de configuration de +sendmail dans un fichier séparé des autres sources sur le CD-ROM. Si +vous avez monté le CD-ROM exécutez les commandes suivantes :</para> +<para><programlisting> +cd /usr/src +tar -xvzf /cdrom/dists/src/ssmailcf.aa +</programlisting></para> + + <para>Cela correspond juste à une centaine de kilo-octets. Le +fichier <filename>README</filename> dans le répertoire +<filename>cf</filename> vous explique rapidement comment fonctionnne +m4.</para> + + <para>Pour utiliser UUCP, vous devez utiliser la fonctionnnalité +<emphasis>mailertable</emphasis>. Elle permet à sendmail de constituer +une base de données pour lui permettre de router le courrier +correctement.</para> + + <para>Pour commencer, vous devez créer une fichier de +configuration <filename>.mc</filename>. Tous ces types de fichiers se +trouvent dans le répertoire +<filename>/usr/src/usr.sbin/sendmail/cf/cf</filename>. Il y a quelques +fichiers d'exemples dans ce répertoire pouvant vous aider. En +supposant que vous avez appelé ce fichier <filename>foo.mc</filename>, +tout ce que vous devez faire pour le convertir en un +fichier valide de configuration de sendmail, +<filename>sendmail.cf</filename> est :</para> + +<para><programlisting> +cd /usr/src/usr.sbin/sendmail/cf/cf +make foo.cf +cp foo.cf /etc/sendmail.cf +</programlisting></para> + + <para>Un fichier classique ressemble à ceci:</para> +<para><programlisting> +include(`../m4/cf.m4') +VERSIONID(`Votre numéro de version) +OSTYPE(bsd4.4) +FEATURE(nodns) +FEATURE(nocanonify) +FEATURE(mailertable) + +define(`UUCP_RELAY', nom.du.relai.uucp) +define(`UUCP_MAX_SIZE', 200000) + +MAILER(local) +MAILER(smtp) +MAILER(uucp) + +Cw alias.de.votre.nom.de.machine +Cw votrenomdenoeuduucp.UUCP +</programlisting></para> + + <para>Les directives <emphasis>nodns</emphasis>et +<emphasis>nocanonify</emphasis> forcent sendmail à ne pas utiliser le +DNS lors de l'envoi du courrier. La directive +<emphasis>UUCP_RELAY</emphasis> est utilisée pour des raisons assez +bizarres; ne posez pas de questions et utilisez-la. Mettez juste un nom +de machine capable de recevoir du courrier en UUCP. La plupart du +temps il faut mettre le nom du serveur de messagerie de votre +fournisseur d'accès.</para> + + <para>Après avoir défini tout ceci, vous avez besoin d'un +fichier <filename>/etc/mailertable</filename>. Voici un exemple de ce +type de fichier :</para> +<para><programlisting> +# +# makemap hash /etc/mailertable.db < /etc/mailertable +# +horus.interface-business.de uucp-dom:horus +.interface-business.de uucp-dom:if-bus +interface-business.de uucp-dom:if-bus +.heep.sax.de smtp8:%1 +horus.UUCP uucp-dom:horus +if-bus.UUCP uucp-dom:if-bus +. uucp-dom:sax +</programlisting></para> + +<para>Les trois premières lignes font en sorte d'envoyer +le courrier à des serveurs UUCP ``voisins'' et non pas au serveur par +défaut, pour permettre de racourcir le temps d'envoi des messages. La +ligne suivante permet d'envoyer le courrier sur le domaine local en +protocole SMTP. Et pour finir, les ``voisins'' UUCP sont mentionner +dans la la notation de domaine .UUCP, permettant au format de mail +``voisin-uucp!destinataire'' d'écraser les règles par défaut. La +dernière ligne doit toujours être un ``.'', qui représente toutes les +destinations, qui doit correspondre à un serveur de messagerie UUCP +voisin, et qui sert de passerelle de courrier éléctronique vers le +reste du monde. Tous les noms de noeuds se trouvant après le mot clé +<filename>uucp-dom:</filename>doivent être des noms valides de voisins +UUCP, que vous pouvez vérifier en utilisant la commande +<filename>uuname</filename></para> + +<para>Pour vous rappeler que ce fichier doit être converti en +fichier DBM pour pouvoir être utilisé, la ligne de commande +nécessaire à sa création est rappelée dans les commentaires du fichier +mailertable. Vous devez lancer cette commande à chaque fois que vous +changez quelque chose dans ce fichier.</para> + + <para>Pour finir : si vous n'etes pas certain de votre +configuration d'envoi de messages électroniques, rappellez-vous +l'option <filename>-bt</filename> de sendmail. Cela lance sendmail en +<emphasis>mode test</emphasis> ; entrez simplement ``0 '' suivi de +l'adresse que vous voulez tester. La dernière ligne vous indiquera +alors le type d'agent utilisé pour l'envoi, la machine auquelle +l'agent enverra le courrier, et l'adresse à laquelle il l'enverra. Pour +quitter ce mode tapez Control-D.</para> +<para><programlisting> +j@uriah 191% sendmail -bt +ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) +Enter <ruleset> <address> +> 0 foo@interface-business.de +rewrite: ruleset 0 input: foo @ interface-business . de +... +rewrite: ruleset 0 returns: $# uucp-dom $@ if-bus $: foo \ +< @ interface-business . de > +> ^D +j@uriah 192% +</programlisting></para> + </sect1> + + <sect1> + <title>Comment mettre en oeuvre le courrier électronique avec une connexion temporaire à un réseau ?</title> + + <para>Si vous disposez d'un adresse IP statique, vous ne devez rien changer. Definissez juste votre nom de machine pour qu'il corresponde à votre nom de machine internet et sendmail s'occupera du reste.</para> + + <para>Dans le cas ou vous disposez d'une adresse IP +dynamiquement assignée et que vous utilisez une connection ppp pour +accèder à l'internet, vous diposez probablement d'une boite aux +lettres chez votre fournisseur d'accès. Prenons comme exemple que le +domaine de votre fournisseur soit <filename>monISP.com</filename>, que +votre nom d'utilisateur soit <filename>monlogin</filename>, que votre nom +de machine soit <filename>bsd.perso</filename> et que votre +fournisseur vous aie indiqué la machine +<filename>relai.monISP.com</filename> comme serveur relai de +messagerie électronique.</para> + + <para>Pour pouvoir recevoir votre courrier depuis votre boite à +lettres, vous devez installer un agent de rapatriement de +mail.<emphasis remap="bf">Fetchmail</emphasis> est un bon choix, car +il supporte la plupart des protocoles de messagerie. La plupart du +temps, votre fournisseur offre l'accès à travers le protocole POP3. Si +vous avez décidé d'utiliser la partie utilisateur de ppp, vous pouvez +automatiquement rapatrier votre courrier lorsque la connexion vers le +réseau est établie en ajoutant la ligne suivante au fichier +<filename>/etc/ppp/ppp.linkup</filename> :</para> +<para><programlisting> +MYADDR: +!bg su monlogin -c fetchmail +</programlisting></para> + + <para>Ici nous assumons que vous disposez d'un compte nommé +<filename>monlogin</filename> sur la machine +<filename>bsd.perso</filename>. Vous devez alors créer un fichier +<filename>.fetchmailrc</filename> dans votre répertoire principal +contenant :</para> +<para><programlisting> +poll monISP.com protocol pop3 fetchall pass monPasswd: +</programlisting></para> + + <para>Naturellement, ce fichier ne doit être lisible que par +l'utilisateur <filename>monlogin</filename> car il contient le mot de +passe <filename>monPasswd</filename>.</para> + + <para>Pour permettre d'envoyer du courrier avec l'entête +<emphasis remap="bf">from:</emphasis> correcte, vous devez configurer +sendmail pour utiliser l'adresse +<filename>monlogin@monISP.com</filename> plutôt que +<filename>monlogin@bsd.perso</filename>. Vous devez aussi dire à votre +sendmail d'envoyer tout le courrier via le serveur +<filename>relai.monISP.com</filename>, permettant au courrier +d'être envoyé plus rapidement.</para> + +<para>Le fichier de configuration <filename>.mc</filename> suivant doit convenir :</para> +<para><programlisting> +VERSIONID(`bsd.perso.mc version 1.0') +OSTYPE(bsd4.4)dnl +FEATURE(nouucp)dnl +MAILER(local)dnl +MAILER(smtp)dnl +Cwlocalhost +Cwbsd.perso +MASQUERADE_AS(`monISP.com')dnl +FEATURE(allmasquerade)dnl +FEATURE(masquerade_envelope)dnl +FEATURE(nocanonify)dnl +FEATURE(nodns)dnl +define(SMART_HOST, `relai.monISP.com') +Dmbsd.perso +define(`confDOMAIN_NAME',`bsd.perso')dnl +define(`confDELIVERY_MODE',`deferred')dnl +</programlisting></para> + + <para>Reférez-vous à la section précédente pour l'explication +détaillée de conversion du fichier <filename>.mc</filename>en fichier +<filename>sendmail.cf</filename>. N'oubliez pas non plus de redémarrer +sendmail après avoir modifié le fichier +<filename>/etc/sendmail.cf</filename></para> + + </sect1> + + <sect1> + <title>Horreur !! J'ai perdu le mot de passe de root !! </title> + + <para>Ne paniquez pas! Redémarrez tout simplement le système en +tapant -s au "prompt" Boot: pour passer en mode mono-utilisateur. A la +question sur le shell à utiliser, appuyez sur ENTREE. Vous obtiendrez +alors un prompt "#". Tapez la commande <filename>mount -u</filename> +pour remonter votre partition primaire en lecture/écriture et lancez +la commande <filename>mount -a</filename> pour remonter tous les +systèmes de fichiers. Tapez <filename>passwd root</filename> pour +changer le mot de passe root puis tapez <filename>exit</filename> pour +continuer le processus de démarrage du système.</para> + + </sect1> + + <sect1> + <title>Comment empècher le redémarrage du système en appuyant sur les touches Control-Alt-Delete ?</title> + <para>Editez le fichier de configuration du clavier que vous +utilisez pour la console et remplacez le mot clé +<filename>boot</filename> par <filename>nop</filename>. Le fichier de +configuration du clavier utilisé par défaut est +<filename>/usr/share/syscons/keymaps/us.iso.kbd</filename>. Vous +pouvez changer la configuration en éditant le fichier +<filename>/etc/rc.conf</filename>. Bien sur si vous utilisez une autre +configuration, il faut éditer le fichier de configuration la +décrivant.</para> + </sect1> + + <sect1> + <title>Comment transformer les fichiers textes au format DOS en fichiers UNIX ?</title> + + <para>Utilisez tout simplement la commande perl suivante :</para> + + <para><programlisting> +perl -i.bak -pe 's/\r\n/\n/g' fichier.dos ... +</programlisting></para> + + <para>fichier.dos étant le fichier à modifier. Cette commande +remplace dans le fichier et sauvegarde l'ancien sous le nom +<filename>fichier.dos.bak</filename>.</para> + + </sect1> + + <sect1> + <title>Comment tuer un processus par son nom ?</title> + <para>Utilisez <ulink url="/cgi/cvsweb.cgi/man.cgi?killall">killall(1)</ulink></para> + </sect1> + + <sect1> + <title>Pourquoi la commande <filename>su</filename> me dit sans arrêt que je ne suis pas dans les ACL de root ?</title> + + <para>Cette erreur vient du système d'authentification distribué +Kerberos. Ceci n'est pas un problème très grave. Un palliatif consiste +à utiliser l'option "-k" de su ou de désinstaller Kerberos comme +expliqué à la section suivante.</para> + + </sect1> + + <sect1> + <title>Comment désinstaller Kerberos ?</title> + <para>Pour désinstaller Kerberos de votre système, vous devez +réinstaller la distribution <filename>bin</filename> depuis votre +version de FreeBSD. Si vous disposez d'un CDROM, vous devez monter le +cd (la plupart du temps dans /cdrom) et lancer :</para> + +<para><programlisting> +cd /cdrom/bin +./install.sh +</programlisting></para> + </sect1> + <sect1> + <title>Comment ajouter des pseudo-terminaux au système ?</title> + + <para>Si vous avez un grand nombre de telnet, ssh, X, or screen users, + vous risquez probablement de manquer de pseudo-terminaux. + Voici comment en ajouter plusieurs :</para> + + <orderedlist> + <listitem><para>Créer et installer un nouveau noyau avec la ligne</para> + + <programlisting> + pseudo-device pty 256 + </programlisting> + + <para>dans le fichier de configuration.</para></listitem> + + <listitem><para>Exécuter la commande :</para> + + <programlisting> + # cd /dev + # ./MAKEDEV pty{1,2,3,4,5,6,7} + </programlisting> + + <para>pour créer 256 device nodes pour les nouveaux terminaux.</para></listitem> + + <listitem><para>Editer <filename>/etc/ttys</filename> et + jouter une ligne pour chacun des 256 terminaux. + Elles doivent correspondre à la forme des entrées existantes. + c'est à dire ressembler à :</para> + + <programlisting> + ttyqc none network + </programlisting> + + <para>L'ordre des lettres de désignation est + <filename>tty[pqrsPQRS][0-9a-v]</filename>, + en utilisant une expression régulière. </para></listitem> + + <listitem><para>Démarrez le système avec le nouveau noyau + et vous êtes prêts à travailler.</para></listitem> + </orderedlist> + + + </sect1> + +</chapter> + diff --git a/fr_FR.ISO_8859-1/books/faq/applications.sgml b/fr_FR.ISO_8859-1/books/faq/applications.sgml new file mode 100644 index 0000000000..ce9f6f1dcd --- /dev/null +++ b/fr_FR.ISO_8859-1/books/faq/applications.sgml @@ -0,0 +1,149 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + +<chapter id="applications"> + <title>Applications</title> + + <sect1> + <title>Ou puis-je trouver toutes les applications utilisateurs?</title> + + <para>Allez voir sur la <ulink url="../handbook/ports.html"> page des +ports</ulink> pour plus d'informations sur les packages portés sur +FreeBSD. La liste complète inclut plus de 1000 ports, et grossit chaque +jours, donc vérifiez souvent cette liste, ou souscrivez à la mailing +liste <ulink url="freebsd-announce"> freebsd-announce </ulink> pour +vous tenir au courant des mises à jour.</para> + + <para>La plupart des ports sont disponibles pour la branche 2.2 +et 3.0, et la plupart d'entre eux sont susceptibles de fonctionner sur +des systèmes 2.1.x. A chaque fois qu'une version de FreeBSD est +livrée, une version des ports, au moment de la livraison de la +version, est incluse dans le répertoire <filename> ports +</filename>.</para> + + <para>FreeBSD supporte aussi le concept de ``package'', qui +n'est rien de plus qu'une distribution binaire compressée avec +quelques informations en plus, permettant de l'installer très +simplement. Un ``package'' peut être installé et désinstallé +facilement, sans avoir besoin de savoir les détails sur les fichiers +qu'il inclut.</para> + + <para>Il vous suffit d'utiliser le menu d'installation des +``package'' du programme <filename> /stand/sysinstall </filename> ou +servez vous de la commande <emphasis> pkg_add(1) </emphasis> pour +installer les ``packages'' que vous désirez. Les fichiers des +``packages'' sont très simple à identifiés de part leur suffixe +<emphasis> .tgz </emphasis>. Les personnes disposant d'une +distribution sur CDROM les trouveront dans le répertoire <filename> +packages/All </filename>. Ils sont aussi disponibles sur ces +différents serveurs ftp: +<itemizedlist> + <listitem> + <para>Pour les versions 2.1.x-release: <ulink +url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-2.1.7/">ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-2.1.7/</ulink></para> + </listitem> + <listitem> + <para>Pour les versions 2.2.6-release/2.2.-stable: <ulink +url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-2.2.6/">ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-2.2.6/</ulink></para> + </listitem> + <listitem> + <para>Pour la version 3.0-current: <ulink +url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-3.0/">ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-3.0/</ulink></para> + </listitem> + + </itemizedlist> ou sur un site mirroir.</para> + + <para>Notez, que tous les ports ne sont pas obligatoirement +disponibles sous forme de ``package''. C'est une bonne idée de +vérifier régulièrement la disponibilité des différents packages sur le +<ulink url="ftp://ftp.freebsd.org/pub/FreeBSD/">site principal de +FreeBSD</ulink></para> + + </sect1> + + <sect1> + <title>Ou trouver la librairie libc.so.3.0?</title> + <para>Cela veut dire que vous essayez d'utiliser un ``package'' +compilé pour des versions 2.2/3.0 sur un système 2.1.x. Voyez la +section précedente et retrouvez le port/package correct pour votre +système.</para> + + </sect1> + + <sect1> + <title> ghostscript m'affiche énormément d'erreurs sur mon 386/486SX. <anchor id="emul"> </title> + + <para> Vous n'avez pas de coprocesseur mathématique, n'est-ce pas ? Vous +devez absolument compiler l'émulateur mathématique fournit dans votre +noyau; il vous suffit d'ajouter la ligne suivante dans votre fichier +de configuration du noyau: <programlisting> options GPL_MATH_EMULATE +</programlisting></para> + + <para>NOTE: Vous devez retirer la ligne contenant l'option +<filename> MATH_EMULATE </filename> si vous activez la +précédente.</para> + + </sect1> + + <sect1> + <title>Lorsque je lance des applications SCO/iBCS2, elles plantent sur <filename> socksys </filename> </title> + + <para> Vous devez en tout premier éditer le fichier <filename> +/etc/sysconfig </filename> (ou <ulink +url="http://www.freebsd.org/cgi/man.cgi?rc.conf(5)"> /etc/rc.conf +</ulink>) et positionner la variable suivante sur <emphasis +remap="bf"> YES </emphasis>: +<programlisting> +# à positionner sur YES si vous voulez que l'émulation ibcs2(SCO) soit chargée au démarrage +ibcs2=NO +</programlisting></para> + + <para>Cela activera le module <ulink +url="http://www.freebsd.org/cgi/man.cgi?ibcs2"> ibcs2 </ulink> au +démarrage.</para> + + <para>Vous devrez aussi créer le répertoire <filename> +/compat/ibcs2/dev </filename> et mettre en place ce qui suit : + +<programlisting> +lrwxr-xr-x 1 root wheel 9 Oct 15 22:20 X0R@ -> /dev/null +lrwxr-xr-x 1 root wheel 7 Oct 15 22:20 nfsd@ -> socksys +-rw-rw-r-- 1 root wheel 0 Oct 28 12:02 null +lrwxr-xr-x 1 root wheel 9 Oct 15 22:20 socksys@ -> /dev/null +crw-rw-rw- 1 root wheel 41, 1 Oct 15 22:14 spx +</programlisting></para> + + <para>Il suffit de faire pointer socksys vers <ulink +url="http://www.freebsd.org/cgi/man.cgi?null(4)"> /dev/null </ulink> +pour tromper les open & close. Le code, dans la version -current, +fera le reste. Si vous avez besoin du driver <filename> spx +</filename> pour la connection d'une socket X, définissez <filename> +SPX_HACK </filename> lors de la compilation de votre +système.</para> + + </sect1> + + <sect1> + <title>Comment dois-je configurer INN (Internet News) pour mon système ?</title> + + <para>Après avoir installé le package ou le port de inn, la +meilleur façon de commencer est de voir la page de <ulink +url="http://www.eerie.fr/~news/">Fabien TASSIN</ulink> +sur INN, ou vous trouverez la FAQ de INN.</para> + </sect1> + + <sect1> + <title>Quelle version de Microsoft FrontPage dois-je utiliser ?</title> + + <para>Utilisez les ports ! Une pré-version patchée pour Apache est +disponible dans les ports</para> + </sect1> + +</chapter> + + diff --git a/fr_FR.ISO_8859-1/books/faq/book.sgml b/fr_FR.ISO_8859-1/books/faq/book.sgml new file mode 100644 index 0000000000..df5c82ddf9 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/faq/book.sgml @@ -0,0 +1,93 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + +<!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ + +<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> +%urls; + +<!ENTITY % includes SYSTEM "includes.sgml"> %includes; +<!ENTITY preface SYSTEM "preface.sgml"> +<!ENTITY install SYSTEM "install.sgml"> +<!ENTITY hardware SYSTEM "hardware.sgml"> +<!ENTITY troubleshoot SYSTEM "troubleshoot.sgml"> +<!ENTITY commercial SYSTEM "commercial.sgml"> +<!ENTITY applications SYSTEM "applications.sgml"> +<!ENTITY kernelconfig SYSTEM "kernelconfig.sgml"> +<!ENTITY admin SYSTEM "admin.sgml"> +<!ENTITY x SYSTEM "x.sgml"> +<!ENTITY network SYSTEM "network.sgml"> +<!ENTITY serial SYSTEM "serial.sgml"> +<!ENTITY misc SYSTEM "misc.sgml"> +<!ENTITY hackers SYSTEM "hackers.sgml"> +<!ENTITY acknowledgments SYSTEM "acknowledgments.sgml"> +]> + +<book id="FAQ" lang="fr"> + <title>Questions Fréquemment Posées sur FreeBSD 2.X</title> + <bookinfo> + <bookbiblio> + <authorgroup> + <author > + <firstname>Sébastien</firstname> + <surname>GIORIA</surname> + <affiliation> + <address> + <email>gioria@francenet.fr</email> + </address> + </affiliation> + </author> + <author > + <firstname>Tuyet Tram</firstname> + <surname>DANG NGOC</surname> + <affiliation> + <address> + <email>dntt@prism.uvsq.fr</email> + </address> + </affiliation> + </author> + </authorgroup> + <date>Septembre - Décembre 1998</date> + + </bookbiblio> + <legalnotice> + <para> +Ceci est la FAQ pour les versions de FreeBSD 2.X. Toutes les entrées sont +relatives à FreeBSD 2.05 et les versions ultérieures.Toutes +les entrées finissant avec <XXX> sont en cours de +construction. Si vous êtes intéressé par ce projet, +envoyez un email sur la "mailing-list" : <ulink +url="mailto:freebsd-france@freebsd.francenet.fr">freebsd-france@freebsd.francenet.fr</ulink>. +La dernière version de ce document est disponible en anglais à +l'adresse suivante : <ulink url="http://www.fr.FreeBSD.ORG/"> FreeBSD +World Wide Web server </ulink>. Ce document est également disponible +en format <ulink url="FAQ.txt">texte</ulink> et en format +<ulink url="FAQ.ps">postscript</ulink> + + </para> +<para><emphasis remap="bf">Nous recherchons des relecteurs pour la correction de cette FAQ</emphasis>. + +</para> + </legalnotice> + </bookinfo> + &preface; + &install; + &hardware; +&troubleshoot; +&commercial; +&applications; +&kernelconfig; +&admin; +&x; +&network; +&serial; +&misc; +&hackers; +&acknowledgments; + +</book> diff --git a/fr_FR.ISO_8859-1/books/faq/commercial.sgml b/fr_FR.ISO_8859-1/books/faq/commercial.sgml new file mode 100644 index 0000000000..204779a5c5 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/faq/commercial.sgml @@ -0,0 +1,254 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: 1.4 +--> + + <chapter id="commercial"> + <title> Applications commerciales</title> + <para> +NOTE : +Cette section est encore très clairsemée, car nous espérons +naturellement, que les industries y contribueront :-) +L'organisation FreeBSD n'a aucun intérêt financier dans aucune des +sociétés énumérées ici, mais les liste simplement comme service public +(et estime que l'intérêt commercial dans FreeBSD peut avoir des effets +très positifs sur la viabilité à long terme de FreeBSD). +Nous encourageons les constructeurs de logiciel commerciaux +à envoyer leurs références ici pour inclusion. Voir +<ulink url="http://www.fr.freebsd.org/commercial/commercial.html"> les pages des constructeurs </ulink> +pour une liste plus complète. + </para> + + <sect1> + <title> Où puis je obtenir Motif pour FreeBSD ? </title> + <para> +Contactez <ulink url="http://www.apps2go.com">Apps2go</ulink> pour une distribution ELF +Motif 2.1 pour FreeBSD. + </para> + + <para> +Cette distribution comprend : + <itemizedlist> + <listitem><para> +OSF/Motif manager, xmbind, panner, wsm. + </para></listitem> + + <listitem><para> +Les librairies ELF statiques et dynamiques (utilisables avec FreeBSD +3.0 et supérieur). + + </para></listitem> + + <listitem><para> +Kit de développement avec les fichiers +uil, mrm, xm, xmcxx, include et Imake. + </para></listitem> + + <listitem><para> +Des applications de démonstration. + </para></listitem> + + </itemizedlist> + </para> + + <para> +Soyez sûr d'indiquer que vous voulez la version de FreeBSD de Motif +lors de la commande ! Des versions pour NetBSD et OpenBSD sont également +vendues par <emphasis remap="apps2go">Apps2go</emphasis>. Vous avez +actuellement juste la possiblité de télécharger en FTP. +<programlisting> + Pour plus d'informations + <ulink url="http://www.apps2go.com/">Serveur WWW de Apps2go </ulink> + + Ou les addresse de messageries du département des <ulink + url="mailto:sales@apps2go.com">ventes </ulink> ou encore + du <ulink url="mailto:support@apps2go.com">support </ulink> + + Tél: (817) 431 8775 ou +1 817 431-8775 + </programlisting> + + </para> + + <para> +Contactez <ulink url="http://www.metrox.com">Metro Link</ulink> pour +une distribution a.out ou ELF Motif 2.1 pour FreeBSD. + </para> + + <para> +Cette distribution comprend : + <itemizedlist> + <listitem><para> +OSF/Motif manager, xmbind, panner, wsm. + </para></listitem> + + <listitem><para> +Kit de développement avec les fichiers +uil, mrm, xm, xmcxx, include et Imake. + </para></listitem> + + <listitem><para> +Les librairies a.out et ELF statiques et dynamiques (utilisables avec FreeBSD +3.0 et supérieur pour les librairies ELF et 2.2.8 et supérieur pour +les librairies a.out ). + + </para></listitem> + + <listitem><para> +Des applications de démonstration. + </para></listitem> + + <listitem><para> +Les pages de manuel préformattées + </para></listitem> + + </itemizedlist> + </para> + + <para> +Soyez sûr d'indiquer que vous voulez la version de FreeBSD de Motif +lors de la commande ! Des versions pour Linux sont également +vendues par <emphasis remap="metrox">Metro Link</emphasis>. La +distribution est disponible par téléchargement FTP ou sur un CDROM.</para> + + <para> +Contactez <ulink url="http://www.xig.com">Xi Graphics</ulink> pour une distribution a.out +Motif 2.0 pour FreeBSD. + </para> + + <para> +Cette distribution comprend : + <itemizedlist> + <listitem><para> +OSF/Motif manager, xmbind, panner, wsm. + </para></listitem> + + <listitem><para> +Les librairies a.out statiques et dynamiques (utilisables avec FreeBSD +2.2.8 et supérieur). + + </para></listitem> + + <listitem><para> +Kit de développement avec les fichiers +uil, mrm, xm, xmcxx, include et Imake. + </para></listitem> + + <listitem><para> +Des applications de démonstration. + </para></listitem> + + <listitem><para> +Les pages de manuel préformattées + </para></listitem> + + </itemizedlist> + </para> + + <para> +Soyez sûr d'indiquer que vous voulez la version de FreeBSD de Motif +lors de la commande ! Des versions pour BSDI et Linux sont également +vendues par <emphasis remap="xig">Xi Graphics</emphasis>. La +distribution comprend actuellement 4 disquettes. Dans le futur il y +aura un CD comme pour CDE.</para> + + </sect1> + + <sect1> + <title> Où puis-je avoir CDE pour FreeBSD? </title> + <para> +Contactez <ulink url="http://www.xig.com">Xi Graphics</ulink> pour une distribution +CDE 1.0.10 pour FreeBSD. Cela inclut Motif 1.2.5, et peut être utilisé +avec Motif 2.0. + </para> + + <para> +C'est une distribution CDROM uniforme pour FreeBSD et Linux. + </para> + </sect1> + + <sect1> + <title> Y a-t-il des serveurs X commerciaux haute-performance ?<!-- <label id="xig"> --> </title> + + <para> +Oui, +<ulink url="http://www.xig.com"> Xi Graphics </ulink> et <ulink +url="http://www.metrolink.com">Metro Link</ulink> +vendent leur produit Accelerated-X pour FreeBSD et autres systèmes +basés sur Intel. + </para> + <para>Le serveur X de Metro Link offre une configuration facile + grace a l'utilisation des outils de gestion des packages de FreeBSD, +supporte de multiples cartes vidéos et est distribué +en forme binaire seulement, par FTP. N'oublions pas de mentionner que +Metro Link offre se serveur a un prix raisonnable de 39$. + </para> + + <para>Metro Link vend aussi une version ELF et a.out de Motif + (voir ci-dessus).</para> + +<para><programlisting> + Pour plus d'informations + <ulink url="http://www.metrolink.com/">Serveur WWW de Metro Link </ulink> + + Ou les addresse de messageries du département des <ulink + url="mailto:sales@metrolink.com">ventes </ulink> ou encore + du <ulink url="mailto:tech@metrolink.com">support </ulink> + + Tél: (954) 938-0283 or +1 954 938-0283 + </programlisting> +</para> + +<para> +<ulink url="http://www.xig.com"> Xi Graphics</ulink> offre un serveur X haute +performances comportant une facilité de configuration et supportant +des cartes vidéos multiples. La distribution est sous forme binaire, +et est au format disquette pour FreeBSD et Linux. Xi Graphics offre +aussi un serveur haute performances pour les portables.</para> + + <para> +Il y a une "démo de compatibilité" disponible et gratuite de la +version 5.0. + </para> + + <para> +Xi Graphics vends aussi Motif et CDE pour FreeBSD (voir ci-dessus). + </para> + + <para> +<programlisting> +Pour plus d'informations : +<ulink url="http://www.xig.com/"> Xi Graphics WWW page </ulink> +ou par courrier électronique aux adresses suivantes : +<ulink url="mailto:sales@xig.com"> Ventes </ulink> +ou +<ulink url="mailto:support@xig.com"> Support </ulink> +ou encore par téléphone au +(800) 946 7433 ou +1 303 298-7478. +</programlisting> + </para> + </sect1> + + <sect1> + <title> Y a-t-il un système de bases de données pour FreeBSD? </title> + <para> +Oui ! Conetic Software Systems a porté leur système de +bases de données C/base and C/books pour FreeBSD 2.0.5 et plus, +et Sleepycat Software vend une version commerciale supportée de leur +librairie de base de données DB. + </para> + + <para> +Pour plus d'informations : +<ulink url="http://www.conetic.com/"> Conetic Software Systems </ulink> + +ou envoyez un courrier électronique à +<ulink url="mailto:info@conetic.com"> Information E-mail address </ulink> +et +<ulink url="http://www.sleepycat.com/"> Sleepycat Software </ulink> + </para> + </sect1> + </chapter> + diff --git a/fr_FR.ISO_8859-1/books/faq/hackers.sgml b/fr_FR.ISO_8859-1/books/faq/hackers.sgml new file mode 100644 index 0000000000..a783be2f81 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/faq/hackers.sgml @@ -0,0 +1,299 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + + <chapter id="hackers"> + <title>Pour les passionnés</title> + + <sect1> + <title>Que sont les SNAP et RELEASE</title> + + <para>Il y a actuellement 3 branches actives/semi-actives dans +<ulink url="http://www.freebsd.org/cgi/cvsweb.cgi">l'entrepot +CVS</ulink> des sources de FreeBSD: +<itemizedlist> + <listitem> + <para>RELENG_2_1_0 encore appelée 2.1-stable ou branche 2.1</para> + </listitem> + <listitem> + <para>RELENG_2_2 encore appelée 2.2-stable ou branche +2.2</para> + </listitem> + <listitem> + <para>HEAD encore appelée -current ou 3.0-current</para> + </listitem> + </itemizedlist></para> + + <para>HEAD n'est pas vraiment une branche, comparée aux deux +autres, c'est juste une valeur symbolique constante pour désigner +le répertoire de la version courante(ou version de développement), auquel +nous nous référerons sous le nom de -current.</para> + + <para>Actuellement -current est la branche de développement de +la version 3.0 résultant de la séparation de la branche 2.2-stable(RELENG_2_2) +en Novembre 1996.</para> + + <para>La branche 2.1-stable, RELENG_2_1_0, s'étant séparée de +-current en Septembre 1994.</para> + </sect1> + + <sect1> + <title>Comment créer ma propre version</title> + + <para>Pour créer votre propre version, vous devez effectuer trois +choses. Premièrement, vous devez avoir un noyau contenant le +gestionnaire <ulink +url="http://www.freebsd.org/cgi/man.cgi?vn">vn</ulink>. Ajoutez la +ligne suivante au fichier de configuration du noyau, puis reconstruisez le.</para> + + +<programlisting> + pseudo-device vn #Vnode driver (turns a file into a device) +</programlisting> + + <para>Ensuite, vous devez disposer de l'arbre CVS au +complet. Pour l'obtenir, vous pouvez utiliser <ulink +url="../handbook/synching.html">CVSUP</ulink> et remplissez votre fichier +de configuration de cvsup de la façon suivante:</para> + +<programlisting> +*default prefix=/home/ncvs +*default base=/a +*default host=cvsup.FreeBSD.org +*default release=cvs +*default delete compress use-rel-suffix + +## Main Source Tree +src-all +src-eBones +src-secure + +# Other stuff +ports-all +www +doc-all +</programlisting> + + <para>Ensuite lancez la commande <filename>cvsup -g +fichier_de_configuration_de_cvsup</filename> pour rapatrier tous les +sources sur votre machine</para> + + <para>Pour finir, vous devez disposez de beaucoup de place sur +vos disque pour compiler le tout. Disons que cela se trouve dans le +répertoire <filename>/tres/gros/systeme/de/fichiers</filename> et que +l'arbre CVS se trouve dans <filename>/home/ncvs</filename></para> + + +<programlisting> +setenv CVSROOT /home/ncvs # ou export CVSROOT=/hom/ncvs (pour du sh) +cd /usr/src/release +make release +BUILDNAME=3.0-MY-SNAP CHROOTDIR=/tres/gros/systeme/de/fichiers +</programlisting> + + <para>Une distribution complète sera alors crée dans le +répertoire <filename>/tres/gros/systeme/de/fichiers</filename> et vous +disposerez d'un programme d'installation ftp utilisant ce répertoire +par défaut. Vous pouvez aussi décider de compiler autre chose que la version -current +en donnant au paramètre <filename>RELEASETAG</filename> une autre +valeur. Par exemple pour compiler une version 2.2, il suffit de passer +la valeur <filename>RELEASETAG=RELENG_2_2</filename> à la ligne de +commande de make.</para> + + </sect1> + + <sect1> + <title>Comment créer une disquette d'installation personnalisée?</title> + + <para>Le processus de création, des disquettes d'installation +ainsi que des archives binaires, est automatisé par différentes cibles +dans le fichier <filename>/usr/src/release/Makefile</filename>. Ce +fichier doit etre votre point de départ pour plus d'informations. Bien sur, +cela veut dire que vous devrez faire un <quote>make world</quote> et +que cela demande beaucoup d'espace disque et de temps.</para> + + </sect1> + + <sect1> + <title><quote>make world</quote> remplace-t-il tous les binaires déja installés?</title> + + <para>Oui.Comme son nom le suggère,<quote>make world</quote> +recompile tout le système depuis les sources, donc vous pouvez etre +sur d'avoir un système sain et cohérent à la fin (cela peut prendre +énormément de temps pour y arriver).</para> + + <para>Si la variable <filename>DESTDIR</filename> est définie +lorsque vous éxecutez <quote>make world</quote> ou <quote>make +install</quote>, les binaires seront installés dans la même +arborescence que votre système sauf que la racine du nouveau système +sera <filename>${DESTDIR}</filename>. Différentes +combinations dans la modification des librairies partagées et dans les +programmes, peut entrainer une erreur du <quote>make +world</quote>.</para> + + </sect1> + <sect1> + <title>Lorsque le système démarre, il affiche <quote>(bus speed defaulted)</quote></title> + <para>Les cartes SCSI Adaptec 1542 permettent d'accéder à la +configuration de la vitesse du bus par logiciel. Les anciennes +versions du gestionnaire de périphérique 1542 essayaient de déterminer +la vitesse maximale utiliable et de configurer la carte à cette +valeur. Nous avons trouvé que cela pouvait casser certains systèmes, +donc vous devez définir l'option +<filename>TUNE_1542</filename> dans le fichier de configuration +du noyau, pour que cela soit actif. En l'utilisant sur des systèmes ou +la carte le supporte, cela vous permettra d'avoir une meilleur vitesse +pour vos disques, mais sur des système ne le supportant pas vous +obtiendrez des données corrompues.</para> + + </sect1> + + <sect1> + <title>Puis-je me tenir à jour par rapport à -current si j'ai un accès limité à l'Internet?</title> + <para>Oui, vous pouvez le faire sans télécharger l'arbre complet +des sources en utilisant la fonctionnalitée <ulink +url="../handbook/synching.html">CTM</ulink></para> + + </sect1> + + <sect1> + <title>Comment faire pour couper la distribution en fichiers de 240Ko?</title> + <para>Les systèmes BSD récents diposent d'une option +<quote><filename>-b</filename></quote> pour vous permettre de découper +les fichiers binaires en plusieurs parties</para> + <para>Voici un exemple, tiré de +<filename>/usr/src/Makefile</filename>.</para> + +<programlisting> +bin-tarball: + (cd ${DISTDIR}; \ + tar cf - . \ + gzip --no-name -9 -c | \ + split -b 240640 - \ + ${RELEASEDIR}/tarballs/bindist/bin_tgz.) +</programlisting> + </sect1> + <sect1> + <title>J'ai écrit une extension pour le noyau, comment l'incorporer?</title> + <para>Regardez la partie du handbook sur la façon de <ulink +url="../handbook/contrib.html">soumettre du code</ulink></para> + <para>Et encore merci pour tout.</para> + </sect1> + + <sect1> + <title>Comment sont détectées les cartes plugs and play ISA?</title> + + <para>Contribution de <ulink url="mailto:uhclem@nemesis.lonestar.org">Frank Durda IV</ulink></para> + + <para>Il y a un certains nombres de ports d'entrées/sorties sur +lesquels la plupart des cartes PnP répondent lorsqu'une machine +interroge le bus ISA. Donc, lorsque la routine de détection PnP +s'execute, elle interroge les cartes PnP sur ces ports pour savoir +lesquelles sont présentes. Dans ce cas toutes les cartes répondent en +indiquant leur modèle et la routine de détection reçoit alors une +valeur qui est soit <quote>oui</quote> soit rien. Au minimum un bit +est mis à 1 lors de la réponse. Alors le code de détection peut +essayer de dialoguer avec les cartes, graçe aux numéros de modèle de +cartes (définis par Microsoft/Intel), inférieurs à X pour leur dire de +s'arréter. Il vérifie alors qu'aucune autre carte ne répond à la +question précedente. Si la réponse est <emphasis>0</emphasis> alors il +considère qu'aucune carte n'a d'ID au dessus de X. Ensuite il +interroge le bus pour obtenir la liste des cartes sous +<quote>X</quote>. S'il en trouve alors il interroge le bus pour avoir +la liste des celles ayant un ID supérieur à X-(limit/4). Et répète +ainsi de suite l'algorithme, qui consiste à diviser l'intervalle de +recherche par deux. Avec cet algorithme, les cartes seront découvertes +avec un maximum d'itération de 2^64.</para> + + <para>Les Identifiants de cartes sont codés sur 32 bits + 8 bit +de checksum. Les 32 premiers bits représentent le code de la carte +pour le constructeur de cette carte. Il arrive de trouver plusieurs +cartes du meme constructeur ayant différents code de carte. L'idée de +coder sur 32 bits le nom du constructeur serait un peu +excessif.</para> + + <para>Les 32 bits de poids faibles sont le numéro de série de la +carte; l'adresse ethernet , ou quelque chose rendant la carte unique +par ce numéro. Le constructeur ne doit jamais produire une deuxième +carte ayant ce meme numéro tout en ayant le meme nombre représenté sur +les 32 premiers bits. Vous pouvez dons avoir plusieurs cartes du meme +type dans votre ordinateur , et l'ensemble des 64 bits permet de +rendre chacune unique.</para> + + <para>Les groupes de 32 bits ne peuvent en aucun cas etre tous +à zéro. Cela permet d'effectuer le <quote>OU</quote> pour afficher les +bits non nuls lors de la première recherche dicotomique.</para> + + <para>Lorsque le système à détecter toutes les cartes présentes, +ils les réactivent une à une, et recherche les ressources dont elles +ont besoin, quels sont les choix possibles pour les interruptions, +etc. Un <quote>scan</quote> de toutes les cartes est effectué pour +collecter toutes ces informations.</para> + + <para>Cette information est combinée avec l'information +recueillie des fichiers ECU se trouvant sur le disque dur ou dans le +BIOS. Le support ECU et BIOS du plug-and-play pour le matériel est +très simple, et les périphérique n'ont pas besoin d'etre vraiment +PnP. Mais en examinant les informations du BIOS et des fichiers ECU, +les routines d'interrogations peuvent permettre aux périphériques +PnP <quote>to avoid those devices the probe code cannot +relocate. </quote></para> + + <para>Alors les périphériques PnP sont encore interrogés, et +renvoient leur IRQ, adresse mémoire, ports d'entrée/sorties et +DMA. Les périphériques sont alors activés, en prenant en compte ces +valeurs, et le reste jusqu'au prochaine redémarrage du système. Bien +sur rien de vous empeche de les retirer, si le matériel le permet +:-).</para> + + <para>Ceci n'explique pas toute la complexité de détection, mais +c'est une explication simple du processus de détection.</para> + +<!-- <p>Microsoft took over some of the primary printer status ports to --> +<!-- do PnP, on the logic that no boards decoded those addresses for --> +<!-- the opposing I/O cycles. I found a genuine IBM printer board --> +<!-- that did decode writes of the status port during the early PnP --> +<!-- proposal review period, but MS said ``tough''. So they do a --> +<!-- write to the printer status port for setting addresses, plus that --> +<!-- use that address + <tt/0x800/, and a third I/O port for reading --> +<!-- that can be located anywhere between <tt/0x200/ and <tt/0x3ff/. --> + + </sect1> + <sect1> + <title>Est-ce que FreeBSD va supporter d'autres architectures matérielles?</title> + + <para>Différentes personnes sont interressées sur un support +multi-architecture pour FreeBSD, et certaines personnes sont en train +de porter FreeBSD sur la plateforme ALPHA, en coopération avec +DEC. Pour plus d'informations sur les nouvelles architectures utilisez +la mailling liste <ulink +url="mailto:<freebsd-platforms@FreeBSD.ORG>"><freebsd-platforms@FreeBSD.ORG></ulink> +</para> + </sect1> + + <sect1> + <title>J'ai besoin d'un <quote>major number</quote> pour un gestionnaire de périphérique que je viens d'écrire</title> + <para>Ceci dépend du fait que vous vouliez ou non rendre public ce +gestionnaire. Si vous le désirez, envoyez nous une copie code source +du gestionnaire et les modifications nécessaires à apporter au fichier +<filename>files.i386</filename>, un fichier de configuration et le +code du fichier <ulink +url="http://www.freebsd.org/cgi/man.cgi?MAKEDEV">MAKEDEV</ulink>nécessaire +pour créer les fichiers spéciaux dont le gestionnaire à besoin. Si +vous ne désirez pas rendre plublic le code, ou si vous ne pouvez pas à +cause de certaines restrictions de votre license, alors utilisez le +<quote>major number</quote> 32 (pour les gestionnaires de type +caractère) et le <quote>major number</quote> 8 (pour les gestionnaires +de type blocs), qui sont réservés à ce type de chose. Dans les deux +cas nous sommes interessés par votre gestionnaire, discutez à son +propos sur la mailling liste <ulink +url="mailto:<freebsd-hackers@FreeBSD.ORG>"><freebsd-hackers@FreeBSD.ORG></ulink>.</para> + + </sect1> + + </chapter> + diff --git a/fr_FR.ISO_8859-1/books/faq/hardware.sgml b/fr_FR.ISO_8859-1/books/faq/hardware.sgml new file mode 100644 index 0000000000..43deb6cabf --- /dev/null +++ b/fr_FR.ISO_8859-1/books/faq/hardware.sgml @@ -0,0 +1,478 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: 1.15 +--> + +<chapter id="hardware"> + <title>Compatibilité matérielle</title> + + <sect1> + <title>Quels sont les types de disques durs supportés par FreeBSD ?</title> + + <para>FreeBSD supporte les disques EIDE et SCSI (pour les contrôleurs + compatibles, voir la section suivante), ainsi que tous les disques + utilisant l'interface originale "Western Digital" (MFM, RLL, ESDI + et bien sûr IDE). + Quelques contrôleurs ESDI utilisant des interfaces propriétaires + peuvent ne pas marcher: utilisez les interfaces WD1002/3/6/7 et leurs + clones.</para> + </sect1> + + <sect1> + <title>Quels sont les contrôleurs SCSI supportés ?</title> + + <para>Voir la liste complète dans le + <ulink url="&url.handbook;install.html#INSTALL-HW">Handbook</ulink>.</para> + </sect1> + + <sect1> + <title>Quels sont les lecteurs CD-ROM supportés par FreeBSD ?</title> + + <para>N'importe quel lecteur SCSI connecté à un contrôleur supporté + est supporté.</para> + + <para>Les interfaces CD-ROM propriétaires suivantes sont aussi supportées: + <itemizedlist> + <listitem><para>Mitsumi LU002 (8bit), LU005 (16 bits) et FX001D + (16 bits double vitesse).</para></listitem> + <listitem><para>Sony CDU 31/33A</para></listitem> + <listitem><para>CD-ROM Sound Blaster Non-SCSI</para></listitem> + <listitem><para>CD-ROM Matsushita/Panasonic</para></listitem> + <listitem><para>CD-ROM ATAPI compatible IDE</para></listitem> + </itemizedlist> + </para> + + <para>Toutes les cartes non-SCSI sont connues pour être extrêmement lentes + par rapport aux lecteurs SCSI, et certains CDROM ATAPI peuvent ne pas + être pris en charge.</para> + + <para>A partir de la version 2.2, le CD-ROM FreeBSD de Walnut Creek + permet de démarrer directement FreeBSD depuis le CD.</para> + </sect1> + + <sect1> + <title>Est-ce que FreeBSD supporte les lecteurs ZIP ?</title> + + <para>FreeBSD supporte bien sûr les lecteurs ZIP SCSI de base + - <foreignphrase>out of the box</foreignphrase>. + Les lecteurs ZIP ne peuvent être réglés que pour marcher sur les cibles + SCSI d'adresse 5 ou 6, mais si le BIOS de votre adaptateur SCSI hôte + le permet, vous pourrez même démarrer à partir du ZIP. + Je ne sais pas quel adaptateur SCSI hôte vous permet de démarrer + depuis des cibles autres que 0 ou 1... regardez votre documentation + (et dites moi si cela marche pour vous).</para> + + <para>Les ZIP ATAPI (IDE) sont pris en charge par FreeBSD 2.2.6 + ainsi que par les versions ultérieures.</para> + + <para>FreeBSD 3.0-STABLE contient le support pour lecteur ZIP + sur port parallèle, mais pour cela, vous aurez à construire + un nouveau noyau avec support pour ppbus (Parallel Port Bus) + afin d'utiliser le ZIP. + Prendre le fichier de configuration LINT comme exemple.</para> + + <para>Regarder aussi cette note traitant <link linkend="jaz">des + disques amovibles</link>, ainsi que celle sur <link linkend="disklabel"> + le 'formatage'</link>.</para> + </sect1> + + <sect1> + <title>Est-ce que FreeBSD supporte JAZ, EZ et autres disques amovibles ?</title> + + <para>A part la version IDE du lecteur EZ, ce sont tous des + périphériques SCSI, alors pour FreeBSD, ils sont considérés comme des + disques SCSI, et le lecteur IDE EZ est considéré comme un lecteur IDE. + </para> + + <para><anchor id="jaz">Je ne suis pas sûr que FreeBSD supporte + correctemement un changement de media en cours de fonctionnement. + Vous devrez bien sûr démonter le lecteur avant l'échange, et vous + assurer que les unités externes soient allumées pendant le démarrage + du système de sorte que FreeBSD puisse les voir.</para> + </sect1> + + <sect1> + <title> Quelles sont les cartes séries multi-ports prises en charge par FreeBSD ?</title> + + <para>Une liste est disponible à la section + <ulink url="&url.handbook;install.html#INSTALL-HW">périphériques divers + </ulink> du handbook.</para> + + <para>A notre connaissance, certaines cartes clone sans marque + sont connues pour fonctionner, en particulier celles qui se disent + être compatibles AST.</para> + + <para>Regarder la page de manuel + <ulink url="http://www.freebsd.org/cgi/man.cgi?sio">sio</ulink> pour + plus d'informations sur la configuration de telles cartes.</para> + </sect1> + + <sect1> + <title>J'ai une souris bus inhabituelle. Comment la configurer ?</title> + + <para>FreeBSD supporte les souris bus et les souris bus InPort de + constructeurs tels que Microsoft, Logitech et ATI. Le contrôleur du bus + est compilé dans le noyau GENERIC par défaut. Si vous construisez un noyau + personalisé avec le contrôleur de souris bus, assurez-vous d'avoir bien + mis la ligne suivante dans le fichier de configuration du noyau : + + <programlisting> +device mse0 at isa? port 0x23c tty irq5 vector mseintr + </programlisting> + </para> + + <para>La souris bus vient souvent avec une interface dédiée. + Cela vous permet de mettre une adresse de port et un numéro + d'IRQ autres que ceux donnés ci-dessus. + Reportez-vous au manuel de votre souris et à la page de manuel + <ulink url="http://www.freebsd.org/cgi/man.cgi?mse">mse</ulink> + pour plus d'informations.</para> + </sect1> + + <sect1> + <title id="ps2mouse">Comment utiliser ma souris PS/2 (``port souris'' ou ``clavier'') ?</title> + + <para>Si vous utilisez une version de FreeBSD post-2.2.5, le pilote + nécessaire, psm, est inclu et activé dans le noyau. + Le noyau devrait détecter votre souris PS/2 au moment du démarrage.</para> + + <para>Si vous utilisez une version précédente mais assez récente de + FreeBSD (2.1.x ou mieux), alors vous pouvez simplement l'activer + dans le menu de configuration du noyau à l'installation, ou plus tard + avec -c à l'invite du démarrage (boot). Il est désactivé par défaut, + c'est pourquoi vous aurez à l'activer explicitement.</para> + + <para>Si vous utilisez une version plus ancienne du noyau, alors + vous aurez à ajouter la ligne suivante dans la configuration + de votre noyau, et compiler un nouveau noyau : + + <programlisting> +device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr + </programlisting> + </para> + + <para>Voir la <ulink url="&url.handbook;kernelconfig.html">section du + Handbook sur la configuration du noyau</ulink> si vous n'avez aucune + expérience dans la construction d'un noyau.</para> + + <para>Un fois que vous aurez un noyau détectant correctement psm0 au + moment du démarrage, assurez vous qu'une entrée pour psm0 existe bien + dans /dev. Vous pouvez le faire en tapant : + + <programlisting> +cd /dev; sh MAKEDEV psm0 + </programlisting> + </para> + + <para>une fois loggué sous root.</para> + </sect1> + + <sect1> + <title id="moused">Puis-je utiliser ma souris en dehors de X Window ?</title> + + <para>Si vous utilisez le pilote de console par défaut, syscons, vous + pourrez utiliser un curseur souris dans les consoles texte pour couper + et coller du texte. + Lancer le démon (de gestion de la) souris : moused, et déclencher + le curseur de souris dans la console virtuelle. + + <programlisting> +moused -p /dev/xxxx -t yyyy +vidcontrol -m on + </programlisting> + </para> + + <para>Où <filename>xxxx</filename> est le nom du périphérique souris et + <filename>yyyy</filename> le type de protocole pour la souris. + Voir la page de manuel + <ulink url="http://www.freebsd.org/cgi/man.cgi?moused">moused</ulink> + pour les types de protocoles supportés.</para> + + <para> Peut-être préférez-vous lancer le démon gérant la souris au + moment du démarrage du système. + Dans la version 2.2.1, positionnez les variables suivantes dans + <filename>/etc/sysconfig</filename>. + + <programlisting> +mousedtype="yyyy" +mousedport="xxxx" +mousedflags="" + </programlisting> + + Dans les versions 2.2.2 et plus, positionnez les variables + suivantes dans <filename>/etc/rc.conf</filename>. + + <programlisting> +moused_type="yyyy" +moused_port="xxxx" +moused_flags="" + </programlisting> + + A partir de la version 2.2.6 de FreeBSD, le démon souris + est capable de déterminer le type de protocole approprié + automatiquement à moins que votre souris série ne soit d'un modèle + relativement ancien. + Spécifiez ``<filename>auto</filename>'' comme protocole pour activer la + détection automatique.</para> + + <para>Quand le démon souris tourne, l'accès à la souris doit être + coordonné entre le démon souris et les autres programmes + comme X-Window. Se référer à <link linkend="x-and-moused">une autre + section</link> de ce document.</para> + </sect1> + + <sect1> + <title>Comment puis-je couper et coller du texte avec ma souris dans ma console texte ?</title> + + <para>Une fois que vous aurez réussi à lancer le démon souris + (voir <link linkend="moused">section précédente</link>), appuyez + en le maintenant sur le bouton 1 (bouton de gauche) et déplacez la + souris afin de sélectionner une partie du texte. Puis, appuyez + (clicquez) sur le bouton 2 (bouton du milieu) ou bouton 3 (bouton + de droite) pour le coller à l'endroit du curseur texte.</para> + + <para>Dans les versions 2.2.6 et plus, un clic sur le bouton 2 collera + le texte. Un clic sur le bouton droit ``étendra'' la partie de + texte sélectionné. + Si votre souris n'a pas de bouton du milieu, vous + pouvez l'émuler ou redéfinir les boutons en utilisant les + options de la souris. Se reporter à la page de référence + <ulink url="http://www.freebsd.org/cgi/man.cgi?moused">moused</ulink> + pour plus de détails.</para> + </sect1> + + <sect1> + <title>Ma souris a une roulette et des boutons ésotériques. Puis-je les utiliser sous FreeBSD ?</title> + + <para> Malheureusement, la réponse est: ``Cà dépend''. + Ces souris avec des fonctionnalités supplémentaires ont + besoin de pilotes spéciaux dans la majorité des cas. + Alors, à moins que le pilote de la souris ou que le + programme utilisateur ait un support spécifique pour cette + souris, la souris se comportera comme une souris standard 2 ou 3 + boutons.</para> + </sect1> + + <sect1> + <title>Comment utiliser la souris/trackball/touchpad de mon portable ? </title> + + <para>Se référer à <link linkend="ps2mouse">la réponse à la question + précédente,</link> ainsi qu'à cette section sur <link linkend="pao"> + les ordinateurs portables</link>.</para> + </sect1> + + <sect1> + <title>Quels types de lecteurs de bandes sont supportés ?</title> + + <para> FreeBSD supporte les lecteurs de bandes magnétique SCSI, + QIC-36 (avec une interface QIC-02) et QIC-40/80 (basés sur + l'interface Floppy). + Ceci inclut les lecteurs 8-mm (connus sous le nom d'Exabyte) et + lecteurs DAT. Les lecteurs QIC-40/80 sont connus pour être lents.</para> + + <para>Parmi les premiers lecteurs 8-mm, quelques-uns ne sont pas tout à + fait compatibles SCSI-2, et peuvent de ce fait ne pas très bien + marcher avec FreeBSD.</para> + </sect1> + + <sect1> + <title>FreeBSD supporte-t-il les changeurs de bandes ?</title> + + <para>FreeBSD 2.2 gère les changeurs SCSI en utilisant le périphérique + <ulink url="http://www.freebsd.org/cgi/man.cgi?ch(4)">ch</ulink> ainsi + que la commande + <ulink url="http://www.freebsd.org/cgi/man.cgi?chio" >chio</ulink>. + Pour avoir plus de détails sur le contrôle du changeur, lisez la page du + manuel <ulink url="http://www.freebsd.org/cgi/man.cgi?chio" >chio</ulink>. + </para> + + <para>Si vous n'utilisez pas + <ulink url="http://www.freebsd.org/cgi/ports.cgi?amanda">AMANDA</ulink> + ou un autre produit qui gère déjà les changeurs, + souvenez-vous qu'ils ne savent que déplacer une bande d'un + point à un autre. Par conséquent, vous devrez garder une + trace de l'emplacement dans lequel une bande est mise, ainsi que celui + où la bande courante devra revenir.</para> + </sect1> + + <sect1> + <title>Quelles sont les cartes son supportées par FreeBSD ?</title> + + <para>FreeBSD prend en charge les cartes son: SoundBlaster, + SoundBlaster Pro, SoundBlaster 16, Pro Audio Spectrum 16, + AdLib et Gravis UltraSound. + Il y a aussi un support limité pour les cartes MPU-401 et + compatible MIDI. + Les cartes conformes aux spécifications Microsoft Sound System + sont aussi supportées par l'intermédiaire du pilote pcm.</para> + + <note> + <para>Ceci n'est valable que pour les sons! + Ce pilote ne supporte pas les CD-ROMs, SCSI ou joysticks sur + ces cartes, excepté pour la SoundBlaster. + L'interface SCSI SoundBlaster et quelques CD-ROM non-SCSI sont + aussi supportés. + Mais vous ne pourrez pas démarrer depuis ces périphériques.</para> + </note> + </sect1> + + <sect1> + <title>Quels sont les cartes réseau supportées par FreeBSD ?</title> + + <para>Regarder la section <ulink url="&url.handbook;install.html#INSTALL-HW"> + cartes éthernet</ulink> du handbook pour une liste complète.</para> + </sect1> + + <sect1> + <title>Je n'ai pas de coprocesseur arithmétique. Est-ce un problème ?</title> + + <note> + <para>Cela ne touche que ceux qui ont un 386/486SX/486SLC - + toutes les autres machines en ont déjà un intégré dans la CPU.</para> + </note> + + <para>En règle générale, il n'y a pas d'inconvénient, mais il + existe des circonstances dans lesquelles cela peut causer + des problèmes aussi bien au niveau des performances qu'au niveau de la + précision du code d'émulation arithmétique (voir la section + <link linkend="emul">sur l'émulation FP</link>). + En particulier, le dessin de courbes sous X sera TRES lent. + Il est hautement recommandé d'acheter un coprocesseur arithmétique : + c'est quand même mieux avec !</para> + + <note> + <para>Certains coprocesseurs mathématiques sont meilleurs que d'autres. + Cela nous peine de le dire, mais personne n'a jamais été licencié + pour avoir acheté de l'Intel. + A moins que d'être sûr qu'ils fonctionnent avec FreeBSD, + méfiez-vous des clones !</para> + </note> + </sect1> + + <sect1> + <title>Quels autres périphériques la version 2.X supporte-t-elle ?</title> + <para>Lire le <ulink url="&url.handbook;install.html#INSTALL-HW">Handbook</ulink> + pour obtenir la liste des périphériques supportés.</para> + </sect1> + + <sect1> + <title>FreeBSD supporte-t-il le gestionnaire d'énergie de mon portable ?</title> + + <para>FreeBSD supporte l'APM sur certaines machines. + Regardez dans le fichier de configuration du noyau + <filename>LINT</filename>, et cherchez le mot-clef + <ulink url="http://www.freebsd.org/cgi/man.cgi?apm">APM</ulink>.</para> + </sect1> + + <sect1> + <title>Solutions de contournement pour des problèmes matériels particuliers.</title> + + <para>Cette section traite de solutions de contournement pour des + problèmes rencontrés par nos utilisateurs sur certains matériels + particuliers.</para> + <sect2> + <title>Les systèmes Micron sont suspendus au moment du démarrage.</title> + + <para> Certaines cartes mères Micron ont des implémentations + non-conformes de PCI BIOS, ce qui peut poser des problèmes + lorsque FreeBSD démarre car les périphériques PCI ne sont pas + configurés à l'adresse annoncée.</para> + + <para>Désactivez l'option "Système d'exploitation Plug and Play" + dans le BIOS pour contourner ce problème. + Des compléments d'informations peuvent être trouvés à + <ulink url="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron">"http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron"</ulink> + </para> + </sect2> + </sect1> + + <sect1> + <title>J'ai un nouveau contrôleur Adaptec, et FreeBSD ne le reconnait pas.</title> + + <para> Les nouvelles puces de la série Adaptec AIC789x sont supportées + dans le cadre du CAM SCSI qui démarre avec la 3.0. + Des patches pour la version 2.2-STABLE sont disponibles à + <ulink url="ftp://ftp.freebsd.org/pub/FreeBSD/cam/" > + ftp://ftp.freebsd.org/pub/FreeBSD/cam/ </ulink> + Une disquette d'amorce avec CAM est disponible à + <ulink url="http://www.freebsd.org/~abial/cam-boot/"> + http://www.freebsd.org/~abial/cam-boot/</ulink>. + Dans les deux cas, lisez le fichier README avant toute chose.</para> + </sect1> + + <sect1> + <title>J'ai un modem interne plug'n play, et FreeBSD ne le reconnait pas.</title> + + <para>Vous devez ajouter l'ID PnP du modem à la liste des ID PnP dans + le pilote série. + Pour activer le support Plug & Play, il faut compiler un nouveau + noyau avec <filename>controller pnp0</filename> dans le fichier de + configuration, puis redémarrer le système. Le noyau affichera alors + l'ID PnP de tous les périphériques qu'il trouvera. + Copier alors l'ID PnP du modem dans le tableau de + <filename>/sys/i386/isa/sio.c</filename>, vers la ligne 1200. + Cherchez la chaîne de caractère "SUP1310" dans la structure + "siopnp_ids[]" pour trouver le tableau. + Construire à nouveau le noyau, installer, redémarrer, et votre + modem devrait être reconnu.</para> + + <para>Vous pouvez configurer manuellement les périphériques PnP en + utilisant la commande `pnp' à la configuration au moment du démarrage, + avec une commande du style : + + <programlisting> +pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8 + </programlisting> + pour afficher le modem.</para> + </sect1> + + <sect1> + <title>Comment puis-je obtenir l'invite de commande ``boot:'' sur la console série ?</title> + + <para> + <itemizedlist> + <listitem><para> + Construire un noyau avec <filename>options COMCONSOLE</filename>. + </para></listitem> + <listitem><para> + Créer un fichier /boot.config avec pour seul contenu + <filename>-P</filename> + </para></listitem> + <listitem><para> + Déconnecter le clavier du système. + </para></listitem> + </itemizedlist> + </para> + + <para>Redardez <filename>/usr/src/sys/i386/boot/biosboot/README.serial + </filename> pour plus d'informations.</para> + </sect1> + + <sect1> + <title>Pourquoi ma carte réseau 3Com PCI ne marche pas avec mon Micron ?</title> + + <para>Certaines cartes mères Micron ont une implémentation non-conforme + du BIOS PCI qui ne configure pas les périphériques PCI à l'adresse + annoncée. + Cela cause des problèmes quand FreeBSD démarre.</para> + + <para> Pour contourner ce problème, désactiver l'option "Système + d'exploitation Plug and Play" dans le BIOS.</para> + + <para>Pour plus d'informations sur ce problème, allez voir à l'URL: + <ulink url="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron"> + http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron </ulink> + </para> + </sect1> + + <sect1> + <title>FreeBSD supporte-t-il les Multiprocesseurs Symétriques (SMP) ?</title> + + <para>SMP n'est supporté que dans la version 3.0-STABLE et les versions + suivantes.</para> + </sect1> + +</chapter> diff --git a/fr_FR.ISO_8859-1/books/faq/includes.sgml b/fr_FR.ISO_8859-1/books/faq/includes.sgml new file mode 100644 index 0000000000..c8681585bf --- /dev/null +++ b/fr_FR.ISO_8859-1/books/faq/includes.sgml @@ -0,0 +1,10 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + +<!-- book stores --> +<!ENTITY isbn.amazon 'http://www.amazon.com/exec/obidos/ASIN'> diff --git a/fr_FR.ISO_8859-1/books/faq/install.sgml b/fr_FR.ISO_8859-1/books/faq/install.sgml new file mode 100644 index 0000000000..2caf17faf8 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/faq/install.sgml @@ -0,0 +1,860 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + +<chapter id="install"> + <title>Installation</title> + + <sect1> + <title>Quels fichiers télécharger pour installer FreeBSD ?</title> + + <para> Vous n'avez généralement besoin que d'une image-disque, le +fichier <filename path="floppies/boot.flp">floppies/boot.flp</filename>, que vous copiez sur +une disquette 1.44 Mo et qui permet de démarrer pour +pouvoir télécharger le reste (l'installation prend en +charge votre connexion TCP/IP, votre lecteur de bandes, CDROM, disquettes, partitions DOS, tout ce +est nécessaire pour le reste de l'installation).</para> + + + <para>Si vous avez besoin de télécharger la distribution par +vous même (pour une installation depuis une partition DOS par +exemple), voici quels sont les fichiers à récupérer: +<itemizedlist> + <listitem> + <para> Tout le répertoire <filename path="bin/*">bin</filename></para> + </listitem> + <listitem> + <para> Tout le répertoire <filename +path="manpages/*">manpages</filename></para> + </listitem> + <listitem> + <para> Tout le répertoire <filename path="compat*">compat</filename></para> + </listitem> + <listitem> + <para> Tout le répertoire <filename path="doc/*">doc</filename></para> + </listitem> + <listitem> + <para> Tous les fichiers <filename +path="src/ssys.*">src/ssys.*</filename></para> + </listitem> + </itemizedlist> + </para> + + <para>Vous trouverez les instructions complètes pour cette procédure et un peu +plus au sujet de l'installation en général dans la section <ulink url="../handbook/install.html"> +installation de FreeBSD</ulink> du manuel.</para> + </sect1> + + + + <sect1> + <title>A l'aide ! L'image-disque de démarrage ne tient pas sur une seule disquette !</title> + + <para> Une disquette 3,5 pouces (1.44 Mo) peut contenir jusqu'à +1474560 octets de données. La taille du fichier image est exactement +1474560 octets.</para> + + <para>Les erreurs courantes concernant la création de la +disquette de démarrage sont les suivantes : +<itemizedlist> + <listitem> + <para> Vous n'avez pas téléchargé l'image-disque en mode +<command>binary</command> en utilisant FTP</para> + + <para>Certains clients FTP mettent par défaut le transfert en mode +<emphasis>ASCII</emphasis>, et essayent de changer le +caractère de fin de ligne reçu pour correspondre aux conventions utilisées +par le système client. Cela altère presque inévitablement le fichier +image. Vérifiez la taille du fichier image téléchargé: si elle n'est pas +<emphasis>exactement </emphasis> la même que sur le +serveur, alors le processus de téléchargement est suspect.</para> + +<para>Une solution simple : tapez <command>binary</command> à l'invite FTP, +après la connexion sur le serveur et avant le démarrage du +téléchargement de l'image.</para> + </listitem> + <listitem> + + <para> Vous avez utilisé la commande DOS +<command>copy</command> (ou une commande équivalente) pour transférer +l'image de démarrage sur la disquette.</para> + + <para> Les programmes comme <command>copy</command> ne +fonctionnent pas correctement avec les images, car ils ne +peuvent créer une disquette de démarrage. L'image est le contenu exact de la disquette, +piste à piste, et ne peut être +copiée sur la disquette comme un fichier normal. Vous devez la transférer sur la +disquette en mode brut {raw} en utilisant les outils de bas niveau {low-level} <command>fdimage</command> +ou <command>rawrite</command>. Ces outils sont décrits dans la section <ulink +url="../handbook/install.html">installation de FreeBSD</ulink> du manuel.</para> + </listitem> + </itemizedlist></para> + </sect1> + + + <sect1> + <title>Où sont les instructions pour installer FreeBSD ?</title> + + <para>Les instructions d'installation de FreeBSD se +trouvent dans la section <ulink url="../handbook/install.html"> +installation de FreeBSD</ulink> du manuel. +</para> + </sect1> + + + <sect1> + <title>De quoi ai-je besoin pour faire tourner FreeBSD ?</title> + + <para> Vous avez besoin d'un PC 386 ou mieux, avec 5Mo ou plus de mémoire vive (RAM) +et au moins 60Mo de disque dur. Il suffit d'une carte graphique MDA, +mais pour utiliser X11R6, une carte video VGA ou mieux est nécessaire.</para> + <para>Voir aussi la section <ulink url="hardware.html"> +compatibilité matérielle</ulink>.</para> + </sect1> + + + + <sect1> + <title>Je n'ai que 4Mo de mémoire vive. Puis-je installer FreeBSD ?</title> + + <para> FreeBSD 2.1.7 est la dernière version de FreeBSD que l'on +peut installer sur des systèmes avec 4Mo de mémoire +vive. Les nouvelles versions de FreeBSD, comme la version 2.2, ont +besoin d'au moins 5Mo de mémoire vive pour être installées sur un nouveau système.</para> + + <para>Toutes les versions de FreeBSD, y compris la version 3.0, +peuvent fonctionner avec 4Mo de mémoire +vive, mais ne peuvent pas exécuter le programme d'installation en 4Mo. + Vous pouvez ajouter de la mémoire vive supplémentaire pour le processus +d'installation, si vous voulez, et quand le système +fonctionne, revenir à 4Mo. Ou vous pouvez placer votre disque sur un système +disposant de plus de 4Mo, effectuer l'installation et l'échanger à nouveau.</para> + + <para>Il y a malgré tout des situations dans lesquelles +FreeBSD 2.1.7 ne peut s'installer avec 4Mo. Pour être exact : cette +version de n'installe pas avec 640Ko de mémoire de base et 3Mo de +mémoire étendue. Si votre carte mère peut +réallouer quelques blocs mémoire <quote>perdue</quote> +hors de la région entre 640Ko et 1Mo alors vous pourrez installer FreeBSD +2.1.7</para> + + <para> Regardez dans la configuration de votre BIOS +si vous disposez d'un option <quote>remap</quote>. Si oui, activez la. Vous devez +aussi désactiver la copie miroir de la mémoire ROM.</para> + + <para>Il est plus simple d'augmenter la mémoire vive à plus de +4Mo pour l'installation, construire un noyau contenant juste les options dont vous avez +besoin, puis revenir à une configuration avec 4Mo.</para> + + <para>Vous pouvez dans le pire des cas, installer la version +2.0.5 et effectuer une mise à jour de votre système en version +2.1.7 avec l'option <option>upgrade</option> du programme d'installation de la 2.1.7.</para> + + <para>Après l'installation, si vous construisez un noyau sur mesure, +cela tournera sans problème avc 4Mo. Certaines personnes +ont même réussi a démarrer sur un système disposant de 2Mo de mémoire +vive (bien sûr le système fut complétement inutilisable :-)).</para> + </sect1> + + <sect1> + <title>Comment créer ma propre disquette d'installation ?</title> + + <para>Actuellement il n'y a pas de solution pour créer *juste* +une disquette d'installation personnalisée. Vous devez créer une +distribution complète, qui contiendra votre disquette +d'installation. Le code se trouvant dans +<filename>/usr/src/release/floppies/Makefile</filename> peut +laisser supposer que vous pouvez créer votre disquette, +mais ce n'est pas le cas actuellement.</para> + + <para>Pour créer votre propre version, suivez les instructions +se trouvant <ulink url="custrel">là</ulink>.</para> + </sect1> + + + <sect1> + <title>Puis-je avoir plus d'un système d'exploitation sur mon PC ?</title> + + <para>Voyez la page du tutoriel sur la <ulink +url="&url.tutorials;multios/index.html">cohabitation de plusieurs systèmes d'exploitation</ulink>.</para> + </sect1> + + + + <sect1> + <title>Est-ce que Windows 95 peut coexister avec FreeBSD ? </title> + + <para> Installez en premier Windows 95, puis FreeBSD. Le +gestionnaire de démarrage de FreeBSD, vous permet de démarrer +indifféremment sous Windows 95 ou FreeBSD. Si vous installez Windows 95 en second, +il surchargera votre gestionnaire de démarrage sans même +poser une question. Si cela arrive, voir la section suivante.</para> + + </sect1> + + <sect1> + <title>Windows 95 a effacé mon gestionnaire de démarrage ! Comment le récupérer ?</title> + + <para> Vous pouvez ré-installer le gestionnaire de démarrage de +FreeBSD de deux manières : + +<itemizedlist> + <listitem> + <para>Sous DOS, allez dans le répertoire +<filename>tools</filename> de votre distribution FreeBSD et +cherchez un programme <filename>bootinst.exe</filename>. Il +vous l'exécutez ainsi:</para> + +<informalexample> +<screen> +c:\tools>bootinst.exe boot.bin +</screen> +</informalexample> + + + + <para> et le gestionnaire de démarrage sera +ré-installé</para> + </listitem> + + <listitem> + <para>Démarrez à nouveau sous FreeBSD avec la disquette +de démarrage et allez dans le menu <literal>Custom installation</literal>. +Choisissez <literal>Partition</literal> Sélectionnez le disque devant contenir +le gestionnaire de démarrage (probablement le premier) et +quand vous arrivez dans l'éditeur de partition, la première chose à faire +(c'est à dire n'effectuer aucun changement) sélectionnez <literal>(W)rite</literal>. Vous serez +interrogé pour confirmation, répondez <literal>yes</literal>, et quand vous obtenez +le menu de sélection du gestionnaire de +démarrage, assurez vous de bien sélectionner <literal>Boot manager</literal>. Cela +re-écrit le gestionnaire de démarrage sur le disque. Ensuite +quittez le programme d'installation et redémarrez à partir du disque dur normalement.</para> + </listitem> + </itemizedlist> +</para> + </sect1> + + + + <sect1> + <title>Peut-on installer FreeBSD sur un disque comportant des secteurs défectueux ?</title> + + <para>La gestion des secteurs défectueux (voir la commande <ulink +url="http://www.freebsd.org/cgi/man.cgi?bad144">bad144</ulink>) de +FreeBSD n'est pas fiable à 100% ; il serait plus juste de dire +que si vous disposez d'un disque IDE ou ESDI avec énormement de <ForeignPhrase>bad +blocks</ForeignPhrase>, alors FreeBSD n'est pas +pour vous ! En fait FreeBSD tourne sur des centaines de systèmes à base de disques IDE, il vaut +mieux essayer avant de vous décourager.</para> + + <para>Si vous avez un disque SCSI comportant des secteurs défectueux, +voyez <ulink url="#awre">cette réponse</ulink></para> + </sect1> + + + <sect1> + <title>Il se passe des choses étranges lorsque je démarre depuis la disquette d'installation !</title> + + <para>Si vous détectez des choses comme : un blocage de la +machine, un redémarrage inopiné de votre système avec la disquette +d'installation, posez vous les 3 questions suivantes :</para> + + <para><orderedlist> + <listitem> + <para>Avez-vous utilisé une disquette neuve, sans erreurs +(préférez une disquette sortie de la boîte plutôt qu'une disquette provenant +du dernier magazine oublié sous votre lit depuis trois ans) ?</para> + </listitem> + <listitem> + <para>Avez vous téléchargé l'image en mode binaire (ne +vous offusquez pas, même les meilleurs d'entre nous, +ont téléchargé des fichiers en mode ASCII au moins une fois) ? </para> + </listitem> + <listitem> + <para>Si vous utilisez des systèmes d'exploitation récents +comme Windows 95 ou Windows NT, avez vous arrété le système et +redémarré en DOS simple et honnête ? Il semble que ces systèmes peuvent interférer +avec des programmes +qui écrivent directement sur le matériel, comme c'est le cas des programmes de +création de disquette ; même en l'exécutant dans une fenêtre DOS +de windows cela peut causer ces problèmes.</para> + </listitem> + </orderedlist></para> + + <para>Certaines informations mentionnant que Netscape +pose des problèmes en téléchargeant l'image de la disquette de +démarrage, donc utilisez un client FTP différent si vous +pouvez.</para> + </sect1> + + + <sect1> + <title>Je n'arrive pas à installer à partir de la bande</title> + + <para>Si vous installez la version 2.1.7R à partir d'une +bande, vous devez créer la bande en utilisant un facteur de blocage de +10 (5120 octets). Le facteur de blocage par défaut de <filename>tar</filename> est 20 (10240 +octets), et les bandes crées en utilisant cette valeur par défaut +ne peuvent pas être utilisées pour installer la +version 2.1.7R ; avec ce type de bande vous obtiendrez une erreur disant +que la taille des enregistrements est trop grande.</para> + </sect1> + + + <sect1> + <title>Connecter deux systèmes FreeBSD par les ports parallèle (PLIP)</title> +<para>Trouvez un câble "laplink". Vérifiez que les deux ordinateurs +ont un noyau avec le support de pilote <filename>lpt</filename>.</para> + + <programlisting> + + $ dmesg | grep lp + lpt0 at 0x378-0x37f irq 7 on isa + lpt0: Interrupt-driven port + lp0: TCP/IP capable interface + </programlisting> + +<para>Installez le câble "laplink" sur les ports parallèlle.</para> + +<para>Configurez les paramètres de l'interface réseau pour +lp0 des deux côtés en tant que <username>root</username>.</para> + +<para>Par exemple, si vous voulez connecter l'ordinateur max avec moritz :</para> + + <programlisting> + max <-----> moritz +IP Address 10.0.0.1 10.0.0.2 + </programlisting> + +<para> sur max, démarrez : </para> + + + <programlisting> + # ifconfig lp0 10.0.0.1 10.0.0.2 + </programlisting> + +<para> sur moritz, démarrez : </para> + + + <programlisting> + # ifconfig lp0 10.0.0.2 10.0.0.1 + </programlisting> + +<para>C'est tout ! Lisez aussi les manpages +<citerefentry><refentrytitle>lp</refentrytitle><manvolnum>4</manvolnum></citerefentry> and +<citerefentry><refentrytitle>lpt</refentrytitle><manvolnum>4</manvolnum></citerefentry>.</para> + + +<para>Vous devez aussi ajouter les deux adresse dans <filename>/etc/hosts</filename> :</para> + + + <programlisting> + 127.0.0.1 localhost.my.domain localhost + 10.0.0.1 max.my.domain max + 10.0.0.2 moritz.my.domain moritz + </programlisting> + +<para>Pour vérifier le bon fonctionnement faire :</para> + +<para>sur max :</para> + + + <programlisting> +$ ifconfig lp0 +lp0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500 + inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000 + + +$ netstat -r +Routing tables + +Internet: +Destination Gateway Flags Refs Use Netif Expire +moritz max UH 4 127592 lp0 + + +$ ping -c 4 moritz +PING moritz (10.0.0.2): 56 data bytes +64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms +64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms +64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms +64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms + +--- moritz ping statistics --- +4 packets transmitted, 4 packets received, 0% packet loss +round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms + + </programlisting> + + </sect1> + + + <sect1> + <title>Peut-on effectuer une installation par le port parallèle (PLIP)</title> + + <para> Connectez les deux ordinateurs avec un cable parallèle "Laplink"</para> + <figure> + <title>Cable parallèle</title> +<informalexample> +<screen> + +----------------------------------------+ + |A-name A-End B-End Descr. Port/Bit | + +----------------------------------------+ + |DATA0 2 15 Data 0/0x01 | + |-ERROR 15 2 1/0x08 | + +----------------------------------------+ + |DATA1 3 13 Data 0/0x02 | + |+SLCT 13 3 1/0x10 | + +----------------------------------------+ + |DATA2 4 12 Data 0/0x04 | + |+PE 12 4 1/0x20 | + +----------------------------------------+ + |DATA3 5 10 Strobe 0/0x08 | + |-ACK 10 5 1/0x40 | + +----------------------------------------+ + |DATA4 6 11 Data 0/0x10 | + |BUSY 11 6 1/0x80 | + +----------------------------------------+ + |GND 18-25 18-25 GND - | + +----------------------------------------+ +</screen> +</informalexample> + </figure> + + <para>Voir aussi <ulink url="#pao">cette note</ulink> sur la page de FreeBSD pour les portables</para> + </sect1> + + + <sect1> + <title id="geometry">Quelle géométrie dois-je utiliser pour un disque ?</title> + + <para>(Par le mot "géométrie" d'un disque, nous pensons aux +nombres de cylindres, têtes et secteurs par pistes sur un disque - Nous +dirons par la suite C/H/S. C'est de cette façon que le BIOS des PC +arrive à écrire ou lire une zone du disque).</para> + + <para>Cela peut préter à confusion pour différentes raisons. +Premièrement, la <emphasis>géométrie physique</emphasis> d'un disque +SCSI ne veut rien dire, de la façon dont FreeBSD utilise les blocs +disques. En fait, on ne peut parler de <quote>la</quote> géométrie physique, +la densité des secteurs variant sur le disque -ce que les +fabricants appellent la <quote>vraie</quote> géométrie physique, c'est la géométrie +qu'ils ont détérminé, pour avoir le moins d'espace perdu. +Pour les disques IDE, FreeBSD voit en terme de C/H/S, mais tous les +disques récents convertissent cela en blocs eux-mêmes.</para> + + <para>Tout cela est, en fait, la <emphasis>géométrie logique +</emphasis> la réponse que le BIOS reçoit lorsqu'il demande <quote>quelle +est votre géométrie ?</quote> et qu'il utilise pour accéder au disque. Comme +FreeBSD utilise le BIOS pour démarrer, il est très important qu'elle +soit juste. En particulier, si vous avez plus d'un système +d'exploitation sur votre disque, ils doivent être d'accord +sur la géométrie, sinon vous rencontrerez de graves problèmes +au démarrage du système.</para> + + <para>Pour les disques SCSI, la géométrie à utiliser dépend +du support de translation étendu activé sur votre contrôleur +(ou encore appelé <quote>support pour les disques DOS >1Go</quote> ou +similaire). S'il n'est pas activé, utilisez N cylindres, 64 +têtes et 32 secteurs par pistes, ou 'N' est la capacité du disque en +Mo. Par exemple, pour un disque de 2Go vous devez utiliser 2048 +cylindres, 64 têtes et 32 secteurs par piste.</para> + + <para>Si cette option est active (c'est le cas la plupart du temps +pour permettre de passer outre certaines limitations de MSDOS) et que +le disque a une capacité de plus de 1Go, utilisez M cylindres, 63 têtes +(et *pas* 64), et 255 secteurs par piste, où M correspond à la capacité +en Mo divisé par 7.844238 (!). Donc, en prenant un disque de 2Go nous +obtenons 261 cylindres, 63 têtes et 255 secteurs par piste.</para> + + <para>Si vous n'êtes pas sûr de point, ou si +FreeBSD n'arrive pas à détecter la géométrie correctement au moment de +l'installation, la façon la plus simple de faire, est de créer +une petite partition DOS sur le disque. La géométrie correcte sera alors +détectée (et vous pourrez toujours retirer la partition DOS dans +l'éditeur de partitions si vous ne voulez pas la garder ou conservez la +pour la programmation de cartes réseau).</para> + + <para>Une autre solution est d'utiliser un outil disponible librement distribué avec +FreeBSD appelé <filename>pfdisk.exe</filename> (il se trouve dans +le répertoire <filename>tools</filename> du CDROM de FreeBSD ou sur +les sites ftp), qui permet de voir quelle géométrie utilisent les +autres systèmes sur ce disque. Vous pourrrez ensuite +entrer cette géométrie dans l'éditeur de partitions.</para> + </sect1> + + + <sect1> + <title>Y a-t-il des restrictions sur la façon de partitionner le disque ?</title> + + <para>Oui. Vous devez vous assurer que la partition +<quote><filename>/</filename></quote> <quote><filename>{root}</filename></quote> se trouve dans les 1024 premiers cylindres, +pour permettre au BIOS de trouver le noyau. (Notez que c'est une +limitation dûe au BIOS des PC et non pas à FreeBSD).</para> + + <para>Dans le cas d'une disque SCSI, cela implique que la +partition <quote><filename>/</filename></quote> <quote><filename>{root}</filename></quote> soit dans les 1024 premiers Mo (ou +dans les 4096 premiers si la translation est en place - voir la +question précédente). Pour un disque IDE, il faut qu'elle se trouve +dans les 504 premiers Mo.</para> + </sect1> + + + + <sect1> + <title>A propos des gestionnaires de disque ? Ou bien, j'ai un disque de grande capacité !</title> + + <para>FreeBSD reconnait le gestionnaire "Ontrack Disk Manager" et le tolère. +Les autres gestionnaires de disque ne sont pas supportés.</para> + + <para>Si vous voulez utiliser le disque uniquement avec FreeBSD, +vous n'avez pas besoin de gestionnaire de disque. Configurez +simplement le disque pour utiliser le maximum de place reconnue par le +BIOS (la plupart du temps 504Mo), et FreeBSD trouvera de lui même la +capacité de votre disque. Si vous utilisez un vieux disque avec +un controlleur MFM, vous devrez donner explicitement à FreeBSD le +nombre de cylindres à utiliser.</para> + + <para>Si vous voulez utiliser le disque avec FreeBSD et un autre +système d'exploitation, vous n'aurez pas besoin d'un gestionnaire de +disque: assurez vous que la partition de démarrage de FreeBSD et +les tranches pour les autres systèmes d'exploitation se trouvent dans +les 1024 premiers cylindres. Si vous êtes prudent, une partition de démarrage de 20Mo doit +suffire.</para> + </sect1> + + + <sect1> + <title id="missingos">Lors du démarrage de FreeBSD j'obtiens "Missing Operating System"</title> + <para>C'est le symptôme classique où FreeBSD et DOS, ou un autre +système d'exploitation, sont en conflit à propos de la <anchor +id="geometry2"> géométrie du disque. Vous devez alors +réinstaller FreeBSD, en faisant attention à toutes les informations +qui vous sont présentées.</para> + + </sect1> + + <sect1> + <title>Je ne peux pas aller plus loin que le message `F?' du gestionnaire de démarrage.</title> + <para>Ceci est un autre symptôme du problème décrit à la +question précédente. La géométrie trouvée par le BIOS et celle de +FreeBSD ne sont pas les mêmes. Si votre contrôleur ou votre +BIOS supporte la translation de cylindres (souvent indiquée comme "Support des disques >1Go"), +essayez de changer les +paramètres et réinstallez FreeBSD.</para> + </sect1> + + <sect1> + <title id="bigram">Je dispose de plus de 16Mo de RAM. Est-ce que cela peut poser un problème ?</title> + <para>Mis à part les problèmes de performances, non. FreeBSD 2.X +inclus des <quote>bounce buffers</quote> permettant à votre bus principal d'accéder +à plus de 16Mo de mémoire. (Notez que cela n'est vrai que pour les +périphériques ISA, et quelques périphériques EISA +ou VLB).</para> + + <para>Voyez aussi la section parlant des ordinateurs +<ulink url="#reallybigram">plus de 64Mo de RAM</ulink>, si vous avez autant de mémoire, ou si vous +utilisez un ordinateur Compaq ou un autre BIOS qui donne de mauvaises +informations sur la mémoire disponible.</para> + </sect1> + + <sect1> + <title>Dois-je installer tous les sources ?</title> + + <para>La plupart du temps, non. Malgré tout, nous vous +conseillons fortement d'installer, au minimum, les sources de +base (<filename>sbase</filename>) ainsi que les sources du noyau +(<filename>ssys</filename>). Il n'y a rien dans le système qui +nécessite la présence des sources, sauf si vous désirez <ulink +url="http://www.freebsd.org/cgi/man.cgi?config">reconfigurer</ulink> +le noyau du système. A l'exception du noyau, notre structure de +compilation est faite pour vous permettre de visualiser les sources +(même en lecture seule) et de construire alors de nouveaux +binaires. (En raison de la restriction des sources du noyau, nous vous +recommandons de monter les sources ailleurs que dans +<filename>/usr/src</filename> en créeant les liens symboliques +appropriés permettant de dupliquer la structure complète des +sources).</para> + + <para>En ayant les sources à votre disposition et en sachant +comment l'on construit un système avec, cela permettra d'avoir une façon +très simple pour mettre à jour votre système vers les prochaines +versions de FreeBSD.</para> + + <para>Pour n'installer qu'une partie des sources, utilisez le menu <literal> +Custom</literal> quand vous êtes dans le menu +<literal>Distributions</literal> du programme d'installation. Le script +<filename>src/install.sh</filename> peut installer aussi certains éléments des +sources, en fonction des arguments que vous lui passez.</para> + + </sect1> + + <sect1> + <title>Suis-je obligé de construire un nouveau noyau ?</title> + + <para>Construire un nouveau noyau, était encore, il y a quelque +temps, une étape à peu près obligatoire après l'installation de FreeBSD, mais les +nouvelles versions ont bénéficié d'un utilitaire de configuration du +noyau plus sympathique. Au démarrage de FreeBSD et après l'invite de démarrage +(<prompt>boot:</prompt>) utilisez le paramètre <option>-c</option> et vous aurez alors accès au +menu de configuration visuel, qui vous permet de configurer les +paramètres de la plupart des cartes ISA.</para> + +<para>Il est encore recommandé construire un nouveau noyau +contenant juste les pilotes dont avez besoin, seulement pour +économiser un peu de RAM, mais ce n'est plus une exigence stricte pour la +plupart des systèmes.</para> + + </sect1> + <sect1> + <title>Je réside en dehors des Etats-Unis. Puis-je utiliser le DES ?</title> + <para>Si la méthode de cryptage <emphasis>DES</emphasis> ne vous est pas absolument nécessaire, alors vous +pouvez utiliser le système de cryptage fourni par défaut avec FreeBSD +et qui vous apporte une bien meilleure sécurité, sans aucune +restriction d'exportation. Le cryptage des mots de passe par défaut de FreeBSD 2.0 est +maintenant basé sur <emphasis>MD5</emphasis>, qui est plus difficile à casser que <emphasis>DES</emphasis>, avec un +outil automatisé en raison de sa forte demande en temps de calcul, et qui +permet aussi d'utiliser des mots de passe plus longs. La seule raison +pour laquelle vous ne pouvez pas utiliser le cryptage basé sur +<emphasis>MD5</emphasis> est, si vous désirez utiliser la +même entrée du fichier des mots de passe sur des systèmes FreeBSD et +non-FreeBSD.</para> + <para>Comme l'algorithme de cryptage <emphasis>DES</emphasis> ne peut pas être +légalement exporté en dehors des Etats-Unis, tout utilisateur non +américain ne doit pas télécharger les logiciels l'incluant (se +trouvant dans le répertoire <filename>sec</filename> des sites FTP +américains)</para> + <para>Il y a cependant une librairie de remplacement disponible, +libcrypt, basée sur des sources écrit en Australie par David Burren. +Le code est maintenant disponible sur certains sites ftp miroirs en +dehors des Etats-Unis. Les sources, ainsi que les binaires des +programmes l'utilisant peuvent être téléchargés sur les sites ftp +suivants:</para> + <para><itemizedlist> + <listitem> + <para>Afrique du Sud: +<itemizedlist> + <listitem> + <para>ftp://ftp.internat.freebsd.org/pub/FreeBSD</para> + </listitem> + <listitem> + <para>ftp://storm.sea.uct.ac.za/pub/FreeBSD</para> + </listitem> + + </itemizedlist> +</para> + </listitem> + <listitem> + <para>Brésil: +<itemizedlist> + <listitem> + <para>ftp://ftp.iqm.unicamp.br/pub/FreeBSD</para> + </listitem> + </itemizedlist> +</para> + </listitem> + <listitem> + <para>Finlande: + <itemizedlist> + <listitem> + <para>ftp://nic.funet.fi/pub/unix/FreeBSD/eurocrypt</para> + </listitem> + </itemizedlist> +</para> + </listitem> + </itemizedlist> +</para> + <para>Cette distribution non-US peut être directement utilisée à la +place de la distribution américaine. Ce paquetage s'installe de la même +façon que le paquetage américain (regardez les notes d'installation du +paquetage pour plus de détails). Si vous désirez installer le cryptage +<emphasis>DES</emphasis>, vous devez l'installer le plus tôt possible, avant l'installation +de tout autre logiciel.</para> + <para>Les utilisateurs ne résidant pas aux Etats-Unis ne doivent +télécharger aucun programme de cryptage sur un site américain. Cela +pourrait entrainer, pour les responsables du site depuis lequel le +logiciel est téléchargé, de graves problèmes juridiques.</para> + + <para>Une distribution non-US de Kerberos est aussi en +cours de développement, et les versions courantes peuvent +généralement être obtenues depuis un site FTP anonyme +<ulink url="ftp://braee.ru.ac.za">braae.ru.ac.za</ulink></para> + + <para>Il existe aussi une liste de messagerie discutant de tous les +logiciels non-US de cryptage. Pour plus d'informations, +envoyez un email contenant le mot "help" dans le corps du message à +<ulink +url="mailto:majordomo@braae.ru.ac.za"><majordomo@braae.ru.ac.za></ulink></para> + + </sect1> + + <sect1> + <title>La disquette de démarrage se bloque sur le message "Probing Devices..."</title> + <para> Si vous disposez d'un disque ZIP ou JAZ, retirez-le et +recommencez. La disquette d'installation a des problèmes avec ce genre +de disque. Une fois le système installé, vous pouvez reconnecter le +disque. Si tout va bien ce problème sera fixé dans une version ultérieure.</para> + + </sect1> + + <sect1> + <title>J'obtiens le message "panic: cant mount root" lors du redémarrage de mon système après l'installation.</title> + + <para>Cette erreur indique un conflit entre les blocs de +démarrage du système et la connaissance du noyau sur les disques. +Cette erreur arrive fréquemment dans le cas d'un système disposant de +deux disques IDE, avec chaque disque installé en maître ou périphérique unique sur des +contrôleurs séparés, avec FreeBSD installé sur le contrôleur IDE secondaire. +Le programme de démarrage pense que le système est installé sur wd1 +(le second disque vu par le BIOS) alors que le noyau affecte wd2 au +premier disque du deuxième contrôleur. Après le test de tous les +périphériques, le noyau essaye de <quote>monter</quote> ce que le programme de +démarrage pense être le disque de démarrage, wd1, alors qu'il s'agit +en fait de wd2 et échoue.</para> + + <para>Pour résoudre ce problème, effectuez les opérations +suivantes : +<itemizedlist > + <listitem> + <para>Au message de démarrage tapez : +<command>1:wd(2,a)kernel</command> puis Entrée. Si le système +démarre, lancez la commande <command> echo "1:wd(2,a)kernel" > +/boot.config</command> pour affecter la bonne chaîne de +démarrage.</para> + + </listitem> + <listitem> + <para>Déplacez le disque FreeBSD sur le controleur primaire, +les disques sont alors vus de façon contigus.</para> + </listitem> + <listitem> + <para><ulink url="../handbook/kernelconfig.html">Reconstruisez +un noyau</ulink> en modifiant les lignes de configuration wd pour avoir: + + <programlisting> +controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr +disk wd0 at wdc0 drive 0 +# disk wd1 at wdc0 drive 1 # comment out this line + +controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr +disk wd1 at wdc1 drive 0 # change from wd2 to wd1 +disk wd2 at wdc1 drive 1 # change from wd3 to wd2 + +</programlisting> + Puis installez le nouveau noyau. Si vous avez déplacé +vos disques et vous voulez restaurer la configuration précédente, +placez les disques dans la +configuration désirée puis redémarrez. Votre système doit démarrer +correctement.</para> + </listitem> + </itemizedlist> +</para> + + </sect1> + <sect1> + <title>Quelles sont les limites mémoire ? </title> + + <para>Pour la mémoire, la limite est (en théorie) 4Go. +Un essai a été fait avec un Go ; vous ne pourrez probablement pas +acheter des PC i386 pouvant supporter plus que cela.</para> + + </sect1> + <sect1> + +<title>Quelles sont les tailles limites pour les systèmes de fichiers +FFS ?</title> + +<para>La taille maximum théorique d'un système de fichiers FFS est +de 8 téraoctets (2G blocs) ou de 16To avec la taille de bloc par +défaut de 8K. Il y a en pratique une limite logicielle à +1 téraoctet mais, avec quelques modifications, il est possible d'avoir +des systèmes de fichiers de 4 téraoctet (et il en existe).</para> + +<para>La taille maximum d'un fichier FFS est d'environ 1G blocs (4To), quand +la taille de bloc est de 4K.</para> + + <programlisting> + + + + taille de fichier maximum + ----------------------------------------- + 2.2.7 3.0 +taille de bloc -stable -current marche devrait marcher +-------------- ------- -------- ------ --------------- +4K 4T-1 4T-1 4T-1 4+T +8K 32+G 8T-1 32+G 16T-1 +16K 128+G 16T-1 128+G 32T-1 +32K 512+G 32T-1 512+G 64T-1 +64K 2048+G 64T-1 2048+G 128T-1 + + </programlisting> + + + +<para>Quand la taille du bloc est de 4K, l'adressage du bloc par indirection triple +fonctionne et la limite devrait être définie par le plus grand +numéro de bloc qui peut être reprété avec une +indirection triple (approximativement 1K^3 + 1K^2 + 1K), mais la limite +effective est en fait donnée par une valeur (erronée) de +1G-1 pour le nombre de blocs maximum. Cette valeur devraite être de 2G-1. +Il y a des bogues avec les blocs dont le numéro est voisin de 2G-1, +et ces blocs ne peuvent être adressés quand la taille du bloc est +de 4K. </para> + +<para>Pour les tailles de blocs de 8K et plus, tout devrait être limité +par la valeur de 2G-1 pour les numéros de blocs, mais l'est en fait par +la valeur maximum de 1G-1, hormis sous -stable, les blocs adressés par +indirection triple ne peuvent être atteints, la limite est donc +donnée par le plus grand numéro de bloc qui peut être +adressé par une double indirection (approximativement +(taille du bloc/4)^2 + (taille du bloc/4)), et dépasser cette limite +sous -current peut poser des problèmes. Utiliser la valeur correcte +de 2G-1 blocs posent à coup sûr des problèmes.</para> + + </sect1> + <sect1> + <title>Comment puis-je mettre des fichiers de 1To sur une disquette ?</title> + +<para>J'en ai plusieurs - virtuels - sur disquette :-). La taille +maximum d'un fichier n'a pas de lien étroit avec la dimension maximum +d'un disque. Un disque peut avoir jusqu'à un 1To. Il est +fonctionnellement possible d'avoir un fichier plus grand que le disque.</para> + +<para>L'exemple suivant crée un fichier de 8T-1 occupant 32K d'espace disque. +(3 blocs indirects et 1 bloc de données) sur une petite partition racine. Il +faut pour cela une version de la commande <command>dd</command> qui fonctionne +sur de gros fichiers.</para> + + <programlisting> + + +ttyv0:bde@alphplex:/tmp/q> cat foo +df . +dd if=/dev/zero of=z bs=1 seek=`echo 2^43 - 2 | bc` count=1 +ls -l z +du z +df . +ttyv0:bde@alphplex:/tmp/q> sh foo +Filesystem 1024-blocks Used Avail Capacity Mounted on +/dev/sd0a 64479 27702 31619 47% / +1+0 records in +1+0 records out +1 bytes transferred in 0.000187 secs (5346 bytes/sec) +-rw-r--r-- 1 bde bin 8796093022207 Sep 7 16:04 z +32 z +Filesystem 1024-blocks Used Avail Capacity Mounted on +/dev/sd0a 64479 27734 31587 47% / +ttyv0:bde@alphplex:/tmp/q> exit + + </programlisting> + +<para>Bruce Evans, September 1998</para> + + </sect1> + + </chapter> diff --git a/fr_FR.ISO_8859-1/books/faq/kernelconfig.sgml b/fr_FR.ISO_8859-1/books/faq/kernelconfig.sgml new file mode 100644 index 0000000000..230acdd002 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/faq/kernelconfig.sgml @@ -0,0 +1,147 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: 1.2 +--> + + <chapter id="kernelconfig"> + <title> + Configuration du noyau + <!--<label id="kernelconfig">--> + </title> + + <sect1> + <title> + J'aimerais personnaliser mon noyau. Est-ce difficile ? + <!--<label id="make-kernel">--> + </title> + + <para> + Pas du tout ! Jetez un coup d'oeil à + <ulink url="../handbook/kernelconfig.html"> + la section de la configuration du noyau du manuel de référence. + </ulink> + </para> + + <para> + NOTE : + Je vous recommande de faire une sauvegarde datée de votre noyau dans + <filename>kernel.YYMMDD</filename> dès que vous arrivez à tout faire marcher. + Ainsi, si jamais en jouant avec votre configuration du noyau, vous + mélangez tout, vous pourrez démarrer sur ce noyau plutôt que de repartir + depuis <filename>kernel.GENERIC</filename>. Ceci est particulièrement important si vous + démarrez actuellement depuis un contrôleur qui n'est pas supporté par le + noyau GENERIC (oui, c'est une expérience personelle). + </para> + </sect1> + + <sect1> + <title> + Ma compilation du noyau échoue car <filename>&hw&float</filename> + manque. + </title> + + <para> + Laissez-moi deviner. Vous avez supprimé + <ulink url="http://www.freebsd.org/cgi/man.cgi?npx(4)"> + npx0 + </ulink> + de votre fichier de configuration du noyau car vous n'avez pas de + coprocesseur arithmétique, c'est ça ? Faux ! :-). + Le périphérique <filename>npx0</filename> est *OBLIGATOIRE*. + Même si vous n'avez pas de coprocesseur arithmétique, vous + *devez* inclure le périphérique <filename>npx0</filename>. + </para> + </sect1> + + <sect1> + <title> + Conflits d'interruption avec le code multi-port série. + </title> + + <para> + Q. + Quand je compile le noyau avec du code multi-port série, cela me dit + que seul le premier port est examiné et le reste est ignoré à cause des + conflits d'interruption. Comment puis-je résoudre cela ? + </para> + + <para>R. + Le problème ici, est que FreeBSD a du code intégré pour éviter au noyau + de se planter à cause d'un conflit matériel ou logiciel. La façon de + fixer ce problème est d'ignorer le réglage des IRQ sur tous les + ports sauf un. Voici un exemple : + + <programlisting> + # + # Multiport high-speed serial line - 16550 UARTS + # + device sio2 at isa? port 0x2a0 tty irq 5 flags 0x501 vector siointr + device sio3 at isa? port 0x2a8 tty flags 0x501 vector siointr + device sio4 at isa? port 0x2b0 tty flags 0x501 vector siointr + device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointr + </programlisting> + </para> + </sect1> + + <sect1> + <title> + Comment puis-je activer le support des disques QIC-40/80 ? + </title> + + <para> + Vous supprimez le commentaire de la ligne suivante du fichier générique de + configuration (ou ajoutez la à votre fichier de configuration), ajoutez + un ``<filename>flags 0x1</filename>'' à la ligne + <ulink url="http://www.freebsd.org/cgi/man.cgi?fdc(4)"> + fdc + </ulink> et recompilez. + + <programlisting> +controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 flags 0x1 vector fdintr +disk fd0 at fdc0 drive 0 ^^^^^^^^^ +disk fd1 at fdc0 drive 1 +#tape ft0 at fdc0 drive 2 +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + </programlisting> + </para> + + <para> + Puis, vous créez un périphérique appelé + <filename>/dev/ft0</filename> + en allant dans le répertoire <filename>/dev</filename> et en lançant la commande + suivante : + </para> + + + <programlisting> + sh ./MAKEDEV ft0 + </programlisting> + + <para> + pour le premier périphérique. <filename>ft1</filename> pour le second, et ainsi de + suite. + </para> + + <para> + Vous aurez un périphérique appelé <filename>/dev/ft0</filename>, où vous pourrez + écrire par l'intermédiaire d'un programme spécial appelé + ``<filename>ft</filename>'' - Voir la page de manuel + <ulink url="http://www.freebsd.org/cgi/man.cgi?ft"> + ft + </ulink> + pour plus de détails. + </para> + + <para> + Les versions précédentes de <filename>-current</filename> ont aussi quelques + problèmes avec certaines cartouche ddfectueuses. Si vous avez + des problèmes où <filename>ft</filename> semble aller et venir indéfiniment, + essayez de récupérer la dernière version de <filename>ft</filename> depuis + <filename>/usr/src/sbin/ft</filename> dans <filename>-current</filename> et essayez le. + </para> + </sect1> + </chapter> + diff --git a/fr_FR.ISO_8859-1/books/faq/misc.sgml b/fr_FR.ISO_8859-1/books/faq/misc.sgml new file mode 100644 index 0000000000..31282d2eee --- /dev/null +++ b/fr_FR.ISO_8859-1/books/faq/misc.sgml @@ -0,0 +1,353 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + + + <chapter id="misc"> + <title> Questions diverses </title> + + <sect1> + <title> FreeBSD utilise beaucoup plus d'espace swap que Linux. pourquoi ? </title> + + <para> +Non. Vous voulez peut-être dire "pourquoi mon swap semble être plein ?". +Si cela est vraiment ce que vous voulez dire, c'est en fait parce que +mettre les choses dans le swap plutôt que les mettre de côté rend toujours +plus facile sa récupération que si le pager devait aller chercher à travers +tout le système de fichier afin de récupérer des blocs propres (non modifié) +d'un exécutable. + </para> + + <para> +La quantité actuelle de pages "sales" que vous pouvez avoir dans le +noyau en même temps n'est pas réduit, les pages propres sont déplacées +si nécessaires. + </para> + + </sect1> + + <sect1> + <title> Pourquoi utiliser (qu'est-ce) a.out et les formats exécutables ELF ? </title> + + + <para> +Afin de comprendre pourquoi FreeBSD utilise le format +<emphasis remap="tt">a.out</emphasis>, vous devez d'abord savoir +quelques trucs sur les 3 formats exécutables courant "dominants" pour +UNIX : + + <itemizedlist> + <listitem> + <para> +<ulink url="http://www.freebsd.org/cgi/man.cgi?a.out(5)">a.out </ulink> Le +vieux et `classique' format des objets unix. Il utilise un court et +compact en-tête avec un nombre magique au début, qui est souvent +utilisé pour caractériser le format (voir <ulink +url="http://www.freebsd.org/cgi/man.cgi?a.out(5)" >a.out(5)</ulink> +pour plus de détails). Il contient trois segments chargés : .text, +.data, et .bss plus une table de symboles et une table de chaînes. + </para> + </listitem> + + <listitem> + <para><emphasis remap="bf">COFF</emphasis> Le formats des +objets SVR3. L'en-tête comprend une table de section, de telle sorte +que vous avez plus de sections que juste .text, .data, et .bss. + </para> + </listitem> + + <listitem> + <para><emphasis remap="bf">ELF</emphasis> Le successeur de +<emphasis remap="tt">COFF</emphasis>, qui permet des sections +multiples et des valeurs possibles de 32 bits et 64 bits. Un +inconvénient majeur : <emphasis remap="tt">ELF</emphasis> a aussi été +conçu en supposant le fait qu'il y qu'un seul ABI par architecture +système. Cette hypothèse est assez incorrecte, et même dans le monde +SYSV (qui a au moins 2 ABIs : SVR4, Solaris, SCO) cela ne se vérifie +pas. + </para> + + <para> +FreeBSD essaye de contourner ce problème en +fournissant un utilitaire pour <emphasis +remap="em">marquer</emphasis> un exécutable connu <emphasis +remap="tt">ELF</emphasis> avec des informations sur l'ABI qui va avec. +Regardez la page de manuel pour <ulink +url="http://www.freebsd.org/cgi/man.cgi?brandelf" >brandelf</ulink> +pour plus d'informations. + </para> + </listitem> + </itemizedlist> +</para> + + <para> +FreeBSD vient du camp "classique" et utilise traditionnellement le +format +<ulink url="http://www.freebsd.org/cgi/man.cgi?a.out(5)" >a.out</ulink>, +une technologie esssayée et éprouvée à travers des générations de +releases BSD. Bien qu'il a aussi été quelques fois possible de +construire et de lancer des binaires natifs <emphasis remap="tt">ELF</emphasis> (et noyau) +sur un système FreeBSD, FreeBSD a initiallement résisté à la "pression" +de passer à <emphasis remap="tt">ELF</emphasis> comme format par défaut. +Pourquoi ? Bien, quand le camp Linux ont fait leur difficile +transition vers <emphasis remap="tt">ELF</emphasis>, +il ne suffisait pas de fuir le format exécutable +<emphasis remap="tt">a.out</emphasis>. +mais leur mécanisme de librairies partagées +basé sur des table de sauts inflexible ce +qui rendait la +construction de librairies partagées difficiles pour les +vendeurs et développeurs. +<!-- +it was not so much to flee the a.out executable +format as it was their inflexible jump-table based shared library mechanism, +which made the construction of shared libraries very difficult for vendors and +developers alike +--> +Depuis +comme les outils <emphasis remap="tt">ELF</emphasis> offrent une solution +au problème des librairies partagées et semblent +en général perçus comme "la voie du progrès" de +toute façon, le coût de migration a été +entendu comme nécessaire, et la transition a +été réalisée. + + </para> + + <para> +Dans le cas FreeBSD, notre mécanisme de librairie partagée se rapproche +plus des style de mécanisme de librairie partagée des +<emphasis remap="tt">SunOS</emphasis> de Sun, et de la sorte, est très simple à utiliser. +Quoiqu'il en soit, à partir de 3.0, FreeBSD supportera officiellement +les binaires <emphasis remap="tt">ELF</emphasis> comme format par défaut. Même si les +formats exécutables <emphasis remap="tt">a.out</emphasis> nous ont beaucoup servis, les gens du GNU +auteurs des outils de compilation que nous utilisons ont arrêté leur +supports pour le format <emphasis remap="tt">a.out</emphasis>. +Cela nous a forcé à maintenir des versions divergentes du compilateur et +de l'éditeur de liens, et nous a empêché de bénéficier des +derniers efforts du développement GNU. Et puis, les demandes de +ISO-C++, notemment pour les constructeurs et les destructeurs, +nous ont aussi conduit à supporter de l' +<emphasis remap="tt">ELF</emphasis> natif pour les futures release de FreeBSD.</para> + </sect1> + + <sect1> + <title> Pourquoi chmod ne veulent pas changer les permissions sur les liens symboliques ? </title> + + + <para> +Vous devez utiliser soit ``<emphasis remap="tt">-H</emphasis>'' ou +``<emphasis remap="tt">-L</emphasis>'' ensemble avec +l'option ``<emphasis remap="tt">-R</emphasis>'' pour que cela marche. +Regardez les pages de manuels de +<ulink url="http://www.freebsd.org/cgi/man.cgi?chmod" >chmod</ulink> et +<ulink url="http://www.freebsd.org/cgi/man.cgi?symlink" >symlink</ulink>. + </para> + + <para> +<emphasis remap="bf">ATTENTION</emphasis> l'option +``<emphasis remap="tt">-R</emphasis>'' fait un chmod +<emphasis remap="bf">RECURSIF</emphasis> +<emphasis remap="tt">chmod</emphasis>. Faites attention en spécifiant +le répertoire +ou les liens symboliques vers les repertoires où vous lancerez +<emphasis remap="tt">chmod</emphasis>. Si vous voulez changer les permissions +d'un répertoire référencé par un symlink, utiliser +<ulink url="http://www.freebsd.org/cgi/man.cgi?chmod" >chmod</ulink> +sans aucune option et suivre le lien symbolique avec un slash final +(``<emphasis remap="tt">/</emphasis>''). Par exemple, si +``<emphasis remap="tt">foo</emphasis>'' est un lien +symbolique vers le répertoire ``<emphasis remap="tt">bar</emphasis>'', +et que vous voulez changer les +permissions de ``<emphasis remap="tt">foo</emphasis>'' +(actuellement ``<emphasis remap="tt">bar</emphasis>''), +vous devrez sans doute faire quelque chose comme : + <programlisting> +chmod 555 foo/ + </programlisting> + + </para> + + <para> +Avec un slash final, +<ulink url="http://www.freebsd.org/cgi/man.cgi?chmod" >chmod</ulink> +suivra le lien symbolique, ``<emphasis remap="tt">foo</emphasis>'', pour changer les droits sur +le répertoire ``<emphasis remap="tt">bar</emphasis>''.</para> + + </sect1> + + <sect1> + <title> Pourquoi les noms de logins sont <emphasis remap="bf">encore</emphasis> restreints à 8 caractères ? </title> + + + <para> +Vous pouvez penser qu'il est assez simple de changer +<emphasis remap="bf">UT_NAMESIZE</emphasis> +et de reconstruire tout le monde, et que tout marcherait. +Malheureusement, il y a souvent une escouade d'applications et +d'utilitaires (y compris les outils systèmes) qui ont codé en dur les +petits nombres (pas toujours "8" ou "9", mais d'autres plus étranges +comme "15" ou "20") dans les structures et les buffers. Non seulement cela +vous donnera des fichiers logs qui seront altérés (à cause des longueurs +des variables enregistrés là où des enregistrement de taille fixées sont +attendus), mais cela peut planter les clients NIS de Sun, et +potentiellement causer d'autres problèmes lors de l'interaction avec +d'autres systèmes UNIX. + </para> + + <para> +Dans FreeBSD 3.0 et plus, la longueur maximale des noms a été +augmentée à +16 caractères et tous ces divers utilitaires avec des tailles de noms codés +en dur ont été trouvés et corrigés. Le fait que cela touche tant de +domaines du système explique en fait pourquoi le changement n'a pas été +fait avant la 3.0. + </para> + + + <para> +Si vous êtes absolument confiant dans votre habileté à trouver et à +corriger ces sortes de problèmes par vous-même quand ils arrivent, vous +pouvez augmenter la taille des noms de login dans les releases +précédentes en éditant +/usr/include/utmp.h et en changeant en fonction de la taille que vous +voulez donner, la variable UT_NAMESIZE. Vous devez aussi mettre à jour la +variable MAXLOGNAME dans /usr/include/sys/param.h pour correspondre au +changement de UT_NAMESIZE. Au final, si vous construisez depuis les +sources, n'oubliez pas que /usr/include est mis à jour à chaque fois ! +Changer les fichiers appropriés dans /usr/src/... à la place. + </para> + + </sect1> + + <sect1> + <title>Puis-je lancer des binaires DOS sous FreeBSD?</title> + + + <para> +Oui, à partir de la version 3.0, vous pouvez utiliser +<emphasis remap="tt">rundos</emphasis> l'émulateur DOS de BSDI, +qui a été intégré et perfectionné. +Envoyez un courrier électronique à +<ulink url="mailto:freebsd-emulation@freebsd.org"> la liste de discussion sur les émulations de FreeBSD</ulink> +si cela vous interesse de vous joindre à cet effort en progression. + + </para> + + <para> +Pour les systèmes pre-3.0, il y a un bel utiltaire appelé +<ulink url="http://www.freebsd.org/cgi/ports.cgi?^pcemu" >pcemu</ulink> +dans la collection de pports, qui émule un 8088 et assez de services +BIOS pour pouvoir lancer des applications DOS en mode texte. Cela requiert +le système X Windows (fourni comme XFree86).</para> + </sect1> + + <sect1> + <title> Qu'est ce ``<emphasis remap="tt">sup</emphasis>'', et comment l'utilise je ? </title> + + + <para> +<ulink url="http://www.freebsd.org/cgi/ports.cgi?^sup" >SUP</ulink> +veut dire Software Update Protocol, et a été développé par CMU +pour pouvoir synchroniser leurs arbres de développement. Nous l'utilisons +pour garder les sites distants en synchronisation avec nos sources +centraux de développement + </para> + + <para> +SUP n'est pas très ami avec la bande passante et a été retiré. La méthode +actuelle recommandé pour pouvoir garder vos sources à jour est +<ulink url="../handbook/synching.html" >Handbook entry on CVSup</ulink></para> + + </sect1> + + <sect1> + <title>Jusqu'à quel point FreeBSD est-il cool ?</title> + + + <para> + <!-- ca faut que je retraduise ce bout... --> +Q. Quelqu'un a-t-il déjà fait des tests de température de FreeBSD ? +Je sais que Linux tourne moins chaudement que DOS, mais je n'ai jamais +vu aucune mention sur FreeBSD. Ca semble tourner vraiment très +chaudement. + + </para> + + <para> +A. Non, mais nous avons effectué de nombreux tests gustatifs sur des +volontaires ayant les yeux bandés et aussi 250 microgrammes de +LSD-25 administré préalablement. 35%des volontaires ont dit +que FreeBSD avait un goût d'orange, alors que Linux avait un goût +de purple haze. Aucun des groupes n'a mentionné une variance de +température particulière (si je me souviens bien). +Nous avons de toute façon dû jeter tous les résultats quand +nous nous sommes aperçu que de nombreux volontaires s'étaient +promené en dehors de la salle durant les tests, faussant ainsi les +résultats. Je pense que la plupart des volontaires sont à +présent chez Apple, travaillant pour leur nouveau GUI 'scratch and +sniff'. C'est un drôle de monde dans lequel nous vivons ! + + </para> + + <para> +Sérieusement, FreeBSD et Linux utilisent tous les deux l'instruction +``<emphasis remap="tt">HLT</emphasis>'' (halt) quand le système est idle de telle sorte à baisser +leur consommation d'énergie et donc la chaleur que cela génère. Et aussi, +si vous avez APM (automatic power management) configuré, alors FreeBSD +peut aussi mettre le CPU dans un mode basse énergie.</para> + + </sect1> + + <sect1> + <title>Qui est-ce qui fait grésiller mes banques mémoires ?</title> + + + <para> +Q. Y a t il quelque chose d'"étrange" que fait FreeBSD quand il compile le +noyau qui pourrait faire que la mémoire fasse un grésillement ? +Quand ça compile (et pour un bref moment après avoir reconnu le lecteur de +disquette au démarrage), un étrange grésillement émane dpuis ce qui semble +être les banques mémoire. + </para> + + <para> +A. Oui! Vous verrez des fréquentes références aux "démons" dans la +documentation BSD, et ce que les gens ne savent pas, c'est que cela se +réfère aux entités non-corporelle qui possède à présent votre ordinateur. +Le grésillement venant de la mémoire est en fait le murmure échangé entre +les démons lorsqu'ils débattent sur les différentes tâches de +l'administration système. + </para> + + <para> +Si le bruit vous parvient, un bon ``<emphasis remap="tt">fdisk /mbr</emphasis>'' +depuis le DOS vous en débarassera, mais ne soyez pas surpris s'il +réagissent et qu'ils essayent de vous contrer. De plus, si jamais à un +moment de l'opération, vous entendez la voix satanique de Bill Gates +vous parvenant du haut-parleur interne, continuez, et ne regardez jamais +en arrière ! +Délivré de l'influence contre-balançante des démons BSD, les démons +jumeaux de DOS et Windows pourront alors prendre le contrôle totale de +votre machine jusqu'à la damnation éternelle de votre âme. + +S'il fallait choisir, je pense que je préfèrerais m'habituer au +grésillement !</para> + + </sect1> + + <sect1> + <title>Que veut dire 'MFC' ?</title> + + <para> +MFC est un acronyme pour 'Merged From -CURRENT.' C'est utilisés dans +les logs CVS pour noter quand un changement a migré depuis un +CURRENT vers une branche STABLE + </para> + </sect1> + </chapter> + diff --git a/fr_FR.ISO_8859-1/books/faq/network.sgml b/fr_FR.ISO_8859-1/books/faq/network.sgml new file mode 100644 index 0000000000..67645d9612 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/faq/network.sgml @@ -0,0 +1,1588 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + + + <chapter id="network"> + <title>Réseaux</title> + + <sect1> + <title>Où puis-je trouver des informations sur le ``boot sans disque''? </title> + + + <para> +Le ``boot sans disque'' veut dire que la machine sous FreeBSD est bootée depuis le +réseau, et lit les fichiers nécessaires depuis un serveur et non depuis +son disque dur. Pour plus de détails, lisez <ulink url="../handbook/diskless.html"> la section du Handbook sur le Diskless booting </ulink> + </para> + + </sect1> + + <sect1> + <title> Une machine sous FreeBSD peut-elle être utilisée comme routeur dédié ? </title> + + + <para> +Les standards de l'Internet et de bonnes pratiques techniques nous +interdisent de faire par défaut du routage de paquets avec +FreeBSD. Mais vous pouvez néamoins activer cette fonctionnalité en +changeant la variable suivante à <emphasis remap="tt">YES</emphasis> +dans <ulink url="http://www.freebsd.org/cgi/man.cgi?rc.conf"> rc.conf</ulink>: + <programlisting> +gateway_enable=YES # L'hote agira comme routeur s'il est positionne a YES + </programlisting> + + </para> + + <para> +Cette option mettra la variable <ulink url="http://www.freebsd.org/cgi/man.cgi?sysctl">sysctl</ulink> +<emphasis remap="tt">net.inet.ip.forwarding</emphasis> à <emphasis remap="tt">1</emphasis>. + + </para> + + <para> +Dans la plupart des cas, vous aurez aussi à lancer un processus de routage +afin de renseigner les autres systèmes sur votre routeur. +FreeBSD est fourni avec le démon de routage standard BSD +<ulink url="http://www.freebsd.org/cgi/man.cgi?routed" >routed</ulink>, +ou pour des situations plus complexes, vous pouvez essayer <emphasis remap="em">GaTeD</emphasis> (disponible par FTP depuis <emphasis remap="tt">ftp.gated.Merit.EDU) </emphasis> +qui supporte FreeBSD depuis 3_5Alpha7. + + </para> + + <para> +Nous nous devons de vous prévenir que lorsque FreeBSD est +configuré de cette manière, il ne correspond pas tout à fait +aux requis standards de l'Internet sur les routeurs. Néamoins, +il s'en rapproche asez pour un usage ordinaire. + + </para> + </sect1> + + <sect1> + <title> Puis-je connecter ma machine sous Win95 à l'Internet via FreeBSD ? </title> + + + <para> +Typiquement, les gens qui posent cette questions sont ceux qui ont 2 PC +à la maison, un avec FreeBSD et un avec Win95. L'idée est d'utiliser +la machine sous FreeBSD pour se connecter à l'Internet et puis +pouvoir ensuite accéder à l'Internet depuis la machine sous Windows 95 +via la machine sous FreeBSD. +Ce n'est en réalité qu'un cas particulier de la question précédente. + </para> + + <para> +Il y a un document très pratique qui explique comment configurer +FreeBSD comme <ulink url="http://www.ssimicro.com/~jeremyc/ppp.html" >routeur par connexion PPP</ulink> + + </para> + + <para> +<emphasis remap="bf">NOTE:</emphasis> +Cela requiert que vous ayez au moins deux adresses IP fixes, et +probablement 3 ou plus, cela dépend du travail que vous voulez effectuer +pour pouvoir mettre en place la machine sous Windows. +Comme alternative, si vous n'avez pas d'adresse IP fixe, vous pouvez +utiliser une des adresses IP privés et installer des <emphasis remap="bf">proxies</emphasis> +comme +<ulink url="http://squid.nlanr.net/Squid/">SQUID</ulink> et +<ulink url="http://www.tis.com/">le TIS firewall toolkit</ulink> +sur la machine sous FreeBSD. + + </para> + + <para> +Voir aussi la section sur +<ulink url="http://www.freebsd.org/cgi/man.cgi?natd"> natd </ulink>. + </para> + + </sect1> + + <sect1> + <title> Pourquoi la recompilation du dernier BIND de ISC échoue-t-elle ? </title> + + + <para> +Il y a un conflit entre le fichier ``<emphasis remap="tt">cdefs.h</emphasis>'' +de la distribution et celui fourni par FreeBSD. +Vous n'avez qu'à enlever +<emphasis remap="tt">compat/include/sys/cdefs.h</emphasis>. + + </para> + </sect1> + + <sect1> + <title>FreeBSD supporte-t-il SLIP et PPP?</title> + + <para> +Oui, regardez les pages de manuel +<ulink url="http://www.freebsd.org/cgi/man.cgi?slattach" >slattach</ulink>, +<ulink url="http://www.freebsd.org/cgi/man.cgi?sliplogin">sliplogin</ulink>, +<ulink url="http://www.freebsd.org/cgi/man.cgi?pppd">pppd</ulink> et +<ulink url="http://www.freebsd.org/cgi/man.cgi?ppp">ppp</ulink>. +<emphasis remap="tt">pppd</emphasis> et <emphasis remap="tt">ppp</emphasis> +permettent les connexions entrantes et sortantes +<ulink url="http://www.freebsd.org/cgi/man.cgi?sliplogin" >Sliplogin</ulink> ne peut s'utiliser qu'avec des connexions entrantes +et +<ulink url="http://www.freebsd.org/cgi/man.cgi?slattach" >slattach</ulink> qu'avec des connexions sortantes. + + </para> + + <para> +Ces programmes sont décrits dans les sections suivantes du +<ulink url="../handbook/index.html">handbook</ulink>: + <itemizedlist> + <listitem> + <para> +<ulink url="../handbook/slips.html" >référence du handbook sur SLIP (côté serveur)</ulink> + </para> + </listitem> + + <listitem> + <para> +<ulink url="../handbook/slipc.html" >référence du handbook sur SLIP (côté client)</ulink> + </para> + </listitem> + + <listitem> + <para> +<ulink url="../handbook/ppp.html" >référence du handbook sur PPP (mode noyau)</ulink> + </para> + </listitem> + + <listitem> + <para> +<ulink url="../handbook/ppp-and-slip.html#USERPPP" >référence du handbook sur PPP (mode utilisateur)</ulink> + </para> + </listitem> + </itemizedlist> + + </para> + + <para> +Si vous avez accès à l'Internet à travers un "compte shell" +vous pouvez jeter un coup d'oeil au paquetage +<ulink url="http://www.freebsd.org/cgi/ports.cgi?^slirp">slirp</ulink>. + +Il peut vous fournir un accès (limité) aux services tels que ftp +et http directement depuis votre machine locale. + + </para> + </sect1> + + <sect1> + <title> Est-ce que FreeBSD supporte NAT ou le Masquerading </title> + + <para> +Si vous avez un sous-réseau local (une ou plusieur machines), mais qu'une +seule adresse IP vous a été allouée (même si ce n'est qu'une adresse IP +dynamique), vous pouvez regarder le programme +<ulink url="http://www.freebsd.org/cgi/man.cgi?natd">natd</ulink> +. <emphasis remap="tt">Natd</emphasis> vous permet de connecter un sous-réseau entier +à l'Internet en n'utilisant qu'une seule adresse IP. + + </para> + + <para> +Le programme <ulink url="http://www.freebsd.org/cgi/man.cgi?ppp" >ppp</ulink> a des fonctionnalité similaires construit par l'intermédiaire +de l'option <emphasis remap="tt">-alias</emphasis> switch. +La +<ulink url="http://www.freebsd.org/cgi/man.cgi?libalias">bibliothèque alias</ulink> +est utilisée dans les deux cas. + + </para> + </sect1> + + <sect1> + <title> Je n'arrive pas à faire marcher ppp. Où me suis-je trompé ? </title> + + <para> +Vous devriez tout d'abord lire la page de manuel +<ulink url="http://www.freebsd.org/cgi/man.cgi?ppp">ppp</ulink> et +<ulink url="../handbook/ppp-and-slip.html#USERPPP" >la section du handbook sur ppp</ulink>. +Activer le logging avec la commande + + <programlisting> +set log Phase Chat Connect Carrier lcp ipcp ccp command + </programlisting> + + </para> + + <para> +Cette commande peut-être tapée à l'invite de commande de <emphasis remap="bf">ppp</emphasis> +ou peut-être entrée dans le fichier de configuration +<emphasis remap="tt">/etc/ppp/ppp.conf</emphasis>. +(le début de la section par défaut <emphasis remap="bf">default</emphasis> +est l'endroit idéal pour le mettre). + +Assurez vous que le fichier <ulink url="http://www.freebsd.org/cgi/man.cgi?syslog.conf" +>/etc/syslog.conf</ulink> contienne les lignes + + <programlisting> +!ppp +*.* /var/log/ppp.log + </programlisting> + + </para> + + <para> +et que le fichier <emphasis remap="tt">/var/log/ppp.log</emphasis> existe. +Vous pouvez aussi tirer pas mal de renseignements sur ce qui se passe en +lisant les fichiers log. +Ne vous inquiétez pas même si cela vous semble dénué de sens, si vous obtenez +de l'aide de quelqu'un, pour lui, cela aura un sens. + </para> + + <para> +Si votre version de ppp ne comprend pas la commande "set log" +vous devriez charger la +<ulink url="http://www.freebsd.org/~brian">dernière version</ulink>. +Il pourrra se construire sur FreeBSD version 2.1.5 et plus. + + </para> + <sect2> + <title>Ppp se bloque quand je le lance</title> + <para> +Cela est usuellement dû au fait que votre nom d'hôte ne peut être résolu. La meilleure solution pour résoudre ce problème est de s'assurer que votre +<emphasis remap="tt">/etc/hosts</emphasis> est consulté en +premier par votre résolveur en éditant +<emphasis remap="tt">/etc/host.conf</emphasis> et en mettant la ligne +<emphasis remap="tt">hosts</emphasis> en premier. +Puis, ajoutez simplement une entrée pour votre machine locale +dans <emphasis remap="tt">/etc/hosts</emphasis>. +Si vous n'avez pas de réseau local, changez simplement votre +ligne <emphasis remap="tt">localhost</emphasis> :</para> + <programlisting> +127.0.0.1 foo.bar.com foo localhost + </programlisting><para> +Sinon, ajoutez simplement une autre entrée pour votre hôte. Consultez les pages de manuels appropriées pour plus de détails. +Vous devrez être alors capable de réussir à faire un +<emphasis remap="tt">ping -c1 `hostname`</emphasis> quand vous aurez fini. + + </para> + </sect2> + <sect2> + <title>Ppp ne veut pas communiquer en mode -auto</title> + <para> +Tout d'abord, vérifiez que vous avez bien un routage par défaut +en lançant <ulink url="http://www.freebsd.org/cgi/man.cgi?netstat"> netstat -rn</ulink>, vous devriez voir deux entrées comme suivent : + + <programlisting> +Destination Gateway Flags Refs Use Netif Expire +default 10.0.0.2 UGSc 0 0 tun0 +10.0.0.2 10.0.0.1 UH 0 0 tun0 + </programlisting> + + </para> + + <para> +ici, on supposera que vous avez utilisés les adresses données en exemple +dans le handbook, les pages man ou depuis le fichier +ppp.conf.sample. +Si vous n'avez pas de routage par défaut, c'est peut-être parce que vous +utilisez une vieille version de <ulink url="http://www.freebsd.org/cgi/man.cgi?ppp" >ppp</ulink> qui ne comprend pas le mot +<emphasis remap="tt">HISADDR</emphasis> dans le fichier ppp.conf. +Si votre version de +<emphasis remap="bf">ppp</emphasis> est antérieure à FreeBSD 2.2.5, +changer la ligne + + <programlisting> +add 0 0 HISADDR + </programlisting> + + </para> + + <para> +par celle-ci : + + <programlisting> +add 0 0 10.0.0.2 + </programlisting> + + </para> + + <para> +Une autre raison au fait que la ligne du routage par défaut soit +manquant est que vous avez pu réglé un routage par défaut erroné dans +le fichier <ulink url="http://www.freebsd.org/cgi/man.cgi?rc.conf" >/etc/rc.conf</ulink> (ce fichier est appelé +<emphasis remap="tt">/etc/sysconfig</emphasis> avant la release 2.2.2), et que vous avez +oublié la ligne suivante : + <programlisting> +delete ALL + </programlisting> + + </para> + + <para> +from <emphasis remap="tt">ppp.conf</emphasis>. Si cela est le cas, revenez à la section du +handbook sur +<ulink url="../handbook/ppp-and-slip.html" >la configuration finale du système</ulink> section of the handbook. + + </para> + </sect2> + <sect2> + <title> Que veut dire "No route to host" ? </title> + + <para> +Cette erreur est usuellement dûe à une omission de la section + <programlisting> +MYADDR: +delete ALL +add 0 0 HISADDR + </programlisting> + + </para> + + <para> +dans votre fichier <emphasis remap="tt">/etc/ppp/ppp.linkup</emphasis>. +Cela est seulement nécessaire si vous avez une adresse IP dynamique ou que +vous ne savez pas l'adresse de votre routeur. Si vous utilisez le mode +interactif, vous pouvez taper les lignes suivantes après être entré +en <emphasis remap="tt">mode paquet</emphasis> (le mode paquet est indiqué par le +<emphasis remap="bf">PPP</emphasis> en majuscule à l'invite): + + <programlisting> +delete ALL +add 0 0 HISADDR + </programlisting> + + </para> + + <para> +Se référer à la section du handbook sur +<ulink url="../handbook/ppp-and-slip.html"> PPP et les adresses IP dynamiques </ulink>pour plus de détails. + + </para> + </sect2> + </sect1> + + <sect1> + <title>Ma connection se termine au bout de 3 minutes</title> + <para> +La limite de temps (timeout) par défaut de ppp est de 3 minutes. Cela peut-être +ajusté avec les lignes : + + <programlisting> +set timeout NNN + </programlisting> + + </para> + + <para> +où <emphasis remap="bf">NNN</emphasis> est le nombre de secondes d'inactivité avant que la connexion ne +soit fermée. +Si <emphasis remap="bf">NNN</emphasis> est égal à zero, la connexion ne sera jamais fermée pour cause +de limite de temps écoulée. + +Il est possible de mettre cette commande dans le fichier +<emphasis remap="tt">ppp.conf</emphasis>, ou de le taper à l'invite en mode interactif. +Il est également possible de l'ajuster au vol alors que la ligne est +active, en se connectant à la socket du serveur <emphasis remap="bf">ppp</emphasis> +en utilisant +<ulink url="http://www.freebsd.org/cgi/man.cgi?telnet">telnet</ulink> ou +<ulink url="http://www.freebsd.org/cgi/man.cgi?pppctl" >pppctl</ulink>. +Se réferer à la page de manuel de +<ulink url="http://www.freebsd.org/cgi/man.cgi?ppp">ppp</ulink> +pour plus de détails. + + </para> + <sect2> + <title>Ma connexion se termine lors de gros chargements.</title> + + <para> +Si vous avez configuré le report de la qualité de connexion (Link Quality Reporting (LQR)), +il est possible ce soit parce que que trop de paquets LQR sont perdus entre la machine +et son interlocuteur. PPP en déduit que la ligne doit être trop +mauvaise, et se déconnecte. Avant la version 2.2.5 de FreeBSD, +LQR était activée par défaut. +Il est maintenant désactivé par défaut. +LQR peut-être désactivé avec la ligne suivante : + + <programlisting> +disable lqr + </programlisting> + + </para> + </sect2> + <sect2> + <title> Ma connexion se termine après un certain temps aléatoire. </title> + + <para> +Parfois, sur une ligne de téléphone avec des parasites, ou même +sur une ligne avec des attentes d'appels activées, le modem peut se +suspendre parce qu'il pense (de manière erronée) qu'il y a une perte du +support de connexion (lost carrier) + + </para> + + <para> +Il y a un réglage sur la plupart des modems qui déterminent le degré de +tolérance sur la perte temporaire de la ligne porteuse. Sur un +USR Sportster par exemple, cela est mesuré par le registre S10 en +dixième de secondes. Pour rendre votre modem plus tolérant, vous +pouvez ajouter la séquence envoi-attente suivante à votre chaîne de +connexion : + + <programlisting> +set dial "...... ATS10=10 OK ......" + </programlisting> + + </para> + + <para> +Se référer à votre manuel du modem pour plus de détails. + + </para></sect2> + + <sect2> + <title> Rien ne se passe après le message Login Ok! </title> + + <para> +Avant la version 2.2.5 de FreeBSD, une fois la ligne établie, +<ulink url="http://www.freebsd.org/cgi/man.cgi?ppp" >ppp</ulink> devait attendre que ce soit l'autre parti (peer) +qui initialise le protocole de +contrôle de ligne (Line Control Protocol (LCP). +Or, plusieurs ISPs ne débuteront pas la négociation et attendront du client +qu'il le fasse. Pour forcer <emphasis remap="bf">ppp</emphasis> +à initialiser le LCP, utiliser la ligne suivante : + + <programlisting> +set openmode active + </programlisting> + + </para> + + <para> +<emphasis remap="bf">Note</emphasis>: +Cela ne fait pas de dégats si chacun des deux parties initialisent tous les deux +la connexion, c'est pourquoi openmode est à présent activé par défaut. +Quoiqu'il en soit, la prochaine section expliquera quand est-ce ce que +cela peut gêner. + + </para></sect2> + + <sect2> + <title> Je n'arrête pas de voir des erreurs à propos de magic being the same </title> + + <para> +De temps en temps, juste après la connexion, vous pouvez voir des +messages dans le log qui dit "magic is the same". +Parfois ces messages sont sans conséquences, et parfois l'un ou l'autre des +partis quitte. +La plupart des implémentations ppp ne peuvent survivre à ce problème, et +même si la ligne semble venir, vous verrez régulièrement des demandes de +configuration et des accusés de réception de configuration dans le +fichier log à moins que ppp abandonne et ne ferme la connexion. + </para> + + <para> +Cela apparaît normallement sur les machines serveurs avec des disques +lents qui diffusent un getty sur le port, et qui exécute ppp depuis un +script ou programme de login après le login. +J'ai aussi eu vent de cela arrivant lorsqu'on utilise slirp. +La raison est qu'entre le temps où getty quitte et que ppp commence, +le ppp côté-client commence par envoyer des paquets +Line Control Protocol (LCP). Parce que l'ECHO est toujours actif +sur les ports du côté serveur, le client ppp verra ces paquets qui lui +seront "reflèté". + + </para> + + <para> +Une partie de la négociation LCP est d'établir un nombre magique +(magic number) +de chaque côté de la ligne, ceci afin que les "réflexions" soient +détectées. Le protocole dit que lorsque l'autre parti essaye de +négocier le même nombre magique, un NAK devrait être envoyé et un +nouveau nombre magique choisi. +Durand la période où le serveur où le port serveur a l'ECHO activé, le +client ppp envoie des paquets LCP, voit le même nombre magique dans les +paquets reflètés et il le "NAK". +Il voit aussi les reflexions de NAK (qui veut aussi dire que ppp devrait +changer son nombre magique). Cela produit potentiellement un énorme +nombre de nombre magiques à changer, chacun d'entre eux tous +s'empilant joyeusement dans le buffer stty du serveur. +Aussitôt que ppp démarre sur le serveur, il est innondé par des +changement de nombre magique et souvent décide qu'il a assez essayé +de négociation LCP et abandonne. +Pendant ce temps, le client qui ne voit alors plus de réflexions, +se réjouit juste le temps de voir que le serveur l'a déconnecté. + + </para> + + <para> +Cela peut-être évité en autorisant l'autre parti à démarrer la +négociation avec la ligne suivante dans le fichier ppp.conf + + <programlisting> +set openmode passive + </programlisting> + + </para> + + <para> +Cela dit à ppp d'attendre que le serveur débute la négociation LCP. +Certains serveurs toutefois peuvent ne jamais initier la négociation. Si +cela est le cas, vous pouvez faire quelque chose du genre : + + <programlisting> +set openmode active 3 + </programlisting> + + </para> + + <para> +Cela dit à ppp de rester passif pendant 3 secondes, et puis commencer à +envoyer les requêtes LCP/ Si l'autre parti commence à envoyer des +requêtes durant cette période, ppp répondra immédiatement plutôt qu'en +attendant que la période des 3 secondes se termine. + </para> + </sect2> + + <sect2> + <title> Les négociations LCP continuent jusqu'à ce que la connexion soit fermée. </title> + + <para> +Cela est pour l'instant un défaut d'implémentation dans +<emphasis remap="bf">ppp</emphasis> où il n'associe pas les réponses +LCP, CCP & IPCP avec leur requête originale. +Comme conséquence, si l'une des implémentations +<emphasis remap="bf">ppp</emphasis> est 6 secondes plus lente que +l'autre côté, l'autre côté enverra 2 requêtes de configuration LCP +supplémentaire. Cela est fatal. + +Soient 2 implémentations, <emphasis remap="bf">A</emphasis> et +<emphasis remap="bf">B</emphasis>. <emphasis remap="bf">A</emphasis> +commence à envoyer des requêtes LCP immédiatement après s'être connecté +et <emphasis remap="bf">B</emphasis> met 7 secondes à démarer. +Quand <emphasis remap="bf">B</emphasis> démarre, +<emphasis remap="bf">A</emphasis> a envoyé 3 requêtes LCP. +Nous supposons que la ligne a désactivée l'ECHO, car dans le cas +contraire nous verrions des problèmes de nombres magiques comme décrit +dans la section précédente. + +<emphasis remap="bf">B</emphasis> envoi un REQ, puis un ACK au premier +REQ de <emphasis remap="bf">A</emphasis>. +Le résultat est que <emphasis remap="bf">A</emphasis> entre +dans l'état <emphasis remap="bf">OPENED</emphasis> et envoie un ACK +(le premier) en retour à <emphasis remap="bf">B</emphasis>. +Pendant ce temps, <emphasis remap="bf">B</emphasis> renvoi 2 ACK de plus +en réponse au 2 REQ supplémentaires envoyés par +<emphasis remap="bf">A</emphasis> avant +<emphasis remap="bf">B</emphasis> que B n'ait commencé. +<emphasis remap="bf">B</emphasis> reçoit alors le premier ACK +de <emphasis remap="bf">A</emphasis> et entre dans l'état +<emphasis remap="bf">OPENED</emphasis>. +<emphasis remap="bf">A</emphasis> reçoit le deuxième ACK de +<emphasis remap="bf">B</emphasis> et revient à l'état +<emphasis remap="bf">REQ-SENT</emphasis>, et envoie un autre (quatrième) +REQ comme décrit dans la RFC. +Il envoie alors un troisième ACK et entre dans l'état +<emphasis remap="bf">OPENED</emphasis>. +Durant ce moment, <emphasis remap="bf">B</emphasis> +reçoit le quatrième REQ de <emphasis remap="bf">A</emphasis>, +par conséquent, revient dans l'état +<emphasis remap="bf">ACK-SENT</emphasis> et envoie un autre (second) +REQ et (quatrième) ACK as per the RFC. +<emphasis remap="bf">A</emphasis> reçoit le REQ, va dans l'état +<emphasis remap="bf">REQ-SENT</emphasis> et envoie un autre REQ. +Il reçoit alors immédiatement le ACK suivant et entre dans l'état +<emphasis remap="bf">OPENED</emphasis>. + </para> + + <para> +Cela continue tant qu'un des partis ne s'aperçoive qu'ils n'iront +nulle part comme cela et abandonne. + + </para> + + <para> +La meilleure façon d'éviter cela est de configurer un côté comme étant +<emphasis remap="bf">passif</emphasis> - cela fait, +faire de telle sorte qu'un des côtés attende que l'autre commence la +négociation. Cela peut-être fait par la commande : + + <programlisting> +set openmode passive + </programlisting> +Faire attention avec cette option, vous devriez aussi utiliser +la commande + <programlisting> +set stopped N + </programlisting> +afin de limiter la durée avant que +<emphasis remap="bf">ppp</emphasis> attende de l'autre parti de +commencer la négociation. +D'une autre façon, la commande + <programlisting> +set openmode active N + </programlisting> + +(où <emphasis remap="bf">N</emphasis> est le nombre de secondes +qu'il faut attendre avant que le démarrage de la négociation ne soit +faite). Regardez les pages de manuels pour plus de détails. + </para> + </sect2> + + <sect2> + <title> Ppp se verrouille peu après la connexion. </title> + + <para> +Avant la version 2.2.5 de FreeBSD, il était possible que votre +ligne soit désactivée peu après la connection, dûe à +une mauvaise négociation de compression Predictor1 de +<emphasis remap="bf">ppp</emphasis> + +Cela ne devrait arriver que si +deux côtés essayent de négocier des protocoles de +contrôle de compression ( +Compression Control Protocols (CCP) différents. +Ce problème est à présent résolu, mais si vous utilisez toujours une +vieille version de +<emphasis remap="bf">ppp</emphasis>, +le problème peut-être sauté avec la ligne + + <programlisting> +disable pred1 + </programlisting> + + </para></sect2> + + <sect2> + <title> Ppp se verrouille quand je "shell" pour le tester. </title> + + + <para> +Quand vous exécutez le <emphasis remap="tt">shell</emphasis> ou la +commande <emphasis remap="tt">!</emphasis>, +<emphasis remap="bf">ppp</emphasis> exécute un shell (ou si vous avez +passé des arguments, <emphasis remap="bf">ppp</emphasis> +exécutera ces arguments). Ppp attendra que la commande se termine avant +de continuer. Si vous avez l'intention d'utiliser la connexion ppp +pendant que vous lancez la commande, la connexion apparaîtra +alors comme ayant été gelée. +Cela parce que <emphasis remap="bf">ppp</emphasis> attend que la +commande se termine. + + </para> + + <para> +Si vous voulez exécuter des commandes comme cela, utilisez plutôt la +commande <emphasis remap="tt">!bg</emphasis>. +Cela exécutera la commande en arrière plan, et ppp +pourra continuer de servir la connexion. + + </para></sect2> + + <sect2> + <title> Ppp sur un null-modem ne quitte jamais. </title> + + <para> +Il n'y a aucune manière pour que <emphasis remap="bf">ppp</emphasis> +détermine automatiquement qu'une connexion directe +s'est achevée. Cela est dû aux lignes utilisées dans un câble série +null-modem. Quand on utilise cette sorte de connexion, LQR devrait +être toujours activé avec la ligne : + + <programlisting> +enable lqr + </programlisting> + + </para> + + <para> +LQR est accepté pas défaut si négocié par l'autre parti. + + </para> + </sect2> + </sect1> + + <sect1> + <title> Pourquoi ppp tente de se connecter sans raison em mode -auto ? </title> + + <para> +Si <emphasis remap="bf">ppp</emphasis> tente de se comnnecter +sans raison aucune, vous devez en déterminer la cause et mettre en place +des filtrages d'appels (dfilters) pour prévenir de tels appels. + + </para> + + <para> +Afin d'en déterminer la cause, utilisez la ligne suivant : + + <programlisting> +set log +tcp/ip + </programlisting> + + </para> + + <para> +Cela tracera tous le trafic à travers une connexion. La prochaine fois +que la connexion se mettra en place de manière inattendue, vous verrez +la raison tracé avec le moment où cela s'est produit à côté. + </para> + + <para> +Vous pouvez à présent désactiver les appels sous ces circonstances. +D'habitude, ces sortes de problèmes arrivent à cause des DNS lookup. +Pour empêcher le DNS lookup d'établir une connexion (cela n'empêchera +<emphasis remap="bf">pas</emphasis> <emphasis remap="bf">ppp</emphasis> +de passer les paquets à travers une connexion établie), utilisez les +lignes suivantes : + + <programlisting> +set dfilter 1 deny udp src eq 53 +set dfilter 2 deny udp dst eq 53 +set dfilter 3 permit 0/0 0/0 + </programlisting> + + </para> + + <para> +Cela ne convient pas toujours puisqu'il +enlèvera effectivement vos fonctionnalités de demandes d'appels - la +plupart des programmes auront besoin du DNS lookup +avant de faire quelque chose ayant un rapport avec le réseau. + + </para> + + <para> +Dans le cas DNS, vous pouvez essayer de déterminer qui est-ce qui essaye +actuellement de résoudre le nom de l'hôte. +La plupart du temps, c'est +<ulink url="http://www.freebsd.org/cgi/man.cgi?sendmail" >sendmail</ulink> le coupable. +Vous devez vous assurer que vous avez dit à sendmail de ne faire aucun +DNS lookup dans ses fichiers de configuration, +regardez la section sur +<ulink url="ispmail">la configuration du mail</ulink> pour les détails de comment créer son propre fichier de +comfiguration, et qu'est ce qu'on doit mettre dedans. +Vous pouvez aussi vouloir ajouter les lignes suivantes dans votre +fichier <emphasis remap="bf">.mc</emphasis> : + + <programlisting> +define(`confDELIVERY_MODE', `d')dnl + </programlisting> + + </para> + + <para> +Cela fera que sendmail mettra tout en file d'attente +jusqu'à ce que la file soit lancée (habituellement, sendmail est +invoqué avec ``-bd -q30m'', lui disant de lancer la file +d'attente toutes les 30 minutes) ou jusqu'à ce que un +``sendmail -q'' soit effectué (peut-être dans votre fichier ppp.linkup). + + </para> + <sect2> + <title> Que veulent dire ces erreurs CCP ? </title> + + + <para> +Je n'arrête pas de voir les erreurs suivantes dans mon fichier log : + <programlisting> +CCP: CcpSendConfigReq +CCP: Received Terminate Ack (1) state = Req-Sent (6) + </programlisting> + + </para> + + <para> +Ceci est obtenu parce que ppp est en train de négocier la compression +Predictor1 et que l'autre parti ne veut pas du tout négocier de compression. +Ces messages sont sans conséquences aucune, mais si vous voulez les enleverm +vous pouvez désactiver la compression Predictor1 aussi en local. + + <programlisting> +disable pred1 + </programlisting> + + </para></sect2> + + <sect2> + <title>Ppp se bloque durant les transferts de fichiers avec une erreur IO. </title> + + <para> +Sous FreeBSD 2.2.2 et avant, il y avait un bug dans le driver tun +qui stoppait tous les paquets entrants d'une taille plus grande que la taille +MTU de l'interace tun. +La réception de paquets plus grands que la taille du MTU +résultait en une erreur IO qui était alors tracé avec syslogd, + </para> + + <para> +Les spécifications ppp disent qu'un MTU de 1500 devrait +<emphasis remap="bf">toujours</emphasis> être accepté +comme un minimum, ceci +quelque soit la négociation LCP. Il est toutefois possible que vous +diminuez le MTU à moins de 1500, votre ISP vous transmettra des paquets +de 1500 sans s'en préoccuper, et cela vous bloquera, +gelant ainsi la ligne. + + </para> + + <para> +Ce problème peut être contourné en ne réglant jamais un MTU en dessous +de 1500 sous FreeBSD 2.2.2 et avant. + + </para></sect2> + + <sect2> + <title> Pourquoi ppp ne trace-t-il pas ma vitesse de connexion ? </title> + + <para> +La façon de tracer toutes les lignes de la ``conversation'' de +votre modem est d'activer : + + <programlisting> +set log +connect + </programlisting> + + </para> + + <para> +Cela permettra à +<ulink url="http://www.freebsd.org/cgi/man.cgi?ppp">ppp</ulink> +de tout tracer jusqu'à la dernière chaîne de requête d'"attente" + </para> + + <para> +Si vous voulez voir votre vitesse de connexion et que vous utilisez +PAP ou CHAP (et donc ne rien avoir avec "chat" après le CONNECT +dans le script dial - pas de script "set login"), vous devez +vous assurer que vous prévenez ppp de s'attendre tout la ligne CONNECT, +quelque chose comme : + + <programlisting> +set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n" + </programlisting> + + </para> + + <para> +Ici, nous avons notre CONNECT, ne rien envoyer, et puis attendre +un saut de ligne, forçant +<emphasis remap="bf">ppp</emphasis> à lire toute la réponse +CONNECT. + + </para></sect2> + + <sect2> + <title>Ppp ignore le caractère `\' dans mon script chat</title> + + <para> +Ppp parse chacune des lignes de votre fichier de configuration, de telle +sorte qu'il puisse interprêter des chaines comme +<emphasis remap="tt">set phone "123 456 789"</emphasis> correctement +(et réaliser qu'il n'y a que <emphasis remap="bf">un</emphasis> +seul argument. +Pour pouvoir spécifier un caractère ``"'', vous devez +l'échapper avec un backslash (``\''). + + </para> + + <para> +Quand l'interprêteur chat parse chaque argument, il re-interprête +l'argument de telle sorte à trouver des séquences de caractères +d'échappement comme +``\P'' ou ``\T'' (voir les pages de manuel). En conséquence de +ce double-parsing, vous devez vous souvenir d'utiliser le nombre +correct d'échappement. + </para> + + <para> +Si vous voulez envoyer un caractère ``\'' à votre modem, +vous aurez besoin de faire quelque chose comme : + + <programlisting> +set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK" + </programlisting> + + </para> + + <para> +qui se résultera en la séquence suivante : + + <programlisting> +ATZ +OK +AT\X +OK + </programlisting> + + </para> + + <para> +ou encore + + <programlisting> +set phone 1234567 +set dial "\"\" ATZ OK ATDT\\T" + </programlisting> + + </para> + + <para> +résultera en la séquence suivante : + + <programlisting> +ATZ +OK +ATDT1234567 + </programlisting> + </para> + </sect2> + + <sect2> + <title>Ppp reçoit une erreur de segmentation, mais je ne trouve pas de fichier <emphasis remap="tt">ppp.core</emphasis></title> + + + <para> +Ppp (ou n'importe quel programme dans le même cas) ne devrait jamais +faire de coredump. Parce que ppp tourne avec une identité d'utilisateur +effectif de 0, le système d'exploitation n'écrira pas d'image du core sur le +disque avant de l'avoir terminé. Si, malgrè tout, ppp se +<emphasis remap="bf">termine</emphasis> actuellement à cause d'une violation +de segmentation, ou n'importe quel autre signal qui cause normalement un +core dump, <emphasis remap="bf">et</emphasis> que vous êtes sûr +que vous utilisez la dernière version (voir le début de cette section), +alors vous devriez faire la chose suivante : + <programlisting> +$ tar xfz ppp-*.src.tar.gz +$ cd ppp*/ppp +$ echo STRIP= >>Makefile +$ echo CFLAGS+=-g >>Makefile +$ make clean all +$ su +make install +chmod 555 /usr/sbin/ppp + </programlisting> + + </para> + + <para> +Vous aurez alors une version déboguable de ppp installé. Vous aurez à être +root pour lancer ppp puisque tous ses privilèges auront été révoqués. Quand +vous démarrez ppp, retenez soigneusement le répertoire courant dans lequel +vous étiez. + + </para> + + <para> +A présent, si et quand ppp recevra une violation de segmentation, cela +crééra un fichier core nommé ppp.core. Vous aurez alors à faire la chose +suivante : + + <programlisting> +$ su +gdb /usr/sbin/ppp ppp.core +(gdb) bt +..... +(gdb) f 0 +..... +(gdb) i args +..... +(gdb) l +..... + </programlisting> + + </para> + + <para> +Toutes ces informations devront être données suivant votre question, +rendant ainsi possible le diagnostique de votre problème. + </para> + + <para> +Si vous êtes familier avec gdb, vous pouvez vouloir trouver d'autres +techniques pour trouver ce qui a causé le dump, et les adresses et +valeurs des variables concernées. + </para></sect2> + + <sect2> + <title> Le processus qui force un appel en mode auto ne se connecte jamais. </title> + + <para> +Cela est un problème connu quand <emphasis remap="bf">ppp</emphasis> +est réglé de telle sorte à négocier une adresse IP dynamique avec son +homologue. Quand ce programme initial appelle +<ulink url="http://www.freebsd.org/cgi/man.cgi?connect"> connect(2) </ulink>, +l'adresse IP de l'interface tun est assignée à l'extrêmité de la +socket. Le noyau crée le premier paquet sortant et l'écrit sur le +périphérique tun. <emphasis remap="bf">Ppp</emphasis> +lit alors le paquet et établit alors la connexion. Si, comme +résultat de l'assignation dynamique de +<emphasis remap="bf">ppp</emphasis>, +l'adresse de l'interface est changée, l'extrêmité originale de +la socket sera invalide. Tout paquet envoyé à l'autre parti sera alors +en principe perdu. Et même s'il ne l'était pas, toute réponse ne +pourrait pas être renvoyée à la machine originelle puisque l'adresse IP +ne serait plus possèdée par cette machine. + + </para> + + <para> +Théoriquement, il y a plusieurs manières d'aborder ce problème. +Le mieux serait que l'homologue re-assigne la même adresse IP si +possible <emphasis remap="tt">:-)</emphasis> + + </para> + + <para> +La meilleure méthode de notre côté, serait de ne jamais changer +l'adresse IP de l'interface tun, mais à la place, changer tous les +paquets sortant de telle sorte que les adresses IP de la source soient +changées de l'interface Ip à l'IP négocié au vol. C'est essentiellement ce +que +<ulink url="http://www.freebsd.org/cgi/man.cgi?libalias"> libalias(3) </ulink> +(et l'option <emphasis remap="bf">-alias</emphasis> de ppp) +font actuellement. + </para> + + <para> +Une autre alternative (et probablement la plus sûre); est d'implémenter +un appel système qui change tous les sockets reliées depuis une +adresse IP à une autre. +<emphasis remap="bf">Ppp</emphasis> utiliserait cet appel pour +modifier la socket de tous les programmes existant lorsqu'une nouvelle +adresse IP est négociée. + + </para> + + <para> + +Une troisième possibilité est d'autoriser à une interface de +s'activer sans adresse IP. Les paquets sortant auront une adresse IP de +255.255.255.255 jusqu'à ce que le premier SIOCAIFADDR ioctl soit fait. +Cela reviendrait à lier entièrement la socket, et +ça serait à <emphasis remap="bf">ppp</emphasis> +de changer l'adresse IP source, mais seulement si il est à +255.255.255.255, et seulement si le numéro IP et le checksum IP +doivent être changés. Quoiqu'il en soit, c'est de la +bidouille puisque le noyau enverra des paquets invalides à une +interface mal configurée, en supposant que d'autres +mécanismes seront capables de réparer les choses +retrospectivement. + + </para> + + <para> +Aucune de ces solutions n'a (encore) été implémentée. + + </para></sect2> + + <sect2> + <title>Pourquoi la plupart des jeux ne marchent pas avec l'option -alias ?</title> + + + <para> +La raison pour laquelle les jeux et assimilés ne marchent pas avec +libalias est que la machine extérieure essaye d'ouvrir une connexion +ou envoyer des paquets UDP (non sollicités) à la machine +interne. Le logiciel packet alias ne sait alors pas qu'il faut envoyer +ces paquets à une machine interne. + </para> + + <para> +Pour que ça marche, assurez vous que la seule chose qui tourne est le +logiciel avec lequel vous avez des problèmes, puis alors, soit vous +lancez tcpdump sur votre interface tun de votre routeur, soit vous +activez le login ppp tcp/ip (``set log +tcp/ip'') sur votre routeur. + + </para> + + <para> +Quand vous démarrez le logiciel incriminé, vous devriez voir les paquets +passer à travers la machine routeur. Quand quelque chose revient depuis +l'extérieur, il sera retiré (c'est ça le problème). Noter le numéro +de port de ces paquets, puis arrêtez le logiciel incriminé. Faite ceci +quelques fois pour voir si les numéro de ports sont consistants. Si ils +le sont, alors la ligne suivante dans la section appropriée de +/etc/ppp/ppp.conf rendra le logiciel fonctionnel. + + <programlisting> +alias port proto internalmachine:port port + </programlisting> + + </para> + + <para> +où ``proto'' est soit ``tcp'' ou ``udp'', +``internalmachine'' est la machine à laquelle vous voulez que les +paquets soient envoyés et ``port'' le numéro de port de destination des +paquets. + + </para> + + <para> +Vous ne pourrez pas utiliser le logiciel sur d'autres machines sans +changer la commande du dessus, et lancer le logiciel sur 2 machines +internes en même temps est hors de question - après tout, le monde +extérieur voit tout votre réseau entier comme une seule machine. + </para> + + <para> +Si les numéros de ports ne sont pas consistants, il y a 3 autres +options : + + </para> + + <para> +<emphasis remap="bf">1)</emphasis> Soumettre le support dans libalias. +Des exemples de ``cas spéciaux'' peuvent être trouvés dans +/usr/src/lib/libalias/alias_*.c (alias_ftp.c +iest un bon prototype). +Cela implique habituellement la lecture de certains paquets sortant +reconnus, identification des instructions qui dit à la machine +extérieure d'initialiser la connexion en retour vers machine interne sur un port +(aléatoire) spécifique, et mettre en place une +``route'' dans la table d'alias de telle sorte que les paquets concernés +sachent où aller. + + </para> + + <para> +C'est la solution la plus difficile, mais c'est la meilleure et +permettra au logiciel de marcher sur plusieurs machines + + </para> + + <para> +<emphasis remap="bf">2)</emphasis> +Utiliser un proxy. L'application peut pouvoir supporter socks5 par +exemple, ou (comme dans le cas de ``cvsup'') peut avoir une option +``passive'' qui évite d'avoir à toujours demander que l'autre parti +ouvre une connexion en retour sur la machine locale. + + </para> + + <para> +<emphasis remap="bf">3)</emphasis> +Tout rediriger vers une machine interne utilisant +``alias addr''. C'est l'approche "bourrin". + + </para></sect2> + + <sect2> + <title>Rien de cela ne marche - je suis désespéré !</title> + <para> +Si tout le reste échoue, envoyer autant d'informations que vous pouvez, +y compris vos fichiers de configuration, comment vous avez démarré +<emphasis remap="bf">ppp</emphasis>, les parties pertinentes de +votre fichier log, et la sortie de la commande +<ulink url="http://www.freebsd.org/cgi/man.cgi?netstat"> netstat -rn </ulink>(avant et après connexion) à la liste de diffusion +<ulink url="mailto:freebsd-questions@FreeBSD.org"> freebsd-questions@FreeBSD.org </ulink>ou au newsgroup +<ulink url="news:comp.unix.bsd.freebsd.misc"> comp.unix.bsd.freebsd.misc, </ulink>et quelqu'un devrait vous orienter dans la bonne direction. + </para></sect2> + + </sect1> + + <sect1> + <title>Je ne peux pas créer un périphérique <emphasis remap="tt">/dev/ed0</emphasis> ! </title> + <para> +Dans le cadre des réseaux Berkeley, les interfaces réseaux sont +seulement directement accessibles par le code du noyau. +Regarder le fichier +<emphasis remap="tt">/etc/rc.network</emphasis> +et les pages de manuels pour les différents programmes réseaux mentionnés +ici pour plus d'informations. Si cela vous est complètement confus, vous +devriez prendre un livre décrivant l'administration réseaux sur un autre +système d'exploitation relatif à BSD; à quelques exceptions +mineures, administrer un réseau sous FreeBSD est basiquement la +même chose que sur un SunOS 4.0 ou un Ultrix. + + </para> + </sect1> + + <sect1> + <title>Comment puis-je régler les alias éthernet ?</title> + + <para> +Ajouter ``<emphasis remap="tt">netmask 0xffffffff</emphasis>'' à votre +ligne de commande +<ulink url="http://www.freebsd.org/cgi/man.cgi?ifconfig">ifconfig</ulink> +comme ci-dessous : + + <programlisting> +ifconfig ed0 alias 204.141.95.2 netmask 0xffffffff + </programlisting> + </para> + + </sect1> + + <sect1> + <title> Comment puis-je faire pour que mon 3C503 utilise l'autre port réseau ? </title> + + <para> +Si vous voulez utiliser les autres ports, vous avez à spécifier un +paramêtre supplémentaire dans la ligne de commande +<ulink url="http://www.freebsd.org/cgi/man.cgi?ifconfig">ifconfig</ulink>. +Le port par défaut est``<emphasis remap="tt">link0</emphasis>''. +Pour utiliser le port AUI à la place du BNC,utiliser +``<emphasis remap="tt">link2</emphasis>''. +Ces paramêtres devraient être spécifiés en utilisant les variables +de ifconfig_* variables dans <ulink url="http://www.freebsd.org/cgi/man.cgi?rc.conf">/etc/rc.conf</ulink>. + </para> + </sect1> + + <sect1> + <title>J'ai des problèmes avec NFS depuis/vers FreeBSD.</title> + + <para> +Certaines cartes réseaux sont meilleures que d'autres +et peuvent causer quelquefois des problèmes lors d'applications +réseaux intensives comme NFS. + </para> + + <para> +Regarder <ulink url="../handbook/nfs.html">la partie du Handbook sur NFS </ulink>pour plus d'informations à ce sujet. + </para> + </sect1> + + <sect1> + <title> Pourquoi ne puis-je pas monter par NFS depuis une machine sous Linux ? </title> + + <para> +Certaines versions du code NFS de Linux ne peuvent accepter des +requêtes de montages que depuis un port privilègié; essayez + + <programlisting> +mount -o -P linuxbox:/blah /mnt + </programlisting> + + </para> + </sect1> + + <sect1> + <title> Pourquoi ne puis-je pas monter un NFS depuis une machine Sun ? </title> + + <para> +Les stations de travail Sun sous SunOS 4.X n'acceptent seulement des +requêtes de montage que depuis un port privilègié; essayez + + <programlisting> +mount -o -P sunbox:/blah /mnt + </programlisting> + + </para> + </sect1> + + <sect1> + <title>J'ai des problème pour parler PPP à des machines NeXTStep.</title> + + <para> +Essayer de désactiver l'extension TCP dans <ulink url="http://www.freebsd.org/cgi/man.cgi?rc.conf">/etc/rc.conf</ulink> en changeant la variable à NO : + + <programlisting> +tcp_extensions=NO + </programlisting> + + </para> + + <para> +les machines Xylogic's Annex ne marchent pas non plus dans ce contexte, +et vous devez changer de même que ci-dessus pour pouvoir vous +connecter au travers d'elles. + + </para> + </sect1> + + <sect1> + <title>Comment activer le support multicast IP ?</title> + + <para> +Les opérations multicast sont entièrement supportées par FreeBSD 2.0 et +plus par défaut. Si vous voulez que votre machine marche comme un +routeur multicast, vous devez recompiler votre noyau avec l'option +<emphasis remap="tt">MROUTING</emphasis> et lancer +<emphasis remap="tt">mrouted</emphasis>. FreeBSD 2.2 et plus +démarrera <emphasis remap="tt">mrouted</emphasis> au moment du boot si +l'option <emphasis remap="tt">mrouted_enable</emphasis> est mis à +"YES" dans <emphasis remap="tt">/etc/rc.conf</emphasis>. + + </para> + + <para> +Les outils MBONE tools sont disponibles dans leur +propre catégorie de ports, mbone. Si vous cherchez les outils de +conférence <emphasis remap="tt">vic</emphasis> et +<emphasis remap="tt">vat</emphasis>, +c'est là qu'il faut voir ! + + </para> + + <para> +Pour plus d'informations, regarder +<ulink url="http://www.mbone.com/">le web d'information Mbone</ulink>. + + </para> + </sect1> + + <sect1> + <title>Quelles cartes réseaux sont basées sur le chipset DEC PCI ?</title> + + <para> +Voici une liste compilée par +<ulink url="mailto:gfoster@driver.nsta.org">Glen Foster</ulink>, +avec quelques ajouts récents : + + <programlisting> +Vendor Model +---------------------------------------------- +ASUS PCI-L101-TB +Accton ENI1203 +Cogent EM960PCI +Compex ENET32-PCI +D-Link DE-530 +Dayna DP1203, DP2100 +DEC DE435 +Danpex EN-9400P3 +JCIS Condor JC1260 +Linksys EtherPCI +Mylex LNP101 +SMC EtherPower 10/100 (Model 9332) +SMC EtherPower (Model 8432) +TopWare TE-3500P +Zynx ZX342 + </programlisting> + + </para> + </sect1> + + <sect1> + <title> Pourquoi dois-je utiliser le FQDN pour les hôtes de mon site ? </title> + + + <para> +Vous verrez probablement que l'hôte est actuellement dans un domaine +différent; par exemple, si vous êtes dans foo.bar.edu +et que vous voulez atteindre un hôte nommé ``mumble'' +dans le domaine bar.edu domain, vous aurez à vous y référer +par son nom de domaine entièrement qualifié, ``mumble.bar.edu'', à la place de +juste ``mumble''. + + </para> + + <para> +Traditionellement, cela était autorisés par les résolveurs +BSD BIND. Malgrè tout, la version courante de +<ulink url="http://www.freebsd.org/cgi/man.cgi?named">bind</ulink> +qui est fournie avec FreeBSD ne fournit plus d'abbréviation par défaut +pour un domaine non entièrement qualifié; autre que le domaine dans +lequel vous êtes. +Ainsi, un hôte non-qualifié <emphasis remap="tt">mumble</emphasis> +doit soit être trouvé comme +<emphasis remap="tt">mumble.foo.bar.edu</emphasis>, +ou alors il sera cherché dans le domaine racine. + + </para> + + <para> +Cela est différent du comportement décrit auparavant, où la recherche +continuait à travers <emphasis remap="tt">mumble.bar.edu</emphasis>, +et <emphasis remap="tt">mumble.edu</emphasis>. +Jetez un coup d'oeil à la RFC 1535 pour savoir pourquoi cela est +considéré comme une mauvaise pratique, ou encore même un trou de +sécurité. + </para> + + <para> +Comme détour, vous pouvez placer la ligne : + <programlisting> +search foo.bar.edu bar.edu + </programlisting> + + </para> + + <para> +à la place de la précédente : + + <programlisting> +domain foo.bar.edu + </programlisting> + + </para> + + <para> +dans votre fichier +<ulink url="http://www.freebsd.org/cgi/man.cgi?resolv.conf"> /etc/resolv.conf </ulink>. +Quoiqu'il en soit, assurez vous que l'ordre de recherche +ne vas pas en dehors des ``limites entre l'administration locale +et publique'', comme appelée dans la RFC 1535. + + </para> + </sect1> + + <sect1> + <title>``Permission denied'' pour toutes les opérations réseaux.</title> + + + <para> +Si vous avez compilé votre noyau avc l'option +<emphasis remap="tt">IPFIREWALL</emphasis>, vous devez être prévenu, que la +politique par défaut depuis le +2.1.7R (cela a changé durant le développement +du 2.1-STABLE) est de refuser tous les paquets qui ne sont pas +explicitement autorisés. + </para> + + <para> +Si vous avez inintentionnellement mal configuré votre système pour le +firewall, vous pouvez rétablir les fonctionnalité réseaux en tapant la +commande suivante sous root : + + <programlisting> +ipfw add 65534 allow all from any to any + </programlisting> + + </para> + + <para> +Vous pouvez aussi régler "firewall_type='open'" dans +<emphasis remap="tt">/etc/rc.conf</emphasis>. + + </para> + + <para> +Pour plus d'informations sur la configuration d'un firewall FreeBSD, +voir la <ulink url="../handbook/firewalls.html">section correspondante du handbook</ulink>. + + </para> + </sect1> + + <sect1> + <title>Combien d'overhead, IPFW implique-t-il ?</title> + + <para> +La réponse à ceci dépend pour la plupart à votre ensemble de règle et à +votre vitesse de processeur. Pour la plupart des applications +utilisant ethernet et de petits ensembles de règles, la réponse est : +négligeable. Pour tous ceux d'entre vous qui veulent des mesures +actuelles pour satisfaire leur curiosité, continuez à lire : + + </para> + + <para> +Les mesures suivantes ont été réalisées en utilisant 2.2.5-STABLE sur +un 486-66. IPFW a été modifié pour mesurer le temps écoulé par +l'intermédiaire de la routine <emphasis remap="tt">ip_fw_chk</emphasis> +en affichant les résultats sur la console tous les 1000 paquets. + + </para> + + <para> +2 ensembles de règles, chacun avec 1000 règles ont été testés. +Le premier ensemble a été conçu pour démontrer le scénario du pire des +cas en répétant la règle : + + <programlisting> +ipfw add deny tcp from any to any 55555 + </programlisting> + + </para> + + <para> +Cela démontre le pire des cas en faisant que chaque paquet IPFW entraine l'exécution de +la routine de vérification qui finallement décide que le +paquet ne correspond pas aux règles (en vertu du numéro de port)? +Apès la 999eme itération de cette règle, il y avait un +<emphasis remap="tt">allow ip from any to any</emphasis>. + + </para> + + <para> +Le second ensemble de règles a été conçu pour annuler la vérification de +règle très rapidement : + + <programlisting> +ipfw add deny ip from 1.2.3.4 to 1.2.3.4 + </programlisting> + + </para> + + <para> +Les adresses IP des sources non correspondantes aux règles énoncées +ci-dessus font que ces règles sont sautées très rapidement. Comme +auparavant, la 1000eme règle était un +<emphasis remap="tt">allow ip from any to any</emphasis>. + + </para> + + <para> +L'étude par paquet dans le premier cas a été approximativement de +2.703ms/paquet, soit en gros 2.7 microseconds par règle +. +Ainsi, la limite théorique d'étude de paquet avec ces règles est de 370 +paquets par secondes. En supposant un éthernet 10Mbps et des paquets +d'environ 1500 bytes, nous ne pourrons être capable que d'obtenir une +utilisation de la bande passante de 55.5% + </para> + + <para> +Pour le dernier cas, chaque paquet a été étudié en approximativement +1.172ms, soit en gros 1.2 microseconds par règle. +La limite théorique de l'étude des paquets ici, serait d'environ de 853 +paquets par secondes, ce qui pourrait consommer une bande passante +d'un éthernet 10Mbps. + + </para> + + <para> +Le nombre excessif de règle testés, et la nature de ces règles ne +fournissent pas un scénario du monde réel -- ils ont été utilisés que +pour générer les informations de temps présentés ici.Voici certaines +choses à garder à l'esprit pour construire un ensemble de règles +efficaces : + + <itemizedlist> + + <listitem> + <para> +Placer une règle d'`établissement' très tôt afin de pouvoir +gérer la majorité du trafic TCP. Ne mettre aucun +<emphasis remap="tt">allow tcp</emphasis> +avant cette règle. + </para> + </listitem> + + <listitem> + <para> +Placer les règles souvent sollicitées le plus au début de l'ensemble +des règles plutôt que celles rarement utilisées +(<emphasis remap="bf">sans changer la permissivité du firewall </emphasis>, bien sûr). +Vous pourrez voir quels sont les règles les plus souvent utilisées en +examinant les statistiques des comptages des paquets avec +<emphasis remap="tt">ipfw -a l</emphasis>. + </para> + </listitem> + + </itemizedlist> +</para> + </sect1> + + <sect1> + <title>Comment puis-je rediriger les requêtes de services d'une machine vers une autre ? </title> + + <para> +Vous pouvez rediriger des requêtes FTP (et autre services) avec le +paquetage 'socket', disponible dans l'arbre des ports dans la catégorie +'sysutils'. Remplacer simplement la ligne de commande de +service pour appeler socket à la place, ainsi: + +<programlisting> +ftp stream tcp nowait nobody /usr/local/bin/socket socket ftp.foo.com ftp +</programlisting> + + </para> + + <para> +où 'ftp.foo.com' et 'ftp' sont les hôtes et les ports où se diriger +respectivement. + </para> + </sect1> + </chapter> + diff --git a/fr_FR.ISO_8859-1/books/faq/preface.sgml b/fr_FR.ISO_8859-1/books/faq/preface.sgml new file mode 100644 index 0000000000..63095afcb9 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/faq/preface.sgml @@ -0,0 +1,785 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: 1.33 +--> + +<chapter id="preface"> + <beginpage> + <title>Préface</title> + + <sect1> + <title>Quel est le but de cette FAQ ?</title> + <para>Comme toutes les FAQ Usenet, ce document contient les +questions les plus fréquemment posées à propos du système +d'exploitation FreeBSD, ainsi que leurs réponses. Bien que +destinées, à l'origine, à réduire le trafic et éviter que +les même questions soient posées encore et encore, les FAQ +sont maintenant reconnues comme de précieuses sources +d'information. </para> + + <para>Tous les efforts ont été apportés pour rendre +cette FAQ la plus complète possible. Si vous avez des commentaires +la concernant ou +si vous voulez y contribuer, envoyez un e-mail au <ulink +url="mailto:freebsd-france@freebsd.francenet.fr">responsable de cette +FAQ</ulink>. +</para> + </sect1> + + <sect1> + <title>FreeBSD c'est quoi ?</title> + + <para>Pour résumer, FreeBSD 2.X est un système d'exploitation +UN*X basé sur la distribution 4.4BSD-lite de l'université de +Berkeley pour des plate-formes i386. +Il est aussi basé indirectement sur le +portage de William Jolitz de la distribution Net/2 de l'université de +Berkeley, plus connu sous le nom de 386BSD, mais très peu de code de +386BSD subsiste. Une description plus complète de ce qu'est +FreeBSD et à quoi il peut vous servir, peut être trouvée à <ulink +url="http://www.fr.freebsd.org">la page d'accueil de +FreeBSD</ulink>. </para> + + + <para>FreeBSD est utilisé par des sociétés commerciales, +fournisseurs d'accès à l'Internet, chercheurs, professionnels de +l'informatique, étudiants et particuliers à travers le monde entier +pour travailler, apprendre et se divertir. Reportez-vous à la <ulink +url="http://www.fr.freebsd.org/gallery/gallery.html">galerie +FreeBSD</ulink> pour vous faire une idée.</para> + + + <para>Pour plus de détails et d'informations sur FreeBSD, +référez vous au <ulink +url="&url.handbook;index.html">manuel de FreeBSD</ulink></para> + </sect1> + <sect1> + <title>Quels sont les buts de FreeBSD ?</title> + <para>L'objectif du projet FreeBSD est de fournir un logiciel qui + puisse être utilisé à n'importe quelle fin et sans aucun restriction. + Nombre d'entre nous sont impliqués de façon significative dans le + code (et dans le projet) et ne refuseraient certainement pas une + petite compensation financière de temps à autre, mais ce n'est + certainement pas dans nos intentions d'insister là dessus. Nous + croyons que notre première et principale “mission” + est de fournir du code à tout le monde, pour n'importe quel projet, + de façon à ce que l'il soit utilisé le plus possible et avec + le maximum d'avantages. C'est, nous le pensons, l'un des objectifs + les plus fondamentaux du Logiciel Libre et l'un de ceux que nous + soutenons avec enthousiasme.</para> + + <para>Le code de l'arborescence des sources, qui est régi par la + Licence Publique GNU (“GNU Public + License” - GPL) ou + la Licence Publique GNU pour les Bibliothèques (“GNU Library + Public License” - GLPL) impose légèrement plus de + contraintes, bien que plutôt liées à une disponibilité plus grande + qu'au contraire, comme c'est généralement le cas. En raison des + complications supplémentaires qui peuvent résulter de l'utilisation + commerciale de logiciels GPL, nous essayons, cependant de remplacer + ces derniers par des logiciels soumis à la licence BSD qui est plus + souple, chaque fois que c'est possible.</para> + </sect1> + + <sect1> + <title>Pourquoi le nom FreeBSD ?</title> + + <para><itemizedlist> + <listitem> + <para>Il peut être utilisé gratuitement, même pour un usage commercial.</para> + </listitem> + <listitem><para>L'intégralité des sources est disponible +gratuitement, et le moins de restrictions possible ont été placées sur +son utilisation, sa distribution et son incorporation dans d'autres travaux +(à des fins commerciales ou non).</para> + </listitem> + <listitem><para>N'importe quelle personne qui a une nouvelle fonctionnalité +et/ou une correction de bogue peut soumettre une portion de +code, qui pourra être inclus dans l'arbre de +développement (moyennant une ou deux conditions évidentes).</para> + </listitem> + </itemizedlist> + </para> + <para> Pour ceux de nos lecteurs dont la langue maternelle n'est +pas l'anglais, il est important de rappeler que le mot "free" +est utilisé ici de deux manières, l'une signifiant "gratuitement" +et l'autre "vous pouvez faire ce que vous voulez". +Excepté une ou deux choses que vous <emphasis>ne pouvez</emphasis> +pas faire avec le code FreeBSD, par exemple prétendre que vous l'avez +développé, vous pouvez réellement faire ce que vous en voulez. </para> + </sect1> + + <sect1> + <title>Quelle est la dernière version de FreeBSD ?</title> + +<!-- 1.30 @@ --> + <para>La <ulink url="ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/3.1-RELEASE"> version 3.1</ulink> est la dernière version <emphasis remap="bf">stable</emphasis> ; elle a été mise en circulation en février 1999. +C'est aussi la dernière version <emphasis remap="bf"> +RELEASE</emphasis>. +</para> + <para>En quelques mots, la branche<emphasis +remap="bf">-stable</emphasis> est destinée aux fournisseurs d'accès à +l'Internet et autres utilisateurs professionnels qui +recherchent un système stable ainsi que des changements mineurs lors de la +mise à jour de leur système en dernière version. + +<!-- +Actuellement ces deux +versions ne font qu'une, mais il ne devrait pas tarder avant que la branche <emphasis remap="bf">-current</emphasis> soit suffisemment polie pour une distribution générale. </para> + + <para>Cela ne veut pas dire que la version 3.0-STABLE n'est pas +utilisable en production, et beaucoup de personnes qui ont besoin de +nouvelles fonctionnalités spécifiques à la version 3.0 (nouvelle version des compilateurs, code +réseau plus optimisé, etc) ont décidé de tenter leur chance sans problèmes. Nous ne voulons +tout simplement pas <quote>certifier</quote> la version 3.0 comme +bonne pour le service avant qu'elle ne soit livrée comme 3.1-RELEASE en février 1999. +--> +</para> + </sect1> + + <sect1> + <title>Qu'est-ce que FreeBSD-current ?</title> +<!-- A RELIRE adresse relative/absolue a voir --> + <para><ulink +url="http://www.freebsd-fr.org/handbook/current.html">FreeBSD-current</ulink> +est la version de développement du système d'exploitation, qui +deviendra en temps utile la version 4.0-RELEASE. Comme telle, cette version ne peut +intéresser que les développeurs du noyau ainsi que certains +passionnés. Voyez <ulink +url="http://www.freebsd-fr.org/handbook/current.html"> la section +appropriée</ulink> du <ulink +url="&url.handbook;index.html">manuel </ulink> +pour plus de détails sur l'utilisation de -current.</para> + + <para>Si vous n'êtes pas familier avec ce système d'exploitation, +ou que vous n'êtes pas capable de différencier un problème temporaire +d'un problème critique, vous ne devez pas utiliser +FreeBSD-current. Cette branche évolue assez rapidement et peut ne pas +être compilée pendant un certain temps. + +<!-- --> +Les personnes utilisant +FreeBSD-current doivent être capables d'analyser n'importe quel +problème et de ne rapporter que les erreurs utiles. + +<!-- +People that use FreeBSD-current are expected to be able to analyze any problems and only report them if they are deemed to be mistakes rather than ``glitches''. +Questions such as ``make world produces some error about groups'' on the +-current mailing list are sometimes treated with contempt. +--> + +</para> + + <para>Assez souvent, une <ulink +url="http://www.fr.freebsd.org/releases/snapshots.html">version de +test</ulink> est créée depuis la branche de développement -current et +occasionnellement une distribution sur CDROM est disponible. Les buts +de chaque version de test sont les suivants: + +<itemizedlist> + <listitem> + <para>Tester la dernière version du programme d'installation.</para> + </listitem> + <listitem> + <para>Donner aux personnes voulant utiliser -current mais +n'ayant pas le temps ou la bande passante pour suivre jour après jour +les évolutions du système, une façon simple de faire +évoluer leur système.</para> + + </listitem> + <listitem> + <para>Garder un point de synchronisation pour les sources +du système actuel, juste au cas ou nous casserions quelque chose +plus tard d'une façon irrécupérable (Bien sur, CVS nous empêche +normalement d'en arriver là :-).</para> + + </listitem> + <listitem> +<para>Vérifier que toutes les nouvelles fonctionnalités nécessitant +des tests ont le nombre maximum de testeurs potentiels.</para> + </listitem> + </itemizedlist> + +</para> + <para>Aucune garantie ne peut être donnée sur le fait que les +versions de test puissent être considérées comme des versions "de +production". Pour des systèmes en production, vous devez attendre la +version finale.</para> + + + <para>Les versions de test sont directement téléchargeables +depuis <ulink url="ftp://current.freebsd.or/pub/FreeBSD"> ce +site</ulink> et sont générées en moyenne une fois par jour pour les +branches 4.0-current et 3.0-stable.</para> + + </sect1> + + <sect1> + <title>Quel est le concept de la branche FreeBSD-stable ?</title> + +<!-- A RELIRE adresse relative/absolue a voir --> + <para>Revenons un peu en arrière, lorsque la version 2.0.5 de +FreeBSD fut livrée, nous avons décidé de scinder le développement en +deux branches. Une nommée <ulink +url="http://www.freebsd-fr.org/handbook/stable.html">-stable</ulink>, +où nous avons décidé de n'inclure que les correctifs testés et +contenant quelques ajouts de fonctionnalités (pour les fournisseurs +d'accès ou les sociétés à vocation commerciale où les fonctionnalités +expérimentales sont plus qu'indésirables). L'autre nommée +<ulink +url="http://www.freebsd-fr.org/handbook/current.html">-current</ulink> +qui nous emmènera jusqu'à la version 4.0-RELEASE (et audelà) depuis la livraison 2.0. Un dessin +ASCII qui vous montre à quoi ressemble l'arbre de développement : +</para> + + <figure> + <title>L'arbre de développement</title> + <programlisting> + 2.0 + | + | + | [2.1-stable] +*Nouvelle BRANCHE* 2.0.5 -> 2.1 -> 2.1.5 -> 2.1.6 -> 2.1.7.1 [fin de la branche 2.1-stable] + | (Mars 1997) + | + | + | [2.2-stable] +*Nouvelle BRANCHE* 2.2.1 -> 2.2.2-RELEASE -> 2.2.5 -> 2.2.6 -> 2.2.7 -> 2.2.8 [fin] + |(Mars 1997) (Octobre 97) (Avril 98) (Juillet 98) (Décembre 1998) + | + | + 3.0-SNAPs (Debut 1er trimestre 1997) + | + | + 3.0.0-RELEASE (Octobre 1998) + | + | [3.0-stable] +*Nouvelle BRANCHE* 3.1 (Feb 1999) -> ... future 3.x releases ... + | + | + \|/ + + + [4.0-current continues] +</programlisting> + </figure> + + <para> La branche -current progresse lentement vers la version 4.0 et au-delà, +la branche 2.2-stable étant terminée avec la version 2.2.8. +La branche 3.0-stable l'a maintenant remplacée, la prochaine version arrivant avec la 3.1 au début 1999 . +La version 4.0-current est maintenant la "branche +courante" avec les premières versions 4.0 apparaissant au premier trimestre 2000.</para> + + + </sect1> + +<!-- suppression de la section "Pourquoi la branche 2.1-stable se finit-elle par la version 2.1.7.1 ?" --> + + <sect1> + <title>Quand sont livrées les versions de FreeBSD ?</title> + + <para>Les nouvelles versions de FreeBSD sont livrées quand +l'équipe principale de FreeBSD décide qu'il y a suffisamment de +nouveautés et/ou de correctifs pour justifier d'une version, et +lorsqu'ils sont satisfaits des modifications apportées et qu'elles ne +compromettent pas la stabilité de la version. Beaucoup d'utilisateurs +pensent que cela fait partie des meilleures choses de FreeBSD, même si +cela peut être un peu frustrant d'attendre que les derniers ajouts +soient disponibles.</para> + + + <para> Les versions sont livrées à peu près tous les 4 mois en moyenne.</para> + + <para> Pour les personnes qui ont besoin (ou veulent) d'un peu +plus de risques, il y a les versions SNAP qui sont livrées un peu plus +souvent (à peu près tous les mois). </para> + + </sect1> + + <sect1> + <title>Sur quelles plate-formes, autre que les PC, est disponible FreeBSD ?</title> + + <para>Actuellement FreeBSD 3.x tourne sur une plate-forme <ulink +url="../alpha/alpha.html">DEC Alpha </ulink> aussi bien que sur les architecture x86. Un intérêt a été exprimé pour un portage sur <ulink +url="http://www.freebsd.org/~jseger/freebsd-sparc/">UltraSPARC</ulink> +mais les détails de ce projet ne sont pas encore clairs.</para> + + <para>Si vous disposez d'une autre architecture, nous vous +conseillons d'aller voir aux URLs suivantes: +<itemizedlist> + <listitem> + <para><ulink +url="http://www.netbsd.org">NetBSD</ulink></para> + </listitem> + <listitem> + <para><ulink +url="http://www.openbsd.org">OpenBSD</ulink></para> + </listitem> + + </itemizedlist> +</para> + </sect1> + + <sect1> + <title>Qui sont les responsables de FreeBSD ?</title> + + <para>Les décisions concernant le projet FreeBSD, comme les +directions que vont prendre le projet ainsi que les personnes +autorisées à ajouter du code dans le noyau, sont fixées par <ulink +url="&url.handbook;staff.html#STAFF-CORE">l'équipe principale </ulink>, +composée d'environ 15 personnes. Il y a une équipe un peu plus large +d'environ <ulink url="&url.handbook;staff-committers.html"> 150 +personnes</ulink> qui ont le droit d'effectuer des changements dans le +code.</para> + + <para>Bien sûr, la plupart des changements sont discutés au +préalable dans les listes de messagerie, et il n'y a aucune restriction +sur qui peut prendre part à la discussion.</para> + + + </sect1> + + <sect1> + <title>Où peut-on trouver FreeBSD ?</title> + + <para>Toutes les versions sont disponibles via un ftp anonyme +sur le <ulink url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/">site ftp de +FreeBSD</ulink> + +<itemizedlist> + <listitem> + <para>Pour la version 2.2-stable, 2.2.8R, voir le répertoire +<ulink url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/release/2.2.8-RELEASE/"> +2.2.8-RELEASE</ulink>.</para> + </listitem> + <listitem> + <para>Pour la version 3.0-stable, 3.0-RELEASE, voir le +répertoire <ulink +url="ftp://current.freebsd.org/pub/FreeBSD/release/3.0-RELEASE">3.0-RELEASE</ulink>.</para> + </listitem> + <listitem> + + <para>Les versions <ulink +url="ftp://releng22.freebsd.org/pub/FreeBSD/">de tests 2.2 </ulink> +sont compilées une fois par jour tout au long de la vie de la branche +RELENG_2_2 (post 2.2.8). Sauf gros incident, la branche RELENG_2_2 +est maintenue avec extrêmement d'attention (pas de changements +expérimentaux, correctifs ajoutés après test dans la branche -current +uniquement).</para> + + </listitem> + <listitem><para>Les versions <ulink +url="ftp://releng30.freebsd.org/pub/FreeBSD/"> de test 3.0</ulink> sont +compilées une fois par jour depuis la branche RELENG_3 (post 3.0-release)jusqu'à la 3.1-RELEASE.</para> + + </listitem> + <listitem><para>Les versions <ulink +url="ftp://current.freebsd.org/pub/FreeBSD/"> de test 4.0</ulink> sont +compilées une fois par jour depuis la branche -current, ce service +étant juste là pour les personnes voulant la tester, ou les +développeurs.</para> + + </listitem> + </itemizedlist> +</para> + <para> FreeBSD est aussi disponible par CDROM chez :</para> +<para>En France +<programlisting> +Le Monde en Tique +6 rue du Maître Albert +75005 PARIS +FRANCE +Téléphone :01 55 42 73 73 +Télécopie :01 55 42 73 74 +WWW:<ulink url="http://www.lmet.fr">Serveur WWW du Monde en Tique</ulink> +Ouverture : Du lundi au samedi, de 9h30 à 19h30 sans interruption +Métro : Ligne 10 : Station Maubert - Mutualité +Rer B : Cluny - La Sorbonne, Sortie : Boulevard Saint-Michel - Boulevard Saint-Germain +Rer C : Saint Michel - Notre Dame, Sortie : Notre-Dame +</programlisting> +<programlisting> +Infothèque +32, rue de Moscou +75008 Paris +Téléphone:01 45 22 67 01 +Télécopie:01 42 93 73 83 +WWW: <ulink url="http://www.infotheque.com">Serveur WWW de infotheque</ulink> +</programlisting> + +</para> + + <para>Aux USA +<programlisting> +Walnut Creek CDROM +4041 Pike Lane, Suite F +Concord, CA 94520 USA +Commandes: +1 800 786-9907 +Questions: +1 925 674-0783 +FAX: +1 925 674-0821 +email: <ulink url="mailto:orders@cdrom.com">Commandes Walnut Creek</ulink> +WWW: <ulink url="http://www.cdrom.com/">Serveur WWW de Walnut Creek</ulink> +</programlisting> +</para> + + <para> En Australie chez : +<programlisting> +Advanced Multimedia Distributors +Factory 1/1 Ovata Drive +Tullamarine, Melbourne +Victoria +Australia +Tel: +61 3 9338 6777 + +CDROM Support BBS +17 Irvine St +Peppermint Grove WA 6011 +Tel: +61 9 385-3793 +Fax: +61 9 385-2360 +</programlisting> +</para> + <para> En Angleterre : +<programlisting> +The Public Domain & Shareware Library +Winscombe House, Beacon Rd +Crowborough +Sussex. TN6 1UL +Tel: +44 1892 663-298 +Fax: +44 1892 667-473 +</programlisting> +</para> + </sect1> + + <sect1> + <title>Où trouver de l'information sur les listes de messagerie ?</title> + + <para>Vous trouverez ces informations dans <ulink +url="&url.handbook;eresources.html#ERESOURCES-MAIL">la section sur les listes de diffusion du manuel</ulink> +</para> + </sect1> + + <sect1> + <title>Quels sont les forums de discussion disponibles sur FreeBSD ?</title> + + <para> Tous les forums sont listés dans la section sur <ulink +url="&url.handbook;eresources.html">les forums de +discussion</ulink> du manuel</para> + </sect1> + + <sect1> +<!-- A RELIRE --> + <title>Existe-t-il des canaux IRC(Internet Relay Chat) sur FreeBSD ?</title> + + <para>Oui, la plupart des réseaux IRC comportent un canal FreeBSD. +<itemizedlist> + <listitem> + <para>Le canal <emphasis remap="tt">#FreeBSD</emphasis> sur EFNET est sûrement le plus populaire et est disponible sur <emphasis remap="tt">irc.chat.org</emphasis>.</para> + </listitem> + <listitem> + <para>Le canal <emphasis remap="tt">#FreeBSD</emphasis> sur DALNET est disponible sur <emphasis remap="tt">irc.dal.net </emphasis> pour les US et sur <emphasis remap="tt">irc.eu.dal.net</emphasis> pour l'Europe.</para> + </listitem> + <listitem> + <para>Le canal <emphasis remap="tt">#FreeBSD</emphasis> sur UNDERNET est disponible sur <emphasis remap="tt">us.undernet.org</emphasis> pour les US et sur <emphasis remap="tt">eu.undernet.org</emphasis> pour l'Europe.</para> + </listitem> + <listitem> + <para>Enfin vous pouvez rejoindre <emphasis remap="tt">#FreeBSD</emphasis> sur BSDNET, un petit serveur de chat BSD sur <emphasis remap="tt">irc.FreeBSD.org</emphasis></para> + </listitem> + </itemizedlist> +</para> + + <para>Tous ces canaux sont distincts et ne sont pas +interconnectés entre eux. Les discussions sur chaque canal diffèrent, +donc essayez-les tous avant de trouver celui qui vous convient.</para> + </sect1> + + <sect1> +<!-- A RELIRE --> + <title>Quels sont les livres parlant de FreeBSD ?</title> + + <para>Le livre de Greg Lehey's <quote>stalling and Running +FreeBSD</quote> est disponible chez Walnut Creek CDROM et comprend le CDROM +de la version 2.2.8. Il y a aussi un livre plus important nommé <quote>The +Complete FreeBSD</quote> qui est lui livré avec certaines pages de manuel et +qui inclut aussi les CDROMs de la version 2.2.8. Ils devraient aussi +etre disponibles dans toutes les bonnes librairies.</para> + + <para>Il existe aussi un projet se nommant "FreeBSD +Documentation Project", que vous pouvez contacter (ou mieux, joindre) +sur la <quote>liste de diffusion doc</quote> <ulink +url="mailto:freebsd-doc@FreeBSD.ORG"><freebsd-doc@FreeBSD.ORG></ulink>. +Cette liste a pour but de discuter sur la documentation de FreeBSD. +Les questions plus générales sur FreeBSD sont à poser dans la "mailing +list" <ulink +url="mailto:freebsd-questions@FreeBSD.ORG"><freebsd-questions@FreeBSD.ORG></ulink>.</para> + + <para>Un <ulink +url="&url.handbook;index.html">``manuel''</ulink> sur FreeBSD est +disponible. Sachez, pour information, que ce manuel est en perpétuelle +évolution, et que certaines parties peuvent être incomplètes.</para> + + <para>Comme FreeBSD 2.2.X est basé sur la version 4.4.BSD-lite2, +la plupart des manuels relatifs à 4.4BSD peuvent s'appliquer à +FreeBSD. Des versions imprimées sont disponibles chez O'Reilly: + +<itemizedlist> + <listitem> +<programlisting> +4.4BSD System Manager's Manual By Computer Systems Research Group, UC +Berkeley 1st Edition June 1994, 804 pages <ulink +url="&isbn.amazon/1-56592-080-5">ISBN 1-56592-080-5</ulink> +</programlisting> + </listitem> + <listitem> +<programlisting> +4.4BSD User's Reference Manual By Computer Systems Research Group, UC +Berkeley 1st Edition June 1994, 905 pages <ulink +url="&isbn.amazon/1-56592-075-9">ISBN 1-56592-075-9 </ulink> +</programlisting> + </listitem> + <listitem> + <programlisting> +4.4BSD User's Supplementary Documents By Computer Systems Research +Group, UC Berkeley 1st Edition July 1994, 712 pages <ulink +url="&isbn.amazon/1-56592-076-7">ISBN 1-56592-076-7</ulink> +</programlisting> + </listitem> + <listitem> + <programlisting> +4.4BSD Programmer's Reference Manual By Computer Systems Research +Group, UC Berkeley 1st Edition June 1994, 886 pages <ulink +url="&isbn.amazon/1-56592-078-3">ISBN 1-56592-078-3</ulink> + + +</programlisting> +</listitem> + + <listitem> + <programlisting> +4.4BSD Programmer's Supplementary Documents By Computer Systems +Research Group, UC Berkeley 1st Edition July 1994, 596 pages <ulink +url="&isbn.amazon/1-56592-079-1">ISBN 1-56592-079-1</ulink> + +</programlisting> +</listitem> + </itemizedlist> +</para> + <para>Une courte description de ces livres est disponible via +WWW à l'adresse suivante : <ulink +url="http://gnn.com/gnn/bus/ora/category/bsd.html">http://gnn.com/gnn/bus/ora/category/bsd.html</ulink>. +Vu le peu de ventes, ces livres sont relativement difficiles a trouver.</para> + + <para>Pour plus d'informations sur le noyau 4.4BSD vous pouvez vous +reporter au livre suivant : + +<programlisting> +McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, and John Quarterman. + +<emphasis>The Design and Implementation of the 4.4BSD Operating System</emphasis>. + Reading, Mass. : Addison-Wesley, 1996. +<ulink url="&isbn.amazon/0-201-54979-4">ISBN 0-201-54979-4</ulink> +</programlisting> +</para> + + + <para>Un bon livre sur l'administration système: +<programlisting> +Evi Nemeth, Garth Snyder, Scott Seebass & Trent R. Hein, +``Unix System Administration Handbook'', Prentice-Hall, 1995 +<ulink url="&isbn.amazon/0-13-151051-7">ISBN 0-13-151051-7</ulink> +</programlisting> + +<emphasis remap="bf">Attention à bien acheter la deuxième édition, +version avec la couverture rouge, et non pas la première.</emphasis> +</para> + + <para>Ce livre couvre les bases de l'administration système +aussi bien que TCP/IP, le DNS, NFS, SLIP/PPP, sendmail, INN/NNTP, +l'impression, etc... Il est assez onéreux (environ 300-350 FF) mais +est indispensable. Il comprend en plus un CDROM contenant énormément +d'outils, dont la plupart sont inclus sur les CDROM de FreeBSD.</para> + </sect1> + + <sect1> +<!-- A RELIRE voir : send-pr(1)--> + <title>Comment accèder à la base de données des problèmes ?</title> + + <para>La base de données des problèmes est accessible (pour +soumission ou interrogation) en utilisant votre navigateur WWW <ulink +url="http://www.freebsd.org/send-pr.html"> pour la soumission</ulink> +ou <ulink url="http://www.freebsd.org/cgi/query-pr-summary.cgi"> pour +l'interrogation </ulink>. La commande <emphasis>send-pr(1)</emphasis> +peut aussi être utilisée pour soumettre des problèmes et des +modifications par courrier électronique.</para> + + + </sect1> + + <sect1> +<!-- A RELIRE voir les tailles des fichiers --> + <title>Où peut-on trouver des versions ASCII/PostScript de cette FAQ ?</title> + + <para> La dernière version de cette FAQ est disponible sur le serveur +WWW de FreeBSD ou sur tout serveur miroir en PostScript ou texte (ASCII 7 bits et Latin1 8bit).</para> +<!-- A RELIRE adresse relative/absolue a voir --> + <para>Le PostScript (environ 370Ko) :<ulink +url="http://www.freebsd-fr.org/FAQ/FAQ.ps">http://www.freebsd-fr.org/FAQ/FAQ.ps</ulink></para> +<!-- + La version ASCII n'est plus disponible + <para>En ASCII (environ 220KB):<ulink +url="http://www.freebsd-fr.org/FAQ/FAQ.ascii">http://www.freebsd-fr.org/FAQ/FAQ.ascii</ulink></para> +--> + +<!-- A RELIRE adresse relative/absolue a voir --> + <para>En format texte ISO 8859-1 (environ 220Ko): <ulink +url="http://www.freebsd-fr.org/FAQ/FAQ.txt">http://www.freebsd-fr.org/FAQ/FAQ.txt</ulink></para> + + </sect1> + + <sect1> +<!-- A RELIRE voir les tailles des fichiers --> + + <title>Où peut-on trouver des versions ASCII/PostScript du manuel ?</title> + + <para> La dernière version du manuel est disponible sur le serveur +WWW de FreeBSD ou sur tout serveur miroir en PostScript ou texte (ASCII 7 bits et Latin1 8bit).</para> +<!-- A RELIRE adresse relative/absolue a voir --> + <para>Le PostScript (environ 1.7Mo) :<ulink +url="http://www.freebsd-fr.org/handbook/handbook.ps">http://www.freebsd-fr.org/handbook/handbook.ps</ulink></para> +<!-- + La version ASCII n'est plus disponible + <para>En ASCII (environ 220KB):<ulink +url="http://www.freebsd-fr.org/handbook/handbook.ascii">http://www.freebsd-fr.org/handbook/handbook.ascii</ulink></para> +--> + +<!-- A RELIRE adresse relative/absolue a voir --> + <para>En format texte ISO 8859-1 (environ : 1.1Mo) :<ulink +url="http://www.freebsd-fr.org/handbook/handbook.txt">http://www.freebsd-fr.org/handbook/handbook.txt</ulink></para> + + </sect1> + <sect1> +<!-- A RELIRE voir la commande col --> + + <title>La version ASCII du manuel ne contient pas que du texte !</title> + + <para>C'est vrai. Les versions ASCII et Latin1 de la FAQ et du +manuel ne contiennent pas que du texte. Elles +contiennent des soulignés et d'autres codes qui supposent que +l'impression sera faite sur une imprimante matricielle. Si vous avez +besoin de reformater ces fichiers sous une forme plus lisible, lancez +la commande col sur le fichier : + +<programlisting> +$ col -b < fichierOrigine > fichierSortie +</programlisting> +</para> + </sect1> + + <sect1> +<!-- A RELIRE voir la commande rsync --> + + <title>Je voudrais devenir un miroir WWW de FreeBSD !</title> + + <para>Bien sûr ! Différents moyens permettent de synchroniser les pages WWW. + +<itemizedlist> + <listitem> + + <para>En utilisant CVSUP: vous pouvez retrouver les pages +formatées en HTML en utilisant CVSUP depuis cvsup.freebsd.org. Ajoutez +simplement cette ligne à votre fichier cvsup: + +<programlisting> +www release=current hostname=/home base=/usr/local/etc/cvsup +prefix=/usr/local/www/data/www.freebsd.org delete old use-rel-suffix +</programlisting> +</para> + </listitem> + <listitem> + <para>En utilisant rsync: voir la <ulink +url="http://www.freebsd.org/internal/mirror.html"> page sur les +miroirs</ulink> pour les informations.</para> + + </listitem> + <listitem> + <para>En utilisant un miroir ftp: vous pouvez télécharger +la copie sur serveur WWW se trouvant sur le serveur ftp. Les fichiers +se trouvent à ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/www +.</para> + + </listitem> + </itemizedlist> +</para> + </sect1> + + <sect1> + <title>Je veux traduire la documentation en Javanais</title> + + <para> On ne peut pas vous payer, mais on peut s'arranger pour +vous envoyer un CDROM gratuit ou un T-shirt et une entrée dans la +liste des contributeurs du Handbook si vous nous soumettez une +traduction de la documentation.</para> + </sect1> + + <sect1> + <title>Autres sources d'informations.</title> + + <para>Les forums de discussion suivants se rapportent à FreeBSD + +<itemizedlist> + <listitem> + <para><ulink +url="news:fr.comp.os.bsd">fr.comp.os.bsd</ulink> (en francais)</para> + </listitem> + <listitem> + <para><ulink url="news:comp.unix.bsd.freebsd.announce"> +comp.unix.bsd.freebsd.announce</ulink> (en anglais - modéré) </para> + </listitem> + <listitem> + <para><ulink +url="news:comp.unix.bsd.freebsd.misc">comp.unix.bsd.freebsd.misc</ulink> (en anglais)</para> + </listitem> + <listitem> + <para><ulink +url="news:comp.unix.bsd.misc">comp.unix.bsd.misc</ulink> (en anglais)</para> + </listitem> + </itemizedlist> +</para> + + <para>Ressources WWW: +<itemizedlist> + <listitem> + <para>La <ulink url="http://www.freebsd.org/">page +principale de FreeBSD</ulink></para> + </listitem> + <listitem> + <para>La <ulink url="http://www.freebsd-fr.org/">page +principale de fr.FreeBSD</ulink></para> + </listitem> + <listitem> + <para><anchor id="pao">Si vous possédez un portable, vous devez visiter la +page de <ulink url="http://www.jp.FreeBSD.org/PAO/">Tatsumi Hosokawa's +Mobile Computing</ulink> au Japon</para> + </listitem> + <listitem> + <para>Pour plus d'informations sur SMP (Symmetric +MultiProcessing) voyez la <ulink +url="http://www.freebsd.org/~fsmp/SMP/SMP.html">page du support +SMP</ulink></para> + </listitem> + <listitem> + <para>Pour plus d'informations sur les applications multimedia FreeBSD +, voyez la page <ulink +url="http://www.freebsd.org/~faulkner/multimedia/mm.html"> +multimédia</ulink>. Si vous vous intéressez plus spécialement à la capture vidéo Bt848 +suivez ce <ulink url="http://www.freebsd.org/~ahasty/Bt848.html"> +lien</ulink>.</para> + </listitem> + </itemizedlist> +</para> + <para>Le manuel de FreeBSD contient une section <ulink +url="&url.handbook;bibliography.html"> bibliographie</ulink> plus +importante, si vous recherchez d'autres livres ou informations.</para> + </sect1> + +</chapter> diff --git a/fr_FR.ISO_8859-1/books/faq/serial.sgml b/fr_FR.ISO_8859-1/books/faq/serial.sgml new file mode 100644 index 0000000000..0aaacc1d51 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/faq/serial.sgml @@ -0,0 +1,626 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + + <chapter id="serial"> + <title>Communications par port série</title> + <para>Cette section comporte les réponses aux différentes +questions sur la communication par port série sur FreeBSD. Les +protocoles PPP et SLIP sont couverts dans la section Réseaux.</para> + + + <sect1> + <title>Comment savoir si FreeBSD a trouvé mes ports séries ?</title> + <para> Lorsque FreeBSD démarre, il recherche les ports série sur +votre machine qui sont configurés dans le noyau. Vous pouvez voir ces +ports en regardant avec attention au moment du démarrage les messages +affichés, ou en lançant la commande suivante:</para> +<para><programlisting> +dmesg | grep sio +</programlisting> +</para> + <para>Lorsque votre système a démarré. Voici quelques exemples +de l'affichage de la commande précédente. +<programlisting> +sio0 at 0x3f8-0x3ff irq 4 on isa +sio0: type 16550A +sio1 at 0x2f8-0x2ff irq 3 on isa +sio1: type 16550A +</programlisting> +Vous voyez alors apparaitre deux ports série. Le premier se trouve à +l'adresse <filename>0x3f8</filename> sur l'IRQ 4 et est composé d'une +puce de type 16550A. Le second est de meme type que le premier, mais +se trouve lui à l'adresse <filename>0x2f8</filename> sur l'IRQ 3. Les +cartes modems internes sont traités comme des ports série -- sauf +qu'ils ont toujours un modem sur le port. +</para> + + <para>Le noyau <emphasis remap="tt">GENERIC</emphasis> comprends +le support pour deux ports série dont les adresses et les IRQ sont les +memes que celles ci-dessus. Si ces valeurs ne vous conviennent pas, ou +si vous avez des cartes modems additionnelles ou des cartes série, +reconfigurez un noyau. Voyez la section sur la reconstruction d'un +noyau pour plus de détails.</para> + </sect1> + + <sect1> + <title>Comment savoir si FreeBSD a trouvé mes cartes modems</title> + <para>Référez vous à la section précédente </para> + </sect1> + + <sect1> + <title>Je viens de mettre à jour ma machine en 2.0.5 et mes <emphasis remap="tt"> tty0x</emphasis> ont diparus ! </title> + <para>Ne vous inquitez pas, ils sont été remplacés par les +devices <emphasis remap="tt">ttydX</emphasis>. Vous devrez donc +changer toutes vos anciennes configurations pour utiliser ces +devices.</para> + </sect1> + + <sect1> + <title>Comment accéder aux ports série sous FreeBSD ? </title> + + <para>Le troisième port série <ulink +url="http://www.freebsd.org/cgi/man.cgi?sio">sio2 </ulink>(aussi +appelé COM3 sous DOS), s'appelle <emphasis remap="tt"> +/dev/cuaa2</emphasis> en sortie, et <emphasis remap="tt"> +/dev/ttyd2 </emphasis> en entrée. Quelle est la différence entre ces +deux classes de devices ?</para> + + <para>Vous devez utiliser <emphasis remap="tt"> ttydX +</emphasis> pour des appels sortants. Lorsque vous ouvrez <emphasis +remap="tt"> /dev/ttydX </emphasis> en mode bloquant, un processus +attend, sur le device <emphasis remap="tt"> cuaaX </emphasis> +correspondant, qu'il soit inactif, et attends alors de détecter la +porteuse sur la ligne. Lorsque vous ouvrez le port <emphasis +remap="tt"> cuaaX </emphasis>, un processus vérifie déjà que le port +<emphasis remap="tt"> ttydX </emphasis> correspondant est +disponible. Si le port est disponible, alors il se l'approprie depuis +le port <emphasis remap="tt"> ttydX </emphasis>. Le port <emphasis +remap="tt"> cuaaXX </emphasis> ne tient pas compte de la détection de +porteuse. Graçe a cette fonctionnalité et un modem, vous pouvez avoir +des utilisateurs se logguant sur votre machine tout en vous laissant +appeller via le meme modem, c'est le système qui se préocupera de +gérer les conflits.</para> + + </sect1> + <sect1> + <title>Comment activer le support pour les cartes séries multiports</title> + <para>Encore une fois, reportez vous à la section sur la + configuration du noyau. Pour une carte série multiports placez + une ligne <ulink + url="http://www.freebsd.org/cgi/man.cgi?sio">sio</ulink> + pour chaque port série de la carte dans le fichier de + configuration du noyau. Ne mettez pour une valeur l'irq et le + vecteur d'adresse de la carte. Tous les ports de la cartes + doivent partager la même irq. Pour des raisons de + cohérence, spécifiez l'irq pour le dernier port. N'oubliez pas + d'ajouter l'option <emphasis remap="tt"> COM_MULTIPORT </emphasis>. + </para> + <para>L'example suivant correspond à une carte série 4ports AST + sur l'irq 7</para> + <programlisting> +options "COM_MULTIPORT" +device sio4 at isa? port 0x2a0 tty flags 0x781 +device sio5 at isa? port 0x2a8 tty flags 0x781 +device sio6 at isa? port 0x2b0 tty flags 0x781 +device sio7 at isa? port 0x2b8 tty flags 0x781 irq 7 vector siointr +</programlisting> + + <para>Les drapeaux (flags) indiquent que le port maitre à un + nombre mineur de 7 (<emphasis remap="tt">0x700</emphasis>), + que nous désirons afficher les diagnostics (<emphasis + remap="tt">0x080</emphasis>) et que tous les ports + partagent la même irq (<emphasis + remap="tt">0x001</emphasis>). + </para> + + </sect1> + + <sect1> + <title>Est-ce que FreeBSD sait gérer les cartes séries multiports en partageant les IRQ ?</title> + + <para>Pas pour le moment. Vous devez utiliser une IRQ différente +pour chaque carte.</para> + + </sect1> + + <sect1> + <title>Puis-je définir les paramètres par défaut de la liaison série pour un port?</title> + + <para>Les périphériques <emphasis remap="tt"> ttydX </emphasis> + (ou <emphasis remap="tt">cuaaX</emphasis>) sont des + périphériques normaux que vous pouvez ouvrir dans vos + applications. Lorsqu'un processus ouvre le périphérique, il + utilise les paramètres par défaut d'entrées sorties de + terminal. Vous pouvez voir ces paramètres en utilisant la + commande: + </para> + <programlisting> +stty -a -f /dev/ttyd1 + </programlisting> + + <para>Lorsque vous changez les paramètres du périphérique, ces + paramètres sont effectifs jusqu'au moment ou vous arreterez de + vous servir de ce périphérique. S'il est ouvert de nouveau, il + reprendra les paramètres par défaut. Pour changer les + paramètres par défaut , vous devez ouvrir le périphérique et + changer les paramètres de l'``état initial'' du + périphérique. Par exemple pour définit un mode <emphasis + remap="tt">LOCAL</emphasis>, 8bits et un controle de flux + <emphasis remap="tt"> XON/XOFF </emphasis> par défaut sur le + ttyd5, voud devez : + </para> + <programlisting> +stty -f /dev/ttyd5 clocal cs8 ixon ixoff +</programlisting> + + <para>Le mailleur endroit pour effectuer ceci est le fichier de + démarrage <filename>/etc/rc.serial</filename>. Maintenant + lorsqu'une application ovrira <emphasis remap="tt"> + ttyd5</emphasis> elle obtiendra les valeurs ci-dessus. + </para> + <para>Vous pouvez empecher certaines valeurs d'etre modifiées en + utilisant le fonction de ``lock'' du périphérique. Par exemple + pour forcer la vitesse à 57600bauds sur <emphasis remap="tt"> + ttyd5 </emphasis>:</para> + <programlisting> +stty -f /dev/ttyd5 57600 + </programlisting> + + <para>Maintenant lorsqu'un programme ouvrira <emphasis + remap="tt">ttyd5</emphasis> et tentera de changer la vitesse + du port, il obtiendra toujours 57600 bauds.</para> + <para> Bien sur, vous devez laisser la possibilité de changer les + états initiaux et de lock que pour l'utilisateur root. Le + script <ulink + url="http://www.freebsd.org/cgi/man.cgi?MAKEDEV"> MAKEDEV + </ulink> <emphasis remap="bf"> ne le fait pas </emphasis> par + défaut lorsqu'il crée les noeuds.</para> + + </sect1> + + <sect1> + <title>Comment mettre en place un login dialup sur mon modem?</title> + <para>Vous voulez devenir fournisseur d'accès à l'Internet ? + Pour commencer vous devez disposer de plus d'un modem pouvant + répondre automatiquement. Votre modem doit pouvoir detecter +une émission de porteuse lorsque qu'elle se présente et ne doit pas en +détecter constemment. Il doit aussi etre capable de racrocher la ligne +lorsqu'il détecte le passage de 1 à 0 du signal <emphasis +remap="tt">DTR</emphasis>. Il doit aussi utiliser un controle de flux +de type <emphasis remap="tt"> RTS/CTS </emphasis> ou aucun controle +de flus. Enfin, il doit etre capable de négocier la vitesse de +transmission entre lui-même et le modem distant tout en gardant +une vitesse constante vis à vis de l'ordinateur.</para> + + <para>Pour la plupart des modems comprennant les commande Hayes, +cette commande met en place les bonnes valeurs et les enregistre en +mémoire morte:</para> + <programlisting> +AT &C1 &D3 &K3 &Q6 S0=1 &W +</programlisting> + + <para>Voyez la section sur l'envoi direct de commandes AT, pour +savoir comment les mettre en place sans avoir besoin de lancer un +émulateur de terminal sous MS-DOS.</para> + + <para>Ensuite créez une entrée dans <ulink +url="http://www.freebsd.org/cgi/man.cgi?ttys"> /etc/ttys </ulink> pour + le modem. Ce fichier comporte tous les ports sur lesquels le système +d'exploitation attend des commandes de login. Ajoutez une ligne +ressemblant à celle ci: +</para> + <programlisting> + ttyd1 "/usr/libexec/getty std.57600" dialup on insecure +</programlisting> + + <para>Cette ligne indique que sur le deuxième port série +(<emphasis remap="tt">/dev/ttyd1</emphasis>) est attaché un modem +dialoguant à 57600 bauds sans parité (<emphasis +remap="tt">std.57600</emphasis>) se trouvant dans le fichier <ulink +url="http://www.freebsd.org/cgi/man.cgi?gettytab"> /etc/gettytab +</ulink>). Le type de terminal est ``dialup''. Le port est ``on'' et +``insecure'' -- ce qui veut dire que les logins sous root ne sont pas +autorisés sur ce port. Pour utiliser d'autres ports en entrée, +utilisez les autres entrées <emphasis remap="tt"> ttydX </emphasis>. +</para> + + <para>Il est d'usage courant d'utiliser ``dialup'' comme type de +terminal. Beaucoup d'utilisateurs affichent un prompt dans leur +.profile ou .login si le type de terminal est ``dialup''. L'exemple +ci-dessus affecte au port le mode ``insecure''. Pour passer root, vous + devez donc vous logguer en temps qu'utilisateur ordinaire et utiliser +la commande <ulink url="http://www.freebsd.org/cgi/man.cgi?su"> su +</ulink> pour devenir <emphasis remap="tt">root</emphasis>. Si vous +définissez le port en tant que ``secure'', alors vous pourrez vous +logguer sous <emphasis remap="tt">root </emphasis> directement.</para> + + <para>Après avoir effectué les modifications au fichier <ulink +url="http://www.freebsd.org/cgi/man.cgi?ttys"> /etc/ttys </ulink>, +vous devez envoyer un signal <emphasis remap="tt"> HUP </emphasis> au +processus <ulink url="http://www.freebsd.org/cgi/man.cgi?init" > init +</ulink> +</para> + +<programlisting> + kill -HUP 1 +</programlisting> + + <para> Cela force le processus init à relire le fichier <ulink +url="http://www.freebsd.org/cgi/man.cgi?ttys"> /etc/ttys</ulink>. Le +processus init démarrera donc des processus getty sur tous les ports +marqués comme <quote>on</quote>. Vous pouvez alors vérifiez que le login est +possible sur le port en tapant : +</para> +<programlisting> +ps -ax | grep '[t]tyd1' +</programlisting> + + <para>Et vous devez voir apparaitre quelque chose comme +ceci:</para> +<programlisting> +747 ?? I 0:00.04 /usr/libexec/getty std.57600 ttyd1 +</programlisting> + + </sect1> + <sect1> + <title>Comment connecter un terminal sur mon système FreeBSD?</title> + + <para>Si vous utilisez un autre ordinateur en tant que terminal, +vous devez vous procurer un cable null modem pour relier les deux +ports série. Si vous utilisez un vrai terminal (de type WYSE-50), suivez +les instructions du manuel</para> + + <para>Ensuite, modifez <ulink +url="http://www.freebsd.org/cgi/man.cgi?ttys"> /etc/ttys</ulink> comme +expliqué à la section précedente. Par exemple, pour un terminal +WYSE-50 connecté sur le 5ème port série, utilisez une entrée +ressemblant à la suivante:</para> + +<programlisting> +ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure +</programlisting> + + <para>Cet exemple assume que le port +<filename>/dev/ttyd4</filename> est connecté sur un terminal wyse50 à +la vitesse de 38400 bauds sans parité (<emphasis +remap="tt">std.38400</emphasis> se trouvant dans le fichier <ulink +url="http://www.freebsd.org/cgi/man.cgi?gettytab">/etc/gettytab</ulink>) +et les logins root sont permis (mot clé secure)</para> + + </sect1> + + <sect1> + <title>Pourquoi ne puis-je pas executer <filename>tip</filename> ou <filename>cu</filename>?</title> + + <para>Sur votre système, les programmes <ulink +url="http://www.freebsd.org/cgi/man.cgi?tip">tip</ulink> et <ulink +url="http://www.freebsd.org/cgi/man.cgi?cu">cu</ulink> ne sont +probablement executable que par l'utilisateur <ulink +url="http://www.freebsd.org/cgi/man.cgi?uucp">uucp</ulink> et par le +groupe <filename>dialer</filename>. Le groupe +<filename>dialer</filename> vous permet de controler qui +a accès à votre modem ainsi qu'aux systèmes distants. Ajoutez vous +dans ce groupe pour pouvoir utiliser ces commandes.</para> + + <para>Sinon, vous pouvez autoriser tous les utilisateurs de +votre système à utiliser les programmes <filename>tip</filename> et +<filename>cu</filename> en tapant:</para> + +<programlisting> +# chmod 4511 /usr/bin/cu +# chmod 4511 /usr/bin/tip +</programlisting> + + </sect1> + + <sect1> + <title>Mon modem Hayes n'est pas supporté; que dois-je faire ?</title> + <para>Pour l'instant la page de manuel de <ulink +url="http://www.freebsd.org/cgi/man.cgi?tip">tip</ulink> n'est pas à +jour. Il existe un support générique des commandes Hayes intégré dans le +programme. Il suffit de mettre la ligne suivante +<filename>ar=hayes</filename> dans votre fichier <ulink +url="http://www.freebsd.org/cgi/man.cgi?remote">/etc/remote</ulink></para> + + <para>Le gestionnaire Hayes ne sait pas reconnaitre les +fonctions avancées des nouveaux modems. Des messages comme +<filename>BUSY, NO DIALTONE, CONNECT 115200</filename> ne sont pas +reconnus. Vous devez absolument désactiver ces messages lorsque vous +utilisez <ulink +url="http://www.freebsd.org/cgi/man.cgi?tip">tip</ulink> (en tapant +<filename>ATX0&W</filename>).</para> + + <para>De plus le timeout de <filename>tip</filename> est de 60 +secondes. Votre modem doit absolument utiliser une valeur plus faible, +sinon <filename>tip</filename> pensera qu'il y a un problème de +communication. Essayez la commande +<filename>ATS7=45&W</filename></para> + + <para>Le version de <filename>tip</filename> livrée ne comporte +pas toutes ces fonctionnalités. La solution est d'éditer le fichier +<filename>tipconf.h</filename> se trouvant dans le répertoire +<filename>/usr/src/usr.bin/tip/tip</filename>. Bien sur cela nécessite +que vous ayez installé les sources.</para> + <para>Remplacez alors la ligne <filename>#define HAYES +0</filename> par <filename>#define HAYES 1</filename>. Puis tapez +<filename>make</filename> et <filename>make install</filename>. Tout +doit marcher correctement après cela.</para> + + </sect1> + <sect1> + <title>Comment faire pour entrer certaines commandes AT ?</title> + <para>Créez une entrée de type <filename>direct</filename> dans +votre fichier <ulink +url="http://www.freebsd.org/cgi/man.cgi?remote">/etc/remote</ulink>. +Par exemple, si votre modem est attaché sur le premier port série, +<filename>/dev/cuaa0</filename>, ajoutez la ligne suivante: +</para> +<programlisting> +cuaa0:dv=/dev/cuaa0:br#19200:pa=none +</programlisting> + + <para>Utilisez le taux maximum, de transfert de votre modem, +pour la fonctionnalitée br. Ensuite tapez <ulink +url="http://www.freebsd.org/cgi/man.cgi?tip">tip cuaa0</ulink> et vous +serez alors connecté sur votre modem.</para> + + <para>S'il n'existe pas de fichier +<filename>/dev/cuaa0</filename> sur votre système, executez la +commande suivante:</para> + +<programlisting> +# cd /dev +# ./MAKEDEV cuaa0 +</programlisting> + + <para>Sinon utilisez la commande <filename>cu</filename> sous +root de la façon suivante.</para> + +<programlisting> +# cu -l``port'' -s``vitesse'' +</programlisting> + + <para>Avec <quote>port</quote> le nom du port +série(ex:<filename>/dev/cuaa0</filename>) et <quote>vitesse</quote>(la +vitesse maximum de votre +modem)(ex:<filename>57600</filename>). Lorsque vous avez entrer les +commandes AT apropriées, tapez <filename>~.</filename> pour quitter</para> + + </sect1> + <sect1> + <title>Le symbole <filename>@</filename> pour la fonctionnalité pn ne marche pas!</title> + + <para>Le symbole <filename>@</filename> dans le numéro de +téléphone demande à <filename>tip</filename> de regarder dans le +fichier <ulink url="http://www.freebsd.org/cgi/man.cgi?phones(5)"> +/etc/phones </ulink> pour trouver le numéro aproprié. Mais le symbole +<filename>@</filename> est aussi un caractère spécial pour le fichier +<ulink +url="http://www.freebsd.org/cgi/man.cgi?remote">/etc/remote</ulink>. +Mettez un backslash devant pour qu'il soit correctement interprété.</para> + +<programlisting> +pn=\@ +</programlisting> + + + </sect1> + + <sect1> + <title>Comment composer un numéro de téléphone depuis la ligne de commande?</title> + + <para>Mettez une ligne +<quote><filename>generic</filename></quote> dans le fichier <ulink +url="http://www.freebsd.org/cgi/man.cgi?remote">/etc/remote</ulink>. +Par exemple:</para> + +<programlisting> +tip115200|Dial any phone number at 115200 bps:\ + :dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du: +tip57600|Dial any phone number at 57600 bps:\ + :dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du: +</programlisting> + + <para>Vous pourrez alors utilisez la commande suivante +<quote><filename>tip -115200 5551234 </filename></quote>. Si vous +préferez <ulink url="http://www.freebsd.org/cgi/man.cgi?cu">cu</ulink> +à <ulink url="http://www.freebsd.org/cgi/man.cgi?tip">tip</ulink>, +utilisez une ligne générique pour cu:</para> + + +<programlisting> +cu115200|Use cu to dial any number at 115200bps:\ + :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du: +</programlisting> + + <para>et utilisez la commande <quote><filename>cu 5551234 -s +115200</filename></quote>.</para> + + </sect1> + + <sect1> + <title>Dois-je spécifier la vitesse en bauds à chaque connexion</title> + + <para>Mettez une ligne <filename>tip1200</filename> ou +<filename>cu1200</filename>, mais mettez la vitesse que vous voulez +pour la fonctionnalité br.<ulink +url="http://www.freebsd.org/cgi/man.cgi?tip">tip</ulink> pense que la +vitesse par défaut est de 1200 bauds, donc il cherche une entrée +<quote><filename>tip1200</filename></quote>. Bien sur, vous n'etes pas +obligez d'utiliser cette vitesse.</para> + + </sect1> + <sect1> + <title>J'ai accès à plusieurs machines depuis mon serveur de terminal</title> + <para>Plutot que d'attendre d'etre connecté et de taper la +commande <filename>CONNECT <host></filename> chaque fois, +utilisez la fonctionnalité <filename>cm</filename> de tip. Voyez, par +exemple, les entrèes suivantes du fichier <ulink +url="http://www.freebsd.org/cgi/man.cgi?remote">/etc/remote</ulink>:</para> +<programlisting> +pain|pain.deep13.com|Forrester's machine:\ + :cm=CONNECT pain\n:tc=deep13: +muffin|muffin.deep13.com|Frank's machine:\ + :cm=CONNECT muffin\n:tc=deep13: +deep13:Gizmonics Institute terminal server:\ + :dv=/dev/cua02:br#38400:at=hayes:du:pa=none:pn=5551234: +</programlisting> + + <para>Cela vous permet de taper directement <filename>tip +pain</filename> ou <filename>tip muffin</filename> pour vous connectez +sur les machines pain ou muffin, et <filename>tip deep13</filename> +pour accéder au serveur de terminaux.</para> + + </sect1> + + <sect1> + <title>Est-ce que tip peut utiliser plusieurs numéros de téléphones pour se connecter à un site?</title> + + <para>C'est un problème courant lorsqu'une université a +plusieurs lignes pour les modems et plusieurs milliers d'étudiants qui +les utilisent.</para> + + <para>Créez une ligne pour votre université dans le fichier +<ulink +url="http://www.freebsd.org/cgi/man.cgi?remote">/etc/remote</ulink> +et utilisez <filename>\@</filename> comme valeur pour la +fonctionnalité <filename>pn</filename>.</para> +<programlisting> +big-university:\ + :pn=\@:tc=dialout +dialout:\ + :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none: +</programlisting> + + <para>Ensuite listez tous les numéros de téléphones de l'université +dans le fichier <ulink +url="http://www.freebsd.org/cgi/man.cgi?phones">/etc/phones</ulink></para> + +<programlisting> +big-university 5551111 +big-university 5551112 +big-university 5551113 +big-university 5551114 +</programlisting> + + <para><ulink +url="http://www.freebsd.org/cgi/man.cgi?tip">tip</ulink> essaiera +alors tous les numéros de téléphones dans l'ordre de la liste puis +s'arretera. Si vous voulez qu'il réessaye à l'infini, lancez +<filename>tip</filename> dans une boucle sans fin</para> + + </sect1> + <sect1> + <title>Pourquoi dois-je appuyer deux fois sur CTRL+P pour envoyer un CRTL+P?</title> + + <para>CTRL+P est le caractère par défaut pour <ulink +url="http://www.freebsd.org/cgi/man.cgi?tip">tip</ulink>, pour lui +dire que le caractère suivant est une donnée brute. Vous pouvez +changez ce caractère en n'importe quel autre en utilisant la séquence +d'échappement <filename>~s</filename>, qui équivaut à <quote>set a +variable</quote>.</para> + + <para>Tapez +<quote><filename>~sforce=<single-char></filename></quote> suivit +d'un saut de ligne. <filename><single-char></filename> +correspondant à un simple caractère.Si vous laissez +<filename><single-char></filename> vide, alors le caractère de +``force'' est le caractère nul, que vous pouvez obtenir par CTRL+2 ou +CTRL+SPACE. La meilleur valeur pour ce caractère est SHIFT+CTRL+6, que +je n'ai vu que utilisé que sur peu de terminaux.</para> + + <para>Vous pouvez affecter la valeur que vous voulez pour ce +caractère en le spécifiant dans le fichier +<filename>$HOME/.tiprc</filename>:</para> + +<programlisting> +force=<single-char> +</programlisting> + + </sect1> + + <sect1> + <title>Tout d'un coup, tout ce que je tape est en majuscule?</title> + + <para>Vous devez avoir pressé CTRL+A, le caractère ``raise'' de +<ulink url="http://www.freebsd.org/cgi/man.cgi?tip">tip</ulink>, +spécialement concus pour les gens n'ayant pas de caps-lock. Utilisez +comme auparavant, <filename>~s</filename>, et fixez la variable +<quote>raisechar</quote> a une valeur plus raisonnable. En fait, vous +pouvez le mettre à la meme valeur que le caractère de ``force'', si +vous ne désirez jamais utiliser ces fonctionnalités.</para> + + <para>Voici un exemple de fichier <filename>.tiprc</filename> +pour les utilisateurs d'Emacs qui utilisent beaucoup CTRL+2 et +CTRL+A:</para> + +<programlisting> +force=^^ +raisechar=^^ +</programlisting> + + <para>Le caractère <filename>^^</filename> correspond à SHIFT+CTRL+6.</para> + + </sect1> + + <sect1> + <title>Comment effectuer des transferts de fichiers en utilisant <filename>tip</filename>?</title> + + <para>Si vous dialoguez avec un autre système UNIX, vous pouvez +envoyer et recevoir des fichiers en utilisant la commande +<filename>~p</filename>(put) et <filename>~t</filename>(take). Ces +commandes utilisent les commandes <ulink +url="http://www.freebsd.org/cgi/man.cgi?cat">cat</ulink> et <ulink +url="http://www.freebsd.org/cgi/man.cgi?echo">echo</ulink> sur le +système distant pour recevoir et envoyer les fichiers. La syntaxe de +ces commandes est:</para> + +<programlisting> +~p <fichier-local> [<fichier-distant>] +~t <fichier-distant> [<fichier-local>] +</programlisting> + + <para>Il n'y a aucun controle d'erreur, donc il vaut mieux +utiliser un autre protocol comme zmodem.</para> + + </sect1> + + <sect1> + <title>Comment dialoguer en zmodem avec <filename>tip</filename>?</title> + + <para>Il faut, pour commencer, installer un des programmes +zmodem depuis les ports(un de ceux de la catégorie comms <ulink +url="http://www.freebsd.org/cgi/ports.cgi?^lrzsz">lrzsz</ulink> ou +<ulink url="http://www.freebsd.org/cgi/ports.cgi?^rzsz">rzsz</ulink>). +</para> + + <para>Pour recevoir un fichier, démarrez le programme d'envoi +des données sur le système distant. Ensuite pressez entrée puis tapez +<quote><filename>~C rz</filename></quote> (ou <quote><filename>~C +lrz</filename></quote> si vous avez installé lrzsz) pour recevoir le +fichier.</para> + + <para>Pour envoyer des fichiers, démarrez le programme de +réception sur le système distant. Ensuite tapez entrée et tapez +<quote><filename>~C sz <files></filename></quote>(ou +<quote><filename>~C lsz <files></filename></quote>) pour envoyer +le fichier.</para> + </sect1> + + <sect1> + <title> FreeBSD ne trouve pas mes ports séries, même avec les bonnes valeurs de configuration . </title> + <para>Certaines cartes mères et les cartes comportant des Composants +UART Acer, ne sont pas reconnues correctement par le programme de +détection de FreeBSD. Un patch est disponible à <ulink +url="http://www.lemis.com/serial-port-patch.html"> www.lemis.com +</ulink> pour résoudre votre problème.</para> + + </sect1> + + </chapter> + diff --git a/fr_FR.ISO_8859-1/books/faq/troubleshoot.sgml b/fr_FR.ISO_8859-1/books/faq/troubleshoot.sgml new file mode 100644 index 0000000000..7faa53e036 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/faq/troubleshoot.sgml @@ -0,0 +1,640 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: 1.9 +--> + +<chapter id="troubleshoot"> + <title>Résolutions des incidents</title> + + <sect1 id ="awre"> + <title>J'ai des secteurs défectueux sur mon disque dur !</title> + + <para>Pour les disques SCSI, le disque devrait être capable de réallouer + ceux-ci automatiquement. Quoiqu'il en soit, beaucoup de disques sont + livrés avec cette fonctionnalité désactivée, pour une raison + mystérieuse...</para> + + <para>Pour l'activer, vous aurez à éditer le <foreignphrase>first device + page mode</foreignphrase>, ce qui peut être fait sur FreeBSD en tapant + la commande (sous root) + + <programlisting> + scsi -f /dev/rsd0c -m 1 -e -P 3 + </programlisting> + </para> + + <para>et en changeant la valeur de AWRE et ARRE de 0 à 1 : + + <programlisting> + AWRE (Auto Write Reallocation Enbld): 1 + ARRE (Auto Read Reallocation Enbld): 1 + </programlisting> + </para> + + <para>Les paragraphes suivants ont été soumis par + <ulink url="mailto:tedm@toybox.placo.com">Ted Mittelstaedt</ulink> : + </para> + + <para>Pour les disques IDE, le moindre secteur défectueux est habituellement + un signe d'incident potentiel. + Tous les disques IDE modernes sont livrés avec la réallocation des + secteurs défectueux activée. + Tous les fabriquants de disques durs IDE offrent aujourd'hui des + garanties étendues et remplaceront les disques possédant des secteurs + défectueux.</para> + + <para>Si vous voulez toutefois essayer de récupérer un disque IDE avec des + secteurs défectueux, vous pouvez essayer de télécharger le programme de + diagnostic du fabriquant de disque IDE et de le faire exécuter sur le + disque. Quelquefois, ces programmes peuvent être configurés pour + forcer l'électronique du disque à rebalayer le disque pour les secteurs + défectueux et leur inhibition.</para> + + <para>Pour les disques ESDI, RLL et MFM, les secteurs défectueux font + partie de la vie normale du disque et ne sont pas signes d'incidents, + généralement. Avec un PC, la carte contrôleur de disque et le BIOS + prennent en charge la tâche d'inhibition des secteurs défectueux. + C'est bien pour les systèmes d'exploitation comme DOS qui + utilisent le code du BIOS pour accéder au disque. Toutefois, + le driver de disque FreeBSD ne passe pas par le BIOS, aussi + un mécanisme, <application>bad144</application>, existe pour remplacer + cette fonctionnalité. + <application>bad144</application> ne fonctionne qu'avec le driver + <devicename>wd</devicename>, il ne peut + <emphasis remap="bf">pas</emphasis> être utilisé avec le SCSI. + <application>bad144</application> fonctionne en entrant tous les + secteurs défectueux trouvés dans un fichier spécial.</para> + + <para>Un inconvénient avec <application>bad144</application> - + le fichier spécial des secteurs défectueux est placé sur la dernière + piste du disque. + Comme ce fichier contient peut-être une liste de secteurs dont l'un + serait près du début du disque, où le fichier noyau + <filename>/kernel</filename> serait aussi localisé, il doit donc être + accéssible au progamme d'amorce (<foreignphrase>bootstrap</foreignphrase>) + qui utilise les appels du BIOS pour lire le fichier du noyau. + Cela signifie qu'un disque géré avec <application>bad144</application> + ne peut dépasser 1024 cylindres, 16 têtes et 63 secteurs. + Cela place une limite effective de 500Mo sur un disque qui est réalloué + avec <application>bad144</application>.</para> + + <para>Pour utiliser <application>bad144</application>, positionnez + simplement le balayage des secteurs défectueux <foreignphrase>Bad + Block</foreignphrase> à <foreignphrase>ON</foreignphrase> dans + le menu <command>fdisk</command> de FreeBSD lors de l'installation + initiale. + Cela marche jusqu'à la version 2.2.7 de FreeBSD. + Le disque doit avoir moins de 1024 cylindres. + Il est généralement recommandé de laisser tourner préalablement le disque + pendant plus de 4 heures avant cette opération, pour tenir compte de la + dilatation thermique et des pistes errantes.</para> + + <para>Si le disque a plus de 1024 cylindres (comme un gros disque ESDI), + le contrôleur ESDI utilise un mode de translation spécial pour le + faire fonctionner sous DOS. + Le driver <devicename>wd</devicename> comprend ces modes de translation, + <emphasis remap="bf">si</emphasis> vous entrez la géométrie "translatée" + avec la commande <command>set geometry</command> dans + <command>fdisk</command>. + De plus, vous ne devez <emphasis remap="bf">pas</emphasis> utiliser le + mode <foreignphrase>dangerously dedicated</foreignphrase> de création + d'une partition FreeBSD, parce qu'il ignore la géométrie. + De plus, même si <command>fdisk</command> va utiliser votre géométrie + surchargée, il continue à connaître la vrai taille du disque + et va tenter de créer une partition FreeBSD trop grande. + Si la géométrie du disque est remplacée par la géométrie + translatée, la partition <emphasis remap="bf">doit</emphasis> + être créée manuellement avec le nombre de secteurs.</para> + + <para>Un truc rapide à utiliser est d'initialiser le gros disque + ESDI avec le contrôleur ESDI, le démarrer avec un disque DOS + et le formatter avec une partition DOS. + Puis, démarrez l'installation FreeBSD et dans le menu + <command>fdisk</command>, lire depuis l'écran et écrire à côté la taille + et le nombre de secteurs de la partition DOS. + Puis, réinitilisez la géométrie comme celle de DOS en détruisant + la partition DOS et en créant une partition FreeBSD + <foreignphrase>cooperative</foreignphrase> avec la taille + précédemment notée. + Puis positionnez la partition pour être amorçable et autorisez + le balayage des secteurs défectueux. + Pendant l'installation réelle, <command>bad144</command> + passera en premier, avant la moindre création de systèmes de + fichiers (vous pouvez le voir avec un <command>Alt-F2</command>). + S'il a le moindre problème pour créer le fichier des secteurs + défectueux, vous avez initialisé une géométrie de disque trop + grande - redémarrez le système et recommencez tout + depuis le début (y compris le repartitionnement et reformattage + en DOS).</para> + + <para>Si la réallocation est autorisée et que vous voyez des + secteurs défectueux, envisagez un remplacement du disque. + Les secteurs défectueux ne feront que s'aggaver au fil du temps.</para> + </sect1> + + <sect1> + <title>FreeBSD ne reconnait pas ma carte EISA SCSI Bustek 742a !</title> + + <para>Cette information est spécifique à la 742a, mais peut aussi couvrir + les autres cartes Buslogic (Bustek = Buslogic).</para> + + <para>Il y a 2 ``versions'' générales de la carte 742a. + Ce sont les révisions matérielles A-G et H - et plus. + La lettre de révision est placée après le numéro d'assemblage + sur le bord de la carte. + La 742a possède 2 puces ROM dessus, l'une est la puce BIOS et l'autre + est la puce Firmware. + Si FreeBSD ne fait pas attention à la version de la puce BIOS que vous + avez, il le fait par contre pour la version de la puce Firmware. + Buslogic vous enverra des ROMs de mise à jour si vous appelez leur support + technique. + Les puces BIOS et Firmware sont appariées. + Vous devez avoir la ROM Firmware la plus en cours dans votre carte + d'adaptatation pour votre révision de matériel.</para> + + <para>Les cartes REV A-G ne peuvent recevoir que les versions de + BIOS/Firmware 2.41/2.21. + Les cartes REV H - et plus peuvent accepter les plus récente + versions de BIOS/Firmware 4.70/3.37. + La différence entre ces jeux de firmware est que le 3.37 supporte + l'allocation tournante (<foreignphrase>``round robin''</foreignphrase>). + </para> + + <para>Les cartes Buslogic ont aussi un numéro de série inscrit. Si vous + avez une vieille révision de carte, vous pouvez appeler le département + Buslogic RMA et leur donner le numéro de série afin d'essayer d'échanger + celle-ci contre une révision plus récente. + Si votre carte n'est pas trop vieille, il l'échangeront.</para> + + <para>FreeBSD 2.1 ne supporte que les versions firmware 2.21 et plus. + Si vous avez une version Firmware plus vieille, votre carte ne sera + pas reconnue comme une carte Buslogic. + Elle peut malgré tout être reconnue comme une carte Adaptec 1540. + La vieille carte firmware contient un mode ``émulation'' AHA1540. + Quoiqu'il en soit, ce n'est pas une bonne chose pour une carte EISA. + </para> + + <para>Si vous avez une vieille révision de carte et que vous obtenez le + firmware 2.21, vous aurez à vérifier la position du cavalier + (<foreignphrase>jumper</foreignphrase>) W1 à B-C ; par défaut, + il est positionné à A-B.</para> + + <para>Les cartes EISA 742q n'ont jamais eu le problème ``>16Mo'' + mentionné dans la section <ulink url="bigram">sur les machines >16 Mo + </ulink>. + Ceci est un problème qui apparaît avec les cartes SCSI Buslogic + Vesa-Local.</para> + </sect1> + <sect1> + <title>Mon contrôleur SCSI HP Netserver n'est pas détecté !</title> + + <para>C'est à la base un problème connu. + Le contrôleur SCSI-EISA intégré sur la carte mère des machines HP + Netserver occupe le slot EISA numéro 11, aussi tous les ``vrais'' + slots EISA se retrouvent devant lui. + Malheureusement, l'espace d'adressage pour les slots EISA >= 10 se + retrouve en conflit avec l'espace d'adressage assigné aux slots PCI, et + l'auto-configuration de FreeBSD ne peut actuellement pas très bien gérer + cette situation.</para> + + <para>Donc, pour le moment, le mieux que vous ayez à faire, est + de prétendre qu'il n'y a pas de conflit de plage d'adresse :-), + en propulsant l'option du noyau <filename>EISA_SLOTS</filename> + à la valeur 12. + Configurez et compilez un noyau comme décrit dans + <ulink url="&url.handbook;kernelconfig.html">le manuel de référence + sur la configuration du noyau</ulink>.</para> + + <para>Bien sûr, cela se présente comme le problème bien connu de la poule et + de l'oeuf lorsque l'on installe sur une telle machine. Afin de pouvoir + contourner ce problème, un <foreignphrase>hack</foreignphrase> spécial + est disponible au moment de la configuration utilisateur + (<foreignphrase>UserConfig</foreignphrase>). Ne pas utiliser + l'interface ``visual'', mais l'interface en mode texte. Tapez + simplement :</para> + + <programlisting> +eisa 12 +quit + </programlisting> + + <para>au prompt, et installez le système comme d'habitude. + Quoiqu'il en soit, il est recommandé de compiler et d'installer + un noyau adapté.</para> + + <para><ulink url="http://www.freebsd.org/cgi/man.cgi?dset">dset</ulink> + comprend aussi maintenant qu'il faut sauver cette valeur.</para> + + <para>Heureusement, les versions futures auront une solution appropriée + à ce problème.</para> + + <note> + <para>Vous ne pouvez pas utiliser un disque *dangereusement dédié* + (<foreignphrase>dangerously dedicated</foreignphrase>) avec un + Netserver HP. + Voir <ulink url="http://www.freebsd.org/cgi/man.cgi?dedicate">cette note + </ulink> pour plus d'informations.</para></note> + </sect1> + <sect1> + <title> Que se passe-t'il avec le contrôleur CMD640 IDE controller? </title> + + <para> +Il ne marche pas, Il ne peut pas manipuler des commandes sur +les deux canaux simultanément. + </para> + + <para> +Il y a un détour disponible à présent, et elle s'active automatiquement +si votre système utilise cette puce. Pour plus de détails, référez-vous à +la page de manuel du driver de dique (man 4 wd). + </para> + + <para> +Si vous lancez déjà FreeBSD 2.2.1 ou 2.2.2 avec un contrôleur +IDE CMD640 et que vous voulez utiliser le deuxième canal, construisez un +nouveau noyau avec les options <filename>options "CMD640"</filename> activé. +Il est mis par défaut pour FreeBSD 2.2.5 et plus. + </para> + </sect1> + + <sect1> + <title> Je n'arrête pas de voir ``<filename>ed1: timeout</filename>''. </title> + + <para> +Cela est généralement causé par un conflit d'interruption (par exemple , +2 cartes utilisant le même IRQ). FreeBSD avant 2.0.5R était tolérant et +fonctionnait même en cas de conflit d'IRQ. Mais à partir du 2.0.5R, les +conflits ne sont plus tolérés. +Booter avec l'option -c et changer l'ed0/de0/... pour se conformer à +votre carte. + </para> + + <para> +Si vous utilisez un connecteur BNC sur votre carte réseau, vous pouvez +aussi voir des timeouts sur les périphériques à cause de mauvaise +terminaison. Pour le vérifier, attachez un terminateur directement au +NIC (sans câble) et regardez si les messages d'erreurs disparaissent. + </para> + + <para> +Certaines cartes compatibles NE2000 donneront une telle erreur s'il n'y +a pas de liaison sur le port UTP ou si le cable est déconnecté. + </para> + </sect1> + + <sect1> + <title> Quand je monte le CD-ROM, j'obtiens ``Incorrect super block''. </title> + + <para> +Vous devez spécifier à +<ulink url="http://www.freebsd.org/cgi/man.cgi?mount"> mount </ulink> +le type de périphérique que vous voulez monter. Par défaut, +<ulink url="http://www.freebsd.org/cgi/man.cgi?mount"> mount </ulink> +supposera que le système de fichier est de type +``<filename>ufs</filename>''. +Vous pouvez vouloir monter un système de fichier CDROM, et vous pouvez le +faire en spécifiant l'option ``<filename>-t cd9660</filename>'' à +<ulink url="http://www.freebsd.org/cgi/man.cgi?mount"> mount </ulink>. +Cela suppose évidemment que le CDROM contienne un système de fichier +ISO 9660 , qui est celui qu'ont presque tous les CDROM. +Comme pour le 1.1R, FreeBSD comprend automatiquement les extensions +Rock Ridge (nom long). + </para> + + <para> +Par exemple, si vous voulez monter le lecteur CDROM +``<filename>/dev/cd0c</filename>'', sous le répertoire <filename>/mnt</filename>, +vous aurez à exécuter : + + <programlisting> +mount -t cd9660 /dev/cd0c /mnt + </programlisting> + </para> + + <para> +Bien noter que le nom du périphérique (``<filename>/dev/cd0c</filename>'' +de cet +exemple peut être différent suivant l'interface du CDROM. +Noter que l'option ``<filename>-t cd9660</filename>'' ne fait qu'exécuter la commande +``<filename>mount_cd9660</filename>'', c'est ainsi que l'exmple pourrait être +simplifié en : + + <programlisting> +mount_cd9660 /dev/cd0c /mnt + </programlisting> + </para> + </sect1> + + <sect1> + <title> Quand je monte un CDROM, j'obtiens ``Device not configured''. </title> + + <para> +Cela veut généralement dire qu'il n'y a pas de CDROM dans le lecteur de +CDROM, ou que le lecteur n'est pas visible du bus. Mettez un disque dans +le lecteur, et/ou vérifiez son état maître/esclave si c'est un IDE +(ATAPI). Cela peut prendre quelques secondes pour le lecteur CDROM pour +s'apercevoir qu'il y a un disque, alors, soyez patient. + </para> + + <para> +De temps en temps, un lecteur CD-ROM SCSI peut être manqué car il n'a +pas eu assez de temps pour répondre à la réinitialisation du bus. Si +vous avez un lecteur CDROM SCSI, essayez d'ajouter la ligne suivante +dans votre fichier de configuration du noyau, et recompilez. + </para> + + <programlisting> +options "SCSI_DELAY=15" + </programlisting> + </sect1> + + <sect1> + <title> Mon imprimante est extrêmement lente, que puis-je faire ? </title> + + <para> +Si c'est du parallèle, et que le seul problème est qu'elle est +terriblement lente, essayez de positionner votre port imprimante +en mode ``poller'': + + <programlisting> +lptcontrol -p + </programlisting> + </para> + + <para> +Certaines nouvelles imprimantes HP sont soupçonnées de ne pas fonctionner +correctement en mode interruption, apparemment, cela est dû a certains +problème de timing (mais cela n'est pas encore exactement compris). + </para> + </sect1> + + <sect1> + <title>Mes programmes se tuent souvent avec l'erreur ``Signal 11''.</title> + <para> +Cela peut-être causé par du mauvais matériel (mémoire, carte mère...). +Essayez de lancer un programme de test de mémoire sur votre PC. Notez +que même si chaque programme de test de mémoire essayeront de vous dire +que tout va bien, il est possible que certaines rares zones de mémoire +passent tous les tests mémoires, mais échouent pourtant durant certaines +conditions d'opération (comme pendant qu'un bus maîtrise l'accès direct +à la mémoire depuis un contrôleur SCSI comme l'Adaptec 1542, quand vous +chargez la mémoire en compilant le noyau, ou quand le système tourne +dans des conditions très critiques) + </para> + + <para> +La FAQ sur SIG11 (listée ci-dessous) dénonce les mémoires lentes comme +étant le problème le plus courant. Augmentez le nombre d'états d'attente +dans votre configuration du BIOS ou récupérez de la mémoire plus rapide. + </para> + + <para> +Pour moi, la partie incriminée a été une mauvaise mémoire cache, ou un +mauvais contrôleur cache. Essayez de désactiver le cache secondaire dans +la setup BIOS, et regardez si cela résoud le problème. + </para> + + <para>Il y a une FAQ plus détaillée sur +<ulink url="http://www.bitwizard.nl/sig11/"> la FAQ du problème SIG11 </ulink> + </para> + </sect1> + + <sect1> + <title> Quand je boote, l'écran devient noir, et perd sa synchronisation </title> + + <para> +Ceci est un problème connu avec les cartes vidéo ATI Mach 64. +Le problème est que cette carte utilise l'adresse <filename>2e8</filename>, et que +le quatrième port série aussi. Dû à un bug (une fonctionnalité ?) dans +le driver +<ulink url="http://www.freebsd.org/cgi/man.cgi?sio"> sio.c </ulink>, +cela touchera ce port même si vous n'avez pas ce quatrième +port série, et *même* si vous désactives sio3 (le quatrième +port) qui utilise normalement cette adresse. + </para> + + <para>Jusqu'à ce que ce bug soit fixé, vous pouvez utiliser cette astuce : + + <itemizedlist> + <listitem><para> +Entrez <filename>-c</filename> à l'invite. +(Cela mettra le noyau en mode configuration). + </para></listitem> + <listitem><para>Désactivez <filename>sio0</filename>, + <filename>sio1</filename>, <filename>sio2</filename> and + <filename>sio3</filename> (tous). +De cette manière, le driver sio ne sera pas activé. +et donc plus de problèmes. + </para></listitem> + <listitem><para>Tapez exit et continuez le rebootage. + </para></listitem> + </itemizedlist> + </para> + + <para> +Si vous voulez pouvoir utiliser les ports séries, vous aurez à construire +un nouveau noyau avec les modifications suivantes : + +Dans <filename>/usr/src/sys/i386/isa/sio.c</filename> cherchez la seule occurence de +la chaîne <filename>0x2e8</filename> et enlevez cette chaîne et la virgule +précédente (gardez la virgule de liaison). Puis suivre la procédure +normale de la construction d'un nouveau noyau. + </para> + + <para> +Même après avoir appliqué toutes ces astuces, vous pouvez trouver que X +Window ne marche pas correctement, Certaines nouvelles cartes vidéo +ATI Mach 64 (notamment ATI Mach Xpression) ne marche pas avec la version +actuelle de <filename>XFree86</filename>; l'écran devient noir quand vous démarrez +X Window, ou alors il marche avec des problèmes étranges. Vous pouvez +obtenir la version beta d'un nouveau serveur X qui marche mieux. +Regardez sur +<ulink url="http://www.xfree86.org"> le site XFree86 site </ulink> +et suivez les liens à la nouvelle beta release. Récupérez les fichiers +suivants : + </para> + + <para> + <filename> +AccelCards, BetaReport, Cards, Devices, FILES, README.ati, +README.FreeBSD, README.Mach64, RELNOTES, VGADriver.Doc, +X312BMa64.tgz + </filename> + </para> + + <para> +Remplacez les vieux fichiers avec ceux de la nouvelle version et +vérifiez que vous lancez bien : +<ulink url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&query=xf86config"> xf86config </ulink> +à nouveau. + </para> + </sect1> + + <sect1> + <title> J'ai 128 MB de RAM mais le système n'en voit que 64 MB. <!-- id="reallybigram">--> </title> + + <para> +Dûe à la façon dont FreeBSD récupère la taille de la mémoire depuis le +BIOS, il ne peut seulement détecter qu'une taille dont la valeur est +codée en kilo-octets par 16 bits (65535 Ko = 64MB) (ou moins... certains +BIOS tronque la taille de la mémoire à 16Mo). +Si vous avez plus de 64 Mo, FreeBSD tentera de le détecter, mais il se +peut que cette tentative échoue. + </para> + + <para> +Pour contourner ce problème, vous devez utiliser l'option du noyau +donnée ci-dessous. Il y a une manière de récupérer les informations +complète de la mémoire depuis le BIOS, mais nous n'avons pas assez de +place sur les blocks de boot pour le faire. Un jour, quand le manque de +place sur les blocs de boots sera résolu, nous utiliserons les +fonctions du BIOS étendu pour récupérer l'information complète sur la +mémoire... mais pour l'instant, nous utilisons cette option du noyau. + + <filename> +options "MAXMEM=<n>" + </filename> + +Où <filename>n</filename> est votre mémoire en KiloOctet. Pour une machine à +128Mo, vous pouvez utiliser <filename>131072</filename>. + </para> + </sect1> + + <sect1> + <title> FreeBSD 2.0 panique avec ``kmem_map too small!'' </title> + + <para> + <filename>Note : </filename>Le message peut aussi être ``mb_map too small!'' + </para> + + <para> +La panique indique que le système n'a plus de mémoire virtuelle pour les +buffers réseau (spécialement mbuf clusters). Vous pouvez augmenter +la quantité de mémoire virtuelle disponible pour les clusters mbuf en +ajoutant : + </para> + + <para> + <filename>options "NMBCLUSTERS=<n>"</filename> + </para> + + <para> +dans votre configuration du kernel, où <n> est un nombre compris +entre 512 et 4096, suivant le nombre de connexions concurrentes TCP que +vous aurez à supporter. Je vous recommande d'utiliser 2048 - cela devrait +vous débarasser complètement de cette panique. +Vous pouvez contrôler le nombre de clusters mbuf alloué/en cours +d'utilisation sur votre système, avec +<ulink url="http://www.freebsd.org/cgi/man.cgi?netstat"> netstat -m </ulink>. +La valeur par défaut pour NMBCLUSTERS est + <filename>512 + MAXUSERS * 16/</filename>. + </para> + </sect1> + + <sect1> + <title> ``CMAP busy panic'' au moment d'un reboot avec un nouveau noyau. </title> + + <para> +La logique permettant de détecter un fichier obsolète + <filename>/var/db/kvm_*.db</filename> peut parfois échouer et utiliser un fichier non +approprié peut alors conduire à cette panique. + </para> + + <para>Si cela arrive, rebooter en mode single-user et faites : + </para> + + <programlisting> +rm /var/db/kvm_*.db + </programlisting> + </sect1> + + <sect1> + <title>ahc0: brkadrint, Illegal Host Access at seqaddr 0x0</title> + <para> +C'est un conflit avec l'adaptateur hôte Ultrastor SCSI. + </para> + + <para> +Durant la procédure de boot, entrez dans le menu de configuration du +noyau et désactivez +<ulink url="http://www.freebsd.org/cgi/man.cgi?uha(4)"> uha0" </ulink> +qui est à la cause de ce problème. + </para> + </sect1> + + <sect1> + <title>Sendmail me dit ``mail loops back to myself''</title> + <para> +Cela est répondu dans la FAQ sendmail de la façon suivante : + </para> + + + + <programlisting> +* Je reçois des messages "Local configuration error" messages, comme: + +553 relay.domain.net config error: mail loops back to myself +554 <user@domain.net>... Local configuration error + +Comment puis-je résoudre ce problème ? + +Vous avez demandé que les mails adressés au domaine (par exemple domain.net) +soient dirigés vers un hôte spécifique (dans ce cas relay.domain.net) en +utilisant un enregistrement MX, mais la machine de relai ne s'est pas reconnu +lui-même comme domain.net. Ajoutez domain.net à /etc/sendmail.cw +(si vous utilisez FEATURE(use_cw_file)) ou ajoutez "Cw domain.net" à +/etc/sendmail.cf. + </programlisting> + + + + <para> +La version actuelle de +<ulink url="ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/sendmail-faq"> la FAQ sendmail </ulink> +n'est plus maintenue avec la release sendmail. Mais elle est de toute +façon postée régulièrement à : +<ulink url="news:comp.mail.sendmail"> comp.mail.sendmail </ulink>, +<ulink url="news:comp.mail.misc"> comp.mail.misc </ulink>, +<ulink url="news:comp.mail.smail"> comp.mail.smail </ulink>, +<ulink url="news:comp.answers"> comp.answers </ulink>, et +<ulink url="news:news.answers"> news.answers </ulink>. +Vous pouvez aussi en recevoir une copie par courrier électronique, en +envoyant un mail à : +<ulink url="mailto:mail-server@rtfm.mit.edu"> mail-server@rtfm.mit.edu </ulink> +avec la commande +with the command "send usenet/news.answers/mail/sendmail-faq" +comme corps de message. + </para> + </sect1> + + <sect1> + <title> Les applications plein-écran sur des machines distantes se comportent étrangement. </title> + <para> +La machine distante peut régler votre type de terminal à autre chose que +le type de terminal <filename>cons25</filename> utilisé par la console FreeBSD. + </para> + <para> +Il y a un certains nombres de contournement de ce problème : + </para> + <itemizedlist> + <listitem><para> +Après s'être loggué sur la machine distante, positionnez votre variable +d'environnement TERM à soit <filename>ansi</filename> soit <filename>sco</filename>.</para></listitem> + <listitem><para>Utilisez localement un émulateur VT100 comme +<ulink url="http://www.freebsd.org/cgi/ports.cgi?screen">. screen </ulink> + <filename>screen</filename> permet la possibilité de lancer plusieurs sessions +concurentes depuis un terminal.</para></listitem> + <listitem><para>Installez l'entrée <filename>cons25</filename> du terminal dans la base de données +sur la machine distante.</para></listitem> + <listitem><para> +fire up X et login vers la machine distante depuis un + <filename>xterm</filename>. + </para></listitem> + </itemizedlist> + </sect1> + + </chapter> + diff --git a/fr_FR.ISO_8859-1/books/faq/x.sgml b/fr_FR.ISO_8859-1/books/faq/x.sgml new file mode 100644 index 0000000000..342b35bd8b --- /dev/null +++ b/fr_FR.ISO_8859-1/books/faq/x.sgml @@ -0,0 +1,475 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + + <chapter id="x"> + <title> Le système X-Windows et les consoles virtuelles </title> + + <sect1> + <title> Je veux lancer X, comment dois-je faire ? </title> + + <para> +La manière la plus simple est de spécifier au moment de +l'installation que l'on veut utiliser X. + </para> + + <para> +Puis, lire la documentation suivante sur l'outil +<ulink url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&query=xf86config"> xf86config </ulink>, qui vous aidera dans la configuration de +XFree86(tm) pour vos cartes graphiques, souris etc... + </para> + + + <para> +Vous pouvez aussi regarder du côté du serveur Xaccel qui est disponible +pour un prix très raisonnable/ Voir la section sur +<ulink url="http://www.freebsd.org/cgi/man.cgi?manpath=xig"> Xi Graphics </ulink>pour plus de détails. + </para> + </sect1> + + <sect1> + <title> Pourquoi ma souris ne marche pas sous X ? <anchor id="x-and-moused"> </title> + + <para> +Si vous utilisez syscons (le driver par défaut de la console), +vous pouvez configurer FreeBSD de telle sorte qu'il puisse supporter un +pointeur de souris sur chacun des écrans virtuels. Afin d'éviter des +conflits avec X, les supports syscons un périphérique virtuel nommé +``<filename>/dev/sysmouse</filename>''. +Tous les évènement liés à la souris sont écrit vers le périphérique +sysmouse, en utilsant le protocole MouseSystems. Si vous voulez utiliser +votre souris sur une console virtuelle ou plus, +<emphasis remap="bf">et</emphasis> utiliser X, la configuration suivante +est recommandée. + + <programlisting> +/etc/rc.conf: +moused_type=ps/2 # or whatever your actual type is +moused_port=/dev/psm0 # or whatever your real port is +moused_flags= + +/etc/XF86Config +Section Pointer +Protocol "MouseSystems" +Device "/dev/sysmouse" +..... + </programlisting> + </para> + + <para> +Certaines personnes préfèrent utiliser ``<filename>/dev/mouse</filename>'' +sous X. Ppour le faire marcher, ``<filename>/dev/mouse</filename>'' +devrait être un lien symbolique pour +<ulink url="http://www.freebsd.org/cgi/man.cgi?sysmouse"> /dev/sysmouse</ulink> + <programlisting> + cd /dev + rm -f mouse + ln -s sysmouse mouse + </programlisting> + </para> + </sect1> + + <sect1> + <title> les menus X Window et les boîtes de dialogue ne marchent pas bien! </title> + + <para> +Essayez de désactiver la touche Num Lock. + </para> + + <para> +Si votre touche Num Lock est activée par défaut au moment du boot, vous +pouvez ajouter la ligne suivante dans la section +``<emphasis>Keyboard</emphasis>'' du fichier + <filename>XF86config</filename>. + </para> + + <programlisting> + Let the server do the NumLock processing. This should only be + required when using pre-R6 clients +ServerNumLock + </programlisting> + </sect1> + + <sect1> + <title> Qu'est ce qu'une console virtuelle, et comment puis-je en avoir plus ? </title> + + <para> +En gros, les consoles virtuelles vous permettent d'avoir plusieurs +sessions simultanées sur la même machine sans faire de trucs compliqués +du genre monter un réseau, ou lancer X. + </para> + + <para> +Quand le système démarre, il vous affichera une invite de login sur le +moniteur juste après avoir affiché les messages du boot. Vous pouvez +taper votre login et votre mot de passe et commencer à travailler (ou à +jouer !) sur la première console virtuelle. + </para> + + <para> +A un moment, vous voudrez probablement ouvrir une autre session, par +exemple pour lire la documentation d'un programme que vous êtes en train +d'exécuter, ou alors lire le courrier en attendant qu'un transfert FTP +se termine. Fais juste Alt-F2 (Appuyez en maintenant la touche Alt +puis, pressez F2), et vous trouverez une invite de login vous attendant +sur la seconde ``console virtuelle ''! Quand vous voudrez revenir à la +session de départ, faites Alt-F1. + </para> + + <para> +L'installation par défaut de FreeBSD a 3 consoles virtuelles activées, +et Alt-F1, Alt-F2, et d Alt-F3 vous permettra de basculer entre ces +consoles virtuelles. + +Pour en activer plus, éditez +<ulink url="http://www.freebsd.org/cgi/man.cgi?ttys">/etc/ttys</ulink> +et ajoutez les entrées pour ``<filename>ttyv4</filename>'' +à +``<emphasis remap="tt">ttyvc</emphasis>'' après les commentaires sur les ``terminaux virtuels'': + + <programlisting> + Edit the existing entry for ttyv3 in /etc/ttys and change + "off" to "on". +ttyv3 "/usr/libexec/getty Pc" cons25 on secure +ttyv4 "/usr/libexec/getty Pc" cons25 on secure +ttyv5 "/usr/libexec/getty Pc" cons25 on secure +ttyv6 "/usr/libexec/getty Pc" cons25 on secure +ttyv7 "/usr/libexec/getty Pc" cons25 on secure +ttyv8 "/usr/libexec/getty Pc" cons25 on secure +ttyv9 "/usr/libexec/getty Pc" cons25 on secure +ttyva "/usr/libexec/getty Pc" cons25 on secure +ttyvb "/usr/libexec/getty Pc" cons25 on secure + </programlisting> + </para> + + <para> +Utilisez en autant que vous voulez/ Mais plus vous avez de terminaux +virtuels, plus vous utilisez de ressources; cela peut-être important si +vous avez 8Mo de RAM ou moins. Vous pouvez aussi changer +``<filename>secure</filename>'' to ``<filename> insecure</filename>''. + </para> + + <para> +<emphasis remap="bf">NOTE IMPORTANTE</emphasis> si vous +voulez lancer un serveur X, vous <emphasis remap="bf">DEVEZ</emphasis> +avoir au moins un terminal virtuel non utilisé (ou désactivé)afin qu'il +puisse l'utiliser. +Tout cela pour dire que si vous voulez une invite de prompt pour les tous +les 12 de vos touches Alt-fonctions, pas de chance, vous pourrez le faire +que pour 11 d'entre eux si vous voulez aussi lancer un serveur X sur cette +machine. + </para> + + <para> +La meilleure façon de désactiver une console est de la déselectionner. +Par exemple, si vous avez alloué tous les 12 terminaux mentionné +ci-dessus, et que vous voulez lancer X, vous aurez à changer le réglage +pour le terminal virtuel 12 de : + + <programlisting> +ttyvb "/usr/libexec/getty Pc" cons25 on secure + </programlisting> + </para> + + <para>à: + + <programlisting> +ttyvb "/usr/libexec/getty Pc" cons25 off secure + </programlisting> + </para> + + <para> +Si votre clavier n'a que 10 touches de fonctions, vous pouvez terminer +par : + + <programlisting> +ttyv9 "/usr/libexec/getty Pc" cons25 off secure +ttyva "/usr/libexec/getty Pc" cons25 off secure +ttyvb "/usr/libexec/getty Pc" cons25 off secure + </programlisting> + </para> + + <para> +(Vous pouvez aussi juste effacer ces lignes) + </para> + + <para> +Une fois que vous avez édité +<ulink url="http://www.freebsd.org/cgi/man.cgi?ttys"> /etc/ttys" </ulink>, +l'étape suivante est de s'assurer que vous avez assez de périphériques de +terminaux virtuels. +La plus simple manière de procéder est : + + <programlisting> + cd /dev + ./MAKEDEV vty12 # For 12 devices + </programlisting> + </para> + + <para> +Ensuite, la plus simple (et plus propre) manière d'activer la console +virtuelle est de rebooter. Malgrè tout, si vous voulez vraiment +ne pas avoir è rebooter, vous pouvez juste arrêter le système X Window +et exécuter <emphasis remap="tt">root</emphasis>. + + <programlisting> +kill -HUP 1 + </programlisting> + </para> + + <para> +Il est impératif d'arrêter complètement X Window s'il est en train de +marcher, avant de lancer cette commande. Si vous ne le faite pas, votre +système, se trouvera probablement suspendu/bloqué après le lancement de +la commande kill. + </para> + </sect1> + + <sect1> + <title>Comment accéder à mes consoles virtuelles depuis X ? </title> + + <para> +Si la console est actuellement en train d'afficher X Window, vous pouvez +utiliser Ctrl-Alt-F1, etc. pour passer d'une console à une autre. + +Notez cependantm qu'une fois que vous avez basculé depuis X Window vers un +terminal virtuel, vous ne pouvez utiliser seulement les touches de fonctions +Alt- pour passer à un autre terminal virtuel ou revenir è X Window. +Vous n'avez pas à maintenir enfoncé la touche Ctrl. Si vous utilisez la +touche contrôle pour revenir a X sur certaines vieilles versions, vous +pouvez retrouver votre console texte bloquée en mode ``control-lock'' +Taper la touche contrôle à nouveau pour le débloquer. + </para> + </sect1> + + <sect1> + <title>Comment démarrer XDM au boot ?</title> + + <para> +Il y a deux écoles de pensée à propos du démarrage de +<ulink url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&query=xdm" >xdm</ulink> +Une école démarre xdm epuis +<ulink url="http://www.freebsd.org/cgi/man.cgi?ttys"> <filename>/etc/ttys</filename></ulink> en utilisant l'exemple fourni. +tandis que l'autre lance simplement xdm depuis +<ulink url="http://www.freebsd.org/cgi/man.cgi?rc" > rc.local</ulink> +depuis un script <emphasis remap="tt">X.sh</emphasis> +dans <filename>/usr/local/etc/rc.d</filename>. +Les deux approches sont valides, et suivant les situations, une méthode +peut marcher et pas l'autre. Dans les deux cas, le résultat est le même : +X fera apparaître une incite de login graphique. + </para> + + <para> +La méthode du ttys a l'avantage de documenter quel vty X va démarrer et +en passant la responsabilité de redémarrer le serveur X au logout pour +s'initialiser. La méthode rc.local rend la destruction par un kill de +xdm très facile si jamais un problème de démarrage du serveur X était +rencontré. + </para> + + <para> +Si <emphasis remap="tt">xdm</emphasis> est chargé depuis /etc/rc.local, +il peut-être démarré avec n'importe quel argument (i.e comme un démon). + </para> + + <para> +Une version précédente de la FAQ disait d'ajouter les +<emphasis remap="tt">vt</emphasis> que vous vouliez que X utilise dans le +fichier + <filename>/usr/X11R6/lib/X11/xdm/Xservers</filename>. Cela n'est pas +nécessaire, et X utilisera le premier +<emphasis remap="tt">vt</emphasis> qu'il trouvera. + </para> + </sect1> + + <sect1> + <title> Quand je lance xconsole, j'obtiens ``Couldn't open console'' </title> + + <para>Si vous démarrez +<ulink url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&query=X" >X</ulink> +avec +<ulink url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&query=startx" >startx</ulink>, +les permissions sur /dev/console ne seront <emphasis remap="tt">pas </emphasis> changé, ce qui entraînera que +<ulink url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&query=xterm" >xterm -C</ulink> +et <ulink url= "http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&query=xconsole" >xconsole</ulink> ne marcheront pas. + </para> + + <para> +Cela est dû à la manière dont les droits sur la consoles sont +fixés par défaut. +Sur un système multi-utilisateur, on ne veut pas nécessairement que +n'importe quel utilisateur ait la possibilité d'écrire sur la console +système. Pour les utilisateurs qui se logguent directement sur la +machine avec un VTY, le fichier +<ulink url="http://www.freebsd.org/cgi/man.cgi?fbtab">fbtab</ulink> +est là pour résoudre ce problème. + </para> + + <para> +En pratique, assurez vous d'avoir une ligne décommenté de la forme : + + <programlisting> +/dev/ttyv0 0600 /dev/console + </programlisting> + </para> + + <para>dans<ulink url="http://www.freebsd.org/cgi/man.cgi?fbtab(5)" ><filename>/etc/fbtab</filename></ulink> et cela assurera que quiconque se +logguera sur + <filename>/dev/ttyv0</filename> obtiendra les droits sur la console. + </para> + </sect1> + + <sect1> + <title>Ma souris PS/2 ne se comporte pas bien sous X.</title> + + <para> +Votre souris et votre pilote de souris ont dû se désynchroniser + </para> + + <para> +Dans les versions 2.2.5 et avant, passer de X à un termical virtuel et +revenir à X ensuite , peuvent les re-synchroniser. Si le problème +apparaît souvent, vous pouvez ajouter l'option suivante dans votre +fichier de configuration du noyau, et recompiler. + + <programlisting> +options PSM_CHECKSYNC + </programlisting> + </para> + + <para> +voir la section sur +<ulink url="http://www.freebsd.org/cgi/man.cgi?=make-kernel"> la construction du noyau</ulink> +si vous n'avez aucune expérience dans la recompilation de noyau. + </para> + + <para> +Avec cette option, vous aurez moins de chance d'avoir de problème de +synchronisation entre la souris et le pilote. Si, malgrès tout, vous aviez +ce problème, cliquez sur un bouton quelconque de la souris en maintenant +la souris jusqu'à resynchroniser la souris et le pilote. + </para> + + <para> +Notez que malheureusement cette option peut ne pas marcher avec tous les +systèmes et vide la fonctionnalité ``TAP'' du périphérique ALPS GlidePoint +attaché auport souris PS/2 + </para> + + <para> +Dans les versions 2.2.6 et plus, la vérification de la synchronisation +est un peu mieux faite et est standard avec les pilotes souris PS/2. +Cela devrait même marcher avec GlidePoint. (comme le code de +vérification est devenu une fonctionnalité standard, l'option PSM_CHECKSYNC +n'est pas disponible dans ces versions). Malgrès il y a des rares +cas où le pilote peut de façon erronée repporter des problèmes de +synchronisation, et vous pourrez alors voir le message : + + <programlisting> +psmintr: out of sync (xxxx != yyyy) + </programlisting> + +et voir que votre souris ne marche pas correctement. + </para> + + <para> +Si cela arrive, désactiver le mode de vérification de la synchronization +en positionnant le drapeau pour les pilotes de souris PS/2 à 0x100. +Entrez dans <emphasis>UserConfig</emphasis> en tapant ``<filename>-c</filename>'' option +à l'invite du boot. + + <programlisting> +boot: -c + </programlisting> + +Puis en ligne de comande de <emphasis>UserConfig</emphasis>, tapez : + + <programlisting> +UserConfig>flags psm0 0x100 +UserConfig>quit + </programlisting> + </para> + </sect1> + + <sect1> + <title>Ma souris PS/2 mouse de MouseSystems ne marche pas</title> + + <para> +Certains ont rapportés que certains modèles de souris PS/2 de MouseSystem +ne marchaient que lorsqu'ils étaient mis en mode ``haute résolution''. +D'un autre côté, le curseur de souris peut sauter d'une extrémité de +l'écran à l'autre très souvent. + </para> + + <para> +Malheureusement, il n'y a pas de solution pour les versions 2.0.X et +2.1.X. Dans les versions 2.2 à 2.2.5, ajouter le patch suivant à + <filename>/sys/i386/isa/psm.c</filename> et reconstruisez le noyau. Voir +la section sur +<ulink url="http://www.freebsd.org/cgi/man.cgi?make-kernel"> la construction d'un noyau</ulink>si +vous n'avez aucune expérience dans la construction des noyaux, + + <programlisting> +diff -u psm.c.orig psm.c +@@ -766,6 +766,8 @@ +if (verbose >= 2) +log(LOG_DEBUG, "psm%d: SET_DEFAULTS return code:%04x\n", +unit, i); ++ set_mouse_resolution(sc->kbdc, PSMD_RES_HIGH); ++ +if 0 +set_mouse_scaling(sc->kbdc); /* 1:1 scaling */ +set_mouse_mode(sc->kbdc); /* stream mode */ + </programlisting> + </para> + + <para> +Dans les versions 2.2.6 et plus, spécifier le drqpeau 0x04 au pilote de +souris PS/2 afin de mettre la souris en mode haute résolution. +Entrez dans<emphasis>UserConfig</emphasis> en spécifiant l'option +``<filename>-c</filename>'' à l'invite du boot. + + <programlisting> +boot: -c + </programlisting> + +puis, dans la ligne de commande de<emphasis>UserConfig</emphasis> +tapez : + + <programlisting> +UserConfig>flags psm0 0x04 +UserConfig>quit + </programlisting> + </para> + + <para>Voir les sections précédentes pour les autres causes +possibles de problèmes avec la souris.</para> + </sect1> + + <sect1> + <title>Lorsque je construis une application X, <emphasis remap="tt">imake</emphasis> dit qu'il ne trouve pas <emphasis remap="tt">Imake.tmpl</emphasis>. Où est-t-il ? </title> + + <para> +Imake.tmpl est une partie du paquetage Imake, un outil de développement +standart sous X. Imake.tmpl,tout comme plusieurs fichiers d'en-tête qui sont +requis lors de la construction d'applications X est contenu dans la +distribution de programmes X. Vous pouvez l'installer depuis sysinstall +ou manuellement à partir des fichiers de distributions X. + </para> + + </sect1> + + <sect1> + <title>Comment puis-je inverser les boutons de la souris ? </title> + + <para>Lancez la commande +<emphasis remap="tt">xmodmap -e "pointer = 3 2 1"</emphasis> +depuis votre .xinitrc ou .xsession. + </para> + </sect1> + </chapter> + diff --git a/fr_FR.ISO_8859-1/books/handbook/Makefile b/fr_FR.ISO_8859-1/books/handbook/Makefile new file mode 100644 index 0000000000..6da260134c --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/Makefile @@ -0,0 +1,67 @@ +# +# The FreeBSD Documentation Project +# The FreeBSD French Documentation Project +# +# Compilation du Manuel de Reference de FreeBSD +# +# $FreeBSD$ +# Original revision: 1.25 +# + +# +# Nik is only the maintainer until Sebastien GIORIA's commit privs are +# sorted out and he can maintain this. +# +MAINTAINER=nik@FreeBSD.ORG + +DOC?= book + +FORMATS?= html-split + +INSTALL_COMPRESSED?= gz +INSTALL_ONLY_COMPRESSED?= + +# +# SRCS lists the individual SGML files that make up the document. Changes +# to any of these files will force a rebuild +# + +# SGML content +SRCS= book.sgml +SRCS+= advanced-networking/chapter.sgml +SRCS+= backups/chapter.sgml +SRCS+= basics/chapter.sgml +SRCS+= bibliography/chapter.sgml +SRCS+= contrib/chapter.sgml +SRCS+= cutting-edge/chapter.sgml +SRCS+= disks/chapter.sgml +SRCS+= eresources/chapter.sgml +SRCS+= hw/chapter.sgml +SRCS+= install/chapter.sgml +SRCS+= internals/chapter.sgml +SRCS+= introduction/chapter.sgml +SRCS+= kernelconfig/chapter.sgml +SRCS+= kerneldebug/chapter.sgml +SRCS+= kernelopts/chapter.sgml +SRCS+= l10n/chapter.sgml +SRCS+= linuxemu/chapter.sgml +SRCS+= mail/chapter.sgml +SRCS+= mirrors/chapter.sgml +SRCS+= pgpkeys/chapter.sgml +SRCS+= policies/chapter.sgml +SRCS+= ppp-and-slip/chapter.sgml +SRCS+= printing/chapter.sgml +SRCS+= quotas/chapter.sgml +SRCS+= security/chapter.sgml +SRCS+= serialcomms/chapter.sgml +SRCS+= staff/chapter.sgml +SRCS+= x11/chapter.sgml +SRCS+= ports/chapter.sgml + +# Entities +SRCS+= ../../../en_US.ISO_8859-1/books/handbook/authors.ent +SRCS+= chapters.ent +SRCS+= mailing-lists.ent + +DOC_PREFIX?= ${.CURDIR}/../../.. +.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO_8859-1/books/handbook/advanced-networking/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/advanced-networking/chapter.sgml new file mode 100644 index 0000000000..bf6d6c53b5 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/advanced-networking/chapter.sgml @@ -0,0 +1,1124 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + + <chapter> + <title>Administration Réseau Avancée</title> + &trans.a.haby; + + <sect1 id="routing"> + <title>Passerelles et routes</title> + + <para><emphasis>Contribution de &a.gryphon;.<!-- <br> -->6 Octobre + 1995.</emphasis></para> + + <para>Pour qu'une machine puisse en contacter une autre, il faut + que soit installé un mécanisme qui décrive comment aller de l'une + à l'autre. C'est ce que l'on appelle le routage. Une + “route” est définie par deux adresses : une + “destination” et une “passerelle”. Cette + paire signifie que pour atteindre cette + <emphasis>destination</emphasis>, vous devez passer par cette + <emphasis>passerelle</emphasis>. Il y a trois sorte de destinations: + les machines elles-mêmes, les sous-réseaux, et + <foreignphrase>default</foreignphrase> - la destination + “par défaut”. La <foreignphrase>default + route</foreignphrase> - “route par + défaut” - est utilisée + lorsqu'aucune autre route n'est applicable. Nous parlerons un peu plus + des routes par défaut par la suite. Il y a aussi trois sortes de + passerelles: les machines elles-mêmes, les interfaces (aussi appelées + “liens”), et les adresses Ethernet matériel.</para> + + <sect2> + <title>Un exemple</title> + + <para>Pour illustrer différents aspects du routage, nous utiliserons + l'exemple suivant, qui est le résultat de la commande + <command>netstat -r</command>:</para> + + <informalexample> + <screen>Destination Gateway Flags Refs Use Netif Expire + +default outside-gw UGSc 37 418 ppp0 +localhost localhost UH 0 181 lo0 +test0 0:e0:b5:36:cf:4f UHLW 5 63288 ed0 77 +10.20.30.255 link#1 UHLW 1 2421 +foobar.com link#1 UC 0 0 +host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0 +host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 => +host2.foobar.com link#1 UC 0 0 +224 link#1 UC 0 0</screen> + </informalexample> + + <para>Les deux premières lignes définissent la route par défaut (dont + nous parlerons dans la section suivante) et la route + <hostid>localhost</hostid>.</para> + + <para>L'interface (colonne <literal>Netif</literal>) qu'il est + indiqué d'utiliser pour <literal>localhost</literal> est + <devicename>lo0</devicename>, que l'on appelle aussi interface + <foreignphrase>loopback</foreignphrase> - “en + boucle”. Ce qui signifie que tout + le trafic vers cette destination doit rester interne, au lieu d'être + envoyé sur le réseau local, puisqu'il reviendra de toute façon à son + point de départ.</para> + + <para>Les adresses <hostid role="mac">0:e0:...</hostid> sautent + ensuite aux yeux. Ce sont les adresses Ethernet matériel. FreeBSD + reconnaîtra automatiquement toute machine + (<hostid>test0</hostid> dans l'exemple) sur le réseau Ethernet local + et ajoutera une route vers celle-ci, directement via l'interface + Ethernet, <devicename>ed0</devicename>. Il y a aussi un délai + (colonne <literal>Expire</literal>) associé à ce type de route, + qui sert lorsque nous n'entendons plus parler de cette machine + pendant un certain temps. Dans ce cas, la route est automatiquement + supprimée. Ces machines sont identifiées par un mécanisme appelé RIP + (<foreignphrase>Routing Information + Protocol</foreignphrase> - “protocole + d'information de routage”), qui construit les routes vers les + machines locales en déterminant le chemin le plus court.</para> + + <para>FreeBSD ajoutera aussi de routes de sous-réseau pour le + sous-réseau local (<hostid role="ipaddr">10.20.30.255</hostid> est + l'adresse de diffusion du sous-réseau + <hostid role="ipaddr">10.20.30</hostid>, et + <hostid role="domainname">foobar.com</hostid> est le nom de + domaine associé à ce sous-réseau). La dénomination + <literal>link#1</literal> se rapporte à la première interface + Ethernet de la machine. Vous constaterez qu'il n'y a pas d'autre + interface associée à ces routes.</para> + + <para>Ces deux types de routes sont automatiquement configurées + par un “démon” appelé <command>routed</command>. + Si ce dernier ne tourne pas, il ne pourra y avoir que des routes + statiques (i.e. explicitement définies).</para> + + <para>La ligne <literal>host1</literal> se rapporte à notre machine, + qui est identifiée par son interface Ethernet. Comme nous sommes + l'émetteur, FreeBSD sait qu'il faut utiliser l'interface “en + boucle”, plutôt que d'envoyer les données sur l'interface + Ethernet.</para> + + <para>Les deux lignes <literal>host2</literal> montrent ce qui ce + passe quand on utilise un alias avec <command>ifconfig</command> + (voyez la section sur Ethernet pour savoir pour quelles raisons + on peut vouloir faire cela). Le symbole <literal>=></literal> + qui suit l'interface <devicename>lo0</devicename> indique que non + seulement nous utilisons la “boucle” (puisque c'est + aussi une adresse qui se rapporte à la machine locale), mais que + c'est, plus précisement, un alias. Ce type de route n'apparaît + que sur la machine pour laquelle est défini l'alias; sur toutes + les autres machines du réseau local, il n'y aura qu'une ligne + <literal>link#1</literal> pour cette machine.</para> + + <para>La dernière ligne (sous-réseau destinataire + <literal>224</literal>) concerne le + <foreignphrase>MultiCasting</foreignphrase> - diffusion sur + plusieurs réseaux, dont nous parlerons dans une + autre section.</para> + + <para>L'autre colonne dont il faut parler est la colonne + <literal>Flags</literal>. Chaque route a différentes + caractéristiques que décrit cette colonne. Voici une courte table + qui liste certains de ces indicateurs et leurs + significations:</para> + + <informaltable frame="none"> + <tgroup cols="2"> + <tbody> + <row> + <entry>U</entry> + <entry>Active (“Up”): La route est + active.</entry> + </row> + + <row> + <entry>H</entry> + <entry>Hôte: La destination de la route est une + machine.</entry> + </row> + + <row> + <entry>G</entry> + <entry>Passerelle (“Gateway”): Envoyer tout ce + qui regarde cette destination sur la machine distante + indiquée, qui saura à qui transmettre ensuite.</entry> + </row> + + <row> + <entry>S</entry> + <entry>Statique: Cette route a été configurée à la main et + non générée automatiquement par le système.</entry> + </row> + + <row> + <entry>C</entry> + <entry>Clone: Générer une nouvelle route sur la base de + celle-ci pour les machines auxquelles nous nous connectons. + Ce type de route est normalement utilisé pour les réseaux + locaux.</entry> + </row> + + <row> + <entry>W</entry> + <entry>Clonée (“WasCloned”): Cette route a été + auto-configurée (Clone) à partir d'une route pour le + réseau local.</entry> + </row> + + <row> + <entry>L</entry> + <entry>Link: La route fait référence à une adresse Ethernet + matérielle.</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + </sect2> + + <sect2> + <title>Routes par défaut</title> + + <para>Quand le système local doit établir une connexion avec une + machine distante, il consulte la table de routage pour voir + s'il y a déjà une route connue. Si la machine distante appartient + à un sous-réseau auquel il sait comment se connecter (routes + clonées), alors le système teste s'il peut se connecter via + cette interface.</para> + + <para>Si toutes les routes connues échouent, il reste au système une + dernière option: la route “par défaut”. C'est un type + particulier de route passerelle (c'est généralement la seule du + système), auquel est toujours associé l'indicateur + <literal>c</literal>. Pour les machines du réseau local, cette + fonction de passerelle est affectée à la machine qui est directement + connectée au monde extérieur (que ce soit par une liasion PPP, ou + via un dispositif matériel relié à une ligne dédiée).</para> + + <para>Si vous configurez la route par défaut sur la machine qui + fonctionne comme passerelle vers le monde extérieur, la route par + défaut sera la passerelle du site de votre Fournisseur d'Accès + Internet (FAI).</para> + + <para>Examinons un exemple de route par défaut. Voici une + configuration habituelle: + + <literallayout> +[Local2] <--ether--> [Local1] <--PPP--> [ISP-Serv] <--ether--> [T1-GW] + </literallayout></para> + + <para>Les machines <hostid>Local1</hostid> et <hostid>Local2</hostid> + sont sur votre site, la première étant votre connexion PPP au + concentrateur de votre fournisseur d'accès. Le réseau local de + votre fournisseur d'accès comporte entre autres un dispositif + (T1-GW) relié à son point d'entrée sur l'Internet.</para> + + <para>Les routes par défaut sur chacune de vos machines seront:</para> + + <informaltable frame="none"> + <tgroup cols="3"> + <thead> + <row> + <entry>hôte</entry> + <entry>passerelle par défaut</entry> + <entry>interface</entry> + </row> + </thead> + + <tbody> + <row> + <entry>Local2</entry> + <entry>Local1</entry> + <entry>Ethernet</entry> + </row> + + <row> + <entry>Local1</entry> + <entry>T1-GW</entry> + <entry>PPP</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para>On demande souvent “Pourquoi (ou comment) définir T1-GW + comme passerelle par défaut pour Local1, plutôt que le serveur du + fournisseur auquel elle est connectée?”.</para> + + <para>N'oubliez pas que l'interface PPP utilise, de votre côté de la + connexion, une adresse sur le réseau local de votre fournisseur. Les + routes vers les autres machines sur le réseau local de votre + fournisseur seront générées automatiquement. Vous savez déjà comment + atteindre la machine T1-GW, il n'y a donc pas besoin d'une étape + intermédiaire qui passe par le serveur de votre fournisseur.</para> + + <para>Dernière remarque, il est habituel d'attribuer l'adresse <hostid + role="ipaddr">...1</hostid> à la passerelle sur votre réseau + local. Donc (dans notre exemple), si votre espace d'adresses de + classe C local est <hostid role="ipaddr">10.20.30</hostid> et celui + de votre fournisseur <hostid role="ipaddr">10.9.9</hostid>, alors + les routes par défaut sont:</para> + + <informaltable frame="none"> + <tgroup cols="2"> + <tbody> + <row> + <entry>Local2 (10.20.30.2)</entry> + <entry>--> Local1 (10.20.30.1)</entry> + </row> + <row> + <entry>Local1 (10.20.30.1, 10.9.9.30)</entry> + <entry>--> T1-GW (10.9.9.1)</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + </sect2> + + <sect2> + <title>Machines sur deux réseaux</title> + + <para>Il y a un autre type de de configuration dont il faut parler, + c'est celle d'une machine qui est connectée à deux réseaux + différents. Techniquement, une machine qui sert de passerelle (comme + dans l'exemple ci-dessus, en utilisant une connexion PPP) est une + machine sur deux réseaux. Mais l'on utilise de fait cette expression + (<foreignphrase>dual-homed host</foreignphrase>) pour désigner les + machines qui sont sur deux réseaux locaux différents.</para> + + <para>Selon le cas, cette machine peut avoir deux cartes Ethernet, + chacune ayant une adresse sur l'un des deux sous-réseaux. Elle peut + aussi avoir une seule carte Ethernet, on utilise alors un alias avec + <command>ifconfig</command>. Le premier cas de figure correspond à + deux réseaux Ethernet physiquement séparés, alors qu'on utilise la + deuxième configuration lorsqu'il n'y a qu'un seul segment physique, + mais deux sous-réseaux logiquement distincts.</para> + + <para>Dans les deux cas, les tables de routage sont définies de telle + sorte que chaque sous-réseau sache que cette machine est la + passerelle (<foreignphrase>inbound + route</foreignphrase> - route entrante) vers l'autre + sous-réseau. Cette configuration, où la machine sert de pont entre + les deux sous-réseaux, est souvent employée quand il faut mettre en + place un dispositif de sécurité - filtrage de paquets ou + coupe-feu - dans l'une, ou dans les deux, + directions.</para> + + </sect2> + + <sect2> + <title>Propagation de route</title> + + <para>Nous avons déjà expliqué comment définir nos routes vers le + monde extérieur, mais pas comment le monde extérieur sait comment + nous joindre.</para> + + <para>Nous savons déjà comment renseigner les tables de routage pour + que tout le trafic pour un espace d'adresses donné (un sous-réseau + de classe C dans notre exemple) soit envoyé à une machine précise + de ce réseau, qui transmettra les paquets entrants.</para> + + <para>Lorsqu'il attribue une espace d'adresses à votre site, votre + fournisseur d'accès définit ses tables de routage de sorte que tout + le trafic destiné à votre sous-réseau vous soit envoyé sur votre + liaison PPP. Mais comment les autres sites à l'autre bout du pays + savent-ils qu'ils doivent passer par votre fournisseur + d'accès.</para> + + <para>Il existe un mécanisme (assez semblable au système d'information + distribué du DNS) qui enregistre tous les espaces d'adresses + affectés, et définit leur point de connexion à la dorsale Internet. + Le <foreignphrase>Backbone</foreignphrase> - “dorsale” comprend + les liaisons principales qui véhiculent le trafic Internet à travers + le pays et le monde entier. Chaque machine de la dorsale dispose + d'un ensemble de tables maîtresses, qui aiguillent le trafic pour + un réseau donné vers le transporteur correspondant sur la dorsale, + et de là, par l'intermédiaire de fournisseurs d'accès + successifs, jusqu'à votre sous-réseau.</para> + + <para>C'est le rôle de votre fournisseur d'accès d'annoncer aux sites + de la dorsale qu'il est le point de connexion (et donc la route + entrante) de votre site. C'est ce que l'on appelle la propagation + de route.</para> + + </sect2> + + <sect2> + <title>En cas de problème</title> + + <para>Il peut arriver qu'il y ait un problème avec la propagation de + route et que certains sites ne puissent vous atteindre. La commande + probablement la plus utile pour savoir si une route commence à + avoir des défaillances est la commande + <citerefentry><refentrytitle>traceroute</refentrytitle><manvolnum>8</manvolnum></citerefentry>. + Elle peut aussi vous servir lorsque vous n'arrivez apparemment pas à + vous connecter à une autre machine (i.e. lorsque + <citerefentry><refentrytitle>ping</refentrytitle><manvolnum>8</manvolnum></citerefentry> échoue).</para> + + <para>La commande + <citerefentry><refentrytitle>traceroute</refentrytitle><manvolnum>8</manvolnum></citerefentry> + prend comme paramètre le nom de la machine avec laquelle vous + essayer d'établir une connexion. Elle vous donne la liste des + passerelles intermédiaires jusqu'à la machine cible, ou jusqu'à + ce qu'il n'y ait plus de liaison.</para> + + <para>Pour plus d'informations, voyez les pages de manuel de + <citerefentry><refentrytitle>traceroute</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para> + + </sect2> + </sect1> + + <sect1 id="nfs"> + <title>NFS</title> + + <para><emphasis>Contribution de &a.jlind;.</emphasis></para> + + <para>Certaines cartes Ethernet ISA ont des limites qui peuvent poser + de sérieux problèmes sur un réseau, en particulier avec NFS. Ce + n'est pas une particularité propre à FreeBSD, mais elle affecte aussi + les systèmes FreeBSD.</para> + + <para>Ce problème ce produit pratiquement tout le temps quand les + systèmes (FreeBSD) PC sont sur le même réseau que des stations de + travail très performantes, comme celles de Silicon Graphics, Inc., + et Sun Microsystems, Inc. Les montages NFS se font sans difficulté + et certaines opérations réussissent, puis tout-à-coup, il semble que + le serveur ne réponde pas au client, bien que les échanges avec les + autres systèmes continuent à se dérouler normalement. Cela se + manifeste sur la machine cliente, que ce soit un système FreeBSD ou + une station de travail. Sur de nombreux systèmes, il n'y a pas moyen + d'arrêter proprement le client une fois que ce problème apparaît, la + seule solution est souvent de réinitialiser le client, parce que le + problème NFS ne peut être résolu.</para> + + <para>Bien que la solution “correcte” soit d'installer une + carte Ethernet plus performante et de plus grande capacité sur le + système FreeBSD, il y a une solution de contournement simple qui + fournit un palliatif satisfaisant. Si le système FreeBSD est le + <emphasis>serveur</emphasis>, utilisez l'option + <option>-w=1024</option> avec <command>mount</command> sur le client. + Si le système FreeBSD est le <emphasis>client</emphasis>, alors montez + le système de fichiers NFS avec l'option <option>-r=1024</option>. + Vous pouvez mettre ces options dans le quatrième champ de l'entrée + <filename>fstab</filename> sur le client, pour les montages + automatiques, ou avec le paramètre <option>-o</option> de la commande + <command>mount</command> pour les montages manuels.</para> + + <para>Il faut noter qu'il existe un problème différent, que l'on + confond parfois avec le précédent, qui peut se produire lorsque les + serveurs et les clients NFS sont sur des réseaux différents. Si c'est + le cas, <emphasis>assurez-vous</emphasis> que vos routeurs + transmettent bien les informations UDP nécessaires, ou vous n'irez + nulle part, quoi que vous fassiez par ailleurs.</para> + + <para>Dans les exemples qui suivent, <hostid>fastws</hostid> est le nom de la station de travail (interface) de haute performance et + <hostid>freebox</hostid> celui de la machine (interface) FreeBSD + avec une carte Ethernet moins performante. + <filename>/sharedfs</filename> est le système de fichiers NFS qui + sera exporté (voyez <command>man exports</command>), et + <filename>/project</filename> le point de montage pour ce système + de fichiers exporté, sur le client. Dans tous les cas, + des options supplémentaires, comme <option>hard</option> ou + <option>soft</option> et <option>bg</option> seront peut-être + nécessaires pour vos applications.</para> + + <para>Exemple lorsque le système FreeBSD (<hostid>freebox</hostid>) est + le client: dans <filename>/etc/fstab</filename> de + <hostid>freebox</hostid>: + + <programlisting> +fastws:/sharedfs /project nfs rw,-r=1024 0 0 + </programlisting> + + commande de montage manuel sur <hostid>freebox</hostid>: + + <informalexample> + <screen>&prompt.root; <userinput>mount -t nfs -o -r=1024 fastws:/sharedfs /project</userinput></screen> + </informalexample></para> + + <para>Exemple lorsque le système FreeBSD (<hostid>freebox</hostid>) est + le serveur: dans <filename>/etc/fstab</filename> de + <hostid>fastws</hostid>: + + <programlisting> +freebox:/sharedfs /project nfs rw,-w=1024 0 0 + </programlisting> + + commande de montage manuel sur <hostid>fastws</hostid>: + + <informalexample> + <screen>&prompt.root; <userinput>mount -t nfs -o -w=1024 freebox:/sharedfs /project</userinput></screen> + </informalexample></para> + + <para>Presque toutes les cartes Ethernet 16-bit permettront d'utiliser + les restrictions ci-dessus à la taille du tampon de + lecture/écriture.</para> + + <para>Pour ceux que cela intéresse, voici ce qui provoque le problème, + ce qui explique aussi qu'il ne soit pas récupérable. NFS utilise + habituellement une taille de “bloc” de 8k (bien qu'il + arrive qu'il les fragmente en plus petits morceaux). Comme la taille + maximum d'un paquet Ethernet est de 1500 bits, le block NFS + est réparti sur plusieurs paquets Ethernet, bien qu'il soit toujours + vu comme un ensemble par les couches supérieures du code, et doit être + reçu, assemblé et “acquitté” comme tel. Les stations de + travail performantes peuvent traiter les paquets qui composent le + “bloc” NFS, les uns après les autres, pratiquement + aussi rapidement que le standard le permet. Sur les cartes plus + petites et de moindre capacité, les derniers paquets d'un même groupe + écrasent les précédents, avant qu'ils aient été transmis, + et l'ensemble ne peut être reconstruit et acquitté. En conséquence, + le délai est dépassé + sur la station de travail, et elle recommence l'opération, mais elle + renvoie tous les 8k, et le phénomène se reproduit à l'infini.</para> + + <para>En définissant la taille de “bloc” en deçà de la + taille d'un paquet Ethernet, nous sommes sûrs que chaque paquet + Ethernet entier sera acquitté individuellement, ce qui évite la + situation d'inter-bloquage.</para> + + <para>Il peut toujours y avoir écrasement lorsque des stations de + travail performantes surchargent un système PC de données, mais avec + les meilleures cartes, de tels écrasements ne sont pas systématiques + pour les “unités” NFS. En cas d'écrasement, les blocs + affectés sont retransmis, et il y a de fortes chances qu'ils soient + reçus, assemblés et acquittés.</para> + + </sect1> + + <sect1 id="diskless"> + <title>Station sans disque dur</title> + + <para><emphasis>Contribution de &a.martin;.</emphasis></para> + + <para><filename>netboot.com</filename>/<filename>netboot.rom</filename> + vous permettent de démarrer votre machine FreeBSD via le réseau et + d'exécuter FreeBSD sans disque dur sur le client. Avec la version 2.0, + il est maintenant possible d'avoir de l'espace de pagination local. Il est toujours possible de paginer via NFS.</para> + + <para>Les cartes Ethernet supportées sont: Western Digital/SMC 8003, + 8013, 8216 et compatibles; NE1000/NE2000 et compatibles (il faut + recompiler).</para> + + <sect2> + <title>Configuration</title> + + <procedure> + + <step> + <para>Choisissez la machine qui sera votre serveur. Cette + machine doit disposer de suffisamment d'espace disque pour y + mettre les exécutables de FreeBSD 2.0 et les services bootp, + tftp, et NFS. Machines testées:</para> + + <itemizedlist> + + <listitem> + <para>HP9000/8xx sous HP-UX 9.04 ou ultérieurs (cela ne + marche pas avec les versions antérieures à la + 9.04).</para> + </listitem> + + <listitem> + <para>Sun/Solaris 2.3. (vous devrez peut-être vous + procurer bootp).</para> + </listitem> + + </itemizedlist> + + </step> + + <step> + <para>Installez un serveur bootp pour fournir au client son + adresse IP, son masque de réseau et une passerelle:</para> + + <programlisting> +sans-disque:\ + :ht=ether:\ + :ha=0000c01f848a:\ + :sm=255.255.255.0:\ + :hn:\ + :ds=192.1.2.3:\ + :ip=192.1.2.4:\ + :gw=192.1.2.5:\ + :vm=rfc1048: + </programlisting> + </step> + + <step> + <para>Installez un serveur TFTP (sur la même machine que le + serveur bootp) pour fournir au client les informations de + démarrage. Le nom du fichier de configuration est + <filename>cfg.<replaceable>X.X.X.X</replaceable></filename> + (ou + <filename>/tftpboot/cfg.<replaceable>X.X.X.X</replaceable></filename>, + il cherchera les deux), où <replaceable>X.X.X.X</replaceable> + est l'adresse IP du client. Ce fichier peut contenir n'importe + quelles commandes netboot valides. Dans la version 2.0, les + commandes de netboot sont les suivantes:</para> + + <informaltable frame="none"> + <tgroup cols="2"> + <tbody> + <row> + <entry>help</entry> + <entry>affiche une liste d'aide</entry> + </row> + + <row> + <entry>ip <option><replaceable>X.X.X.X</replaceable></option></entry> + <entry>affiche/définit l'adresse IP du client</entry> + </row> + + <row> + <entry>server <option><replaceable>X.X.X.X</replaceable></option></entry> + <entry>affiche/définit l'adresse IP du serveur + bootp/tftp</entry> + </row> + + <row> + <entry>netmask <option><replaceable>X.X.X.X</replaceable></option></entry> + <entry>affiche/définit le masque de réseau</entry> + </row> + + <row> + <entry>hostname <replaceable>nom</replaceable></entry> + <entry>affiche/définit le nom de machine</entry> + </row> + + <row> + <entry>kernel <option><replaceable>nom</replaceable></option></entry> + <entry>affiche/définit le nom du noyau</entry> + </row> + + <row> + <entry>rootfs <option><replaceable>ip:/fs</replaceable></option></entry> + <entry>affiche/définit le nom du système de fichiers + racine</entry> + </row> + + <row> + <entry>swapfs <option><replaceable>ip:/fs</replaceable></option></entry> + <entry>affiche/définit le nom du système de fichiers + de pagination</entry> + </row> + + <row> + <entry>swapsize <option><replaceable>taille</replaceable></option></entry> + <entry>définit la taille de l'espace de pagination de la + station sans disque dur en Koctets</entry> + + </row> + + <row> + <entry>diskboot</entry> + <entry>démarrer depuis le disque</entry> + </row> + + <row> + <entry>autoboot</entry> + <entry>continuer le processus de démarrage</entry> + </row> + + <row> + <entry>trans + <option>on</option>|<option>off</option></entry> + <entry>active/désactive + l'émetteur-récepteur - <foreignphrase>transceiver</foreignphrase></entry> + </row> + + <row> + <entry>flags + <option>b</option><option>c</option><option>d</option><option>h</option><option>s</option><option>v</option></entry> + <entry>définit les indicateurs de démarrage</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para>Un fichier <filename>cfg</filename> pour une machine + sans disque peut typiquement contenir:</para> + + <programlisting> +rootfs 192.1.2.3:/rootfs/monclient +swapfs 192.1.2.3:/swapfs +swapsize 20000 +hostname monclient.mondomain + </programlisting> + + <para>Un fichier <filename>cfg</filename> pour une machine + avec espace de pagination local peut par exemple + contenir:</para> + + <programlisting> +rootfs 192.1.2.3:/rootfs/monclient +hostname monclient.mondomain + </programlisting> + </step> + + <step> + <para>Vérifiez que votre serveur NFS exporte bien le système de + fichiers racine (et le système de fichiers de pagination, le + cas échéant) vers le client, et que ces systèmes de fichiers + sont accessibles avec les droits super-utilisateur sur le + client. Le fichier <filename>/etc/exports</filename> sur un + système FreeBSD ressemblera typiquement à:</para> + + <programlisting> +/rootfs/monclient -maproot=0:0 monclient.mondomain +/swapfs -maproot=0:0 monclient.mondomain + </programlisting> + + <para>Et sur HP-UX:</para> + + <programlisting> +/rootfs/myclient -root=monclient.mondomain +/swapfs -root=monclient.mondomain + </programlisting> + </step> + + <step> + <para>Si vous paginez via NFS (configuration sans aucun disque + dur), créez un fichier de pagination pour votre client avec + <command>dd</command>. Si votre commande + <command>swapfs</command> a pour argument le système de + fichiers <filename>/swapfs</filename> et 20000 comme taille, + comme dans l'exemple ci-dessus, le fichier de pagination du + client s'appelera + <filename>/swapfs/swap.<replaceable>X.X.X.X</replaceable></filename> + où <replaceable>X.X.X.X</replaceable> est l'adresse IP du + client, e.g.:</para> + + <informalexample> + <screen>&prompt.root; <userinput>dd if=/dev/zero of=/swapfs/swap.192.1.2.4 bs=1k count=20000</userinput></screen> + </informalexample> + + <para>Comme l'espace de pagination du client peut contenir des + informations sensibles, dès lors qu'il y a pagination, veillez + à restreindre les droits en lecture et en écriture sur ce + fichier pour éviter les accès non autorisés:</para> + + <informalexample> + <screen>&prompt.root; <userinput>chmod 0600 /swapfs/swap.192.1.2.4</userinput></screen> + </informalexample> + </step> + + <step> + <para>Recopiez le système de fichiers racine sur le répertoire + qui servira de système de fichiers racine pour le client + (<filename>/rootfs/monclient</filename> dans l'exemple + ci-dessus). + + <itemizedlist> + + <listitem> + <para>Sur les systèmes HP-UX: Le serveur doit être soit + HP-UX 9.04 ou ultérieur pour les machines de la gamme + HP9000/800. Les versions antérieures ne permettent pas + de créer de fichiers spéciaux de périphérique via + NFS.</para> + </listitem> + + <listitem> + <para>Lorsque vous recopiez <filename>/dev</filename> dans + <filename>/rootfs/monclient</filename>, faites attention + au fait que certains systèmes (HP-UX) ne créeront pas + les fichiers spéciaux de périphérique dont FreeBSD a + besoin. Vous devrez peut-être passer en mode + mono-utilisateur au premier démarrage (appuyez sur + Ctrl-c pendant la phase de démarrage), + <command>cd /dev</command> puis + <command>sh ./MAKEDEV all</command> + sur le client, pour régler ce problème.</para> + </listitem> + + </itemizedlist> + + </para> + </step> + + <step> + <para>Lancez <command>netboot.com</command> sur le client + ou copiez le fichier <filename>netboot.rom</filename> + dans une EPROM.</para> + </step> + + </procedure> + + </sect2> + + <sect2> + <title>Utiliser des systèmes de fichiers <filename>/</filename> and + <filename>/usr</filename> partagés</title> + + <para>Cette façon de faire n'est pas actuellement officiellement + sanctionnée, mais j'ai utilisé un système de fichiers + <filename>/usr</filename> partagé et un système de fichiers + <filename>/</filename> individuel sur chaque client. Si quelqu'un + a des suggestions sur la façon propre de le faire, qu'il me la + communique, ou à l'&a.core;.</para> + + </sect2> + + <sect2> + <title>Compiler netboot pour des configurations particulières</title> + + <para>Netboot peut être compilé pour supporter les cartes NE1000/2000 + en modifiant sa configuration dans le fichier + <filename>/sys/i386/boot/netboot/Makefile</filename>. Voyez les + commentaires au début de ce fichier.</para> + + </sect2> + </sect1> + + <sect1 id="isdn"> + <title>ISDN</title> + + <para><emphasis>Dernières modifications de &a.wlloyd;</emphasis>.</para> + + <para>Il y a de bonnes informations sur la technologie et le matérial + ISDN sur + <ulink url="http://alumni.caltech.edu/~dank/isdn/">la page ISDN de + Dan Kegel</ulink>.</para> + + <para>Voici un aperçu simple et rapide à propos de l'ISDN:</para> + + <itemizedlist> + + <listitem> + <para>Si vous habitez en Europe, je vous suggère d'étudier la + section sur les cartes ISDN.</para> + </listitem> + + <listitem> + <para>Si vous envisagez d'utiliser l'ISDN avant tout pour vous + connecter à l'Internet par l'intermédiaire d'un Fournisseur + d'Accès Internet et d'une ligne téléphonique non dédiée, je vous + conseille de lire la section sur les Adaptateurs Terminaux. + C'est la solution la plus souple, et qui vous posera le moins de + problèmes, si vous changer de fournisseur.</para> + </listitem> + + <listitem> + <para>Si vous interconnectez deux réseaux locaux ou si vous vous + connectez à l'Internet avec une liaison ISDN dédiée, je vous + suggère d'envisager un pont/routeur autonome.</para> + </listitem> + + </itemizedlist> + + <para>Le coût est un facteur déterminant de la solution que vous + choisirez. Les options ci-dessous sont envisagées de la plus chère à + la moins chère.</para> + + + <sect2> + <title>Cartes ISDN</title> + + <para><emphasis>Contribution originale de &a.hm;.</emphasis></para> + + <para>Cette section ne s'applique qu'aux utilisateurs Européens de + l'ISDN. Les cartes supportées ne sont pas encore(?) disponibles pour + les normes Nord-Américaines.</para> + + <para>Vous devez savoir que le code est largement en cours de + développement. En particulier, il n'y a de pilotes spécifiques que + pour les cartes de deux constructeurs.</para> + + <para>Les cartes ISDN pour PC supportent toute la bande passante de + l'ISDN, 128Kbs. Ces cartes sont souvent les équipements ISDN les + moins chers.</para> + + <para>Sous FreeBSD 2.1.0 et 2.1.5, il y a un premier code ISDN + inachevé dans le répertoire <filename>/usr/src/gnu/isdn</filename>. + Ce code est obsolète et ne doit pas être utilisé. Si vous voulez + emprunter cette voie, procurez-vous le code + <filename>bisdn</filename>. Ce code a été retiré de l'arborescence + des sources depuis FreeBSD 2.2.</para> + + <para>Le logiciel ISDN <filename>bisdn</filename> pour + FreeBSD 2.1-release, FreeBSD-current et NetBSD se trouve sur + <ulink + url="ftp://hub.freebsd.org/pub/bisdn">hub.freebsd.org</ulink>. + la version la plus récente se trouve sur ce serveur ftp dans le + répertoire <filename>isdn</filename>, dans le fichier + <filename>bisdn-097.tar.gz</filename>.</para> + + <para>Il y a des pilotes pour les cartes suivantes:</para> + + <itemizedlist> + + <listitem> + <para>Toutes les cartes Teles (passives) et compatibles sont + actuellement supportées avec les protocoles EuroISDN (DSS1) et + 1TR6.</para> + </listitem> + + <listitem> + <para>Dr. Neuhaus - Niccy 1016</para> + </listitem> + + </itemizedlist> + + <para>Le logiciel <filename>bisdn</filename> présentent quelques + limitations. Les fonctionnalités suivantes, habituellement associées + à l'ISDN, ne sont pas supportées:</para> + + <itemizedlist> + + <listitem> + <para>Pas de support PPP, HDLC de base uniquement. Cela signifie + qu'il n'est pas possible de se connecter à la plupart des + routeurs autonomes.</para> + </listitem> + + <listitem> + <para>Le protocole de contrôle des + ponts - <foreignphrase>Bridging Control + Protocol</foreignphrase> - n'est pas + supporté.</para> + </listitem> + + <listitem> + <para>Support pour une seule carte, uniquement.</para> + </listitem> + + <listitem> + <para>Pas de bande passante à la demande.</para> + </listitem> + + <listitem> + <para>Pas de liaison des canaux.</para> + </listitem> + + </itemizedlist> + + + <para>Il existe une liste de diffusion. Pour vous y inscrire, envoyez + un courrier électronique à &a.majordomo; et avec: + + <programlisting> +subscribe freebsd-isdn + </programlisting> + + comme texte de votre message.</para> + + </sect2> + + <sect2> + <title>Adaptateurs terminaux ISDN</title> + + <para>Les adapteurs terminaux - Terminal adapters(TA), sont + l'équivalent ISDN des modems pour les lignes téléphoniques + ordinaires.</para> + + <para>La plupart des adaptateurs utilisent le jeu de commandes + standard des modems Hayes et peuvent être utilisés à la volée + en remplacement d'un modem.</para> + + <para>Un adaptateur fonctionne essentiellement comme un modem sinon + que la vitesse de la connexion est bien plus rapide qu'avec votre + vieux modem. Vous devrez configurer <link linkend="ppp">PPP</link> + exactement comme pour un modem. Assurez-vous d'utiliser la vitesse + la plus élevée possible sur le port série.</para> + + <para>Le principal avantage des adaptateurs terminaux pour vous + connecter à votre Fournisseur d'Accès Internet est de pouvoir + utiliser PPP en mode dynamique. Comme l'espace d'adressage IP + disponible devient de plus en plus restreint, la plupart des + fournisseurs ne proposent plus désormais d'adresse IP statique. + La plupart des routeurs autonomes ne peuvent pas fonctionner avec + l'allocation dynamique d'adresse IP.</para> + + <para>Les fonctionnalités et la stabilité de la connexion des + adaptateurs reposent complètement sur le “démon” PPP + que vous exécuter. Cela vous permet de passer simplement d'un modem + à l'ISDN sur une machine FreeBSD, si vous avez déjà configuré PPP. + De ce fait, cependant, les problèmes que vous rencontrez avec PPP + persisteront aussi.</para> + + <para>Si vous voulez le maximum de stabilité, utilisez <link + linkend="ppp">PPP intégré au noyau</link> au lieu de <link + linkend="userppp">PPP en mode utilisateur</link>.</para> + + <para>On sait que les adapteurs suivants fonctionnent avec + FreeBSD:</para> + + <para> + <itemizedlist> + + <listitem> + <para>Motorola BitSurfer et Bitsurfer Pro</para> + </listitem> + + <listitem> + <para>Adtran</para> + </listitem> + + </itemizedlist> + </para> + + <para>La plupart des adaptateurs terminaux fonctionneront probablement + aussi, les fabricants d'adaptateurs font en sorte que leurs produits + acceptent la plupart des commandes AT des modems.</para> + + <para>Le vrai problème avec les adaptateurs externes est que, comme + pour les modems, il vous faut une bonne carte série.</para> + + <para>Vous devriez lire la section <link linkend="uart">Ports + série</link> de ce manuel pour comprendre en détail le + fonctionnement des périphériques série et les différences entre + les ports série synchrones et asynchrones.</para> + + <para>Un adaptateur sur un port série PC standard (asynchrone) + vous limite à 115.2Kbs, bien que vous ayez une liaison à 128Kbs. + Pour utiliser les 128Kbs que peut atteindre l'ISDN, il vous faut + relier l'adaptateur à une carte série synchrone.</para> + + <para>N'imaginez pas qu'il vous suffise d'acheter un adaptateur + interne pour éviter l'alternative synchrone/asynchrone. Les + adaptateurs internes incluent simplement une puce port série + standard. Tout ce que vous y gagnerez sera d'économiser un + câble série et de récupérer une prise électrique.</para> + + <para>Une carte synchrone avec un adaptateur est au moins aussi rapide + qu'un routeur autonome, et pilotée par une simple machine FreeBSD, + probablement plus souple.</para> + + <para>Le choix entre carte synchrone/adaptateur ou routeur autonome + est largement question de dogme. Cela a été quelque peu discuté + dans les listes de diffusion. Je vous suggère de regarder dans les + <ulink + url="http://www.freebsd.org/search.html">archives</ulink> pour + suivre l'intégralité du débat.</para> + + </sect2> + + <sect2> + <title>Ponts/Routeurs ISDN autonomes</title> + + <para>Les ponts ou les routeurs ISDN ne sont en rien propres à + FreeBSD ou à tout autre système d'exploitation. Pour une description + complète de la technologie des ponts et des routeurs, reportez-vous + s'il vous plaît à un ouvrage de référence sur les réseaux.</para> + + <para>Dans le contexte de ce manuel, j'utiliserai indifféremment les + termes routeur et pont.</para> + + <para>Comme le prix des ponts/routeurs ISDN d'entrée de gamme baisse + continuellement, il est probable qu'ils deviennent un choix plus + courant. Un routeur ISDN est une petite boîte que se branche + directement sur votre réseau (ou votre carte) Ethernet, et gère sa + propre connexion aux autres ponts/routeurs. Il intègre le logiciel + nécessaire au support du protocole PPP et d'autres + protocoles.</para> + + <para>Un routeur vous procurera une liaison plus rapide qu'un + adaptateur standard, puisqu'il utilisera toute la connexion + ISDN synchrone.</para> + + <para>Le principale problème avec les ponts et les routeurs ISDN est + encore l'interopérabilité entre les matériels des différents + constructeurs. Si vous envisagez de vous connecter à un fournisseur + d'accès Internet, je vous recommande d'en discuter avec lui.</para> + + <para>Si vous envisagez de relier entre eux deux réseaux locaux, i.e.: + le réseau de votre domicile et le réseau de votre bureau, c'est la + solution la plus simple et qui demande le moins de maintenance. + Etant donné que vous achetez les équipements pour les deux + extrémités de la liaison, vous êtes sûr que cela + fonctionnera.</para> + + <para>Pour connecter par exemple votre ordinateur à domicile ou + le réseau d'une agence à celui du siège, vous pourriez + utiliser la configuration qui suit.</para> + + <example> + <title>Réseau d'agence ou à domicile</title> + + <para>Réseau Ethernet 10 Base T. Connecter le routeur au câble réseau + avec un + émetteur-récepteur - <foreignphrase>transceiver</foreignphrase> - AUI/10BT, + si nécessaire.</para> + + <!-- This should be a graphic --> + <programlisting> +---Station de travail Sun +| +---Machine FreeBSD +| +---Windows 95 (N'avouez pas qu'elle est à vous) +| +Routeur autonome + | +Liaison ISDN BRI + </programlisting> + + <para>Si vous n'avez qu'un seul ordinateur à domicile ou dans + l'agence, vous pouvez utiliser une paire torsadée croisée pour + le connecter directement au routeur.</para> + </example> + + <example> + <title>Siège ou autre réseau</title> + + <para>Réseau Ethernet paire torsadée.</para> + + <!-- This should be a graphic --> + <programlisting> + -------Serveur Novell + | H | + | ---Sun + | | + | U ---FreeBSD + | | + | ---Windows 95 + | B | + |___---Routeur autonome + | + Liaison ISDN BRI + </programlisting> + </example> + + <para>Un sérieux avantage de la plupart des ponts/routeurs est qu'ils + vous permettent d'avoir deux connexions PPP <emphasis>séparées et + indépendantes</emphasis> en même temps. Ce n'est pas possible avec + la plupart des adaptateurs, sauf certains modèles particuliers + (coûteux) qui ont deux ports série. Ne confondez pas cela avec + avec le couplage de canaux, MPP, etc.</para> + + <para>Ce peut être une fonctionnalité très utile, par exemple si vous + avez une connexion ISDN Internet dédiée au bureau et voudriez en + profiter mais ne voulez pas acquérir de nouvelle ligne ISDN. + Un routeur au bureau peut gérer un canal B dédié + (64 Kbs) vers l'Internet et utiliser l'autre canal B pour une + autre connexion. Le deuxième canal B peut être utilisé pour + des connexions entrantes, sortantes ou dynamiquement liée + au premier canal B pour augmenter la bande passante.</para> + + <para>Un pont Ethernet vous permettra aussi de transmettre autre + chose que du trafic IP, vous pourrez aussi faire passer de l'IPX/SPX + ou tout autre protocole que vous utilisiez.</para> + + </sect2> + </sect1> + </chapter> +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-shorttag: nil + sgml-always-quote-attributes: t + sgml-minimize-attributes: max + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> diff --git a/fr_FR.ISO_8859-1/books/handbook/backups/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/backups/chapter.sgml new file mode 100644 index 0000000000..707735ab65 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/backups/chapter.sgml @@ -0,0 +1,774 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + +<chapter id="backups"> + <title>Sauvegardes</title> + &trans.a.haby; + + <para>Les questions de compatibilité matérielle sont aujourd'hui + les plus problématiques de l'industrie informatique et FreeBSD + n'en est nullement à l'abri. De ce point de vue, l'avantage qu'a + FreeBSD de pouvoir être utilisé sur du matériel PC de base et + peu coûteux devient un problème lorsqu'il faut supporter la + variété incroyable de composants disponibles sur le marché. + Il est impossible de donner une liste exhaustive des matériels + compatibles avec FreeBSD, mais ce chapitre est un catalogue des + pilotes de périphériques inclut dans FreeBSD et des matériels que + chaque pilote supporte. Si possible et approprié, des notes ont + ajoutées sur les matériels eux-mêmes. Vous pouvez aussi vous + référer au chapitre <link linkend="kernelconfig-config">Configurer + le noyau de FreeBSD</link> de ce manuel pour avoir + la liste des matériels supportés.</para> + + <para>FreeBSD est un projet bénévole qui n'a pas les moyens de financer + un service de tests, nous reposons sur vous, les utilisateurs, pour une + grande part des informations que fournit ce catalogue. Si vous avez + l'expérience personnelle d'un matériel qui fonctionne ou ne fonctionne + pas avec FreeBSD, faites-le nous savoir par courrier électronique + à la &a.doc;. Les questions concernant les matériels compatibles doivent + être adressées à la &a.questions; (voyez la section + <link linkend="eresources-mail">Listes + de diffusion</link> pour plus d'information). Quand vous nous faites + parvenir de l'information ou posez une question, n'oubliez pas s'il vous + plaît de préciser exactement quelle version de FreeBSD vous utilisez et + de donner le maximum de détails sur votre configuration + matérielle.</para> + + <sect1> + <title>* A propos des sauvegardes sur disquettes</title> + + <para></para> + </sect1> + + <sect1 id="backups-tapebackups"> + <title>Formats de bandes</title> + + <para>Les principaux types de bandes sont les 4mm, 8mm, QIC, les mini-cartouches + et les DLT.</para> + + <sect2 id="backups-tapebackups-4mm"> + <title>4mm (DDS: “Digital Data + Storage”)</title> + + <para>Les bandes 4mm sont en train de remplacer les bandes QIC comme format usuel + de sauvegarde pour les stations de travail. Cette tendance s'est accélérée + lorsque Conner a racheté Archive, dominant sur le marché des lecteurs QIC, + et a arrêté la production de ces derniers. Les bandes 4mm sont petites et + silencieuses, mais n'ont pas la réputation de fiabilité des bandes 8mm. Les + cartouches sont moins coûteuses et plus petites (3 x 2 x 0.5 pouces, 76 x 51 + x 12 mm) que les cartouches 8mm. Leurs durées de vie sont faibles et comparables, + car elles utilisent toutes les deux un procédé de lecture/écriture en hélice.</para> + + <para>Leur débit va de ~150kB/s à ~500kB/s au maximum. Leur capacité varie de + 1.3 GB à 2.0 GB. La compression matérielle, disponible sur la plupart des + lecteurs, double approximativement leur capacité. Il existe des lecteurs + multiples avec changeur de bande automatique qui ont jusqu'à six unités de + lecture/écriture. La capacité totale qu'ils gèrent atteint 240 GB.</para> + + <para>Les têtes 4mm, comme les têtes 8mm, utilisent un procédé de lecture/écriture + en hélice. Ils présentent donc tous deux les avantages et les inconvénients de ce + procédé.</para> + + <para>Il faut sortir les bandes après 2.000 utilisations ou 100 sauvegardes + complètes.</para> + </sect2> + + <sect2 id="backups-tapebackups-8mm"> + <title>Bandes 8mm (Exabyte)</title> + + <para>Les unités de bandes 8mm sont les unités SCSI les plus courantes; c'est le + meilleure choix de bandes amovibles. Il y a une unité Exabyte 8mm de 2GB sur + presque chaque site. Les bandes 8mm sont fiables, silencieuses et pratiques. + Les cartouches ne sont pas chères et d'encombrement faible (4.8 x 3.3 x 0.6 + pouces; 122 x 84 x 15 mm). Un des inconvénients de ce format est la durée de + vie relativement courte des bandes et des têtes du fait de la grande vitesse + de défilement de la bande devant les têtes.</para> + + <para>Leur débit va ~250kB/s à ~500kB/s au maximum. Leur capacité commence à + 300 MB jusqu'à 7 GB. La compression matérielle, disponible sur la plupart des + lecteurs, double approximativement leur capacité. Il existe des lecteurs + simples et multiples, qui accueillent six unités et 120 cartouches. Ils + disposent de changeurs de bandes automatiques. Ils gèrent une capacité de + stockage de 840+ GB.</para> + + <para>L'enregistrement des données utilisent un procédé en hélice. Les têtes + sont en biais par rapport à la bande (environ 6 degrés). La bande fait un + angle de 270 degrés avec le cylindre sur lequel se trouvent les têtes. Ce + cylindre tourne en même temps que la bande défile. On aboutit donc à une + grande densité de données et des pistes très serrées qui vont de biais d'un + bord de la bande à l'autre.</para> + </sect2> + + <sect2 id="backups-tapebackups-qic"> + <title>QIC</title> + + <para>Les bandes et les lecteurs QIC-150 sont, peut-être, le format le plus + courant. Les lecteurs de bandes QIC sont les moins chers des supports de + sauvegarde “sérieux”. Leur inconvénient par contre est le + coût des bandes. Les bandes QIC sont chères par rapport aux bande 4mm et 8mm, + près de 5 fois le coût au GB. Mais, si une demi-douzaine de bandes vous + suffit, le format QIC est peut-être le bon choix. QIC est le format le + <emphasis>plus</emphasis> répandu. Il y a un lecteur QIC d'une densité ou + d'une autre sur chaque site. C'est là la difficulté, il y a de nombreuses + densités différentes pour des bandes physiquement semblables (parfois + même identiques). Les lecteurs QIC ne sont pas silencieux. Ils se + positionnent bruyamment avant d'enregistrer et on les entend lorsqu'ils + lisent, enrregistrent ou se positionnent sur la bande. Les bandes QIC + sont volumineuses (6 x 4 x 0.7 pouces; 15.2 x 10.2 x 1.7 mm). + Les <link linkend="backups-tapebackups-mini">Mini-cartouches</link>, + qui utilisent aussi des bandes 1/4" sont décrites par ailleurs. On ne trouve + pas d'unités multi-bandes avec changeur.</para> + + <para>Leur débit va de ~150kB/s à ~500kB/s au maximum. Leur capacité varie de + 40 MB à 15 GB. La compression matérielle est disponible sur de + nombreux modèles récents. On utilise de moins en moins les lecteurs + QIC; ils sont remplacés par les lecteurs DAT.</para> + + <para>Les données sont enregistrées sur des pistes sur la bande. Les pistes + sont parallèles à la bande et vont d'une extrémité à l'autre. Le nombre de + pistes et donc la largeur des pistes dépend de la capacité de la bande. La + plupart, sinon toutes les unités récentes sont au moins compatibles en + lecture (mais souvent aussi en écriture) avec les anciennes. Le format + a une bonne réputation de fiabilité (la mécanique est plus simple est + plus robuste que celle du système en hélice).</para> + + <para>Les bandes sont utilisables pour 5.000 sauvegardes.</para> + </sect2> + + <sect2 id="backups-tapebackups-mini"> + <title>* Mini-Cartouches</title> + + <para></para> + </sect2> + + <sect2 id="backups-tapebackups-dlt"> + <title>DLT</title> + + <para>Les DLT ont le taux de transfert le plus rapide de tous les types + de lecteurs décrits ici. La bande d'1/2" (12.5mm) est contenue dans + une seule cartouche à bobine (4 x 4 x 1 pouces; 100 x 100 x 25 mm). + La cartouche est munie d'une trappe basculante sur une face latérale + entière. Le lecteur ouvre cette trappe pour saisir le début de la + bande. Cette amorce comporte une découpe ovale que le lecteur utilise + pour “crocheter” la bande. La bobine d'entraînement se + trouve dans le lecteur. Tous les autres types de cartouches décrits + ici (les bandes neuf pistes sont la seule exception) incorporent les + bobines de stockage et d'entraînement.</para> + + <para>Leur débit est d'environ 1.5MB/s, trois fois celui des bandes 4mm, + 8mm et QIC. La capacité d'une bande va de 10GB à 20GB. Il y a des unités + avec changeur de bandes et des unités avec plusieurs lecteurs/enregistreurs + qui vont de 5 à 900 bandes et de 1 à 20 lecteurs, ce qui procure une + capacité totale de 50GB à 9TB.</para> + + <para>Les données sont enregistrées sur des pistes parallèles à la direction + de défilement (tout comme les bandes QIC). L'écriture se fait sur deux pistes + à la fois. La durée de vie des têtes de lecture/écriture est relativement + longue; une fois que la bande s'arrête, il n'y a pas de déplacement des têtes + par rapport à la bande.</para> + </sect2> + + <sect2> + <title>Utiliser une bande neuve pour la première fois</title> + + <para>La première fois que vous essayer de lire ou d'écrire sur une bande vierge, + l'opération échoue. La console affiche des messages du type:</para> + +<informalexample> + <screen>st0(ncr1:4:0): NOT READY asc:4,1 +st0(ncr1:4:0): Logical unit is in process of becoming ready</screen> + </informalexample> + + <para>Il n'y a pas de bloc d'identification (bloc numéro 0) sur la bande. + Tous les lecteurs QIC écrivent un bloc d'identification sur la bande + depuis l'adoption du standard QIC-525. Il y a deux solutions:</para> + + <itemizedlist> + <listitem> + <para><command>mt fsf 1</command> fait écrire au lecteur le bloc + d'identification sur la bande.</para> + </listitem> + + <listitem> + <para>Utilisez le bouton du panneau frontal pour éjecter la bande,</para> + + <para>réinsérez la bande et utilisez + <citerefentry> + <refentrytitle>dump</refentrytitle> + <manvolnum>8</manvolnum> + </citerefentry> pour écrire dessus,</para> + + <para><citerefentry> + <refentrytitle>dump</refentrytitle> + <manvolnum>8</manvolnum></citerefentry> produira l'erreur <literal>DUMP: + End of tape detected</literal> et la console affichera: + <literal>HARDWARE FAILURE info:280 asc:80,96</literal>,</para> + + <para>rembobinez la bande avec: <command>mt rewind</command>,</para> + + <para>les manipulations ultérieures sur la bande fonctionneront.</para> + </listitem> + </itemizedlist> + </sect2> + </sect1> + + <sect1 id="backup-programs"> + <title>Programmes de sauvegarde</title> + + <para>Les trois principaux programmes sont: + <citerefentry> + <refentrytitle>dump</refentrytitle> + <manvolnum>8</manvolnum></citerefentry>, + <citerefentry> + <refentrytitle>tar</refentrytitle> + <manvolnum>1</manvolnum></citerefentry>, + et + <citerefentry> + <refentrytitle>cpio</refentrytitle> + <manvolnum>1</manvolnum></citerefentry>.</para> + + <sect2> + <title>Dump et Restore</title> + + <para><citerefentry> + <refentrytitle>dump</refentrytitle> + <manvolnum>8</manvolnum> + </citerefentry> et <citerefentry> + <refentrytitle>restore</refentrytitle> + <manvolnum>8</manvolnum> + </citerefentry> sont les programmes de sauvegarde traditionnels d'Unix. + Ils considérent la bande comme une suite de blocs de disque, en dessous + du niveau d'abstraction que constituent les fichiers, liens et répertoires + créés par les systèmes de fichiers. + <citerefentry> + <refentrytitle>dump</refentrytitle> + <manvolnum>8</manvolnum> + </citerefentry> sauvegarde des entrées de "périphériques", des systèmes + de fichiers complets, et non des sous-ensembles d'un système de fichiers + ou des arborescences de répertoires qui se répartissent sur plusieurs + systèmes de fichiers, via des liens symboliques créés avec + <citerefentry> + <refentrytitle>ln</refentrytitle> + <manvolnum>1</manvolnum> + </citerefentry> ou en montant un système de fichiers sur un autre. + <citerefentry> + <refentrytitle>dump</refentrytitle> + <manvolnum>8</manvolnum> + </citerefentry> n'écrit pas de fichiers ou répertoires sur la bande, mais + écrit les blocs de données dont sont constitués les fichiers et + les répertoires. <citerefentry> + <refentrytitle>dump</refentrytitle> + <manvolnum>8</manvolnum> + </citerefentry> a quelques particularités qui datent de la + Version 6 d'ATT Unix (circa 1975). Les paramètres par défaut + conviennent aux bandes 9 pistes (6250 bpi) et non aux supports + à haute densité que l'on trouve maintenant (jusqu'à 62,182 ftpi). + Il faut surcharger ces valeurs par défaut sur la ligne de + commande pour utiliser la capacité des bandes actuelles.</para> + + <para><citerefentry> + <refentrytitle>rdump</refentrytitle> + <manvolnum>8</manvolnum> + </citerefentry> et <citerefentry> + <refentrytitle>rrestore</refentrytitle> + <manvolnum>8</manvolnum></citerefentry> sauvegardent les données + via le réseau sur une unité de bandes qui se trouve sur une + autre machine. Les deux programmes se servent de + <citerefentry> + <refentrytitle>rcmd</refentrytitle> + <manvolnum>3</manvolnum> + </citerefentry> et <citerefentry> + <refentrytitle>ruserok</refentrytitle> + <manvolnum>3</manvolnum></citerefentry> pour accéder à l'unité de + bandes distante. L'utilisateur qui effectue la sauvegarde doit donc + avoir un accès <literal>rhosts</literal> à la machine distante. Les + arguments de <citerefentry> + <refentrytitle>rdump</refentrytitle> + <manvolnum>8</manvolnum> + </citerefentry> et <citerefentry> + <refentrytitle>rrestore</refentrytitle> + <manvolnum>8</manvolnum> + </citerefentry> doivent être compatibles avec la machine distante (e.g. + si vous sauvegardez d'une machine FreeBSD sur un lecteur Exabyte + installé sur un ordinateur Sun appelé + <hostid>komodo</hostid>, utilisez: <command>/sbin/rdump 0dsbfu 54000 + 13000 126 komodo:/dev/nrst8 /dev/rsd0a 2>&1</command>) Attention: + Autoriser les commandes <literal>rhosts</literal> a des conséquences + pour la sécurité. Evaluez soigneusement votre situation.</para> + </sect2> + + <sect2> + <title>Tar</title> + + <para><citerefentry> + <refentrytitle>tar</refentrytitle> + <manvolnum>1</manvolnum> + </citerefentry> date aussi de la Version 6 d'ATT Unix (circa + 1975). <citerefentry> + <refentrytitle>tar</refentrytitle> + <manvolnum>1</manvolnum> + </citerefentry> travaille en coopération avec le système de fichiers; + <citerefentry> + <refentrytitle>tar</refentrytitle> + <manvolnum>1</manvolnum> + </citerefentry> écrit des fichiers et des répertoires sur la bande. + <citerefentry> + <refentrytitle>tar</refentrytitle> + <manvolnum>1</manvolnum> + </citerefentry> ne supporte pas toutes les options que permet + <citerefentry> + <refentrytitle>cpio</refentrytitle> + <manvolnum>1</manvolnum></citerefentry>, mais <citerefentry> + <refentrytitle>tar</refentrytitle> + <manvolnum>1</manvolnum></citerefentry> ne demande pas + l'inhabituelle concaténation de commandes qu'utilise + <citerefentry> + <refentrytitle>cpio</refentrytitle> + <manvolnum>1</manvolnum> + </citerefentry>.</para> + + <para>La plupart des versions de <citerefentry> + <refentrytitle>tar</refentrytitle> + <manvolnum>1</manvolnum> + </citerefentry> ne donnent pas la possibilité de sauvegarde en réseau. La + version GNU de <citerefentry> + <refentrytitle>tar</refentrytitle> + <manvolnum>1</manvolnum></citerefentry>, que FreeBSD utilise, + supporte les périphériques distants avec la même syntaxe que + <command>rdump</command>. Pour sauvegarder avec <citerefentry> + <refentrytitle>tar</refentrytitle> + <manvolnum>1</manvolnum> + </citerefentry> sur une unité Exabyte installée sur un Sun appelé + komodo, utilisez: <command>/usr/bin/tar cf komodo:/dev/nrst8 . + 2>&1</command>. Avec les versions sans support pour des + périphériques distants, vous pouvez utilisez un tuyau (“pipe”) + et <citerefentry> + <refentrytitle>rsh</refentrytitle> + <manvolnum>1</manvolnum></citerefentry> pour envoyer les données + sur le lecteur distant.</para> + </sect2> + + <sect2> + <title>Cpio</title> + + <para><citerefentry> + <refentrytitle>cpio</refentrytitle> + <manvolnum>1</manvolnum></citerefentry> est le programme Unix + original pour l'échange de fichiers par bandes magnétiques. + <citerefentry> + <refentrytitle>cpio</refentrytitle> + <manvolnum>1</manvolnum></citerefentry> dispose d'options (entre + beaucoup d'autres) pour intervertir les octets, utiliser différents + formats d'archivage et envoyer les données à d'autres programmes. + C'est cette dernière possibilité qui fait de + <citerefentry> + <refentrytitle>cpio</refentrytitle> + <manvolnum>1</manvolnum></citerefentry> un excellent choix pour + les supports d'installation. <citerefentry> + <refentrytitle>cpio</refentrytitle> + <manvolnum>1</manvolnum></citerefentry> ne sait pas parcourir + l'arborescence d'un répertoire et il faut lui passer la liste + des fichiers via + <filename>STDIN</filename>.</para> + + <para><citerefentry> + <refentrytitle>cpio</refentrytitle> + <manvolnum>1</manvolnum></citerefentry> ne permet pas la + sauvegarde sur le réseau et il faut utiliser un tuyau (“pipe”) + et <citerefentry> + <refentrytitle>rsh</refentrytitle> + <manvolnum>1</manvolnum></citerefentry> pour envoyer les données sur une + unité distante.</para> + </sect2> + + <sect2> + <title>Pax</title> + + <para><citerefentry> + <refentrytitle>pax</refentrytitle> + <manvolnum>1</manvolnum></citerefentry> est la réponse IEEE/POSIX à + <command>tar</command> et <command>cpio</command>. Au fil des ans, les + différentes versions de <command>tar</command> et <command>cpio</command> + sont devenues légérement incompatibles. Donc, au lieu de batailler pour + les standardiser entièrement, POSIX a défini un nouvel utilitaire d'archivage. + <command>pax</command> essaie de lire nombre de formats + <citerefentry><refentrytitle>tar</refentrytitle><manvolnum>1</manvolnum></citerefentry> et + <citerefentry><refentrytitle>cpio</refentrytitle><manvolnum>1</manvolnum></citerefentry> en + plus de ses propres nouveaux formats. Son jeu de commandes ressemble plus à + celui de <command>cpio</command> qu'à celui de + <command>tar</command>.</para> + </sect2> + + <sect2 id="backups-programs-amanda"> + <title>Amanda</title> + + <para><ulink url="http://www.freebsd.org/ports/misc.html#amanda-2.4.0">Amanda</ulink> + (Advanced Maryland Network Disk Archiver - Système Avancé d'Archivage + de Disques en Réseau du Maryland ) est un système d'archivage client/serveur + plutôt qu'un simple programme. Un serveur Amanda archivera sur une seule + unité de bandes un nombre quelconque d'ordinateurs qui ont un client + Amanda et un accès réseau au serveur Amanda. Un problème habituel sur + les sites qui ont de nombreux disques volumineux est le temps disponible + pour la sauvegarde. Amanda résoud ce problème. Amanda peut utiliser un + “disque intermédiaire” pour sauvegarder plusieurs systèmes de fichiers + à la fois. Amanda crée des “jeux d'archive”, un ensemble de bandes + utilisées pour une période donnée pour créer une sauvegarde complète de tous les + systèmes de fichiers listés dans ses fichiers de configuration. + Le “jeu d'archive” contient aussi les sauvegardes nocturnes + incrémentales (ou différentielles) de tous les systèmes de fichiers. + Pour restaurer un système de fichiers endommagé, il faut la sauvegarde + complète la plus récente et les sauvegardes incrémentales.</para> + + <para>Le fichier de configuration permet un contrôle en finesse des + sauvegardes et du trafic qu'Amanda génére sur le réseau. Amanda peut + utiliser n'importe lequel des programmes de sauvegarde décrits plus + haut pour écrire les données sur bande. Amanda existe sous forme + pré-compilée ou source, il n'est pas installé par défaut.</para> + </sect2> + + <sect2> + <title>Ne rien faire</title> + + <para>“Ne rien faire” n'est pas un logiciel, mais c'est la + stratégie de sauvegarde la plus utilisée. Il n'y a aucun investissement. + Il n'y a pas de planification des sauvegardes à suivre. Juste dire non. + Si quelque chose arrive à vos données, souriez et débrouillez-vous!</para> + + <para>Si votre temps et vos données ne valent pas grand chose, alors + “Ne rien faire” est le programme de sauvegarde le mieux + adapté à votre ordinateur. Mais prenez garde, Unix est un bon outil, + vous pouvez vous rendre compte au bout de six mois que vous avez une + collection de fichiers utiles.</para> + + <para>“Ne rien faire” est la bonne méthode pour sauvegarder + <filename>/usr/obj</filename> et les autres répertoires qui peuvent + facilement être recréés par votre ordinateur. Par exemple, les fichiers + qui constituent ces pages ont été générés à partir de fichiers + <acronym>SGML</acronym>. Il n'est pas nécessaire d'archiver ces fichiers + <acronym>HTML</acronym>. Les fichiers source + <acronym>SGML</acronym> sont sauvegardés régulièrement.</para> + </sect2> + + <sect2> + <title>Quel est le meilleur programme de sauvegarde?</title> + + <para><citerefentry> + <refentrytitle>dump</refentrytitle> + <manvolnum>8</manvolnum></citerefentry> <emphasis>Point.</emphasis> + Elizabeth D. Zwicky a soumis à rude épreuve tous les programmes de + sauvegarde dont nous avons parlé. Le choix de + <citerefentry><refentrytitle>dump</refentrytitle> + <manvolnum>8</manvolnum></citerefentry> s'impose pour préserver toutes + vos données et les particularités des systèmes de fichiers Unix. + Elizabeth a créé des systèmes de fichiers avec une grande variété + de particularités inhabituelles et a testé chacun des programmes + en faisant une sauvegarde et une restauration. Parmi les spécificités + testées : fichiers avec des trous, fichiers avec des trous et des blocs + de caractères “null”, fichiers dont les noms comportaient des + caractères inhabituels, fichiers illisibles ou dans lesquels il n'était + pas possible d'écrire, périphériques, fichiers dont la taille changeait + pendant la sauvegarde, fichiers créés ou détruits en cours de sauvegarde, + et bien d'autres encore. Elle a présenté les résultats de ces test au + LISA V en Octobre 1991. Voyez ses <ulink + url="http://reality.sgi.com/zwicky_neu/testdump.doc.html">Tests d'endurance des programmes + de sauvegarde et de restauration</ulink>.</para> + </sect2> + + <sect2> + <title>Procédure de restauration d'urgence</title> + + <sect3> + <title>Avant le désastre</title> + + <para>Il y a quatre étapes à mettre en oeuvre en prévision d'un désastre éventuel.</para> + + <para>Tout d'abord, imprimez le label de chacun de vos disques + (<command>e.g. disklabel sd0 | lpr</command>), votre table des systèmes de fichiers + (<command>/etc/fstab</command>) et tous les messages de démarrage, + en deux exemplaires.</para> + + <para>Deuxièmement, vérifiez que vos disquettes de démarrage + et de reprise d'urgence + (<filename>boot.flp</filename> et <filename>fixit.flp</filename>) + incluent tous vos périphériques. La meilleure façon de le vérifier + est de redémarrer avec la disquette de démarrage dans le lecteur + et de contrôler les messages de démarrage. Si tous les périphériques + y figurent et sont opérationnels, passez à la troisième étape.</para> + + <para>Sinon, vous devez créer deux disquettes de démarrage sur-mesure + avec un noyau qui puisse monter tous vos disques et accéder à votre + unité de bandes. Ces disquettes doivent contenir: + <citerefentry> + <refentrytitle>fdisk</refentrytitle> + <manvolnum>8</manvolnum></citerefentry>, <citerefentry> + <refentrytitle>disklabel</refentrytitle> + <manvolnum>8</manvolnum></citerefentry>, <citerefentry> + <refentrytitle>newfs</refentrytitle> + <manvolnum>8</manvolnum></citerefentry>, <citerefentry> + <refentrytitle>mount</refentrytitle> + <manvolnum>8</manvolnum></citerefentry>, et celui des programmes + de sauvegarde que vous utilisez. L'édition de liens de ces + programmes doit être statique. Si vous utilisez + <citerefentry> + <refentrytitle>dump</refentrytitle> + <manvolnum>8</manvolnum></citerefentry>, les disquettes doivent + inclure + <citerefentry> + <refentrytitle>restore</refentrytitle> + <manvolnum>8</manvolnum></citerefentry>.</para> + + <para>Troisièmement, faites régulièrement des sauvegardes sur bandes. Toutes + les modifications effectuées après la dernière sauvegarde peuvent être + irrémédiablement perdues. Protégez vos bandes de sauvegarde en écriture.</para> + + <para>Quatrièmement, testez vos disquettes (soit <filename>boot.flp</filename> + et <filename>fixit.flp</filename>, soit les deux disquettes sur-mesure que vous + avez créées à la seconde étape) et vos bandes de sauvegarde. Prenez note de + la procédure (de restauration). Rangez ces notes avec la disquette de démarrage, + les impressions et les bandes de sauvegarde. Vous serez si préoccupé quand vous + devrez restaurer que ces notes peuvent vous éviter de détruire vos bandes de + sauvegarde (Comment? En tapant accidentellement + <command>tar cvf /dev/rst0</command> au lieu de <command>tar xvf</command> ce qui + écraserait vos bandes de sauvegarde).</para> + + <para>Par mesure de sécurité, créez une disquette de démarrage et deux bandes + de sauvegarde à chaque fois. Rangez-les dans un lieu éloigné. Le sous-sol + du même batiment <emphasis>n'est pas</emphasis> un endroit éloigné. Un certain + nombre de compagnies du World Trade Center l'ont appris à leurs dépends. Un + endroit éloigné doit être physiquement significativement séparé de vos + ordinateurs et de vos disques.</para> + + <para>Voici un exemple de procédure pour créer une disquette de démarrage:</para> + + <programlisting> +<![ CDATA [#!/bin/sh +# +# créer une disquette de restauration +# +# formater la disquette +# +PATH=/bin:/sbin:/usr/sbin:/usr/bin + +fdformat -q fd0 +if [ $? -ne 0 ] +then + echo "Mauvaise disquette, utilisez-en une neuve" + exit 1 +fi +# +# mettre les blocs de démarrage sur la disquette +# +disklabel -w -B -b /usr/mdec/fdboot -s /usr/mdec/bootfd /dev/rfd0c fd1440 + +# +# newfs sur la seule et unique partition +# +newfs -t 2 -u 18 -l 1 -c 40 -i 5120 -m 5 -o space /dev/rfd0a + +# +# monter la nouvelle disquette +# +mount /dev/fd0a /mnt + +# +# créer les répertoires voulus +# +mkdir /mnt/dev +mkdir /mnt/bin +mkdir /mnt/sbin +mkdir /mnt/etc +mkdir /mnt/root +mkdir /mnt/mnt # pour la partition racine +mkdir /mnt/tmp +mkdir /mnt/var + +# +# peupler les répertoires +# +if [ ! -x /sys/compile/MINI/kernel ] +then + cat << EOM +Le noyau MINI n'existe pas, créez-le. +Voici un exemple de fichier de configuration: +# +# MINI -- Un noyau pour FreeBSD pour mettre sur une disquette. +# +machine "i386" +cpu "I486_CPU" +ident MINI +maxusers 5 + +options INET # requis pour _tcp _icmpstat _ipstat + # _udpstat _tcpstat _udb +options FFS #Berkeley Fast File System +options FAT_CURSOR #gros curseur pour syscons ou pccons +options SCSI_DELAY=15 #Etre pessimiste pour les périphériques SCSI de Joe +options NCONS=2 #1 consoles virtuelle +options USERCONFIG #Permettre la configuration utilisateur avec -c XXX + +config kernel root on sd0 swap on sd0 and sd1 dumps on sd0 + +controller isa0 +controller pci0 + +controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr +disk fd0 at fdc0 drive 0 + +controller ncr0 + +controller scbus0 + +device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr +device npx0 at isa? port "IO_NPX" irq 13 vector npxintr + +device sd0 +device sd1 +device sd2 + +device st0 + +pseudo-device loop # requis par INET +pseudo-device gzip # Pouvoir exécuter les a.out "gzippés" +EOM + exit 1 +fi + +cp -f /sys/compile/MINI/kernel /mnt + +gzip -c -best /sbin/init > /mnt/sbin/init +gzip -c -best /sbin/fsck > /mnt/sbin/fsck +gzip -c -best /sbin/mount > /mnt/sbin/mount +gzip -c -best /sbin/halt > /mnt/sbin/halt +gzip -c -best /sbin/restore > /mnt/sbin/restore + +gzip -c -best /bin/sh > /mnt/bin/sh +gzip -c -best /bin/sync > /mnt/bin/sync + +cp /root/.profile /mnt/root + +cp -f /dev/MAKEDEV /mnt/dev +chmod 755 /mnt/dev/MAKEDEV + +chmod 500 /mnt/sbin/init +chmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt +chmod 555 /mnt/bin/sh /mnt/bin/sync +chmod 6555 /mnt/sbin/restore + +# +# créer les fichiers spéciaux de périphériques +# +cd /mnt/dev +./MAKEDEV std +./MAKEDEV sd0 +./MAKEDEV sd1 +./MAKEDEV sd2 +./MAKEDEV st0 +./MAKEDEV pty0 +cd / + +# +# créer une table des systèmes de fichiers minimale +# +cat > /mnt/etc/fstab <<EOM +/dev/fd0a / ufs rw 1 1 +EOM + +# +# créer un fichier d'utilisateurs minimal +# +cat > /mnt/etc/passwd <<EOM +root:*:0:0:Charlie &:/root:/bin/sh +EOM + +cat > /mnt/etc/master.passwd <<EOM +root::0:0::0:0:Charlie &:/root:/bin/sh +EOM + +chmod 600 /mnt/etc/master.passwd +chmod 644 /mnt/etc/passwd +/usr/sbin/pwd_mkdb -d/mnt/etc /mnt/etc/master.passwd + +# +# démonter la disquette et prévenir l'utilisateur +# +/sbin/umount /mnt]]></programlisting> + </sect3> + + <sect3> + <title>Après le désastre</title> + + <para>La question cruciale est: votre matériel a-t-il survécu? Vous avez fait + des sauvegardes régulières, donc vous n'avez pas besoin de vous inquiéter + pour les logiciels et les fichiers.</para> + + <para>Si le matériel a subi des dégats, remplacez d'abord ce qui a été + endommagé.</para> + + <para>Si votre matériel est en état, récupérez vos disquettes. Si vous + utilisez une disquette sur-mesure, démarrez en mode mono-utilisateur + (tapez <literal>-s</literal> à l'invite <prompt>boot:</prompt>). Sautez + le paragraphe suivant.</para> + + <para>Si vous utilisez les disquettes <filename>boot.flp</filename> et + <filename>fixit.flp</filename>, continuez à lire. Mettez la disquette + <filename>boot.flp</filename> dans le premier lecteur et démarrez + l'ordinateur. Le menu d'installation d'origine s'affiche à l'écran, + choisissez l'option <literal>Fixit--Repair mode with CDROM or + floppy</literal> (Reprise avec une disquette ou un CDROM). Insérez la + disquette <filename>fixit.flp</filename> quand on vous la demande. + <command>restore</command> et les autres programmes dont vous avez besoin + sont dans le répertoire <filename>/mnt2/stand</filename>.</para> + + <para>Restaurez séparement chaque système de fichiers.</para> + + <para>Essayez <citerefentry> + <refentrytitle>mount</refentrytitle> + <manvolnum>8</manvolnum> + </citerefentry>(e.g. <command>mount /dev/sd0a + /mnt</command>) sur la partition racine de votre premier disque. + Si le label du disque est endommagé, utilisez <citerefentry> + <refentrytitle>disklabel</refentrytitle> + <manvolnum>8</manvolnum></citerefentry> pour repartitionner et + libeller le disque comme l'indique le label que vous avez imprimé + et mis de côté. Utilisez + <citerefentry> + <refentrytitle>newfs</refentrytitle> + <manvolnum>8</manvolnum></citerefentry> pour recréer les systèmes + de fichiers. Remontez la partition racine de la disquette en + lecture/écriture (<command>mount -u -o rw /mnt</command>). Utilisez + votre programme de restauration et vos bandes de sauvegardes pour + restaurer les fichiers de ce système de fichiers (e.g. + <command>restore vrf /dev/st0</command>). Démontez le système de fichiers + (e.g. <command>umount /mnt</command>). Répétez l'opération pour chacun + des systèmes de fichiers endommagés.</para> + + <para>Une fois que le système fonctionne de nouveau, faites une sauvegarde + sur de nouvelles bandes. Ce qui a causé la panne ou la perte de données + peut se reproduire. Une heure de perdue maintenant peut vous épargner + d'autres ennuis plus tard.</para> + </sect3> + + <sect3> + <title>* Je ne me suis pas préparé au désastre, que faire?</title> + + <para></para> + </sect3> + </sect2> + </sect1> +</chapter> + +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-always-quote-attributes: t + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> diff --git a/fr_FR.ISO_8859-1/books/handbook/basics/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/basics/chapter.sgml new file mode 100644 index 0000000000..e725f90411 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/basics/chapter.sgml @@ -0,0 +1,163 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: 1.9 +--> + + <chapter id="basics"> + <title>Quelques bases d'Unix</title> + &trans.a.breard; + + + <sect1 id="basics-man"> + <title>Le manuel en ligne</title> + + <para>La documentation la plus importante sur FreeBSD est sous forme + <emphasis>de pages de manuel</emphasis>. Presque tous les programmes + du système sont fournis avec un court manuel de + référence expliquant les opérations de bases + et leurs différents arguments. + Ces pages de manuel peuvent être lues avec la commande + <command>man</command>. + L'utilisation de la commande <command>man</command> est simple :</para> + <informalexample> + <screen>&prompt.user <userinput>man <replaceable>commande</replaceable></userinput> + </screen> + </informalexample> + + <para>où <replaceable>commande</replaceable> est le nom + de la commande dont vous voulez voir la page de manuel. + Par exemple pour en savoir plus sur la commande <command>ls</command> + tapez :</para> + + <screen>&prompt.user; <userinput>man ls</userinput></screen> + + <para>Le manuel en ligne est divisé en plusieurs sections + numérotées :</para> + + <orderedlist> + + <listitem> + <para>Les commandes utilisateur</para> + </listitem> + + <listitem> + <para>Les appels systèmes et les numéros d'erreurs</para> + </listitem> + + <listitem> + <para>Les fonctions de la bibliothèque C</para> + </listitem> + + <listitem> + <para>Les pilotes de périphériques</para> + </listitem> + + <listitem> + <para>Les formats de fichiers</para> + </listitem> + + <listitem> + <para>Les jeux et autres divertissements</para> + </listitem> + + <listitem> + <para>Des informations diverses</para> + </listitem> + + <listitem> + <para>Les commandes d'administration et de maintenance du système</para> + </listitem> + + </orderedlist> + + <para>Dans certains cas le même sujet peut apparaître dans + plusieurs sections du manuel en ligne. Par exemple il y a une commande + utilisateur <command>chmod</command> et un appel système + <function>chmod()</function>. + Dans ce cas, vous pouvez appeler la commande <command>man</command> + en spécifiant la section souhaitée :</para> + + <screen>&prompt.user; <userinput>man 1 chmod</userinput></screen> + + <para>affichera la page de manuel pour la commande utilisateur + <command>chmod</command>. + Les références à une section particulière + du manuel sont traditionnellement placées entre + parenthèses dans les documentations. Ainsi + <citerefentry><refentrytitle>chmod</refentrytitle><manvolnum>1</manvolnum></citerefentry> + fait référence à la commande utilisateur + <command>chmod</command> et + <citerefentry><refentrytitle>chmod</refentrytitle><manvolnum>2</manvolnum></citerefentry> + fait référence à l'appel système.</para> + + <para>C'est bien si vous connaissez le nom des commandes et que vous voulez + simplement savoir comment les utiliser, mais si vous ne vous rappeler pas + le nom d'une commande, comment faire ? Vous pouvez alors utiliser + <command>man</command> pour rechercher un mot clef dans la partie + <emphasis>descriptions</emphasis> des pages de manuel en utilisant + l'option <option>-k</option> :</para> + + + <screen>&prompt.user; <userinput>man -k mail</userinput></screen> + + <para>Avec cette commande vous obtiendrez la liste de toutes les commandes + qui contiennent le mot clef “mail” dans leur description. + C'est l'équivalent de la commande <command>apropos</command>.</para> + + <para>Si vous souhaitez avoir un aperçu rapide des fonctions de + toutes les commandes qui se trouvent dans un répertoire, + par exemple <filename>/usr/bin</filename> vous pouvez simplement taper : + + + <screen>&prompt.user; <userinput>cd /usr/bin; man -f *</userinput></screen> + + + ou encore + + + <screen>&prompt.user; <userinput>cd /usr/bin; whatis *</userinput></screen> + + + qui fait la même chose.</para> + + </sect1> + + <sect1 id="basics-info"> + + <title>Les fichiers GNU INFO</title> + + <para>FreeBSD comprend plusieurs applications et utilitaires produit par + la Free Software Foundation (FSF). En plus des pages de manuel, ces programmes + sous fournis avec une documentation hypertexte plus importante appelée + fichier “info ” qui peut être visualisée avec la commande + <command>info</command> ou, si vous avez installé <command>Emacs</command>, + avec le mode info d'<command>Emacs</command>.</para> + + <para>Pour utiliser la commande + <citerefentry><refentrytitle>info</refentrytitle> + <manvolnum>1</manvolnum></citerefentry> tapez simplement : + + <screen>&prompt.user; <userinput>info</userinput></screen> + + Pour une brève introduction à l'utilisation d'<command>info</command> tapez + <userinput>h</userinput>. + Pour une référence rapide des commandes d'<command>info</command> tapez + <userinput>?</userinput>.</para> + + </sect1> + </chapter> +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-shorttag: nil + sgml-always-quote-attributes: t + sgml-minimize-attributes: max + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> diff --git a/fr_FR.ISO_8859-1/books/handbook/bibliography/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/bibliography/chapter.sgml new file mode 100644 index 0000000000..857b440c61 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/bibliography/chapter.sgml @@ -0,0 +1,498 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: 1.10 +--> + +<chapter id="bibliography"> + <title>Bibliographie</title> + + <para>Bien que les pages de manuel soient la documentation de + référence pour chaque facette du systàme + d'exploitation FreeBSD, il est de notoriété publique qu'elles + n'expliquent pas comment assembler les morceaux pour avoir un système + d'exploitation qui tourne sans encombre. Il n'y a pour cela pas d'autre + alternative qu'un bon livre sur l'administration Unix et un bo manuel + utilisateur.</para> + + <sect1> + <title>Livres & revues consacrés à FreeBSD</title> + + <para><emphasis>Livres & revues internationaux :</emphasis></para> + + <itemizedlist> + <listitem> + <para><ulink URL="http://freebsd.csie.nctu.edu.tw/~jdli/book.html">Utiliser + FreeBSD</ulink> (en Chinois).</para> + </listitem> + + <listitem> + <para>FreeBSD pour les utilisateurs de PC 98 (en Japonais), + publié par SHUWA System Co, LTD. + ISBN 4-87966-468-5 C3055 P2900E.</para> + </listitem> + + <listitem> + <para>FreeBSD (en Japonais), publié par CUTT. ISBN 4-906391-22-2 + C3055 P2400E.</para> + </listitem> + + <listitem> + <para><ulink URL="http://www.shoeisha.co.jp/pc/index/shinkan/97_05_06.htm">Introduction + complète à FreeBSD</ulink> (en Japonais), publié + par <ulink URL="http://www.shoeisha.co.jp/">Shoeisha Co., Ltd</ulink>. + ISBN 4-88135-473-6 P3600E.</para> + </listitem> + + <listitem> + <para><ulink URL="http://www.ascii.co.jp/pb/book1/shinkan/detail/1322785.html">Kit + de démarrage pour Unix personnel FreeBSD</ulink> (en Japonais), + publié par <ulink URL="http://www.ascii.co.jp/">ASCII</ulink>. + ISBN 4-7561-1733-3 P3000E.</para> + </listitem> + + <listitem> + <para>Manuel de référence FreeBSD (traduction en + Japonais), publié par + <ulink URL="http://www.ascii.co.jp/">ASCII</ulink>. + ISBN 4-7561-1580-2 P3800E.</para> + </listitem> + + <listitem> + <para>FreeBSD avec méthode (en Allemand), publié par + Computer und Literatur Verlag/Vertrieb Hanser, 1998. + ISBN 3-932311-31-0.</para> + </listitem> + + <listitem> + <para><ulink url="http://www.pc.mycom.co.uk/FreeBSD/install-manual.html">Manuel + d'installation et d'utilisation de FreeBSD</ulink> (en Japonais), + publié par <ulink url="http://www.pc.mycom.co.jp/">Mainichi + Communications Inc.</ulink>.</para> + </listitem> + </itemizedlist> + + <para><emphasis>Livres & revues en langue + anglaise :</emphasis></para> + + <itemizedlist> + <listitem> + <para><ulink URL="http://www.cdrom.com/titles/freebsd/bsdbook2.phtml">FreeBSD + intégral</ulink>, publié par + <ulink URL="http://www.cdrom.com">Walnut Creek CDROM</ulink>.</para> + </listitem> + </itemizedlist> + </sect1> + + <sect1> + <title>Manuels d'utilisation</title> + + <itemizedlist> + <listitem> + <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD + User's Reference Manual</emphasis>. O'Reilly & Associates, + Inc., 1994. ISBN 1-56592-075-9</para> + </listitem> + + <listitem> + <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD + User's Supplementary Documents</emphasis>. O'Reilly & + Associates, Inc., 1994. ISBN 1-56592-076-7</para> + </listitem> + + <listitem> + <para><emphasis>UNIX in a Nutshell</emphasis>. O'Reilly & + Associates, Inc., 1990. ISBN 093717520X</para> + </listitem> + + <listitem> + <para>Mui, Linda. <emphasis>What You Need To Know When You Can't Find + Your UNIX System Administrator</emphasis>. O'Reilly & + Associates, Inc., 1995. ISBN 1-56592-104-6</para> + </listitem> + + <listitem> + <para><ulink URL="http://www-wks.acs.ohio-state.edu/">L'Université + de l'Etat d'Ohio</ulink> a écrit un + <ulink URL="http://www-wks.acs.ohio-state.edu/unix_course/unix.html">Cours + d'introduction à Unix</ulink> disponible en ligne aux formats + HTML et PostScript.</para> + </listitem> + + <listitem> + <para><ulink url="http://www.jp.FreeBSD.ORG/">Jpman Project, Groupe + d'utilisateurs japonais de FreeBSD</ulink>. + <ulink url="http://www.pc.mycom.co.jp/FreeBSD/urm.html">Manuel de + référence utilisateur de FreeBSD</ulink> (traduction + en Japonais). <ulink url="http://www.pc.mycom.co.jp/">Mainichi + Communications Inc.</ulink>, 1998. ISBN4-8399-0088-4 P3800E.</para> + </listitem> + </itemizedlist> + </sect1> + + <sect1> + <title>Manuels d'administration</title> + + <itemizedlist> + <listitem> + <para>Albitz, Paul and Liu, Cricket. <emphasis>DNS and + BIND</emphasis>, 2nd Ed. O'Reilly & Associates, Inc., 1997. + ISBN 1-56592-236-0</para> + </listitem> + + <listitem> + <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD + System Manager's Manual</emphasis>. O'Reilly & Associates, + Inc., 1994. ISBN 1-56592-080-5</para> + </listitem> + + <listitem> + <para>Costales, Brian, et al. <emphasis>Sendmail</emphasis>, 2nd Ed. + O'Reilly & Associates, Inc., 1997. ISBN 1-56592-222-0</para> + </listitem> + + <listitem> + <para>Frisch, Æleen. <emphasis>Essential System + Administration</emphasis>, 2nd Ed. O'Reilly & Associates, + Inc., 1995. ISBN 1-56592-127-5<footnote><para>N.d.T.: traduit en + français sous le titre “Les bases essentielles de + l'administration système”, chez le même + éditeur.</para></footnote></para> + </listitem> + + <listitem> + <para>Hunt, Craig. <emphasis>TCP/IP Network + Administration</emphasis>. O'Reilly & Associates, Inc., 1992. + ISBN 0-937175-82-X<footnote><para>N.d.T.: traduit en + français sous le titre “Administration réseau + TCP/IP”, chez le même + éditeur.</para></footnote></para> + </listitem> + + <listitem> + <para>Nemeth, Evi. <emphasis>UNIX System Administration + Handbook</emphasis>. 2nd Ed. Prentice Hall, 1995. ISBN + 0131510517</para> + </listitem> + + <listitem> + <para>Stern, Hal <emphasis>Managing NFS and NIS</emphasis> O'Reilly + & Associates, Inc., 1991. ISBN 0-937175-75-7</para> + </listitem> + + <listitem> + <para><ulink url="http://www.jp.FreeBSD.ORG/">Jpman Project, Groupe + d'utilisateurs japonais de FreeBSD</ulink>. + <ulink url="http://www.pc.mycom.co.jp/FreeBSD/sam.html">Manuel de + l'administrateur système FreeBSD</ulink> (traduction + en Japonais). <ulink url="http://www.pc.mycom.co.jp/">Mainichi + Communications Inc.</ulink>, 1998. ISBN4-8399-0109-0 P3300E.</para> + </listitem> + </itemizedlist> + </sect1> + + <sect1> + <title>Manuels de programmation</title> + + <itemizedlist> + <listitem> + <para>Asente, Paul. <emphasis>X Window System Toolkit</emphasis>. + Digital Press. ISBN 1-55558-051-3</para> + </listitem> + + <listitem> + <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD + Programmer's Reference Manual</emphasis>. O'Reilly & + Associates, Inc., 1994. ISBN 1-56592-078-3</para> + </listitem> + + <listitem> + <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD + Programmer's Supplementary Documents</emphasis>. O'Reilly & + Associates, Inc., 1994. ISBN 1-56592-079-1</para> + </listitem> + + <listitem> + <para>Harbison, Samuel P. and Steele, Guy L. Jr. <emphasis>C: A + Reference Manual</emphasis>. 4rd ed. Prentice Hall, 1995. + ISBN 0-13-326224-3</para> + </listitem> + + <listitem> + <para>Kernighan, Brian and Dennis M. Ritchie. <emphasis>The C + Programming Language.</emphasis>. PTR Prentice Hall, 1988. + ISBN 0-13-110362-9</para> + </listitem> + + <listitem> + <para>Lehey, Greg. <emphasis>Porting UNIX Software</emphasis>. + O'Reilly & Associates, Inc., 1995. ISBN 1-56592-126-7</para> + </listitem> + + <listitem> + <para>Plauger, P. J. <emphasis>The Standard C Library</emphasis>. + Prentice Hall, 1992. ISBN 0-13-131509-9</para> + </listitem> + + <listitem> + <para>Stevens, W. Richard. <emphasis>Advanced Programming in the UNIX + Environment</emphasis>. Reading, Mass. : Addison-Wesley, 1992 + ISBN 0-201-56317-7</para> + </listitem> + + <listitem> + <para>Stevens, W. Richard. <emphasis>UNIX Network + Programming</emphasis>. 2nd Ed, PTR Prentice Hall, 1998. ISBN + 0-13-490012-X</para> + </listitem> + + <listitem> + <para>Wells, Bill. “Writing Serial Drivers for UNIX”. + <emphasis>Dr. Dobb's Journal</emphasis>. 19(15), December 1994. + pp68-71, 97-99.</para> + </listitem> + </itemizedlist> + </sect1> + + <sect1> + <title>“Internes” du système d'exploitation</title> + + <itemizedlist> + <listitem> + <para>Andleigh, Prabhat K. <emphasis>UNIX System + Architecture</emphasis>. Prentice-Hall, Inc., 1990. ISBN + 0-13-949843-5</para> + </listitem> + + <listitem> + <para>Jolitz, William. “Porting UNIX to the 386”. + <emphasis>Dr. Dobb's Journal</emphasis>. January 1991-July + 1992.</para> + </listitem> + + <listitem> + <para>Leffler, Samuel J., Marshall Kirk McKusick, Michael J Karels and + John Quarterman <emphasis>The Design and Implementation of the + 4.3BSD UNIX Operating System</emphasis>. Reading, Mass. : + Addison-Wesley, 1989. ISBN 0-201-06196-1</para> + </listitem> + + <listitem> + <para>Leffler, Samuel J., Marshall Kirk McKusick, <emphasis>The Design + and Implementation of the 4.3BSD UNIX Operating System: Answer + Book</emphasis>. Reading, Mass. : Addison-Wesley, 1991. ISBN + 0-201-54629-9</para> + </listitem> + + <listitem> + <para>McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, and + John Quarterman. <emphasis>The Design and Implementation of the + 4.4BSD Operating System</emphasis>. Reading, Mass. : + Addison-Wesley, 1996. ISBN 0-201-54979-4</para> + </listitem> + + <listitem> + <para>Stevens, W. Richard. <emphasis>TCP/IP Illustrated, Volume 1: + The Protocols</emphasis>. Reading, Mass. : Addison-Wesley, + 1996. ISBN 0-201-63346-9</para> + </listitem> + + <listitem> + <para>Schimmel, Curt. <emphasis>Unix Systems for Modern + Architectures</emphasis>. Reading, Mass. : Addison-Wesley, 1994. + ISBN 0-201-63338-8</para> + </listitem> + + <listitem> + <para>Stevens, W. Richard. <emphasis>TCP/IP Illustrated, Volume 3: + TCP for Transactions, HTTP, NNTP and the UNIX Domain + Protocols</emphasis>. Reading, Mass. : Addison-Wesley, 1996. + ISBN 0-201-63495-3</para> + </listitem> + + <listitem> + <para>Vahalia, Uresh. <emphasis>UNIX Internals -- The New + Frontiers</emphasis>. Prentice Hall, 1996. ISBN + 0-13-101908-2</para> + </listitem> + + <listitem> + <para>Wright, Gary R. and W. Richard Stevens. <emphasis>TCP/IP + Illustrated, Volume 2: The Implementation</emphasis>. Reading, + Mass. : Addison-Wesley, 1995. ISBN 0-201-63354-X</para> + </listitem> + </itemizedlist> + </sect1> + + <sect1> + <title>Ouvrages de référence en matière de + sécurité</title> + + <itemizedlist> + <listitem> + <para>Cheswick, William R. and Steven M. Bellovin. <emphasis>Firewalls + and Internet Security: Repelling the Wily Hacker</emphasis>. + Reading, Mass. : Addison-Wesley, 1995. ISBN + 0-201-63357-4</para> + </listitem> + + <listitem> + <para>Garfinkel, Simson and Gene Spafford. <emphasis>Practical UNIX + Security</emphasis>. 2nd Ed. O'Reilly & Associates, Inc., + 1996. ISBN 1-56592-148-8</para> + </listitem> + + <listitem> + <para>Garfinkel, Simson. <emphasis>PGP Pretty Good + Privacy</emphasis> O'Reilly & Associates, Inc., 1995. ISBN + 1-56592-098-8</para> + </listitem> + </itemizedlist> + </sect1> + + <sect1> + <title>Ouvrages de référence sur le matériel</title> + + <itemizedlist> + <listitem> + <para>Anderson, Don and Tom Shanley. <emphasis>Pentium Processor + System Architecture</emphasis>. 2nd Ed. Reading, Mass. : + Addison-Wesley, 1995. ISBN 0-201-40992-5</para> + </listitem> + + <listitem> + <para>Ferraro, Richard F. <emphasis>Programmer's Guide to the EGA, + VGA, and Super VGA Cards</emphasis>. 3rd ed. Reading, Mass. : + Addison-Wesley, 1995. ISBN 0-201-62490-7</para> + </listitem> + + <listitem> + <para>Intel Corporation publie la documentation de ses processeurs, + circuits et standards sur son + <ulink url="http://developer.intel.com/">site Web + développeur</ulink>, habituellement sous forme de fichiers + PDF.</para> + </listitem> + + <listitem> + <para>Shanley, Tom. <emphasis>80486 System Architecture</emphasis>. + 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN + 0-201-40994-1</para> + </listitem> + + <listitem> + <para>Shanley, Tom. <emphasis>ISA System Architecture</emphasis>. + 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN + 0-201-40996-8</para> + </listitem> + + <listitem> + <para>Shanley, Tom. <emphasis>PCI System Architecture</emphasis>. + 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN + 0-201-40993-3</para> + </listitem> + + <listitem> + <para>Van Gilluwe, Frank. <emphasis>The Undocumented PC</emphasis>. + Reading, Mass: Addison-Wesley Pub. Co., 1994. ISBN + 0-201-62277-7</para> + </listitem> + </itemizedlist> + </sect1> + + <sect1> + <title>Histoire d'Unix</title> + + <itemizedlist> + <listitem> + <para>Lion, John <emphasis>Lion's Commentary on UNIX, 6th Ed. With + Source Code</emphasis>. ITP Media Group, 1996. ISBN + 1573980137</para> + </listitem> + + <listitem> + <para>Raymond, Eric S. <emphasis>The New Hacker's Dictonary, 3rd + edition</emphasis>. MIT Press, 1996. ISBN + 0-262-68092-0. Connu aussi sous le nom de <ulink + URL="http://www.ccil.org/jargon/jargon.html">Jargon + File</ulink></para> + </listitem> + + <listitem> + <para>Salus, Peter H. <emphasis>A quarter century of UNIX</emphasis>. + Addison-Wesley Publishing Company, Inc., 1994. ISBN + 0-201-54777-5</para> + </listitem> + + <listitem> + <para>Simon Garfinkel, Daniel Weise, Steven Strassmann. <emphasis>The + UNIX-HATERS Handbook</emphasis>. IDG Books Worldwide, Inc., + 1994. ISBN 1-56884-203-1</para> + </listitem> + + <listitem> + <para>Don Libes, Sandy Ressler <emphasis>Life with UNIX</emphasis> + — special edition. Prentice-Hall, Inc., 1989. ISBN + 0-13-536657-7</para> + </listitem> + + <listitem> + <para><emphasis>The BSD family tree</emphasis>. 1997. <ulink + url="ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/src/share/misc/bsd-family-tree">ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/src/share/misc/bsd-family-tree</ulink> ou <ulink URL="file:/usr/share/misc/bsd-family-tree">local</ulink> sur une machine sous FreeBSD-current.</para> + </listitem> + + <listitem> + <para><emphasis>The BSD Release Announcements collection</emphasis>. + 1997. <ulink + URL="http://www.de.FreeBSD.ORG/de/ftp/releases/">http://www.de.FreeBSD.ORG/de/ftp/releases/</ulink></para> + </listitem> + + <listitem> + <para><emphasis>Networked Computer Science Technical Reports + Library</emphasis>. <ulink + URL="http://www.ncstrl.org/">http://www.ncstrl.org/</ulink></para> + </listitem> + + <listitem> + <para><emphasis>Anciennes versions de BSD du Computer Systems Research + Group (CSRG)</emphasis>. + <ulink url="http://www.mckusick.com/csrg/">http://www.mckusick.com/csrg/</ulink> : + Ces 4 CD-ROMs incluent toutes les versions de BSD de 1BSD à + 4.4BSD et 4.4BSD-Lite2 (mais malheureusement pas 2.11BSD). De plus, le + dernier CD-ROM contient les derniers sources et les fichiers + SCCS.</para> + </listitem> + </itemizedlist> + </sect1> + + <sect1> + <title>Revues et journaux</title> + + <itemizedlist> + <listitem> + <para><emphasis>The C/C++ Users Journal</emphasis>. R&D + Publications Inc. ISSN 1075-2838</para> + </listitem> + + <listitem> + <para><emphasis>Sys Admin — The Journal for UNIX System + Administrators</emphasis> Miller Freeman, Inc., ISSN + 1061-2688</para> + </listitem> + </itemizedlist> + </sect1> +</chapter> + +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-always-quote-attributes: t + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> + diff --git a/fr_FR.ISO_8859-1/books/handbook/book.sgml b/fr_FR.ISO_8859-1/books/handbook/book.sgml new file mode 100644 index 0000000000..85843bfdc6 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/book.sgml @@ -0,0 +1,142 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + +<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ +<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> +%man; + +<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> +%urls; + +<!ENTITY % bookinfo PUBLIC "-//FreeBSD//ENTITIES DocBook BookInfo Entities//FR"> +%bookinfo; + +<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> +%translators; + +<!ENTITY % chapters SYSTEM "chapters.ent"> %chapters; +<!ENTITY % authors SYSTEM "../../../en_US.ISO_8859-1/books/handbook/authors.ent"> %authors; +<!ENTITY % mailing-lists SYSTEM "mailing-lists.ent"> %mailing-lists; +<!ENTITY rel.current CDATA "2.2.8"> +<!-- We need the followings until the translation is completed --> +<!ENTITY sgml.in-progress SYSTEM "in-progress.sgml"> +<!ENTITY sgml.todo SYSTEM "todo.sgml"> +]> + +<book lang="fr"> + <bookinfo> + <title>Manuel FreeBSD</title> + + <authorgroup> + <author> + <surname>Groupe de Documentation de FreeBSD</surname> + </author> + </authorgroup> + + <copyright> + <year>1999</year> + <holder>Groupe de Documentation de FreeBSD</holder> + </copyright> + + &bookinfo.legalnotice; + + <abstract> + <para>Bienvenue à FreeBSD! Ce manuel décrit l'installation + et l'utilisation quotidienne de la <emphasis>Version &rel.current de + FreeBSD</emphasis>. Ce manuel est en <emphasis>constante + évolution</emphasis>. Il est le résultat du travail de + nombreuses personnes. Certaines sections ne sont pas encore + rédigées et celles qui le sont ont besoin d'être + mises à jour. Si vous voulez participer à ce projet, + envoyez un courrier électronique à la &a.doc;. La + dernière version anglaise de ce document est disponible sur le + <ulink url="http://www.FreeBSD.ORG/">serveur World Wide Web + FreeBSD</ulink>. Il existe aussi une version texte, + PostScript ou HTML téléchargeable depuis le + <ulink url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/docs">serveur FTP + FreeBSD</ulink> ou l'un des nombreux <link linkend="mirrors-ftp">sites + miroirs</link>. Vous pouvez aussi + <ulink url="http://www.freeBSD.ORG/search/search.html">faire des + recherches dans le Manuel</ulink>.</para> + <para>N.d.T.: La version française est publiée sur le + <ulink url="&url.base;">serveur World Wide Web du groupe de + traduction en langue française de la documentation de + FreeBSD</ulink>.</para> + + <para>N.d.T.: Contactez la &a.fr-doc si vous voulez collaborer à + la traduction.</para> + <para>La traduction de ce manuel est “en cours”. Dans la + table des matières ci-dessous: + <itemizedlist> + <listitem> + <para>Les chapitres marqués de deux astérisques sont + en cours de traduction.</para> + </listitem> + <listitem> + <para>Les chapitres marqués de trois astérisques sont + à traduire.</para> + </listitem> + <listitem> + <para>L'astérisque simple est réservé aux + chapitres et sections en cours de rédaction dans la version + U.S.</para> + </listitem> + </itemizedlist> + </para> + </abstract> + </bookinfo> + <part> + <title>Pour commencer</title> + &chap.introduction; + &chap.install; + &chap.basics; + &chap.ports; + </part> + <part> + <title>Administration Système</title> + &chap.kernelconfig; + &chap.security; + &chap.printing; + &chap.disks; + &chap.backups; + &chap.quotas; + &chap.x11; + &chap.hw; + &chap.l10n; + </part> + <part> + <title>Réseau</title> + &chap.serialcomms; + &chap.ppp-and-slip; + &chap.advanced-networking; + &chap.mail; + </part> + <part><title>Questions avancées</title> + &chap.cutting-edge; + &chap.contrib; + &chap.policies; + &chap.kernelopts; + &chap.kerneldebug; + &chap.linuxemu; + &chap.internals; + </part> + <part><title>Annexes</title> + &chap.mirrors; + &chap.bibliography; + &chap.eresources; + &chap.staff; + &chap.pgpkeys; + </part> +</book> +<!-- + mode: sgml + sgml-indent-data: t + sgml-omittag: nil + sgml-always-quote-attributes: t + End: +--> diff --git a/fr_FR.ISO_8859-1/books/handbook/chapter.decl b/fr_FR.ISO_8859-1/books/handbook/chapter.decl new file mode 100644 index 0000000000..ce0a7ed16a --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/chapter.decl @@ -0,0 +1 @@ +<!DOCTYPE chapter PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN"> diff --git a/fr_FR.ISO_8859-1/books/handbook/chapters.ent b/fr_FR.ISO_8859-1/books/handbook/chapters.ent new file mode 100644 index 0000000000..d983d5ef52 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/chapters.ent @@ -0,0 +1,53 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn + + Creates entities for each chapter in the FreeBSD Handbook. Each entity + is named chap.foo, where foo is the value of the id attribute on that + chapter, and corresponds to the name of the directory in which that + chapter's .sgml file is stored. + + Chapters should be listed in the order in which they are referenced. +--> + +<!-- Part one --> +<!ENTITY chap.introduction SYSTEM "introduction/chapter.sgml"> +<!ENTITY chap.install SYSTEM "install/chapter.sgml"> +<!ENTITY chap.basics SYSTEM "basics/chapter.sgml"> +<!ENTITY chap.ports SYSTEM "ports/chapter.sgml"> + +<!-- Part two --> +<!ENTITY chap.kernelconfig SYSTEM "kernelconfig/chapter.sgml"> +<!ENTITY chap.security SYSTEM "security/chapter.sgml"> +<!ENTITY chap.printing SYSTEM "printing/chapter.sgml"> +<!ENTITY chap.disks SYSTEM "disks/chapter.sgml"> +<!ENTITY chap.backups SYSTEM "backups/chapter.sgml"> +<!ENTITY chap.quotas SYSTEM "quotas/chapter.sgml"> +<!ENTITY chap.x11 SYSTEM "x11/chapter.sgml"> +<!ENTITY chap.hw SYSTEM "hw/chapter.sgml"> +<!ENTITY chap.l10n SYSTEM "l10n/chapter.sgml"> + +<!-- Part three --> +<!ENTITY chap.serialcomms SYSTEM "serialcomms/chapter.sgml"> +<!ENTITY chap.ppp-and-slip SYSTEM "ppp-and-slip/chapter.sgml"> +<!ENTITY chap.advanced-networking SYSTEM "advanced-networking/chapter.sgml"> +<!ENTITY chap.mail SYSTEM "mail/chapter.sgml"> + +<!-- Part four --> +<!ENTITY chap.cutting-edge SYSTEM "cutting-edge/chapter.sgml"> +<!ENTITY chap.contrib SYSTEM "contrib/chapter.sgml"> +<!ENTITY chap.policies SYSTEM "policies/chapter.sgml"> +<!ENTITY chap.kernelopts SYSTEM "kernelopts/chapter.sgml"> +<!ENTITY chap.kerneldebug SYSTEM "kerneldebug/chapter.sgml"> +<!ENTITY chap.linuxemu SYSTEM "linuxemu/chapter.sgml"> +<!ENTITY chap.internals SYSTEM "internals/chapter.sgml"> + +<!-- Part five (appendices) --> +<!ENTITY chap.mirrors SYSTEM "mirrors/chapter.sgml"> +<!ENTITY chap.bibliography SYSTEM "bibliography/chapter.sgml"> +<!ENTITY chap.eresources SYSTEM "eresources/chapter.sgml"> +<!ENTITY chap.staff SYSTEM "staff/chapter.sgml"> +<!ENTITY chap.pgpkeys SYSTEM "pgpkeys/chapter.sgml"> diff --git a/fr_FR.ISO_8859-1/books/handbook/contrib/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/contrib/chapter.sgml new file mode 100644 index 0000000000..217bf94071 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/contrib/chapter.sgml @@ -0,0 +1,5888 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + + <chapter id="contrib"><title>Collaborer à FreeBSD</title> + &trans.a.dntt; + + <para><emphasis> Contribution de &a.jkh;.</emphasis></para> + + <para>Alors, comme ça vous voulez collaborer à FreeBSD ? + C'est génial ! Toute aide peut toujours servir, et FreeBSD est + un de ces systèmes qui <emphasis>s'appuie</emphasis> sur les + contributions de sa base d'utilisateurs pour survivre. Vos + contributions ne sont pas seulement appréciées, elles sont vitales + pour la progression de FreeBSD !</para> + + <para>Contrairement à ce que certaines personnes et + peut-être vous-même pouvez croire, vous n'avez pas à être un + expert programmeur ou un ami très proche de l'équipe principale + de FreeBSD pour faire accepter votre contribution. Le + développement du projet FreeBSD est fait par une grande et + toujours plus nombreuse, équipe de collaborateurs + à travers le monde, dont les âges et l'expertise techniques + sont très variables, et il y aura toujours plus de travail à + faire que de gens qui peuvent le faire.</para> + + <para>Comme le projet FreeBSD est responsable de tout + l'environnement du système d'exploitation (et de son + installation) et pas seulement juste du noyau ou de quelques + utilitaires éparpillés, notre liste <filename>TODO</filename> + (à faire) s'étend sur une large gamme de tâches, depuis la + documentation, les beta-test et présentation jusqu'à des types de + développement du noyau hautement spécialisés. + Quelque soit votre niveau de compétence, il y aura sûrement + quelque chose que vous pourrez faire pour aider le projet !</para> + + <para>Les entités commerciales engagées dans des entreprises + relatives à FreeBSD sont encouragées à nous contacter. Vous + avez besoin d'une extension spéciale pour faire marcher votre + produit ? Vous nous trouverez attentifs à votre requête, du + moment que celle-ci ne soit pas trop hors-sujet. Vous + travaillez sur un produit à valeur ajoutée ? Dites-le nous ! + Nous serons peut-être capable de coopérer sur certains aspects. + Le monde du logiciel libre va à l'encontre de nombreuses + suppositions sur la manière dont les logiciels sont + développés, vendus et maintenus durant son cycle de vie, + et nous vous invitons à lui donner au moins un second regard. + </para> + + + <sect1> + <title> Les besoins</title> + + <para>La liste de tâches et de sous-projets qui suit, représente + une sorte d'amalgame des différentes listes + <filename>TODO</filename> de l'équipe de base, et des demandes + d'utilisateurs que nous avons regroupés depuis ces derniers + mois. Lorsque cela a été possible, nous avons rangés ces + tâches par degré d'urgence. Si vous êtes interessé par le fait + de travailler sur l'une des tâches que vous voyez ici, envoyez + un mail au coordinateur en cliquant sur leur nom. Si aucun + coordinateur n'a été désigné, peut-être voudriez-vous vous + désigner ?</para> + + <sect2> + <title> Tâches de première priorité</title> + + <para>Les tâches suivantes sont considérées comme urgentes, + généralement parce qu'elles représentent + quelque chose posant des problèmes, ou parce qu'on en a + désespérement besoin.</para> + + <orderedlist> + <listitem> + <para>démarrage en 3 étapes. coordination globale : + &a.hackers;</para> + + <itemizedlist> + <listitem> + <para>Faire un marquage de disque compatible WinNT + de telle sorte que la troisième étape puisse fournir + un mapping précis de la géométrie BIOS pour les + disques.</para> + </listitem> + </itemizedlist> + </listitem> + + <listitem> + <para>Problèmes du système de fichiers. Coordination + globale : &a.fs;</para> + + <itemizedlist> + <listitem> + <para>Corriger le système de fichiers MSDOS.</para> + </listitem> + + <listitem> + <para>Nettoyer et documenter le code du système de + fichier nullfs. + Coordination : &a.eivind;</para> + </listitem> + + <listitem> + <para>Corriger le système de fichiers d'union. + Coordination : &a.dg;</para> + </listitem> + </itemizedlist> + </listitem> + + <listitem> + <para>Implémenter le pilote de disque Int13 vm86. + Coordination : &a.hackers;</para> + </listitem> + + <listitem> + <para>Nouvelle architecture bus.</para> +<!-- Coordination : &a.newbus;</para> --> + + <itemizedlist> + <listitem> + <para>Porter les pilotes ISA existant vers la nouvelle + architecture.</para> + </listitem> + + <listitem> + <para>Déplacer tous le code de gestion d'interruption + vers les parties appropriées des pilotes de bus.</para> + </listitem> + + <listitem> + <para>Porter les sous-système PCI à la nouvelle + architecture. + Coordination : &a.dfr;</para> + </listitem> + + <listitem> + <para>Chercher la bonne manière pour manier les + périphériques extractibles, puis utiliser ceci comme + base pour l'implémentation de support de PC-Card et + CardBus.</para> + </listitem> + + <listitem> + <para>Résoudre une fois pour toute, le problème de + priorité de détection / attachement.</para> + </listitem> + + <listitem> + <para>Déplacer tous les bus restants vers la nouvelle + architecture.</para> + </listitem> + </itemizedlist> + </listitem> + + <listitem> + <para>Problèmes relatifs au noyau. + Coordination globale : &a.hackers;</para> + </listitem> + + <listitem> + <para>Ajouter une infrastructure pour une meilleure sécurité + pro-active. + Coordination globale : &a.security;</para> + + <itemizedlist> + <listitem> + <para>Construire quelque chose comme Tripwire (TM) dans + le noyau, avec une partie distante et une partie + locale. Il y a un certain nombre de problèmes + de cryptographie à prendre en compte pour bien le + réaliser. Contacter le coodinateur pour plus de + détails. + Coordination : &a.eivind;</para> + </listitem> + + <listitem> + <para>Faire de telle sorte que tout le noyau utilise + <literal>suser()</literal> au lieu de comparer avec 0. + Pour l'instant, on n'utilise que la moitié de chaque. + Coordination : &a.eivind;</para> + </listitem> + + <listitem> + <para>Découper les niveaux de sécurité en plusieurs + parties, afin de permettre à un administrateur de jeter + les privilèges qu'il peut jeter. Mettre en place tous + ces niveaux de sécurité devra avoir malgrès tout + les mêmes effets qu'actuellement. + Coordination : &a.eivind;</para> + </listitem> + + <listitem> + <para>Rendre possible le chargement de “programmes + autorisés à utiliser BPF” puis bloquer BPF + pour qu'il ne puisse pas accepter d'autres programmes. + Cela permettrait à BPF d'être utilisé par exemple par + DHCP, ceci sans permettre à un attaquant de prendre + contrôle du réseau local.</para> + </listitem> + + <listitem> + <para>Mettre à jour les scripts de vérification de + sécurité. Nous devrions au moins pouvoir récupérer + toutes les vérifications d'autres dérivés BSD, et + ajouter une vérification qu'un système ayant un + niveau de sécurité ainsi augmenté puisse aussi avoir un + témoin raisonnable sur les parties concernées. + Coordination : &a.eivind;</para> + </listitem> + + <listitem> + <para>Ajouter une infrastructure d'autorisation au + noyau, afin de permettre diverses politiques + d'autorisation. Une partie de ceci pourrait être fait + en modifiant <literal>suser()</literal>. + Coordination : &a.eivind;</para> + </listitem> + + <listitem> + <para>Ajouter du code à la couche NFS afin que l'on ne + puisse pas faire un <literal>chdir ("..")</literal> en + dehors d'une partition NFS, + Par exemple : + <filename>/usr</filename> est une partition UFS avec + la partition NFS <filename>/usr/src</filename> exportée. + Il est à présent possible d'utiliser le gestionnaire + de fichier NFS pour <filename>/usr/src</filename> pour + obtenir l'accès à <filename>/usr</filename>.</para> + </listitem> + </itemizedlist> + </listitem> + </orderedlist> + </sect2> + + + + <sect2> + <title> Tâches de moyenne priorité</title> + + <para>Les tâches suivantes doivent être effectuées, mais + sans urgence particulière :</para> + + <orderedlist> + <listitem> + <para>Support et gestion de configuration de tous les + pilotes basés sur KLD.</para> + + <itemizedlist> + <listitem> + <para>Ecrire un gestionnaire de configuration (dans la + troisième partie du démarrage ?) qui détecterait votre + matériel de manière propre, et garderait seulement les + KLDs requis pour votre matériel, etc.</para> + </listitem> + </itemizedlist> + </listitem> + + <listitem> + <para>PCMCIA/PCCARD. + Coordination : &a.msmith; et &a.phk;</para> + + <itemizedlist> + <listitem> + <para>Documentation !</para> + </listitem> + + <listitem> + <para>Opération fiable du pilote pcic + (besoin de test).</para> + </listitem> + + <listitem> + <para>Reconnaissance et prise en charge de + <filename>sio.c</filename> (presque fait).</para> + </listitem> + + <listitem> + <para>>Reconnaissance et prise en charge de + <filename>ed.c</filename> (presque fait).</para> + </listitem> + + <listitem> + <para>Reconnaissance et prise en charge de + <filename>ep.c</filename> (presque fait).</para> + </listitem> + + <listitem> + <para>Reconnaissance et prise en charge du + mode utilisateur (partiellement fait).</para> + </listitem> + </itemizedlist> + </listitem> + + <listitem> + <para>Gestionnaire d'énergie avancé. + Coordination : &a.msmith; et &a.phk;</para> + + <itemizedlist> + <listitem> + <para>sous-pilote APM (presque fait).</para> + </listitem> + + <listitem> + <para>sous-pilote de disques IDE/ATA + (partiellement fait).</para> + </listitem> + + <listitem> + <para>sous-pilote syscons/pcvt.</para> + </listitem> + + <listitem> + <para>Intégration avec les pilotes PCMCIA/PCCARD + (suspendu / en cours).</para> + </listitem> + </itemizedlist> + </listitem> + </orderedlist> + </sect2> + + + + <sect2> + <title>Tâches de moindre priorité</title> + + <para>Les tâches suivantes sont purement esthètiques et + représentent un tel investissement qu'il semblerait + qu'elles seront pas accomplie de sitôt :</para> + + <para>Les premiers points sont de Terry Lambert + <email>terry@lambert.org</email></para> + + <orderedlist> + <listitem> + <para>Chargeur serveur NetWare (pilote ODI en mode protégé) + et sous-services pour autoriser l'utilisation de pilotes + de cartes ODI avec des cartes réseaux. + Même chose avec les pilotes NDIS et les pilotes + NetWare SCSI.</para> + </listitem> + + <listitem> + <para>Uni option "évolution système" marchant sur des + machines sous Linux et pas seulement sur des + machines sous une version plus anciennes de FreeBSD.</para> + </listitem> + + <listitem> + <para>Multi-processeur symétrique avec préemption du noyau (requiert + une préemption du noyau).</para> + </listitem> + + <listitem> + <para>Un effort concerté sur les ordinateurs portables. + Cela est en quelque sorte pris en charge en + changeant les règles de passage PCMCIA + et en traitant le gestionnaire d'énergie. + Mais il y a certaines choses comme la détection de + l'affichage interne vs. externe et l'utilisation d'une + résolution d'écran différente en considérant ce fait, + ne pas arrêter le disque si la machine est refermée, et + autoriser les cartes pour portable à disparaitre sans + empêcher la machine de démarrer (même problème que pour le + PCMIA).</para> + </listitem> + </orderedlist> + </sect2> + + + + <sect2> + <title>Tâches moins lourdes</title> + + <para>La plupart des tâches citées dans la section + précédente nécessitent soit un investissement + important en temps, soit une connaissance en + profondeur du noyau (ou les deux). + Quoiqu'il en soit, il y a de nombreuses + tâches utiles pour les + "programmeurs occasionnels", ou les + personnes sans compétences en programmation.</para> + + <orderedlist> + <listitem> + <para>Si vous utilisez FreeBSD-current et que vous + avez une bonne connexion Internet, il y a une machine + <hostid role="fqdn">current.freebsd.org</hostid> + qui construit une version complète tous les + jours — à chaque fois, essayer et + installer la dernière version depuis ceci et + reporter toutes les erreurs durant le processus.</para> + </listitem> + + <listitem> + <para>Lire les messages de la liste de diffusion + <email>freebsd-bugs</email>. + Il peut y avoir un problème que vous + pouvez commenter de manière constructive ou alors + des patches que vous pouvez tester. + Vous pouvez aussi essayer de résoudre un de ces + problèmes vous-même.</para> + </listitem> + + <listitem> + <para>Lisez la FAQ et le manuel régulièrement, + si quelque chose est mal expliqué, pas à jour + ou simplement complètement faux, dites le + nous. + Mieux, envoyez nous le correctif + (SGML n'est pas difficile à apprendre, + mais il n'y a pas d'objection à des soumissions + au format ASCII).</para> + </listitem> + + <listitem> + <para>Aidez à traduire la documentation + FreeBSD dans votre langue (si elle n'est + pas déjà disponible) — envoyez juste un + courrier électronique à &a.doc; demandant si + quelqu'un est en train d'y travailler. + Notez que vous ne vous engagez pas + à traduire chacun des documents FreeBSD ce faisant — + en fait la documentation dont on a le plus souvent besoin + est les instructions d'installation.</para> + </listitem> + + <listitem> + <para> + Lire la liste de diffusion <email>freebsd-questions</email>. + et les newsgroup <email>comp.unix.bsd.freebsd.misc</email> de + temps en temps (ou même régulièrement). + Il peut être très satisfaisant de partager + ses expérience et aider les gens à résoudre + leurs problèmes; parfois, vous + pouvez même ainsi apprendre de nouvelles choses ! + Ces forums peuvent parfois être une source d'idées sur ce + qu'il faut travailler.</para> + </listitem> + + <listitem> + <para>Si vous connaissez un correctif appliqué + avec succès à -current mais qui n'a pas été + appliqué à -stable après un intervalle de temps + raisonnable (normalement quelques + semaines), envoyer aux collaborateurs un + rappel poli.</para> + </listitem> + + <listitem> + <para>Déplacer les logiciels de collaboration de + <filename>src/contrib</filename> dans + l'arborescence source.</para> + </listitem> + + <listitem> + <para>Assurez vous que le code dans + <filename>src/contrib</filename> + est à jour.</para> + </listitem> + + <listitem> + <para>Cherchez les bugs de l'an 2000 + (et corrigez ceux que vous trouvez !)</para> + </listitem> + + <listitem> + <para>Construire l'arbre des sources + (ou une partie) avec les messages de tous les + avertissements activés et faire de + sorte à ce qu'il n'y ait plus ces + avertissements.</para> + </listitem> + + <listitem> + <para>Corriger les avertissements pour les ports qui + réalisent des choses obsolètes comme + gets () ou les inclusions de malloc.h.</para> + </listitem> + + <listitem> + <para>Si vous avez collaboré à un des ports, envoyez vos + correctifs à leurs auteurs originaux (cela leur facilitera + la vie lors de la sortie de la prochaine version)</para> + </listitem> + + <listitem> + <para>Suggèrez d'autres tâches pour cette liste !</para> + </listitem> + </orderedlist> + </sect2> + </sect1> + + + + <sect1> + <title>Comment participer</title> + + <para>Les contributions au systèmes tombent + générallement dans l'une de ces 6 catégories :</para> + + <sect2 id="contrib-general"> + <title>Rapports de bogues et commentaires généraux</title> + + <para>Une idée ou une suggestion d'interêt technique + <emphasis>général</emphasis> devrait être envoyée à + &a.hackers;. + les personnes interessées par cela (et qu'un + <emphasis>grand</emphasis> volume de courrier + électronique ne dérange pas, devraient s'abonner à + la liste de diffusion hackers en envoyant un + courrier électronique à &a.majordomo;. + Voir <link linkend="eresources-mail">les listes de + diffusions lists</link> pour plus d'informations + pour ceci et les autres listes de diffusions.</para> + + <para>Si vous trouvez un bug ou si vous + soumettez un changement spécifique, enregistrez + le en utilisant le programme <command>send-pr (1)</command> + ou son <ulink + URL="http://www.freebsd.org/send-pr.html">équivalent + web</ulink>. + Essayez de remplir chaque champ de l'enregistrement de bug. + A moins qu'ils ne dépassent 65KB, y inclure tous + les correctifs directement dans l'enregistrement. + Penser à les compresser et à utiliser + <command>uuencode (1)</command>; s'ils + dépassent 20KB. + Charger les grosses soumissions vers <ulink + url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/incoming/">ftp.freebsd.org:/pub/FreeBSD/incoming/</ulink></para> + + <para>Après avoir rempli la fiche d'enregistrement, vous devriez + recevoir une confirmation avec un numéro d'enregistrement. + Gardez ce numéro afin que vous puissiez nous soumettre plus de + détails à propos du problème en envoyant un courrier + électronique à <email>bug-followup@FreeBSD.ORG</email>. + Utilisez le numéro comme sujet du message, par exemple + <literal>"Re: kern/3377"</literal>. + Toute information supplémentaire sur + un bug enregistré devrait être soumise de la même + manière.</para> + + <para>Si vous ne recevez aucune confirmation en un temps + raisonnable (de 3 jours à une semaine suivant votre connexion + pour le courrier) ou qu'il vous est, pour une raison quelconque, + impossible d'utiliser la commande <command>send-pr (1)</command>, vous pouvez + demander à quelqu'un de le faire pour vous en envoyant un + courrier électronique à &a.bugs;.</para> + </sect2> + + <sect2> + <title>Modifications de la documentation</title> + + <para>Les modifications dans la documentation sont + supervisées par &a.doc;. + Envoyez les soumissions et les modifications (même les + plus petites sont les bienvenus !) en utilisant + la commande <command>send-pr</command> + comme décrit dans + <link linkend="contrib-general">Soumission de bug + et commentaires généraux</link>.</para> + </sect2> + + <sect2> + <title>Modification dans le code source existant</title> + + <para>Un ajout ou modification dans le code source + existant est une autre affaire, et dépend beaucoup + de votre version par rapport à l'état + courant du développement de base de FreeBSD. + Il y a une version spéciale du FreeBSD en cours + de développement, connu sous le nom de + “FreeBSD-current” qui est + disponible de diverses manières pour le confort + des développeurs qui travaillent activement sur + le système. + Voir <link linkend="current">Etre à jour avec + FreeBSD</link> pour plus d'informations sur + la manière d'obtenir et d'utiliser + FreeBSD-current.</para> + + <para>Déveloper avec des sources plus anciennes + signifie que vos modifications peuvent parfois + devenir trop obsolète ou trop divergentes pour + permettre une ré-intégration dans FreeBSD. + On peut limiter cela en souscrivant aux + listes de diffusion &a.announce; et &a.current; + où des discussions sur l'état + courant du système ont lieu.</para> + + <para>En supposant que vous pouvez vous arranger pour avoir de + manière sûre des sources à jour comme base pour vos + modifications, l'étape suivante consiste à produire + un ensemble de diffs à envoyer à ceux qui sont chargés + de maintenir FreeBSD. + Cela est fait par l'intermédiaire de la commande + <command>diff (1)</command>, avec une préférence pour le formulaire + “contexte diff”. + Par exemple :</para> + + <para> + <screen>&prompt.user; + <userinput>diff -c oldfile newfile</userinput></screen> + + ou + + <screen>&prompt.user; + <userinput>diff -c -r olddir newdir</userinput></screen> + + génèrera un ensemble de contexte diffs pour un fichier + source ou une hiérarchie de répertoires donné. + Voir les pages de manuel pour <command>diff (1)</command> pour plus de + détails.</para> + + <para>Une fois que vous avez l'ensemble des diffs (que vous + pouvez tester avec la commande <command>patch(1)</command>, vous devriez les + soumettre pour qu'ils puissent être inclus dans FreeBSD. + Utilisez le programme <command>send-pr (1)</command> comme décrit dans + <link linkend="contrib-general">Rapport de bugs et commentaires + généraux</link>. + <emphasis>Ne pas</emphasis> simplement envoyer les diffs à + &a.hackers; ou ils seront perdus ! + Nous apprécions beaucoup vos soumissions (c'est un + projet fait par des volontaires !), + mais parce que nous sommes très occupé, nous ne + pourrons pas les étudier immédiatement, + mais cela restera dans la base de + données jusqu'à ce que nous le fassions.</para> + + <para>Si cela vous semble approprié (par exemple si vous avez + renommé les fichiers), mettre vos modifications dans un fichier + <command>tar</command> et lancer le programme <command>uuencode (1)</command> + dessus. Les archives <command>shar</command> sont aussi les + bienvenues.</para> + + <para>Si vos modifications sont potentiellement sensibles, par + exemple si vous n'êtes pas sûr des problèmes de copyright + concernant sa distribution, ou si vous n'êtes simplement pas + prêt à le distribuer sans y avoir jeté un coup d'oeil, alors + vous devriez l'envoyer directement à &a.core; plutôt que de le + soumettre avec <command>send-pr(1)</command>. + La liste de diffusion principale atteint un petit + groupe de personnes qui réalise la + plupart du travail quotidien de FreeBSD. + Notez que ce groupe est aussi + <emphasis>très occupé</emphasis>, et donc que vous ne + devriez leur envoyer un courrier électronique + que lorsque cela est réellement nécessaire.</para> + + <para>Se réferrer à <command>man 9 intro</command> + et <command>man 9 style</command> pour plus + d'informations sur la manière de coder. + Nous apprécierons le fait que vous soyez au moins au courant de cette + information avant de nous soumettre du code.</para> + </sect2> + + + <sect2> + <title>Nouveau code source ou logiciel à valeur ajoutée + importante</title> + + <para>Dans les rares cas d'une collaboration + importante, ou de l'addition d'une importante + fonctionnalité à FreeBSD, il devient presque nécessaire + d'envoyer les modification en les uuncodant dans + des fichiers tar et en les chargeant sur notre + site FTP <ulink + URL="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/incoming">ftp://ftp.FreeBSD.ORG/pub/FreeBSD/incoming</ulink>.</para> + + <para>Lorsque l'on travaille avec un grand volume + de code, le sujet sensible du copyright revient + invariablement. + Les copyrights acceptables pour le code inclu + dans FreeBSD sont :</para> + + <orderedlist> + <listitem> + <para>Le copyright BSD. Ce copyright est le plus apprécié + par son côté “sans attaches” et son + attractivité générale pour les entreprises commerciales. + Loin de décourager un tel usage commercial, le + projet FreeBSD encourage activement une telle + participation avec interêts commerciaux pour ceux + qui seraient éventuellement tenté d'investir + quelque chose dans FreeBSD.</para> + </listitem> + + <listitem> + <para>La licence publique GNU, ou “GPL”. + Cette licence n'est pas aussi populaire chez nous à + cause du volume d'efforts supplémentaires demandés + à celui qui voudrait utiliser le code dans un + but commercial. + Mais étant donné la quantité de code de code GPL dont + nous avons actuellement besoin (compilateur, + assembleur, formatteur de texte, etc), + il serait absurde de refuser des + collaborations sous cette licence. + Le code sous GPL va dans une différente partie de + l'arborescence des répertoires : + <filename>/sys/gnu</filename> ou + <filename>/usr/src/gnu</filename>, et est de ce + fait très identifiable par quelqu'un dont la + licence GNU poserait un problème.</para> + </listitem> + </orderedlist> + + <para>Les collaborations venant avec un autre + type de copyright doivent + être soigneusement vérifié avant leur + inclusion dans FreeBSD. + Les contributions où des restrictions commerciales + particulières s'appliquent sont généralement rejetées. + Les auteurs sont toujours encouragés à mettre ces + modifications disponibles par leur propre + moyens.</para> + + <para>Pour mettre un copyright de “style + BSD” sur votre travail, inclure le texte + suivant au tout début de chaque code source que + vous voulez protéger, en remplaçant le texte entre les + <literal>%%</literal> par l'information appropriée.</para> + + <programlisting> +Copyright (c) %%annee%% + %%votre_nom_ici%%, %%votre_ville%% %%votre_code_postal%%. + Tous droits réservés + + La redistribution et l'utilisation des sources et des + formes binaires, avec ou sans modifications, sont + autorisées si les conditions suivantes soient réunies : + +1. Les redistributions du code source doivent conserver + la notification de copyright ci-dessus, cette liste + de conditions et le démenti suivant comme premières + lignes de ce fichier, ceci non modifiés. +2. Les redistributions sous forme binaire doivent + reproduire la notification de copyright ci-dessus, + cette liste de conditions et le démenti suivant + en documentation et/ou sur les autres supports + de la distribution. + + CE LOGICIEL EST FOURNI EN L'ETAT PAR ''%%VOTRE_NOM_ICI%%'' + ET TOUTES GARANTIES EXPRES OU IMPLICITES, Y COMPRIS, + MAIS NON LIMITE A, LES GARANTIES IMPLICITES DE LA VALEUR + MARCHANDE ET PHYSIQUE DANS UN BUT PARTICULIER + SONT DEMENTIES. + EN AUCUN CAS %%VOTRE_NOM_ICI%% SERA RESPONSABLE DES + DOMMAGES DIRECTS, INDIRECTS, FORTUITS, SPECIAUX, + EXEMPLAIRES, OU CONSECUTIFS (COMPRENANT, MAIS NON + LIMITÉ A : REMPLACEMENT DES MARCHANDISES OU + SERVICES; PERTE DE DONNEES, OU DE BENEFICES ; + OU INTERRUPTION D'AFFAIRES) CAUSEE ET SUR TOUTE + THEORIE DE RESPONSABILITE, SI DANS LE CONTRAT, LA + RESPONSABILITE SANS FAUTE INTENTIONNELLE, OU TORT + (NEGLIGENCE Y COMPRIS OU AUTRES) SURGISSANT EN CONSEQUENCE + DE L'UTILISATION DE CE LOGICIEL, CECI, MÊME SI INFORME + DE LA POSSIBILITE D'UN TEL DOMMAGE. + + $Id$</programlisting> + + <para>Pour votre convenance, une copie de ce texte + peut être trouvée dans + <filename>/usr/share/examples/etc/bsd-style-copyright</filename>.</para> + </sect2> + + + <sect2> + <title>Contribution financière, matériel + ou accès Internet</title> + + <para>Nous sommes toujours très heureux de + recevoir des donations pour poursuivre la cause + du projet FreeBSD, et dans un effort + volontaire comme le nôtre, un rien peut faire du chemin ! + Les donations de matériel sont également très importantes + pour augmenter notre liste de périphériques supportés + puisque nous manquons souvent de fonds pour acheter de tels + éléments nous-mêmes.</para> + + <sect3> + <title><anchor id="donations">Donation de fonds</title> + + <para>Comme le projet FreeBSD n'est pas une corporation + 501(c)(3) (charitable), et par conséquent ne peut + offrir des réductions fiscales, toute donation + sera acceptée avec reconnaissance au nom du projet par + FreeBSD, inc.</para> + + <para>FreeBSD, Inc. a été fondé au début de + l'année 1995 par &a.jkh; et &a.dg; avec le but de + promouvoir les objectifs du projet de FreeBSD + et de lui donner une présence minimale de corporation. + Tout fond donné (ainsi que tous bénéfices qui + peuvent par la suite être réalisés par + FreeBSD, inc.) seront exclusivement employés à + poursuivre les buts du projet.</para> + + <para>Tous les chèques doivent être adressés + à l'ordre de FreeBSD, Inc. et envoyés à + l'adresse suivante :</para> + + <address> + <otheraddr>FreeBSD, Inc.</otheraddr> + <otheraddr>c/o Jordan Hubbard</otheraddr> + <street>4041 Pike Lane, Suite F</street> + <city>Concord</city> + <state>CA</state>, <postcode>94520</postcode> + </address> + + <para>(utilisant l'adresse de + Walnut Creek CDROM en attendant qu'une boite + postale puisse être ouverte)</para> + + <para>Les transferts de fonds peuvent être + directement envoyés à :</para> + + <address> + <otheraddr>Bank Of America</otheraddr> + <otheraddr>Concord Main Office</otheraddr> + <pob>P.O. Box 37176</pob> + <city>San Francisco</city> + <state>CA</state>, <postcode>94137-5176</postcode> + + <otheraddr>Routage #: 121-000-358</otheraddr> + <otheraddr>Compte #: 01411-07441 (FreeBSD, Inc.)</otheraddr> + </address> + + <para>Toute correspondance à propos de dons, devrait être + envoyé directement à Jordan + Hubbard <email>jkh@FreeBSD.org</email>, + soit par courrier électronique, soit à l'adresse + postale de FreeBSD, Inc. donnée ci-dessus.</para> + + <para>Si vous ne voulez pas être listé + dans notre section <link + linkend="donors">donateur</link> le spécifier + lors de votre don, merci !</para> + </sect3> + + <sect3> + <title>Contribution matérielle</title> + + <para>La contribution en matériel tombant dans une + des trois catégories suivantes sont joyeusement + acceptées par le projet FreeBSD :</para> + + <itemizedlist> + <listitem> + <para>Le matériel à caractère général comme + les disques, la mémoire ou des systèmes + complets doivent être envoyés à l'adresse + de FreeBSD, Inc. donnée dans la section + <emphasis>donation de fonds</emphasis>.</para> + </listitem> + + <listitem> + <para>Le matériel pour tests de compatibilité + en cours est apprécié. + Nous sommes actuellement en train de rassembler un + laboratoire de test pour tous les composants + supportés par FreeBSD, ceci afin que + des tests de regressions puissent être effectués à + chaque nouvelle version. + Nous manquons actuellement d'importants + composants (cartes éthernet, cartes mère, etc) + et si vous voulez faire un tel don, contactez + &a.dg; pour des informations sur le + matériel dont nous avons toujours besoin.</para> + </listitem> + + <listitem> + <para>Du matériel non supporté actuellement + par FreeBSD et que vous voudriez voir supporté. + Contactez &a.core; avant de nous envoyer ces + articles car il faut que nous trouvons + un développeur acceptant de se charger de cette + tâche avant d'accepter ce nouveau matériel.</para> + </listitem> + </itemizedlist> + </sect3> + + <sect3> + <title>Contribution d'accès Internet</title> + + <para>Nous pouvons toujours utiliser de + nouveaux sites mirroirs pour les FTP, + WWW ou <command>cvsup</command>. + Si vous voulez devenir un tel mirroir, contactez les + administrateurs du projet FreeBSD <email>admin@FreeBSD.ORG</email> + pour plus d'informations.</para> + </sect3> + </sect2> + </sect1> + + + + + <sect1 id="donors"> + <title>Les donateurs</title> + + <para>Le projet FreeBSD est en dette envers les + donateurs suivants et voudrait les remercier + publiquement ici !</para> + + <itemizedlist> + <listitem> + <para><emphasis>Contributeurs au projet du + serveur central :</emphasis></para> + + <para>Les personnes à titre privé ou commercial + suivantes ont rendu possible pour le projet + FreeBSD de construire la machine serveur + centrale pour éventuellement remplacer <hostid + role="fqdn">freefall.freebsd.org</hostid> + en donnant les articles suivants :</para> + + <itemizedlist> + <listitem> + <para>Ade Barkah <email>mbarkah@freebsd.org</email> et son + employeur, <ulink URL="http://www.hemi.com">Hemisphere + Online</ulink>, ont donné un + <emphasis>Pentium Pro (P6) 200Mhz + CPU</emphasis></para> + </listitem> + + <listitem> + <para><ulink URL="http://www.asacomputers.com">ASA + Computers</ulink> ont donné + <emphasis>une carte mère Tyan + 1662</emphasis>.</para> + </listitem> + + <listitem> + <para>Joe McGuckin <email>joe@via.net</email> + de <ulink + URL="http://www.via.net">ViaNet Communications</ulink> + a donné un <emphasis>contrôleur ethernet + Kingston.</emphasis></para> + </listitem> + + <listitem> + <para>Jack O'Neill <email>jack@diamond.xtalwind.net</email> + a donné <emphasis>une carte + contrôleur NCR 53C875 SCSI</emphasis>.</para> + </listitem> + + <listitem> + <para>Ulf Zimmermann <email>ulf@Alameda.net</email> de <ulink + URL="http://www.Alameda.net">Alameda + Networks</ulink> a donné <emphasis>128MB + de mémoire </emphasis>, un <emphasis>disque + de 4 Gb et la valise.</emphasis></para> + </listitem> + </itemizedlist> + </listitem> + + <listitem> + <para><emphasis>Fonds directs :</emphasis></para> + + <para>Les personnes suivantes ont généreusement + contribué - à titre privé ou commercial - + directement aux fonds du projet :</para> + + <itemizedlist> + <listitem> + <para>Annelise Anderson + <email>ANDRSN@HOOVER.STANFORD.EDU</email></para> + </listitem> + + <listitem> + <para>Matt Dillon <email>dillon@best.net</email></para> + </listitem> + + <listitem> + <para><ulink URL="http://www.epilogue.com/">Epilogue Technology + Corporation</ulink></para> + </listitem> + + <listitem> + <para>Sean Eric Fagan</para> + </listitem> + + <listitem> + <para>Don Scott Wilde</para> + </listitem> + + <listitem> + <para>Gianmarco Giovannelli + <email>gmarco@masternet.it</email></para> + </listitem> + + <listitem> + <para>Josef C. Grosch <email>joeg@truenorth.org</email></para> + </listitem> + + <listitem> + <para>Robert T. Morris</para> + </listitem> + + <listitem> + <para>Chuck Robey <email>chuckr@freebsd.org</email></para> + </listitem> + + <listitem> + <para>Kenneth P. Stox <email>ken@stox.sa.enteract.com</email> de + <ulink URL="http://www.imagescape.com">Imaginary Landscape, + LLC.</ulink></para> + </listitem> + + <listitem> + <para>Dmitry S. Kohmanyuk <email>dk@dog.farm.org</email></para> + </listitem> + + <listitem> + <para><ulink URL="http://www.cdrom.co.jp/">Laser5</ulink> + du Japon (une partie de leur bénéfice de la vente + de leurs différents CD-ROM de FreeBSD.</para> + </listitem> + + <listitem> + <para><ulink URL="http://www.mmjp.or.jp/fuki/">Fuki + Shuppan Publishing Co.</ulink> ont donné + une partie de leur bénéfice sur <emphasis>Hajimete + no FreeBSD</emphasis> (débuter sous FreeBSD) + aux projets FreeBSD et XFree86.</para> + </listitem> + + <listitem> + <para><ulink URL="http://www.ascii.co.jp/">ASCII + Corp.</ulink> ont donné une partie de leur + bénéfice de vente sur des produits sur FreeBSD.</para> + </listitem> + + <listitem> + <para><ulink URL="http://www.yokogawa.co.jp/">Yokogawa + Electric Corp</ulink> ont généreusement donné des + fonds significatifs au projet FreeBSD.</para> + </listitem> + + <listitem> + <para><ulink URL="http://www.buffnet.net/">BuffNET</ulink></para> + </listitem> + + <listitem> + <para><ulink url="http://www.pacificsolutions.com/">Pacific + Solutions</ulink></para> + </listitem> + </itemizedlist> + </listitem> + + <listitem> + <para><emphasis>Contribution matérielle :</emphasis></para> + + <para>Les personnes suivantes à titre privé ou + commercial, ont généreusement contribué en + matériel pour les tests et le + développement/support des pilotes de + périphérique :</para> + + <itemizedlist> + <listitem> + <para>Walnut Creek CDROM pour avoir fourni + le Pentium P5-90 et le 486/DX2-66 EISA/VL + qui sont actuellement utilisés pour notre + travail de développement, cela sans parler + de l'accès réseau et d'autres dons + de matériels.</para> + </listitem> + + <listitem> + <para>TRW Financial Systems, Inc. nous a + fourni 130 PC, trois serveurs de fichiers + 68 GB, douze Ethernets, deux routeurs et + un commutateur ATM pour déboguer un + code sans disque.</para> + </listitem> + + <listitem> + <para>Dermot McDonnell a donné un + lecteur CDROM Toshiba XM3401B + actuellement utilisé dans freefall.</para> + </listitem> + + <listitem> + <para>&a.chuck; a contribué par son lecteur de + bande pour le travail expérimental.</para> + </listitem> + + <listitem> + <para>Larry Altneu <email>larry@ALR.COM</email>, + and &a.wilko;, ont donné des lecteurs de + bandes Wangtek and Archive QIC-02 afin d'améliorer + les <devicename>wt</devicename> pilotes.</para> + </listitem> + + <listitem> + <para>Ernst Winter <email>ewinter@lobo.muc.de</email> + a contribué par son lecteur de disquette + 2.88 MB au projet. + Cela augmentera la pression pour réécrire le + pilote du lecteur de disquette.<!-- smiley -->;-)</para> + </listitem> + + <listitem> + <para><ulink URL="http://www.tekram.com">Tekram + Technologies</ulink> a envoyé chacun de + leur carte adapteur hôte DC-390, DC-390U + et DC-390F FAST and ULTRA SCSI pour + les tests de regression des pilotes + NCR et AMD avec leur cartes. + Ils peuvent être aussi acclamé pour avoir rendu leurs + sources de pilotes disponibles sur les serveur + FTP pour les systèmes s'exploitation libres.<ulink + URL="ftp://ftp.tekram.com/scsi/FreeBSD">ftp://ftp.tekram.com/scsi/FreeBSD</ulink>.</para> + </listitem> + + <listitem> + <para><email>Larry M. Augustin</email> ont + contribué non seulement avec une carte + Symbios Sym8751S SCSI mais aussi par un ensemble de + livres de données, y compris la prochaine puce + Sym53c895 chip avec support Ultra-2 + et LVD, et pour le dernier manuel de programmation + avec des informations sur la manière d'utiliser + sûrement les fonctionnalités avancées de la dernière puce + Symbios SCSI chips. Merci beaucoup !</para> + </listitem> + + <listitem> + <para>Christoph Kukulies <email>kuku@freebsd.org</email> + a donné un lecteur CDROM FX120 12 vitesse + Mitsumi pour le développement de pilote + CDROM IDE.</para> + </listitem> + </itemizedlist> + </listitem> + + <listitem> + <para><emphasis>Contributeurs spéciaux :</emphasis></para> + + <itemizedlist> + <listitem> + <para><ulink URL="http://www.cdrom.com">Walnut Creek CDROM</ulink> + a donné plus que nous pourrions le dire (voir le document de + <link linkend="history">l'historique</link> pour plus de détails. + En particulier, nous voudrions les remercier pour le matériel + original utilisé pour <hostid + role="fqdn">freefall.FreeBSD.ORG</hostid>, notre principale + machine de développement, et pour <hostid + role="fqdn">thud.FreeBSD.ORG</hostid>, une machine de + test et de construction. Nous leur sommes aussi gré pour + le financement de plusieurs collaborateurs au fil des années, et + pour nous avoir fourni un accès illimité à leur connexion T1 + à l'Internet.</para> + </listitem> + + <listitem> + <para><ulink URL="http://www.interface-business.de">interface + business GmbH, Dresden</ulink> qui ont patiemment + supportés &a.joerg; qui a souvent préféré le travail FreeBSD + au travail pour lequel il était payé, et a utilisé leur + (coûteuse) connexion EUnet Internet lorsque sa connexion privée + devenait trop lente pour tavailler décemment avec ...</para> + </listitem> + + <listitem> + <para><ulink URL="http://www.bsdi.com">Berkeley Software Design, + Inc.</ulink> ont contribué en donnant leur émulateur + DOS au reste du monde BSD, qui est utilisé dans la commande + <emphasis>dosemu</emphasis>.</para> + </listitem> + </itemizedlist> + </listitem> + </itemizedlist> + + </sect1> + + <sect1> + <title>Les anciens de l'équipe principale</title> + + <para>Les personnes suivantes ont été membre de l'équipe + de base de FreeBSD durant la période indiquée. + Nous les remercions de leurs efforts passés au + service du projet FreeBSD.</para> + + <para><emphasis>Dans un ordre chronologique brut :</emphasis></para> + + <itemizedlist> + <listitem> + <para>Guido van Rooij (1995 - 1999)</para> + </listitem> + + <listitem> + <para>John Dyson (1993 - 1998)</para> + </listitem> + + <listitem> + <para>Nate Williams (1992 - 1996)</para> + </listitem> + + <listitem> + <para>Rod Grimes (1992 - 1995)</para> + </listitem> + + <listitem> + <para>Andreas Schulz (1992 - 1995)</para> + </listitem> + + <listitem> + <para>Geoff Rehmet (1993 - 1995)</para> + </listitem> + + <listitem> + <para>Paul Richards (1992 - 1995)</para> + </listitem> + + <listitem> + <para>Scott Mace (1993 - 1994)</para> + </listitem> + + <listitem> + <para>Andrew Moore (1993 - 1994)</para> + </listitem> + + <listitem> + <para>Christoph Robitschko (1993 - 1994)</para> + </listitem> + + <listitem> + <para>J. T. Conklin (1992 - 1993)</para> + </listitem> + </itemizedlist> + </sect1> + + <sect1 id="contrib-additional"> + <title>Collaborateurs des logiciels dérivés</title> + + <para>Ce logiciel dérive originelement du 386BSD + version 0.1 de William F. Jolitz. + Ce logiciel a été essentiellement réimplémenté depuis + la version 4.4BSD-Lite fourni par le Computer + Science Research Group (CSRG) à l'université de + Californie à Berkeley et des académies + collaboratices associées.</para> + + <para>Il ya aussi des portions de NetBSD et + OpenBSD qui ont été intégrés dans le code FreeBSD, + et nous voulons de ce fait remercier tous les + collaborateurs de NetBSD et OpenBSD pour leur travail.</para> + + <para>(Dans l'order alphabétique par le prénom) :</para> + + <itemizedlist> + <listitem> + <para>ABURAYA Ryushirou <email>rewsirow@ff.iij4u.or.jp</email></para> + </listitem> + + <listitem> + <para>AMAGAI Yoshiji <email>amagai@nue.org</email></para> + </listitem> + + <listitem> + <para>Aaron Bornstein <email>aaronb@j51.com</email></para> + </listitem> + + <listitem> + <para>Aaron Smith <email>aaron@tau.veritas.com</email></para> + </listitem> + + <listitem> + <para>Achim Patzner <email>ap@noses.com</email></para> + </listitem> + + <listitem> + <para>Ada T Lim <email>ada@bsd.org</email></para> + </listitem> + + <listitem> + <para>Adam Baran <email>badam@mw.mil.pl</email></para> + </listitem> + + <listitem> + <para>Adam Glass <email>glass@postgres.berkeley.edu</email></para> + </listitem> + + <listitem> + <para>Adam McDougall <email>mcdouga9@egr.msu.edu</email></para> + </listitem> + + <listitem> + <para>Adrian Colley <email>aecolley@ois.ie</email></para> + </listitem> + + <listitem> + <para>Adrian Hall <email>adrian@ibmpcug.co.uk</email></para> + </listitem> + + <listitem> + <para>Adrian Mariano <email>adrian@cam.cornell.edu</email></para> + </listitem> + + <listitem> + <para>Adrian Steinmann <email>ast@marabu.ch</email></para> + </listitem> + + <listitem> + <para>Adrian T. Filipi-Martin + <email>atf3r@agate.cs.virginia.edu</email></para> + </listitem> + + <listitem> + <para>Ajit Thyagarajan <email>unknown</email></para> + </listitem> + + <listitem> + <para>Akio Morita + <email>amorita@meadow.scphys.kyoto-u.ac.jp</email></para> + </listitem> + + <listitem> + <para>Akira SAWADA <email>unknown</email></para> + </listitem> + + <listitem> + <para>Akira Watanabe + <email>akira@myaw.ei.meisei-u.ac.jp</email></para> + </listitem> + + <listitem> + <para>Akito Fujita <email>fujita@zoo.ncl.omron.co.jp</email></para> + </listitem> + + <listitem> + <para>Alain Kalker + <email>A.C.P.M.Kalker@student.utwente.nl</email></para> + </listitem> + + <listitem> + <para>Alan Bawden <email>alan@curry.epilogue.com</email></para> + </listitem> + + <listitem> + <para>Alan Cox <email>alc@cs.rice.edu</email></para> + </listitem> + + <listitem> + <para>Alec Wolman <email>wolman@cs.washington.edu</email></para> + </listitem> + + <listitem> + <para>Aled Morris <email>aledm@routers.co.uk</email></para> + </listitem> + + <listitem> + <para>Alex <email>garbanzo@hooked.net</email></para> + </listitem> + + <listitem> + <para>Alex D. Chen + <email>dhchen@Canvas.dorm7.nccu.edu.tw</email></para> + </listitem> + + <listitem> + <para>Alex G. Bulushev <email>bag@demos.su</email></para> + </listitem> + + <listitem> + <para>Alex Le Heux <email>alexlh@funk.org</email></para> + </listitem> + + <listitem> + <para>Alexander B. Povolotsky <email>tarkhil@mgt.msk.ru</email></para> + </listitem> + + <listitem> + <para>Alexander Leidinger + <email>netchild@wurzelausix.CS.Uni-SB.DE</email></para> + </listitem> + + <listitem> + <para>Alexandre Snarskii <email>snar@paranoia.ru</email></para> + </listitem> + + <listitem> + <para>Alistair G. Crooks <email>agc@uts.amdahl.com</email></para> + </listitem> + + <listitem> + <para>Allan Saddi <email>asaddi@philosophysw.com</email></para> + </listitem> + + <listitem> + <para>Allen Campbell <email>allenc@verinet.com</email></para> + </listitem> + + <listitem> + <para>Amakawa Shuhei <email>amakawa@hoh.t.u-tokyo.ac.jp</email></para> + </listitem> + + <listitem> + <para>Amancio Hasty <email>hasty@star-gate.com</email></para> + </listitem> + + <listitem> + <para>Amir Farah <email>amir@comtrol.com</email></para> + </listitem> + + <listitem> + <para>Amy Baron <email>amee@beer.org</email></para> + </listitem> + + <listitem> + <para>Anatoly A. Orehovsky <email>tolik@mpeks.tomsk.su</email></para> + </listitem> + + <listitem> + <para>Anatoly Vorobey <email>mellon@pobox.com</email></para> + </listitem> + + <listitem> + <para>Anders Nordby <email>nickerne@nome.no</email></para> + </listitem> + + <listitem> + <para>Anders Thulin <email>Anders.X.Thulin@telia.se</email></para> + </listitem> + + <listitem> + <para>Andras Olah <email>olah@cs.utwente.nl</email></para> + </listitem> + + <listitem> + <para>Andre Albsmeier + <email>Andre.Albsmeier@mchp.siemens.de</email></para> + </listitem> + + <listitem> + <para>Andre Oppermann <email>andre@pipeline.ch</email></para> + </listitem> + + <listitem> + <para>Andreas Haakh <email>ah@alman.robin.de</email></para> + </listitem> + + <listitem> + <para>Andreas Kohout <email>shanee@rabbit.augusta.de</email></para> + </listitem> + + <listitem> + <para>Andreas Lohr <email>andreas@marvin.RoBIN.de</email></para> + </listitem> + + <listitem> + <para>Andreas Schulz <email>unknown</email></para> + </listitem> + + <listitem> + <para>Andreas Wetzel <email>mickey@deadline.snafu.de</email></para> + </listitem> + + <listitem> + <para>Andreas Wrede <email>andreas@planix.com</email></para> + </listitem> + + <listitem> + <para>Andres Vega Garcia <email>unknown</email></para> + </listitem> + + <listitem> + <para>Andrew Atrens <email>atreand@statcan.ca</email></para> + </listitem> + + <listitem> + <para>Andrew Gillham <email>gillham@andrews.edu</email></para> + </listitem> + + <listitem> + <para>Andrew Gordon <email>andrew.gordon@net-tel.co.uk</email></para> + </listitem> + + <listitem> + <para>Andrew Herbert <email>andrew@werple.apana.org.au</email></para> + </listitem> + + <listitem> + <para>Andrew J. Korty <email>ajk@purdue.edu</email></para> + </listitem> + + <listitem> + <para>Andrew L. Moore <email>alm@mclink.com</email></para> + </listitem> + + <listitem> + <para>Andrew McRae <email>amcrae@cisco.com</email></para> + </listitem> + + <listitem> + <para>Andrew Stevenson <email>andrew@ugh.net.au</email></para> + </listitem> + + <listitem> + <para>Andrew Timonin <email>tim@pool1.convey.ru</email></para> + </listitem> + + <listitem> + <para>Andrew V. Stesin <email>stesin@elvisti.kiev.ua</email></para> + </listitem> + + <listitem> + <para>Andrew Webster <email>awebster@dataradio.com</email></para> + </listitem> + + <listitem> + <para>Andrey Zakhvatov <email>andy@icc.surw.chel.su</email></para> + </listitem> + + <listitem> + <para>Andy Farkas <email>andyf@speednet.com.au</email></para> + </listitem> + + <listitem> + <para>Andy Valencia <email>ajv@csd.mot.com</email></para> + </listitem> + + <listitem> + <para>Andy Whitcroft <email>andy@sarc.city.ac.uk</email></para> + </listitem> + + <listitem> + <para>Angelo Turetta <email>ATuretta@stylo.it</email></para> + </listitem> + + <listitem> + <para>Anthony C. Chavez <email>magus@xmission.com</email></para> + </listitem> + + <listitem> + <para>Anthony Yee-Hang Chan <email>yeehang@netcom.com</email></para> + </listitem> + + <listitem> + <para>Anton Berezin <email>tobez@plab.ku.dk</email></para> + </listitem> + + <listitem> + <para>Antti Kaipila <email>anttik@iki.fi</email></para> + </listitem> + + <listitem> + <para>Are Bryne <email>are.bryne@communique.no</email></para> + </listitem> + + <listitem> + <para>Ari Suutari <email>ari@suutari.iki.fi</email></para> + </listitem> + + <listitem> + <para>Arjan de Vet <email>devet@IAEhv.nl</email></para> + </listitem> + + <listitem> + <para>Arne Henrik Juul <email>arnej@Lise.Unit.NO</email></para> + </listitem> + + <listitem> + <para>Assar Westerlund <email>assar@sics.se</email></para> + </listitem> + + <listitem> + <para>Atsushi Furuta <email>furuta@sra.co.jp</email></para> + </listitem> + + <listitem> + <para>Atsushi Murai <email>amurai@spec.co.jp</email></para> + </listitem> + + <listitem> + <para>Bakul Shah <email>bvs@bitblocks.com</email></para> + </listitem> + + <listitem> + <para>Barry Bierbauch <email>pivrnec@vszbr.cz</email></para> + </listitem> + + <listitem> + <para>Barry Lustig <email>barry@ictv.com</email></para> + </listitem> + + <listitem> + <para>Ben Hutchinson <email>benhutch@xfiles.org.uk</email></para> + </listitem> + + <listitem> + <para>Ben Jackson <email>unknown</email></para> + </listitem> + + <listitem> + <para>Ben Smithurst <email>ben@scientia.demon.co.uk</email></para> + </listitem> + + <listitem> + <para>Ben Walter <email>bwalter@itachi.swcp.com</email></para> + </listitem> + + <listitem> + <para>Benjamin Lewis <email>bhlewis@gte.net</email></para> + </listitem> + + <listitem> + <para>Bernd Rosauer <email>br@schiele-ct.de</email></para> + </listitem> + + <listitem> + <para>Bill Kish <email>kish@osf.org</email></para> + </listitem> + + <listitem> + <para>Bill Trost <email>trost@cloud.rain.com</email></para> + </listitem> + + <listitem> + <para>Blaz Zupan <email>blaz@amis.net</email></para> + </listitem> + + <listitem> + <para>Bob Van Valzah <email>Bob@whitebarn.com</email></para> + </listitem> + + <listitem> + <para>Bob Willcox <email>bob@luke.pmr.com</email></para> + </listitem> + + <listitem> + <para>Boris Staeblow <email>balu@dva.in-berlin.de</email></para> + </listitem> + + <listitem> + <para>Boyd R. Faulkner <email>faulkner@asgard.bga.com</email></para> + </listitem> + + <listitem> + <para>Brad Karp <email>karp@eecs.harvard.edu</email></para> + </listitem> + + <listitem> + <para>Bradley Dunn <email>bradley@dunn.org</email></para> + </listitem> + + <listitem> + <para>Brandon Gillespie <email>brandon@roguetrader.com</email></para> + </listitem> + + <listitem> + <para>&a.wlloyd</para> + </listitem> + + <listitem> + <para>Bob Wilcox <email>bob@obiwan.uucp</email></para> + </listitem> + + <listitem> + <para>Boyd Faulkner <email>faulkner@mpd.tandem.com</email></para> + </listitem> + + <listitem> + <para>Brent J. Nordquist <email>bjn@visi.com</email></para> + </listitem> + + <listitem> + <para>Brett Lymn <email>blymn@mulga.awadi.com.AU</email></para> + </listitem> + + <listitem> + <para>Brett Taylor + <email>brett@peloton.physics.montana.edu</email></para> + </listitem> + + <listitem> + <para>Brian Campbell <email>brianc@pobox.com</email></para> + </listitem> + + <listitem> + <para>Brian Clapper <email>bmc@willscreek.com</email></para> + </listitem> + + <listitem> + <para>Brian Cully <email>shmit@kublai.com</email></para> + </listitem> + + <listitem> + <para>Brian F. Feldman <email>green@unixhelp.org</email></para> + </listitem> + + <listitem> + <para>Brian Handy + <email>handy@lambic.space.lockheed.com</email></para> + </listitem> + + <listitem> + <para>Brian Litzinger <email>brian@MediaCity.com</email></para> + </listitem> + + <listitem> + <para>Brian McGovern <email>bmcgover@cisco.com</email></para> + </listitem> + + <listitem> + <para>Brian Moore <email>ziff@houdini.eecs.umich.edu</email></para> + </listitem> + + <listitem> + <para>Brian R. Haug <email>haug@conterra.com</email></para> + </listitem> + + <listitem> + <para>Brian Tao <email>taob@risc.org</email></para> + </listitem> + + <listitem> + <para>Brion Moss <email>brion@queeg.com</email></para> + </listitem> + + <listitem> + <para>Bruce A. Mah <email>bmah@ca.sandia.gov</email></para> + </listitem> + + <listitem> + <para>Bruce Albrecht <email>bruce@zuhause.mn.org</email></para> + </listitem> + + <listitem> + <para>Bruce Gingery <email>bgingery@gtcs.com</email></para> + </listitem> + + <listitem> + <para>Bruce J. Keeler <email>loodvrij@gridpoint.com</email></para> + </listitem> + + <listitem> + <para>Bruce Murphy <email>packrat@iinet.net.au</email></para> + </listitem> + + <listitem> + <para>Bruce Walter <email>walter@fortean.com</email></para> + </listitem> + + <listitem> + <para>Carey Jones <email>mcj@acquiesce.org</email></para> + </listitem> + + <listitem> + <para>Carl Fongheiser <email>cmf@netins.net</email></para> + </listitem> + + <listitem> + <para>Carl Mascott <email>cmascott@world.std.com</email></para> + </listitem> + + <listitem> + <para>Casper <email>casper@acc.am</email></para> + </listitem> + + <listitem> + <para>Castor Fu <email>castor@geocast.com</email></para> + </listitem> + + <listitem> + <para>Cejka Rudolf <email>cejkar@dcse.fee.vutbr.cz</email></para> + </listitem> + + <listitem> + <para>Chain Lee <email>chain@110.net</email></para> + </listitem> + + <listitem> + <para>Charles Hannum <email>mycroft@ai.mit.edu</email></para> + </listitem> + + <listitem> + <para>Charles Henrich <email>henrich@msu.edu</email></para> + </listitem> + + <listitem> + <para>Charles Mott <email>cmott@srv.net</email></para> + </listitem> + + <listitem> + <para>Charles Owens <email>owensc@enc.edu</email></para> + </listitem> + + <listitem> + <para>Chet Ramey <email>chet@odin.INS.CWRU.Edu</email></para> + </listitem> + + <listitem> + <para>Chia-liang Kao <email>clkao@CirX.ORG</email></para> + </listitem> + + <listitem> + <para>Chiharu Shibata <email>chi@bd.mbn.or.jp</email></para> + </listitem> + + <listitem> + <para>Chip Norkus <email>unknown</email></para> + </listitem> + + <listitem> + <para>Choi Jun Ho <email>junker@jazz.snu.ac.kr</email></para> + </listitem> + + <listitem> + <para>Chris Csanady <email>cc@tarsier.ca.sandia.gov</email></para> + </listitem> + + <listitem> + <para>Chris Dabrowski <email>chris@vader.org</email></para> + </listitem> + + <listitem> + <para>Chris Dillon <email>cdillon@wolves.k12.mo.us</email></para> + </listitem> + + <listitem> + <para>Chris Piazza <email>cpiazza@home.net</email></para> + </listitem> + + <listitem> + <para>Chris Shenton + <email>cshenton@angst.it.hq.nasa.gov</email></para> + </listitem> + + <listitem> + <para>Chris Stenton <email>jacs@gnome.co.uk</email></para> + </listitem> + + <listitem> + <para>Chris Timmons <email>skynyrd@opus.cts.cwu.edu</email></para> + </listitem> + + <listitem> + <para>Chris Torek <email>torek@ee.lbl.gov</email></para> + </listitem> + + <listitem> + <para>Christian Gusenbauer + <email>cg@fimp01.fim.uni-linz.ac.at</email></para> + </listitem> + + <listitem> + <para>Christian Haury <email>Christian.Haury@sagem.fr</email></para> + </listitem> + + <listitem> + <para>Christian Weisgerber + <email>naddy@bigeye.rhein-neckar.de</email></para> + </listitem> + + <listitem> + <para>Christoph P. Kukulies <email>kuku@FreeBSD.org</email></para> + </listitem> + + <listitem> + <para>Christoph Robitschko + <email>chmr@edvz.tu-graz.ac.at</email></para> + </listitem> + + <listitem> + <para>Christoph Weber-Fahr + <email>wefa@callcenter.systemhaus.net</email></para> + </listitem> + + <listitem> + <para>Christopher G. Demetriou + <email>cgd@postgres.berkeley.edu</email></para> + </listitem> + + <listitem> + <para>Christopher T. Johnson + <email>cjohnson@neunacht.netgsi.com</email></para> + </listitem> + + <listitem> + <para>Chrisy Luke <email>chrisy@flix.net</email></para> + </listitem> + + <listitem> + <para>Chuck Hein <email>chein@cisco.com</email></para> + </listitem> + + <listitem> + <para>Clive Lin <email>clive@CiRX.ORG</email></para> + </listitem> + + <listitem> + <para>Colman Reilly <email>careilly@tcd.ie</email></para> + </listitem> + + <listitem> + <para>Conrad Sabatier <email>conrads@neosoft.com</email></para> + </listitem> + + <listitem> + <para>Coranth Gryphon <email>gryphon@healer.com</email></para> + </listitem> + + <listitem> + <para>Cornelis van der Laan + <email>nils@guru.ims.uni-stuttgart.de</email></para> + </listitem> + + <listitem> + <para>Cove Schneider <email>cove@brazil.nbn.com</email></para> + </listitem> + + <listitem> + <para>Craig Leres <email>leres@ee.lbl.gov</email></para> + </listitem> + + <listitem> + <para>Craig Loomis <email>unknown</email></para> + </listitem> + + <listitem> + <para>Craig Metz <email>cmetz@inner.net</email></para> + </listitem> + + <listitem> + <para>Craig Spannring <email>cts@internetcds.com</email></para> + </listitem> + + <listitem> + <para>Craig Struble <email>cstruble@vt.edu</email></para> + </listitem> + + <listitem> + <para>Cristian Ferretti <email>cfs@riemann.mat.puc.cl</email></para> + </listitem> + + <listitem> + <para>Curt Mayer <email>curt@toad.com</email></para> + </listitem> + + <listitem> + <para>Cy Schubert <email>cschuber@uumail.gov.bc.ca</email></para> + </listitem> + + <listitem> + <para>DI. Christian Gusenbauer + <email>cg@scotty.edvz.uni-linz.ac.at</email></para> + </listitem> + + <listitem> + <para>Dai Ishijima <email>ishijima@tri.pref.osaka.jp</email></para> + </listitem> + + <listitem> + <para>Damian Hamill <email>damian@cablenet.net</email></para> + </listitem> + + <listitem> + <para>Dan Cross <email>tenser@spitfire.ecsel.psu.edu</email></para> + </listitem> + + <listitem> + <para>Dan Lukes <email>dan@obluda.cz</email></para> + </listitem> + + <listitem> + <para>Dan Nelson <email>dnelson@emsphone.com</email></para> + </listitem> + + <listitem> + <para>Dan Walters <email>hannibal@cyberstation.net</email></para> + </listitem> + + <listitem> + <para>Daniel Baker <email>dbaker@crash.ops.neosoft.com</email></para> + </listitem> + + <listitem> + <para>Daniel M. Eischen + <email>deischen@iworks.InterWorks.org</email></para> + </listitem> + + <listitem> + <para>Daniel O'Connor <email>doconnor@gsoft.com.au</email></para> + </listitem> + + <listitem> + <para>Daniel Poirot <email>poirot@aio.jsc.nasa.gov</email></para> + </listitem> + + <listitem> + <para>Daniel Rock <email>rock@cs.uni-sb.de</email></para> + </listitem> + + <listitem> + <para>Danny Egen <email>unknown</email></para> + </listitem> + + <listitem> + <para>Danny J. Zerkel <email>dzerkel@phofarm.com</email></para> + </listitem> + + <listitem> + <para>Darren Reed <email>avalon@coombs.anu.edu.au</email></para> + </listitem> + + <listitem> + <para>Dave Adkins <email>adkin003@tc.umn.edu</email></para> + </listitem> + + <listitem> + <para>Dave Andersen <email>angio@aros.net</email></para> + </listitem> + + <listitem> + <para>Dave Blizzard <email>dblizzar@sprynet.com</email></para> + </listitem> + + <listitem> + <para>Dave Bodenstab <email>imdave@synet.net</email></para> + </listitem> + + <listitem> + <para>Dave Burgess <email>burgess@hrd769.brooks.af.mil</email></para> + </listitem> + + <listitem> + <para>Dave Chapeskie <email>dchapes@ddm.on.ca</email></para> + </listitem> + + <listitem> + <para>Dave Cornejo <email>dave@dogwood.com</email></para> + </listitem> + + <listitem> + <para>Dave Edmondson <email>davided@sco.com</email></para> + </listitem> + + <listitem> + <para>Dave Glowacki <email>dglo@ssec.wisc.edu</email></para> + </listitem> + + <listitem> + <para>Dave Marquardt <email>marquard@austin.ibm.com</email></para> + </listitem> + + <listitem> + <para>Dave Tweten <email>tweten@FreeBSD.org</email></para> + </listitem> + + <listitem> + <para>David A. Adkins <email>adkin003@tc.umn.edu</email></para> + </listitem> + + <listitem> + <para>David A. Bader <email>dbader@umiacs.umd.edu</email></para> + </listitem> + + <listitem> + <para>David Borman <email>dab@bsdi.com</email></para> + </listitem> + + <listitem> + <para>David Dawes <email>dawes@XFree86.org</email></para> + </listitem> + + <listitem> + <para>David Filo <email>filo@yahoo.com</email></para> + </listitem> + + <listitem> + <para>David Holland <email>dholland@eecs.harvard.edu</email></para> + </listitem> + + <listitem> + <para>David Holloway <email>daveh@gwythaint.tamis.com</email></para> + </listitem> + + <listitem> + <para>David Horwitt <email>dhorwitt@ucsd.edu</email></para> + </listitem> + + <listitem> + <para>David Hovemeyer <email>daveho@infocom.com</email></para> + </listitem> + + <listitem> + <para>David Jones <email>dej@qpoint.torfree.net</email></para> + </listitem> + + <listitem> + <para>David Kelly <email>dkelly@tomcat1.tbe.com</email></para> + </listitem> + + <listitem> + <para>David Kulp <email>dkulp@neomorphic.com</email></para> + </listitem> + + <listitem> + <para>David L. Nugent <email>davidn@blaze.net.au</email></para> + </listitem> + + <listitem> + <para>David Leonard <email>d@scry.dstc.edu.au</email></para> + </listitem> + + <listitem> + <para>David Malone <email>dwmalone@maths.tcd.ie</email></para> + </listitem> + + <listitem> + <para>David Muir Sharnoff <email>muir@idiom.com</email></para> + </listitem> + + <listitem> + <para>David S. Miller <email>davem@jenolan.rutgers.edu</email></para> + </listitem> + + <listitem> + <para>David Wolfskill <email>dhw@whistle.com</email></para> + </listitem> + + <listitem> + <para>Dean Gaudet <email>dgaudet@arctic.org</email></para> + </listitem> + + <listitem> + <para>Dean Huxley <email>dean@fsa.ca</email></para> + </listitem> + + <listitem> + <para>Denis Fortin <email>unknown</email></para> + </listitem> + + <listitem> + <para>Dennis Glatting + <email>dennis.glatting@software-munitions.com</email></para> + </listitem> + + <listitem> + <para>Denton Gentry <email>denny1@home.com</email></para> + </listitem> + + <listitem> + <para>Derek Inksetter <email>derek@saidev.com</email></para> + </listitem> + + <listitem> + <para>Dima Sivachenko <email>dima@Chg.RU</email></para> + </listitem> + + <listitem> + <para>Dirk Keunecke <email>dk@panda.rhein-main.de</email></para> + </listitem> + + <listitem> + <para>Dirk Nehrling <email>nerle@pdv.de</email></para> + </listitem> + + <listitem> + <para>Dmitry Khrustalev <email>dima@xyzzy.machaon.ru</email></para> + </listitem> + + <listitem> + <para>Dmitry Kohmanyuk <email>dk@farm.org</email></para> + </listitem> + + <listitem> + <para>Dom Mitchell <email>dom@myrddin.demon.co.uk</email></para> + </listitem> + + <listitem> + <para>Don Croyle <email>croyle@gelemna.ft-wayne.in.us</email></para> + </listitem> + + <listitem> + <para>&a.whiteside;</para> + </listitem> + + <listitem> + <para>Don Morrison <email>dmorrisn@u.washington.edu</email></para> + </listitem> + + <listitem> + <para>Don Yuniskis <email>dgy@rtd.com</email></para> + </listitem> + + <listitem> + <para>Donald Maddox <email>dmaddox@conterra.com</email></para> + </listitem> + + <listitem> + <para>Doug Barton <email>studded@dal.net</email></para> + </listitem> + + <listitem> + <para>Douglas Ambrisko <email>ambrisko@whistle.com</email></para> + </listitem> + + <listitem> + <para>Douglas Carmichael <email>dcarmich@mcs.com</email></para> + </listitem> + + <listitem> + <para>Douglas Crosher <email>dtc@scrooge.ee.swin.oz.au</email></para> + </listitem> + + <listitem> + <para>Drew Derbyshire <email>ahd@kew.com</email></para> + </listitem> + + <listitem> + <para>Duncan Barclay <email>dmlb@ragnet.demon.co.uk</email></para> + </listitem> + + <listitem> + <para>Dustin Sallings <email>dustin@spy.net</email></para> + </listitem> + + <listitem> + <para>Eckart "Isegrim" Hofmann + <email>Isegrim@Wunder-Nett.org</email></para> + </listitem> + + <listitem> + <para>Ed Gold + <email>vegold01@starbase.spd.louisville.edu</email></para> + </listitem> + + <listitem> + <para>Ed Hudson <email>elh@p5.spnet.com</email></para> + </listitem> + + <listitem> + <para>Edward Wang <email>edward@edcom.com</email></para> + </listitem> + + <listitem> + <para>Edwin Groothus <email>edwin@nwm.wan.philips.com</email></para> + </listitem> + + <listitem> + <para>Eiji-usagi-MATSUmoto <email>usagi@clave.gr.jp</email></para> + </listitem> + + <listitem> + <para>ELISA Font Project</para> + </listitem> + + <listitem> + <para>Elmar Bartel + <email>bartel@informatik.tu-muenchen.de</email></para> + </listitem> + + <listitem> + <para>Eric A. Griff <email>eagriff@global2000.net</email></para> + </listitem> + + <listitem> + <para>Eric Blood <email>eblood@cs.unr.edu</email></para> + </listitem> + + <listitem> + <para>Eric J. Haug <email>ejh@slustl.slu.edu</email></para> + </listitem> + + <listitem> + <para>Eric J. Schwertfeger <email>eric@cybernut.com</email></para> + </listitem> + + <listitem> + <para>Eric L. Hernes <email>erich@lodgenet.com</email></para> + </listitem> + + <listitem> + <para>Eric P. Scott <email>eps@sirius.com</email></para> + </listitem> + + <listitem> + <para>Eric Sprinkle <email>eric@ennovatenetworks.com</email></para> + </listitem> + + <listitem> + <para>Erich Stefan Boleyn <email>erich@uruk.org</email></para> + </listitem> + + <listitem> + <para>Erik E. Rantapaa <email>rantapaa@math.umn.edu</email></para> + </listitem> + + <listitem> + <para>Erik H. Moe <email>ehm@cris.com</email></para> + </listitem> + + <listitem> + <para>Ernst Winter <email>ewinter@lobo.muc.de</email></para> + </listitem> + + <listitem> + <para>Eugene M. Kim <email>astralblue@usa.net</email></para> + </listitem> + + <listitem> + <para>Eugene Radchenko <email>genie@qsar.chem.msu.su</email></para> + </listitem> + + <listitem> + <para>Evan Champion <email>evanc@synapse.net</email></para> + </listitem> + + <listitem> + <para>Faried Nawaz <email>fn@Hungry.COM</email></para> + </listitem> + + <listitem> + <para>Flemming Jacobsen <email>fj@tfs.com</email></para> + </listitem> + + <listitem> + <para>Fong-Ching Liaw <email>fong@juniper.net</email></para> + </listitem> + + <listitem> + <para>Francis M J Hsieh <email>mjshieh@life.nthu.edu.tw</email></para> + </listitem> + + <listitem> + <para>Frank Bartels <email>knarf@camelot.de</email></para> + </listitem> + + <listitem> + <para>Frank Chen Hsiung Chan + <email>frankch@waru.life.nthu.edu.tw</email></para> + </listitem> + + <listitem> + <para>Frank Durda IV <email>uhclem@nemesis.lonestar.org</email></para> + </listitem> + + <listitem> + <para>Frank MacLachlan <email>fpm@n2.net</email></para> + </listitem> + + <listitem> + <para>Frank Nobis <email>fn@Radio-do.de</email></para> + </listitem> + + <listitem> + <para>Frank Volf <email>volf@oasis.IAEhv.nl</email></para> + </listitem> + + <listitem> + <para>Frank ten Wolde <email>franky@pinewood.nl</email></para> + </listitem> + + <listitem> + <para>Frank van der Linden <email>frank@fwi.uva.nl</email></para> + </listitem> + + <listitem> + <para>Fred Cawthorne <email>fcawth@jjarray.umn.edu</email></para> + </listitem> + + <listitem> + <para>Fred Gilham <email>gilham@csl.sri.com</email></para> + </listitem> + + <listitem> + <para>Fred Templin <email>templin@erg.sri.com</email></para> + </listitem> + + <listitem> + <para>Frederick Earl Gray <email>fgray@rice.edu</email></para> + </listitem> + + <listitem> + <para>FUJIMOTO Kensaku + <email>fujimoto@oscar.elec.waseda.ac.jp</email></para> + </listitem> + + <listitem> + <para>FUJISHIMA Satsuki <email>k5@respo.or.jp</email></para> + </listitem> + + <listitem> + <para>FURUSAWA Kazuhisa + <email>furusawa@com.cs.osakafu-u.ac.jp</email></para> + </listitem> + + <listitem> + <para>Gabor Kincses <email>gabor@acm.org</email></para> + </listitem> + + <listitem> + <para>Gabor Zahemszky <email>zgabor@CoDe.hu</email></para> + </listitem> + + <listitem> + <para>Garance A Drosehn <email>gad@eclipse.its.rpi.edu</email></para> + </listitem> + + <listitem> + <para>Gareth McCaughan <email>gjm11@dpmms.cam.ac.uk</email></para> + </listitem> + + <listitem> + <para>Gary A. Browning <email>gab10@griffcd.amdahl.com</email></para> + </listitem> + + <listitem> + <para>Gary Howland <email>gary@hotlava.com</email></para> + </listitem> + + <listitem> + <para>Gary J. <email>garyj@rks32.pcs.dec.com</email></para> + </listitem> + + <listitem> + <para>Gary Kline <email>kline@thought.org</email></para> + </listitem> + + <listitem> + <para>Gaspar Chilingarov <email>nightmar@lemming.acc.am</email></para> + </listitem> + + <listitem> + <para>Gea-Suan Lin <email>gsl@tpts4.seed.net.tw</email></para> + </listitem> + + <listitem> + <para>Geoff Rehmet <email>csgr@alpha.ru.ac.za</email></para> + </listitem> + + <listitem> + <para>Georg Wagner <email>georg.wagner@ubs.com</email></para> + </listitem> + + <listitem> + <para>Gerard Roudier <email>groudier@club-internet.fr</email></para> + </listitem> + + <listitem> + <para>Gianmarco Giovannelli + <email>gmarco@giovannelli.it</email></para> + </listitem> + + <listitem> + <para>Gil Kloepfer Jr. <email>gil@limbic.ssdl.com</email></para> + </listitem> + + <listitem> + <para>Gilad Rom <email>rom_glsa@ein-hashofet.co.il</email></para> + </listitem> + + <listitem> + <para>Ginga Kawaguti + <email>ginga@amalthea.phys.s.u-tokyo.ac.jp</email></para> + </listitem> + + <listitem> + <para>Giles Lean <email>giles@nemeton.com.au</email></para> + </listitem> + + <listitem> + <para>Glen Foster <email>gfoster@gfoster.com</email></para> + </listitem> + + <listitem> + <para>Glenn Johnson <email>gljohns@bellsouth.net</email></para> + </listitem> + + <listitem> + <para>Godmar Back <email>gback@facility.cs.utah.edu</email></para> + </listitem> + + <listitem> + <para>Goran Hammarback <email>goran@astro.uu.se</email></para> + </listitem> + + <listitem> + <para>Gord Matzigkeit <email>gord@enci.ucalgary.ca</email></para> + </listitem> + + <listitem> + <para>Graham Wheeler <email>gram@cdsec.com</email></para> + </listitem> + + <listitem> + <para>Greg A. Woods <email>woods@zeus.leitch.com</email></para> + </listitem> + + <listitem> + <para>Greg Ansley <email>gja@ansley.com</email></para> + </listitem> + + <listitem> + <para>Greg Troxel <email>gdt@ir.bbn.com</email></para> + </listitem> + + <listitem> + <para>Greg Ungerer <email>gerg@stallion.oz.au</email></para> + </listitem> + + <listitem> + <para>Gregory Bond <email>gnb@itga.com.au</email></para> + </listitem> + + <listitem> + <para>Gregory D. Moncreaff + <email>moncrg@bt340707.res.ray.com</email></para> + </listitem> + + <listitem> + <para>Guy Harris <email>guy@netapp.com</email></para> + </listitem> + + <listitem> + <para>Guy Helmer <email>ghelmer@cs.iastate.edu</email></para> + </listitem> + + <listitem> + <para>HAMADA Naoki <email>hamada@astec.co.jp</email></para> + </listitem> + + <listitem> + <para>HONDA Yasuhiro + <email>honda@kashio.info.mie-u.ac.jp</email></para> + </listitem> + + <listitem> + <para>HOSOBUCHI Noriyuki <email>hoso@buchi.tama.or.jp</email></para> + </listitem> + + <listitem> + <para>Hannu Savolainen <email>hannu@voxware.pp.fi</email></para> + </listitem> + + <listitem> + <para>Hans Huebner <email>hans@artcom.de</email></para> + </listitem> + + <listitem> + <para>Hans Petter Bieker <email>zerium@webindex.no</email></para> + </listitem> + + <listitem> + <para>Hans Zuidam <email>hans@brandinnovators.com</email></para> + </listitem> + + <listitem> + <para>Harlan Stenn <email>Harlan.Stenn@pfcs.com</email></para> + </listitem> + + <listitem> + <para>Harold Barker <email>hbarker@dsms.com</email></para> + </listitem> + + <listitem> + <para>Havard Eidnes + <email>Havard.Eidnes@runit.sintef.no</email></para> + </listitem> + + <listitem> + <para>Heikki Suonsivu <email>hsu@cs.hut.fi</email></para> + </listitem> + + <listitem> + <para>Heiko W. Rupp <email>unknown</email></para> + </listitem> + + <listitem> + <para>Helmut F. Wirth <email>hfwirth@ping.at</email></para> + </listitem> + + <listitem> + <para>Henrik Vestergaard Draboel + <email>hvd@terry.ping.dk</email></para> + </listitem> + + <listitem> + <para>Herb Peyerl <email>hpeyerl@NetBSD.org</email></para> + </listitem> + + <listitem> + <para>Hideaki Ohmon <email>ohmon@tom.sfc.keio.ac.jp</email></para> + </listitem> + + <listitem> + <para>Hidekazu Kuroki <email>hidekazu@cs.titech.ac.jp</email></para> + </listitem> + + <listitem> + <para>Hideki Yamamoto <email>hyama@acm.org</email></para> + </listitem> + + <listitem> + <para>Hidetoshi Shimokawa + <email>simokawa@sat.t.u-tokyo.ac.jp</email></para> + </listitem> + + <listitem> + <para>Hideyuki Suzuki + <email>hideyuki@sat.t.u-tokyo.ac.jp</email></para> + </listitem> + + <listitem> + <para>Hirayama Issei <email>iss@mail.wbs.ne.jp</email></para> + </listitem> + + <listitem> + <para>Hiroaki Sakai <email>sakai@miya.ee.kagu.sut.ac.jp</email></para> + </listitem> + + <listitem> + <para>Hiroharu Tamaru <email>tamaru@ap.t.u-tokyo.ac.jp</email></para> + </listitem> + + <listitem> + <para>Hironori Ikura <email>hikura@kaisei.org</email></para> + </listitem> + + <listitem> + <para>Hiroshi Nishikawa <email>nis@pluto.dti.ne.jp</email></para> + </listitem> + + <listitem> + <para>Hiroya Tsubakimoto <email>unknown</email></para> + </listitem> + + <listitem> + <para>Hiroyuki NAKAJI + <email>nakaji@zeisei3.dpri.kyoto-u.ac.jp</email></para> + </listitem> + + <listitem> + <para>Holger Veit <email>Holger.Veit@gmd.de</email></para> + </listitem> + + <listitem> + <para>Holm Tiffe <email>holm@geophysik.tu-freiberg.de</email></para> + </listitem> + + <listitem> + <para>Horance Chou + <email>horance@freedom.ie.cycu.edu.tw</email></para> + </listitem> + + <listitem> + <para>Horihiro Kumagaio <email>kuma@jp.freebsd.org</email></para> + </listitem> + + <listitem> + <para>Horikawa Kazuo <email>k-horik@mail.yk.rim.or.jp</email></para> + </listitem> + + <listitem> + <para>Hr.Ladavac <email>lada@ws2301.gud.siemens.co.at</email></para> + </listitem> + + <listitem> + <para>Hubert Feyrer <email>hubertf@NetBSD.ORG</email></para> + </listitem> + + <listitem> + <para>Hugh F. Mahon <email>hugh@nsmdserv.cnd.hp.com</email></para> + </listitem> + + <listitem> + <para>Hugh Mahon <email>h_mahon@fc.hp.com</email></para> + </listitem> + + <listitem> + <para>Hung-Chi Chu <email>hcchu@r350.ee.ntu.edu.tw</email></para> + </listitem> + + <listitem> + <para>IMAI Takeshi <email>take-i@ceres.dti.ne.jp</email></para> + </listitem> + + <listitem> + <para>IMAMURA Tomoaki + <email>tomoak-i@is.aist-nara.ac.jp</email></para> + </listitem> + + <listitem> + <para>Ian Dowse <email>iedowse@maths.tcd.ie</email></para> + </listitem> + + <listitem> + <para>Ian Holland <email>ianh@tortuga.com.au</email></para> + </listitem> + + <listitem> + <para>Ian Struble <email>ian@broken.net</email></para> + </listitem> + + <listitem> + <para>Ian Vaudrey <email>i.vaudrey@bigfoot.com</email></para> + </listitem> + + <listitem> + <para>Igor Khasilev <email>igor@jabber.paco.odessa.ua</email></para> + </listitem> + + <listitem> + <para>Igor Roshchin <email>str@giganda.komkon.org</email></para> + </listitem> + + <listitem> + <para>Igor Sviridov <email>siac@ua.net</email></para> + </listitem> + + <listitem> + <para>Igor Vinokurov <email>igor@zynaps.ru</email></para> + </listitem> + + <listitem> + <para>Ikuo Nakagawa <email>ikuo@isl.intec.co.jp</email></para> + </listitem> + + <listitem> + <para>Ilya V. Komarov <email>mur@lynx.ru</email></para> + </listitem> + + <listitem> + <para>Issei Suzuki <email>issei@jp.FreeBSD.org</email></para> + </listitem> + + <listitem> + <para>Itsuro Saito <email>saito@miv.t.u-tokyo.ac.jp</email></para> + </listitem> + + <listitem> + <para>J. Bryant <email>jbryant@argus.flash.net</email></para> + </listitem> + + <listitem> + <para>J. David Lowe <email>lowe@saturn5.com</email></para> + </listitem> + + <listitem> + <para>J. Han <email>hjh@best.com</email></para> + </listitem> + + <listitem> + <para>J. Hawk <email>jhawk@MIT.EDU</email></para> + </listitem> + + <listitem> + <para>J.T. Conklin <email>jtc@cygnus.com</email></para> + </listitem> + + <listitem> + <para>J.T. Jang <email>keith@email.gcn.net.tw</email></para> + </listitem> + + <listitem> + <para>Jack <email>jack@zeus.xtalwind.net</email></para> + </listitem> + + <listitem> + <para>Jacob Bohn Lorensen <email>jacob@jblhome.ping.mk</email></para> + </listitem> + + <listitem> + <para>Jagane D Sundar <email>jagane@netcom.com</email></para> + </listitem> + + <listitem> + <para>Jake Hamby <email>jehamby@lightside.com</email></para> + </listitem> + + <listitem> + <para>James Clark <email>jjc@jclark.com</email></para> + </listitem> + + <listitem> + <para>James D. Stewart <email>jds@c4systm.com</email></para> + </listitem> + + <listitem> + <para>James Jegers <email>jimj@miller.cs.uwm.edu</email></para> + </listitem> + + <listitem> + <para>James Raynard + <email>fhackers@jraynard.demon.co.uk</email></para> + </listitem> + + <listitem> + <para>James T. Liu <email>jtliu@phlebas.rockefeller.edu</email></para> + </listitem> + + <listitem> + <para>James da Silva <email>jds@cs.umd.edu</email></para> + </listitem> + + <listitem> + <para>Jan Conard + <email>charly@fachschaften.tu-muenchen.de</email></para> + </listitem> + + <listitem> + <para>Jan Koum <email>jkb@FreeBSD.org</email></para> + </listitem> + + <listitem> + <para>Janick Taillandier + <email>Janick.Taillandier@ratp.fr</email></para> + </listitem> + + <listitem> + <para>Janusz Kokot <email>janek@gaja.ipan.lublin.pl</email></para> + </listitem> + + <listitem> + <para>Jarle Greipsland <email>jarle@idt.unit.no</email></para> + </listitem> + + <listitem> + <para>Jason Garman <email>init@risen.org</email></para> + </listitem> + + <listitem> + <para>Jason Thorpe <email>thorpej@NetBSD.org</email></para> + </listitem> + + <listitem> + <para>Jason Wright <email>jason@OpenBSD.org</email></para> + </listitem> + + <listitem> + <para>Jason Young + <email>doogie@forbidden-donut.anet-stl.com</email></para> + </listitem> + + <listitem> + <para>Javier Martin Rueda <email>jmrueda@diatel.upm.es</email></para> + </listitem> + + <listitem> + <para>Jay Fenlason <email>hack@datacube.com</email></para> + </listitem> + + <listitem> + <para>Jaye Mathisen <email>mrcpu@cdsnet.net</email></para> + </listitem> + + <listitem> + <para>Jeff Bartig <email>jeffb@doit.wisc.edu</email></para> + </listitem> + + <listitem> + <para>Jeff Forys <email>jeff@forys.cranbury.nj.us</email></para> + </listitem> + + <listitem> + <para>Jeff Kletsky <email>Jeff@Wagsky.com</email></para> + </listitem> + + <listitem> + <para>Jeffrey Evans <email>evans@scnc.k12.mi.us</email></para> + </listitem> + + <listitem> + <para>Jeffrey Wheat <email>jeff@cetlink.net</email></para> + </listitem> + + <listitem> + <para>Jens Schweikhardt + <email>schweikh@ito.uni-stuttgart.de</email></para> + </listitem> + + <listitem> + <para>Jeremy Allison <email>jallison@whistle.com</email></para> + </listitem> + + <listitem> + <para>Jeremy Chatfield <email>jdc@xinside.com</email></para> + </listitem> + + <listitem> + <para>Jeremy Lea <email>reg@shale.csir.co.za</email></para> + </listitem> + + <listitem> + <para>Jeremy Prior <email>unknown</email></para> + </listitem> + + <listitem> + <para>Jeroen Ruigrok/Asmodai <email>asmodai@wxs.nl</email></para> + </listitem> + + <listitem> + <para>Jesse Rosenstock <email>jmr@ugcs.caltech.edu</email></para> + </listitem> + + <listitem> + <para>Jian-Da Li <email>jdli@csie.nctu.edu.tw</email></para> + </listitem> + + <listitem> + <para>Jim Babb <email>babb@FreeBSD.org</email></para> + </listitem> + + <listitem> + <para>Jim Binkley <email>jrb@cs.pdx.edu</email></para> + </listitem> + + <listitem> + <para>Jim Carroll <email>jim@carroll.com</email></para> + </listitem> + + <listitem> + <para>Jim Flowers <email>jflowers@ezo.net</email></para> + </listitem> + + <listitem> + <para>Jim Leppek <email>jleppek@harris.com</email></para> + </listitem> + + <listitem> + <para>Jim Lowe <email>james@cs.uwm.edu</email></para> + </listitem> + + <listitem> + <para>Jim Mattson <email>jmattson@sonic.net</email></para> + </listitem> + + <listitem> + <para>Jim Mercer <email>jim@komodo.reptiles.org</email></para> + </listitem> + + <listitem> + <para>Jim Mock <email>jim@phrantic.phear.net</email></para> + </listitem> + + <listitem> + <para>Jim Wilson <email>wilson@moria.cygnus.com</email></para> + </listitem> + + <listitem> + <para>Jimbo Bahooli + <email>griffin@blackhole.iceworld.org</email></para> + </listitem> + + <listitem> + <para>Jin Guojun <email>jin@george.lbl.gov</email></para> + </listitem> + + <listitem> + <para>Joachim Kuebart <email>unknown</email></para> + </listitem> + + <listitem> + <para>Joao Carlos Mendes Luis <email>jonny@jonny.eng.br</email></para> + </listitem> + + <listitem> + <para>Jochen Pohl <email>jpo.drs@sni.de</email></para> + </listitem> + + <listitem> + <para>Joe "Marcus" Clarke <email>marcus@miami.edu</email></para> + </listitem> + + <listitem> + <para>Joe Abley <email>jabley@clear.co.nz</email></para> + </listitem> + + <listitem> + <para>Joe Jih-Shian Lu <email>jslu@dns.ntu.edu.tw</email></para> + </listitem> + + <listitem> + <para>Joe Orthoefer <email>j_orthoefer@tia.net</email></para> + </listitem> + + <listitem> + <para>Joe Traister <email>traister@mojozone.org</email></para> + </listitem> + + <listitem> + <para>Joel Faedi <email>Joel.Faedi@esial.u-nancy.fr</email></para> + </listitem> + + <listitem> + <para>Joel Ray Holveck <email>joelh@gnu.org</email></para> + </listitem> + + <listitem> + <para>Joel Sutton <email>sutton@aardvark.apana.org.au</email></para> + </listitem> + + <listitem> + <para>Johan Granlund <email>johan@granlund.nu</email></para> + </listitem> + + <listitem> + <para>Johan Karlsson <email>k@numeri.campus.luth.se</email></para> + </listitem> + + <listitem> + <para>Johan Larsson <email>johan@moon.campus.luth.se</email></para> + </listitem> + + <listitem> + <para>Johann Tonsing <email>jtonsing@mikom.csir.co.za</email></para> + </listitem> + + <listitem> + <para>Johannes Helander <email>unknown</email></para> + </listitem> + + <listitem> + <para>Johannes Stille <email>unknown</email></para> + </listitem> + + <listitem> + <para>John Baldwin <email>jobaldwi@vt.edu</email></para> + </listitem> + + <listitem> + <para>John Beckett <email>jbeckett@southern.edu</email></para> + </listitem> + + <listitem> + <para>John Beukema <email>jbeukema@hk.super.net</email></para> + </listitem> + + <listitem> + <para>John Brezak <email>unknown</email></para> + </listitem> + + <listitem> + <para>John Capo <email>jc@irbs.com</email></para> + </listitem> + + <listitem> + <para>John F. Woods <email>jfw@jfwhome.funhouse.com</email></para> + </listitem> + + <listitem> + <para>John Goerzen + <email>jgoerzen@alexanderwohl.complete.org</email></para> + </listitem> + + <listitem> + <para>John Hay <email>jhay@mikom.csir.co.za</email></para> + </listitem> + + <listitem> + <para>John Heidemann <email>johnh@isi.edu</email></para> + </listitem> + + <listitem> + <para>John Hood <email>cgull@owl.org</email></para> + </listitem> + + <listitem> + <para>John Kohl <email>unknown</email></para> + </listitem> + + <listitem> + <para>John Lind <email>john@starfire.mn.org</email></para> + </listitem> + + <listitem> + <para>John Mackin <email>john@physiol.su.oz.au</email></para> + </listitem> + + <listitem> + <para>John P <email>johnp@lodgenet.com</email></para> + </listitem> + + <listitem> + <para>John Perry <email>perry@vishnu.alias.net</email></para> + </listitem> + + <listitem> + <para>John Preisler <email>john@vapornet.com</email></para> + </listitem> + + <listitem> + <para>John Rochester <email>jr@cs.mun.ca</email></para> + </listitem> + + <listitem> + <para>John Sadler <email>john_sadler@alum.mit.edu</email></para> + </listitem> + + <listitem> + <para>John Saunders <email>john@pacer.nlc.net.au</email></para> + </listitem> + + <listitem> + <para>John W. DeBoskey <email>jwd@unx.sas.com</email></para> + </listitem> + + <listitem> + <para>John Wehle <email>john@feith.com</email></para> + </listitem> + + <listitem> + <para>John Woods <email>jfw@eddie.mit.edu</email></para> + </listitem> + + <listitem> + <para>Jon Morgan <email>morgan@terminus.trailblazer.com</email></para> + </listitem> + + <listitem> + <para>Jonathan H N Chin <email>jc254@newton.cam.ac.uk</email></para> + </listitem> + + <listitem> + <para>Jonathan Hanna + <email>jh@pc-21490.bc.rogers.wave.ca</email></para> + </listitem> + + <listitem> + <para>Jorge Goncalves <email>j@bug.fe.up.pt</email></para> + </listitem> + + <listitem> + <para>Jorge M. Goncalves <email>ee96199@tom.fe.up.pt</email></para> + </listitem> + + <listitem> + <para>Jos Backus <email>jbackus@plex.nl</email></para> + </listitem> + + <listitem> + <para>Jose M. Alcaide <email>jose@we.lc.ehu.es</email></para> + </listitem> + + <listitem> + <para>Josef Grosch + <email>jgrosch@superior.mooseriver.com</email></para> + </listitem> + + <listitem> + <para>Josef Karthauser <email>joe@uk.freebsd.org</email></para> + </listitem> + + <listitem> + <para>Joseph Stein <email>joes@seaport.net</email></para> + </listitem> + + <listitem> + <para>Josh Gilliam <email>josh@quick.net</email></para> + </listitem> + + <listitem> + <para>Josh Tiefenbach <email>josh@ican.net</email></para> + </listitem> + + <listitem> + <para>Juergen Lock <email>nox@jelal.hb.north.de</email></para> + </listitem> + + <listitem> + <para>Juha Inkari <email>inkari@cc.hut.fi</email></para> + </listitem> + + <listitem> + <para>Jukka A. Ukkonen <email>jua@iki.fi</email></para> + </listitem> + + <listitem> + <para>Julian Assange <email>proff@suburbia.net</email></para> + </listitem> + + <listitem> + <para>Julian Coleman <email>j.d.coleman@ncl.ac.uk</email></para> + </listitem> + + <listitem> + <para>Julian H. Stacey <email>jhs@freebsd.org</email></para> + </listitem> + + <listitem> + <para>Julian Jenkins <email>kaveman@magna.com.au</email></para> + </listitem> + + <listitem> + <para>Junichi Satoh <email>junichi@jp.freebsd.org</email></para> + </listitem> + + <listitem> + <para>Junji SAKAI <email>sakai@jp.freebsd.org</email></para> + </listitem> + + <listitem> + <para>Junya WATANABE <email>junya-w@remus.dti.ne.jp</email></para> + </listitem> + + <listitem> + <para>K.Higashino <email>a00303@cc.hc.keio.ac.jp</email></para> + </listitem> + + <listitem> + <para>KUNISHIMA Takeo <email>kunishi@c.oka-pu.ac.jp</email></para> + </listitem> + + <listitem> + <para>Kai Vorma <email>vode@snakemail.hut.fi</email></para> + </listitem> + + <listitem> + <para>Kaleb S. Keithley <email>kaleb@ics.com</email></para> + </listitem> + + <listitem> + <para>Kaneda Hiloshi <email>vanitas@ma3.seikyou.ne.jp</email></para> + </listitem> + + <listitem> + <para>Kapil Chowksey <email>kchowksey@hss.hns.com</email></para> + </listitem> + + <listitem> + <para>Karl Denninger <email>karl@mcs.com</email></para> + </listitem> + + <listitem> + <para>Karl Dietz <email>Karl.Dietz@triplan.com</email></para> + </listitem> + + <listitem> + <para>Karl Lehenbauer <email>karl@NeoSoft.com</email></para> + </listitem> + + <listitem> + <para>Kato Takenori + <email>kato@eclogite.eps.nagoya-u.ac.jp</email></para> + </listitem> + + <listitem> + <para>Kauzo Horikawa <email>h-horik@yk.rim.or.jp</email></para> + </listitem> + + <listitem> + <para>Kawanobe Koh <email>kawanobe@st.rim.or.jp</email></para> + </listitem> + + <listitem> + <para>Kazuhiko Kiriyama <email>kiri@kiri.toba-cmt.ac.jp</email></para> + </listitem> + + <listitem> + <para>Kazuo Horikawa <email>horikawa@jp.FreeBSD.org</email></para> + </listitem> + + <listitem> + <para>Kees Jan Koster <email>kjk1@ukc.ac.uk</email></para> + </listitem> + + <listitem> + <para>Keith Bostic <email>bostic@bostic.com</email></para> + </listitem> + + <listitem> + <para>Keith E. Walker <email>unknown</email></para> + </listitem> + + <listitem> + <para>Keith Moore <email>unknown</email></para> + </listitem> + + <listitem> + <para>Keith Sklower <email>unknown</email></para> + </listitem> + + <listitem> + <para>Ken Hornstein <email>unknown</email></para> + </listitem> + + <listitem> + <para>Ken Key <email>key@cs.utk.edu</email></para> + </listitem> + + <listitem> + <para>Ken Mayer <email>kmayer@freegate.com</email></para> + </listitem> + + <listitem> + <para>Kenji Saito <email>marukun@mx2.nisiq.net</email></para> + </listitem> + + <listitem> + <para>Kenji Tomita <email>tommyk@da2.so-net.or.jp</email></para> + </listitem> + + <listitem> + <para>Kenneth Furge <email>kenneth.furge@us.endress.com</email></para> + </listitem> + + <listitem> + <para>Kenneth Monville <email>desmo@bandwidth.org</email></para> + </listitem> + + <listitem> + <para>Kenneth R. Westerback <email>krw@tcn.net</email></para> + </listitem> + + <listitem> + <para>Kenneth Stailey <email>kstailey@gnu.ai.mit.edu</email></para> + </listitem> + + <listitem> + <para>Kent Talarico <email>kent@shipwreck.tsoft.net</email></para> + </listitem> + + <listitem> + <para>Kent Vander Velden <email>graphix@iastate.edu</email></para> + </listitem> + + <listitem> + <para>Kentaro Inagaki <email>JBD01226@niftyserve.ne.jp</email></para> + </listitem> + + <listitem> + <para>Kevin Bracey <email>kbracey@art.acorn.co.uk</email></para> + </listitem> + + <listitem> + <para>Kevin Day <email>toasty@dragondata.com</email></para> + </listitem> + + <listitem> + <para>Kevin Lahey <email>kml@nas.nasa.gov</email></para> + </listitem> + + <listitem> + <para>Kevin Street <email>street@iname.com</email></para> + </listitem> + + <listitem> + <para>Kevin Van Maren <email>vanmaren@fast.cs.utah.edu</email></para> + </listitem> + + <listitem> + <para>Kiroh HARADA <email>kiroh@kh.rim.or.jp</email></para> + </listitem> + + <listitem> + <para>Klaus Klein <email>kleink@layla.inka.de</email></para> + </listitem> + + <listitem> + <para>Klaus-J. Wolf <email>Yanestra@t-online.de</email></para> + </listitem> + + <listitem> + <para>Koichi Sato <email>copan@ppp.fastnet.or.jp</email></para> + </listitem> + + <listitem> + <para>Kostya Lukin <email>lukin@okbmei.msk.su</email></para> + </listitem> + + <listitem> + <para>Kouichi Hirabayashi <email>kh@mogami-wire.co.jp</email></para> + </listitem> + + <listitem> + <para>Kurt D. Zeilenga <email>Kurt@Boolean.NET</email></para> + </listitem> + + <listitem> + <para>Kurt Olsen <email>kurto@tiny.mcs.usu.edu</email></para> + </listitem> + + <listitem> + <para>L. Jonas Olsson + <email>ljo@ljo-slip.DIALIN.CWRU.Edu</email></para> + </listitem> + + <listitem> + <para>Lars Köller + <email>Lars.Koeller@Uni-Bielefeld.DE</email></para> + </listitem> + + <listitem> + <para>Larry Altneu <email>larry@ALR.COM</email></para> + </listitem> + + <listitem> + <para>Laurence Lopez <email>lopez@mv.mv.com</email></para> + </listitem> + + <listitem> + <para>Lee Cremeans <email>lcremean@tidalwave.net</email></para> + </listitem> + + <listitem> + <para>Liang Tai-hwa + <email>avatar@www.mmlab.cse.yzu.edu.tw</email></para> + </listitem> + + <listitem> + <para>Lon Willett <email>lon%softt.uucp@math.utah.edu</email></para> + </listitem> + + <listitem> + <para>Louis A. Mamakos <email>louie@TransSys.COM</email></para> + </listitem> + + <listitem> + <para>Louis Mamakos <email>loiue@TransSys.com</email></para> + </listitem> + + <listitem> + <para>Lucas James <email>Lucas.James@ldjpc.apana.org.au</email></para> + </listitem> + + <listitem> + <para>Lyndon Nerenberg <email>lyndon@orthanc.com</email></para> + </listitem> + + <listitem> + <para>M.C. Wong <email>unknown</email></para> + </listitem> + + <listitem> + <para>MANTANI Nobutaka <email>nobutaka@nobutaka.com</email></para> + </listitem> + + <listitem> + <para>MIHIRA Sanpei Yoshiro <email>sanpei@sanpei.org</email></para> + </listitem> + + <listitem> + <para>MITA Yoshio <email>mita@jp.FreeBSD.ORG</email></para> + </listitem> + + <listitem> + <para>MITSUNAGA Noriaki + <email>mitchy@er.ams.eng.osaka-u.ac.jp</email></para> + </listitem> + + <listitem> + <para>MOROHOSHI Akihiko <email>moro@race.u-tokyo.ac.jp</email></para> + </listitem> + + <listitem> + <para>Magnus Enbom <email>dot@tinto.campus.luth.se</email></para> + </listitem> + + <listitem> + <para>Mahesh Neelakanta <email>mahesh@gcomm.com</email></para> + </listitem> + + <listitem> + <para>Makoto MATSUSHITA <email>matusita@jp.freebsd.org</email></para> + </listitem> + + <listitem> + <para>Makoto WATANABE + <email>watanabe@zlab.phys.nagoya-u.ac.jp</email></para> + </listitem> + + <listitem> + <para>Malte Lance <email>malte.lance@gmx.net</email></para> + </listitem> + + <listitem> + <para>Manu Iyengar + <email>iyengar@grunthos.pscwa.psca.com</email></para> + </listitem> + + <listitem> + <para>Marc Frajola <email>marc@dev.com</email></para> + </listitem> + + <listitem> + <para>Marc Ramirez <email>mrami@mramirez.sy.yale.edu</email></para> + </listitem> + + <listitem> + <para>Marc Slemko <email>marcs@znep.com</email></para> + </listitem> + + <listitem> + <para>Marc van Kempen <email>wmbfmk@urc.tue.nl</email></para> + </listitem> + + <listitem> + <para>Marcel Moolenaar <email>marcel@scc.nl</email></para> + </listitem> + + <listitem> + <para>Mario Sergio Fujikawa Ferreira + <email>lioux@gns.com.br</email></para> + </listitem> + + <listitem> + <para>Mark Andrews <email>unknown</email></para> + </listitem> + + <listitem> + <para>Mark Cammidge <email>mark@gmtunx.ee.uct.ac.za</email></para> + </listitem> + + <listitem> + <para>Mark Diekhans <email>markd@grizzly.com</email></para> + </listitem> + + <listitem> + <para>Mark Huizer <email>xaa@stack.nl</email></para> + </listitem> + + <listitem> + <para>Mark J. Taylor <email>mtaylor@cybernet.com</email></para> + </listitem> + + <listitem> + <para>Mark Krentel <email>krentel@rice.edu</email></para> + </listitem> + + <listitem> + <para>Mark Mayo <email>markm@vmunix.com</email></para> + </listitem> + + <listitem> + <para>Mark Thompson <email>thompson@tgsoft.com</email></para> + </listitem> + + <listitem> + <para>Mark Tinguely <email>tinguely@plains.nodak.edu</email></para> + </listitem> + + <listitem> + <para>Mark Treacy <email>unknown</email></para> + </listitem> + + <listitem> + <para>Mark Valentine <email>mark@linus.demon.co.uk</email></para> + </listitem> + + <listitem> + <para>Martin Birgmeier</para> + </listitem> + + <listitem> + <para>Martin Ibert <email>mib@ppe.bb-data.de</email></para> + </listitem> + + <listitem> + <para>Martin Kammerhofer <email>dada@sbox.tu-graz.ac.at</email></para> + </listitem> + + <listitem> + <para>Martin Renters <email>martin@tdc.on.ca</email></para> + </listitem> + + <listitem> + <para>Martti Kuparinen + <email>erakupa@kk.etx.ericsson.se</email></para> + </listitem> + + <listitem> + <para>Masachika ISHIZUKA + <email>ishizuka@isis.min.ntt.jp</email></para> + </listitem> + + <listitem> + <para>Mas.TAKEMURA <email>unknown</email></para> + </listitem> + + <listitem> + <para>Masafumi NAKANE <email>max@wide.ad.jp</email></para> + </listitem> + + <listitem> + <para>Masahiro Sekiguchi + <email>seki@sysrap.cs.fujitsu.co.jp</email></para> + </listitem> + + <listitem> + <para>Masanobu Saitoh <email>msaitoh@spa.is.uec.ac.jp</email></para> + </listitem> + + <listitem> + <para>Masanori Kanaoka <email>kana@saijo.mke.mei.co.jp</email></para> + </listitem> + + <listitem> + <para>Masanori Kiriake <email>seiken@ncs.co.jp</email></para> + </listitem> + + <listitem> + <para>Masatoshi TAMURA + <email>tamrin@shinzan.kuee.kyoto-u.ac.jp</email></para> + </listitem> + + <listitem> + <para>Mats Lofkvist <email>mal@algonet.se</email></para> + </listitem> + + <listitem> + <para>Matt Bartley <email>mbartley@lear35.cytex.com</email></para> + </listitem> + + <listitem> + <para>Matt Thomas <email>matt@3am-software.com</email></para> + </listitem> + + <listitem> + <para>Matt White <email>mwhite+@CMU.EDU</email></para> + </listitem> + + <listitem> + <para>Matthew C. Mead <email>mmead@Glock.COM</email></para> + </listitem> + + <listitem> + <para>Matthew Cashdollar <email>mattc@rfcnet.com</email></para> + </listitem> + + <listitem> + <para>Matthew Flatt <email>mflatt@cs.rice.edu</email></para> + </listitem> + + <listitem> + <para>Matthew Fuller <email>fullermd@futuresouth.com</email></para> + </listitem> + + <listitem> + <para>Matthew N. Dodd <email>winter@jurai.net</email></para> + </listitem> + + <listitem> + <para>Matthew Stein <email>matt@bdd.net</email></para> + </listitem> + + <listitem> + <para>Matthias Pfaller <email>leo@dachau.marco.de</email></para> + </listitem> + + <listitem> + <para>Matthias Scheler <email>tron@netbsd.org</email></para> + </listitem> + + <listitem> + <para>Mattias Gronlund + <email>Mattias.Gronlund@sa.erisoft.se</email></para> + </listitem> + + <listitem> + <para>Mattias Pantzare <email>pantzer@ludd.luth.se</email></para> + </listitem> + + <listitem> + <para>Maurice Castro + <email>maurice@planet.serc.rmit.edu.au</email></para> + </listitem> + + <listitem> + <para>Max Euston <email>meuston@jmrodgers.com</email></para> + </listitem> + + <listitem> + <para>Max Khon <email>fjoe@husky.iclub.nsu.ru</email></para> + </listitem> + + <listitem> + <para>Maxim Bolotin <email>max@rsu.ru</email></para> + </listitem> + + <listitem> + <para>Micha Class + <email>michael_class@hpbbse.bbn.hp.com</email></para> + </listitem> + + <listitem> + <para>Michael Butler <email>imb@scgt.oz.au</email></para> + </listitem> + + <listitem> + <para>Michael Butschky <email>butsch@computi.erols.com</email></para> + </listitem> + + <listitem> + <para>Michael Clay <email>mclay@weareb.org</email></para> + </listitem> + + <listitem> + <para>Michael Elbel <email>me@FreeBSD.ORG</email></para> + </listitem> + + <listitem> + <para>Michael Galassi <email>nerd@percival.rain.com</email></para> + </listitem> + + <listitem> + <para>Michael Hancock <email>michaelh@cet.co.jp</email></para> + </listitem> + + <listitem> + <para>Michael Hohmuth <email>hohmuth@inf.tu-dresden.de</email></para> + </listitem> + + <listitem> + <para>Michael Perlman <email>canuck@caam.rice.edu</email></para> + </listitem> + + <listitem> + <para>Michael Petry <email>petry@netwolf.NetMasters.com</email></para> + </listitem> + + <listitem> + <para>Michael Reifenberger <email>root@totum.plaut.de</email></para> + </listitem> + + <listitem> + <para>Michael Searle <email>searle@longacre.demon.co.uk</email></para> + </listitem> + + <listitem> + <para>Michal Listos <email>mcl@Amnesiac.123.org</email></para> + </listitem> + + <listitem> + <para>Michio Karl Jinbo + <email>karl@marcer.nagaokaut.ac.jp</email></para> + </listitem> + + <listitem> + <para>Miguel Angel Sagreras + <email>msagre@cactus.fi.uba.ar</email></para> + </listitem> + + <listitem> + <para>Mihoko Tanaka <email>m_tonaka@pa.yokogawa.co.jp</email></para> + </listitem> + + <listitem> + <para>Mika Nystrom <email>mika@cs.caltech.edu</email></para> + </listitem> + + <listitem> + <para>Mikael Hybsch <email>micke@dynas.se</email></para> + </listitem> + + <listitem> + <para>Mikael Karpberg + <email>karpen@ocean.campus.luth.se</email></para> + </listitem> + + <listitem> + <para>Mike Del <email>repenting@hotmail.com</email></para> + </listitem> + + <listitem> + <para>Mike Durian <email>durian@plutotech.com</email></para> + </listitem> + + <listitem> + <para>Mike Durkin <email>mdurkin@tsoft.sf-bay.org</email></para> + </listitem> + + <listitem> + <para>Mike E. Matsnev <email>mike@azog.cs.msu.su</email></para> + </listitem> + + <listitem> + <para>Mike Evans <email>mevans@candle.com</email></para> + </listitem> + + <listitem> + <para>Mike Grupenhoff <email>kashmir@umiacs.umd.edu</email></para> + </listitem> + + <listitem> + <para>Mike Hibler <email>mike@marker.cs.utah.edu</email></para> + </listitem> + + <listitem> + <para>Mike Karels <email>unknown</email></para> + </listitem> + + <listitem> + <para>Mike McGaughey <email>mmcg@cs.monash.edu.au</email></para> + </listitem> + + <listitem> + <para>Mike Meyer <email>mwm@shiva.the-park.com</email></para> + </listitem> + + <listitem> + <para>Mike Mitchell <email>mitchell@ref.tfs.com</email></para> + </listitem> + + <listitem> + <para>Mike Murphy <email>mrm@alpharel.com</email></para> + </listitem> + + <listitem> + <para>Mike Peck <email>mike@binghamton.edu</email></para> + </listitem> + + <listitem> + <para>Mike Spengler <email>mks@msc.edu</email></para> + </listitem> + + <listitem> + <para>Mikhail A. Sokolov <email>mishania@demos.su</email></para> + </listitem> + + <listitem> + <para>Mikhail Teterin <email>mi@aldan.ziplink.net</email></para> + </listitem> + + <listitem> + <para>Ming-I Hseh <email>PA@FreeBSD.ee.Ntu.edu.TW</email></para> + </listitem> + + <listitem> + <para>Mitsuru IWASAKI <email>iwasaki@pc.jaring.my</email></para> + </listitem> + + <listitem> + <para>Monte Mitzelfelt <email>monte@gonefishing.org</email></para> + </listitem> + + <listitem> + <para>Morgan Davis <email>root@io.cts.com</email></para> + </listitem> + + <listitem> + <para>Mostyn Lewis <email>mostyn@mrl.com</email></para> + </listitem> + + <listitem> + <para>Motoyuki Kasahara <email>m-kasahr@sra.co.jp</email></para> + </listitem> + + <listitem> + <para>Motoyuki Konno <email>motoyuki@snipe.rim.or.jp</email></para> + </listitem> + + <listitem> + <para>Munechika Sumikawa <email>sumikawa@kame.net</email></para> + </listitem> + + <listitem> + <para>Murray Stokely <email>murray@cdrom.com</email></para> + </listitem> + + <listitem> + <para>N.G.Smith <email>ngs@sesame.hensa.ac.uk</email></para> + </listitem> + + <listitem> + <para>NAGAO Tadaaki <email>nagao@cs.titech.ac.jp</email></para> + </listitem> + + <listitem> + <para>NAKAJI Hiroyuki + <email>nakaji@zeisei.dpri.kyoto-u.ac.jp</email></para> + </listitem> + + <listitem> + <para>NAKAMURA Kazushi <email>nkazushi@highway.or.jp</email></para> + </listitem> + + <listitem> + <para>NAKAMURA Motonori + <email>motonori@econ.kyoto-u.ac.jp</email></para> + </listitem> + + <listitem> + <para>NIIMI Satoshi <email>sa2c@and.or.jp</email></para> + </listitem> + + <listitem> + <para>NOKUBI Hirotaka <email>h-nokubi@yyy.or.jp</email></para> + </listitem> + + <listitem> + <para>Nadav Eiron <email>nadav@barcode.co.il</email></para> + </listitem> + + <listitem> + <para>Nanbor Wang <email>nw1@cs.wustl.edu</email></para> + </listitem> + + <listitem> + <para>Naofumi Honda + <email>honda@Kururu.math.sci.hokudai.ac.jp</email></para> + </listitem> + + <listitem> + <para>Naoki Hamada <email>nao@tom-yam.or.jp</email></para> + </listitem> + + <listitem> + <para>Narvi <email>narvi@haldjas.folklore.ee</email></para> + </listitem> + + <listitem> + <para>Nathan Dorfman <email>nathan@rtfm.net</email></para> + </listitem> + + <listitem> + <para>Neal Fachan <email>kneel@ishiboo.com</email></para> + </listitem> + + <listitem> + <para>Neil Blakey-Milner <email>nbm@rucus.ru.ac.za</email></para> + </listitem> + + <listitem> + <para>Niall Smart <email>rotel@indigo.ie</email></para> + </listitem> + + <listitem> + <para>Nick Barnes <email>Nick.Barnes@pobox.com</email></para> + </listitem> + + <listitem> + <para>Nick Handel <email>nhandel@NeoSoft.com</email></para> + </listitem> + + <listitem> + <para>Nick Hilliard <email>nick@foobar.org</email></para> + </listitem> + + <listitem> + <para>Nick Sayer <email>nsayer@quack.kfu.com</email></para> + </listitem> + + <listitem> + <para>Nick Williams <email>njw@cs.city.ac.uk</email></para> + </listitem> + + <listitem> + <para>Nickolay N. Dudorov <email>nnd@itfs.nsk.su</email></para> + </listitem> + + <listitem> + <para>Niklas Hallqvist <email>niklas@filippa.appli.se</email></para> + </listitem> + + <listitem> + <para>Nisha Talagala <email>nisha@cs.berkeley.edu</email></para> + </listitem> + + <listitem> + <para>No Name <email>ZW6T-KND@j.asahi-net.or.jp</email></para> + </listitem> + + <listitem> + <para>No Name <email>adrian@virginia.edu</email></para> + </listitem> + + <listitem> + <para>No Name <email>alex@elvisti.kiev.ua</email></para> + </listitem> + + <listitem> + <para>No Name <email>anto@netscape.net</email></para> + </listitem> + + <listitem> + <para>No Name <email>bobson@egg.ics.nitch.ac.jp</email></para> + </listitem> + + <listitem> + <para>No Name <email>bovynf@awe.be</email></para> + </listitem> + + <listitem> + <para>No Name <email>burg@is.ge.com</email></para> + </listitem> + + <listitem> + <para>No Name <email>chris@gnome.co.uk</email></para> + </listitem> + + <listitem> + <para>No Name <email>colsen@usa.net</email></para> + </listitem> + + <listitem> + <para>No Name <email>coredump@nervosa.com</email></para> + </listitem> + + <listitem> + <para>No Name <email>dannyman@arh0300.urh.uiuc.edu</email></para> + </listitem> + + <listitem> + <para>No Name <email>davids@SECNET.COM</email></para> + </listitem> + + <listitem> + <para>No Name <email>derek@free.org</email></para> + </listitem> + + <listitem> + <para>No Name <email>devet@adv.IAEhv.nl</email></para> + </listitem> + + <listitem> + <para>No Name <email>djv@bedford.net</email></para> + </listitem> + + <listitem> + <para>No Name <email>dvv@sprint.net</email></para> + </listitem> + + <listitem> + <para>No Name <email>enami@ba2.so-net.or.jp</email></para> + </listitem> + + <listitem> + <para>No Name <email>flash@eru.tubank.msk.su</email></para> + </listitem> + + <listitem> + <para>No Name <email>flash@hway.ru</email></para> + </listitem> + + <listitem> + <para>No Name <email>fn@pain.csrv.uidaho.edu</email></para> + </listitem> + + <listitem> + <para>No Name <email>gclarkii@netport.neosoft.com</email></para> + </listitem> + + <listitem> + <para>No Name <email>gordon@sheaky.lonestar.org</email></para> + </listitem> + + <listitem> + <para>No Name <email>graaf@iae.nl</email></para> + </listitem> + + <listitem> + <para>No Name <email>greg@greg.rim.or.jp</email></para> + </listitem> + + <listitem> + <para>No Name <email>grossman@cygnus.com</email></para> + </listitem> + + <listitem> + <para>No Name <email>gusw@fub46.zedat.fu-berlin.de</email></para> + </listitem> + + <listitem> + <para>No Name <email>hfir@math.rochester.edu</email></para> + </listitem> + + <listitem> + <para>No Name <email>hnokubi@yyy.or.jp</email></para> + </listitem> + + <listitem> + <para>No Name <email>iaint@css.tuu.utas.edu.au</email></para> + </listitem> + + <listitem> + <para>No Name <email>invis@visi.com</email></para> + </listitem> + + <listitem> + <para>No Name <email>ishisone@sra.co.jp</email></para> + </listitem> + + <listitem> + <para>No Name <email>iverson@lionheart.com</email></para> + </listitem> + + <listitem> + <para>No Name <email>jpt@magic.net</email></para> + </listitem> + + <listitem> + <para>No Name <email>junker@jazz.snu.ac.kr</email></para> + </listitem> + + <listitem> + <para>No Name <email>k-sugyou@ccs.mt.nec.co.jp</email></para> + </listitem> + + <listitem> + <para>No Name <email>kenji@reseau.toyonaka.osaka.jp</email></para> + </listitem> + + <listitem> + <para>No Name <email>kfurge@worldnet.att.net</email></para> + </listitem> + + <listitem> + <para>No Name <email>lh@aus.org</email></para> + </listitem> + + <listitem> + <para>No Name <email>lhecking@nmrc.ucc.ie</email></para> + </listitem> + + <listitem> + <para>No Name <email>mrgreen@mame.mu.oz.au</email></para> + </listitem> + + <listitem> + <para>No Name <email>nakagawa@jp.freebsd.org</email></para> + </listitem> + + <listitem> + <para>No Name <email>ohki@gssm.otsuka.tsukuba.ac.jp</email></para> + </listitem> + + <listitem> + <para>No Name <email>owaki@st.rim.or.jp</email></para> + </listitem> + + <listitem> + <para>No Name <email>pechter@shell.monmouth.com</email></para> + </listitem> + + <listitem> + <para>No Name <email>pete@pelican.pelican.com</email></para> + </listitem> + + <listitem> + <para>No Name <email>pritc003@maroon.tc.umn.edu</email></para> + </listitem> + + <listitem> + <para>No Name <email>risner@stdio.com</email></para> + </listitem> + + <listitem> + <para>No Name <email>roman@rpd.univ.kiev.ua</email></para> + </listitem> + + <listitem> + <para>No Name <email>root@ns2.redline.ru</email></para> + </listitem> + + <listitem> + <para>No Name <email>root@uglabgw.ug.cs.sunysb.edu</email></para> + </listitem> + + <listitem> + <para>No Name <email>stephen.ma@jtec.com.au</email></para> + </listitem> + + <listitem> + <para>No Name <email>sumii@is.s.u-tokyo.ac.jp</email></para> + </listitem> + + <listitem> + <para>No Name <email>takas-su@is.aist-nara.ac.jp</email></para> + </listitem> + + <listitem> + <para>No Name <email>tamone@eig.unige.ch</email></para> + </listitem> + + <listitem> + <para>No Name <email>tjevans@raleigh.ibm.com</email></para> + </listitem> + + <listitem> + <para>No Name <email>tony-o@iij.ad.jp amurai@spec.co.jp</email></para> + </listitem> + + <listitem> + <para>No Name <email>torii@tcd.hitachi.co.jp</email></para> + </listitem> + + <listitem> + <para>No Name <email>uenami@imasy.or.jp</email></para> + </listitem> + + <listitem> + <para>No Name <email>uhlar@netlab.sk</email></para> + </listitem> + + <listitem> + <para>No Name <email>vode@hut.fi</email></para> + </listitem> + + <listitem> + <para>No Name <email>wlloyd@mpd.ca</email></para> + </listitem> + + <listitem> + <para>No Name <email>wlr@furball.wellsfargo.com</email></para> + </listitem> + + <listitem> + <para>No Name <email>wmbfmk@urc.tue.nl</email></para> + </listitem> + + <listitem> + <para>No Name <email>yamagata@nwgpc.kek.jp</email></para> + </listitem> + + <listitem> + <para>No Name <email>ziggy@ryan.org</email></para> + </listitem> + + <listitem> + <para>Nobuhiro Yasutomi <email>nobu@psrc.isac.co.jp</email></para> + </listitem> + + <listitem> + <para>Nobuyuki Koganemaru + <email>kogane@koganemaru.co.jp</email></para> + </listitem> + + <listitem> + <para>Norio Suzuki <email>nosuzuki@e-mail.ne.jp</email></para> + </listitem> + + <listitem> + <para>Noritaka Ishizumi <email>graphite@jp.FreeBSD.ORG</email></para> + </listitem> + + <listitem> + <para>Noriyuki Soda <email>soda@sra.co.jp</email></para> + </listitem> + + <listitem> + <para>Olaf Wagner <email>wagner@luthien.in-berlin.de</email></para> + </listitem> + + <listitem> + <para>Oleg Sharoiko <email>os@rsu.ru</email></para> + </listitem> + + <listitem> + <para>Oliver Breuninger <email>ob@seicom.NET</email></para> + </listitem> + + <listitem> + <para>Oliver Friedrichs <email>oliver@secnet.com</email></para> + </listitem> + + <listitem> + <para>Oliver Fromme + <email>oliver.fromme@heim3.tu-clausthal.de</email></para> + </listitem> + + <listitem> + <para>Oliver Laumann + <email>net@informatik.uni-bremen.de</email></para> + </listitem> + + <listitem> + <para>Oliver Oberdorf <email>oly@world.std.com</email></para> + </listitem> + + <listitem> + <para>Olof Johansson <email>offe@ludd.luth.se</email></para> + </listitem> + + <listitem> + <para>Osokin Sergey aka oZZ <email>ozz@freebsd.org.ru</email></para> + </listitem> + + <listitem> + <para>Pace Willisson <email>pace@blitz.com</email></para> + </listitem> + + <listitem> + <para>Paco Rosich <email>rosich@modico.eleinf.uv.es</email></para> + </listitem> + + <listitem> + <para>Palle Girgensohn <email>girgen@partitur.se</email></para> + </listitem> + + <listitem> + <para>Parag Patel <email>parag@cgt.com</email></para> + </listitem> + + <listitem> + <para>Pascal Pederiva <email>pascal@zuo.dec.com</email></para> + </listitem> + + <listitem> + <para>Pasvorn Boonmark <email>boonmark@juniper.net</email></para> + </listitem> + + <listitem> + <para>Patrick Gardella <email>patrick@cre8tivegroup.com</email></para> + </listitem> + + <listitem> + <para>Patrick Hausen <email>unknown</email></para> + </listitem> + + <listitem> + <para>Paul Antonov <email>apg@demos.su</email></para> + </listitem> + + <listitem> + <para>Paul F. Werkowski <email>unknown</email></para> + </listitem> + + <listitem> + <para>Paul Fox <email>pgf@foxharp.boston.ma.us</email></para> + </listitem> + + <listitem> + <para>Paul Koch <email>koch@thehub.com.au</email></para> + </listitem> + + <listitem> + <para>Paul Kranenburg <email>pk@NetBSD.org</email></para> + </listitem> + + <listitem> + <para>Paul Mackerras <email>paulus@cs.anu.edu.au</email></para> + </listitem> + + <listitem> + <para>Paul Popelka <email>paulp@uts.amdahl.com</email></para> + </listitem> + + <listitem> + <para>Paul S. LaFollette, Jr. <email>unknown</email></para> + </listitem> + + <listitem> + <para>Paul Saab <email>paul@mu.org</email></para> + </listitem> + + <listitem> + <para>Paul Sandys <email>myj@nyct.net</email></para> + </listitem> + + <listitem> + <para>Paul T. Root <email>proot@horton.iaces.com</email></para> + </listitem> + + <listitem> + <para>Paul Vixie <email>paul@vix.com</email></para> + </listitem> + + <listitem> + <para>Paulo Menezes <email>paulo@isr.uc.pt</email></para> + </listitem> + + <listitem> + <para>Paulo Menezes <email>pm@dee.uc.pt</email></para> + </listitem> + + <listitem> + <para>Pedro A M Vazquez <email>vazquez@IQM.Unicamp.BR</email></para> + </listitem> + + <listitem> + <para>Pedro Giffuni <email>giffunip@asme.org</email></para> + </listitem> + + <listitem> + <para>Pete Bentley <email>pete@demon.net</email></para> + </listitem> + + <listitem> + <para>Peter Childs <email>pjchilds@imforei.apana.org.au</email></para> + </listitem> + + <listitem> + <para>Peter Cornelius <email>pc@inr.fzk.de</email></para> + </listitem> + + <listitem> + <para>Peter Haight <email>peterh@prognet.com</email></para> + </listitem> + + <listitem> + <para>Peter Jeremy <email>perer.jeremy@alcatel.com.au</email></para> + </listitem> + + <listitem> + <para>Peter M. Chen <email>pmchen@eecs.umich.edu</email></para> + </listitem> + + <listitem> + <para>Peter Much <email>peter@citylink.dinoex.sub.org</email></para> + </listitem> + + <listitem> + <para>Peter Olsson <email>unknown</email></para> + </listitem> + + <listitem> + <para>Peter Philipp <email>pjp@bsd-daemon.net</email></para> + </listitem> + + <listitem> + <para>Peter Stubbs <email>PETERS@staidan.qld.edu.au</email></para> + </listitem> + + <listitem> + <para>Phil Maker <email>pjm@cs.ntu.edu.au</email></para> + </listitem> + + <listitem> + <para>Phil Sutherland + <email>philsuth@mycroft.dialix.oz.au</email></para> + </listitem> + + <listitem> + <para>Phil Taylor <email>phil@zipmail.co.uk</email></para> + </listitem> + + <listitem> + <para>Philip Musumeci <email>philip@rmit.edu.au</email></para> + </listitem> + + <listitem> + <para>Pierre Y. Dampure <email>pierre.dampure@k2c.co.uk</email></para> + </listitem> + + <listitem> + <para>Pius Fischer <email>pius@ienet.com</email></para> + </listitem> + + <listitem> + <para>Pomegranate <email>daver@flag.blackened.net</email></para> + </listitem> + + <listitem> + <para>Powerdog Industries + <email>kevin.ruddy@powerdog.com</email></para> + </listitem> + + <listitem> + <para>R. Kym Horsell</para> + </listitem> + + <listitem> + <para>Rajesh Vaidheeswarran <email>rv@fore.com</email></para> + </listitem> + + <listitem> + <para>Ralf Friedl <email>friedl@informatik.uni-kl.de</email></para> + </listitem> + + <listitem> + <para>Randal S. Masutani <email>randal@comtest.com</email></para> + </listitem> + + <listitem> + <para>Randall Hopper <email>rhh@ct.picker.com</email></para> + </listitem> + + <listitem> + <para>Randall W. Dean <email>rwd@osf.org</email></para> + </listitem> + + <listitem> + <para>Randy Bush <email>rbush@bainbridge.verio.net</email></para> + </listitem> + + <listitem> + <para>Reinier Bezuidenhout + <email>rbezuide@mikom.csir.co.za</email></para> + </listitem> + + <listitem> + <para>Remy Card <email>Remy.Card@masi.ibp.fr</email></para> + </listitem> + + <listitem> + <para>Ricardas Cepas <email>rch@richard.eu.org</email></para> + </listitem> + + <listitem> + <para>Richard Henderson <email>richard@atheist.tamu.edu</email></para> + </listitem> + + <listitem> + <para>Richard Hwang <email>rhwang@bigpanda.com</email></para> + </listitem> + + <listitem> + <para>Richard J Kuhns <email>rjk@watson.grauel.com</email></para> + </listitem> + + <listitem> + <para>Richard M. Neswold + <email>rneswold@drmemory.fnal.gov</email></para> + </listitem> + + <listitem> + <para>Richard Seaman, Jr. <email>dick@tar.com</email></para> + </listitem> + + <listitem> + <para>Richard Stallman <email>rms@gnu.ai.mit.edu</email></para> + </listitem> + + <listitem> + <para>Richard Straka <email>straka@user1.inficad.com</email></para> + </listitem> + + <listitem> + <para>Richard Tobin <email>richard@cogsci.ed.ac.uk</email></para> + </listitem> + + <listitem> + <para>Richard Wackerbarth <email>rkw@Dataplex.NET</email></para> + </listitem> + + <listitem> + <para>Richard Winkel <email>rich@math.missouri.edu</email></para> + </listitem> + + <listitem> + <para>Richard Wiwatowski <email>rjwiwat@adelaide.on.net</email></para> + </listitem> + + <listitem> + <para>Rick Macklem <email>rick@snowhite.cis.uoguelph.ca</email></para> + </listitem> + + <listitem> + <para>Rick Macklin <email>unknown</email></para> + </listitem> + + <listitem> + <para>Rob Austein <email>sra@epilogue.com</email></para> + </listitem> + + <listitem> + <para>Rob Mallory <email>rmallory@qualcomm.com</email></para> + </listitem> + + <listitem> + <para>Rob Snow <email>rsnow@txdirect.net</email></para> + </listitem> + + <listitem> + <para>Robert Crowe <email>bob@speakez.com</email></para> + </listitem> + + <listitem> + <para>Robert D. Thrush <email>rd@phoenix.aii.com</email></para> + </listitem> + + <listitem> + <para>Robert Eckardt + <email>roberte@MEP.Ruhr-Uni-Bochum.de</email></para> + </listitem> + + <listitem> + <para>Robert Sanders <email>rsanders@mindspring.com</email></para> + </listitem> + + <listitem> + <para>Robert Sexton <email>robert@kudra.com</email></para> + </listitem> + + <listitem> + <para>Robert Shady <email>rls@id.net</email></para> + </listitem> + + <listitem> + <para>Robert Swindells <email>swindellsr@genrad.co.uk</email></para> + </listitem> + + <listitem> + <para>Robert Watson <email>robert@cyrus.watson.org</email></para> + </listitem> + + <listitem> + <para>Robert Withrow <email>witr@rwwa.com</email></para> + </listitem> + + <listitem> + <para>Robert Yoder <email>unknown</email></para> + </listitem> + + <listitem> + <para>Robin Carey + <email>robin@mailgate.dtc.rankxerox.co.uk</email></para> + </listitem> + + <listitem> + <para>Roger Hardiman <email>roger@cs.strath.ac.uk</email></para> + </listitem> + + <listitem> + <para>Roland Jesse <email>jesse@cs.uni-magdeburg.de</email></para> + </listitem> + + <listitem> + <para>Ron Bickers <email>rbickers@intercenter.net</email></para> + </listitem> + + <listitem> + <para>Ron Lenk <email>rlenk@widget.xmission.com</email></para> + </listitem> + + <listitem> + <para>Ronald Kuehn <email>kuehn@rz.tu-clausthal.de</email></para> + </listitem> + + <listitem> + <para>Rudolf Cejka <email>unknown</email></para> + </listitem> + + <listitem> + <para>Ruslan Belkin <email>rus@home2.UA.net</email></para> + </listitem> + + <listitem> + <para>Ruslan Ermilov <email>ru@ucb.crimea.ua</email></para> + </listitem> + + <listitem> + <para>Ruslan Shevchenko <email>rssh@cam.grad.kiev.ua</email></para> + </listitem> + + <listitem> + <para>Russell L. Carter <email>rcarter@pinyon.org</email></para> + </listitem> + + <listitem> + <para>Russell Vincent <email>rv@groa.uct.ac.za</email></para> + </listitem> + + <listitem> + <para>Ryan Younce <email>ryany@pobox.com</email></para> + </listitem> + + <listitem> + <para>SANETO Takanori <email>sanewo@strg.sony.co.jp</email></para> + </listitem> + + <listitem> + <para>SAWADA Mizuki <email>miz@qb3.so-net.ne.jp</email></para> + </listitem> + + <listitem> + <para>SUGIMURA Takashi <email>sugimura@jp.FreeBSD.ORG</email></para> + </listitem> + + <listitem> + <para>SURANYI Peter + <email>suranyip@jks.is.tsukuba.ac.jp</email></para> + </listitem> + + <listitem> + <para>Sakari Jalovaara <email>sja@tekla.fi</email></para> + </listitem> + + <listitem> + <para>Sam Hartman <email>hartmans@mit.edu</email></para> + </listitem> + + <listitem> + <para>Samuel Lam <email>skl@ScalableNetwork.com</email></para> + </listitem> + + <listitem> + <para>Sander Vesik <email>sander@haldjas.folklore.ee</email></para> + </listitem> + + <listitem> + <para>Sandro Sigala <email>ssigala@globalnet.it</email></para> + </listitem> + + <listitem> + <para>Sascha Blank <email>blank@fox.uni-trier.de</email></para> + </listitem> + + <listitem> + <para>Sascha Wildner <email>swildner@channelz.GUN.de</email></para> + </listitem> + + <listitem> + <para>Satoh Junichi <email>junichi@astec.co.jp</email></para> + </listitem> + + <listitem> + <para>Satoshi Taoka + <email>taoka@infonets.hiroshima-u.ac.jp</email></para> + </listitem> + + <listitem> + <para>Scot Elliott <email>scot@poptart.org</email></para> + </listitem> + + <listitem> + <para>Scot W. Hetzel <email>hetzels@westbend.net</email></para> + </listitem> + + <listitem> + <para>Scott A. Kenney <email>saken@rmta.ml.org</email></para> + </listitem> + + <listitem> + <para>Scott Blachowicz + <email>scott.blachowicz@seaslug.org</email></para> + </listitem> + + <listitem> + <para>Scott Burris <email>scott@pita.cns.ucla.edu</email></para> + </listitem> + + <listitem> + <para>Scott Hazen Mueller <email>scott@zorch.sf-bay.org</email></para> + </listitem> + + <listitem> + <para>Scott Michel <email>scottm@cs.ucla.edu</email></para> + </listitem> + + <listitem> + <para>Scott Reynolds <email>scott@clmqt.marquette.mi.us</email></para> + </listitem> + + <listitem> + <para>Sebastian Strollo <email>seb@erix.ericsson.se</email></para> + </listitem> + + <listitem> + <para>Seigou TANIMURA + <email>tanimura@naklab.dnj.ynu.ac.jp</email></para> + </listitem> + + <listitem> + <para>Serge A. Babkin <email>babkin@hq.icb.chel.su</email></para> + </listitem> + + <listitem> + <para>Serge V. Vakulenko <email>vak@zebub.msk.su</email></para> + </listitem> + + <listitem> + <para>Sergei Chechetkin + <email>csl@whale.sunbay.crimea.ua</email></para> + </listitem> + + <listitem> + <para>Sergei S. Laskavy <email>laskavy@pc759.cs.msu.su</email></para> + </listitem> + + <listitem> + <para>Sergey Gershtein <email>sg@mplik.ru</email></para> + </listitem> + + <listitem> + <para>Sergey Potapov <email>sp@alkor.ru</email></para> + </listitem> + + <listitem> + <para>Sergey Shkonda <email>serg@bcs.zp.ua</email></para> + </listitem> + + <listitem> + <para>Sergey V.Dorokhov <email>svd@kbtelecom.nalnet.ru</email></para> + </listitem> + + <listitem> + <para>Sergio Lenzi <email>lenzi@bsi.com.br</email></para> + </listitem> + + <listitem> + <para>Shaun Courtney <email>shaun@emma.eng.uct.ac.za</email></para> + </listitem> + + <listitem> + <para>Shawn M. Carey <email>smcarey@mailbox.syr.edu</email></para> + </listitem> + + <listitem> + <para>Sheldon Hearn <email>axl@iafrica.com</email></para> + </listitem> + + <listitem> + <para>Shigio Yamaguchi <email>shigio@wafu.netgate.net</email></para> + </listitem> + + <listitem> + <para>Shunsuke Akiyama <email>akiyama@jp.freebsd.org</email></para> + </listitem> + + <listitem> + <para>Simon <email>simon@masi.ibp.fr</email></para> + </listitem> + + <listitem> + <para>Simon Burge <email>simonb@telstra.com.au</email></para> + </listitem> + + <listitem> + <para>Simon J Gerraty <email>sjg@melb.bull.oz.au</email></para> + </listitem> + + <listitem> + <para>Simon Marlow <email>simonm@dcs.gla.ac.uk</email></para> + </listitem> + + <listitem> + <para>Simon Shapiro <email>shimon@simon-shapiro.org</email></para> + </listitem> + + <listitem> + <para>Sin'ichiro MIYATANI <email>siu@phaseone.co.jp</email></para> + </listitem> + + <listitem> + <para>Slaven Rezic <email>eserte@cs.tu-berlin.de</email></para> + </listitem> + + <listitem> + <para>Soochon Radee <email>slr@mitre.org</email></para> + </listitem> + + <listitem> + <para>Soren Dayton <email>csdayton@midway.uchicago.edu</email></para> + </listitem> + + <listitem> + <para>Soren Dossing <email>sauber@netcom.com</email></para> + </listitem> + + <listitem> + <para>Soren S. Jorvang <email>soren@dt.dk</email></para> + </listitem> + + <listitem> + <para>Stefan Bethke <email>stb@hanse.de</email></para> + </listitem> + + <listitem> + <para>Stefan Eggers <email>seggers@semyam.dinoco.de</email></para> + </listitem> + + <listitem> + <para>Stefan Moeding <email>s.moeding@ndh.net</email></para> + </listitem> + + <listitem> + <para>Stefan Petri <email>unknown</email></para> + </listitem> + + <listitem> + <para>Stefan `Sec` Zehl <email>sec@42.org</email></para> + </listitem> + + <listitem> + <para>Steinar Haug <email>sthaug@nethelp.no</email></para> + </listitem> + + <listitem> + <para>Stephane E. Potvin <email>sepotvin@videotron.ca</email></para> + </listitem> + + <listitem> + <para>Stephane Legrand <email>stephane@lituus.fr</email></para> + </listitem> + + <listitem> + <para>Stephen Clawson + <email>sclawson@marker.cs.utah.edu</email></para> + </listitem> + + <listitem> + <para>Stephen F. Combs <email>combssf@salem.ge.com</email></para> + </listitem> + + <listitem> + <para>Stephen Farrell <email>stephen@farrell.org</email></para> + </listitem> + + <listitem> + <para>Stephen Hocking <email>sysseh@devetir.qld.gov.au</email></para> + </listitem> + + <listitem> + <para>Stephen J. Roznowski <email>sjr@home.net</email></para> + </listitem> + + <listitem> + <para>Stephen McKay <email>syssgm@devetir.qld.gov.au</email></para> + </listitem> + + <listitem> + <para>Stephen Melvin <email>melvin@zytek.com</email></para> + </listitem> + + <listitem> + <para>Steve Bauer <email>sbauer@rock.sdsmt.edu</email></para> + </listitem> + + <listitem> + <para>Steve Deering <email>unknown</email></para> + </listitem> + + <listitem> + <para>Steve Gerakines <email>steve2@genesis.tiac.net</email></para> + </listitem> + + <listitem> + <para>Steve Gericke <email>steveg@comtrol.com</email></para> + </listitem> + + <listitem> + <para>Steve Piette <email>steve@simon.chi.il.US</email></para> + </listitem> + + <listitem> + <para>Steve Schwarz <email>schwarz@alpharel.com</email></para> + </listitem> + + <listitem> + <para>Steven G. Kargl + <email>kargl@troutmask.apl.washington.edu</email></para> + </listitem> + + <listitem> + <para>Steven H. Samorodin <email>samorodi@NUXI.com</email></para> + </listitem> + + <listitem> + <para>Steven McCanne <email>mccanne@cs.berkeley.edu</email></para> + </listitem> + + <listitem> + <para>Steven Plite <email>splite@purdue.edu</email></para> + </listitem> + + <listitem> + <para>Steven Wallace <email>unknown</email></para> + </listitem> + + <listitem> + <para>Stuart Henderson + <email>stuart@internationalschool.co.uk</email></para> + </listitem> + + <listitem> + <para>Sue Blake <email>sue@welearn.com.au</email></para> + </listitem> + + <listitem> + <para>Sugiura Shiro <email>ssugiura@duo.co.jp</email></para> + </listitem> + + <listitem> + <para>Sujal Patel <email>smpatel@wam.umd.edu</email></para> + </listitem> + + <listitem> + <para>Sune Stjerneby <email>stjerneby@usa.net</email></para> + </listitem> + + <listitem> + <para>Suzuki Yoshiaki + <email>zensyo@ann.tama.kawasaki.jp</email></para> + </listitem> + + <listitem> + <para>Tadashi Kumano <email>kumano@strl.nhk.or.jp</email></para> + </listitem> + + <listitem> + <para>Taguchi Takeshi <email>taguchi@tohoku.iij.ad.jp</email></para> + </listitem> + + <listitem> + <para>Takahashi Yoshihiro <email>nyan@dd.catv.ne.jp</email></para> + </listitem> + + <listitem> + <para>Takahiro Yugawa <email>yugawa@orleans.rim.or.jp</email></para> + </listitem> + + <listitem> + <para>Takanori Watanabe + <email>takawata@shidahara1.planet.sci.kobe-u.ac.jp</email></para> + </listitem> + + <listitem> + <para>Takashi Mega <email>mega@minz.org</email></para> + </listitem> + + <listitem> + <para>Takashi Uozu <email>j1594016@ed.kagu.sut.ac.jp</email></para> + </listitem> + + <listitem> + <para>Takayuki Ariga <email>a00821@cc.hc.keio.ac.jp</email></para> + </listitem> + + <listitem> + <para>Takeru NAIKI <email>naiki@bfd.es.hokudai.ac.jp</email></para> + </listitem> + + <listitem> + <para>Takeshi Amaike <email>amaike@iri.co.jp</email></para> + </listitem> + + <listitem> + <para>Takeshi MUTOH <email>mutoh@info.nara-k.ac.jp</email></para> + </listitem> + + <listitem> + <para>Takeshi Ohashi + <email>ohashi@mickey.ai.kyutech.ac.jp</email></para> + </listitem> + + <listitem> + <para>Takeshi WATANABE + <email>watanabe@crayon.earth.s.kobe-u.ac.jp</email></para> + </listitem> + + <listitem> + <para>Takuya SHIOZAKI + <email>tshiozak@makino.ise.chuo-u.ac.jp</email></para> + </listitem> + + <listitem> + <para>Tatoku Ogaito <email>tacha@tera.fukui-med.ac.jp</email></para> + </listitem> + + <listitem> + <para>Tatsumi HOSOKAWA <email>hosokawa@jp.FreeBSD.org</email></para> + </listitem> + + <listitem> + <para>Ted Buswell <email>tbuswell@mediaone.net</email></para> + </listitem> + + <listitem> + <para>Ted Faber <email>faber@isi.edu</email></para> + </listitem> + + <listitem> + <para>Ted Lemon <email>unknown</email></para> + </listitem> + + <listitem> + <para>Terry Lambert <email>terry@lambert.org</email></para> + </listitem> + + <listitem> + <para>Terry Lee <email>terry@uivlsi.csl.uiuc.edu</email></para> + </listitem> + + <listitem> + <para>Tetsuya Furukawa <email>tetsuya@secom-sis.co.jp</email></para> + </listitem> + + <listitem> + <para>Theo de Raadt <email>deraadt@OpenBSD.org</email></para> + </listitem> + + <listitem> + <para>Thomas <email>thomas@mathematik.uni-Bremen.de</email></para> + </listitem> + + <listitem> + <para>Thomas D. Dean <email>tomdean@ix.netcom.com</email></para> + </listitem> + + <listitem> + <para>Thomas David Rivers <email>rivers@dignus.com</email></para> + </listitem> + + <listitem> + <para>Thomas G. McWilliams <email>tgm@netcom.com</email></para> + </listitem> + + <listitem> + <para>Thomas Gellekum + <email>thomas@ghpc8.ihf.rwth-aachen.de</email></para> + </listitem> + + <listitem> + <para>Thomas Graichen + <email>graichen@omega.physik.fu-berlin.de</email></para> + </listitem> + + <listitem> + <para>Thomas König + <email>Thomas.Koenig@ciw.uni-karlsruhe.de</email></para> + </listitem> + + <listitem> + <para>Thomas Ptacek <email>unknown</email></para> + </listitem> + + <listitem> + <para>Thomas Stromberg <email>tstrombe@rtci.com</email></para> + </listitem> + + <listitem> + <para>Thomas Valentino Crimi + <email>tcrimi+@andrew.cmu.edu</email></para> + </listitem> + + <listitem> + <para>Thomas Wintergerst <email>thomas@lemur.nord.de</email></para> + </listitem> + + <listitem> + <para>Þórður Ívarsson + <email>totii@est.is</email></para> + </listitem> + + <listitem> + <para>Tim Kientzle <email>kientzle@netcom.com</email></para> + </listitem> + + <listitem> + <para>Tim Singletary + <email>tsingle@sunland.gsfc.nasa.gov</email></para> + </listitem> + + <listitem> + <para>Tim Wilkinson <email>tim@sarc.city.ac.uk</email></para> + </listitem> + + <listitem> + <para>Timo J. Rinne <email>tri@iki.fi</email></para> + </listitem> + + <listitem> + <para>Todd Miller <email>millert@openbsd.org</email></para> + </listitem> + + <listitem> + <para>Tom <email>root@majestix.cmr.no</email></para> + </listitem> + + <listitem> + <para>Tom <email>tom@sdf.com</email></para> + </listitem> + + <listitem> + <para>Tom Gray - DCA <email>dcasba@rain.org</email></para> + </listitem> + + <listitem> + <para>Tom Hukins <email>tom@eborcom.com</email></para> + </listitem> + + <listitem> + <para>Tom Jobbins <email>tom@tom.tj</email></para> + </listitem> + + <listitem> + <para>Tom Pusateri <email>pusateri@juniper.net</email></para> + </listitem> + + <listitem> + <para>Tom Rush <email>tarush@mindspring.com</email></para> + </listitem> + + <listitem> + <para>Tom Samplonius <email>tom@misery.sdf.com</email></para> + </listitem> + + <listitem> + <para>Tomohiko Kurahashi + <email>kura@melchior.q.t.u-tokyo.ac.jp</email></para> + </listitem> + + <listitem> + <para>Tony Kimball <email>alk@Think.COM</email></para> + </listitem> + + <listitem> + <para>Tony Li <email>tli@jnx.com</email></para> + </listitem> + + <listitem> + <para>Tony Lynn <email>wing@cc.nsysu.edu.tw</email></para> + </listitem> + + <listitem> + <para>Torbjorn Granlund <email>tege@matematik.su.se</email></para> + </listitem> + + <listitem> + <para>Toshihiko ARAI <email>toshi@tenchi.ne.jp</email></para> + </listitem> + + <listitem> + <para>Toshihiko SHIMOKAWA <email>toshi@tea.forus.or.jp</email></para> + </listitem> + + <listitem> + <para>Toshihiro Kanda <email>candy@kgc.co.jp</email></para> + </listitem> + + <listitem> + <para>Toshiomi Moriki + <email>Toshiomi.Moriki@ma1.seikyou.ne.jp</email></para> + </listitem> + + <listitem> + <para>Trefor S. <email>trefor@flevel.co.uk</email></para> + </listitem> + + <listitem> + <para>Trevor Blackwell <email>tlb@viaweb.com</email></para> + </listitem> + + <listitem> + <para>URATA Shuichiro <email>s-urata@nmit.tmg.nec.co.jp</email></para> + </listitem> + + <listitem> + <para>Ugo Paternostro <email>paterno@dsi.unifi.it</email></para> + </listitem> + + <listitem> + <para>Ulf Kieber <email>kieber@sax.de</email></para> + </listitem> + + <listitem> + <para>Ulli Linzen <email>ulli@perceval.camelot.de</email></para> + </listitem> + + <listitem> + <para>Ustimenko Semen <email>semen@iclub.nsu.ru</email></para> + </listitem> + + <listitem> + <para>Uwe Arndt <email>arndt@mailhost.uni-koblenz.de</email></para> + </listitem> + + <listitem> + <para>Vadim Chekan <email>vadim@gc.lviv.ua</email></para> + </listitem> + + <listitem> + <para>Vadim Kolontsov <email>vadim@tversu.ac.ru</email></para> + </listitem> + + <listitem> + <para>Vadim Mikhailov <email>mvp@braz.ru</email></para> + </listitem> + + <listitem> + <para>Van Jacobson <email>van@ee.lbl.gov</email></para> + </listitem> + + <listitem> + <para>Vasily V. Grechishnikov + <email>bazilio@ns1.ied-vorstu.ac.ru</email></para> + </listitem> + + <listitem> + <para>Vasim Valejev <email>vasim@uddias.diaspro.com</email></para> + </listitem> + + <listitem> + <para>Vernon J. Schryver <email>vjs@mica.denver.sgi.com</email></para> + </listitem> + + <listitem> + <para>Vic Abell <email>abe@cc.purdue.edu</email></para> + </listitem> + + <listitem> + <para>Ville Eerola <email>ve@sci.fi</email></para> + </listitem> + + <listitem> + <para>Vincent Poy <email>vince@venus.gaianet.net</email></para> + </listitem> + + <listitem> + <para>Vincenzo Capuano + <email>VCAPUANO@vmprofs.esoc.esa.de</email></para> + </listitem> + + <listitem> + <para>Virgil Champlin <email>champlin@pa.dec.com</email></para> + </listitem> + + <listitem> + <para>Vladimir A. Jakovenko + <email>vovik@ntu-kpi.kiev.ua</email></para> + </listitem> + + <listitem> + <para>Vladimir Kushnir <email>kushn@mail.kar.net</email></para> + </listitem> + + <listitem> + <para>Vsevolod Lobko <email>seva@alex-ua.com</email></para> + </listitem> + + <listitem> + <para>W. Gerald Hicks <email>wghicks@bellsouth.net</email></para> + </listitem> + + <listitem> + <para>W. Richard Stevens <email>rstevens@noao.edu</email></para> + </listitem> + + <listitem> + <para>Walt Howard <email>howard@ee.utah.edu</email></para> + </listitem> + + <listitem> + <para>Warren Toomey <email>wkt@csadfa.cs.adfa.oz.au</email></para> + </listitem> + + <listitem> + <para>Wayne Scott <email>wscott@ichips.intel.com</email></para> + </listitem> + + <listitem> + <para>Werner Griessl + <email>werner@btp1da.phy.uni-bayreuth.de</email></para> + </listitem> + + <listitem> + <para>Wes Santee <email>wsantee@wsantee.oz.net</email></para> + </listitem> + + <listitem> + <para>Wietse Venema <email>wietse@wzv.win.tue.nl</email></para> + </listitem> + + <listitem> + <para>Wilfredo Sanchez <email>wsanchez@apple.com</email></para> + </listitem> + + <listitem> + <para>Wiljo Heinen <email>wiljo@freeside.ki.open.de</email></para> + </listitem> + + <listitem> + <para>Wilko Bulte <email>wilko@yedi.iaf.nl</email></para> + </listitem> + + <listitem> + <para>Willem Jan Withagen <email>wjw@surf.IAE.nl</email></para> + </listitem> + + <listitem> + <para>William Jolitz <email>withheld</email></para> + </listitem> + + <listitem> + <para>William Liao <email>william@tale.net</email></para> + </listitem> + + <listitem> + <para>Wojtek Pilorz + <email>wpilorz@celebris.bdk.lublin.pl</email></para> + </listitem> + + <listitem> + <para>Wolfgang Helbig <email>helbig@ba-stuttgart.de</email></para> + </listitem> + + <listitem> + <para>Wolfgang Solfrank <email>ws@tools.de</email></para> + </listitem> + + <listitem> + <para>Wolfgang Stanglmeier <email>wolf@FreeBSD.org</email></para> + </listitem> + + <listitem> + <para>Wu Ching-hong <email>woju@FreeBSD.ee.Ntu.edu.TW</email></para> + </listitem> + + <listitem> + <para>Yarema <email>yds@ingress.com</email></para> + </listitem> + + <listitem> + <para>Yaroslav Terletsky <email>ts@polynet.lviv.ua</email></para> + </listitem> + + <listitem> + <para>Yen-Shuo Su <email>yssu@CCCA.NCTU.edu.tw</email></para> + </listitem> + + <listitem> + <para>Ying-Chieh Liao <email>ijliao@csie.NCTU.edu.tw</email></para> + </listitem> + + <listitem> + <para>Yixin Jin <email>yjin@rain.cs.ucla.edu</email></para> + </listitem> + + <listitem> + <para>Yoshiaki Uchikawa <email>yoshiaki@kt.rim.or.jp</email></para> + </listitem> + + <listitem> + <para>Yoshihiko OHTA <email>yohta@bres.tsukuba.ac.jp</email></para> + </listitem> + + <listitem> + <para>Yoshihisa NAKAGAWA + <email>y-nakaga@ccs.mt.nec.co.jp</email></para> + </listitem> + + <listitem> + <para>Yoshikazu Goto <email>gotoh@ae.anritsu.co.jp</email></para> + </listitem> + + <listitem> + <para>Yoshimasa Ohnishi + <email>ohnishi@isc.kyutech.ac.jp</email></para> + </listitem> + + <listitem> + <para>Yoshishige Arai <email>ryo2@on.rim.or.jp</email></para> + </listitem> + + <listitem> + <para>Yuichi MATSUTAKA <email>matutaka@osa.att.ne.jp</email></para> + </listitem> + + <listitem> + <para>Yujiro MIYATA + <email>miyata@bioele.nuee.nagoya-u.ac.jp</email></para> + </listitem> + + <listitem> + <para>Yukihiro Nakai <email>nacai@iname.com</email></para> + </listitem> + + <listitem> + <para>Yusuke Nawano <email>azuki@azkey.org</email></para> + </listitem> + + <listitem> + <para>Yuval Yarom <email>yval@cs.huji.ac.il</email></para> + </listitem> + + <listitem> + <para>Yves Fonk <email>yves@cpcoup5.tn.tudelft.nl</email></para> + </listitem> + + <listitem> + <para>Yves Fonk <email>yves@dutncp8.tn.tudelft.nl</email></para> + </listitem> + + <listitem> + <para>Zach Heilig <email>zach@gaffaneys.com</email></para> + </listitem> + + <listitem> + <para>Zahemszhky Gabor <email>zgabor@code.hu</email></para> + </listitem> + + <listitem> + <para>Zhong Ming-Xun <email>zmx@mail.CDPA.nsysu.edu.tw</email></para> + </listitem> + + <listitem> + <para>arci <email>vega@sophia.inria.fr</email></para> + </listitem> + + <listitem> + <para>der Mouse <email>mouse@Collatz.McRCIM.McGill.EDU</email></para> + </listitem> + + <listitem> + <para>frf <email>frf@xocolatl.com</email></para> + </listitem> + + <listitem> + <para>Ege Rekk <email>aagero@aage.priv.no</email></para> + </listitem> + </itemizedlist> + </sect1> + + <sect1> + <title>Collaborateurs pour les correctif 386BSD</title> + + <para>(En ordre alphabétique par prénom) :</para> + + <itemizedlist> + <listitem> + <para>Adam Glass <email>glass@postgres.berkeley.edu</email></para> + </listitem> + + <listitem> + <para>Adrian Hall <email>adrian@ibmpcug.co.uk</email></para> + </listitem> + + <listitem> + <para>Andrey A. Chernov <email>ache@astral.msk.su</email></para> + </listitem> + + <listitem> + <para>Andrew Herbert <email>andrew@werple.apana.org.au</email></para> + </listitem> + + <listitem> + <para>Andrew Moore <email>alm@netcom.com</email></para> + </listitem> + + <listitem> + <para>Andy Valencia <email>ajv@csd.mot.com</email> + <email>jtk@netcom.com</email></para> + </listitem> + + <listitem> + <para>Arne Henrik Juul <email>arnej@Lise.Unit.NO</email></para> + </listitem> + + <listitem> + <para>Bakul Shah <email>bvs@bitblocks.com</email></para> + </listitem> + + <listitem> + <para>Barry Lustig <email>barry@ictv.com</email></para> + </listitem> + + <listitem> + <para>Bob Wilcox <email>bob@obiwan.uucp</email></para> + </listitem> + + <listitem> + <para>Branko Lankester</para> + </listitem> + + <listitem> + <para>Brett Lymn <email>blymn@mulga.awadi.com.AU</email></para> + </listitem> + + <listitem> + <para>Charles Hannum <email>mycroft@ai.mit.edu</email></para> + </listitem> + + <listitem> + <para>Chris G. Demetriou + <email>cgd@postgres.berkeley.edu</email></para> + </listitem> + + <listitem> + <para>Chris Torek <email>torek@ee.lbl.gov</email></para> + </listitem> + + <listitem> + <para>Christoph Robitschko + <email>chmr@edvz.tu-graz.ac.at</email></para> + </listitem> + + <listitem> + <para>Daniel Poirot <email>poirot@aio.jsc.nasa.gov</email></para> + </listitem> + + <listitem> + <para>Dave Burgess <email>burgess@hrd769.brooks.af.mil</email></para> + </listitem> + + <listitem> + <para>Dave Rivers <email>rivers@ponds.uucp</email></para> + </listitem> + + <listitem> + <para>David Dawes <email>dawes@physics.su.OZ.AU</email></para> + </listitem> + + <listitem> + <para>David Greenman <email>dg@Root.COM</email></para> + </listitem> + + <listitem> + <para>Eric J. Haug <email>ejh@slustl.slu.edu</email></para> + </listitem> + + <listitem> + <para>Felix Gaehtgens + <email>felix@escape.vsse.in-berlin.de</email></para> + </listitem> + + <listitem> + <para>Frank Maclachlan <email>fpm@crash.cts.com</email></para> + </listitem> + + <listitem> + <para>Gary A. Browning <email>gab10@griffcd.amdahl.com</email></para> + </listitem> + + <listitem> + <para>Gary Howland <email>gary@hotlava.com</email></para> + </listitem> + + <listitem> + <para>Geoff Rehmet <email>csgr@alpha.ru.ac.za</email></para> + </listitem> + + <listitem> + <para>Goran Hammarback <email>goran@astro.uu.se</email></para> + </listitem> + + <listitem> + <para>Guido van Rooij <email>guido@gvr.org</email></para> + </listitem> + + <listitem> + <para>Guy Harris <email>guy@auspex.com</email></para> + </listitem> + + <listitem> + <para>Havard Eidnes + <email>Havard.Eidnes@runit.sintef.no</email></para> + </listitem> + + <listitem> + <para>Herb Peyerl <email>hpeyerl@novatel.cuc.ab.ca</email></para> + </listitem> + + <listitem> + <para>Holger Veit <email>Holger.Veit@gmd.de</email></para> + </listitem> + + <listitem> + <para>Ishii Masahiro, R. Kym Horsell</para> + </listitem> + + <listitem> + <para>J.T. Conklin <email>jtc@cygnus.com</email></para> + </listitem> + + <listitem> + <para>Jagane D Sundar <email>jagane@netcom.com</email></para> + </listitem> + + <listitem> + <para>James Clark <email>jjc@jclark.com</email></para> + </listitem> + + <listitem> + <para>James Jegers <email>jimj@miller.cs.uwm.edu</email></para> + </listitem> + + <listitem> + <para>James W. Dolter</para> + </listitem> + + <listitem> + <para>James da Silva <email>jds@cs.umd.edu</email> et al</para> + </listitem> + + <listitem> + <para>Jay Fenlason <email>hack@datacube.com</email></para> + </listitem> + + <listitem> + <para>Jim Wilson <email>wilson@moria.cygnus.com</email></para> + </listitem> + + <listitem> + <para>Jörg Lohse + <email>lohse@tech7.informatik.uni-hamburg.de</email></para> + </listitem> + + <listitem> + <para>Jörg Wunsch + <email>joerg_wunsch@uriah.heep.sax.de</email></para> + </listitem> + + <listitem> + <para>John Dyson</para> + </listitem> + + <listitem> + <para>John Woods <email>jfw@eddie.mit.edu</email></para> + </listitem> + + <listitem> + <para>Jordan K. Hubbard <email>jkh@whisker.hubbard.ie</email></para> + </listitem> + + <listitem> + <para>Julian Elischer <email>julian@dialix.oz.au</email></para> + </listitem> + + <listitem> + <para>Julian Stacey <email>jhs@freebsd.org</email></para> + </listitem> + + <listitem> + <para>Karl Dietz <email>Karl.Dietz@triplan.com</email></para> + </listitem> + + <listitem> + <para>Karl Lehenbauer <email>karl@NeoSoft.com</email> + <email>karl@one.neosoft.com</email></para> + </listitem> + + <listitem> + <para>Keith Bostic <email>bostic@toe.CS.Berkeley.EDU</email></para> + </listitem> + + <listitem> + <para>Ken Hughes</para> + </listitem> + + <listitem> + <para>Kent Talarico <email>kent@shipwreck.tsoft.net</email></para> + </listitem> + + <listitem> + <para>Kevin Lahey <email>kml%rokkaku.UUCP@mathcs.emory.edu</email> + <email>kml@mosquito.cis.ufl.edu</email></para> + </listitem> + + <listitem> + <para>Marc Frajola <email>marc@dev.com</email></para> + </listitem> + + <listitem> + <para>Mark Tinguely <email>tinguely@plains.nodak.edu</email> + <email>tinguely@hookie.cs.ndsu.NoDak.edu</email></para> + </listitem> + + <listitem> + <para>Martin Renters <email>martin@tdc.on.ca</email></para> + </listitem> + + <listitem> + <para>Michael Clay <email>mclay@weareb.org</email></para> + </listitem> + + <listitem> + <para>Michael Galassi <email>nerd@percival.rain.com</email></para> + </listitem> + + <listitem> + <para>Mike Durkin <email>mdurkin@tsoft.sf-bay.org</email></para> + </listitem> + + <listitem> + <para>Naoki Hamada <email>nao@tom-yam.or.jp</email></para> + </listitem> + + <listitem> + <para>Nate Williams <email>nate@bsd.coe.montana.edu</email></para> + </listitem> + + <listitem> + <para>Nick Handel <email>nhandel@NeoSoft.com</email> + <email>nick@madhouse.neosoft.com</email></para> + </listitem> + + <listitem> + <para>Pace Willisson <email>pace@blitz.com</email></para> + </listitem> + + <listitem> + <para>Paul Kranenburg <email>pk@cs.few.eur.nl</email></para> + </listitem> + + <listitem> + <para>Paul Mackerras <email>paulus@cs.anu.edu.au</email></para> + </listitem> + + <listitem> + <para>Paul Popelka <email>paulp@uts.amdahl.com</email></para> + </listitem> + + <listitem> + <para>Peter da Silva <email>peter@NeoSoft.com</email></para> + </listitem> + + <listitem> + <para>Phil Sutherland + <email>philsuth@mycroft.dialix.oz.au</email></para> + </listitem> + + <listitem> + <para>Poul-Henning Kamp<email>phk@FreeBSD.ORG</email></para> + </listitem> + + <listitem> + <para>Ralf Friedl <email>friedl@informatik.uni-kl.de</email></para> + </listitem> + + <listitem> + <para>Rick Macklem <email>root@snowhite.cis.uoguelph.ca</email></para> + </listitem> + + <listitem> + <para>Robert D. Thrush <email>rd@phoenix.aii.com</email></para> + </listitem> + + <listitem> + <para>Rodney W. Grimes <email>rgrimes@cdrom.com</email></para> + </listitem> + + <listitem> + <para>Sascha Wildner <email>swildner@channelz.GUN.de</email></para> + </listitem> + + <listitem> + <para>Scott Burris <email>scott@pita.cns.ucla.edu</email></para> + </listitem> + + <listitem> + <para>Scott Reynolds <email>scott@clmqt.marquette.mi.us</email></para> + </listitem> + + <listitem> + <para>Sean Eric Fagan <email>sef@kithrup.com</email></para> + </listitem> + + <listitem> + <para>Simon J Gerraty <email>sjg@melb.bull.oz.au</email> + <email>sjg@zen.void.oz.au</email></para> + </listitem> + + <listitem> + <para>Stephen McKay <email>syssgm@devetir.qld.gov.au</email></para> + </listitem> + + <listitem> + <para>Terry Lambert <email>terry@icarus.weber.edu</email></para> + </listitem> + + <listitem> + <para>Terry Lee <email>terry@uivlsi.csl.uiuc.edu</email></para> + </listitem> + + <listitem> + <para>Tor Egge <email>Tor.Egge@idi.ntnu.no</email></para> + </listitem> + + <listitem> + <para>Warren Toomey <email>wkt@csadfa.cs.adfa.oz.au</email></para> + </listitem> + + <listitem> + <para>Wiljo Heinen <email>wiljo@freeside.ki.open.de</email></para> + </listitem> + + <listitem> + <para>William Jolitz <email>withheld</email></para> + </listitem> + + <listitem> + <para>Wolfgang Solfrank <email>ws@tools.de</email></para> + </listitem> + + <listitem> + <para>Wolfgang Stanglmeier <email>wolf@dentaro.GUN.de</email></para> + </listitem> + + <listitem> + <para>Yuval Yarom <email>yval@cs.huji.ac.il</email></para> + </listitem> + </itemizedlist> + + </sect1> +</chapter> + + +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-shorttag: nil + sgml-always-quote-attributes: t + sgml-minimize-attributes: max + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> diff --git a/fr_FR.ISO_8859-1/books/handbook/cutting-edge/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/cutting-edge/chapter.sgml new file mode 100644 index 0000000000..f5a65e8559 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/cutting-edge/chapter.sgml @@ -0,0 +1,2628 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + + <chapter> + <title>La dernière mise à jour : FreeBSD-current et FreeBSD-stable</title> + &trans.a.haby; + + <para>FreeBSD est développé sans interruption entre deux versions. Pour + ceux qui veulent toujours être à jour, il y a plusieurs mécanismes de + synchronisation simples pour maintenir votre système au niveau des plus + récents développements. Soyez prévenus: ce “fil du rasoir” + n'est pas pour tout le monde! Ce chapitre vous aidera à décider si vous + voulez suivre le développement au fil de l'eau, ou vous en tenir à l'une + des versions publiées.</para> + + <sect1 id="current"> + <title>Se synchroniser avec la version -current de FreeBSD</title> + + <para><emphasis>Contribution de &a.jkh;.</emphasis></para> + + <sect2> + <title>Qu'est-ce que FreeBSD-current?</title> + + <para>FreeBSD-current n'est, littéralement, rien d'autre qu'un + instantané quotidien des sources de FreeBSD en cours de + développement. Ce qui inclut des évolutions en cours, des + modifications expérimentales et des mécanismes de transition, + qui feront ou ne feront pas partie de la prochaine livraison + officielle du logiciel. Bien que nombre d'entre nous compilent + quotidiennement sur la base des sources de FreeBSD-current, il + arrive que ceux-ci soit, pendant un temps, littéralement + incompilables. Ces problèmes sont généralement résolus aussi + rapidement que possible, mais que les sources de FreeBSD-current + vous provoquent un désastre ou vous procurent une nouvelle + fonctionnalité que vous attendiez impatiemment peut parfois + ne dépendre que du moment dans la journée où vous les avez + chargés.</para> + + </sect2> + + <sect2> + <title>Qui a besoin de FreeBSD-current?</title> + + <para>FreeBSD-current est essentiellement mis à disposition pour les + besoins:</para> + + <orderedlist> + + <listitem> + <para>Des membres du groupe FreeBSD qui travaillent sur une + partie de l'arborescence des sources, et pour qui rester + constamment à jour est une nécessité absolue.</para> + </listitem> + + <listitem> + <para>Des membres du groupe FreeBSD qui participent activement + aux tests et sont disposés à passer du temps à étudier les + problèmes pour garantir que FreeBSD-current reste aussi sain + que possible. Il y a aussi ceux qui font des suggestions dans + certains domaines sur les modifications à faire et la + direction générale que prend FreeBSD.</para> + </listitem> + + <listitem> + <para>Des membres de la périphérie du groupe FreeBSD (et + quelques autres) qui veulent simplement garder un oeil + sur les évolutions et se servir des derniers sources comme + référence (e.g., pour les <emphasis>lire</emphasis> et non + pour les utiliser). Ces personnes font parfois des remarques + ou fournissent du code.</para> + </listitem> + + </orderedlist> + + </sect2> + + <sect2> + <title>Qu'est-ce que <emphasis>n'est pas</emphasis> + FreeBSD-current?</title> + + <orderedlist> + + <listitem> + <para>Un raccourci pour se procurer des pré-versions parce que + vous avez entendu dire qu'il y a de nouvelles fonctionnalités + géniales et voulez être les premiers du coin à les + avoir.</para> + </listitem> + + <listitem> + <para>Un moyen rapide d'avoir des corrections de bogues.</para> + </listitem> + + <listitem> + <para>Nous ne le “supportons officiellement” en + aucun cas. Nous faisons du mieux que nous pouvons pour aider + les personnes qui font vraiment partie des trois groupes + d'utilisateurs “légitimes”, mais nous n'avons + tout simplement <emphasis>pas le temps</emphasis> d'en fournir + le support technique. Ce n'est pas parce que nous sommes des + “méchants” qui n'aimons pas aider les autres + (nous ne ferions pas FreeBSD si tel était le cas), c'est + parce que nous ne pouvons réellement pas répondre à 400 + messages tous les jours <emphasis>et</emphasis> en même temps + travailler sur FreeBSD. Je suis sûr que, si vous aviez à + choisir entre le fait que nous répondions à un tas de + questions ou que nous continuions à améliorer FreeBSD, la + plupart d'entre vous préféreraient la seconde + alternative.</para> + </listitem> + + </orderedlist> + + </sect2> + + <sect2> + <title>Utiliser FreeBSD-current</title> + + <orderedlist> + + <listitem> + <para>Inscrivez-vous sur la &a.current; et la &a.cvsall;. Ce + n'est pas seulement une bonne idée, c'est + <emphasis>essentiel</emphasis>. Si vous n'êtes pas sur la + liste de diffusion de <emphasis>FreeBSD-current</emphasis>, + vous ne verrez pas les commentaires qui sont faits sur l'état + courant du système et vous retrouverez probablement confrontés + à de nombreux problèmes que d'autres ont déjà identifiés et + résolus. Encore plus important, vous manqueriez des + informations potentiellement critiques (e.g. “Avis à + tous, avant de recompiler <filename>/usr/src</filename>, vous + <emphasis>devez</emphasis> recompiler le noyau, sans quoi + votre système s'écroulera de façon terrible!”). La + liste de diffusion <emphasis>cvs-all</emphasis> vous permettra + de voir les courriers de trace des soumissions de toutes les + modifications dès qu'elles sont faites et des informations + pertinentes sur les effets de bord éventuels. Pour vous + inscrire sur ces listes, envoyez un courrier électronique à + &a.majordomo; et précisez:</para> + + <programlisting> +subscribe freebsd-current +subscribe cvs-all + </programlisting> + + <para>dans le corps de votre message. Eventuellement, vous + pouvez aussi y mettre <literal>help</literal> pour que + Majordomo vous envoie des indications complètes sur la façon + de s'abonner et de se désabonner des autres listes que nous + avons mises en place.</para> + </listitem> + + <listitem> + <para>Récupérez les sources sur + <hostid role="fqdn">ftp.FreeBSD.ORG</hostid>. Il y a trois + manières de le faire:</para> + + <orderedlist> + + <listitem> + <para>Utilisez la fonctionnalité + <link linkend="ctm"><application>CTM</application></link>. + A moins que vous n'ayez une bonne connexion TCP/IP bon + marché, c'est la bonne façon de procéder.</para> + </listitem> + + <listitem> + <para>Utilisez le programme + <link linkend="cvsup">cvsup</link> avec ce fichier + <ulink + url="ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/src/share/examples/cvsup/standard-supfile">supfile</ulink>. + C'est la méthode recommandée en second lieu, parce + qu'elle vous permet de ne récupérer la totalité des + sources que la première fois et de n'avoir ensuite + que les différences. De nombreuses personnes exécutent + <command>cvsup</command> depuis <command>cron</command> + et maintiennent ainsi automatiquement à jour leurs + sources.</para> + </listitem> + + <listitem> + <para>Utilisez <command>ftp</command>. L'arborescence des + sources de FreeBSD-current est toujours + “exportée” dans: <ulink + url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/FreeBSD-current">ftp://ftp.FreeBSD.ORG/pub/FreeBSD/FreeBSD-current</ulink>. + Nous employons aussi <command>wu-ftpd</command> qui permet + de récupérer sous forme d'archive compressée un + sous-répertoire complet. e.g., si vous voyez:</para> + + <informalexample> + <screen>usr.bin/lex</screen> + </informalexample> + + <para>vous pouvez taper: + + <informalexample> + <screen><prompt>ftp></prompt> <userinput>cd usr.bin</userinput> +<prompt>ftp></prompt> <userinput>get lex.tar.Z</userinput></screen> + </informalexample> + + et il vous transmettra un fichier d'archive compressée de + tout le répertoire.</para> + </listitem> + + </orderedlist> + + </listitem> + + <listitem> + <para>S'il vous faut un accès rapide aux sources au fur et à + mesure de vos besoins, et que vous n'avez pas de problème de + bande passante, utilisez <command>cvsup</command> ou + <command>ftp</command>. Sinon, employez + <application>CTM</application>.</para> + </listitem> + + <listitem> + <para>Si vous récupérez les sources pour compiler un système + opérationnel, et pas simplement pour les lire, alors + récupérez <emphasis>tout</emphasis> + <foreignphrase>-current</foreignphrase>, et non uniquement + quelques morceaux choisis. Cela parce que diverses parties + du source dépendent de modifications effectuées ailleurs, et + si vous essayez de n'en compiler qu'une partie, il est + quasiment certain que vous aurez des problèmes.</para> + </listitem> + + <listitem> + <para>Avant de compiler <foreignphrase>-current</foreignphrase>, + lisez attentivement le <filename>Makefile</filename> dans + <filename>/usr/src</filename>. Vous devriez au moins lancer + une première fois un + <link linkend="makeworld"><command>make world</command></link> + intégral, comme étape nécessaire à votre processus de mise à + niveau. Lire la &a.current; vous tiendra au courant des + autres procédures de transition qui sont parfois + nécessaires lorsque nous préparons la prochaine + version.</para> + </listitem> + + <listitem> + <para>Participez. Si vous tournez sous FreeBSD-current, nous + aimerions savoir ce que vous en pensez, tout particulièrement + si vous avez des améliorations à nous suggérer ou des + corrections de bogues à nous soummettre. Les suggestions + accompagnées de code sont accueillies avec + enthousiasme!</para> + </listitem> + + </orderedlist> + + </sect2> + </sect1> + + <sect1 id="stable"> + <title>Se synchroniser avec la version -stable de FreeBSD</title> + + <para><emphasis>Contribution de &a.jkh;.</emphasis></para> + + <sect2> + <title>Qu'est-ce que FreeBSD-stable?</title> + + <para>FreeBSD-stable est notre branche de développement pour les + modifications moins osées et plus conservatrices, destinée à notre + prochaine version d'exploitation. Les modifications expérimentales + ou non testées ne sont pas faites sur cette branche (pour cela, + voyez <link linkend="current">FreeBSD-current</link>).</para> + + </sect2> + + <sect2> + <title>Qui a besoin de FreeBSD-stable?</title> + + <para>Si vous êtes un utilisateur commercial ou quelqu'un dont la + principale préoccupation est la stabilité de son système FreeBSD, + vous devriez envisager de rester à jour sur la branche + <emphasis>stable</emphasis>. C'est particulièrement vrai si vous + avez installé la version la plus récente + (<ulink + url="ftp://ftp.freebsd.org/pub/FreeBSD/&rel.current;-RELEASE">&rel.current;-RELEASE</ulink> au moment où j'écris ceci) car c'est sur la branche + <emphasis>stable</emphasis> que sont effectivement faites les + corrections de bogues relatives à la dernière version + publiée.</para> + + <warning> + <para>Nous essayons de garder l'arborescence + <emphasis>-stable</emphasis> avant tout, intégralement compilable + et constamment stable, mais il nous arrive aussi de faire des + erreurs (ce sont des sources encore en évolution dont les + modifications sont transmises rapidement, + après tout). Nous faisons + aussi de notre mieux pour tester exhaustivement les corrections + dans <emphasis>-current</emphasis> avant de les intégrer à la + branche <emphasis>-stable</emphasis>, mais nos tests ne couvrent + parfois pas tous les cas de figure. Si quelque chose ne fonctionne + pas chez vous avec <emphasis>-stable</emphasis>, faites-le nous + s'il vous plaît savoir <emphasis>immédiatement!</emphasis> (voyez + la section suivante).</para> + </warning> + </sect2> + + <sect2> + <title>Utiliser FreeBSD-stable</title> + + <para> + <orderedlist> + + <listitem> + <para>Inscrivez-vous sur la &a.stable;. Vous serez tenu au + courant des dépendances de compilation qui peuvent intervenir + dans la branche <emphasis>-stable</emphasis> et de toute autre + question demandant une attention particulière. Les + développeurs publient aussi leurs annonces sur cette liste + lorsqu'ils envisagent une correction ou une modification + controversée, pour donner la possibilité aux utilisateurs + de répondre s'ils ont des questions à soulever en rapport + avec la modification proposée. Pour vous abonner à cette + liste, envoyez un courrier électronique à &a.majordomo; + contenant:</para> + <programlisting> +subscribe freebsd-stable + </programlisting> + <para>dans le corps du message. Vous pouvez aussi + mentionner:</para> + <programlisting> +help + </programlisting> + <para>et Majordomo vous enverra une aide complète sur la façon + de s'abonner et de se désabonner des autres listes de + diffusion que nous avons mises en place.</para> + </listitem> + + <listitem> + <para>Récupérez les sources sur + <hostid role="fqdn">ftp.FreeBSD.ORG</hostid>. Il y a trois + façons de le faire:</para> + + <orderedlist> + + <listitem> + <para>Utilisez la fonctionnalité + <link linkend="ctm"><application>CTM</application></link>. + A moins que vous n'ayez une bonne connexion TCP/IP bon + marché, c'est la bonne façon de procéder.</para> + </listitem> + + <listitem> + <para>Utilisez le programme + <link linkend="cvsup">cvsup</link> avec ce fichier + <ulink + url="ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current +/src/share/examples/cvsup/stable-supfile">supfile</ulink>. + C'est la méthode recommandée en second lieu, parce + qu'elle vous permet de ne récupérer la totalité des + sources que la première fois et de n'avoir ensuite + que les différences. De nombreuses personnes exécutent + <command>cvsup</command> depuis <command>cron</command> + et maintiennent ainsi automatiquement à jour leurs + sources.</para> + </listitem> + + <listitem> + <para>Utilisez <command>ftp</command>. L'arborescence des + sources de FreeBSD-stable est toujours + “exportée” dans: <ulink + url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/FreeBSD-stable">ftp://ftp.FreeBSD.ORG/pub/FreeBSD/FreeBSD-stable</ulink>.</para> + <para>Nous employons aussi <command>wu-ftpd</command> qui + permet de récupérer sous forme d'archive compressée un + sous-répertoire complet. e.g., si vous voyez:</para> + + <informalexample> + <screen>usr.bin/lex</screen> + </informalexample> + + <para>vous pouvez taper: + + <informalexample> + <screen><prompt>ftp></prompt> <userinput>cd usr.bin +</userinput> +<prompt>ftp></prompt> <userinput>get lex.tar.Z</userinput></screen> + </informalexample> + + et il vous transmettra un fichier d'archive compressée de + tout le répertoire.</para> + </listitem> + + </orderedlist> + + </listitem> + + <listitem> + <para>S'il vous faut un accès rapide aux sources au fur et à + mesure de vos besoins, et que vous n'avez pas de problème de + bande passante, utilisez <command>cvsup</command> ou + <command>ftp</command>. Sinon, employez + <application>CTM</application>.</para> + </listitem> + + <listitem> + <para>Avant de compiler <foreignphrase>-stable</foreignphrase>, + lisez attentivement le <filename>Makefile</filename> dans + <filename>/usr/src</filename>. Vous devriez au moins lancer + une première fois un + <link linkend="makeworld"><command>make world</command></link> + intégral, comme étape nécessaire à votre processus de mise à + niveau. Lire la &a.stable; vous tiendra au courant des + autres procédures de transition qui sont parfois + nécessaires lorsque nous préparons la prochaine + version.</para> + </listitem> + + </orderedlist> + + </para> + + </sect2> + </sect1> + + <sect1 id="synching"> + <title>Synchroniser l'arborescence des sources par Internet</title> + + <para><emphasis>Contribution de &a.jkh;.</emphasis></para> + + <para>Il y a différentes façons d'utiliser une connexion Internet + (ou le courrier électronique) pour garder à jour ses sources d'un + domaine donné, ou de l'ensemble, du projet FreeBSD, selon ce qui + vous intéresse. Les principaux services que nous fournissons sont + <link linkend="anoncvs">CVS anonyme</link>, + <link linkend="cvsup">CVSup</link> et + <link linkend="ctm">CTM</link>.</para> + + <para><application>CVS anonyme</application> et + <application>CVSup</application> utilisent une méthode de mise à + jour pilotée par le client - <foreignphrase><emphasis>pull</emphasis></foreignphrase>. + Dans le cas de <application>CVSup</application>, l'utilisateur + (ou une procédure <command>cron</command>) appelle le + programme <command>cvsup</command>, qui interagit avec un serveur + <command>cvsupd</command> ailleurs, pour mettre à jour ses fichiers. + Vous recevez les mises à jour dans leur état courant, et vous ne les + recevez uniquement que quand vous les voulez. Il est facile de + limiter ces mises à jour aux fichiers ou répertoires particuliers qui + vous intéressent. Les mises à jour sont générées à la volée par le + serveur, selon ce que vous avez déjà, et ce que vous voulez. + <application>CVS anonyme</application> est un peu plus simpliste que + <application>CVSup</application>, car ce n'est qu'une extension de + <application>CVS</application> qui permet de récupérer des + modifications directement d'une archive CVS distante. Pour cela, + <application>CVSup</application> est beaucoup plus efficace, mais + <application>CVS anonyme</application> est plus facile à + utiliser.</para> + + <para><application>CTM</application>, à l'inverse, ne compare pas + interactivement les sources dont vous disposez et ceux qui sont + sur l'archive de référence. Au lieu de cela, une procédure qui + identifie les modifications intervenues depuis qu'elle a été exécutée + pour la dernière fois, est lancée plusieurs fois par jour sur + l'archive de référence, les modifications détectées sont compressées, + affectées d'un numéro de séquence et encodées pour pouvoir être + envoyées par courrier électronique (ASCII imprimable uniquement). + Une fois reçues, ces “deltas CTM” peuvent être passés + à l'utilitaire + <citerefentry><refentrytitle>ctm_rmail</refentrytitle><manvolnum>1</manvolnum></citerefentry>, + qui les décodera, les contrôlera et appliquera les modifications à + l'exemplaire des sources de l'utilisateur. Cette méthode est beaucoup + plus efficace que <application>CVSup</application> et consomme + beaucoup moins de ressources de notre serveur, parce que c'est un + modèle piloté par le + serveur - <foreignphrase><emphasis>push</emphasis></foreignphrase> - plutôt que + par l'utilisateur - <foreignphrase><emphasis>pull</emphasis></foreignphrase>.</para> + + <para>Il y a quelques contre-parties, bien sûr. Si vous effacez par + inadvertance des parties de votre archive, + <application>CVSup</application> s'en apercevra et vous reconstruira + les parties abîmées. <application>CTM</application> ne le fera pas, + et si vous effacez des parties de l'arborescence des sources (et + n'avez pas fait de sauvegarde), vous devrez repartir de zéro (à partir + du plus récent “delta de base” sous CVS) et tout + reconstituer avec CTM ou, avec CVS anonyme, effacer les parties + endommagées et resynchroniser.</para> + + <para>Pour plus d'informations sur + <application>CVS anonyme</application>, <application>CTM</application> + et <application>CVSup</application>, reportez-vous s'il vous plaît à + l'une des sections qui suivent.</para> + + <sect2 id="anoncvs"> + <title>CVS Anonyme</title> + + <para><emphasis>Contribution de &a.jkh;</emphasis></para> + + <sect3> + <title><anchor id="anoncvs-intro">Introduction</title> + + <para>CVS anonyme (ou, comme on l'appelle aussi, + <emphasis>anoncvs</emphasis>) est une des fonctionnalités des + utilitaires CVS livrés avec FreeBSD qui permet la synchronisation + avec une archive CVS sur une machine distante. Elle permet, entre + autres, aux utilisateurs de FreeBSD, de lire, sans autorisation + particulière, les archives disponibles sur l'un des serveurs + <foreignphrase>anoncvs</foreignphrase> officiels du projet FreeBSD. + Pour l'utiliser, il suffit simplement de définir la variable + d'environnement <envar>CVSROOT</envar> pour qu'elle pointe sur le + serveur <foreignphrase>anoncvs</foreignphrase> voulu, et d'employer + ensuite la commande + <citerefentry><refentrytitle>cvs</refentrytitle> <manvolnum>1</manvolnum></citerefentry> + pour y accéder de la même manière qu'à une archive locale.</para> + + <para> Bien que l'on puisse aussi dire que les services <link + linkend="cvsup">CVSup</link> et <emphasis>anoncvs</emphasis> + aient essentiellement la même fonction, il y a des nuances diverses + qui peuvent influencer l'utilisateur dans son choix d'une méthode + de synchronisation. En résumé, <application>CVSup</application> + utilise beaucoup plus efficacement les ressources réseau et est de + loin la méthode la plus sophistiquée des deux, mais cela a un prix. + Pour employer <application>CVSup</application>, il faut d'abord + installer et configurer un programme client spécialisé avant de + pouvoir récupérer quoi que ce soit, et il faut ensuite travailler + par sous-ensembles relativements importants, que + <application>CVSup</application> appelle + <emphasis>catalogues</emphasis>.</para> + + <para><application>anoncvs</application>, au contraire, peut être + utilisé pour examiner n'importe quoi, d'un seul fichier à un + programme particulier (tel que <command>ls</command> ou + <command>grep</command>) en faisant référence au nom du module CVS. + <application>anoncvs</application> ne sert bien sûr qu'à lire les + archives CVS, si donc vous avez l'intention de développer localement + sur une archive partagée avec le projet FreeBSD, alors vous n'avez + d'autre choix que <application>CVSup</application>.</para> + </sect3> + + <sect3> + <title><anchor id="anoncvs-usage">Utiliser CVS anonyme</title> + + <para>Configurer <citerefentry> + <refentrytitle>cvs</refentrytitle> + <manvolnum>1</manvolnum> + </citerefentry> pour utiliser une archive CVS anonyme consiste + simplement à définir la variable d'environnement + <envar>CVSROOT</envar> pour qu'elle pointe sur l'un des serveurs + <emphasis>anoncvs</emphasis> du projet FreeBSD. A la date de + rédaction de ce document, les serveurs suivants sont + disponibles:</para> + + <itemizedlist> + <listitem> + <para><emphasis>USA</emphasis>: + anoncvs@anoncvs.freebsd.org:/cvs</para> + </listitem> + </itemizedlist> + + <para>Comme CVS vous permet de + récupérer - “<foreignphrase>check out</foreignphrase>” - pratiquement + n'importe quelle version ayant existé (ou, dans certains cas, à + venir <!-- smiley -->:) des sources de FreeBSD, vous devrez + maîtriser l'indicateur de révision (<option>-r</option>) de + <citerefentry><refentrytitle>cvs</refentrytitle> <manvolnum>1</manvolnum> </citerefentry> + et connaître les valeurs qu'il peut prendre dans les archives du + projet FreeBSD.</para> + + <para>Il y a deux sortes d'étiquettes, les étiquettes de révision + et les étiquettes de branches. Les étiquettes de révision + s'appliquent à une révision particulière. Leur signification ne + varie pas d'un jour à l'autre. Les étiquettes de branche, à + l'inverse, se rapportent à la dernière révision sur une branche + particulière à un moment donné. Comme les étiquettes de branche + ne se rapportent pas à une révision particulière, elles peuvent + désigner demain quelque chose de différent de ce qu'elles + référencent aujourd'hui.</para> + + <para>Voici les étiquettes de branches qui peuvent intéresser les + utilisateurs:</para> + + <variablelist> + <varlistentry> + <term>HEAD</term> + + <listitem> + <para>Nom symbolique pour la branche principale de + développement, ou FreeBSD-current. C'est aussi la valeur par + défaut lorsque la révision n'est pas précisée.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>RELENG_2_2</term> + + <listitem> + <para>Branche de développement de FreeBSD-2.2.x, connue aussi + sous le nom de FreeBSD-stable. Ne s'applique pas au + catalogue des logiciels portés.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>RELENG_2_1_0</term> + + <listitem> + <para>Branche de développement de FreeBSD-2.1.x - cette branche + est largement obsolète. Ne s'applique pas au catalogue des + logiciels portés.</para> + </listitem> + </varlistentry> + </variablelist> + + <para>Voici les étiquettes de révision qui peuvent vous + intéresser:</para> + + <variablelist> + <varlistentry> + <term>RELENG_2_2_6_RELEASE</term> + + <listitem> + <para>FreeBSD-2.2.6. Ne s'applique pas au catalogue des + logiciels portés.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>RELENG_2_2_5_RELEASE</term> + + <listitem> + <para>FreeBSD-2.2.5. Ne s'applique pas au catalogue des + logiciels portés.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>RELENG_2_2_2_RELEASE</term> + + <listitem> + <para>FreeBSD-2.2.2. Ne s'applique pas au catalogue des + logiciels portés.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>RELENG_2_2_1_RELEASE</term> + + <listitem> + <para>FreeBSD-2.2.1. Ne s'applique pas au catalogue des + logiciels portés.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>RELENG_2_2_0_RELEASE</term> + + <listitem> + <para>FreeBSD-2.2.0. Ne s'applique pas au catalogue des + logiciels portés.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>RELENG_2_1_7_RELEASE</term> + + <listitem> + <para>FreeBSD-2.1.7. Ne s'applique pas au catalogue des + logiciels portés.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>RELENG_2_1_6_1_RELEASE</term> + + <listitem> + <para>FreeBSD-2.1.6.1. Ne s'applique pas au catalogue des + logiciels portés.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>RELENG_2_1_6_RELEASE</term> + + <listitem> + <para>FreeBSD-2.1.6. Ne s'applique pas au catalogue des + logiciels portés.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>RELENG_2_1_5_RELEASE</term> + + <listitem> + <para>FreeBSD-2.1.5. Ne s'applique pas au catalogue des + logiciels portés.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>RELENG_2_1_0_RELEASE</term> + + <listitem> + <para>FreeBSD-2.1.0. Ne s'applique pas au catalogue des + logiciels portés.</para> + </listitem> + </varlistentry> + </variablelist> + + <para>Lorsque vous donnez une étiquette de branche, vous obtenez + normalement la dernière version des fichiers de cette branche de + développement. Si vous voulez une version antérieure, vous pouvez + l'obtenir en précisant la date avec l'indicateur + <option>-D date</option>. Reportez-vous au pages de manuel de + <citerefentry><refentrytitle>cvs</refentrytitle> <manvolnum>1</manvolnum> </citerefentry> + pour plus de détails.</para> + </sect3> + + <sect3> + <title>Exemples</title> + + <para>Bien qu'il soit vraiment conseillé de lire attentivement les + pages de manuel de + <citerefentry><refentrytitle>cvs</refentrytitle> <manvolnum>1</manvolnum></citerefentry> + avant de faire quoi que ce soit, voici quelques exemples rapides + qui vous montrent essentiellement comment utiliser CVS + anonyme:</para> + + <example> + <title>Récupérer quelque chose de -current (<citerefentry> + <refentrytitle>ls</refentrytitle> + <manvolnum>1</manvolnum></citerefentry>) et l'effacer + ensuite:</title> + + <screen> +&prompt.user; <userinput>setenv CVSROOT anoncvs@anoncvs.freebsd.org:/cvs</userinput> +&prompt.user; <userinput>cvs co ls</userinput> +&prompt.user; <userinput>cvs release -d ls</userinput></screen> + </example> + + <example> + <title>Récupérer la version de <citerefentry> + <refentrytitle>ls</refentrytitle> + <manvolnum>1</manvolnum></citerefentry> sur la branche + 2.2-stable:</title> + + <screen> +&prompt.user; <userinput>setenv CVSROOT anoncvs@anoncvs.freebsd.org:/cvs</userinput> +&prompt.user; <userinput>cvs co -rRELENG_2_2 ls</userinput> +&prompt.user; <userinput>cvs release -d ls</userinput></screen> + </example> + + <example> + <title>Générer la liste des différences + (<foreignphrase>unidiffs(</foreignphrase>) entre les versions + FreeBSD 2.2.2 et FreeBSD 2.2.6 de + <citerefentry><refentrytitle>ls</refentrytitle> <manvolnum>1</manvolnum></citerefentry>:</title> + + <screen> +&prompt.user; <userinput>setenv CVSROOT anoncvs@anoncvs.freebsd.org:/cvs</userinput> +&prompt.user; <userinput>cvs rdiff -u -rRELENG_2_2_2_RELEASE -rRELENG_2_2_6_RELEASE ls</userinput></screen> + </example> + + <example> + <title>Savoir quels autres noms de modules peuvent être + utilisés:</title> + + <screen> +&prompt.user; <userinput>setenv CVSROOT anoncvs@anoncvs.freebsd.org:/cvs</userinput> +&prompt.user; <userinput>cvs co modules</userinput> +&prompt.user; <userinput>more modules/modules</userinput> +&prompt.user; <userinput>cvs release -d modules</userinput></screen> + </example> + </sect3> + + <sect3> + <title>Autres ressources</title> + + <para>Les autres ressources supplémentaires suivantes peuvent être + utiles pour apprendre à se servir de CVS:</para> + + <itemizedlist> + <listitem> + <para><ulink + url="http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/cvs/">Guide CVS</ulink> de “Cal Poly.”</para> + </listitem> + + <listitem> + <para><ulink url="http://www.cyclic.com">Cyclic + Software</ulink>, qui maintiennent commercialement CVS.</para> + </listitem> + + <listitem> + <para><ulink + url="http://www.freebsd.org/cgi/cvsweb.cgi">CVSWeb</ulink> + est l'interface Web pour CVS du projet FreeBSD.</para> + </listitem> + </itemizedlist> + </sect3> + </sect2> + + <sect2 id="ctm"> + <title><application>CTM</application></title> + + <para><emphasis>Contribution by &a.phk;. Mise à jour le + 19 Octobre 1997.</emphasis></para> + + <para><application>CTM</application> est une méthode pour synchroniser + une arborescence de répertoires deportée et une version centrale. + Elle a été développée pour être utilisée avec l'arborescence des + sources de FreeBSD, bien que d'autres puissent avec le temps la + trouver utile pour d'autres propos. Il existe actuellement très + peu, sinon aucune, documentation sur la façon de créer les deltas, + adressez-vous donc à &a.phk; pour avoir plus d'informations si vous + souhaitez utiliser <application>CTM</application> pour autre + chose.</para> + + <sect3> + <title>Pourquoi utiliser <application>CTM</application>?</title> + + <para><application>CTM</application> vous procurera un exemplaire + local de l'arborescence des sources de FreeBSD. Il y a plusieurs + “moutures” de l'arborescence disponibles. Que vous + vouliez garder à jour toute l'arborescence CVS ou seulement une + de ses branches, <application>CTM</application> peut vous + fournir ce dont vous avez besoin. Si vous développez activement + avec FreeBSD, mais ne disposez que d'une connectivité TCP/IP + peu fiable ou n'en avez pas du tout, ou voulez tout simplement + que les modifications vous soient automatiquement transmises, + CTM est ce qu'il vous faut. Il vous faudra jusqu'à trois deltas + par jour sur les branches les plus actives. Vous devriez toutefois + envisager de vous les faire envoyer automatiquement par courrier + électronique. La taille des mises à jour est toujours aussi petite + que possible. Typiquement moins de 5Ko, occasionnellement (une + fois sur 10), entre 10 et 50Ko, et de temps à autre, une grosse + modification de 100ko ou plus.</para> + + <para>Vous devrez aussi vous tenir au courant des différentes + contre-parties liées au fait de travailler directement avec + les sources en cours de développement plutôt qu'avec les + versions publiées. C'est particulièrement vrai si vous + choisissez les sources de la branche “-current”. + Je vous recommande alors de lire la section + <link linkend="current">Se synchroniser avec la version + -current de FreeBSD</link>.</para> + + </sect3> + + <sect3> + <title>Que vous faut-il pour utiliser + <application>CTM</application>?</title> + + <para>Vous aurez besoin de deux choses: le programme + <application>CTM</application> et les deltas initiaux à lui + fournir (pour vous mettre à jour avec la version + “courante”).</para> + + <para>Le programme <application>CTM</application> fait partie de + FreeBSD depuis la publication de la version 2.0, et se trouve + dans <filename>/usr/src/usr.sbin/CTM</filename>, si vous avez un + exemplaire des sources en ligne.</para> + + <para>Si vous utilisez une version de FreeBSD antérieure à la 2.0, + vous pouvez récupérer la version courante des sources de + <application>CTM</application> directement de:</para> + + <para><ulink + url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/FreeBSD-current/src/usr.sbin/ctm">ftp://ftp.FreeBSD.ORG/pub/FreeBSD/FreeBSD-current/src/usr.sbin/ctm</ulink></para> + + <para>Vous pouvez obtenir les “deltas” à fournir à + <application>CTM</application> de deux façons, par FTP ou par + courrier électronique. Si vous avec un accès FTP à l'Internet, + les sites FTP suivants supportent l'accès via + <application>CTM</application>:</para> + + <para><ulink + url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/CTM">ftp://ftp.FreeBSD.ORG/pub/FreeBSD/CTM</ulink></para> + + <para>ou reportez-vous à la section + <link linkend="mirrors-ctm">Sites miroirs</link>.</para> + + <para>Allez dans le répertoire qui vous concerne et commencez par + télécharger le fichier <filename>README</filename>.</para> + + <para>Si vous souhaitez récupérer vos deltas par courrier + électronique:</para> + + <para>Envoyez un courrier électronique à &a.majordomo; pour vous + abonner à l'une des listes de distribution + <application>CTM</application>. “ctm-cvs-cur” + comprend toute l'arborescence CVS. “ctm-src-cur” + concerne la dernière version de la branche de développement. + “ctm-src-2_2” s'applique à la branche 2.2-RELEASE, + etc. (Si vous ne savez pas comment vous abonner avec Majordomo, + envoyez un message commençant par le mot + <literal>help</literal> - vous recevrez un mode d'emploi + en retour.)</para> + + <para>Dès que vous commencer à recevoir vos mises à jour + <application>CTM</application> par courrier électronique, vous + pouvez utiliser le programme <symbol>ctm_rmail</symbol> pour les + décompacter et les appliquer. Vous pouvez de fait lancer le + programme <symbol>ctm_rmail</symbol> directement à partir d'une + entrée dans <filename>/etc/aliases</filename> si vous voulez + automatiser complètement le processus. Consultez les pages de + manuel de <symbol>ctm_rmail</symbol> pour plus de détails.</para> + + <note> + <para>Quelle que soit la méthode que vous utilisiez pour récupérer + vos deltas <application>CTM</application>, vous devriez vous + abonner à la liste de diffusion + <email>ctm-announce@FreeBSD.ORG</email>. Ce sera, dans l'avenir, + le seul endroit où les annonces concernant le fonctionnement du + système <application>CTM</application> seront faites. Envoyez + un courier à &a.majordomo; ne contenant que la ligne + <literal>subscribe ctm-announce</literal> pour être inscrit + sur la liste.</para> + </note> + </sect3> + + <sect3> + <title>Utiliser <application>CTM</application> pour la première + fois</title> + + <para>Avant de pouvoir utiliser les deltas + <application>CTM</application>, il vous faut un point de départ, + pour appliquer les deltas générés à partir de là.</para> + + <para>Vous devez d'abord savoir ce que vous avez déjà. Tout le monde + peut partir d'un répertoire “vide”. Néanmoins, comme + les arborescences représentent plusieurs dizaines de mégaoctets, + vous préférerez commencer avec ce que vous avez déjà sous la main. + Si vous disposez d'un version sur CD-ROM, vous pouvez copier ou + extraire le source initial qui s'y trouve. Cela vous évitera un + transfert de données conséquent.</para> + + <para>Une fois que vous avez repéré un point de départ significatif, + vous devez utiliser un delta de “transition” initial, + pour le transformer en une arborescence supportée par + <application>CTM</application>.</para> + + <para>Vous reconnaîtrez ces deltas de transition au + <literal>X</literal> qui suit leur numéro de séquence + (<filename>src-cur.3210XEmpty.gz</filename> par exemple). La + dénomination après le <filename>X</filename> + correspond à l'origine de votre “racine” initiale. + <filename>Empty</filename> est un répertoire vide, + <filename>R225</filename> serait la version 2.2.5, + etc. La règle est qu'une transition de base à partir de + <filename>Empty</filename> est générée tous les 100 deltas. Au + passage, elles sont volumineuses! de 25 à 30 mégaoctets de données + compressées avec <command>gzip</command> est une taille habituelle + pour les deltas <filename>XEmpty</filename>.</para> + + <para>Une fois que vous avez sélectionné un delta initial, il vous + faudra aussi tous les deltas de numéro supérieur qui le + suivent.</para> + + </sect3> + + <sect3> + <title>Utiliser au quotidien <application>CTM</application></title> + + <para>Pour appliquer les deltas, tapez simplement:</para> + + <informalexample> + <screen>&prompt.root; <userinput>cd /où/vous/voulez/mettre/les/fichiers</userinput> +&prompt.root; <userinput>ctm -v -v /où/vous/mettez/vos/deltas/src-xxx.*</userinput></screen> + </informalexample> + + <para><application>CTM</application> reconnait les deltas qui ont + été compressés avec <command>gzip</command>, vous n'avez donc + pas besoin de les décompresser avant, ce qui économise de + l'espace disque.</para> + + <para>A moins d'être absolument sûr du résultat, + <application>CTM</application> ne touchera pas à votre + arborescence. Pour contrôler la validité d'un delta, vous + pouvez aussi utiliser l'indicateur <option>-c</option> et + <application>CTM</application> ne modifiera alors pas votre + arborescence; il vérifiera simplement l'intégrité du delta + et regardera s'il peut s'appliquer proprement à votre + arborescence en l'état.</para> + + <para>Il y a aussi d'autres options pour + <application>CTM</application>, voyez les pages de manuel ou lisez + les sources pour plus d'informations.</para> + + <para>Je serais aussi très content si quelqu'un voulait m'aider à + mettre au point l'“interface utilisateur”, parce que + je me suis rendu compte que je n'arrivais pas à me décider quant + à ce que devait faire telle ou telle option, quand et + comment...</para> + + <para>C'est à peu près tout. Chaque fois que vous recevez un delta, + passez-le à <application>CTM</application> pour tenir à jour + votre arborescence des sources.</para> + + <para>N'effacez pas les deltas s'il vous est difficile de les + télécharger de nouveau. Vous pouvez avoir en besoin si quelque + chose se produit. Même si vous n'avez que des disquettes, + envisagez d'utiliser <command>fdwrite</command> pour en faire + une copie.</para> + + </sect3> + + <sect3> + <title>Conserver vos modifications locales</title> + + <para>Si vous êtes développeur, vous voudrez expérimenter et + modifier des fichiers de l'arborescence des sources. + <application>CTM</application> supporte de façon limitée les + modifications locales: avant de regarder si le fichier + <filename>foo</filename> existe, il regarde d'abord s'il y a + un fichier <filename>foo.ctm</filename>. Si ce fichier existe, + <application>CTM</application> l'utilise au lieu de + <filename>foo</filename>.</para> + + <para>Ce comportement vous permet de conserver de façon simple + des modifications locales: copiez simplement les fichiers que + vous envisagez de modifier dans des fichiers de même nom, mais + avec le suffixe <filename>.ctm</filename>. Vous pouvez alors + tranquillement bidouiller le code, pendant que + <application>CTM</application> maintient le fichier + <filename>.ctm</filename> à jour.</para> + + </sect3> + + <sect3> + <title>D'autres options intéressantes de + <application>CTM</application></title> + + <sect4> + <title>Savoir avec précision ce que va modifier une mise à + jour</title> + + <para>Vous pouvez connaître la liste des modifications que + <application>CTM</application> appliquera à votre archive + des sources en utilisant <application>CTM</application> + avec l'option <option>-l</option>.</para> + + <para>C'est utile si vous voulez conserver la trace des + modifications, pré- ou post-processer les fichiers modifiés + de quelque façon que ce soit, ou vous sentez un tantinet + paranoïde <!-- smiley -->:-).</para> + + </sect4> + + <sect4> + <title>Faire des sauvegardes avant la mise à jour</title> + + <para>Vous souhaiterez parfois faire des sauvegardes de tous + les fichiers qui seront touchés par une mise à jour + <application>CTM</application>.</para> + + <para>Avec l'option <option>-B fichier_de_sauvegarde</option>, + <application>CTM</application> sauvegarde tous les fichiers + qui seront modifiés par un delta + <application>CTM</application> donné dans + <filename>fichier_de_sauvegarde</filename>.</para> + + </sect4> + + <sect4> + <title>Restreindre la liste des fichiers touchés par une mise + à jour</title> + + <para>Vous voudrez parfois restreindre le champ d'application + d'une mise à jour <application>CTM</application> donnée, ou + serez intéressé à n'extraire que quelques fichiers d'une + séquence de deltas.</para> + + <para>Vous pouvez contrôler la liste des fichiers sur laquelle + <application>CTM</application> travaille en donnant comme + filtre une expression régulière avec les options + <option>-e</option> et <option>-x</option>.</para> + + <para>Par exemple, pour extraire une version à jour de + <filename>lib/libc/Makefile</filename> de la série de + deltas <application>CTM</application> que vous avez sauvegardés, + utilisez les commandes:</para> + + <informalexample> + <screen>&prompt.root; <userinput>cd /où/vous/voulez/l/extraire/</userinput> +&prompt.root; <userinput>ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.*</userinput></screen> + </informalexample> + + <para>Pour chaque fichier du delta <application>CTM</application>, + les options <option>-e</option> et <option>-x</option> sont + appliquées dans l'ordre donné sur la ligne de commande. Le + fichier est traité par <application>CTM</application> uniquement + s'il est encore sélectionné après que toutes les options + <option>-e</option> et <option>-x</option> lui aient été + appliquées.</para> + + </sect4> + </sect3> + + <sect3> + <title>Perspectives pour <application>CTM</application></title> + + <para>Il y en a des tonnes:</para> + + <itemizedlist> + + <listitem> + <para>Utilisez une méthode ou une autre d'authentification + au système <application>CTM</application> pour pouvoir + détecter la + substitution - <foreignphrase>spoofing</foreignphrase> - de + mises à jour.</para> + </listitem> + + <listitem> + <para>Faire le ménage dans les options de + <application>CTM</application>, elles commencent à engendrer + de la confusion et à contredire l'intuition.</para> + </listitem> + + </itemizedlist> + + <para>La mauvaise nouvelle est que je suis très occupé, toute aide + pour le faire sera vraiment la bienvenue. N'oubliez pas aussi de + me dire ce que vous souhaiteriez...</para> + + </sect3> + + <sect3> + <title>Divers</title> + + <para>Tous les sources “infectés par le DES” (e.g. + restreints à l'exportation) ne sont pas inclus. Vous n'aurez + que la version “internationale”. Si cela rencontre + suffisamment d'intérêt, nous mettrons aussi en place une séquence + <literal>sec-cur</literal>. Il y a aussi une séquence de deltas + pour le “catalogue des logiciels portés”, mais elle + n'a pas reçue beaucoup d'écho jusqu'ici. Dites-moi si vous voulez + une liste de courrier électronique pour cela aussi et + j'envisagerai de la mettre en place.</para> + + </sect3> + + <sect3> + <title>Remerciements</title> + + <variablelist> + <varlistentry><term>&a.bde;,</term> + <listitem> + <para>pour son crayon pointé et ses commentaires + inestimables.</para> + + </listitem> + </varlistentry> + + <varlistentry><term>&a.sos;,</term> + + <listitem> + <para>pour sa patience.</para> + + </listitem> + </varlistentry> + + <varlistentry><term>Stephen McKay,</term> + + <listitem> + <para>a écrit <command>ctm_[rs]mail</command>, + très apprécié.</para> + + </listitem> + </varlistentry> + + <varlistentry><term>&a.jkh;,</term> + + <listitem> + <para>pour avoir toujours insisté pour que je + l'améliore.</para> + + </listitem> + </varlistentry> + + <varlistentry><term>Tous les utilisateurs,</term> + + <listitem> + <para>J'espère qu'il vous convient...</para> + + </listitem> + </varlistentry> + </variablelist> + + + </sect3> + </sect2> + + <sect2 id="cvsup"> + <title><application>CVSup</application></title> + + <para><emphasis>Contribution de &a.jdp;</emphasis>.</para> + + <sect3 id="cvsup-intro"> + <title>Introduction</title> + + <para><application>CVSup</application> est un ensemble de logiciels + pour la distribution et la mise à jour d'arborescences de sources + à partir d'une archive originale sur une machine serveur distante. + Les sources de FreeBSD sont archivés avec CVS sur une machine + centrale de développement en Californie. Grâce à + <application>CVSup</application>, les utilisateurs de FreeBSD + peuvent facilement tenir à jour leur propre arborescence de + sources.</para> + + <para><application>CVSup</application> utilise le modèle + <emphasis>pull</emphasis> de mise à jour. Dans ce schéma, chaque + client réclame les mises à jour au serveur, si et quand il le + souhaite. Le serveur attend passivement les demandes de mises à + jour de ses clients. Toutes les mises à jour sont donc faites à + la demande du client. Le serveur n'envoie jamais de mise à jour + non sollicitée. Les utiliseurs doivent soit exécuter le client + <application>CVSup</application> à la main pour obtenir une mise + à jour, soit mettre en oeuvre une tâche + <command>cron</command> pour l'exécuter automatiquement et à + intervalles réguliers.</para> + + <para>Le terme <application>CVSup</application>, avec les + majuscules, désigne l'ensemble du logiciel. Ses principales + composantes sont le client <command>cvsup</command>, qui s'exécute + sur les machines de chaque utilisateur, et le serveur + <command>cvsupd</command>, qui tourne sur tous les sites miroir + de FreeBSD.</para> + + <para>En lisant la documentation et les listes de diffusion de + FreeBSD, vous trouverez des références à + <application>sup</application>. <application>Sup</application> + était le prédécesseur de <application>CVSup</application>, et + remplissait la même fonction. <application>CVSup</application> est + utilisé de la même façon que <application>sup</application> et, + emploie de fait des fichiers de configuration qui sont compatibles + avec ceux de <command>sup</command>. + <application>Sup</application> n'est plus utilisé pour le projet + FreeBSD, parce que <application>CVSup</application> est à la fois + plus rapide et plus souple.</para> + + </sect3> + + <sect3 id="cvsup-install"> + <title>Installation</title> + + <para>La méthode la plus facile pour installer + <application>CVSup</application>, si vous êtes sous FreeBSD 2.2 + ou ultérieur est d'utiliser le + <ulink url="ftp://ftp.freebsd.org/pub/FreeBSD/ports-current/net/cvsup.tar">logiciel + porté</ulink> du <link linkend="ports">catalogue</link> de + FreeBSD ou le + <ulink url="ftp://ftp.freebsd.org/pub/FreeBSD/packages-current/net/cvsup-15.3.tgz">“paquetage” + binaire</ulink> correspondant, selon que vous préfériez ou non le + compiler vous-même.</para> + + <para>Si vous êtes sous FreeBSD-2.1.6 ou 2.1.7, vous ne pouvez + malheureusement pas utiliser le binaire tel que, parce qu'il lui + faut une version de la bibliothèque C qui n'existait pas encore + sous FreeBSD-2.1.{6,7}. Vous pouvez malgré tout facilement vous + servir du + <ulink url="ftp://ftp.freebsd.org/pub/FreeBSD/ports-current/net/cvsup.tar">logiciel + porté</ulink>, tout comme sous FreeBSD 2.2. Décompressez + simplement l'archive, allez dans le sous-répertoire + <filename>cvsup</filename> et tapez + <command>make install</command>.</para> + + <para>Comme <application>CVSup</application> est écrit en <ulink + url="http://www.research.digital.com/SRC/modula-3/html/home.html">Modula-3</ulink>, et le “paquetage” et le logiciel porté ont + besoin que les bibliothèques d'exécution de Modula-3 soient + installées. Elles sont disponibles dans le portage + <ulink url="ftp://ftp.freebsd.org/pub/FreeBSD/ports-current/lang/modula-3-lib.tar">lang/modula-3-lib</ulink> + et dans le “paquetage” + <ulink url="ftp://ftp.freebsd.org/pub/FreeBSD/packages-current/lang/modula-3-lib-3.6.tgz">lang/modula-3-lib-3.6</ulink>. + Si vous suivez les instructions données pour + <command>cvsup</command>, ces bibliothèques seront compilées et/ou + installées automatiquement en même temps que le logiciel porté ou le + “paquetage” <application>CVSup</application>.</para> + + <para>Les bibliothèques Modula-3 sont assez volumineuses, et il + n'est pas immédiat de les rapatrier et les compiler. Pour cette + raison, une troisième possibilité est fournie. Vous pouvez vous + procurer les exécutables <emphasis>liés statiquement</emphasis> + de <application>CVSup</application> pour FreeBSD, soit du site de + distribution aux USA:</para> + + <itemizedlist> + + <listitem> + <para><ulink + url="ftp://ftp.freebsd.org/pub/FreeBSD/CVSup/cvsup-bin-15.3.tar.gz">ftp://ftp.freebsd.org/pub/FreeBSD/CVSup/cvsup-bin-15.3.tar.gz</ulink> (client avec interface homme/machine graphique).</para> + </listitem> + + <listitem> + <para><ulink + url="ftp://ftp.freebsd.org/pub/FreeBSD/CVSup/cvsup.nogui-bin-15.3.tar.gz">ftp://ftp.freebsd.org/pub/FreeBSD/CVSup/cvsup.nogui-bin-15.3.tar.gz</ulink> (client sans interface homme/machine graphique).</para> + </listitem> + + <listitem> + <para><ulink + url="ftp://ftp.freebsd.org/pub/FreeBSD/CVSup/cvsupd-bin-15.3.tar.gz">ftp://ftp.freebsd.org/pub/FreeBSD/CVSup/cvsupd-bin-15.3.tar.gz</ulink> (serveur).</para> + </listitem> + + </itemizedlist> + + <para>ou du site miroir en Allemagne:</para> + + <itemizedlist> + + <listitem> + <para><ulink + url="ftp://ftp.cs.tu-berlin.de/pub/FreeBSD/CVSup/cvsup-bin-15.3.tar.gz">ftp://ftp.cs.tu-berlin.de/pub/FreeBSD/CVSup/cvsup-bin-15.3.tar.gz</ulink> (client avec interface homme/machine graphique).</para> + </listitem> + + <listitem> + <para><ulink + url="ftp://ftp.cs.tu-berlin.de/pub/FreeBSD/CVSup/cvsup.nogui-bin-15.3.tar.gz">ftp://ftp.cs.tu-berlin.de/pub/FreeBSD/CVSup/cvsup.nogui-bin-15.3.tar.gz</ulink> (client sans interface homme/machine graphique).</para> + </listitem> + + <listitem> + <para><ulink + url="ftp://ftp.cs.tu-berlin.de/pub/FreeBSD/CVSup/cvsupd-bin-15.3.tar.gz">ftp://ftp.cs.tu-berlin.de/pub/FreeBSD/CVSup/cvsupd-bin-15.3.tar.gz</ulink> (serveur).</para> + </listitem> + + </itemizedlist> + + <para>La plupart des utilisateurs n'auront besoin que du client. Ces + exécutables n'utilisent rien d'autre et fonctionneront avec toutes + les versions de FreeBSD, de FreeBSD-2.1.0 à + FreeBSD-current.</para> + + <para>Pour résumer, les options pour installer CVSup sont:</para> + + <itemizedlist> + + <listitem> + <para>FreeBSD-2.2 ou ultérieur: binaire statique, logiciel + porté ou “paquetage”,</para> + </listitem> + + <listitem> + <para>FreeBSD-2.1.6, 2.1.7: binaire statique ou logiciel + porté,</para> + </listitem> + + <listitem> + <para>FreeBSD-2.1.5 ou antérieur: binaire statique.</para> + </listitem> + + </itemizedlist> + + </sect3> + + <sect3 id="cvsup-config"> + <title>Configuration</title> + + <para>Le fonctionnement de <application>CVSup</application> + est contrôlé par un fichier de configuration appelé fichier + <filename>supfile</filename>. Depuis FreeBSD-2.2, il y a + des exemples de fichiers <filename>supfile</filename> + dans le répertoire + <ulink url="file:/usr/share/examples/cvsup">/usr/share/examples/cvsup</ulink>. + Ces exemples sont aussi disponibles sur + <ulink url="ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/src/share/examples/cvsup/">ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/src/share/examples/cvsup/</ulink> + si la version de votre système est antérieure à la 2.2.</para> + + <para>Les informations du fichier <filename>supfile</filename> + répondent pour + <citerefentry><refentrytitle>cvsup</refentrytitle></citerefentry> + aux questions suivantes:</para> + + <itemizedlist> + + <listitem> + <para><link linkend="cvsup-config-files">Quels fichiers + voulez-vous télécharger?</link></para> + </listitem> + + <listitem> + <para><link linkend="cvsup-config-vers">Quelles versions de + ces fichiers voulez-vous?</link></para> + </listitem> + + <listitem> + <para><link linkend="cvsup-config-where">D'où voulez-vous les + télécharger?</link></para> + </listitem> + + <listitem> + <para><link linkend="cvsup-config-dest">Où voulez-vous les + mettre sur votre machine?</link></para> + </listitem> + + <listitem> + <para><link linkend="cvsup-config-status">Où voulez-vous + mettre les fichiers d'état de votre archive?</link></para> + </listitem> + + </itemizedlist> + + <para>Dans les sections qui suivent, nous allons renseigner un + fichier <filename>supfile</filename> typique en répondant une à + une à chacune de ces questions. Commençons par décrire la + structure d'ensemble d'un fichier + <filename>supfile</filename>.</para> + + <para>Un fichier <filename>supfile</filename> est un fichier texte. + Les commentaires débutent par un <literal>#</literal> et se + prolongent jusqu'à la fin de la ligne. Les lignes vides ou qui ne + contiennent que des commentaires sont ignorées.</para> + + <para>Les autres lignes décrivent les ensembles de fichiers que + l'utilisateur souhaite recevoir. Ces lignes commencent par le + nom d'un + “catalogue” - <foreignphrase>collection</foreignphrase>, + un regroupement logique de fichiers, défini par le serveur. + Le nom du catalogue dit au serveur quels fichiers vous voulez. + Ce nom est éventuellement suivi d'un ou plusieurs champs, séparés + par des blancs. Ces champs répondent aux questions listées + ci-dessus. Il y a deux sortes de champs: des indicateurs et des + valeurs. Un indicateur est un mot-clé autonome, e.g., + <literal>delete</literal> ou <literal>compress</literal>. Une + valeur commence aussi par un mot-clé, mais il est immédiatement + suivi - sans espace entre les deux - par un + <literal>=</literal> et un deuxième mot. Par exemple, + <literal>release=cvs</literal> est un champ définissant une + valeur.</para> + + <para>Un fichier <filename>supfile</filename> décrit en général plus + d'un catalogue à télécharger. Un façon de construire un fichier + <filename>supfile</filename> consiste à préciser explicitement + tous les champs nécessaires pour chaque catalogue. Cela génère + cependant des fichiers <filename>supfile</filename> avec des + lignes assez longues, et ce n'est pas très pratique parce que la + plupart des champs sont les mêmes pour tous les catalogues du + fichier <filename>supfile</filename>. + <application>CVSup</application> fournit un mécanisme pour + définir des valeurs par défaut pour éviter ce problème. Les lignes + qui commencent par le nom du pseudo-catalogue spécial + <literal>*default</literal> servent à définir des indicateurs et + des valeurs qui seront pris par défaut pour les catalogues listés + ensuite dans le fichier <filename>supfile</filename>. Une valeur + par défaut peut-être surchargée pour un catalogue particulier, en + associant au catalogue lui-même une valeur différente. Les valeurs + par défaut peuvent être aussi redéfinies, ou bien on peut en + définir de nouvelles, en cours de fichier + <filename>supfile</filename>, par de nouvelles lignes + <literal>*default</literal>.</para> + + <para>Sachant cela, nous allons maintenant mettre au point un + fichier <filename>supfile</filename> pour télécharger et mettre + à jour l'arborescence principale de + <link linkend="current">FreeBSD-current</link>.</para> + + <itemizedlist> + + <listitem> + <para>Quels fichiers voulons-nous télécharger?<anchor + id="cvsup-config-files"></para> + + <para>Les fichiers disponibles via + <application>CVSup</application> sont regroupés par + “catalogues” - <foreignphrase>collections</foreignphrase>. + Les catalogues disponibles sont décrits + <link linkend="cvsup-collec">ici</link>. Dans notre exemple, + nous souhaitons recevoir toute l'arborescence principale du + système FreeBSD. Il y a un unique gros catalogue + <literal>src-all</literal> qui correspond à tout cela, à + l'exception du code de cryptographie dont l'exportation est + soumise à des restrictions. Supposons que nous soyons aux + USA ou au Canada. Nous pouvons alors obtenir le code de + cryptographie avec le catalogue supplémentaire + <literal>cvs-crypto</literal>. Pour commencer à renseigner + notre fichier <filename>supfile</filename>, + nous listons simplement ces catalogues, chacun sur une + ligne.</para> + + <programlisting> +src-all +cvs-crypto + </programlisting> + </listitem> + + <listitem> + <para>Quelles version(s) voulons-nous télécharger?<anchor + id="cvsup-config-vers"></para> + + <para>Avec <application>CVSup</application>, vous pouvez obtenir + pratiquement n'importe quelle version qui ait existé des + sources. C'est possible parce que le serveur + <citerefentry><refentrytitle>cvsupd</refentrytitle></citerefentry> + travaille directement à partir des archives CVS, qui + contiennent toutes les versions. Vous dites quelle version + vous voulez en utilisant les valeurs + <literal>tag=</literal> et <option>date=</option>.</para> + + <warning> + <para>Faites très attention à définir correctement la valeur + <literal>tag=</literal>. Il y a des étiquettes qui ne + s'appliquent qu'à certains catalogues ou fichiers. Si + l'étiquette que vous donnez n'est pas valable ou mal + orthographiée, CVSup effacera des fichiers que vous ne + vouliez probablement pas supprimer. En particulier, + n'utilisez <emphasis>que</emphasis> <literal>tag=.</literal> + pour les catalogues <literal>ports-*</literal>.</para> + </warning> + + <para>Les valeurs données avec <literal>tag=</literal> sont + des étiquettes symboliques définies dans les archives. Il + y a deux sortes d'étiquettes, les étiquettes de révision + et les étiquettes de branches. Les étiquettes de révision + s'appliquent à une révision particulière. Leur signification + ne varie pas d'un jour à l'autre. Les étiquettes de branche, + à l'inverse, se rapportent à la dernière révision sur une + branche particulière à un moment donné. Comme les étiquettes + de branche ne se rapportent pas à une révision particulière, + elles peuvent désigner demain quelque chose de différent de + ce qu'elles référencent aujourd'hui.</para> + + <para>Voici les étiquettes de branches qui peuvent intéresser les + utilisateurs:</para> + + <variablelist> + <varlistentry> + <term>tag=.</term> + + <listitem> + <para>La branche principale de développement, appelée aussi + FreeBSD-current.</para> + <note> + <para>Le <literal>.</literal> n'est pas un + ponctuation; C'est le nom de l'étiquette. + S'applique à tous les catalogues.</para> + </note> + </listitem> + </varlistentry> + + <varlistentry><term>tag=RELENG_2_2</term> + + <listitem> + <para>Branche de développement de FreeBSD-2.2.x, connue aussi + sous le nom de FreeBSD-stable. Ne s'applique pas aux + catalogues ports-*.</para> + </listitem> + </varlistentry> + + <varlistentry><term>tag=RELENG_2_1_0</term> + + <listitem> + <para>Branche de développement de FreeBSD-2.1.x - cette branche + est largement obsolète. Ne s'applique pas aux catalogues + ports-*.</para> + </listitem> + </varlistentry> + </variablelist> + + <para>Voici les étiquettes de révision qui peuvent vous + intéresser:</para> + + <para> + <variablelist> + <varlistentry><term>tag=RELENG_2_2_6_RELEASE</term> + <listitem> + <para>FreeBSD-2.2.6. Ne s'applique pas aux + catalogues ports-*.</para> + </listitem> + </varlistentry> + + <varlistentry><term>tag=RELENG_2_2_5_RELEASE</term> + + <listitem> + <para>FreeBSD-2.2.5. Ne s'applique pas aux + catalogues ports-*.</para> + </listitem> + </varlistentry> + + <varlistentry><term>tag=RELENG_2_2_2_RELEASE</term> + + <listitem> + <para>FreeBSD-2.2.2. Ne s'applique pas aux + catalogues ports-*.</para> + </listitem> + </varlistentry> + + <varlistentry><term>tag=RELENG_2_2_1_RELEASE</term> + + <listitem> + <para>FreeBSD-2.2.1. Ne s'applique pas aux + catalogues ports-*.</para> + </listitem> + </varlistentry> + + <varlistentry><term>tag=RELENG_2_2_0_RELEASE</term> + + <listitem> + <para>FreeBSD-2.2.0. Ne s'applique pas aux + catalogues ports-*.</para> + </listitem> + </varlistentry> + + <varlistentry><term>tag=RELENG_2_1_7_RELEASE</term> + + <listitem> + <para>FreeBSD-2.1.7. Ne s'applique pas aux + catalogues ports-*.</para> + </listitem> + </varlistentry> + + <varlistentry><term>tag=RELENG_2_1_6_1_RELEASE</term> + + <listitem> + <para>FreeBSD-2.1.6.1. Ne s'applique pas aux + catalogues ports-*.</para> + </listitem> + </varlistentry> + + <varlistentry><term>tag=RELENG_2_1_6_RELEASE</term> + + <listitem> + <para>FreeBSD-2.1.6. Ne s'applique pas aux + catalogues ports-*.</para> + </listitem> + </varlistentry> + + <varlistentry><term>tag=RELENG_2_1_5_RELEASE</term> + + <listitem> + <para>FreeBSD-2.1.5. Ne s'applique pas aux + catalogues ports-*.</para> + </listitem> + </varlistentry> + + <varlistentry><term>tag=RELENG_2_1_0_RELEASE</term> + + <listitem> + <para>FreeBSD-2.1.0. Ne s'applique pas aux + catalogues ports-*.</para> + </listitem> + </varlistentry> + </variablelist> + </para> + + <warning> + <para>Faites très attention à mentionner précisement + l'étiquette exacte. <application>CVSup</application> + ne sait pas différencier une étiquette valide d'une + étiquette qui ne l'est pas. Si vous orthographiez mal + l'étiquette, <application>CVSup</application> se comportera + comme si vous aviez donné une étiquette valide qui ne + se réfère à aucun fichier et supprimera alors tous les + sources que vous avez déjà.</para> + </warning> + + <para>Lorsque vous donnez une étiquette de branche, vous + recevez normalement les dernières versions des fichiers + sur cette branche de développement. Si vous voulez récupérer + des versions antérieures, vous pouvez le faire en donnant + une date avec le champ <option>date=</option>. Les pages + de manuel de + <citerefentry><refentrytitle>cvsup</refentrytitle><manvolnum>1</manvolnum></citerefentry> + vous expliquent comment le faire.</para> + + <para>Dans notre exemple, nous voulons obtenir + FreeBSD-current. Nous ajoutons alors la ligne suivante au + début de notre fichier <filename>supfile</filename>:</para> + + <programlisting> +*default tag=. + </programlisting> + + <para>Ne spécifier ni le champ <literal>tag=</literal> ni le + champ <literal>date=</literal> est un cas particulier + important. Vous obtenez alors les fichiers RCS directement + des archives du serveur CVS, plutôt qu'une version donnée. + Les développeurs préfèrent généralement cette façon de + travailler. En maintenant une version des archives + elles-mêmes sur leur système, ils ont la possibilité + de consulter l'historique des révisions et d'accéder aux + versions antérieures des fichiers. Cet avantage ne s'obtient + cependant qu'au prix d'une consommation importante d'espace + disque.</para> + </listitem> + + <listitem> + <para>D'où voulons-nous les télécharger?<anchor + id="cvsup-config-where"></para> + + <para>Nous employons le champ <literal>host=</literal> pour + dire à <command>cvsup</command> où récupérer ses mises à + jour. N'importe lequel des + <link linkend="mirrors-cvsup">sites miroir CVSup</link> fera + l'affaire, bien que vous devriez essayer de choisir un site + proche de vous. Dans notre exemple, nous utiliserons le site + principal de distribution de FreeBSD, + <hostid role="fqdn">cvsup.FreeBSD.org</hostid>:</para> + + <programlisting> +*default host=cvsup.FreeBSD.org + </programlisting> + + <para>Lors de l'exécution de <command>cvsup</command>, vous + pouvez surcharger cette définition sur la ligne de commande, + avec l'option <option>-h + <replaceable>nom_de_machine</replaceable></option>.</para> + </listitem> + + <listitem> + <para>Où voulons-nous les mettre sur notre + machine?<anchor id="cvsup-config-dest"></para> + + <para>Le champ <literal>prefix=</literal> dit à + <command>cvsup</command> où mettre les fichiers qu'il obtient. + Dans l'exemple, nous mettrons les fichiers source directement + dans notre arborescence des sources, + <filename>/usr/src</filename>. Le répertoire + <filename>src</filename> est déjà implicitement défini dans + les catalogues que nous avons choisis de télécharger, voici + donc la définition correcte:</para> + + <programlisting> +*default prefix=/usr + </programlisting> + </listitem> + + <listitem> + <para>Où <command>cvsup</command> doit-il mettre les fichiers + décrivant l'état de notre archive?<anchor + id="cvsup-config-status"></para> + + <para>Le client + <citerefentry><refentrytitle>cvsup</refentrytitle></citerefentry> + tient à jour des fichiers d'état dans ce qui est appelé le + répertoire de “base”. Ces fichiers + permettent à <application>CVSup</application> de travailler + plus efficacement en gardant la trace des modifications que + nous avons déjà reçues. Nous utiliserons le répertoire de + base standard, + <filename>/usr/local/etc/cvsup</filename>:</para> + + <programlisting> +*default base=/usr/local/etc/cvsup + </programlisting> + + <para>Cette configuration est utilisée par défaut, si elle + n'est pas précisée dans le fichier + <filename>supfile</filename>, la ligne ci-dessus n'est donc + pas indispensable.</para> + + <para>Si votre répertoire de base n'existe pas encore, c'est + le moment de le créer. Le client <command>cvsup</command> + refusera de s'exécuter si le répertoire de base n'existe + pas.</para> + </listitem> + + <listitem> + <para>Diverses autres options de configuration dans le fichier + <filename>supfile</filename>:</para> + + <para>Il y a une autre ligne d'instructions qui doit + normalement figurer dans le fichier + <filename>supfile</filename>:</para> + + <programlisting> +*default release=cvs delete use-rel-suffix compress + </programlisting> + + <para><literal>release=cvs</literal> dit au serveur d'obtenir + les informations des archives principales de FreeBSD. C'est + quasiment toujours le cas, mais il existe d'autres + possibilités qui sortent du cadre du présent + document.</para> + + <para><literal>delete</literal> donne à + <application>CVSup</application> l'autorisation de supprimer + des fichiers. Utilisez toujours cette possibilité, de sorte + que <application>CVSup</application> puisse vraiment maintenir + à jour votre arborescence des sources. + <application>CVSup</application> veille à ne supprimer que + les fichiers qu'il maintient. Les fichiers supplémentaires + que vous pourriez avoir ne seront pas touchés.</para> + + <para><literal>use-rel-suffix</literal> est ... ésotérique. Si + vous voulez vraiment savoir de quoi il retourne, lisez les + pages de manuel de + <citerefentry><refentrytitle>cvsup</refentrytitle><manvolnum>1</manvolnum></citerefentry>. + Sinon, mettez cet indicateur et ne vous en souciez pas + plus.</para> + + <para><literal>compress</literal> permet d'utiliser un + algorithme de compression de type + <citerefentry><refentrytitle>gzip</refentrytitle></citerefentry> + sur la ligne de communication. Si votre liaison a la + vitesse d'une ligne T1 ou plus, vous ne devriez + probablement pas utiliser la compression. Sinon, cela + facilite substantiellement les choses.</para> + </listitem> + + <listitem> + <para>Assembler les morceaux:</para> + + <para>Voici le fichier <filename>supfile</filename> de notre + exemple en entier:</para> + + <programlisting> +*default tag=. +*default host=cvsup.FreeBSD.org +*default prefix=/usr +*default base=/usr/local/etc/cvsup +*default release=cvs delete use-rel-suffix compress + +src-all +cvs-crypto + </programlisting> + </listitem> + + </itemizedlist> + + </sect3> + + <sect3> + <title>Exécuter <application>CVSup</application></title> + + <para>Vous êtes maintenant prêt à essayer de faire une mise une + jour. La ligne de commande à utiliser est très simple:</para> + + <informalexample> + <screen>&prompt.root; <userinput>cvsup <replaceable>supfile</replaceable></userinput></screen> + </informalexample> + + <para>où <filename><replaceable>supfile</replaceable></filename> est + bien sûr le nom du fichier <filename>supfile</filename> que vous + venez de créer. Si vous êtes sous X11, <command>cvsup</command> + affichera une interface utilisateur graphique avec des boutons + pour les opérations courantes. Appuyez sur le bouton + “go” et suivez le déroulement des opérations.</para> + + <para>Comme, dans l'exemple, vous mettez directement à jour votre + arborescence <filename>/usr/src</filename>, vous devrez exécuter + le programme en tant que super-utilisateur + <username>root</username> de façon à ce que + <command>cvsup</command> ait le droit de mettre à jour ces + fichiers. Comme vous venez tout juste de mettre au point votre + fichier de configuration et n'avez encore jamais utilisé le + programme, il est compréhensible que cela vous rende nerveux. + Il est facile de faire un essai sans toucher à vos précieux + fichiers. Créez une nouveau répertoire quelque part et donnez-le + en argument supplémentaire sur la ligne de commande:</para> + + <informalexample> + <screen>&prompt.root; <userinput>mkdir /var/tmp/dest</userinput> +&prompt.root; <userinput>cvsup <replaceable>supfile</replaceable> /var/tmp/dest</userinput></screen> + </informalexample> + + <para>Le répertoire indiqué sera pris comme destination pour tous + les fichiers modifiés. <application>CVSup</application> consultera + les fichiers habituels dans <filename>/usr/src</filename>, mais ne + les modifiera pas et n'en supprimera aucun. Les modifications + atterriront dans <filename>/var/tmp/dest/usr/src</filename>. + <application>CVSup</application> ne touchera pas non plus à ses + fichiers d'état dans le répertoire de base, lorsqu'il est invoqué + de cette manière. Les nouvelles versions de ces fichiers iront + dans le répertoire mentionné. A partir du moment où vous avez les + droits en lecture sur <filename>/usr/src</filename>, vous n'avez même pas besoin d'être <username>root</username> pour faire ce + genre d'essai.</para> + + <para>Si vous n'êtes pas sous X11, ou si vous n'aimez tout + simplement pas les interfaces graphiques, vous devrez ajouter + quelques options supplémentaires sur la ligne de commande + de <command>cvsup</command>:</para> + + <informalexample> + <screen>&prompt.root; <userinput>cvsup -g -L 2 supfile</userinput></screen> + </informalexample> + + <para>L'option <option>-g</option> dit à <command>cvsup</command> + de ne pas utiliser son interface graphique. C'est automatique si + vous n'êtes pas sous X11, sinon vous devez le préciser.</para> + + <para>L'option <option>-L 2</option> dit à <command>cvsup</command> + d'imprimer le détail de ce qu'il est en train de faire. Il y a + trois niveaux de trace, de <option>-L 0</option> à + <option>-L 2</option>. Le valeur par défaut est de 0, qui équivaut + à n'émettre que les messages d'erreur.</para> + + <para>Il y a de nombreuses autres options disponibles. Pour en + avoir un résumé, tapez <command>cvsup -H</command>. Pour en avoir + une description plus détaillée, reportez-vous aux pages de + manuel.</para> + + <para>Une fois que vous êtes satisfait de la façon dont se passent + vos mises à jour, vous pouvez mettre en place un fonctionnement + de <command>cvsup</command> à intervalles réguliers en + utilisant + <citerefentry><refentrytitle>cron</refentrytitle><manvolnum>8</manvolnum></citerefentry>. Bien évidemment, vous ne devez pas utiliser l'interface + graphique de <command>cvsup</command> quand vous le lancez depuis + <command>cron</command>.</para> + + </sect3> + <sect3 id="cvsup-collec"> + <title>Catalogue de fichiers + <application>CVSup</application></title> + + <para>Les catalogues de fichiers disponibles via + <application>CVSup</application> sont organisés hiérarchiquement. + Il y a quelques gros catalogues, qui sont divisés en plus petits + sous-catalogues. Recevoir un gros catalogue équivaut à recevoir + chacun de ces sous-catalogues. Les relations hiérarchiques entre + les sous-catalogues sont décrites par les indentations dans la + liste ci-dessous.</para> + + <para>Les catalogues habituellement les plus employés sont + <literal>src-all</literal>, <literal>cvs-crypto</literal>, + et <literal>ports-all</literal>. Les autres catalogues ne sont + utilisés que par de petits groupes de personnes pour des besoins + particuliers, et certains sites miroir ne le mettent pas à + disposition.</para> + + <variablelist> + <varlistentry><term><literal>cvs-all + release=cvs</literal></term> + <listitem> + <para>L'archive CVS principale de FreeBSD, à l'exception + des logiciels de cryptographie soumis à des restrictions + à l'exportation.</para> + + <para> + <variablelist> + <varlistentry><term><literal>distrib + release=cvs</literal></term> + <listitem> + <para>Les fichiers ayant trait à la distribution et + à la mise en place de sites miroir FreeBSD.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>doc-all + release=cvs</literal></term> + + <listitem> + <para>Les sources du manuel FreeBSD et d'autres + documentations.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-all + release=cvs</literal></term> + + <listitem> + <para>Le catalogue des logiciels portés de + FreeBSD.</para> + + <para> + <variablelist> + <varlistentry><term><literal>ports-archivers + release=cvs</literal></term> + <listitem> + <para>Outils d'archivage.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-astro + release=cvs</literal></term> + + <listitem> + <para>Logiciels d'astronomie.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-audio + release=cvs</literal></term> + + <listitem> + <para>Support du son.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-base + release=cvs</literal></term> + + <listitem> + <para>Fichiers divers en haut de la + hiérarchie + <filename>/usr/ports</filename>.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-benchmarks + release=cvs</literal></term> + + <listitem> + <para>Evaluation de performances.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-biology + release=cvs</literal></term> + + <listitem> + <para>Biologie.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-cad + release=cvs</literal></term> + + <listitem> + <para>Outils de Conception Assistée par + Ordinateur.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-chinese + release=cvs</literal></term> + + <listitem> + <para>Support pour le chinois.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-comms + release=cvs</literal></term> + + <listitem> + <para>Logiciels de communication.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-converters + release=cvs</literal></term> + + <listitem> + <para>Conversion entre codages des + caractères.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-databases + release=cvs</literal></term> + + <listitem> + <para>Bases de données.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-devel + release=cvs</literal></term> + + <listitem> + <para>Outils de développement.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-editors + release=cvs</literal></term> + + <listitem> + <para>Editeurs.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-emulators + release=cvs</literal></term> + + <listitem> + <para>Emulateurs d'autres systèmes + d'exploitation.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-games + release=cvs</literal></term> + + <listitem> + <para>Jeux.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-german + release=cvs</literal></term> + + <listitem> + <para>Support pour l'allemand.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-graphics + release=cvs</literal></term> + + <listitem> + <para>Outils graphiques.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-japanese + release=cvs</literal></term> + + <listitem> + <para>Support pour le japonais.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-korean + release=cvs</literal></term> + + <listitem> + <para>Support pour le coréen.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-lang + release=cvs</literal></term> + + <listitem> + <para>Langages de programmation.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-mail + release=cvs</literal></term> + + <listitem> + <para>Logiciels de courrier + électronique.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-math + release=cvs</literal></term> + + <listitem> + <para>Logiciels de calcul + numérique.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-mbone + release=cvs</literal></term> + + <listitem> + <para>Applications MBone.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-misc + release=cvs</literal></term> + + <listitem> + <para>Utilitaires divers.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-net + release=cvs</literal></term> + + <listitem> + <para>Logiciels réseau.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-news + release=cvs</literal></term> + + <listitem> + <para>Logiciels pour les forums de + discussion USENET.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-plan9 + release=cvs</literal></term> + + <listitem> + <para>Différents programmes pour + Plan9.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-print + release=cvs</literal></term> + + <listitem> + <para>Logiciels d'impression.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-russian + release=cvs</literal></term> + + <listitem> + <para>Support pour le russe.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-security + release=cvs</literal></term> + + <listitem> + <para>Outils de sécurité.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-shells + release=cvs</literal></term> + + <listitem> + <para>Interpréteurs de commandes.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-sysutils + release=cvs</literal></term> + + <listitem> + <para>Utilitaires système.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-textproc + release=cvs</literal></term> + + <listitem> + <para>Outils de traitement de texte (sauf + les logiciels de Publication Assistée + par Ordinateur).</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-vietnamese + release=cvs</literal></term> + + <listitem> + <para>Support pour le vietnamien.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-www + release=cvs</literal></term> + + <listitem> + <para>Logiciels World Wide Web.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>ports-x11 + release=cvs</literal></term> + + <listitem> + <para>Logiciels pour X11.</para> + + </listitem> + </varlistentry> + </variablelist> + </para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>src-all + release=cvs</literal></term> + + <listitem> + <para>Les sources du système FreeBSD, à l'exception + des logiciels de cryptographie, soumis à des + restrictions à l'exportation.</para> + + <para> + <variablelist> + <varlistentry><term><literal>src-base + release=cvs</literal></term> + <listitem> + <para>Divers fichiers en haut de la + hiérarchie + <filename>/usr/src</filename>.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>src-bin + release=cvs</literal></term> + + <listitem> + <para>Programmes utilisateurs qui peuvent + être utiles en mode mono-utilisateur + (<filename>/usr/src/bin</filename>).</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>src-contrib + release=cvs</literal></term> + + <listitem> + <para>Utilitaires et bibliothèques d'origine + indépendante du projet FreeBSD, employés + à peu près tels quels + (<filename>/usr/src/contrib</filename>).</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>src-etc + release=cvs</literal></term> + + <listitem> + <para>Fichiers de configuration du système + (<filename>/usr/src/etc</filename>).</para> + </listitem> + </varlistentry> + + <varlistentry><term><literal>src-games + release=cvs</literal></term> + + <listitem> + <para>Jeux + (<filename>/usr/src/games</filename>).</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>src-gnu + release=cvs</literal></term> + + <listitem> + <para>Utilitaires soumis à la licence + publique GNU + (<filename>/usr/src/gnu</filename>).</para> + </listitem> + </varlistentry> + + <varlistentry><term><literal>src-include + release=cvs</literal></term> + + <listitem> + <para>Fichiers d'en-tête + (<filename>/usr/src/include</filename>).</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>src-kerberosIV + release=cvs</literal></term> + + <listitem> + <para>Logiciel de sécurité KerberosIV + (<filename>/usr/src/kerberosIV</filename>).</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>src-lib + release=cvs</literal></term> + + <listitem> + <para>Bibliothèques + (<filename>/usr/src/lib</filename>).</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>src-libexec + release=cvs</literal></term> + + <listitem> + <para>Programmes système normalement + exécutés par d'autres programmes + (<filename>/usr/src/libexec</filename>).</para> + </listitem> + </varlistentry> + + <varlistentry><term><literal>src-release + release=cvs</literal></term> + + <listitem> + <para>Fichiers nécessaires à la génération + d'une version de FreeBSD + (<filename>/usr/src/release</filename>).</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>src-sbin + release=cvs</literal></term> + + <listitem> + <para>Utilitaires système pour le mode + mono-utilisateur + (<filename>/usr/src/sbin</filename>).</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>src-share + release=cvs</literal></term> + + <listitem> + <para>Fichiers qui peuvent être partagés par + plusieurs systèmes + (<filename>/usr/src/share</filename>).</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>src-sys + release=cvs</literal></term> + + <listitem> + <para>Le noyau + (<filename>/usr/src/sys</filename>).</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>src-tools + release=cvs</literal></term> + + <listitem> + <para>Divers outils de maintenance de + FreeBSD + (<filename>/usr/src/tools</filename>).</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>src-usrbin + release=cvs</literal></term> + + <listitem> + <para>Outils utilisateurs + (<filename>/usr/src/usr.bin</filename>).</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>src-usrsbin + release=cvs</literal></term> + + <listitem> + <para>Utilitaires système + (<filename>/usr/src/usr.sbin</filename>).</para> + + </listitem> + </varlistentry> + </variablelist> + </para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>www + release=cvs</literal></term> + + <listitem> + <para>Sources du site World Wide Web.</para> + + </listitem> + </varlistentry> + </variablelist> + </para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>cvs-crypto + release=cvs</literal></term> + + <listitem> + <para>Le code de cryptographie soumis à des restrictions à + l'exportation.</para> + + <para> + <variablelist> + <varlistentry><term><literal>src-crypto + release=cvs</literal></term> + <listitem> + <para>Utilitaires et bibliothèques restreints à + l'exportation, d'origine extérieure au projet + FreeBSD, employés quasiment tels quels + (<filename>/usr/src/crypto</filename>).</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>src-eBones + release=cvs</literal></term> + + <listitem> + <para>Kerberos et DES + (<filename>/usr/src/eBones</filename>).</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>src-secure + release=cvs</literal></term> + + <listitem> + <para>DES + (<filename>/usr/src/secure</filename>).</para> + + </listitem> + </varlistentry> + </variablelist> + </para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>distrib + release=self</literal></term> + + <listitem> + <para>Fichier de configuration du serveur CVSup. Utilisés + par les sites miroir CVSup.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>gnats + release=current</literal></term> + + <listitem> + <para>Bases de données GNATS d'historique des bogues.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>mail-archive + release=current</literal></term> + + <listitem> + <para>Archives des listes de diffusion FreeBSD.</para> + + </listitem> + </varlistentry> + + <varlistentry><term><literal>www + release=current</literal></term> + + <listitem> + <para>Données World Wide Web publiées. Utilisées par les + sites miroir WWW.</para> + + </listitem> + </varlistentry> + </variablelist> + + </sect3> + + <sect3> + <title>Annonces, questions, et rapports de bogues</title> + + <para>La plupart des discussions relatives à + <application>CVSup</application> pour FreeBSD ont lieu sur la + &a.hackers;. Les nouvelles versions du logiciel y sont annoncées, + ainsi que sur la &a.announce;.</para> + + <para>Questions et rapports de bogues doivent être adressés à + l'auteur du programme à l'adresse + <email>cvsup-bugs@polstra.com</email>.</para> + + </sect3> + </sect2> + </sect1> + + <sect1 id="makeworld"> + <title>Utiliser <command>make world</command> pour recompiler votre + système</title> + + <para><emphasis>Contribution de &a.nik;.</emphasis></para> + + <para>Une fois que vous avez synchronisé votre arborescence avec une + version donnée de FreeBSD (<literal>-stable</literal>, + <literal>-current</literal> et ainsi de suite) vous devez utiliser + cette arborescence des sources pour regénérer votre système.</para> + + <para>La meilleure source d'information sur la façon de le faire est + aujourd'hui un guide disponible sur + <ulink url="&url.tutorials;make-world/index.html">&url.tutorials;make-world</ulink>.</para> + + <para>Une nouvelle version de ce guide sera intégrée à ce manuel.</para> + + </sect1> + </chapter> +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-shorttag: nil + sgml-always-quote-attributes: t + sgml-minimize-attributes: max + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> diff --git a/fr_FR.ISO_8859-1/books/handbook/disks/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/disks/chapter.sgml new file mode 100755 index 0000000000..fb90e9cfa1 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/disks/chapter.sgml @@ -0,0 +1,191 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + +<chapter id="disks"> + <title>Disques</title> + + <para><emphasis>Contribution de &a.obrien; 26 April 1998</emphasis></para> + &trans.a.haby; + + <para>Supposons que nous voulions ajouter un second disque SCSI à une machine + qui n'a pour l'instant qu'un seul disque. Commençons par arrêter l'ordinateur + et installer le disque en suivant les instructions données pour l'ordinateur, + le contrôleur et le disque. Comme il y a de nombreuses variantes pour ces + procédures, les détails débordent le cadre de ce document.</para> + + <para>Ouvrons maintenant un session sous le compte + super-utilisateur <username>root</username>. Après + avoir installé le disque, consultons le fichier + <filename>/var/run/dmesg.boot</filename> + pour vérifier que le disque a été reconnu. Dans notre exemple, le disque + que nous venons d'ajouter sera le périphérique <filename>sd1</filename> + que nous monterons sur le répertoire <filename>/1</filename>. (Si vous + ajoutez un disque IDE, remplacez <filename>sd</filename> par + <filename>wd</filename>).</para> + + <para>Comme FreeBSD tourne sur des ordinateurs compatibles IBM-PC, il doit + prendre en compte les partitions PC BIOS. Celles-ci sont différentes des + partitions BSD traditionnelles. Un disque PC peut avoir jusqu'à quatre + partitions. Si le disque va être réservé à FreeBSD, vous pouvez utiliser + le mode <emphasis>dédié</emphasis>. Sinon FreeBSD devra utiliser une des + partitions PC BIOS. FreeBSD appelle les partitions PC BIOS + <emphasis>tranches (“slices”)</emphasis> pour les distinguer + des partitions BSD traditionnelles. Vous pouvez aussi utiliser des + tranches sur un disque dédié à FreeBSD, sur une machine où un autre + système d'exploitation est aussi installé. Cela évite de perturber + l'utilitaire <command>fdisk</command> de l'autre système + d'exploitation.</para> + + <para>Dans le cas d'une tranche, le disque ajouté deviendra le périphérique + <filename>/dev/sd1s1e</filename>. Ce qui se lit: disque SCSI, numéro + d'unité 1 (second disque SCSI), tranche 1 (partition PC BIOS 1), et + partition BSD <filename>e</filename>. Dans le cas d'un disque dédié, ce + sera simplement <filename>/dev/sd1e</filename>.</para> + + <sect1> + <title>Utiliser sysinstall</title> + + <para>Vous pouvez utiliser <command>/stand/sysinstall</command> + et ses menus simples d'emploi pour + partitionner et libeller le nouveau disque. + Ouvrez une session sous le compte + super-utilisateur <username>root</username> + ou servez-vous de la commande <command>su</command>. Lancez + <command>/stand/sysinstall</command> et choisissez le menu + <literal>Configure</literal> (Configurer). Dans le <literal>FreeBSD + Configuration Menu</literal> (Menu de Configuration de FreeBSD), + descendez dans la liste et sélectionnez <literal>Partition</literal>. + Vous devriez voir apparaître la liste des disques durs de votre + système. Si <literal>sd1</literal> n'est pas dans la liste, il vous + faut vérifier votre installation physique et le résultat de la + commande <command>dmesg</command> dans le fichier + <filename>/var/run/dmesg.boot</filename>.</para> + + <para>Sélectionnez <literal>sd1</literal> pour allez dans le + <literal>FDISK Partition Editor</literal> (l'éditeur de + Partition FDISK). Prenez l'option <literal>A</literal> pour utiliser + tout le disque pour FreeBSD. Lorsque l'on vous demande si vous + voulez vous garder la possibilité de pouvoir coopérer avec d'autres + systèmes d'exploitation (“remain cooperative with any future + possible operating systems”), répondez par l'affirmative + (<literal>YES</literal>). Enregistrez vos modifications sur disque + avec <command>W</command>. Quittez maintenant l'éditeur FDISK avec + <command>q</command>. La prochaine question concernera l'enregistrement + de démarrage (“Master Boot Record”). Comme vous ajoutez un + disque à un système déjà opérationnel, choisissez <literal>None</literal> + (aucun).</para> + + <para>Allez maintenant dans le <literal>Disk Label Editor</literal> (l'éditeur + de label du disque). C'est là que vous allez créer les partitions BSD + traditionnelles. Un disque peut avoir jusqu'à huit partitions, libellées + de a à h. Certains de ces labels ont des significations particulières. + La partition <literal>a</literal> est la partition racine (<filename>/</filename>). + Seul votre disque système (e.g., celui à partir duquel vous démarrez) + doit avoir une partition <literal>a</literal>. La partition + <literal>b</literal> sert à la pagination, vous pouvez avoir plusieurs + disques avec des partitions de pagination. La partition <literal>c</literal> + désigne la totalité du disque en mode dédié, ou toute la tranche FreeBSD + dans le cas contraire. Les autres partitions sont à usage général.</para> + + <para>L'éditeur de label de <command>sysinstall</command> définit par défaut la + partition <literal>e</literal> comme première partition qui n'est ni + racine, ni de pagination. Dans l'éditeur de label, créez un seul + système de fichiers avec l'option <command>C</command>. Quand on vous + demande si ce sera un système de fichier (FS) ou une partition de + pagination, choisissez <literal>FS</literal> et indiquez un point de + montage (e.g, <filename>/mnt</filename>). Lorsque vous ajoutez un + disque à un système déjà installé, <command>sysinstall</command> ne + crée pas d'entrée dans <filename>/etc/fstab</filename>, donc le nom + que vous donnez au point de montage n'a pas d'importance.</para> + + <para>Vous pouvez maintenant écrire le nouveau label sur le disque et y + créer un système de fichiers. Faites-le avec la commande <command>W</command>. + Ne faites pas attention aux erreurs de <command>sysinstall</command> + qui vous disent que la nouvelle partition ne peut pas être montée. Quittez + maintenant l'éditeur de label et <command>sysinstall</command>.</para> + + <para>La dernière étape consiste à éditer le fichier + <filename>/etc/fstab</filename> pour y ajouter une entrée pour votre nouveau + disque.</para> + </sect1> + + <sect1> + <title>Employer les utilitaires sur la ligne de commande</title> + + <sect2> + <title>* Utiliser les tranches - “slices”</title> + + <para></para> + </sect2> + + <sect2> + <title>Disque dédié</title> + + <para>Si le nouveau disque n'est pas destiné à être partagé avec un autre + système d'exploitation, vous pouvez utiliser le mode <literal>dédié</literal>. + Rappelez-vous que ce mode peut perturber les systèmes d'exploitation Microsoft; + cependant, ils ne toucheront pas au disque. OS/2 d'IBM, au contraire, + “s'approprie” toute partition qu'il trouve et ne reconnaît + pas.</para> + + <informalexample> + <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rsd1 bs=1k count=1</userinput> +&prompt.root; <userinput>disklabel -Brw sd1 auto</userinput> +&prompt.root; <userinput>disklabel -e sd</userinput>1 # créer la partition `e' +&prompt.root; <userinput>newfs -d0 /dev/rsd1e</userinput> +&prompt.root; <userinput>mkdir -p /1</userinput> +&prompt.root; <userinput>vi /etc/fstab</userinput> # ajouter une entrée pour /dev/sd1e +&prompt.root; <userinput>mount /1</userinput></screen> + </informalexample> + + <para>Voici une autre méthode:</para> + + <informalexample> + <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rsd1 count=2</userinput> +&prompt.root; <userinput>disklabel /dev/rsd1 | disklabel -BrR sd1 /dev/stdin</userinput> +&prompt.root; <userinput>newfs /dev/rsd1e</userinput> +&prompt.root; <userinput>mkdir -p /1</userinput> +&prompt.root; <userinput>vi /etc/fstab</userinput> # ajouter une entrée pour /dev/sd1e +&prompt.root; <userinput>mount /1</userinput></screen> + </informalexample> + </sect2> + </sect1> + + <sect1> + <title>* Autres types de disques</title> + + <sect2> + <title>* Disques Zip</title> + + <para></para> + </sect2> + + <sect2> + <title>* Disques Jazz</title> + + <para></para> + </sect2> + + <sect2> + <title>* Disques Sequest</title> + + <para></para> + </sect2> + </sect1> +</chapter> + +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-always-quote-attributes: t + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> diff --git a/fr_FR.ISO_8859-1/books/handbook/eresources/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/eresources/chapter.sgml new file mode 100644 index 0000000000..4fc16d23e4 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/eresources/chapter.sgml @@ -0,0 +1,1357 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: 1.11 +--> + +<chapter id="eresources"> + <title>Ressources sur Internet</title> + + <para><emphasis>Contribution de &a.jkh;.</emphasis></para> + &trans.a.haby; + + <para>L'évolution rapide de FreeBSD rend peu pratique le suivi des + derniers développements via des supports imprimés. Les + supports électroniques sont le meilleur, sinon la plupart du temps, + le seul moyen, de se tenir au courant des dernières + évolutions. Comme FreeBSD est une entreprise bénévole, + la communauté des utilisateurs sert aussi souvent de “service + de support technique”, le courrier électronique et les forums + de discussion étant le meilleur moyen de contacter cette + communauté.</para> + + <para>Les points de contact les plus importants avec la communauté des + utilisateurs de FreeBSD sont listés ci-dessous. Si vous connaissez + d'autres ressources qui n'y figurent pas, communiquez-les s'il vous + plaît à la &a.doc;, de façon à ce qu'elles + soient aussi mentionnées.</para> + + <sect1 id="eresources-mail"> + <title>Listes de diffusion</title> + + <para>Bien que nombre des développeurs de FreeBSD lisent les forums + de discussion, nous ne pouvons vous garantir de réponse en temps et + heure à vos questions (ni même de réponse tout court) + si vous ne les poster que sur un des groupes + <literal>comp.unix.bsd.freebsd.*</literal>. En posant vos questions sur + la liste de diffusion appropriée, vous nous contacterez en + même temps qu'un auditoire FreeBSD concentré, ce qui vous + garantit invariablement une meilleure réponse (ou au moins une + réponse plus rapide).</para> + + <para>Les directives d'usage des différentes listes sont + données à la fin de ce document. <emphasis>Lisez-les + s'il vous plaît avant de vous inscrire ou d'envoyer du courrier + à une liste</emphasis>. La plupart des souscripteurs de nos listes + recoivent maintenant des centaines de messages en rapport avec FreeBSD + tous les jours, et en définissant des directives et des + règles d'utilisation, nous essayons de garder assez + élevé le rapport signal/bruit sur ces listes. Ne pas le + faire amènerait l'échec des listes de diffusion comme + moyen efficace de communication pour le projet.</para> + + <para>Des archives de toutes les listes de diffusion sont conservées + et peuvent être consultées sur le + <ulink URL="http://www.FreeBSD.ORG/search.html">serveur World Wide Web de + FreeBSD</ulink>. Les archives interrogeables par mots-clés sont un + excellent moyen de trouver des réponses aux questions + fréquemment posées et devraient être consultées + avant de poster une question.</para> + + <sect2 id="eresources-summary"> + <title>Résumé des listes de diffusion</title> + + <para><emphasis>Listes générales :</emphasis> Les + listes suivantes sont des listes générales auxquelles + chacun est libre (et encouragé) à participer :</para> + + <informaltable frame="none"> + <tgroup cols="2"> + <thead> + <row> + <entry>Liste</entry> + <entry>Objet</entry> + </row> + </thead> + + <tbody> + <row> + <entry>freebsd-advocacy</entry> + <entry>Propagande FreeBSD</entry> + </row> + + <row> + <entry>freebsd-announce</entry> + <entry>Evénements importants concernant le projet</entry> + </row> + + <row> + <entry>freebsd-bugs</entry> + <entry>Rapports de bogues</entry> + </row> + + <row> + <entry>freebsd-chat</entry> + <entry>Sujets non-techniques en rapport avec la communauté + FreeBSD</entry> + </row> + + <row> + <entry>freebsd-current</entry> + <entry>Discussions concernant l'utilisation de + FreeBSD-current</entry> + </row> + + <row> + <entry>freebsd-isp</entry> + <entry>Pour les fournisseurs d'accès Internet utilisant + FreeBSD</entry> + </row> + + <row> + <entry>freebsd-jobs</entry> + <entry>Emplois et interventions de consultants en rapport avec + FreeBSD</entry> + </row> + + <row> + <entry>freebsd-newbies</entry> + <entry>Activités et discussions entre nouveaux utilisateurs + de FreeBSD</entry> + </row> + + <row> + <entry>freebsd-questions</entry> + <entry>Questions des utilisateurs et support technique</entry> + </row> + + <row> + <entry>freebsd-stable</entry> + <entry>Discussions concernant l'utilisation de + FreeBSD-stable</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para><emphasis>Listes techniques :</emphasis> Les listes suivantes + sont destinées aux discussions techniques. Vous devriez lire les + directives relatives à chaque liste avant d'y souscrire ou d'y + adresser du courrier parce que ce sont des règles fermes quand + à leur utilisation et leur contenu.</para> + + <informaltable frame="none"> + <tgroup cols="2"> + <thead> + <row> + <entry>Liste</entry> + <entry>Objet</entry> + </row> + </thead> + + <tbody> + <row> + <entry>freebsd-afs</entry> + <entry>Portage d'AFS sous FreeBSD</entry> + </row> + + <row> + <entry>freebsd-alpha</entry> + <entry>Portage de FreeBSD sur Alpha</entry> + </row> + + <row> + <entry>freebsd-doc</entry> + <entry>Rédaction de documents relatifs à + FreeBSD</entry> + </row> + + <row> + <entry>freebsd-database</entry> + <entry>Discussions à propos de l'utilisation et du + développement de bases de données sous + FreeBSD</entry> + </row> + + <row> + <entry>freebsd-emulation</entry> + <entry>Emulation d'autres systèmes tels que + Linux/DOS/Windows</entry> + </row> + + <row> + <entry>freebsd-fs</entry> + <entry>Systèmes de fichiers</entry> + </row> + + <row> + <entry>freebsd-hackers</entry> + <entry>Discussions techniques générales</entry> + </row> + + <row> + <entry>freebsd-hardware</entry> + <entry>Discussions générales sur le matériel + utilisable avec FreeBSD</entry> + </row> + + <row> + <entry>freebsd-isdn</entry> + <entry>Développeurs ISDN</entry> + </row> + + <row> + <entry>freebsd-java</entry> + <entry>Développeurs Java et personnes portant les JDKs + sous FreeBSD</entry> + </row> + + <row> + <entry>freebsd-mobile</entry> + <entry>Discussions à propos des portables</entry> + </row> + + <row> + <entry>freebsd-mozilla</entry> + <entry>Portage de mozilla sous FreeBSD</entry> + </row> + + <row> + <entry>freebsd-net</entry> + <entry>Discussions sur le réseau et le code source + TCP/IP</entry> + </row> + + <row> + <entry>freebsd-platforms</entry> + <entry>A propos des portages sur les plates-formes + non-Intel</entry> + </row> + + <row> + <entry>freebsd-ports</entry> + <entry>Discussions sur le catalogue des logiciels + portés</entry> + </row> + + <row> + <entry>freebsd-scsi</entry> + <entry>Sous-système SCSI</entry> + </row> + + <row> + <entry>freebsd-security</entry> + <entry>Questions concernant la securité</entry> + </row> + + <row> + <entry>freebsd-small</entry> + <entry>Utilisation de FreeBSD pour des applications + embarquées</entry> + </row> + + <row> + <entry>freebsd-smp</entry> + <entry>Discussions sur l'implémentation du MultiProcessing + [A]Symétrique</entry> + </row> + + <row> + <entry>freebsd-sparc</entry> + <entry>Portage de FreeBSD sur les systèmes Sparc</entry> + </row> + + <row> + <entry>freebsd-tokenring</entry> + <entry>Support de l'anneau à jetons sous FreeBSD</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para><emphasis>Listes à accès restreint :</emphasis> + Il faut l'accord de <email>core@FreeBSD.ORG</email> pour pouvoir + souscrire aux listes qui suivent, bien que chacun soit libre d'y + adresser des messages s'ils satisfont à leurs directives + d'utilisation. C'est aussi une bonne idée d'être d'abord + actif sur les listes techniques avant de souscrire à une des + listes réservées.</para> + + <informaltable frame="none"> + <tgroup cols="2"> + <thead> + <row> + <entry>Liste</entry> + <entry>Objet</entry> + </row> + </thead> + + <tbody> + <row> + <entry>freebsd-admin</entry> + <entry>Questions administratives</entry> + </row> + + <row> + <entry>freebsd-arch</entry> + <entry>Discussions sur l'architecture et + l'implémentation</entry> + </row> + + <row> + <entry>freebsd-core</entry> + <entry>Equipe de base FreeBSD</entry> + </row> + + <row> + <entry>freebsd-hubs</entry> + <entry>Pour ceux qui gèrent des sites miroir (questions + d'infrastructure)</entry> + </row> + + <row> + <entry>freebsd-install</entry> + <entry>Développements relatifs à + la procédure d'installation</entry> + </row> + + <row> + <entry>freebsd-security-notifications</entry> + <entry>Avis de sécurité</entry> + </row> + + <row> + <entry>freebsd-user-groups</entry> + <entry>Coordination des groupes d'utilisteurs</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para><emphasis>Listes CVS :</emphasis> Les listes qui suivent sont + destinées à ceux qui souhaitent voir les traces des + modifications de diférentes parties de l'arborescence des + sources. Ce sont des listes en <emphasis>lecture seule</emphasis> et il + ne faut pas leur adresser de courrier.</para> + + <informaltable frame="none"> + <tgroup cols="3"> + <thead> + <row> + <entry>Liste</entry> + <entry>Partie du code</entry> + <entry>Description du source concerné</entry> + </row> + </thead> + + <tbody> + <row> + <entry>cvs-all</entry> + <entry>/usr/src</entry> + <entry>Toutes les modifications de l'arborescence + (sur-ensemble)</entry> + </row> + </tbody> + </tgroup> + </informaltable> + </sect2> + + <sect2 id="eresources-subscribe"> + <title>Comment souscrire</title> + + <para>Toutes les listes de diffusion sont gérées sur <hostid + role="fqdn">FreeBSD.ORG</hostid>. Pour poster sur une liste + donnée, vous envoyez simplement votre courrier à + <email><replaceable>nom-de-la-liste</replaceable>@FreeBSD.ORG</email>. + Il sera alors redistribué aux membres de la liste dans le monde + entier.</para> + + <para>Pour souscrire à une liste, envoyez un courrier + à &a.majordomo; et incluez :</para> + + <programlisting> +subscribe <nom-de-la-liste> [<adresse optionnelle>]</programlisting> + + <para>dans le corps de votre message. Par exemple, pour vous inscrire + à &a.announce;, vous taperiez :</para> + + <screen>&prompt.user; <userinput>mail majordomo@FreeBSD.ORG</userinput> +subscribe freebsd-announce +^D</screen> + + <para>Si vous voulez vous inscrire sous un autre nom, ou si vous envoyez + une demande d'inscription pour une liste de diffusion locale (c'est plus + efficace si vous avez plusieurs personnes intéressées sur + un même site, et très apprécié par + nous !), vous taperiez quelque chose comme :</para> + + <screen>&prompt.user; <userinput>mail majordomo@FreeBSD.ORG</userinput> +subscribe freebsd-announce annonces-locales@un-site.com +^D</screen> + + <para>Enfin, il est aussi possible de vous désabonner d'une liste, + d'obtenir la liste des autres membres de la liste, ou d'obtenir la liste + de toutes les listes en envoyant aussi des messages de contrôle + à &a.majordomo; Pour avoir la liste complète des + commandes disponibles, faites :</para> + + <screen>&prompt.user; <userinput>mail majordomo@FreeBSD.ORG</userinput> +help +^D</screen> + + <para>Nous voudrions vous demander encore de garder aux discussions sur + les listes techniques leur contenu technique. Si seuls les points + “saillants” vous intéressent, nous vous + suggérons de souscrire à &a.announce;, dont le trafic + n'est qu'occasionnel.</para> + </sect2> + + <sect2 id="eresources-charters"> + <title>Directives d'utilisation des listes</title> + + <para>Il y a pour <emphasis>toutes</emphasis> les listes de diffusion + FreeBSD des règles de base auxquelles tous leurs utilisateurs + doivent se conformer. En cas de non respect de ces règles, et + après deux (2) avertissements écrits de la part du + “<foreignphrase>Postmaster</foreignphrase>” + <email>postmaster@freebsd.org</email>, au troisième manquement, + le contrevenant sera désabonné de toutes les listes de + diffusion de FreeBSD, et ses messages ultérieurs filtrés. + Nous regrettons de devoir prendre de telles mesures, mais l'Internet + d'aujourd'hui est un milieu apparemment assez hostile, et beaucoup + ne se rendent pas compte de la fragilité de certains de ses + mécanismes.</para> + + <para>Règles générales :</para> + + <itemizedlist> + <listitem> + <para>Le sujet de tout message doit correspondre au sujet + traité par la liste à laquelle il est adressé, + e.g., si c'est une liste sur un sujet technique, le contenu du + message ne devra être que technique. Le bavardage continu et + les polémiques ne font que dégrader pour tous ses + utilisateurs la qualité de la liste de diffusion et ne seront + pas tolérés. La &a.chat; est disponible pour les + discussions sans sujet particulier et doit être + utilisée dans ce cas.</para> + </listitem> + + <listitem> + <para>Aucun message ne doit être adressé à plus de + 2 listes de diffusion, et à 2 listes uniquement au cas + où il y a nécessité évidente de poster + sur les 2 listes. Pour la plupart des listes, il y a + déjà beaucoup de souscripteurs communs, et mis + à part les cas les plus ésotériques (par + exemple “-stable & -scsi”), il n'y a pas vraiment de + raison de poster sur plus d'une liste à la fois. Si vous + recevez un message où apparaissent sur la ligne + <literal>Cc</literal> plusieurs listes de diffusion, vous devez + purger cette ligne <literal>cc</literal> avant d'y répondre. + Vous êtes <emphasis>toujours</emphasis> responsable de vos + expéditions croisées, peu importe qui en a + été à l'origine.</para> + </listitem> + + <listitem> + <para>Les attaques personnelles et les jurons (dans le cadre d'une + discussion) ne sont pas autorisés, et cela concerne tout + autant les utilisateurs que les développeurs. Les + manquements grossiers à la “nétiquette”, + citer ou reposter des courriers privés quand l'accord n'en + a pas été donné et ne le sera pas, par exemple, + sont désapprouvés, mais pas particulièrement + réprimés. Il y a + <emphasis>néanmoins</emphasis> de rares cas où de tels + contenus rentrent dans le cadre des violations aux règles + d'utilisation d'une liste, et entraîneront donc probablement + un avertissement (ou une exclusion) pour cette seule raison.</para> + </listitem> + + <listitem> + <para>La publicité pour des produits ou services sans rapport + avec FreeBSD est rigoureusement interdite et entraînera l'exclusion immédiate s'il s'avère que le contrevenant + adresse ses publicités par “courrier + électronique non + sollicité” - <foreignphrase>spam</foreignphrase>.</para> + </listitem> + </itemizedlist> + + <para><emphasis>Directives liste par liste :</emphasis></para> + + <variablelist> + <varlistentry> + <term>FREEBSD-AFS</term> + + <listitem> + <para><emphasis>Système de fichiers + AFS - <foreignphrase>Andrew File + System</foreignphrase></emphasis></para> + + <para>C'est une liste de discussion sur le portage et l'utilisation + d'AFS de CMU/Transarc.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FREEBSD-ADMIN</term> + + <listitem> + <para><emphasis>Questions administratives</emphasis></para> + + <para>Cette liste est réservée à la discussion + des questions relatives à + <hostid role="domainname">freebsd.org</hostid> et pour signaler + les problèmes et abus de ressources du projet. C'est une + liste fermée, bien que quiconque puisse y signaler un + problème (avec nos systèmes !).</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FREEBSD-ANNOUNCE</term> + + <listitem> + <para><emphasis>Evénements importants</emphasis></para> + + <para>C'est une liste pour les gens intéressés + uniquement par les annonces occasionnelles d'évenements + FreeBSD importants. Cela inclut les annonces d'instantanés + et autres versions. Cela comprend aussi les annonces de nouvelles + fonctionnalités de FreeBSD. Il peut y avoir aussi appel + à volontaires, etc. C'est une liste de faible volume et + rigoureusement modérée.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FREEBSD-ARCH</term> + + <listitem> + <para><emphasis>Discussions concernant l'architecture et + l'implémentation</emphasis></para> + + <para>C'est une liste modérée pour discuter de + l'architecture de FreeBSD. Les messages y seront habituellement + de nature technique, bien que le modérateur puisse + (occasionnellement) laisser passer d'autres messages qu'il juge + nécessaire de transmettre aux autres membres de la liste. + Des exemples de sujets qui cadrent avec cette listes + sont :</para> + + <itemizedlist> + <listitem> + <para>Comment revoir le système de compilation pour que + plusieurs compilations personnalisées puissent + être effectuées en même temps,</para> + </listitem> + + <listitem> + <para>Que faut-il corriger dans VFS pour que les couches + Heidemann fonctionnent,</para> + </listitem> + + <listitem> + <para>Comment modifier l'interface des pilotes de + périphériques pour que la même interface + fonctionne proprement sur différents bus et + architectures,</para> + </listitem> + + <listitem> + <para>Comment écrire un pilote + réseau ?</para> + </listitem> + </itemizedlist> + + <para>Le modérateur se réserve le droit d'apporter des + corrections mineures (orthographe, grammaire, simplification) aux + messages qui sont postés sur la liste. Le volume de la + liste restera faible, ce qui peut impliquer de reporter des sujets + tant qu'une discussion en cours n'est pas terminée.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FREEBSD-BUGS</term> + + <listitem> + <para><emphasis>Rapports de bogues</emphasis></para> + + <para>C'est la liste pour émettre les rapports de bogues de + FreeBSD. Chaque fois que c'est possible, les rapports de bogues + doivent être soumis avec &man.send-pr.1; ou son + <ulink URL="http://www.freebsd.org/send-pr.html">interface + Web</ulink>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FREEBSD-CHAT</term> + + <listitem> + <para><emphasis>Sujets non techniques en rapport avec la + communauté FreeBSD</emphasis></para> + + <para>Cette liste reçoit le résidu des discussions sur + les autres listes : informations sociologiques, et non + techniques. Cela va de savoir si Jordan ressemble ou non au furet + de la bande dessinée, s'il faut tapez en majuscules, qui + boit trop de café, quelle est la meilleure bière, + qui brasse de la bière dans sa cave, et ainsi de suite. + Les annonces occasionnelles d'événements importants + (les prochaines fêtes, mariages, naissances, nouveaux + emplois, etc.) peuvent être adressées aux listes + techniques, mais doivent ensuite être redirigées sur + la &a.chat;.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FREEBSD-CORE</term> + + <listitem> + <para><emphasis>Equipe de base FreeBSD</emphasis></para> + + <para>C'est une liste interne à l'usage des membres de + l'équipe de base. Des messages peuvent y être + adressés lorsqu'un sujet en rapport avec FreeBSD demande + arbitrage ou examen à haut niveau.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FREEBSD-CURRENT</term> + + <listitem> + <para><emphasis>Discussions concernant l'utilisation de + FreeBSD-current</emphasis></para> + + <para>C'est la liste de diffusion pour les utilisateurs de + FreeBSD-current. Elle inclut avertissements au sujet de nouvelles + fonctionnalités de -current qui affecteront son + utilisation, et instructions sur ce qu'il faut faire pour + rester à jour avec -current. Tous les utilisateurs de + “current” doivent souscrire à cette liste. + C'est une liste de discussion technique sur laquelle le contenu + doit être strictement technique.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FREEBSD-CURRENT-DIGEST</term> + + <listitem> + <para><emphasis>Discussions concernant l'utilisation de + FreeBSD-current</emphasis></para> + + <para>C'est la version abrégé de la liste + freebsd-current. Le résumé est constitué de + tous les messages envoyés à freebsd-current + regroupés en un seul. La taille moyenne de ce message est + de 40 Ko. C'est une liste en <emphasis>lecture seule</emphasis> + sur laquelle il ne faut pas poster.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FREEBSD-DOC</term> + + <listitem> + <para><emphasis>Projet de documentation</emphasis></para> + + <para>C'est la liste de discussion sur les questions et projets + liés à la rédaction de documentation pour + FreeBSD. Les membres de cette liste sont collectivement + appelés “Le Projet de Documentation de + FreeBSD” - <foreignphrase>The FreeBSD + Documentation Project</foreignphrase>. C'est une liste ouverte; + n'hésitez pas à souscrire et à + participer.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FREEBSD-FS</term> + + <listitem> + <para><emphasis>Systèmes de fichiers</emphasis></para> + + <para>Discussions concernant les systèmes de fichiers + FreeBSD. C'est une liste de discussion technique sur laquelle le + contenu doit être strictement technique.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FREEBSD-HACKERS</term> + + <listitem> + <para><emphasis>Discussions techniques</emphasis></para> + + <para>C'est le forum pour les discussions techniques au sujet de + FreeBSD. C'est la principale liste technique. Elle est + destinée à ceux qui travaillent activement à + FreeBSD, pour soulever des problèmes et discuter de + solutions alternatives. Ceux qui sont intéressés + à suivre les discussions techniques sont aussi bienvenus. + C'est une liste de discussion technique sur laquelle le contenu + doit être strictement technique.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FREEBSD-HACKERS-DIGEST</term> + + <listitem> + <para><emphasis>Discussions techniques</emphasis></para> + + <para>C'est la version abrégé de la liste + freebsd-hackers. Le résumé est constitué de + tous les messages envoyés à freebsd-hackers + regroupés en un seul. La taille moyenne de ce message est + de 40 Ko. C'est une liste en <emphasis>lecture seule</emphasis> + sur laquelle il ne faut pas poster.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FREEBSD-HARDWARE</term> + + <listitem> + <para><emphasis>Discussions générales sur le + matériel pour FreeBSD</emphasis></para> + + <para>Discussions générales sur les types de + matériel sur lesquels tourne FreeBSD, les + problèmes rencontrés et suggestions sur quoi + acheter ou éviter.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FREEBSD-INSTALL</term> + + <listitem> + <para><emphasis>Discussions sur l'installation</emphasis></para> + + <para>C'est la liste pour discuter du développement de la + procédure d'installation des versions à venir de + FreeBSD. Elle n'est pas ouverte.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FREEBSD-ISDN</term> + + <listitem> + <para><emphasis>Communications ISDN</emphasis></para> + + <para>C'est la liste pour les personnes discutant du + développement du support ISDN de FreeBSD.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FREEBSD-ISP</term> + + <listitem> + <para><emphasis>Questions concernant les fournisseurs d'accès + à Internet</emphasis></para> + + <para>C'est la liste pour discuter des sujets qui intéressent + les fournisseurs d'accès + Internet - <foreignphrase>Internet Service Providers + (ISPs)</foreignphrase> - qui utilisent FreeBSD. C'est + une liste de discussion technique sur laquelle le contenu doit + être strictement technique.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FREEBSD-JAVA</term> + + <listitem> + <para><emphasis>Développement Java</emphasis></para> + + <para>C'est la liste pour les personnes discutant du + développement d'applications Java significatives sous + FreeBSD et du portage et de la maintenance des JDKs.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FREEBSD-NEWBIES</term> + + <listitem> + <para><emphasis>Discussions des activités des + débutants</emphasis></para> + + <para>Nous couvrons toutes les activités de ceux qui + débutent avec FreeBSD qui ne sont pas envisagées + ailleurs, y compris : apprentissage autonome et techniques de + résolutions des problèmes, comment trouver et + utiliser les ressources disponibles et demander ailleurs de + l'aide, comment utiliser les listes de diffusion et lesquelles + utiliser, la discussion d'ordre général, les + erreurs commises, les fanfaronnades, le partage d'idées, + les histoires, le support moral (mais pas technique) et comment + participer activement dans la communauté FreeBSD. Nous + transmettons nos problèmes et questions à + freebsd-questions, et nous servons de freebsd-newbies pour + rencontrer d'autres personnes qui, débutants comme nous, + font les mêmes choses que nous.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FREEBSD-PLATFORMS</term> + + <listitem> + <para><emphasis>Portages sur les plates-formes + Non-Intel</emphasis></para> + + <para>Questions concernant le support d'autres plates-formes, + discussions générales et propositions pour les + portages sur des plates-formes non-Intel. C'est une liste de + discussion technique sur laquelle le contenu doit être + strictement technique.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FREEBSD-PORTS</term> + + <listitem> + <para><emphasis>Discussions des + “logiciels portés”</emphasis></para> + + <para>Discussions concernant le “catalogue des logiciels + portés” de FreeBSD (<filename>/usr/ports</filename>), + propositions de portages, modifications de l'infrastructure du + catalogue des logiciels portés et coordination + générale. C'est une liste de discussion technique + sur laquelle le contenu doit être strictement + technique.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FREEBSD-QUESTIONS</term> + + <listitem> + <para><emphasis>Questions des utilisateurs</emphasis></para> + + <para>C'est la liste pour les questions à propos de FreeBSD. + Il ne faut pas adresser de questions “comment + faire ?” aux listes techniques à moins que vous + n'estimiez que la question soit vraiment très + technique.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FREEBSD-QUESTIONS-DIGEST</term> + + <listitem> + <para><emphasis>Questions des utilisateurs</emphasis></para> + + <para>C'est la version abrégé de la liste + freebsd-questions. Le résumé est constitué de + tous les messages envoyés à freebsd-questions + regroupés en un seul. La taille moyenne de ce message est + de 40 Ko.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FREEBSD-SCSI</term> + + <listitem> + <para><emphasis>Sous-système SCSI</emphasis></para> + + <para>C'est la liste de diffusion pour ceux qui travaillent sur le + sous-système SCSI de FreeBSD. C'est une liste de discussion + technique sur laquelle le contenu doit être strictement + technique.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FREEBSD-SECURITY</term> + + <listitem> + <para><emphasis>Questions relatives à la + sécurité</emphasis></para> + + <para>Questions ayant trait à la sécurité des + ordinateurs sous FreeBSD (DES, Kerberos, trous de + sécurité connus et correctifs, etc.) C'est une liste + de discussion technique sur laquelle le contenu doit être + strictement technique.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FREEBSD-SECURITY-NOTIFICATIONS</term> + + <listitem> + <para><emphasis>Avis de sécurité</emphasis></para> + + <para>Notifications des problèmes de sécurité + concernant FreeBSD et correctifs. Ce n'est pas une liste de + discussion. La liste de discussion correspondante est + FreeBSD-security.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FREEBSD-SMALL</term> + + <listitem> + <para>Cette liste discute des sujets relatifs aux installations + inhabituellement petites et embarquées de FreeBSD. C'est + une liste de discussion technique sur laquelle le contenu doit + être strictement technique.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FREEBSD-STABLE</term> + + <listitem> + <para><emphasis>Discussions concernant l'utilisation de + FreeBSD-stable</emphasis></para> + + <para>C'est la liste de diffusion pour les utilisateurs de + FreeBSD-stable. Elle inclut avertissements au sujet de nouvelles + fonctionnalités de -stable qui affecteront son + utilisation, et instructions sur ce qu'il faut faire pour + rester à jour avec -stable. Tous les utilisateurs de + “stable” doivent souscrire à cette liste. + C'est une liste de discussion technique sur laquelle le contenu + doit être strictement technique.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>FREEBSD-USER-GROUPS</term> + + <listitem> + <para><emphasis>Coordination des groupes + d'utilisateurs</emphasis></para> + + <para>C'est la liste pour les coordinateurs des différents + groupes locaux d'utilisateurs, destinée à leurs + discussions entre eux et avec un membre désigné de + l'équipe de base. Cette liste doit se limiter aux + comptes-rendus de réunions et à la coordination de + projets entre plusieurs groupes d'utilisateurs. Ce n'est pas une + liste ouverte.</para> + </listitem> + </varlistentry> + </variablelist> + </sect2> + </sect1> + + <sect1 id="eresources-news"> + <title>Forums de discussion</title> + + <para>En plus des deux forums de discussion spécifiques à + FreeBSD, il y en a de nombreux autres où il est question de + FreeBSD ou qui sont par ailleurs d'interêt pour les utilisateurs + de FreeBSD. Pour certains de ces groupes, il existe des + <ulink URL="http://minnie.cs.adfa.oz.au/BSD-info/bsdnews_search.html">archives + interrogeables par mots-clés</ulink>, grace à Warren Toomey + <email>wkt@cs.adfa.oz.au</email>.</para> + + <sect2> + <title>Forums spécifiques à BSD</title> + + <itemizedlist> + <listitem> + <para><ulink + URL="news:comp.unix.bsd.freebsd.announce">comp.unix.bsd.freebsd.announce</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="news:comp.unix.bsd.freebsd.misc">comp.unix.bsd.freebsd.misc</ulink></para> + </listitem> + </itemizedlist> + </sect2> + + <sect2> + <title>Autres forums Unix intéressants</title> + + <itemizedlist> + <listitem> + <para><ulink URL="news:comp.unix">comp.unix</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="news:comp.unix.questions">comp.unix.questions</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="news:comp.unix.admin">comp.unix.admin</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="news:comp.unix.programmer">comp.unix.programmer</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="news:comp.unix.shell">comp.unix.shell</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="news:comp.unix.user-friendly">comp.unix.user-friendly</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="news:comp.security.unix">comp.security.unix</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="news:comp.sources.unix">comp.sources.unix</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="news:comp.unix.advocacy">comp.unix.advocacy</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="news:comp.unix.misc">comp.unix.misc</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="news:comp.bugs.4bsd">comp.bugs.4bsd</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="news:comp.bugs.4bsd.ucb-fixes">comp.bugs.4bsd.ucb-fixes</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="news:comp.unix.bsd">comp.unix.bsd</ulink></para> + </listitem> + </itemizedlist> + </sect2> + + <sect2> + <title>Système X Window</title> + + <itemizedlist> + <listitem> + <para><ulink + URL="news:comp.windows.x.i386unix">comp.windows.x.i386unix</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="news:comp.windows.x">comp.windows.x</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="news:comp.windows.x.apps">comp.windows.x.apps</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="news:comp.windows.x.announce">comp.windows.x.announce</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="news:comp.windows.x.intrinsics">comp.windows.x.intrinsics</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="news:comp.windows.x.motif">comp.windows.x.motif</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="news:comp.windows.x.pex">comp.windows.x.pex</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="news:comp.emulators.ms-windows.wine">comp.emulators.ms-windows.wine</ulink></para> + </listitem> + </itemizedlist> + </sect2> + </sect1> + + <sect1 id="eresources-web"> + <title>Serveurs World Wide Web</title> + + <itemizedlist> + <listitem> + <para><ulink + URL="http://www.FreeBSD.ORG/">http://www.FreeBSD.ORG/</ulink> + — Serveur principal.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.za.freebsd.org/">http://www.za.freebsd.org/</ulink> — Afrique du Sud/1.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www2.za.freebsd.org/">http://www2.za.freebsd.org/</ulink> — Afrique du Sud/2.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.de.freebsd.org/">http://www.de.freebsd.org/</ulink> — Allemagne/1.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www1.de.freebsd.org/">http://www1.de.freebsd.org/</ulink> — Allemagne/2.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www2.de.freebsd.org/">http://www.de.freebsd.org/</ulink> — Allemagne/3.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.au.freebsd.org/FreeBSD/">http://www.au.freebsd.org/FreeBSD/</ulink> — Australie/1.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www2.au.freebsd.org/FreeBSD/">http://www2.au.freebsd.org/FreeBSD/</ulink> — Australie/2.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www3.au.freebsd.org/FreeBSD/">http://www3.au.freebsd.org/FreeBSD/</ulink> — Australie/3.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.br.freebsd.org/www.freebsd.org/">http://www.br.freebsd.org/www.freebsd.org/</ulink> — Brésil/1.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.br2.freebsd.org/www.freebsd.org/">http://www.br2.freebsd.org/www.freebsd.org/</ulink> — Brésil/2.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www3.br.freebsd.org/">http://www3.br.freebsd.org/</ulink> — Brésil/3.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.bg.freebsd.org/">http://www.bg.freebsd.org/</ulink> — Bulgarie.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.ca.freebsd.org/">http://www.ca.freebsd.org/</ulink> — Canada/1.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://freebsd.kawartha.com/">http://freebsd.kawartha.com/</ulink> — Canada/2.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.kr.freebsd.org/">http://www.kr.freebsd.org/</ulink> — Corée.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.dk.freebsd.org/">http://www.dk.freebsd.org/</ulink> — Danemark.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.es.freebsd.org/">http://www.es.freebsd.org/</ulink> — Espagne.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.ee.freebsd.org/">http://www.ee.freebsd.org/</ulink> — Estonie.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://freebsd.advansys.net/">http://freebsd.advansys.net/</ulink> — Etats-Unis/Indiana.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www6.freebsd.org/">http://www6.freebsd.org/</ulink> — Etats-Unis/Oregon.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www2freebsd.org/">http://www2.freebsd.org/</ulink> — Etats-Unis/Texas.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.fi.freebsd.org/">http://www.fi.freebsd.org/</ulink> — Finlande.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.fr.freebsd.org/">http://www.fr.freebsd.org/</ulink> — France.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.hu.freebsd.org/">http://www.hu.freebsd.org/</ulink> — Hongrie.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.is.freebsd.org/">http://www.is.freebsd.org/</ulink> — Icelande.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.ie.freebsd.org/">http://www.ie.freebsd.org/</ulink> — Irelande.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.jp.freebsd.org/www.freebsd.org/">http://www.jp.freebsd.org/www.freebsd.org/</ulink> — Japon.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.lv.freebsd.org/">http://www.lv.freebsd.org/</ulink> — Lettonie.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://rama.asiapac.net/freebsd/">http://rama.asiapac.net/freebsd/</ulink> — Malaisie.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.no.freebsd.org/">http://www.no.freebsd.org/</ulink> — Norvège.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.nl.freebsd.org/">http://www.nl.freebsd.org/</ulink> — Pays-Bas.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.pt.freebsd.org/">http://www.pt.freebsd.org/</ulink> — Portugal/1.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www2.pt.freebsd.org/">http://www2.pt.freebsd.org/</ulink> — Portugal/2.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www3.pt.freebsd.org/">http://www3.pt.freebsd.org/</ulink> — Portugal/3.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.sk.freebsd.org/">http://www.sk.freebsd.org/</ulink> — République Slovaque.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.ro.freebsd.org/">http://www.ro.freebsd.org/</ulink> — Roumanie.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.uk.freebsd.org/">http://www.uk.freebsd.org/</ulink> — Royaume-Uni.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.ru.freebsd.org/">http://www.ru.freebsd.org/</ulink> — Russie/1.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www2.ru.freebsd.org/">http://www2.ru.freebsd.org/</ulink> — Russie/2.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www3.ru.freebsd.org/">http://www3.ru.freebsd.org/</ulink> — Russie/3.</para> + </listitem> + + <listitem> + <para><ulink + url="http://www4.ru.freebsd.org/">http://www4.ru.freebsd.org/</ulink> — Russie/4.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.si.freebsd.org/">http://www.si.freebsd.org/</ulink> — Slovénie.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.se.freebsd.org/www.freebsd.org/">http://www.se.freebsd.org/www.freebsd.org/</ulink> — Suède.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.tr.freebsd.org/">http://www.tr.freebsd.org/</ulink> — Turquie.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www.ua.freebsd.org/">http://www.ua.freebsd.org/</ulink> — Ukraine/1.</para> + </listitem> + + <listitem> + <para><ulink + URL="http://www2.ua.freebsd.org/">http://www2.ua.freebsd.org/</ulink> — Ukraine/2.</para> + </listitem> + </itemizedlist> + </sect1> +</chapter> + +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-always-quote-attributes: t + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> + diff --git a/fr_FR.ISO_8859-1/books/handbook/hw/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/hw/chapter.sgml new file mode 100644 index 0000000000..8d226e1099 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/hw/chapter.sgml @@ -0,0 +1,5780 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + + <chapter id="hw"> + <title>** Compatibilité matérielle</title> + &trans.a.haby; + + + <para>Les questions de compatibilité matérielle sont aujourd'hui + les plus problématiques de l'industrie informatique et FreeBSD + n'en est nullement à l'abri. De ce point de vue, l'avantage qu'a + FreeBSD de pouvoir être utilisé sur du matériel PC courant et + peu coûteux est aussi une difficulté lorsqu'il faut supporter + l'incroyable variété de composants disponibles. + Il est impossible de donner une liste exhaustive des matériels + compatibles avec FreeBSD, mais ce chapitre est un catalogue des + pilotes de périphériques inclus dans FreeBSD et des matériels que + chaque pilote supporte. Si possible et approprié, des notes ont + ajoutées sur les matériels eux-mêmes. Vous pouvez aussi vous + référer au chapitre <link linkend="kernelconfig-config">Configurer + le noyau de FreeBSD</link> de ce manuel pour avoir + la liste des matériels supportés.</para> + + <para>FreeBSD est un projet bénévole qui n'a pas les moyens de financer + un service de tests, nous reposons sur vous, les utilisateurs, pour une + grande part des informations que fournit ce catalogue. Si vous avez + l'expérience personnelle d'un matériel qui fonctionne ou ne fonctionne + pas avec FreeBSD, faites-le nous savoir par courrier électronique + à &a.doc;. Les questions concernant les matériels compatibles doivent + être adressées à &a.questions; (voyez la section + <link linkend="eresources-mail">Listes de diffusion</link> + pour plus d'informations). Quand vous nous faites + parvenir de l'information ou posez une question, n'oubliez pas s'il vous + plaît de préciser exactement quelle version de FreeBSD vous utilisez et + de donner le maximum de détails sur votre configuration + matérielle.</para> + + <sect1> + <title>Ressources Internet</title> + + <para>Les liens donnés ci-dessous se sont avérés utiles pour guider + dans les choix de matériels. Bien que les renseignements qu'ils vous + donnent ne soient pas nécessairement spécifiques (ou même + applicables) à FreeBSD, ils ne dépendent pas, pour la plupart + du système d'exploitation. Vérifiez s'il vous plaît dans le guide + du matériel pour FreeBSD que la configuration que vous avez choisie + soit compatible avec FreeBSD avant d'acheter quoi que ce soit.</para> + + <para> + <itemizedlist> + + <listitem> + <para><ulink url="http://www.tomshardware.com/">The Pentium + Systems Hardware Performance Guide</ulink> - le + guide des performances des systèmes Pentium.</para> + </listitem> + + </itemizedlist> + </para> + + </sect1> + + <sect1 id="hw-configs"> + <title>Exemples de configurations</title> + + <para>La liste de configurations ci-dessous ne constitue en aucun + cas une publicité pour un constructeur ou un produit de la + part du <emphasis>Projet FreeBSD</emphasis>. Ces informations ne + sont données que pour être utiles et rassemblent simplement les + expériences de différentes personnes sur des configurations variées. + Tarifs indicatifs. Chaussée glissante. Attention au chien.</para> + + <sect2 id="hw-jordans-picks"> + <title>La sélection de Jordan</title> + + <para>J'ai obtenu de bons résultats en mettant sur pied des stations + de travail et des serveurs avec les composants ci-dessous. Je ne + peut vous garantir que vous en aurez aussi, ni qu'aucune des marques + citées restera “le meilleur choix”. J'essaierai, si + possible, de tenir cette liste à jour, mais ne peux bien évidemment + vous assurer qu'elle le soit à un moment donné.</para> + + <sect3 id="hw-mb"> + <title>Cartes mères</title> + + <para>Pour les systèmes Pentium Pro (P6), j'aime assez la carte mère + bi-processseurs + <ulink url="http://www.tyan.com/html/products.html">Tyan</ulink> + S1668. Elle fait un sympathique système à un ou deux processeurs + (ce que supporte FreeBSD 3.0) et le prix du Pentium Pro 180/256K + a maintenant baissé à un niveau vraiment abordable. Le Pentium Pro + reste mon processeur favori pour les serveurs (les mégahertzs ne + font pas tout).</para> + + <para>Pour les Pentium II, j'ai un sérieux préjugé en faveur de la + carte mère <ulink url="http://www.asus.com.tw">ASUS</ulink> + <ulink url="http://www.asus.com.tw/Products/Motherboard/Pentiumpro/P2l97-s/index.html">P2l97-S</ulink> + avec contrôleur WIDE SCSI intégré.</para> + + <para>Pour les machines Pentium, la carte mère ASUS + <ulink url="http://www.asus.com.tw/Products/Motherboard/Pentium/P55tp4/index.html">P55T2P4</ulink> + paraît un bon choix pour un serveur ou une station de travail + de taille moyenne à importante. Vous pouvez aussi + regarder du côté de la carte + <ulink url="http://asustek.asus.com.tw/FTP/ASUS/Info/Spec/pvi-486sp3.txt">486SP3G</ulink>, + si vous cherchez une carte mère 486.</para> + + <note> + <para>(Il semble qu'il soit devenu difficile de se procurer ces + dernières, qu'ASUS ne fabrique apparemment plus.) </para> + </note> + + <para>Ceux qui veulent utiliser des systèmes plus tolérants aux + erreurs doivent veiller à employer de la mémoire avec contrôle + de parité, ou ECC, pour des applications non-stop.</para> + + <note> + <para>La mémoire ECC entraîne une petite perte de performances + (que vous remarquerez ou non selon votre application) mais vous + apporte des gains significatifs en termes de tolérance + d'erreur.</para> + </note> + </sect3> + + <sect3> + <title>Contrôleurs de disque</title> + + <para>C'est un point plus délicat. J'utilisais + inconditionnellement des contrôleurs + <ulink url="http://www.buslogic.com">Buslogic</ulink> + pour tout, de l'ISA au PCI, j'incline maintenant plutôt vers + le contrôleur <ulink + url="http://www.adaptec.com">Adaptec</ulink> 1542CF pour l'ISA, + le contrôleur Buslogic Bt747c pour l'EISA et le contrôleur + Adaptec 2940UW pour le PCI.</para> + + <para>J'ai aussi eu de bons résultats avec les cartes + PCI NCR/Symbios, bien qu'il faille s'assurer que + votre carte mère supporte le modèle sans BIOS (s'il n'y + a rien sur votre carte qui ressemble vaguement à une puce + ROM, c'est probablement un modèle qui s'attend à ce que son + BIOS soit sur la carte mère).</para> + + <para>Si vous pensez qu'il vous faut plus d'un contrôleur SCSI, + vous pouvez songer à économiser vos maigres ressources en + emplacements PCI en achetant une carte Adaptec 3940, qui + intègre deux contrôleurs PCI sur un seul connecteur.</para> + + </sect3> + + <sect3 id="hw-disks"> + <title>Disques durs</title> + + <para>Pour cette version particulière de la roulette russe, je + donnerais peu de conseils précis sinon pour recommander + “du SCSI plutôt que de l'IDE dès que vous pouvez vous + l'offrir”. Même sur de petites machines de bureau, le SCSI + est souvent un meilleur choix parce qu'il vous permet de + migrer vos disques du serveur vers la machine de bureau lorsque + les prix en chute des disques en font une solution économiquement + viable. Si vous avez plus d'une machine à administrer, ne pensez + pas seulement en terme de stockage, voyez plutôt cela comme + une chaîne alimentaire!</para> + + <para>Je ne trouve pas que les disques WIDE SCSI représentent + un investissement nécessaire, à moins que vous ne mettiez en place + un serveur NFS ou des forums de discussion + qui devront supporter beaucoup d'accès disque pour de nombreux + utilisateurs.</para> + + </sect3> + + <sect3 id="hw-jordans-picks-cdrom"> + <title>Lecteur de CD-ROMs</title> + + <para>Ma préférence pour le SCSI s'applique aussi aux lecteurs de + CD-ROMs SCSI, et bien que j'ai toujours eu de bons résultats + avec le modèle <ulink url="http://www.toshiba.com">Toshiba</ulink> + XM-3501B (qui existe aussi en version tiroir sous la référence + XM-5401B), je suis maintenant très partisan du lecteur + <ulink url="http://www.plextor.com">Plextor</ulink> PX-12CS. + C'est un lecteur 12x dont les performances et la fiabilité sont + excellentes.</para> + + <para>D'une façon générale, la plupart des lecteurs de CD-ROMs SCSI + que j'ai vus, sont de fabrication robuste et vous ne vous + tromperez pas non plus si vous prenez un modèle HP ou NEC. Le prix + des lecteurs de CD-ROMs SCSI semble avoir aussi considérablement + baissé ces derniers mois et devient compétitif avec celui des + lecteurs IDE, alors qu'ils restent techniquement supérieurs. A + choisir entre les deux, je ne vois pas de raison de se décider + pour un lecteur IDE.</para> + + </sect3> + + <sect3 id="hw-worm"> + <title>Graveurs de CD-ROMs non réinscriptibles</title> + + <para>Au moment où j'écris ceci, FreeBSD supporte trois types de + graveurs de CD-ROMs (bien que je pense qu'ils viennent en fait + tous de chez Phillips): le Phillips CDD 522 (se comporte comme + le Plasmon), le Plasmon RF4100 et le HP 6020i. J'utilise + personnellement le HP 6020i pour graver mes CD-ROMs (avec la + version 2.2-current de FreeBSD - il ne fonctionne pas + avec la version 2.1.5 et les versions antérieures du pilote SCSI) + qui me donne toute satisfaction. Regardez dans le fichier + <ulink url="file:/usr/share/examples/worm">/usr/share/examples/worm</ulink> + sur votre système 2.2 pour avoir des exemples de procédures pour + créer des images au format ISO9660 (avec les extensions RockRidge) + de vos systèmes de fichiers et graver ensuite des CD-ROMs avec un + HP6020i.</para> + + </sect3> + + <sect3 id="hw-tape"> + <title>Lecteurs de bandes</title> + + <para>J'ai obtenu de bons résultats avec les lecteurs + <ulink url="http://www.Exabyte.COM:80/Products/8mm/8505XL/Rfeatures.html">8mm</ulink> + de chez + <ulink url="http://www.exabyte.com">Exabyte</ulink> + et + <ulink url="http://www-dmo.external.hp.com:80/tape/_cpb0001.htm">4mm (DAT)</ulink> + de chez <ulink url="http://www.hp.com">HP</ulink>.</para> + + <para>Pour les sauvegardes, je recommande les Exabytes pour la + robustesse (et la plus grande capacité) des bandes 8mm.</para> + + </sect3> + + <sect3 id="hw-video"> + <title>Cartes graphiques</title> + + <para>Si vous pouvez aussi vous offrir un serveur X commercial + pour 99$ US de chez + <ulink url="http://www.xig.com/">Xi Graphics, Inc. (autrefois, X Inside, Inc)</ulink> + alors je vous recommande vivement la carte + <ulink url="http://www.matrox.com/">Matrox</ulink> + <ulink url="http://www.matrox.com/mgaweb/brochure.htm">Millenium</ulink>. + Cette carte est aussi très bien supportée par le serveur + <ulink url="http://www.xfree86.org/">XFree86</ulink>, + qui en est maintenant à sa version 3.3.2.</para> + + <para>Les cartes + <ulink url="http://www.nine.com/">Number 9</ulink> sont aussi + un excellent choix - leurs cartes Vision 868 et 968 + (la série 9FX) basées sur le circuit S3 sont aussi très rapides + et bien gérées par le pilote S3 du serveur XFree86.</para> + + </sect3> + + <sect3 id="hw-monitors"> + <title>Moniteurs</title> + + <para>J'ai eu d'excellents résultats avec les moniteurs + <ulink url="http://cons3.sel.sony.com/SEL/ccpg/display/ms17se2.html">Sony Multiscan 17seII</ulink>, + et avec le Viewsonic qui utilise le même tube (Trinitron). Pour + des modèles au-delà de 17", tout ce que je peux aujourd'hui + conseiller est de ne pas dépenser moins de 2.500 $ pour + un moniteur 21" ou 1.700 $ pour un 20", si vous en avez + vraiment besoin. Il y de bons écrans dans + la gamme des 20" et plus, + et il y en a aussi de bon marché. Malheureusement, il y en a très + peu qui soient à la fois de bonne qualité et bon marché!</para> + + </sect3> + + <sect3 id="hw-networking"> + <title>Réseau</title> + + <para>Je peux recommander le contrôleur <ulink + url="http://www.smc.com/">SMC</ulink> Ultra 16 pour les + applications ISA et les cartes SMC EtherPower ou Compex ENET32 + pour les réseaux importants basés sur du PCI. Ces deux cartes + PCI sont construites autour de la puce contrôleur Ethernet + DEC DC21041 et les autres cartes qui employent cette puce, telles + que la Zynx ZX432 et la DEC DE435, fonctionneront aussi. Pour + les réseaux 100Mbit, les cartes SMC SMC9332DST 10/100MB ou Intel + Intel EtherExpress Pro/100B font du bon travail, ma préférence + allant à la carte Intel EtherExpress.</para> + + <para>Si d'un autre côté vous cherchez la solution la moins chère + possible, mais qui fonctionne malgré tout raisonnablement, alors + pratiquement n'importe quel clone NE2000 est un bon choix.</para> + + </sect3> + + <sect3 id="hw-serial"> + <title>Série</title> + + <para>Si vous cherchez des solutions pour un réseau série à grande + vitesse, alors <ulink url="http://www.dgii.com/">Digi + International</ulink> fabrique la série <ulink + url="http://www.dgii.com/prodprofiles/profiles-prices/digiprofiles/digispecs/sync570.html">SYNC/570</ulink>, + pour laquelle FreeBSD-current a maintenant des pilotes. + <ulink url="http://www.etinc.com">Emerging Technologies</ulink> + fabrique aussi une carte avec des fonctionnalités T1/E1, + qui utilise du logiciel qu'il fournit. + Je n'ai cependant pas l'expérience personnelle de ces deux + produits.</para> + + <para>Les possibilités de cartes multi-ports sont quelque peu plus + nombreuses, bien que le support par FreeBSD des produits + <ulink url="http://www.cyclades.com/">Cyclades</ulink> soit + réputé le plus complet, essentiellement en raison de + l'engagement pris par cette compagnie de nous fournir du + matériel pour évaluation et des spécifications techniques. J'ai + entendu dire que la Cyclom-16Ye offrait le meilleur rapport + prix/performances, mais je n'ai pas consulté les tarifs récents. + D'autres cartes multi-ports dont j'ai entendu dire du bien + sont les BOCA et les AST, et <ulink + url="http://www.stallion.com/">Stallion + Technologies</ulink> propose apparemment <ulink + url="ftp://ftp.stallion.com/drivers/unsupported/freebsd/stalbsd-0.0.4.tar.gz">ici</ulink> + un pilote non officiel pour ses cartes.</para> + + </sect3> + + <sect3 id="hw-audio"> + <title>Audio</title> + + <para>J'utilise actuellement une AWE32 de <ulink + url="http://www.creaf.com/">Creative Labs</ulink>, bien qu'à peu + près tout ce qui vient de chez Creative Labs marcherait + aujourd'hui. Ce qui ne veut pas dire que d'autres cartes son + ne marchent pas, simplemement je n'en ai qu'une expérience + limitée (j'aimais bien autrefois les cartes GUS, mais la + situation des cartes Gravis est délicate depuis quelque + temps).</para> + + </sect3> + + <sect3 id="hw-vgrabbers"> + <title>Vidéo</title> + + <para>Pour la capture vidéo, il y a deux bons + choix - n'importe + quelle carte à base de puce Brooktree BT848, comme les Hauppauge + ou les WinTV, marchera à merveille avec FreeBSD. Une autre carte + que j'utilise est la + <ulink + url="http://www.matrox.com/">Matrox</ulink> <ulink + url="http://www.matrox.com/imgweb/meteor.htm">Meteor</ulink>. + FreeBSD supporte aussi la carte d'incrustation vidéo plus ancienne + de chez Creative Labs, mais elles deviennent difficiles à trouver. + Notez que la carte Meteor <emphasis>ne fonctionnera pas</emphasis> + avec les cartes mères qui ont un contrôleur 440FX! Consultez + la section + <link linkend="hw-mb">Cartes mères</link> pour plus de + détails. Dans ce cas, il vaut mieux prendre une carte + BT848.</para> + + </sect3> + </sect2> + </sect1> + + <sect1 id="hw-core"> + <title>Composants de base/Processeurs</title> + + <sect2> + <title>Cartes mères, bus et contrôleurs de bus</title> + + <sect3> + <title>* ISA</title> + <para></para> + </sect3> + + <sect3> + <title>* EISA</title> + <para></para> + </sect3> + + <sect3> + <title>* VLB</title> + <para></para> + </sect3> + + <sect3 id="hw-mb-pci"> + <title>PCI</title> + + <para><emphasis>Contribution de &a.rgrimes;.<!-- <br> -->25 Avril + 1995.</emphasis></para> + + <para><emphasis>Mises à jour de &a.jkh;.</emphasis><!-- <br> + -->Dernière mise à jour le <emphasis>26 Août + 1996.</emphasis></para> + + <para>Parmi les contrôleurs INTEL PCI, la liste suivante décrit + différents types de problème connus, et leur gravité, du pire + au meilleur.</para> + + <variablelist> + <varlistentry><term>Mercury:</term> + <listitem> + <para>Problèmes de cohérence du cache, en particulier s'il + y a des contrôleurs de bus ISA en plus du pont ISA/PCI. + C'est un problème matériel, la seule solution consiste + à désactiver le cache.</para> + </listitem> + </varlistentry> + + <varlistentry><term>Saturn-I <emphasis>(i.e., 82424ZX en i + révision 0, 1 ou 2)</emphasis>:</term> + + <listitem> + <para>Problème de cohérence lors de la réécriture dans le + cache. C'est un problème matériel. La seule parade + consiste à configurer le cache externe en mode + transparent. Ou à passer à la version Saturn-II.</para> + </listitem> + </varlistentry> + + <varlistentry><term>Saturn-II <emphasis>(i.e., 82424ZX en + révision 3 ou 4)</emphasis>:</term> + + <listitem> + <para>Fonctionne bien, mais de nombreux fabriquants de + carte mère ne se préoccupent pas du bit SRAM nécessaire + aux opérations de réecriture. On peut y pallier en + utilisant le mode transparent ou en gérant le bit SRAM. + (J'ai fait cela avec une ASUS PCI/I-486SP3G révision 1.6 + et des cartes plus récentes).</para> + </listitem> + </varlistentry> + + <varlistentry><term>Neptune:</term> + + <listitem> + <para>Ne peut gérer plus de deux contrôleurs de bus. C'est + une erreur de conception reconnue par Intel. Parmi les + solutions: ne pas utiliser plus de deux contrôleurs, + matériel spécialement conçu pour remplacer l'arbitre de + bus PCI (apparu avec l'Intel Altair et d'autres cartes + mères pour serveur Intel), et bien sûr la réponse + officielle d'Intel, le remplacer par un Triton, nous + “l'y avons mis”.</para> + </listitem> + </varlistentry> + + <varlistentry><term>Triton <emphasis>(ie, + 430FX)</emphasis>:</term> + + <listitem> + <para>Pas de problème de cohérence du cache ou de contrôle + du bus connu. Mais cette puce n'implémente tout simplement + pas le contrôle de parité. Contournez le problème de + parité. Utilisez des cartes Triton-II si vous avez + le choix.</para> + </listitem> + </varlistentry> + + <varlistentry><term>Triton-II <emphasis>(ie, + 430HX)</emphasis>:</term> + + <listitem> + <para>Tous les échos sur les cartes mères avec cette puce + sont jusqu'ici favorables. Pas de problème connu.</para> + </listitem> + </varlistentry> + + <varlistentry><term>Orion:</term> + + <listitem> + <para>Les premières versions de cette puce souffraient d'un + retard en écriture PCI qui entraînait des dégradations + sensibles de performance des applications gourmandes en + trafic sur le bus PCI. Les versions B0 et ultérieures de + cette puce ont réglé ce problème.</para> + </listitem> + </varlistentry> + + <varlistentry><term><ulink + url="http://developer.intel.com/design/pcisets/desktop.htm#440FX">440FX</ulink>:</term> + + <listitem> + <para>Cette puce pour <ulink + url="http://www.intel.com/procs/ppro/index.htm">Pentium Pro</ulink> + semble fonctionner correctement et ne souffre pas des + problèmes qu'ont connus + les premières puces Orion. Il accepte + aussi une plus grande variété de types de mémoire, y compris + l'ECC et le contrôle de parité. Le seul problème connu est + que la carte d'acquisition vidéo Matrox Meteor ne fonctionne + pas avec.</para> + + </listitem> + </varlistentry> + </variablelist> + + </sect3> + </sect2> + + <sect2> + <title>Processeurs/Coprocesseurs</title> + + <para><emphasis>Contribution de &a.asami;.<!-- <br> -->26 Décembre + 1997.</emphasis></para> + + <sect3> + <title>P6 (Pentium Pro/Pentium II)</title> + + <para>Le Pentium Pro et le Pentium II fonctionnent parfaitement + avec FreeBSD. + De fait, notre site ftp de base <ulink + url="ftp://ftp.freebsd.org/">ftp.freebsd.org</ulink> (aussi + appelé "<filename>ftp.cdrom.com</filename>", le site ftp le plus + important au monde) utilise FreeBSD sur un Pentium Pro. Des <ulink + url="ftp://ftp.cdrom.com/archive-info/wcarchive.txt">Détails de la configuration</ulink> sont disponibles si vous êtes intéressés.</para> + + </sect3> + + <sect3> + <title>Pentium</title> + + <para>Les Pentium Intel (P54C), Pentium MMX (P55C), AMD K6 et + Cyrix/IBM 6x86MX fonctionnent tous avec FreeBSD. Je n'entrerai + pas dans le détail de savoir lequel est plus rapide que l'autre, + il y a des zillions de sites Web sur l'Internet pour vous + l'expliquer à l'endroit et à l'envers. + <!-- smiley --><emphasis>:)</emphasis></para> + + <note> + <para>Les différents processeurs ont besoin d'une alimentation + et d'une ventilation différentes. Assurez-vous que votre carte + mère fournit la tension exacte requise par votre processeur. Par + exemple, de nombreuses puces MMX ont besoin d'une alimentation + dédoublée (e.g., 2.9V pour l'unité centrale, 3.3V pour les + entrées/sorties). Certaines puces AMD et Cyrix/IBM chauffent + plus que les puces Intel. Dans ce cas, vérifiez que vous avez + bien les bons radiateurs et ventilateurs (vous pouvez trouver la + liste des composants certifiés sur leurs pages Web).</para> + </note> + + <sect4> + <title>Vitesses d'horloge</title> + + <para><emphasis>Contribution de &a.rgrimes;.<!-- <br> -->1 + Octobre 1996.</emphasis></para> + + <para><emphasis>Mise à jour de &a.asami;.<!-- <br> -->27 Décembre + 1997.</emphasis></para> + + <para>Les machines de la catégorie Pentium utilisent des vitesses + d'horloge différentes pour leurs différents composants. Il y a + la fréquence du processeur, celle du bus mémoire externe et + celle du bus PCI. Il n'est pas toujours exact qu'un processeur + “plus rapide” compose un système plus rapide + qu'un “plus lent”, du fait de ces différentes + vitesses d'horloge. Voici une table qui donne la liste des + possibilités:</para> + + <informaltable frame="none"> + <tgroup cols="4"> + <thead> + <row> + <entry>Fréquence du processeur (MHz)</entry> + <entry>Horloge externe et fréquence du bus mémoire (mHz) + [a]</entry> + <entry>Coefficient multiplicateur horloge + interne/externe</entry> + <entry>Fréquence du bus PCI (MHz)</entry> + </row> + </thead> + <tbody> + <row> + <entry>60</entry> + <entry>60</entry> + <entry>1.0</entry> + <entry>30</entry> + </row> + + <row> + <entry>66</entry> + <entry>66</entry> + <entry>1.0</entry> + <entry>33</entry> + </row> + + <row> + <entry>75</entry> + <entry>50</entry> + <entry>1.5</entry> + <entry>25</entry> + </row> + + <row> + <entry>90</entry> + <entry>60</entry> + <entry>1.5</entry> + <entry>30</entry> + </row> + + <row> + <entry>100</entry> + <entry>50 [b] + </entry> + <entry>2</entry> + <entry>25</entry> + </row> + + <row> + <entry>100</entry> + <entry>66</entry> + <entry>1.5</entry> + <entry>33</entry> + </row> + + <row> + <entry>120</entry> + <entry>60</entry> + <entry>2</entry> + <entry>30</entry> + </row> + + <row> + <entry>133</entry> + <entry>66</entry> + <entry>2</entry> + <entry>33</entry> + </row> + + <row> + <entry>150</entry> + <entry>60</entry> + <entry>2.5</entry> + <entry>30 (Intel, AMD)</entry> + </row> + + <row> + <entry>150</entry> + <entry>75</entry> + <entry>2</entry> + <entry>37.5 (Cyrix/IBM 6x86MX)</entry> + </row> + + <row> + <entry>166</entry> + <entry>66</entry> + <entry>2.5</entry> + <entry>33</entry> + </row> + + <row> + <entry>180</entry> + <entry>60</entry> + <entry>3</entry> + <entry>30</entry> + </row> + + <row> + <entry>200</entry> + <entry>66</entry> + <entry>3</entry> + <entry>33</entry> + </row> + + <row> + <entry>233</entry> + <entry>66</entry> + <entry>3.5</entry> + <entry>33</entry> + </row> + </tbody> + </tgroup> + </informaltable> + <para>Remarques:</para> + <itemizedlist> + <listitem> + <para>[a] 66MHz peut être en fait 66.667MHz, mais ne pas le + présumer.</para> + </listitem> + <listitem> + <para>[b] Le Pentium 100 peut utiliser une horloge externe à + 50MHz avec un coefficient multiplicateur de 2 ou à 66MHz + avec un coefficient multiplicateur de 1.5.</para> + </listitem> + </itemizedlist> + <para>L'idéal est donc d'avoir un processeur à 100, + 133, 166, 200 ou 233, sinon qu'avec un coefficient + multiplicateur de 3 et plus, le processeur attend après + la mémoire.</para> + + </sect4> + + <sect4> + <title>Le bogue de l'AMD K6</title> + + <para>En 1997, on a rapporté des problèmes d'erreurs d'accès + à la mémoire lors de compilations intensives avec l'AMD K6. + Le problème a été réglé au troisième trimestre 97. D'après + les rapports, les puces K6 dont la date de fabrication est + “9733” ou plus (i.e., produites à partir de la + 33ème semaine de 97) n'ont plus ce problème.</para> + + </sect4> + </sect3> + + <sect3> + <title>* 486</title> + <para></para> + </sect3> + + <sect3> + <title>* 386</title> + <para></para> + </sect3> + + <sect3> + <title>286</title> + + <para>Désolé, FreeBSD ne tourne pas sur des machines 80286. Il est + quasiment impossible de faire tourner les UNIXs conséquents et + dotés de fonctionnalités complètes d'aujourd'hui sur de telles + machines.</para> + + </sect3> + </sect2> + + <sect2> + <title>Mémoire</title> + + <para>Il vous faudra au moins 5 MB de mémoire pour pouvoir installer + FreeBSD. Une fois votre système en état de marche, vous pouvez + <link linkend="kernelconfig-building">recompiler un noyau</link> + qui utilisera moins de mémoire. Avec <filename>boot4.flp</filename> + vous pouvez vous en sortir avec seulement 4 MB.</para> + + </sect2> + + <sect2> + <title>* BIOS</title> + + <para></para> + </sect2> + </sect1> + + <sect1 id="hw-io"> + <title>*** Périphériques d'Entrée/Sortie</title> + +<!-- + &trans.a.dntt; +--> + + <sect2> + <title>* Cartes graphiques</title> + + <para></para> + </sect2> + + <sect2> + <title>* Cartes son</title> + + <para></para> + </sect2> + + <sect2> + <title>*** Ports série et cartes multi-ports</title> + + <sect3 id="uart"> + <title>*** L'UART : Ce que c'est et comment il fonctionne</title> + &sgml.todo; + +<!-- + <para><emphasis>Copyright © 1996 &a.uhclem;, tous droits + réservés. 13 janvier 1996.</emphasis></para> + + <para>Le contrôleur du récepteur/émetteur + asynchrone universel <emphasis>Universal + Asynchronous Receiver/Transmitter (UART)</emphasis> + est le composant clef du sous-système de communication + d'un ordinateur. L'UART prend des octets de données et + transmet des bits individuels d'un manière séquentielle. + Au point de destination, un second UART re-assemble les + bits en octets complets.</para> + + <para>Les transmissions séries sont habituellement + utilisées avec les modems et pour les communications + non-réseaux entre les ordinateurs, terminaux et autres + périphériques.</para> + + <para>Il y a deux formes de transmission série : synchrone + et asynchrone. Dépendant du mode que votre matériel + supporte, le nom d'un sous-système de communication indiquera + <literal>A</literal> s'il supporte les communications + asynchrone et <literal>S</literal> s'il supporte les + communications synchrones. Les deux formes sont décrites + ci-dessous :</para> + + <para>Les acronymes les plus courants sont : + + <blockquote> + <para>UART <emphasis>Universal Asynchronous + Receiver/Transmitter></emphasis> : Récepteur/Emetteur + universel asynchrone</para> + </blockquote> + + <blockquote> + <para>USART <emphasis>Universal SYnchronous-Asynchronous + Receiver/Transmitter></emphasis> : Récepteur/Emetteur + universel synchrone-asynchrone</para> + </blockquote></para> + + <sect4> + <title>Transmission série synchrones</title> + + <para>Les transmissions séries synchrones nécessite le + fait que l'émetteur et le récepteur partage une horloge + commune, ou que l'envoyeur fournisse un signal + d'échantillonage + ou n'importe quel autre signal temporel afin que le + récepteur sache quand est-ce qu'il doit + “lire” le prochain bit de données. Dans la + plupart des formes de communication synchrone, s'il + n'y a pas de données disponibles au moment où il faut + envoyer, un caractère de remplissage doit être envoyé à + la place de telle sorte qu'il y ait toujours des + données en cours de transmission. + La communication synchrone est souvent plus efficace + parce seulement des bits de données sont transmis entre + l'émetteur et le récepteur, et la communication + synchrone peut coûter plus cher si du cablage et + circuit supplémentaires sont nécessaires pour partager + un signal d'horloge entre l'émetteur et le + récepteur.</para> + + <para>Une forme de transmission synchrone est celle + utilisée par les imprimantes et les périphériques disques + non amovibles dans lesquels la donnée est envoyé à un + ensemble de câbles pendant que l'horloge ou le signal + d'échantillonage est envoyé par un câble différent. + Les imprimantes et les périphériques de disques fixes ne + sont normalement pas des périphériques série parce que la + plupart des interfaces standards de disques fixes envoient + un mot entier de donnée par signal d'horloge ou + d'échantillonage en utilisant un câble séparé pour chaque + bit du mot. Dans l'industrie du PC, cela est appelé + périphérique parallèle.</para> + + <para>Le matériel de communication série standard dans un PC + ne supporte pas les opérations synchrones. Ce mode est crit + ici dans un seul but de comparaison.</para> + </sect4> + + <sect4> + <title>Transmission parallèle asynchrone</title> + + <para>La transmission asynchrone parallèle permet + au données d'être transmises sans que l'émetteur n'ait à + envoyer une horloge au récepteur. + A la place, l'émetteur et le récepteur doivent s'entendre + à l'avance sur les paramêtres de temps et des bits spéciaux + sont ajoutés à chaque mot utilisé pour synchroniser les + unités d'envoi et de réception.</para> + + <para>Lorsqu'un mot est donné à l'UART pour des + transmissions asynchrones, un bit nommé "bit de départ" + est ajouté au débute de chaque mot transmis. Le bit de + départ est utilisé pour avertir le récepteur qu'un mot de + donnée est sur le point d'être envoyé, et pour forcer + l'horloge du récepteur à se synchroniser avec l'horloge de + l'émetteur. Ces deux horloges doivent être assez précises + afin de ne pas avoir un décalage de fréquence supérieur à + 10% durant la transmission du reste des bits du mot. (cette + nécessité a été introduit aux jours des téléprinters + mécaniques et est fréquement rencontré par les équipements + électroniques modernes.</para> + + <para>Après le bit de départ, les bits individuels du mot de + données sont envoyés, avec le bit de poids faible + <emphasis> - the Least Significant Bit (LSB) - </emphasis> + devant être envoyé en premier. + Chaque bit dans la transmission est envoyé pour exactement + le même temps que tous les autres bits, et le récepteur + “regarde” dans le câble à + approximativement la moitié de la période assignée à + chaque bit pour déterminer si le bit est un + <literal>1</literal> ou un <literal>0</literal>. + Par exemple, si cela prend deux secondes pour + envoyer chaque bit, le récepteur examinera le + signal pour déterminer si c'est un <literal>1</literal> + ou un <literal>0</literal> après qu'une seconde + se soit passée, puis il attendra deux secondes, + et examinera la valeur du bit suivant, et ainsi + de suite.</para> + + <para>L'émetteur ne sait pas si le récepteur a + “regardé” la valeur du bit. + L'émetteur a seulement connaissance de + l'horloge lui disant de commencer à transmettre + le prochain bit du mot.</para> + + <para>Lorsqu'un mot de donnée complet a été + envoyé, l'émetteur peut ajouter un bit de + parité que l'émetteur génère. Le bit de + parité peut être utilisé par le récepteur pour + effectuer une vérification d'erreur simple. + Puis enfin, un bit d'arrêt est envoyé à + l'emmetteur.</para> + + <para>Lorsque le récepteur recoit tous les bits + du mot de données, il peut vérifier les bits de + parité (l'émetteur et le récepteur doivent + s'être mis d'accord sur le bit de parité + utilisé), puis le récepteur attend un bit + d'arrêt. Si le bit d'arrêt n'apparait pas au + moment où il est supposé le faire, l'UART + considère que le mot complet est erroné et + reportera une erreur de fenêtre au processeur + hôte lorsque le mot de donnée est lu. La cause + usuelle d'une erreur de fenêtre est lorsque + l'horloge de l'émetteur et du récepteur ne + tournent pas à la même vitesse, et que le + signal a été interrompu.</para> + + <para>Indépendamment de si les données ont été + reçu correctement ou non, l'UART écarte + automatiquement les bits de départ, d'arrêt et de + parité. + Si l'émetteur et le récepteur sont configurés + identiquement, ces bits ne sont pas passé à + l'hôte.</para> + + <para>Si un autre mot est prêt pour la + transmission, le bit de départ pour le nouveau mot + peut être envoyé aussitôt que le bit d'arrêt pour + le mot précédent a été envoyé.</para> + + <para>Parce que les données asynchrones sont + “auto-descriptibles”, s'il n'y a pas + de données à transmettre, la ligne de transmission + peut être inactive.</para> + </sect4> + + <sect4> + <title>Autres fonctions UART</title> + + <para>En plus de son travail qui est de convertir + des données de parallèle à série en réception, un + UART fournit usuellement des circuits addtionnel + pour les signaux qui peuvent être utilisés pour + indiquer l'état de le média de transmission, et + pour réguler le flux de données dans l'éventualité + où le périphérique distant n'est pas préparé à + accepter plus de données. Par exemple, quand le + périphérique connecté à l'UART est un modem, le + modem peut reporter la présence d'une portance sur + la ligne téléphonique alors que l'ordinateur peut + ordonner au modem de se réinitialiser ou de ne pas + prendre d'appel en prenant en compte ou non ces + signaux supplépmentaires. La fonction de chacun + de ces signaux supplémentaires est défini dans le + standard EIA RS232-C.</para> + </sect4> + + <sect4> + <title>Les standards RS232-C et V.24</title> + + <para>Dans la plupart des systèmes informatiques, + l'UART est connecté au circuit générant le signal + correspondant aux spécifications EIA RS232-C. + Il y a aussi un standard CCITT nommé V.24 + qui reprend les spécifications incluses dans + RS232-C.</para> + + <sect5> + <title>Assignation de bits RS232-C (marques et + espaces)</title> + + <para>Dans la RS232-C, une valeur de <literal>1</literal> + est appelée une <literal>marque</literal> et une + valeur de <literal>0</literal> est appelé un + <literal>espace</literal>. + Lorsqu'une ligne de communication est inactive, + la ligne est dite “marquant” ou + transmettant continuellement la valeur + <literal>1</literal>.</para> + + <para>Le bit de départ a toujours une valeur de + <literal>0</literal> (un espace). Le bit d'arrêt + a toujours une valeur de <literal>1</literal> + (une marque). Cela signifie qu'il y aura + toujours une transition d'une marque (1) à un + espace (0) sur la ligne à chaque mot, même si + plusieurs mots sont transmis à la suite. + Cela garanti que l'émetteur et le récepteur + peuvent resynchroniser leurs horloges, + indépendamment du contenu des bits de données en + train d'être transmis.</para> + + <para>Le temps d'inactivité entre les bits de + départ et d'arrêt n'ont pas à être exactement + multiple (en incluant zéro) de la vitesse de + transmission de bits sur le lien de + communication, mais la plupart des UART sont + conçus de cette manière pour que cela soit plus + simple.</para> + + <para>Dans la RS232-C, le signal "marquant" + (un <literal>1</literal>) est représenté par + un voltage entre -2 VDC (tension en courant + continu) et -12 VDC, et un + signal "d'espace" (un <literal>0</literal>) + est représenté par un voltage entre 0 et +12 VDC. + L'émetteur est supposé envoyer du +12 VDC ou + -12 VDC, et le récepteur, et le récepteur est + supposé supporter une perte de voltage sur les + longs câbles. + Certains émetteurs avec des périphériques de + basse énergie (comme les ordinateurs portables) + utilisent souvent seulement +5 VDC et -5 VDC, + mais ces valeurs sont toujours acceptables + par un récepteur RS232-C, du moment que la + longueur du câble soit courte.</para> + </sect5> + + <sect5> + <title>Signal de rupture RS232-C (Break Signal)</title> + + <para>La RS232-C spécifie aussi un signal + appelé <literal>rupture</literal> (break), + qui est causé en envoyant en continu des valeurs + d'espacement (ni de départ, ni d'arrêt). + Quand iul n'y a pas d'électricité présent sur le + circuit de données, la ligne est considérée en + train d'envoyer une <literal>Rupture</literal>.</para> + + <para>Le signal <literal>Rupture</literal> peut + être plus long que le temps mis pour envoyer un + octet complet plus les bits de départ, d'arrêt + et de parité. La plupart des UART peuvent + distinguer une erreur de fenêtre et une + rupture, mais si l'UART ne peut pas le + faire, la détection de fenêtre peut être + utilisée pour identifier les + ruptures.</para> + + <para>Aux jours du teleprinter, lorsque + plusieurs imprimantes à travers le monde étaient + câblées en série (comme les services de news), + toute unité pouvait causer une + <literal>Rupture</literal> en ouvrant + temporairement le circuit complet. + Cela était utilisé pour pouvoir autoriser un emplacement + avec des nouvelles importante d'interrompre un autre + emplacement en train de transmettre des informations.</para> + + <para>Dans les systèmes modernes, il y a deux types de + signal de rupture. Si la rupture est plus longue + que 1.6 secondes, on le considère comme une + "rupture de modem", et certains modems + peuvent être programmés pour terminer la conversation + et pour raccrocher ou entrer dans le mode de commande du + modem quand le modem détecte ce signal. + Si l'rupture est plus courte que 1.6 secondes, cela + signifie une rupture de données et il appartient à + l'ordinateur distant de répondre à ce signal. + Parfois cette forme de rupture est utilisée comme + signal d'attention ou d'interruption et est parfois + acceptée comme remplacement pour le caractère + ASCII CONTROL-C.</para> + + <para>Les marques et espaces sont équivalents aux + “trous” et “non trou” dans les + systèmes à cartes perforées.</para> + + <note> + <para>Les ruptures ne peuvent être générées depuis des + cartes perforées ou n'importe auelle autre valeur + d'octet, puisque les octets sont toujours envoyés avec + un bit de départ et un bit d'arrêt. + L'UART est habituellement capable de produire du signal + d'espacement en réponse à une commande spéciale + du processeur hôte.</para> + </note> + </sect5> + + <sect5> + <title>Périphériques RS232-C DTE et DCE</title> + + <para>Les spécifications de RS232-C définit deux types de + matériel : le terminal informatique (DTE) et le périphérique + de transport de données (DCE). Habituellement, le + périphérique DTE est un terminal (ou un ordinateur) et le + DCE est un modem. A l'autre extrémité de la conversation à + travers la ligne téléphonique, le modem de réception est + aussi un périphérique DCE et l'ordinateur qui est relié à + ce modem est un périphérique DTE. + Le périphérique DCE reçoit des signaux sur les broches que + le périphérique de DTE transmet, et vice versa.</para> + + <para>Lorsque deux périphériques qui sont tous deux DTE + ou tous deux DCE doivent être connectés ensemble sans un + modem ou un intermédiaire similaire entre eux, un NULL + modem doit être utilisé. Le NULL modem réorganize + électriquement le câblage de telle sorte que la sortie + de l'émetteur soit reliée au récepteur sur l'autre + périphérique et vice versa. + Des traductions semblables sont exécutées sur tous les + signaux de contrôle de sorte que chaque périphérique + voit ce qu'il pense être du signal DCE (ou DTE) depuis + l'autre périphérique.</para> + + <para>Le nombre de signaux produits par les périphériques + DTE et DCE ne sont pas symétriques. + Le périphérique DTE produit moins de signaux pour le + périphérique DCE que le périphérique DTE reçoit depuis le + DCE.</para> + </sect5> + + <sect5> + <title>Assignation des broches RS232-C</title> + + <para>Les spécifications EIA RS232-C (et l'équivalent ITU, + V.24) désigne un connecteur 25 broches (habituellement un + DB25) et définit le but de la plupart des broches dans ce + connecteur.</para> + + <para>Dans l'IBM PC et les systèmes + semblables, un sous-ensemble de signaux de + RS232-C est fourni par l'intermédiaire de neuf + connecteurs à broches (DB9). Les signaux qui ne + sont pas inclus sur le connecteur PC, travaille + principalement avec l'exécution synchrone, et ce + mode de transmission n'est pas supportés par + l'UART qu'IBM a choisi pour l'usage dans l'IBM + PC.</para> + + <para>Selon le constructeur, un DB25, un + DB9, ou les deux types de connecteur peuvent + être utilisés pour des transmissions de RS232-C. + (l'IBM PC utilise également un connecteur + DB25 pour l'interface parallèle pour + imprimante ce qui prête à certaines + confusions).</para> + + <para>Ci-dessous, une table des affectations de signaux + des connecteurs DB25 et DB9 dans RS232-C</para> + + <informaltable frame="none"> + <tgroup cols="7"> + <thead> + <row> + <entry>Broche DB25 RS232-C</entry> + <entry>Broche DB9 IBM PC</entry> + <entry>EIA Circuit Symbol</entry> + <entry>CCITT Circuit Symbol</entry> + <entry>Common Name</entry> + <entry>Signal Source</entry> + <entry>Description</entry> + </row> + </thead> + + <tbody> + <row> + <entry>1</entry> + <entry>-</entry> + <entry>AA</entry> + <entry>101</entry> + <entry>PG/FG</entry> + <entry>-</entry> + <entry>Frame/Protective Ground</entry> + </row> + + <row> + <entry>2</entry> + <entry>3</entry> + <entry>BA</entry> + <entry>103</entry> + <entry>TD</entry> + <entry>DTE</entry> + <entry>Transmission données</entry> + </row> + + <row> + <entry>3</entry> + <entry>2</entry> + <entry>BB</entry> + <entry>104</entry> + <entry>RD</entry> + <entry>DCE</entry> + <entry>Reception données</entry> + </row> + + <row> + <entry>4</entry> + <entry>7</entry> + <entry>CA</entry> + <entry>105</entry> + <entry>RTS</entry> + <entry>DTE</entry> + <entry>Request to Send</entry> + </row> + + <row> + <entry>5</entry> + <entry>8</entry> + <entry>CB</entry> + <entry>106</entry> + <entry>CTS</entry> + <entry>DCE</entry> + <entry>Clear to Send</entry> + </row> + + <row> + <entry>6</entry> + <entry>6</entry> + <entry>CC</entry> + <entry>107</entry> + <entry>DSR</entry> + <entry>DCE</entry> + <entry>Data Set Ready</entry> + </row> + + <row> + <entry>7</entry> + <entry>5</entry> + <entry>AV</entry> + <entry>102</entry> + <entry>SG/GND</entry> + <entry>-</entry> + <entry>Signal Ground</entry> + </row> + + <row> + <entry>8</entry> + <entry>1</entry> + <entry>CF</entry> + <entry>109</entry> + <entry>DCD/CD</entry> + <entry>DCE</entry> + <entry>Data Carrier Detect</entry> + </row> + + <row> + <entry>9</entry> + <entry>-</entry> + <entry>-</entry> + <entry>-</entry> + <entry>-</entry> + <entry>-</entry> + <entry>Reserved for Test</entry> + </row> + + <row> + <entry>10</entry> + <entry>-</entry> + <entry>-</entry> + <entry>-</entry> + <entry>-</entry> + <entry>-</entry> + <entry>Reserved for Test</entry> + </row> + + <row> + <entry>11</entry> + <entry>-</entry> + <entry>-</entry> + <entry>-</entry> + <entry>-</entry> + <entry>-</entry> + <entry>Reserved for Test</entry> + </row> + + <row> + <entry>12</entry> + <entry>-</entry> + <entry>CI</entry> + <entry>122</entry> + <entry>SRLSD</entry> + <entry>DCE</entry> + <entry>Sec. Recv. Line Signal Detector</entry> + </row> + + <row> + <entry>13</entry> + <entry>-</entry> + <entry>SCB</entry> + <entry>121</entry> + <entry>SCTS</entry> + <entry>DCE</entry> + <entry>Secondary Clear to Send</entry> + </row> + + <row> + <entry>14</entry> + <entry>-</entry> + <entry>SBA</entry> + <entry>118</entry> + <entry>STD</entry> + <entry>DTE</entry> + <entry>Secondary Transmit Data</entry> + </row> + + <row> + <entry>15</entry> + <entry>-</entry> + <entry>DB</entry> + <entry>114</entry> + <entry>TSET</entry> + <entry>DCE</entry> + <entry>Trans. Sig. Element Timing</entry> + </row> + + <row> + <entry>16</entry> + <entry>-</entry> + <entry>SBB</entry> + <entry>119</entry> + <entry>SRD</entry> + <entry>DCE</entry> + <entry>Secondary Received Data</entry> + </row> + + <row> + <entry>17</entry> + <entry>-</entry> + <entry>DD</entry> + <entry>115</entry> + <entry>RSET</entry> + <entry>DCE</entry> + <entry>Receiver Signal Element Timing</entry> + </row> + + <row> + <entry>18</entry> + <entry>-</entry> + <entry>-</entry> + <entry>141</entry> + <entry>LOOP</entry> + <entry>DTE</entry> + <entry>Local Loopback</entry> + </row> + + <row> + <entry>19</entry> + <entry>-</entry> + <entry>SCA</entry> + <entry>120</entry> + <entry>SRS</entry> + <entry>DTE</entry> + <entry>Secondary Request to Send</entry> + </row> + + <row> + <entry>20</entry> + <entry>4</entry> + <entry>CD</entry> + <entry>108.2</entry> + <entry>DTR</entry> + <entry>DTE</entry> + <entry>Data Terminal Ready</entry> + </row> + + <row> + <entry>21</entry> + <entry>-</entry> + <entry>-</entry> + <entry>-</entry> + <entry>RDL</entry> + <entry>DTE</entry> + <entry>Remote Digital Loopback</entry> + </row> + + <row> + <entry>22</entry> + <entry>9</entry> + <entry>CE</entry> + <entry>125</entry> + <entry>RI</entry> + <entry>DCE</entry> + <entry>Ring Indicator</entry> + </row> + + <row> + <entry>23</entry> + <entry>-</entry> + <entry>CH</entry> + <entry>111</entry> + <entry>DSRS</entry> + <entry>DTE</entry> + <entry>Data Signal Rate Selector</entry> + </row> + + <row> + <entry>24</entry> + <entry>-</entry> + <entry>DA</entry> + <entry>113</entry> + <entry>TSET</entry> + <entry>DTE</entry> + <entry>Trans. Sig. Element Timing</entry> + </row> + + <row> + <entry>25</entry> + <entry>-</entry> + <entry>-</entry> + <entry>142</entry> + <entry>-</entry> + <entry>DCE</entry> + <entry>Test Mode</entry> + </row> + </tbody> + </tgroup> + </informaltable> + </sect5> + </sect4> + + <sect4> + <title>Bits, Baud et symboles</title> + + <para>Le baud est une mesure de vitesse de transmission dans la + liaison asynchrone. En raison de l'avance en technologie + de transmission par modem, ce terme est fréquemment + employé abusivement pour désigner le débit dans les nouveaux + périphériques.</para> + + <para>Traditionnellement, un débit en baud représente le + nombre de bits qui sont envoyés réellement + par le média, pas la quantité des données qui sont + déplacées réellement d'un dispositif de + DTE à l'autre. Le comptage en baud inclut les bits + supplémentaires de départ, d'arrêt et de parité qui sont + produits par l'UART d' envoi et retirés par l'UART de + réception. Ceci signifie que les mots de sept bits + de données prennent réellement 10 bits à transmettre. + Par conséquent, un modem + capable de déplacer 300 bits par seconde d'un endroit à + l'autre peut normalement seulement + déplacer 30 mots de 7 bit si la parité est utilisée et un bit + d'arrêt et de de début sont présent.</para> + + <para>Si des mots contenant des données de 8 bits sont + utilisés et si des bits de parité sont également + utilisés, le débit tombe à 27.27 mots par seconde, parce que + cela prend maintenant 11 bits pour envoyer les mots + de 8 bits, et le modem envoie toujours seulement + 300 bits par seconde.</para> + + <para>La formule pour convertir des octets par seconde + en une vitesse baud et vice versa était + simple jusqu'à ce que les modems correcteurs d'erreurs + soient arrivés. Ces modems reçoivent + une série de bits de l'UART dans l'ordinateur + hôte (même lorsque des modems internes + sont utilisés les données sont encore + fréquemment arrangés en série) et convertissent les bits de + nouveau en octets. Ces octets sont alors combinés dans + des paquets et envoyés par + de la ligne téléphonique en utilisant une méthode de + transmission synchrone. Ceci signifie que les + bits de parité, d'arrêt, de début, ajoutés par l'UART dans + le DTE (l'ordinateur) ont été retirés par le + modem avant transmission par le modem d' envoi. Quand ces + octets sont reçus par le modem distant, le modem + distant ajoute des bits de parité, de début, d'arrêt + aux mots, les convertit en format séquentiel et puis + les envoie à l'UART de réception + dans l'ordinateur distant, qui élimine + alors les bits de début, d'arrêt et + de parité.</para> + + <para>La raison pour laquelle toutes ces conversions + supplémentaires sont effectuées est de faire de la sorte + que les deux modems + puissent exécuter les corrections d'erreurs, qui signifie que + le modem de réception peut demander au + modem d'envoi de renvoyer un bloc de données qui n'aurait + pas été reçu avec un total de + contrôle correct. Ce contrôle est manipulé par les + modems, et les périphériques DTE sont ignorant du processus + qui s'est produit.</para> + + <para>En sautant les bits de parité, de début et d'arrêt, + les bits supplémentaires des données - que les deux + modems doivent partager entre eux pour effectuer des + corrections d'erreurs - sont le plus souvent cachés lors du calcul + du débit de transmission effectivement vu par le matériel + DTE d'envoi et de réception. + Par exemple, si un modem envoie dix mots de 7 bit à un + autre modem sans compter les bits de + parité, de début et d'arrêt, le modem d' envoi pourra + ajouter 30 bits d'information que le + modem de réception pourra employer pour faire de correction + d'erreurs, ceci sans influencer la vitesse de + transmission des vraies données.</para> + + <para>L'utilisation du terme baud est rendu + encore confus + par les modems exécutant une compression. + Un mot simple de 8 bits à travers une ligne + téléphonique pourrait en réalité être une douzaine de mots + qui ont été transmis au modem d'envoi. Le modem de réception + se chargera ensuite de le décompresser et lui rendre son + contenu inital qu'il passera au DTE de réception.</para> + + </para> + Modern modems also include buffers that allow the rate that + bits move across the phone line (DCE to DCE) to be a different + speed than the speed that the bits move between the DTE and DCE on + both ends of the conversation. Normally the speed between the DTE + and DCE is higher than the DCE to DCE speed because of the use of + compression by the modems.</para> + + <para>Because the number of bits needed to describe a byte varied + during the trip between the two machines plus the differing + bits-per-seconds speeds that are used present on the DTE-DCE and + DCE-DCE links, the usage of the term Baud to describe the overall + communication speed causes problems and can misrepresent the true + transmission speed. So Bits Per Second (bps) is the correct term + to use to describe the transmission rate seen at the DCE to DCE + interface and Baud or Bits Per Second are acceptable terms to use + when a connection is made between two systems with a wired + connection, or if a modem is in use that is not performing + error-correction or compression.</para> + + <para>Modern high speed modems (2400, 9600, 14,400, and 19,200bps) + in reality still operate at or below 2400 baud, or more + accurately, 2400 Symbols per second. High speed modem are able to + encode more bits of data into each Symbol using a technique called + Constellation Stuffing, which is why the effective bits per second + rate of the modem is higher, but the modem continues to operate + within the limited audio bandwidth that the telephone system + provides. Modems operating at 28,800 and higher speeds have + variable Symbol rates, but the technique is the same.</para> + </sect4> + + + <sect4> + <title>The IBM Personal Computer UART</title> + + <para>Starting with the original IBM Personal Computer, IBM selected + the National Semiconductor INS8250 UART for use in the IBM PC + Parallel/Serial Adapter. Subsequent generations of compatible + computers from IBM and other vendors continued to use the INS8250 + or improved versions of the National Semiconductor UART + family.</para> + + <sect5> + <title>National Semiconductor UART Family Tree</title> + + <para>There have been several versions and subsequent generations + of the INS8250 UART. Each major version is described + below.</para> + + <programlisting> +INS8250 -> INS8250B + \ + \ + \-> INS8250A -> INS82C50A + \ + \ + \-> NS16450 -> NS16C450 + \ + \ + \-> NS16550 -> NS16550A -> PC16550D</programlisting> + + <variablelist> + <varlistentry> + <term>INS8250</term> + + <listitem> + <para>This part was used in the original IBM PC and IBM + PC/XT. The original name for this part was the INS8250 + ACE (Asynchronous Communications Element) and it is made + from NMOS technology.</para> + + <para>The 8250 uses eight I/O ports and has a one-byte send + and a one-byte receive buffer. This original UART has + several race conditions and other flaws. The original IBM + BIOS includes code to work around these flaws, but this + made the BIOS dependent on the flaws being present, so + subsequent parts like the 8250A, 16450 or 16550 could not + be used in the original IBM PC or IBM PC/XT.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>INS8250-B</term> + + <listitem> + <para>This is the slower speed of the INS8250 made from NMOS + technology. It contains the same problems as the original + INS8250.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>INS8250A</term> + + <listitem> + <para>An improved version of the INS8250 using XMOS + technology with various functional flaws corrected. The + INS8250A was used initially in PC clone computers by + vendors who used “clean” BIOS designs. Because + of the corrections in the chip, this part could not be + used with a BIOS compatible with the INS8250 or + INS8250B.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>INS82C50A</term> + + <listitem> + <para>This is a CMOS version (low power consumption) of the + INS8250A and has similar functional + characteristics.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>NS16450</term> + + <listitem> + <para>Same as NS8250A with improvements so it can be used + with faster CPU bus designs. IBM used this part in the + IBM AT and updated the IBM BIOS to no longer rely on the + bugs in the INS8250.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>NS16C450</term> + + <listitem> + <para>This is a CMOS version (low power consumption) of the + NS16450.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>NS16550</term> + + <listitem> + <para>Same as NS16450 with a 16-byte send and receive buffer + but the buffer design was flawed and could not be reliably + be used.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>NS16550A</term> + + <listitem> + <para>Same as NS16550 with the buffer flaws corrected. The + 16550A and its successors have become the most popular + UART design in the PC industry, mainly due it its ability + to reliably handle higher data rates on operating systems + with sluggish interrupt response times.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>NS16C552</term> + + <listitem> + <para>This component consists of two NS16C550A CMOS UARTs in + a single package.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>PC16550D</term> + + <listitem> + <para>Same as NS16550A with subtle flaws corrected. This is + revision D of the 16550 family and is the latest design + available from National Semiconductor.</para> + </listitem> + </varlistentry> + </variablelist> + </sect5> + + <sect5> + <title>The NS16550AF and the PC16550D are the same thing</title> + + <para>National reorganized their part numbering system a few years + ago, and the NS16550AFN no longer exists by that name. (If you + have a NS16550AFN, look at the date code on the part, which is a + four digit number that usually starts with a nine. The first + two digits of the number are the year, and the last two digits + are the week in that year when the part was packaged. If you + have a NS16550AFN, it is probably a few years old.)</para> + + <para>The new numbers are like PC16550DV, with minor differences + in the suffix letters depending on the package material and its + shape. (A description of the numbering system can be found + below.)</para> + + <para>It is important to understand that in some stores, you may + pay $15(US) for a NS16550AFN made in 1990 and in the next + bin are the new PC16550DN parts with minor fixes that National + has made since the AFN part was in production, the PC16550DN was + probably made in the past six months and it costs half (as low + as $5(US) in volume) as much as the NS16550AFN because they + are readily available.</para> + + <para>As the supply of NS16550AFN chips continues to shrink, the + price will probably continue to increase until more people + discover and accept that the PC16550DN really has the same + function as the old part number.</para> + </sect5> + + <sect5> + <title>National Semiconductor Part Numbering System</title> + + <para>The older NS<replaceable>nnnnnrqp</replaceable> part + numbers are now of the format + PC<replaceable>nnnnnrgp</replaceable>.</para> + + <para>The <replaceable>r</replaceable> is the revision field. The + current revision of the 16550 from National Semiconductor is + <literal>D</literal>.</para> + + <para>The <replaceable>p</replaceable> is the package-type field. + The types are:</para> + + <informaltable frame="none"> + <tgroup cols="3"> + <tbody> + <row> + <entry>"F"</entry> + <entry>QFP</entry> + <entry>(quad flat pack) L lead type</entry> + </row> + + <row> + <entry>"N"</entry> + <entry>DIP</entry> + <entry>(dual inline package) through hole straight lead + type</entry> + </row> + + <row> + <entry>"V"</entry> + <entry>LPCC</entry> + <entry>(lead plastic chip carrier) J lead type</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para>The <replaceable>g</replaceable> is the product grade field. + If an <literal>I</literal> precedes the package-type letter, it + indicates an “industrial” grade part, which has + higher specs than a standard part but not as high as Military + Specification (Milspec) component. This is an optional + field.</para> + + <para>So what we used to call a NS16550AFN (DIP Package) is now + called a PC16550DN or PC16550DIN.</para> + </sect5> + </sect4> + + <sect4> + <title>Other Vendors and Similar UARTs</title> + + <para>Over the years, the 8250, 8250A, 16450 and 16550 have been + licensed or copied by other chip vendors. In the case of the + 8250, 8250A and 16450, the exact circuit (the + “megacell”) was licensed to many vendors, including + Western Digital and Intel. Other vendors reverse-engineered the + part or produced emulations that had similar behavior.</para> + + <para>In internal modems, the modem designer will frequently emulate + the 8250A/16450 with the modem microprocessor, and the emulated + UART will frequently have a hidden buffer consisting of several + hundred bytes. Because of the size of the buffer, these + emulations can be as reliable as a 16550A in their ability to + handle high speed data. However, most operating systems will + still report that the UART is only a 8250A or 16450, and may not + make effective use of the extra buffering present in the emulated + UART unless special drivers are used.</para> + + <para>Some modem makers are driven by market forces to abandon a + design that has hundreds of bytes of buffer and instead use a + 16550A UART so that the product will compare favorably in market + comparisons even though the effective performance may be lowered + by this action.</para> + + <para>A common misconception is that all parts with + “16550A” written on them are identical in performance. + There are differences, and in some cases, outright flaws in most + of these 16550A clones.</para> + + <para>When the NS16550 was developed, the National Semiconductor + obtained several patents on the design and they also limited + licensing, making it harder for other vendors to provide a chip + with similar features. Because of the patents, reverse-engineered + designs and emulations had to avoid infringing the claims covered + by the patents. Subsequently, these copies almost never perform + exactly the same as the NS16550A or PC16550D, which are the parts + most computer and modem makers want to buy but are sometimes + unwilling to pay the price required to get the genuine + part.</para> + + <para>Some of the differences in the clone 16550A parts are + unimportant, while others can prevent the device from being used + at all with a given operating system or driver. These differences + may show up when using other drivers, or when particular + combinations of events occur that were not well tested or + considered in the Windows driver. This is because most modem + vendors and 16550-clone makers use the Microsoft drivers from + Windows for Workgroups 3.11 and the Microsoft MSD utility as the + primary tests for compatibility with the NS16550A. This + over-simplistic criteria means that if a different operating + system is used, problems could appear due to subtle differences + between the clones and genuine components.</para> + + <para>National Semiconductor has made available a program named + <application>COMTEST</application> that performs compatibility + tests independent of any OS drivers. It should be remembered that + the purpose of this type of program is to demonstrate the flaws in + the products of the competition, so the program will report major + as well as extremely subtle differences in behavior in the part + being tested.</para> + + <para>In a series of tests performed by the author of this document + in 1994, components made by National Semiconductor, TI, StarTech, + and CMD as well as megacells and emulations embedded in internal + modems were tested with COMTEST. A difference count for some of + these components is listed below. Because these tests were + performed in 1994, they may not reflect the current performance of + the given product from a vendor.</para> + + <para>It should be noted that COMTEST normally aborts when an + excessive number or certain types of problems have been detected. + As part of this testing, COMTEST was modified so that it would not + abort no matter how many differences were encountered.</para> + + <informaltable frame="none"> + <tgroup cols="3"> + <thead> + <row> + <entry>Vendor</entry> + <entry>Part Number</entry> + <entry>Errors (aka "differences" reported)</entry> + </row> + </thead> + + <tbody> + <row> + <entry>National</entry> + <entry>(PC16550DV)</entry> + <entry>0</entry> + </row> + + <row> + <entry>National</entry> + <entry>(NS16550AFN)</entry> + <entry>0</entry> + </row> + + <row> + <entry>National</entry> + <entry>(NS16C552V)</entry> + <entry>0</entry> + </row> + + <row> + <entry>TI</entry> + <entry>(TL16550AFN)</entry> + <entry>3</entry> + </row> + + <row> + <entry>CMD</entry> + <entry>(16C550PE)</entry> + <entry>19</entry> + </row> + + <row> + <entry>StarTech</entry> + <entry>(ST16C550J)</entry> + <entry>23</entry> + </row> + + <row> + <entry>Rockwell</entry> + <entry>Reference modem with internal 16550 or an + emulation (RC144DPi/C3000-25)</entry> + <entry>117</entry> + </row> + + <row> + <entry>Sierra</entry> + <entry>Modem with an internal 16550 + (SC11951/SC11351)</entry> + <entry>91</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <note> + <para>To date, the author of this document has not found any + non-National parts that report zero differences using the + COMTEST program. It should also be noted that National has had + five versions of the 16550 over the years and the newest parts + behave a bit differently than the classic NS16550AFN that is + considered the benchmark for functionality. COMTEST appears to + turn a blind eye to the differences within the National product + line and reports no errors on the National parts (except for the + original 16550) even when there are official erratas that + describe bugs in the A, B and C revisions of the parts, so this + bias in COMTEST must be taken into account.</para> + </note> + + <para>It is important to understand that a simple count of + differences from COMTEST does not reveal a lot about what + differences are important and which are not. For example, about + half of the differences reported in the two modems listed above + that have internal UARTs were caused by the clone UARTs not + supporting five- and six-bit character modes. The real 16550, + 16450, and 8250 UARTs all support these modes and COMTEST checks + the functionality of these modes so over fifty differences are + reported. However, almost no modern modem supports five- or + six-bit characters, particularly those with error-correction and + compression capabilities. This means that the differences related + to five- and six-bit character modes can be discounted.</para> + + <para>Many of the differences COMTEST reports have to do with + timing. In many of the clone designs, when the host reads from + one port, the status bits in some other port may not update in the + same amount of time (some faster, some slower) as a + <emphasis>real</emphasis> NS16550AFN and COMTEST looks for these + differences. This means that the number of differences can be + misleading in that one device may only have one or two differences + but they are extremely serious, and some other device that updates + the status registers faster or slower than the reference part + (that would probably never affect the operation of a properly + written driver) could have dozens of differences reported.</para> + + <para>COMTEST can be used as a screening tool to alert the + administrator to the presence of potentially incompatible + components that might cause problems or have to be handled as a + special case.</para> + + <para>If you run COMTEST on a 16550 that is in a modem or a modem is + attached to the serial port, you need to first issue a ATE0&W + command to the modem so that the modem will not echo any of the + test characters. If you forget to do this, COMTEST will report at + least this one difference:</para> + + <screen>Error (6)...Timeout interrupt failed: IIR = c1 LSR = 61</screen> + </sect4> + + <sect4> + <title>8250/16450/16550 Registers</title> + + <para>The 8250/16450/16550 UART occupies eight contiguous I/O port + addresses. In the IBM PC, there are two defined locations for + these eight ports and they are known collectively as COM1 and + COM2. The makers of PC-clones and add-on cards have created two + additional areas known as COM3 and COM4, but these extra COM ports + conflict with other hardware on some systems. The most common + conflict is with video adapters that provide IBM 8514 + emulation.</para> + + <para>COM1 is located from 0x3f8 to 0x3ff and normally uses IRQ 4 + COM2 is located from 0x2f8 to 0x2ff and normally uses IRQ 3 COM3 + is located from 0x3e8 to 0x3ef and has no standardized IRQ COM4 is + located from 0x2e8 to 0x2ef and has no standardized IRQ.</para> + + <para>A description of the I/O ports of the 8250/16450/16550 UART is + provided below.</para> + + <informaltable frame="none"> + <tgroup cols="3"> + <thead> + <row> + <entry>I/O Port</entry> + <entry>Access Allowed</entry> + <entry>Description</entry> + </row> + </thead> + + <tbody> + <row> + <entry>+0x00</entry> + <entry>write (DLAB==0)</entry> + <entry><para>Transmit Holding Register + (THR).</para><para>Information written to this port are + treated as data words and will be transmitted by the + UART.</para></entry> + </row> + + <row> + <entry>+0x00</entry> + <entry>read (DLAB==0)</entry> + <entry><para>Receive Buffer Register (RBR).</para><para>Any + data words received by the UART form the serial link are + accessed by the host by reading this + port.</para></entry> + </row> + + <row> + <entry>+0x00</entry> + <entry>write/read (DLAB==1)</entry> + <entry><para>Divisor Latch LSB (DLL)</para><para>This value + will be divided from the master input clock (in the IBM + PC, the master clock is 1.8432MHz) and the resulting + clock will determine the baud rate of the UART. This + register holds bits 0 thru 7 of the + divisor.</para></entry> + </row> + + <row> + <entry>+0x01</entry> + <entry>write/read (DLAB==1)</entry> + <entry><para>Divisor Latch MSB (DLH)</para><para>This value + will be divided from the master input clock (in the IBM + PC, the master clock is 1.8432MHz) and the resulting + clock will determine the baud rate of the UART. This + register holds bits 8 thru 15 of the + divisor.</para></entry> + </row> + + <row> + <entry>+0x01</entry> + <entry>write/read (DLAB==0)</entry> + <entrytbl cols="2"> + <colspec colnum="1" colname="col1"> + <colspec colnum="2" colname="col2"> + <spanspec namest="col1" nameend="col2" spanname="1to2"> + + <tbody> + <row> + <entry spanname="1to2"><para>Interrupt Enable Register + (IER)</para><para>The 8250/16450/16550 UART + classifies events into one of four categories. + Each category can be configured to generate an + interrupt when any of the events occurs. The + 8250/16450/16550 UART generates a single external + interrupt signal regardless of how many events in + the enabled categories have occurred. It is up to + the host processor to respond to the interrupt and + then poll the enabled interrupt categories + (usually all categories have interrupts enabled) + to determine the true cause(s) of the + interrupt.</para></entry> + </row> + + <row> + <entry>Bit 7</entry> + <entry>Reserved, always 0.</entry> + </row> + + <row> + <entry>Bit 6</entry> + <entry>Reserved, always 0.</entry> + </row> + + <row> + <entry>Bit 5</entry> + <entry>Reserved, always 0.</entry> + </row> + + <row> + <entry>Bit 4</entry> + <entry>Reserved, always 0.</entry> + </row> + + <row> + <entry>Bit 3</entry> + <entry>Enable Modem Status Interrupt (EDSSI). Setting + this bit to "1" allows the UART to generate an + interrupt when a change occurs on one or more of the + status lines.</entry> + </row> + + <row> + <entry>Bit 2</entry> + <entry>Enable Receiver Line Status Interrupt (ELSI) + Setting this bit to "1" causes the UART to generate + an interrupt when the an error (or a BREAK signal) + has been detected in the incoming data.</entry> + </row> + + <row> + <entry>Bit 1</entry> + <entry>Enable Transmitter Holding Register Empty + Interrupt (ETBEI) Setting this bit to "1" causes the + UART to generate an interrupt when the UART has room + for one or more additional characters that are to be + transmitted.</entry> + </row> + + <row> + <entry>Bit 0</entry> + <entry>Enable Received Data Available Interrupt + (ERBFI) Setting this bit to "1" causes the UART to + generate an interrupt when the UART has received + enough characters to exceed the trigger level of the + FIFO, or the FIFO timer has expired (stale data), or + a single character has been received when the FIFO + is disabled.</entry> + </row> + </tbody> + </entrytbl> + </row> + + <row> + <entry>+0x02</entry> + <entry>write</entry> + <entrytbl cols="4"> + <colspec colnum="1" colname="col1"> + <colspec colnum="2" colname="col2"> + <colspec colnum="3" colname="col3"> + <colspec colnum="4" colname="col4"> + <spanspec namest="col1" nameend="col4" spanname="1to4"> + <spanspec namest="col2" nameend="col4" spanname="2to4"> + + <tbody> + <row> + <entry spanname="1to4">FIFO Control Register (FCR) + (This port does not exist on the 8250 and 16450 + UART.)</entry> + </row> + + <row> + <entry>Bit 7</entry> + <entry spanname="2to4">Receiver Trigger Bit #1</entry> + </row> + + <row> + <entry>Bit 6</entry> + <entry spanname="2to4"><para>Receiver Trigger Bit + #0</para><para>These two bits control at what + point the receiver is to generate an interrupt + when the FIFO is active.</para></entry> + </row> + + <row> + <entry colname="col2">7</entry> + <entry colname="col3">6</entry> + <entry colname="col4">How many words are received + before an interrupt is generated</entry> + </row> + + <row> + <entry colname="col2">0</entry> + <entry colname="col3">0</entry> + <entry colname="col4">1</entry> + </row> + + <row> + <entry colname="col2">0</entry> + <entry colname="col3">1</entry> + <entry colname="col4">4</entry> + </row> + + <row> + <entry colname="col2">1</entry> + <entry colname="col3">0</entry> + <entry colname="col4">8</entry> + </row> + + <row> + <entry colname="col2">1</entry> + <entry colname="col3">1</entry> + <entry colname="col4">14</entry> + </row> + + <row> + <entry>Bit 5</entry> + <entry spanname="2to4">Reserved, always 0.</entry> + </row> + + <row> + <entry>Bit 4</entry> + <entry spanname="2to4">Reserved, always 0.</entry> + </row> + + <row> + <entry>Bit 3</entry> + <entry spanname="2to4">DMA Mode Select. If Bit 0 is + set to "1" (FIFOs enabled), setting this bit changes + the operation of the -RXRDY and -TXRDY signals from + Mode 0 to Mode 1.</entry> + </row> + + <row> + <entry>Bit 2</entry> + <entry spanname="2to4">Transmit FIFO Reset. When a + "1" is written to this bit, the contents of the FIFO + are discarded. Any word currently being transmitted + will be sent intact. This function is useful in + aborting transfers.</entry> + </row> + + <row> + <entry>Bit 1</entry> + <entry spanname="2to4">Receiver FIFO Reset. When a + "1" is written to this bit, the contents of the FIFO + are discarded. Any word currently being assembled + in the shift register will be received + intact.</entry> + </row> + + <row> + <entry>Bit 0</entry> + <entry spanname="2to4">16550 FIFO Enable. When set, + both the transmit and receive FIFOs are enabled. + Any contents in the holding register, shift + registers or FIFOs are lost when FIFOs are enabled + or disabled.</entry> + </row> + </tbody> + </entrytbl> + </row> + + <row> + <entry>+0x02</entry> + <entry>read</entry> + <entrytbl cols="6"> + <colspec colnum="1" colname="col1"> + <colspec colnum="2" colname="col2"> + <colspec colnum="3" colname="col3"> + <colspec colnum="4" colname="col4"> + <colspec colnum="5" colname="col5"> + <colspec colnum="6" colname="col6"> + <spanspec namest="col1" nameend="col6" spanname="1to6"> + <spanspec namest="col2" nameend="col6" spanname="2to6"> + + <tbody> + <row> + <entry spanname="1to6">Interrupt Identification + Register</entry> + </row> + + <row> + <entry>Bit 7</entry> + <entry spanname="2to6">FIFOs enabled. On the + 8250/16450 UART, this bit is zero.</entry> + </row> + + <row> + <entry>Bit 6</entry> + <entry spanname="2to6">FIFOs enabled. On the + 8250/16450 UART, this bit is zero.</entry> + </row> + + <row> + <entry>Bit 5</entry> + <entry spanname="2to6">Reserved, always 0.</entry> + </row> + + <row> + <entry>Bit 4</entry> + <entry spanname="2to6">Reserved, always 0.</entry> + </row> + + <row> + <entry>Bit 3</entry> + <entry spanname="2to6">Interrupt ID Bit #2. On the + 8250/16450 UART, this bit is zero.</entry> + </row> + + <row> + <entry>Bit 2</entry> + <entry spanname="2to6">Interrupt ID Bit #1</entry> + </row> + + <row> + <entry>Bit 1</entry> + <entry spanname="2to6">Interrupt ID Bit #0.These three + bits combine to report the category of event that + caused the interrupt that is in progress. These + categories have priorities, so if multiple + categories of events occur at the same time, the + UART will report the more important events first and + the host must resolve the events in the order they + are reported. All events that caused the current + interrupt must be resolved before any new interrupts + will be generated. (This is a limitation of the PC + architecture.)</entry> + </row> + + <row> + <entry colname="col2">2</entry> + <entry colname="col3">1</entry> + <entry colname="col4">0</entry> + <entry colname="col5">Priority</entry> + <entry colname="col6">Description</entry> + </row> + + <row> + <entry colname="col2">0</entry> + <entry colname="col3">1</entry> + <entry colname="col4">1</entry> + <entry colname="col5">First</entry> + <entry colname="col6">Received Error (OE, PE, BI, or + FE)</entry> + </row> + + <row> + <entry colname="col2">0</entry> + <entry colname="col3">1</entry> + <entry colname="col4">0</entry> + <entry colname="col5">Second</entry> + <entry colname="col6">Received Data Available</entry> + </row> + + <row> + <entry colname="col2">1</entry> + <entry colname="col3">1</entry> + <entry colname="col4">0</entry> + <entry colname="col5">Second</entry> + <entry colname="col6">Trigger level identification + (Stale data in receive buffer)</entry> + </row> + + <row> + <entry colname="col2">0</entry> + <entry colname="col3">0</entry> + <entry colname="col4">1</entry> + <entry colname="col5">Third</entry> + <entry colname="col6">Transmitter has room for more + words (THRE)</entry> + </row> + + <row> + <entry colname="col2">0</entry> + <entry colname="col3">0</entry> + <entry colname="col4">0</entry> + <entry colname="col5">Fourth</entry> + <entry colname="col6">Modem Status Change (-CTS, -DSR, + -RI, or -DCD)</entry> + </row> + + <row> + <entry>Bit 0</entry> + <entry spanname="2to6">Interrupt Pending Bit. If this + bit is set to "0", then at least one interrupt is + pending.</entry> + </row> + </tbody> + </entrytbl> + </row> + + <row> + <entry>+0x03</entry> + <entry>write/read</entry> + <entrytbl cols="5"> + <colspec colnum="1" colname="col1"> + <colspec colnum="2" colname="col2"> + <colspec colnum="3" colname="col3"> + <colspec colnum="4" colname="col4"> + <colspec colnum="5" colname="col5"> + <spanspec namest="col1" nameend="col5" spanname="1to5"> + <spanspec namest="col2" nameend="col5" spanname="2to5"> + <spanspec namest="col4" nameend="col5" spanname="4to5"> + + <tbody> + <row> + <entry spanname="1to5">Line Control Register + (LCR)</entry> + </row> + + <row> + <entry>Bit 7</entry> + <entry spanname="2to5">Divisor Latch Access Bit + (DLAB). When set, access to the data + transmit/receive register (THR/RBR) and the + Interrupt Enable Register (IER) is disabled. Any + access to these ports is now redirected to the + Divisor Latch Registers. Setting this bit, loading + the Divisor Registers, and clearing DLAB should be + done with interrupts disabled.</entry> + </row> + + <row> + <entry>Bit 6</entry> + <entry spanname="2to5">Set Break. When set to "1", + the transmitter begins to transmit continuous + Spacing until this bit is set to "0". This + overrides any bits of characters that are being + transmitted.</entry> + </row> + + <row> + <entry>Bit 5</entry> + <entry spanname="2to5">Stick Parity. When parity is + enabled, setting this bit causes parity to always be + "1" or "0", based on the value of Bit 4.</entry> + </row> + + <row> + <entry>Bit 4</entry> + <entry spanname="2to5">Even Parity Select (EPS). When + parity is enabled and Bit 5 is "0", setting this bit + causes even parity to be transmitted and expected. + Otherwise, odd parity is used.</entry> + </row> + + <row> + <entry>Bit 3</entry> + <entry spanname="2to5">Parity Enable (PEN). When set + to "1", a parity bit is inserted between the last + bit of the data and the Stop Bit. The UART will + also expect parity to be present in the received + data.</entry> + </row> + + <row> + <entry>Bit 2</entry> + <entry spanname="2to5">Number of Stop Bits (STB). If + set to "1" and using 5-bit data words, 1.5 Stop Bits + are transmitted and expected in each data word. For + 6, 7 and 8-bit data words, 2 Stop Bits are + transmitted and expected. When this bit is set to + "0", one Stop Bit is used on each data word.</entry> + </row> + + <row> + <entry>Bit 1</entry> + <entry spanname="2to5">Word Length Select Bit #1 + (WLSB1)</entry> + </row> + + <row> + <entry>Bit 0</entry> + <entry spanname="2to5">Word Length Select Bit #0 + (WLSB0)</entry> + </row> + + <row> + <entry colname="col2" spanname="2to5">Together these + bits specify the number of bits in each data + word.</entry> + </row> + + <row> + <entry colname="col2">1</entry> + <entry colname="col3">0</entry> + <entry colname="col4" spanname="4to5">Word + Length</entry> + </row> + + <row> + <entry colname="col2">0</entry> + <entry colname="col3">0</entry> + <entry colname="col4" spanname="4to5">5 Data + Bits</entry> + </row> + + <row> + <entry colname="col2">0</entry> + <entry colname="col3">1</entry> + <entry colname="col4" spanname="4to5">6 Data + Bits</entry> + </row> + + <row> + <entry colname="col2">1</entry> + <entry colname="col3">0</entry> + <entry colname="col4" spanname="4to5">7 Data + Bits</entry> + </row> + + <row> + <entry colname="col2">1</entry> + <entry colname="col3">1</entry> + <entry colname="col4" spanname="4to5">8 Data + Bits</entry> + </row> + </tbody> + </entrytbl> + </row> + + <row> + <entry>+0x04</entry> + <entry>write/read</entry> + <entrytbl cols="2"> + <colspec colnum="1" colname="col1"> + <colspec colnum="2" colname="col2"> + <spanspec namest="col1" nameend="col2" spanname="1to2"> + + <tbody> + <row> + <entry spanname="1to2">Modem Control Register + (MCR)</entry> + </row> + + <row> + <entry>Bit 7</entry> + <entry>Reserved, always 0.</entry> + </row> + + <row> + <entry>Bit 6</entry> + <entry>Reserved, always 0.</entry> + </row> + + <row> + <entry>Bit 5</entry> + <entry>Reserved, always 0.</entry> + </row> + + <row> + <entry>Bit 4</entry> + <entry>Loop-Back Enable. When set to "1", the UART + transmitter and receiver are internally connected + together to allow diagnostic operations. In + addition, the UART modem control outputs are + connected to the UART modem control inputs. CTS is + connected to RTS, DTR is connected to DSR, OUT1 is + connected to RI, and OUT 2 is connected to + DCD.</entry> + </row> + + <row> + <entry>Bit 3</entry> + <entry>OUT 2. An auxiliary output that the host + processor may set high or low. In the IBM PC serial + adapter (and most clones), OUT 2 is used to + tri-state (disable) the interrupt signal from the + 8250/16450/16550 UART.</entry> + </row> + + <row> + <entry>Bit 2</entry> + <entry>OUT 1. An auxiliary output that the host + processor may set high or low. This output is not + used on the IBM PC serial adapter.</entry> + </row> + + <row> + <entry>Bit 1</entry> + <entry>Request to Send (RTS). When set to "1", the + output of the UART -RTS line is Low + (Active).</entry> + </row> + + <row> + <entry>Bit 0</entry> + <entry>Data Terminal Ready (DTR). When set to "1", + the output of the UART -DTR line is Low + (Active).</entry> + </row> + </tbody> + </entrytbl> + </row> + + <row> + <entry>+0x05</entry> + <entry>write/read</entry> + <entrytbl cols="2"> + <colspec colnum="1" colname="col1"> + <colspec colnum="2" colname="col2"> + <spanspec namest="col1" nameend="col2" spanname="1to2"> + + <tbody> + <row> + <entry spanname="1to2">Line Status Register + (LSR)</entry> + </row> + + <row> + <entry>Bit 7</entry> + <entry>Error in Receiver FIFO. On the 8250/16450 + UART, this bit is zero. This bit is set to "1" when + any of the bytes in the FIFO have one or more of the + following error conditions: PE, FE, or BI.</entry> + </row> + + <row> + <entry>Bit 6</entry> + <entry>Transmitter Empty (TEMT). When set to "1", + there are no words remaining in the transmit FIFO + or the transmit shift register. The transmitter is + completely idle.</entry> + </row> + + <row> + <entry>Bit 5</entry> + <entry>Transmitter Holding Register Empty (THRE). + When set to "1", the FIFO (or holding register) now + has room for at least one additional word to + transmit. The transmitter may still be transmitting + when this bit is set to "1".</entry> + </row> + + <row> + <entry>Bit 4</entry> + <entry>Break Interrupt (BI). The receiver has + detected a Break signal.</entry> + </row> + + <row> + <entry>Bit 3</entry> + <entry>Framing Error (FE). A Start Bit was detected + but the Stop Bit did not appear at the expected + time. The received word is probably + garbled.</entry> + </row> + + <row> + <entry>Bit 2</entry> + <entry>Parity Error (PE). The parity bit was + incorrect for the word received.</entry> + </row> + + <row> + <entry>Bit 1</entry> + <entry>Overrun Error (OE). A new word was received + and there was no room in the receive buffer. The + newly-arrived word in the shift register is + discarded. On 8250/16450 UARTs, the word in the + holding register is discarded and the newly- arrived + word is put in the holding register.</entry> + </row> + + <row> + <entry>Bit 0</entry> + <entry>Data Ready (DR) One or more words are in the + receive FIFO that the host may read. A word must be + completely received and moved from the shift + register into the FIFO (or holding register for + 8250/16450 designs) before this bit is set.</entry> + </row> + </tbody> + </entrytbl> + </row> + + <row> + <entry>+0x06</entry> + <entry>write/read</entry> + <entrytbl cols="2"> + <colspec colnum="1" colname="col1"> + <colspec colnum="2" colname="col2"> + <spanspec namest="col1" nameend="col2" spanname="1to2"> + + <tbody> + <row> + <entry spanname="1to2">Modem Status Register + (MSR)</entry> + </row> + + <row> + <entry>Bit 7</entry> + <entry>Data Carrier Detect (DCD). Reflects the state + of the DCD line on the UART.</entry> + </row> + + <row> + <entry>Bit 6</entry> + <entry>Ring Indicator (RI). Reflects the state of the + RI line on the UART.</entry> + </row> + + <row> + <entry>Bit 5</entry> + <entry>Data Set Ready (DSR). Reflects the state of + the DSR line on the UART.</entry> + </row> + + <row> + <entry>Bit 4</entry> + <entry>Clear To Send (CTS). Reflects the state of the + CTS line on the UART.</entry> + </row> + + <row> + <entry>Bit 3</entry> + <entry>Delta Data Carrier Detect (DDCD). Set to "1" + if the -DCD line has changed state one more more + times since the last time the MSR was read by the + host.</entry> + </row> + + <row> + <entry>Bit 2</entry> + <entry>Trailing Edge Ring Indicator (TERI). Set to + "1" if the -RI line has had a low to high transition + since the last time the MSR was read by the + host.</entry> + </row> + + <row> + <entry>Bit 1</entry> + <entry>Delta Data Set Ready (DDSR). Set to "1" if the + -DSR line has changed state one more more times + since the last time the MSR was read by the + host.</entry> + </row> + + <row> + <entry>Bit 0</entry> + <entry>Delta Clear To Send (DCTS). Set to "1" if the + -CTS line has changed state one more more times + since the last time the MSR was read by the + host.</entry> + </row> + </tbody> + </entrytbl> + </row> + + <row> + <entry>+0x07</entry> + <entry>write/read</entry> + <entry>Scratch Register (SCR). This register performs no + function in the UART. Any value can be written by the + host to this location and read by the host later + on.</entry> + </row> + </tbody> + </tgroup> + </informaltable> + </sect4> + + <sect4> + <title>Beyond the 16550A UART</title> + + <para>Although National Semiconductor has not offered any components + compatible with the 16550 that provide additional features, + various other vendors have. Some of these components are + described below. It should be understood that to effectively + utilize these improvements, drivers may have to be provided by the + chip vendor since most of the popular operating systems do not + support features beyond those provided by the 16550.</para> + + <variablelist> + <varlistentry> + <term>ST16650</term> + + <listitem> + <para>By default this part is similar to the NS16550A, but an + extended 32-byte send and receive buffer can be optionally + enabled. Made by Startech.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>TIL16660</term> + + <listitem> + <para>By default this part behaves similar to the NS16550A, + but an extended 64-byte send and receive buffer can be + optionally enabled. Made by Texas Instruments.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Hayes ESP</term> + + <listitem> + <para>This proprietary plug-in card contains a 2048-byte send + and receive buffer, and supports data rates to + 230.4Kbit/sec. Made by Hayes.</para> + </listitem> + </varlistentry> + </variablelist> + + <para>In addition to these “dumb” UARTs, many vendors + produce intelligent serial communication boards. This type of + design usually provides a microprocessor that interfaces with + several UARTs, processes and buffers the data, and then alerts the + main PC processor when necessary. Because the UARTs are not + directly accessed by the PC processor in this type of + communication system, it is not necessary for the vendor to use + UARTs that are compatible with the 8250, 16450, or the 16550 UART. + This leaves the designer free to components that may have better + performance characteristics.</para> + </sect4> +--> + + </sect3> + + <sect3 id="sio"> + <title>*** Configurer le pilote de périphérique + <devicename>sio</devicename></title> + &sgml.todo; + +<!-- + <para>The <devicename>sio</devicename> driver provides support for + NS8250-, NS16450-, NS16550 and NS16550A-based EIA RS-232C (CCITT + V.24) communications interfaces. Several multiport cards are + supported as well. See the &man.sio.4; + manual page for detailed technical documentation.</para> + + <sect4> + <title>Digi International (DigiBoard) PC/8</title> + + <para><emphasis>Contributed by &a.awebster;. 26 August + 1995.</emphasis></para> + + <para>Here is a config snippet from a machine with a Digi + International PC/8 with 16550. It has 8 modems connected to these + 8 lines, and they work just great. Do not forget to add + <literal>options COM_MULTIPORT</literal> or it will not work very + well!</para> + + <programlisting> +device sio4 at isa? port 0x100 tty flags 0xb05 +device sio5 at isa? port 0x108 tty flags 0xb05 +device sio6 at isa? port 0x110 tty flags 0xb05 +device sio7 at isa? port 0x118 tty flags 0xb05 +device sio8 at isa? port 0x120 tty flags 0xb05 +device sio9 at isa? port 0x128 tty flags 0xb05 +device sio10 at isa? port 0x130 tty flags 0xb05 +device sio11 at isa? port 0x138 tty flags 0xb05 irq 9 vector siointr</programlisting> + + <para>The trick in setting this up is that the MSB of the flags + represent the last SIO port, in this case 11 so flags are + 0xb05.</para> + </sect4> + + <sect4> + <title>Boca 16</title> + + <para><emphasis>Contributed by &a.whiteside;. 26 August + 1995.</emphasis></para> + + <para>The procedures to make a Boca 16 port board with FreeBSD are + pretty straightforward, but you will need a couple things to make + it work:</para> + + <orderedlist> + <listitem> + <para>You either need the kernel sources installed so you can + recompile the necessary options or you will need someone else + to compile it for you. The 2.0.5 default kernel does + <emphasis>not</emphasis> come with multiport support enabled + and you will need to add a device entry for each port + anyways.</para> + </listitem> + + <listitem> + <para>Two, you will need to know the interrupt and IO setting + for your Boca Board so you can set these options properly in + the kernel.</para> + </listitem> + </orderedlist> + + <para>One important note — the actual UART chips for the Boca + 16 are in the connector box, not on the internal board itself. So + if you have it unplugged, probes of those ports will fail. I have + never tested booting with the box unplugged and plugging it back + in, and I suggest you do not either.</para> + + <para>If you do not already have a custom kernel configuration file + set up, refer to <link linkend="kernelconfig">Kernel + Configuration</link> for general procedures. The following are + the specifics for the Boca 16 board and assume you are using the + kernel name MYKERNEL and editing with vi.</para> + + <procedure> + <step> + <para>Add the line + + <programlisting> +options COM_MULTIPORT</programlisting> + + to the config file.</para> + </step> + + <step> + <para>Where the current <literal>device + sio<replaceable>n</replaceable></literal> lines are, you + will need to add 16 more devices. Only the last device + includes the interrupt vector for the board. (See the + &man.sio.4; manual page for detail as + to why.) The following example is for a Boca Board with an + interrupt of 3, and a base IO address 100h. The IO address + for Each port is +8 hexadecimal from the previous port, thus + the 100h, 108h, 110h... addresses.</para> + + <programlisting> +device sio1 at isa? port 0x100 tty flags 0x1005 +device sio2 at isa? port 0x108 tty flags 0x1005 +device sio3 at isa? port 0x110 tty flags 0x1005 +device sio4 at isa? port 0x118 tty flags 0x1005 +… +device sio15 at isa? port 0x170 tty flags 0x1005 +device sio16 at isa? port 0x178 tty flags 0x1005 irq 3 vector siointr</programlisting> + + <para>The flags entry <emphasis>must</emphasis> be changed from + this example unless you are using the exact same sio + assignments. Flags are set according to + 0x<replaceable>M</replaceable><replaceable>YY</replaceable> + where <replaceable>M</replaceable> indicates the minor number + of the master port (the last port on a Boca 16) and + <replaceable>YY</replaceable> indicates if FIFO is enabled or + disabled(enabled), IRQ sharing is used(yes) and if there is an + AST/4 compatible IRQ control register(no). In this example, + <programlisting> flags 0x1005</programlisting> indicates that + the master port is sio16. If I added another board and + assigned sio17 through sio28, the flags for all 16 ports on + <emphasis>that</emphasis> board would be 0x1C05, where 1C + indicates the minor number of the master port. Do not change + the 05 setting.</para> + </step> + + <step> + <para>Save and complete the kernel configuration, recompile, + install and reboot. Presuming you have successfully installed + the recompiled kernel and have it set to the correct address + and IRQ, your boot message should indicate the successful + probe of the Boca ports as follows: (obviously the sio + numbers, IO and IRQ could be different)</para> + + <screen>sio1 at 0x100-0x107 flags 0x1005 on isa +sio1: type 16550A (multiport) +sio2 at 0x108-0x10f flags 0x1005 on isa +sio2: type 16550A (multiport) +sio3 at 0x110-0x117 flags 0x1005 on isa +sio3: type 16550A (multiport) +sio4 at 0x118-0x11f flags 0x1005 on isa +sio4: type 16550A (multiport) +sio5 at 0x120-0x127 flags 0x1005 on isa +sio5: type 16550A (multiport) +sio6 at 0x128-0x12f flags 0x1005 on isa +sio6: type 16550A (multiport) +sio7 at 0x130-0x137 flags 0x1005 on isa +sio7: type 16550A (multiport) +sio8 at 0x138-0x13f flags 0x1005 on isa +sio8: type 16550A (multiport) +sio9 at 0x140-0x147 flags 0x1005 on isa +sio9: type 16550A (multiport) +sio10 at 0x148-0x14f flags 0x1005 on isa +sio10: type 16550A (multiport) +sio11 at 0x150-0x157 flags 0x1005 on isa +sio11: type 16550A (multiport) +sio12 at 0x158-0x15f flags 0x1005 on isa +sio12: type 16550A (multiport) +sio13 at 0x160-0x167 flags 0x1005 on isa +sio13: type 16550A (multiport) +sio14 at 0x168-0x16f flags 0x1005 on isa +sio14: type 16550A (multiport) +sio15 at 0x170-0x177 flags 0x1005 on isa +sio15: type 16550A (multiport) +sio16 at 0x178-0x17f irq 3 flags 0x1005 on isa +sio16: type 16550A (multiport master)</screen> + + <para>If the messages go by too fast to see, + + <screen>&prompt.root; <userinput>dmesg | more</userinput></screen> + will show you the boot messages.</para> + </step> + + <step> + <para>Next, appropriate entries in <filename>/dev</filename> for + the devices must be made using the + <filename>/dev/MAKEDEV</filename> script. After becoming + root:</para> + + <screen>&prompt.root; <userinput>cd /dev</userinput> +&prompt.root; <userinput>./MAKEDEV tty1</userinput> +&prompt.root; <userinput>./MAKEDEV cua1</userinput> +<emphasis>(everything in between)</emphasis> +&prompt.root; <userinput>./MAKEDEV ttyg</userinput> +&prompt.root; <userinput>./MAKEDEV cuag</userinput></screen> + + <para>If you do not want or need callout devices for some + reason, you can dispense with making the + <filename>cua*</filename> devices.</para> + </step> + + <step> + <para>If you want a quick and sloppy way to make sure the + devices are working, you can simply plug a modem into each + port and (as root) + + <screen>&prompt.root; <userinput>echo at > ttyd*</userinput></screen> + for each device you have made. You + <emphasis>should</emphasis> see the RX lights flash for each + working port.</para> + </step> + </procedure> + </sect4> +--> + + </sect3> + <sect3 id="cy"> + <title>*** Configurer le pilote de périphérique + <devicename>cy</devicename></title> + &sgml.todo; + +<!-- + <para><emphasis>Contributed by &a.alex;. 6 June + 1996.</emphasis></para> + + <para>The Cyclades multiport cards are based on the + <devicename>cy</devicename> driver instead of the usual + <devicename>sio</devicename> driver used by other multiport cards. + Configuration is a simple matter of:</para> + + <procedure> + <step> + <para>Add the <devicename>cy</devicename> device to your <link + linkend="kernelconfig-config">kernel configuration</link> + (note that your irq and iomem settings may differ).</para> + + <programlisting> +device cy0 at isa? tty irq 10 iomem 0xd4000 iosiz 0x2000 vector cyintr</programlisting> + </step> + + <step> + <para><link linkend="kernelconfig-building">Rebuild and + install</link> the new kernel.</para> + </step> + + <step> + <para>Make the <link linkend="kernelconfig-nodes">device + nodes</link> by typing (the following example assumes an + 8-port board):</para> + + <screen>&prompt.root; <userinput>cd /dev</userinput> +&prompt.root; <userinput>for i in 0 1 2 3 4 5 6 7;do ./MAKEDEV cuac$i ttyc$i;done</userinput></screen> + </step> + + <step> + <para>If appropriate, add <link linkend="dialup">dialup</link> + entries to <link linkend="dialup-ttys">/etc/ttys</link> by + duplicating serial device (<literal>ttyd</literal>) entries and + using <literal>ttyc</literal> in place of + <literal>ttyd</literal>. For example:</para> + + <programlisting> +ttyc0 "/usr/libexec/getty std.38400" unknown on insecure +ttyc1 "/usr/libexec/getty std.38400" unknown on insecure +ttyc2 "/usr/libexec/getty std.38400" unknown on insecure +… +ttyc7 "/usr/libexec/getty std.38400" unknown on insecure</programlisting> + </step> + + <step> + <para>Reboot with the new kernel.</para> + </step> + </procedure> + +--> + </sect3> + </sect2> + + <sect2> + <title>* Ports parallèles</title> + <para></para> + </sect2> + + <sect2> + <title>* Modems</title> + <para></para> + </sect2> + + <sect2> + <title>* Cartes réseau</title> + <para></para> + </sect2> + + <sect2> + <title>* Claviers</title> + <para></para> + </sect2> + + <sect2> + <title>* Souris</title> + <para></para> + </sect2> + + <sect2> + <title>* Autres</title> + <para></para> + </sect2> + </sect1> + + <sect1 id="hw-storage"> + <title>** Mémoires de masse</title> + &trans.a.haby; + + <sect2 id="esdi"> + <title>Utiliser des disques durs ESDI</title> + + <para><emphasis>Copyright © 1995, &a.wilko;. 24 Septembre + 1995.</emphasis></para> + + <para>ESDI est l'abréviation de <foreignphrase>Enhanced Small + Device Interface</foreignphrase> - Interface + Améliorée pour les Périphériques + Légers. Elle se base plus ou moins sur la bonne vieille interface + ST506/412, initialement conçue par Seagate Technology, le + fabricant du premier disque Winchester 5.25" bon marché.</para> + + <para>L'abréviation précise à juste titre + ”étendue“. Pour commencer, l'interface est plus + rapide, 10 ou 15 Mbits/seconde au lieu des 5 Mbits/seconde des disques + à interface ST412s. Il y a de plus de nouvelles commandes de plus + haut niveau, qui font que l'interface ESDI est en quelque sorte plus + “intelligente” que les pilotes de + périphériques du système d'exploitation. Elle n'est + cependant pas comparable aux interfaces SCSI. L'ESDI est un standard + ANSI.</para> + + <para>La capacité de disques est accrue parce qu'il y a plus de + secteurs par piste. Il y a généralement 35 secteurs par + pistes, mais j'ai vu des disques de grande capacité avec 54 + secteurs par piste.</para> + + <para>Bien que l'IDE et le SCSI ait rendu l'ESDI largement + obsolète, la possibilité de se procurer gratuitement ou + à peu de frais des disques d'occasion les rend + intéressants pour les systèmes à budget + réduit (ou nul).</para> + + <sect3> + <title>Concepts ESDI</title> + + <sect4> + <title>Connexions</title> + + <para>L'interface ESDI utilise deux câbles par disque. Le + premier est une nappe à 54 broches qui véhicule les + signaux de commandes et d'état entre le contrôleur et + le disque. Les disques sont chaînés en série sur + ce câble. C'est donc un bus auquel tous les disques sont + reliés.</para> + + <para>Le second câble est une nappe à 20 broches qui + véhicule les données de et vers le disque. Ce + câblage est en étoile, chaque disque est donc + directement relié au contrôleur.</para> + + <para>Autant que je sache, on ne peut mettre que deux disques par + contrôleur ESDI sur un PC. Cela pour des raisons de + compatibilité (?) avec le standard WD1003 qui n'utilise + qu'un seul bit pour l'adresse des + périphériques.</para> + </sect4> + + <sect4> + <title>Adresses des périphériques</title> + + <para>Sur chaque câble de commande, il peut y avoir au plus 7 + périphériques et 1 contrôleur. Pour que le + contrôleur puisse identifier l'adresse de chaque disque, il y + a sur chaque périphérique ESDI des cavaliers ou des + interrupteurs pour définir l'adresse du + périphérique.</para> + + <para>Sur les contrôleurs de PC, le premier disque a l'adresse + 0, et le second l'adresse 1. <emphasis>Vérifiez + toujours</emphasis> que l'adresse de chaque disque est + différente ! Sur les PC, où il y a au plus deux + disques par contrôleur, le premier disque est le disque 0 et + le second le disque 1.</para> + </sect4> + + <sect4> + <title>Terminaison</title> + + <para>Le câble série de commande (rapellez-vous, celui + à 34 broches) doit être terminé sur le dernier + disque de la chaîne. Il y a donc sur les disques ESDI une + résistance de terminaison qui peut être enlevée + ou désactivée par un cavalier si elle ne doit pas + servir.</para> + + <para>Il n'y a donc qu'un <emphasis>seul</emphasis> disque, celui + en fin du câble de commande, dont le terminateur doit + être installé ou activé. Le contrôleur + termine automatiquement l'autre extrémité du + câble. Notez bien, s'il vous plaît, que cela implique + que le contrôleur soit à une extrémité du + câble, et <emphasis>non</emphasis> au milieu.</para> + </sect4> + </sect3> + + <sect3> + <title>Utiliser les disques ESDI avec FreeBSD</title> + + <para>Pourquoi est-il si difficile d'arriver à utiliser des + disques ESDI ?</para> + + <para>On dit que ceux qui ont essayé d'utiliser des disques ESDI + avec FreeBSD ont développé un sentiment de profonde + frustration. Divers facteurs oeuvrent contre vous et produisent des + résultats difficiles à comprendre si vous n'y avez + jamais été confronté.</para> + + <para>D'où la légende populaire qui veut que l'ESDI et + FreeBSD soient définitivement incompatibles. Ce qui suit tente + de recenser les difficultés et leurs solutions.</para> + + <sect4> + <title>Les différences de vitesse de l'ESDI</title> + + <para>Comme on y a déjà fait allusion, il y a deux + versions à vitesse différente de l'ESDI. Les disques + et les contrôleurs plus anciens transfèrent les + données à 10 Mbits/seconde. Les plus récents le + font à 15 Mbits/seconde.</para> + + <para>Il est facile d'imaginer qu'utiliser des disques à + 15 Mbits/seconde pose des problèmes avec des + contrôleurs à 10 Mbits/seconde. Consultez toujours, + comme d'habitude, la documentation de votre contrôleur + <emphasis>et</emphasis> celle de votre disque pour vérifier + qu'ils sont compatibles.</para> + </sect4> + + <sect4> + <title>Restez en piste</title> + + <para>Les disques ESDI standards ont de 34 à 36 secteurs par + piste. La plupart des (anciens) contrôleurs n'acceptent pas + plus de secteurs que cela. Les disques plus récents, de plus + grande capacité, ont un plus grand nombre de secteurs par + piste. Je possède par exemple un disque de 670 Mo qui a 54 + secteurs par piste.</para> + + <para>Dans mon cas, le contrôleur ne peut pas gérer + autant de secteurs. Cela fonctionne en utilisant que 35 secteurs par + piste. D'où un perte important d'espace disque.</para> + + <para>Consultez encore une fois les documentations de votre + matériel pour plus d'informations. Ne pas respecter les + spécifications, comme dans mon cas, marchera ou ne marchera + pas. Essayez ou procurez-vous un contrôleur qui règle + le problème.</para> + </sect4> + + <sect4> + <title>Secteurs matériels ou logiciels</title> + + <para>La plupart des disques ESDI permettent de choisir avec un + cavalier entre des secteurs matériels ou logiciels. Si les + secteurs sont matériels, le disque émettera une + impulsion de début de secteur à chaque nouveau + secteur. Le contrôleur utilisera cette impulsion pour savoir + quand commencer à lire ou à écrire.</para> + + <para>Il est possible de choisir la taille des secteurs + matériels (habituellement 256, 512 ou 1024 octets par + secteur formaté). FreeBSD utilise des secteurs de 512 + octets. Le nombre de secteurs par piste varie aussi, bien qu'on + utilise toujours le même nombre d'octets par secteur + formaté. Le nombre d'octets <emphasis>non + formatés</emphasis> par secteur varie, selon que votre + contrôleur a besoin de plus ou moins d'octets + supplémentaires pour fonctionner correctement. Avec plus de + secteurs par piste, vous aurez bien sûr plus d'espace + disponible, mais vous pouvez avoir des problèmes si votre + contrôleur a besoin de plus d'octets que le disque ne peut + lui en laisser à disposition.</para> + + <para>Avec des secteurs logiciels, le contrôleur + détermine lui-même quand commencer et cesser de lire ou + écrire. Pour les disques ESDI, les secteurs sont + matériels par défaut (au moins pour tous ceux que je + connais). Je n'ai jamais eu besoin d'essayer d'utiliser des secteurs + logiciels.</para> + + <para>Expérimentez avec les secteurs avant d'installer FreeBSD, + parce que vous devrez refaire un formatage de bas niveau à + chaque fois.</para> + </sect4> + + <sect4> + <title>Formatage de bas niveau</title> + + <para>Il faut faire un formatage de bas niveau des disques ESDI avant + de pouvoir les utiliser. Il faut les reformater à chaque + fois que vous modifier la position des cavaliers qui + déterminent le nombre de secteurs par piste ou l'orientation + (horizontale, verticale) du disque. Réfléchissez donc + d'abord, puis formatez. Ne sous-estimez pas le temps + nécessaire ; pour de gros disques, cela peut prendre des + heures.</para> + + <para>Evitez les utilitaires de formatage de bas niveau qui marquent + une piste inutilisable dès qu'ils trouvent un secteur + endommagé. Non seulement cela gaspille de l'espace disque, + mais cela vous posera peut-être aussi des problèmes + avec <literal>bad144</literal> (voyez plus bas la section sur le + sujet).</para> + </sect4> + + <sect4> + <title>Correspondances</title> + + <para>Les correspondances, bien que ce ne soit pas un problème + exclusivement réservé à l'ESDI, peuvent vous + poser de vraies difficultés. Il y a différentes sortes + de correspondances. Elles ont en commun d'essayer de contourner les + limites imposées à la géométrie des + disques par l'architecture d'origine de l'IBM PC/AT (merci + IBM !).</para> + + <para>Il y a tout d'abord la limite bien connue du 1024ème + cylindre pour le démarrage. Pour qu'un système (quel + qu'il soit) démarre, le code de démarrage doit se + trouver quelque part sur les 1024 premiers cylindres. Il n'y a que + 10 bits disponibles pour coder le numéro de cylindre. Le + nombre de secteurs est limité à 64 (0-63). Quand vous + y ajoutez la limite de 16 têtes (aussi liée à + l'architecture), cela vous donne des disques de taille relativement + faible.</para> + + <para>Pour contourner ce problème, les fabricants de + contrôleurs ESDI pour PC ont ajouté une extension au + BIOS en PROM. Cette extension gère les entrées/sorties + disque au démarrage. (et pour certains systèmes + d'exploitation, toutes les entrées/sorties) en utilisant des + correspondances. Par exemple, un gros disque pourra être + décrit au système comme ayant 32 têtes et 64 + secteurs par piste. De la sorte, le nombre de cylindres sera + inférieur à 1024, ce qui pourra être + exploité sans problème. Il faut noter que FreeBSD + n'utilise le BIOS qu'après que le noyau ait pris le + contrôle. Nous en dirons plus à ce sujet plus + loin.</para> + + <para>Il faut aussi établir des correspondances avec la plupart + des BIOS anciens qui ne peuvent gérer que des disques avec + 17 secteurs par piste (le vieux standard ST412). Les BIOS plus + récents premettent de définir le type de disque (c'est + habituellement le type de disque 47).</para> + + <note> + <para>Quoique vous fassiez des correspondances après avoir lu + ce document, n'oubliez pas que si vous avez plusieurs + systèmes d'exploitation sur le même disque, ils + doivent tous utiliser les mêmes correspondances.</para> + </note> + + <para>Pendant que nous en sommes aux correspondances, j'ai vu un + modèle de contrôleur (mais il y en a probablement + d'autres) qui permet de diviser un disque en plusieurs partitions + à l'aide d'une option du BIOS. J'avais choisi 1 disque = 1 + partition, parce que ce contrôleur écrivait cette + information sur le disque. A la mise sous tension, il la relit et + transmet au système les informations basées sur ce + qu'il y a sur le disque.</para> + </sect4> + + <sect4> + <title>Secteurs en réserve</title> + + <para>La plupart des contrôleurs ESDI offrent la + possibilité de réaffecter les secteurs + défectueux. Pendant ou après le formatage de bas + niveau du disque, les secteurs défectueux sont marqués + comme tels, et des secteurs de remplacement prennent (logiquement + bien sûr) leur place.</para> + + <para>Dans la plupart des cas, c'est fait en utilisant N-1 secteurs de + chaque piste pour les données et le secteur N lui-même + comme secteur de secours. N est le nombre de secteurs physiquement + disponibles sur la piste. L'idée est que le système + d'exploitation voie un disque ”parfait“ sans secteur + défectueux. Ce n'est pas exploitable dans le cas de + FreeBSD.</para> + + <para>Le problème est que la correspondance entre les + <emphasis>mauvaix</emphasis> et les <emphasis>bons</emphasis> + secteurs est effectuée par le BIOS du contrôleur ESDI. + FreeBSD, qui est un vrai système d'exploitation 32 bits, + n'utilise pas le BIOS avant d'avoir démarré. Il + dispose à la place de pilotes de périphérique + qui dialoguent directement avec le matériel.</para> + + <para>Donc, n'utilisez pas les secteurs de réserve, + la réaffectation des secteurs défectueux, quel que + soit le nom que lui donne le fabricant de votre contrôleur, si + vous voulez vous servir du disque avec FreeBSD.</para> + </sect4> + + <sect4> + <title>Gestion des blocs défectueux</title> + + <para>La section précédente nous a laissé sur un + problème. La gestion des blocs défectueux par le + contrôleur n'est pas exploitable, et FreeBSD suppose + malgré tout que les supports sont sans défaut. Pour + résoudre ce problème, FreeBSD utilise l'outil + <command>bad144</command>. <command>bad144</command> (dont le nom + vient du standard de gestion des blocs défectueux de Digital + Equipment) examine une + tranche - <foreignphrase>slice</foreignphrase> - FreeBSD + pour détecter les blocs défectueux. Quand il les a + trouvés, il remplit une table avec les numéros de ces + blocs à la fin de la tranche.</para> + + <para>Quand le disque est en service, les numéros des blocs + accédés sont comparés à ceux + stockés dans la table lue sur le disque. Quand un bloc + demandé est dans la liste de <command>bad144</command>, on + utilise un bloc de remplacement (aussi en fin de tranche). De cette + façon, c'est un support ”parfait“ qui est vu par + les systèmes de fichiers de FreeBSD.</para> + + <para>L'utilisation de <command>bad144</command> présente un + certain nombre d'inconvénients. En premier lieu, la tranche + ne peut comporter plus de 126 secteurs défectueux. Si votre + disque présente un gand nombre de secteurs défectueux, + vous devrez peut-être le diviser en plusieurs tranches dont + chacune aura moins de 126 secteurs défectueux. Evitez les + programmes de formatage de bas niveau qui marquent défectueux + tous les secteurs d'une piste, dès qu'il y a un + problème avec la piste. Vous comprennez bien que la limite + de 126 secteurs est rapidement atteinte avec de tels + programmes.</para> + + <para>En second lieu, si la tranche contient le système de + fichiers racine, il faut qu'elle soit à l'intérieur + des 1024 premiers cylindres. La liste <command>bad144</command> est + lue au démarrage, en utilisant le BIOS, et cela ne peut + se faire que si la liste est avant le + 1025ème cylindre.</para> + + <note> + <para>Ce n'est pas seulement le <emphasis>système</emphasis> + de fichiers racine qui doit se trouver dans les 1024 premiers + cylindres, mais toute la <emphasis>tranche</emphasis> qui le + contient.</para> + </note> + </sect4> + + <sect4> + <title>Configuration du noyau</title> + + <para>Les disques ESDI sont gérés par le même + pilote <literal>wd</literal> que les disques IDE et ST412 MFM. Le + pilote <literal>wd</literal> devrait fonctionner avec toutes les + interfaces compatibles WD1003.</para> + + <para>La plupart des matériels ont des cavaliers pour + définir les plages d'adresses d'entrées/sorties et les + lignes IRQ. Cela vous permet de mettre deux contrôleurs de + type <literal>wd</literal> sur un même système.</para> + + <para>si votre matériel permet des redéfinition + non-standard, vous pouvez les utiliser avec FreeBSD, dès lors + que vous donnez les informations correctes dans le fichier de + configuration du noyau. Voici une extrait de fichier de + configuration du noyau ( au fait, ils sont dans + <filename>/sys/i386/conf</filename>) :</para> + + <programlisting> +# Premier contrôleur compatible WD +controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr +disk wd0 at wdc0 drive 0 +disk wd1 at wdc0 drive 1 +# Second contrôleur compatible WD +controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr +disk wd2 at wdc1 drive 0 +disk wd3 at wdc1 drive 1 + </programlisting> + </sect4> + </sect3> + + <sect3> + <title>Spécificités de certains matériels ESDI</title> + + <sect4> + <title>Contrôleurs Adaptec 2320</title> + + <para>J'ai réussi à installer FreeBSD sur un disque ESDI + avec un contrôleur ACB-2320. Il n'y avait pas d'autre + système d'exploitation sur le disque.</para> + + <para>Pour cela, j'ai effectué un formatage de bas niveau du + disque avec <command>NEFMT.EXE</command> + (téléchargeable par <command>ftp</command> depuis + <hostid role="fqdn">www.adaptec.com</hostid>) et répondu + <literal>NO</literal> à la question qui me demandait si le + disque devait être formaté en laissant un secteur de + secours par piste. Le BIOS de l'ACD-2320 était + désactivé et j'ai utilisé l'option de + configuration + libre - <literal>free configurable</literal> - du + BIOS du système pour permettre au BIOS de démarrer + avec.</para> + + <para>Avant de me servir de <command>NEFMT.EXE</command>, j'avais + essayé de formater le disque avec l'utilitaire inclus dans + le BIOS de l'ACB-2320. Cela s'est avéré inutilisable, + parce qu'il ne m'a pas proposé de désactiver la + réservation du secteur de secours. Avec ces derniers, + l'installation de FreeBSD échoue à l'exécution + de <command>bad144</command>.</para> + + <para>Vérifiez avec soin de quelle variante + ACB-232<replaceable>xy</replaceable> vous disposez. Le + <replaceable>x</replaceable> vaut <literal>0</literal> ou + <literal>2</literal>, selon que le contrôleur ne dispose pas + ou inclut un contrôleur de lecteur de disquettes.</para> + + <para>Le <literal>y</literal> est plus intéressant. C'est un + blanc, un <literal>A-8</literal> ou un <literal>D</literal>. Le + blanc indique un contrôleur à 10 Mo/seconde. Le + <literal>A-8</literal> indique un contrôleur à 15 + Mo/seconde capable de gérer 52 secteurs par piste. Le + <literal>D</literal> est un contrôleur à 15 Mo/seconde + qui peut aussi gérer des disques avec plus de 36 secteurs + par piste (52 aussii ?).</para> + + <para>Toutes ces variantes peuvent gérer l'entrelacement 1:1. + Employez-le, FreeBSD est assez rapide pour s'en accommoder.</para> + </sect4> + + <sect4> + <title>Contrôleurs Western Digital WD1007</title> + + <para>J'ai réussi à installer FreeBSD sur un disque ESDI + avec un contrôleur WD1007. Pour être précis, + c'était un contrôleur WD1007-WA2. Il y en a d'autres + variantes.</para> + + <para>Pour qu'il fonctionne, j'ai désactivé la + correspondance entre secteurs et le BIOS du WD1007. Ce qui signifie que je n'ai pas pu me servir de l'utilitaire de formatage de bas + niveau de ce BIOS. J'ai récupéré + <command>WDFMT.EXE</command> sur + <hostid role="fqdn">www.wdc.com</hostid>. Il m'a permis de formater + le disque sans problème.</para> + </sect4> + + <sect4> + <title>Contrôleurs Ultrastor U14F</title> + + <para>Selon de nombreux retours sur le réseau, les cartes + Ultrastor ESDI fonctionnent avec FreeBSD. Je n'ai pas plus + d'informations sur leur configuration.</para> + </sect4> + </sect3> + + <sect3 id="esdi-further-reading"> + <title>Lectures complémentaires</title> + + <para>Si vous avez l'intention d'utiliser sérieusement l'ESDI, + vous devriez avoir la norme officielle à portée de + main :</para> + + <para>Le document le plus récent du comité ANSI X3T10 + est : ”Enhanced Small Device Interface (ESDI) + [X3.170-1990/X3.170a-1991] [X3T10/792D Rev 11]“.</para> + + <para>Le forum Usenet + <ulink URL="news:comp.periphs">comp.periphs</ulink> est un bon endroit + ou avoir plus d'informations.</para> + + <para>Le <foreignphrase>World Wide Web</foreignphrase> (WWW) est aussi + une excellente source d'informations : Pour les contrôleurs + Adaptec, consultez + <ulink URL="http://www.adaptec.com/">http://www.adaptec.com/</ulink>. + Pour les contrôleurs Western Digital, voyez + <ulink URL="http://www.wdc.com/">http://www.wdc.com/</ulink>.</para> + + </sect3> + + <sect3> + <title>Remerciements à ...</title> + + <para>Andrew Gordon pour m'avoir envoyé un contrôleur + Adaptec 2320 et un disque ESDI pour faire des tests.</para> + </sect3> + </sect2> + + <sect2 id="scsi"> + <title>Qu'est-ce que le SCSI ?</title> + &trans.a.brive; + + <para><emphasis>Copyright © 1995, &a.wilko;. July 6, + 1996.</emphasis></para> + + <para>SCSI est un acronyme pour Small Computer Systems Interface. C'est + un standard ANSI qui est devenu l'un des premiers bus d'E/S de + l'industrie informatique. Les bases du standard SCSI proviennent + de Shugart Associates (les mêmes personnes qui ont donné au monde les + premiers mini-disques floppy) quand ils ont introduit le bus SASI + (Shugart Associates Standard Interface).</para> + + <para>Un effort industriel a démarré quelque temps plus tard pour + arriver à un standard plus strict, permettant à des périphériques de + différents vendeurs de travailler ensemble. Cet effort fut reconnu + par l'ANSI avec le standard SCSI-1. Ce standard (approx. 1985) devient + rapidement obsolète. Le standard courant est SCSI-2 (cf <link + linkend="scsi-further-reading">Lecture complémentaire</link>), + avec SCSI-3 en cours de conception.</para> + + <para>En plus d'un standard pour l'interconnexion physique, SCSI définit + un standard logique (jeu de commandes) auxquels les disques doivent + adhérer. Ce standard "commun" est appellé le Common Command Set (CCS) + et a été développé plus ou moins en parallèle avec le SCSI-1 ANSI. + SCSI-2 intègre le CCS (révisé) dans son standard. Les commandes + dépendent du type de périphérique ; il ne serait pas logique bien + sûr de définir une commande "Ecriture" pour un scanner.</para> + + <para>Le bus SCSI est un bus parallèle, qui supporte plusieurs + variantes. La plus ancienne et plus utilisée est un bus de 8 bits + de large, avec des signaux en collecteur ouvert (single-ended), + transportés sur 50 fils. (Si vous ne savez pas ce que veut dire + "collecteur ouvert", ne vous en faites pas; c'est justement le sujet + de ce document). Les architectures modernes utilisent aussi les bus + de 16 bits avec des signaux différentiels. Cela permet d'obtenir + des taux de transferts de 20Mo/s, sur des câbles atteignant 25 mètres. + SCSI-2 permet une largeur maximum du bus de 32 bits en utilisant un + câble supplémentaire. Rapidement, l'Ultra SCSI (appelé aussi Fast-20) + et l'Ultra2 (appelé aussi Fast-40) arrivent. Fast-20 correspond à + 20 millions de transferts par seconde (20Mo/s sur un bus de 8 bits) + et Fast-40 correspond à 40 millions de transferts par seconde + (40Mo/s sur un bus de 8 bits). La majorité des disques vendus + aujourd'hui sont des Ultra SCSI (8 ou 16 bits) en collecteur + ouvert.</para> + + <para>Bien sûr, le bus SCSI n'a pas que des fils de données, mais + aussi un certain nombre de signaux de contrôle. Un protocole très + élaboré fait partie du standard pour permettre à plusieurs + périphériques de se partager le bus de manière efficace. + En SCSI-2, les données sont toujours vérifiées avec un fil séparé + pour la parité. Dans l'architecture pré-SCSI-2, la parité était + optionnelle.</para> + + <para>En SCSI-3, des types de bus encore plus rapides sont introduits, + dont les bus SCSI série qui réduisent l'overhead du cablâge + (consommation? délai de propagation?) + et permettent une longueur de bus maximale plus importante. + Vous pourriez voir des noms comme SSA et FiberChannel dans ce contexte. + Aucun de ces bus série n'est aujourd'hui d'usage courant (et + spécialement pas dans l'environnement typique de FreeBSD). + Pour cette raison, les types de bus série ne seront plus abordés.</para> + + <para>Comme vous auriez pu le deviner de la description précédente, les + périphériques SCSI sont intelligents. Ils doivent l'être pour adhérer + au standard SCSI (qui est épais de plus de 5 cm). Ainsi, pour un + disque dur par exemple, vous ne spécifiez pas un tête/cylindre/secteur + pour adresser un bloc particulier, mais simplement le numéro du + bloc que vous voulez. + Des schémas élaborés de cache, des remplacements automatiques de blocs + défecteux, etc, sont tous rendus possibles par cette approche de + “périphérique intelligent”.</para> + + <para>Sur un bus SCSI, chaque paire possible d'abonnés peut communiquer. + Que leur fonction le leur permette est une autre chose, mais le + standard ne le restreint pas. Pour éviter le conflit de signaux, + les deux abonnés doivent passer par une phase d'arbitrage de bus + avant de l'utiliser.</para> + + <para>La philosophie du SCSI est d'avoir un standard qui permette + à des périphériques ancien-standard de travailler avec des + nouveaux-standard. Ainsi, un vieux périphérique SCSI-1 devrait + normalement fonctionner sur un bus SCSI-2. Je dis normalement, car il + n'est pas absolument sûr que l'implémentation d'un ancien périphérique + suive le (vieux) standard de manière assez proche pour être acceptable + sur un nouveau bus. Les périphériques modernes se comportent bien + généralement, car la standardisation est devenue plus stricte et + est mieux respectée par les fabriquants de périphériques.</para> + + <para>D'une manière générale, les chances de faire fonctionner + correctement un ensemble de périphériques sur un seul bus, sont + meilleures quand tous les abonnés sont SCSI-2 ou plus récents. + Cela implique que vous n'avez pas besoin de supprimer tous vos vieux + matériels quand vous venez d'avoir ce magnifique disque de 2Go : + je possède un système sur lequel un disque pré-SCSI-1, un + lecteur de cartouche QIC en SCSI-2, un lecteur de cartouches + hélicoïdal SCSI-1 et 2 disques SCSI-1 fonctionnent assez + bien ensemble. D'un point de vue des performances, vous + pourriez toutefois vouloir séparer vos plus vieux périphériques + des plus nouveaux (=plus rapides).</para> + + + <sect3> + <title>Composants SCSI</title> + + <para>Comme nous l'avons dit précédemment, les périphériques SCSI sont + intelligents. L'idée est de mettre les connaissances sur les détails + intimes du matériel dans le périphérique SCSI lui-même. De cette + façon, le système hôte n'a pas besoin de se préoccuper de savoir, + par exemple, combien de têtes possède le disque, ou combien de pistes + possède tel dérouleur de bandes. Si vous êtes curieux, le standard + spécifie des commandes avec lesquelles vous pouvez interroger les + périphériques sur leurs spécificités matérielles. FreeBSD utilise + cette possibilité pendant le démarrage pour déterminer quels sont + les périphériques connectés et s'ils ont besoin d'un traitement + spécial.</para> + + <para>L'avantage d'avoir des périphériques intelligents est + évident : le pilote de périphérique dans l'hôte peut être + conçu de manière beaucoup plus générique, il n'y a plus besoin de + modifier (et valider !) les pilotes pour chaque nouveau + périphérique bizarre qui est introduit.</para> + + <para>Pour les câbles et les connecteurs, il y a une règle d'or : + prenez de la qualité. Avec des vitesses de bus augmentant tout + le temps, vous vous épargnerez beaucoup de peine en utilisant du + bon matériel.</para> + + <para>Aussi, utilisez des connecteurs plaqués or, des câbles blindés + et des connecteurs robustes et bien vérrouillés, etc. + Deuxième règle d'or : n'utilisez pas des câbles plus longs que + nécessaires. J'ai une fois perdu 3 jours à pourchasser un problème + sur une machine instable, juste pour découvrir que raccourcir + le bus SCSI d'un mètre résolvait le problème. Et la longueur + originale du bus respectait bien les spécifications SCSI.</para> + + </sect3> + + <sect3> + <title>Types de bus SCSI</title> + + <para>D'un point de vue électrique, il existe deux types de bus + incompatibles : collecteur ouvert (<foreignphrase>single-ended + </foreignphrase>) et différentiel. Cela signifie qu'il existe deux + principaux groupes de périphériques et contrôleurs SCSI qui ne peuvent + être mélangés sur le même bus. Il est toutefois possible d'utiliser + un convertisseur matériel spécial pour transformer un bus collecteur + ouvert en différentiel (et vice versa). Les différences entre les + types de bus sont expliquées dans les sections suivantes.</para> + + <para>Dans beaucoup de documentation à propos du SCSI, il existe une + sorte de jargon en usage pour abréger les différents types de bus. + Une petite liste :</para> + + <itemizedlist> + <listitem> + <para>FWD : Fast Wide Differential (différentiel large rapide)</para> + </listitem> + + <listitem> + <para>FND : Fast Narrow Differential (différentiel étroit rapide)</para> + </listitem> + + <listitem> + <para>SE : Single Ended (collecteur ouvert)</para> + </listitem> + + <listitem> + <para>FN : Fast Narrow (rapide étroit)</para> + </listitem> + + <listitem> + <para>etc.</para> + </listitem> + </itemizedlist> + + + <para>Avec un minimun d'imagination, on peut bien imaginer ce que + cela veut dire.</para> + + <para>Large est un peu ambigu, il peut indiquer des bus de 16 ou + 32 bits. A ma connaissance, la variante en 32 bits n'est pas (encore) + utilisée, donc normalement large veut dire 16 bits.</para> + + <para>Rapide signifie que la cadence sur le bus est un peu différente, + pour qu'un bus étroit (8 bits) supporte 10 Mo/s au lieu de 5 Mo/s + pour un SCSI 'lent'. Comme indiqué précédemment, des vitesses de + bus de 20 et 40 millions de transferts/seconde émergent aussi + (Fast-20 = Ultra SCSI et Fast40 = Ultra2 SCSI).</para> + + <note> + <para>Les lignes de données > 8 ne sont utilisées que pour les + transferts de données et l'adressage des périphériques. Les + transferts des commandes, messages d'état, etc. n'ont lieu que sur + les 8 bits de poids faibles. Le standard permet aux périphériques + étroits de fonctionner sur un bus large. La largeur de bus + utilisable est négociée entre les abonnés. Vous devez regarder + précisément l'adressage des abonnés lorsque vous mélangez larges + et étroits.</para> + </note> + +<!-- + <sect4> + <title>Single ended buses</title> + &sgml.todo; + + <para>A single-ended SCSI bus uses signals that are either 5 Volts + or 0 Volts (indeed, TTL levels) and are relative to a COMMON + ground reference. A singled ended 8 bit SCSI bus has + approximately 25 ground lines, who are all tied to a single `rail' + on all devices. A standard single ended bus has a maximum length + of 6 meters. If the same bus is used with fast-SCSI devices, the + maximum length allowed drops to 3 meters. Fast-SCSI means that + instead of 5Mbytes/sec the bus allows 10Mbytes/sec + transfers.</para> + + <para>Fast-20 (Ultra SCSI) and Fast-40 allow for 20 and 40 million + transfers/second respectively. So, F20 is 20 Mbytes/second on a 8 + bit bus, 40 Mbytes/second on a 16 bit bus etc. For F20 the max + bus length is 1.5 meters, for F40 it becomes 0.75 meters. Be + aware that F20 is pushing the limits quite a bit, so you will + quickly find out if your SCSI bus is electrically sound.</para> + + <note> + <para>If some devices on your bus use 'fast' to communicate your + bus must adhere to the length restrictions for fast + buses!</para> + </note> + + <para>It is obvious that with the newer fast-SCSI devices the bus + length can become a real bottleneck. This is why the differential + SCSI bus was introduced in the SCSI-2 standard.</para> + + <para>For connector pinning and connector types please refer to the + SCSI-2 standard (see <link linkend="scsi-further-reading">Further + reading</link>) itself, connectors etc are listed there in + painstaking detail.</para> + + <para>Beware of devices using non-standard cabling. For instance + Apple uses a 25pin D-type connecter (like the one on serial ports + and parallel printers). Considering that the official SCSI bus + needs 50 pins you can imagine the use of this connector needs some + 'creative cabling'. The reduction of the number of ground wires + they used is a bad idea, you better stick to 50 pins cabling in + accordance with the SCSI standard. For Fast-20 and 40 do not even + think about buses like this.</para> + </sect4> + + <sect4> + <title>Differential buses</title> + + <para>A differential SCSI bus has a maximum length of 25 meters. + Quite a difference from the 3 meters for a single-ended fast-SCSI + bus. The idea behind differential signals is that each bus signal + has its own return wire. So, each signal is carried on a + (preferably twisted) pair of wires. The voltage difference + between these two wires determines whether the signal is asserted + or de-asserted. To a certain extent the voltage difference + between ground and the signal wire pair is not relevant (do not + try 10 kVolts though).</para> + + <para>It is beyond the scope of this document to explain why this + differential idea is so much better. Just accept that + electrically seen the use of differential signals gives a much + better noise margin. You will normally find differential buses in + use for inter-cabinet connections. Because of the lower cost + single ended is mostly used for shorter buses like inside + cabinets.</para> + + <para>There is nothing that stops you from using differential stuff + with FreeBSD, as long as you use a controller that has device + driver support in FreeBSD. As an example, Adaptec marketed the + AHA1740 as a single ended board, whereas the AHA1744 was + differential. The software interface to the host is identical for + both.</para> + </sect4> + + <sect4> + <title>Terminators</title> + + <para>Terminators in SCSI terminology are resistor networks that are + used to get a correct impedance matching. Impedance matching is + important to get clean signals on the bus, without reflections or + ringing. If you once made a long distance telephone call on a bad + line you probably know what reflections are. With 20Mbytes/sec + traveling over your SCSI bus, you do not want signals echoing + back.</para> + + <para>Terminators come in various incarnations, with more or less + sophisticated designs. Of course, there are internal and external + variants. Many SCSI devices come with a number of sockets in + which a number of resistor networks can (must be!) installed. If + you remove terminators from a device, carefully store them. You + will need them when you ever decide to reconfigure your SCSI bus. + There is enough variation in even these simple tiny things to make + finding the exact replacement a frustrating business. There are + also SCSI devices that have a single jumper to enable or disable a + built-in terminator. There are special terminators you can stick + onto a flat cable bus. Others look like external connectors, or a + connector hood without a cable. So, lots of choice as you can + see.</para> + + <para>There is much debate going on if and when you should switch + from simple resistor (passive) terminators to active terminators. + Active terminators contain slightly more elaborate circuit to give + cleaner bus signals. The general consensus seems to be that the + usefulness of active termination increases when you have long + buses and/or fast devices. If you ever have problems with your + SCSI buses you might consider trying an active terminator. Try to + borrow one first, they reputedly are quite expensive.</para> + + <para>Please keep in mind that terminators for differential and + single-ended buses are not identical. You should <emphasis>not + mix</emphasis> the two variants.</para> + + <para>OK, and now where should you install your terminators? This is + by far the most misunderstood part of SCSI. And it is by far the + simplest. The rule is: <emphasis>every single line on the SCSI + bus has 2 (two) terminators, one at each end of the + bus.</emphasis> So, two and not one or three or whatever. Do + yourself a favor and stick to this rule. It will save you endless + grief, because wrong termination has the potential to introduce + highly mysterious bugs. (Note the “potential” here; + the nastiest part is that it may or may not work.)</para> + + <para>A common pitfall is to have an internal (flat) cable in a + machine and also an external cable attached to the controller. It + seems almost everybody forgets to remove the terminators from the + controller. The terminator must now be on the last external + device, and not on the controller! In general, every + reconfiguration of a SCSI bus must pay attention to this.</para> + + <note> + <para>Termination is to be done on a per-line basis. This means + if you have both narrow and wide buses connected to the same + host adapter, you need to enable termination on the higher 8 + bits of the bus on the adapter (as well as the last devices on + each bus, of course).</para> + </note> + + <para>What I did myself is remove all terminators from my SCSI + devices and controllers. I own a couple of external terminators, + for both the Centronics-type external cabling and for the internal + flat cable connectors. This makes reconfiguration much + easier.</para> + + <para>On modern devices, sometimes integrated terminators are used. + These things are special purpose integrated circuits that can be + dis/en-abled with a control pin. It is not necessary to + physically remove them from a device. You may find them on newer + host adapters, sometimes they are software configurable, using + some sort of setup tool. Some will even auto-detect the cables + attached to the connectors and automatically set up the + termination as necessary. At any rate, consult your + documentation!</para> + </sect4> + + <sect4> + <title>Terminator power</title> + + <para>The terminators discussed in the previous chapter need power + to operate properly. On the SCSI bus, a line is dedicated to this + purpose. So, simple huh?</para> + + <para>Not so. Each device can provide its own terminator power to + the terminator sockets it has on-device. But if you have external + terminators, or when the device supplying the terminator power to + the SCSI bus line is switched off you are in trouble.</para> + + <para>The idea is that initiators (these are devices that initiate + actions on the bus, a discussion follows) must supply terminator + power. All SCSI devices are allowed (but not required) to supply + terminator power.</para> + + <para>To allow for un-powered devices on a bus, the terminator power + must be supplied to the bus via a diode. This prevents the + backflow of current to un-powered devices.</para> + + <para>To prevent all kinds of nastiness, the terminator power is + usually fused. As you can imagine, fuses might blow. This can, + but does not have to, lead to a non functional bus. If multiple + devices supply terminator power, a single blown fuse will not put + you out of business. A single supplier with a blown fuse + certainly will. Clever external terminators sometimes have a LED + indication that shows whether terminator power is present.</para> + + <para>In newer designs auto-restoring fuses that 'reset' themselves + after some time are sometimes used.</para> + </sect4> + + <sect4> + <title>Device addressing</title> + + <para>Because the SCSI bus is, ehh, a bus there must be a way to + distinguish or address the different devices connected to + it.</para> + + <para>This is done by means of the SCSI or target ID. Each device + has a unique target ID. You can select the ID to which a device + must respond using a set of jumpers, or a dip switch, or something + similar. Some SCSI host adapters let you change the target ID + from the boot menu. (Yet some others will not let you change the + ID from 7.) Consult the documentation of your device for more + information.</para> + + <para>Beware of multiple devices configured to use the same ID. + Chaos normally reigns in this case. A pitfall is that one of the + devices sharing the same ID sometimes even manages to answer to + I/O requests!</para> + + <para>For an 8 bit bus, a maximum of 8 targets is possible. The + maximum is 8 because the selection is done bitwise using the 8 + data lines on the bus. For wide buses this increases to the + number of data lines (usually 16).</para> + + <note> + <para>A narrow SCSI device can not communicate with a SCSI device + with a target ID larger than 7. This means it is generally not + a good idea to move your SCSI host adapter's target ID to + something higher than 7 (or your CD-ROM will stop + working).</para> + </note> + + <para>The higher the SCSI target ID, the higher the priority the + devices has. When it comes to arbitration between devices that + want to use the bus at the same time, the device that has the + highest SCSI ID will win. This also means that the SCSI host + adapter usually uses target ID 7. Note however that the lower 8 + IDs have higher priorities than the higher 8 IDs on a wide-SCSI + bus. Thus, the order of target IDs is: [7 6 .. 1 0 15 14 .. 9 8] + on a wide-SCSI system. (If you you are wondering why the lower 8 + have higher priority, read the previous paragraph for a + hint.)</para> + + <para>For a further subdivision, the standard allows for Logical + Units or LUNs for short. A single target ID may have multiple + LUNs. For example, a tape device including a tape changer may + have LUN 0 for the tape device itself, and LUN 1 for the tape + changer. In this way, the host system can address each of the + functional units of the tape changer as desired.</para> + </sect4> + + <sect4> + <title>Bus layout</title> + + <para>SCSI buses are linear. So, not shaped like Y-junctions, star + topologies, rings, cobwebs or whatever else people might want to + invent. One of the most common mistakes is for people with + wide-SCSI host adapters to connect devices on all three connecters + (external connector, internal wide connector, internal narrow + connector). Don't do that. It may appear to work if you are + really lucky, but I can almost guarantee that your system will + stop functioning at the most unfortunate moment (this is also + known as “Murphy's law”).</para> + + <para>You might notice that the terminator issue discussed earlier + becomes rather hairy if your bus is not linear. Also, if you have + more connectors than devices on your internal SCSI cable, make + sure you attach devices on connectors on both ends instead of + using the connectors in the middle and let one or both ends + dangle. This will screw up the termination of the bus.</para> + + <para>The electrical characteristics, its noise margins and + ultimately the reliability of it all are tightly related to linear + bus rule.</para> + + <para><emphasis>Stick to the linear bus rule!</emphasis></para> + </sect4> +--> + + </sect3> + + + <sect3> + <title>*** Utiliser le SCSI avec FreeBSD</title> + &sgml.todo + <!-- + <sect4> + <title>About translations, BIOSes and magic...</title> + + <para>As stated before, you should first make sure that you have a + electrically sound bus.</para> + + <para>When you want to use a SCSI disk on your PC as boot disk, you + must aware of some quirks related to PC BIOSes. The PC BIOS in + its first incarnation used a low level physical interface to the + hard disk. So, you had to tell the BIOS (using a setup tool or a + BIOS built-in setup) how your disk physically looked like. This + involved stating number of heads, number of cylinders, number of + sectors per track, obscure things like precompensation and reduced + write current cylinder etc.</para> + + <para>One might be inclined to think that since SCSI disks are smart + you can forget about this. Alas, the arcane setup issue is still + present today. The system BIOS needs to know how to access your + SCSI disk with the head/cyl/sector method in order to load the + FreeBSD kernel during boot.</para> + + <para>The SCSI host adapter or SCSI controller you have put in your + AT/EISA/PCI/whatever bus to connect your disk therefore has its + own on-board BIOS. During system startup, the SCSI BIOS takes + over the hard disk interface routines from the system BIOS. To + fool the system BIOS, the system setup is normally set to No hard + disk present. Obvious, isn't it?</para> + + <para>The SCSI BIOS itself presents to the system a so called + <emphasis>translated</emphasis> drive. This means that a fake + drive table is constructed that allows the PC to boot the drive. + This translation is often (but not always) done using a pseudo + drive with 64 heads and 32 sectors per track. By varying the + number of cylinders, the SCSI BIOS adapts to the actual drive + size. It is useful to note that 32 * 64 / 2 = the size of your + drive in megabytes. The division by 2 is to get from disk blocks + that are normally 512 bytes in size to Kbytes.</para> + + <para>Right. All is well now?! No, it is not. The system BIOS has + another quirk you might run into. The number of cylinders of a + bootable hard disk cannot be greater than 1024. Using the + translation above, this is a show-stopper for disks greater than 1 + GB. With disk capacities going up all the time this is causing + problems.</para> + + <para>Fortunately, the solution is simple: just use another + translation, e.g. with 128 heads instead of 32. In most cases new + SCSI BIOS versions are available to upgrade older SCSI host + adapters. Some newer adapters have an option, in the form of a + jumper or software setup selection, to switch the translation the + SCSI BIOS uses.</para> + + <para>It is very important that <emphasis>all</emphasis> operating + systems on the disk use the <emphasis>same translation</emphasis> + to get the right idea about where to find the relevant partitions. + So, when installing FreeBSD you must answer any questions about + heads/cylinders etc using the translated values your host adapter + uses.</para> + + <para>Failing to observe the translation issue might lead to + un-bootable systems or operating systems overwriting each others + partitions. Using fdisk you should be able to see all + partitions.</para> + + <para>You might have heard some talk of “lying” devices? + Older FreeBSD kernels used to report the geometry of SCSI disks + when booting. An example from one of my systems:</para> + + <screen>aha0 targ 0 lun 0: <MICROP 1588-15MB1057404HSP4> +sd0: 636MB (1303250 total sec), 1632 cyl, 15 head, 53 sec, bytes/sec 512</screen> + + <para>Newer kernels usually do not report this information. + e.g.</para> + + <screen>(bt0:0:0): "SEAGATE ST41651 7574" type 0 fixed SCSI 2 +sd0(bt0:0:0): Direct-Access 1350MB (2766300 512 byte sectors)</screen> + + <para>Why has this changed?</para> + + <para>This info is retrieved from the SCSI disk itself. Newer disks + often use a technique called zone bit recording. The idea is that + on the outer cylinders of the drive there is more space so more + sectors per track can be put on them. This results in disks that + have more tracks on outer cylinders than on the inner cylinders + and, last but not least, have more capacity. You can imagine that + the value reported by the drive when inquiring about the geometry + now becomes suspect at best, and nearly always misleading. When + asked for a geometry , it is nearly always better to supply the + geometry used by the BIOS, or <emphasis>if the BIOS is never going + to know about this disk</emphasis>, (e.g. it is not a booting + disk) to supply a fictitious geometry that is convenient.</para> + </sect4> + + <sect4> + <title>SCSI subsystem design</title> + + <para>FreeBSD uses a layered SCSI subsystem. For each different + controller card a device driver is written. This driver knows all + the intimate details about the hardware it controls. The driver + has a interface to the upper layers of the SCSI subsystem through + which it receives its commands and reports back any status.</para> + + <para>On top of the card drivers there are a number of more generic + drivers for a class of devices. More specific: a driver for tape + devices (abbreviation: st), magnetic disks (sd), CD-ROMs (cd) etc. + In case you are wondering where you can find this stuff, it all + lives in <filename>/sys/scsi</filename>. See the man pages in + section 4 for more details.</para> + + <para>The multi level design allows a decoupling of low-level bit + banging and more high level stuff. Adding support for another + piece of hardware is a much more manageable problem.</para> + </sect4> + + <sect4> + <title>Kernel configuration</title> + + <para>Dependent on your hardware, the kernel configuration file must + contain one or more lines describing your host adapter(s). This + includes I/O addresses, interrupts etc. Consult the man page for + your adapter driver to get more info. Apart from that, check out + <filename>/sys/i386/conf/LINT</filename> for an overview of a + kernel config file. <filename>LINT</filename> contains every + possible option you can dream of. It does + <emphasis>not</emphasis> imply <filename>LINT</filename> will + actually get you to a working kernel at all.</para> + + <para>Although it is probably stating the obvious: the kernel config + file should reflect your actual hardware setup. So, interrupts, + I/O addresses etc must match the kernel config file. During + system boot messages will be displayed to indicate whether the + configured hardware was actually found.</para> + + <note> + <para>Note that most of the EISA/PCI drivers (namely + <devicename>ahb</devicename>, <devicename>ahc</devicename>, + <devicename>ncr</devicename> and <devicename>amd</devicename> + will automatically obtain the correct parameters from the host + adapters themselves at boot time; thus, you just need to write, + for instance, <literal>controller ahc0</literal>.</para> + </note> + + <para>An example loosely based on the FreeBSD 2.2.5-Release kernel + config file <filename>LINT</filename> with some added comments + (between []):</para> + + <programlisting> +# SCSI host adapters: `aha', `ahb', `aic', `bt', `nca' +# +# aha: Adaptec 154x +# ahb: Adaptec 174x +# ahc: Adaptec 274x/284x/294x +# aic: Adaptec 152x and sound cards using the Adaptec AIC-6360 (slow!) +# amd: AMD 53c974 based SCSI cards (e.g., Tekram DC-390 and 390T) +# bt: Most Buslogic controllers +# nca: ProAudioSpectrum cards using the NCR 5380 or Trantor T130 +# ncr: NCR/Symbios 53c810/815/825/875 etc based SCSI cards +# uha: UltraStore 14F and 34F +# sea: Seagate ST01/02 8 bit controller (slow!) +# wds: Western Digital WD7000 controller (no scatter/gather!). +# + +[For an Adaptec AHA274x/284x/294x/394x etc controller] +controller ahc0 + +[For an NCR/Symbios 53c875 based controller] +controller ncr0 + +[For an Ultrastor adapter] +controller uha0 at isa? port "IO_UHA0" bio irq ? drq 5 vector uhaintr + +# Map SCSI buses to specific SCSI adapters +controller scbus0 at ahc0 +controller scbus2 at ncr0 +controller scbus1 at uha0 + +# The actual SCSI devices +disk sd0 at scbus0 target 0 unit 0 [SCSI disk 0 is at scbus 0, LUN 0] +disk sd1 at scbus0 target 1 [implicit LUN 0 if omitted] +disk sd2 at scbus1 target 3 [SCSI disk on the uha0] +disk sd3 at scbus2 target 4 [SCSI disk on the ncr0] +tape st1 at scbus0 target 6 [SCSI tape at target 6] +device cd0 at scbus? [the first ever CD-ROM found, no wiring]</programlisting> + + <para>The example above tells the kernel to look for a ahc (Adaptec + 274x) controller, then for an NCR/Symbios board, and so on. The + lines following the controller specifications tell the kernel to + configure specific devices but <emphasis>only</emphasis> attach + them when they match the target ID and LUN specified on the + corresponding bus.</para> + + <para>Wired down devices get “first shot” at the unit + numbers so the first non “wired down” device, is + allocated the unit number one greater than the highest + “wired down” unit number for that kind of device. So, + if you had a SCSI tape at target ID 2 it would be configured as + st2, as the tape at target ID 6 is wired down to unit number + 1.</para> + + <note> + <para>Wired down devices need not be found to get their unit + number. The unit number for a wired down device is reserved for + that device, even if it is turned off at boot time. This allows + the device to be turned on and brought on-line at a later time, + without rebooting. Notice that a device's unit number has + <emphasis>no</emphasis> relationship with its target ID on the + SCSI bus.</para> + </note> + + <para>Below is another example of a kernel config file as used by + FreeBSD version < 2.0.5. The difference with the first example + is that devices are not “wired down”. “Wired + down” means that you specify which SCSI target belongs to + which device.</para> + + <para>A kernel built to the config file below will attach the first + SCSI disk it finds to sd0, the second disk to sd1 etc. If you ever + removed or added a disk, all other devices of the same type (disk + in this case) would 'move around'. This implies you have to + change <filename>/etc/fstab</filename> each time.</para> + + <para>Although the old style still works, you are + <emphasis>strongly</emphasis> recommended to use this new feature. + It will save you a lot of grief whenever you shift your hardware + around on the SCSI buses. So, when you re-use your old trusty + config file after upgrading from a pre-FreeBSD2.0.5.R system check + this out.</para> + + <programlisting> +[driver for Adaptec 174x] +controller ahb0 at isa? bio irq 11 vector ahbintr + +[for Adaptec 154x] +controller aha0 at isa? port "IO_AHA0" bio irq 11 drq 5 vector ahaintr + +[for Seagate ST01/02] +controller sea0 at isa? bio irq 5 iomem 0xc8000 iosiz 0x2000 vector seaintr + +controller scbus0 + +device sd0 [support for 4 SCSI harddisks, sd0 up sd3] +device st0 [support for 2 SCSI tapes] + +[for the CD-ROM] +device cd0 #Only need one of these, the code dynamically grows</programlisting> + + <para>Both examples support SCSI disks. If during boot more devices + of a specific type (e.g. sd disks) are found than are configured + in the booting kernel, the system will simply allocate more + devices, incrementing the unit number starting at the last number + “wired down”. If there are no “wired + down” devices then counting starts at unit 0.</para> + + <para>Use <command>man 4 scsi</command> to check for the latest info + on the SCSI subsystem. For more detailed info on host adapter + drivers use eg <command>man 4 ahc</command> for info on the + Adaptec 294x driver.</para> + </sect4> + + <sect4> + <title>Tuning your SCSI kernel setup</title> + + <para>Experience has shown that some devices are slow to respond to + INQUIRY commands after a SCSI bus reset (which happens at boot + time). An INQUIRY command is sent by the kernel on boot to see + what kind of device (disk, tape, CD-ROM etc) is connected to a + specific target ID. This process is called device probing by the + way.</para> + + <para>To work around the 'slow response' problem, FreeBSD allows a + tunable delay time before the SCSI devices are probed following a + SCSI bus reset. You can set this delay time in your kernel + configuration file using a line like:</para> + + <programlisting> +options SCSI_DELAY=15 #Be pessimistic about Joe SCSI device</programlisting> + + <para>This line sets the delay time to 15 seconds. On my own system + I had to use 3 seconds minimum to get my trusty old CD-ROM drive + to be recognized. Start with a high value (say 30 seconds or so) + when you have problems with device recognition. If this helps, + tune it back until it just stays working.</para> + </sect4> + + <sect4 id="scsi-rogue-devices"> + <title>Rogue SCSI devices</title> + + <para>Although the SCSI standard tries to be complete and concise, + it is a complex standard and implementing things correctly is no + easy task. Some vendors do a better job then others.</para> + + <para>This is exactly where the “rogue” devices come + into view. Rogues are devices that are recognized by the FreeBSD + kernel as behaving slightly (...) non-standard. Rogue devices are + reported by the kernel when booting. An example for two of my + cartridge tape units:</para> + + <screen>Feb 25 21:03:34 yedi /kernel: ahb0 targ 5 lun 0: <TANDBERG TDC 3600 -06:> +Feb 25 21:03:34 yedi /kernel: st0: Tandberg tdc3600 is a known rogue + +Mar 29 21:16:37 yedi /kernel: aha0 targ 5 lun 0: <ARCHIVE VIPER 150 21247-005> +Mar 29 21:16:37 yedi /kernel: st1: Archive Viper 150 is a known rogue </screen> + + <para>For instance, there are devices that respond to all LUNs on a + certain target ID, even if they are actually only one device. It + is easy to see that the kernel might be fooled into believing that + there are 8 LUNs at that particular target ID. The confusion this + causes is left as an exercise to the reader.</para> + + <para>The SCSI subsystem of FreeBSD recognizes devices with bad + habits by looking at the INQUIRY response they send when probed. + Because the INQUIRY response also includes the version number of + the device firmware, it is even possible that for different + firmware versions different workarounds are used. See e.g. + <filename>/sys/scsi/st.c</filename> and + <filename>/sys/scsi/scsiconf.c</filename> for more info on how + this is done.</para> + + <para>This scheme works fine, but keep in mind that it of course + only works for devices that are known to be weird. If you are the + first to connect your bogus Mumbletech SCSI CD-ROM you might be + the one that has to define which workaround is needed.</para> + + <para>After you got your Mumbletech working, please send the + required workaround to the FreeBSD development team for inclusion + in the next release of FreeBSD. Other Mumbletech owners will be + grateful to you.</para> + </sect4> + + <sect4> + <title>Multiple LUN devices</title> + + <para>In some cases you come across devices that use multiple + logical units (LUNs) on a single SCSI ID. In most cases FreeBSD + only probes devices for LUN 0. An example are so called bridge + boards that connect 2 non-SCSI harddisks to a SCSI bus (e.g. an + Emulex MD21 found in old Sun systems).</para> + + <para>This means that any devices with LUNs != 0 are not normally + found during device probe on system boot. To work around this + problem you must add an appropriate entry in /sys/scsi/scsiconf.c + and rebuild your kernel.</para> + + <para>Look for a struct that is initialized like below:</para> + + <programlisting> +{ + T_DIRECT, T_FIXED, "MAXTOR", "XT-4170S", "B5A", + "mx1", SC_ONE_LU +}</programlisting> + + <para>For you Mumbletech BRIDGE2000 that has more than one LUN, acts + as a SCSI disk and has firmware revision 123 you would add + something like:</para> + + <programlisting> +{ + T_DIRECT, T_FIXED, "MUMBLETECH", "BRIDGE2000", "123", + "sd", SC_MORE_LUS +}</programlisting> + + <para>The kernel on boot scans the inquiry data it receives against + the table and acts accordingly. See the source for more + info.</para> + </sect4> + + <sect4> + <title>Tagged command queueing</title> + + <para>Modern SCSI devices, particularly magnetic disks, + support what is called tagged command queuing (TCQ).</para> + + <para>In a nutshell, TCQ allows the device to have multiple I/O + requests outstanding at the same time. Because the device is + intelligent, it can optimise its operations (like head + positioning) based on its own request queue. On SCSI devices + like RAID (Redundant Array of Independent Disks) arrays the TCQ + function is indispensable to take advantage of the device's + inherent parallelism.</para> + + <para>Each I/O request is uniquely identified by a “tag” + (hence the name tagged command queuing) and this tag is used by + FreeBSD to see which I/O in the device drivers queue is reported + as complete by the device.</para> + + <para>It should be noted however that TCQ requires device driver + support and that some devices implemented it “not quite + right” in their firmware. This problem bit me once, and it + leads to highly mysterious problems. In such cases, try to + disable TCQ.</para> + </sect4> + + <sect4> + <title>Busmaster host adapters</title> + + <para>Most, but not all, SCSI host adapters are bus mastering + controllers. This means that they can do I/O on their own without + putting load onto the host CPU for data movement.</para> + + <para>This is of course an advantage for a multitasking operating + system like FreeBSD. It must be noted however that there might be + some rough edges.</para> + + <para>For instance an Adaptec 1542 controller can be set to use + different transfer speeds on the host bus (ISA or AT in this + case). The controller is settable to different rates because not + all motherboards can handle the higher speeds. Problems like + hangups, bad data etc might be the result of using a higher data + transfer rate then your motherboard can stomach.</para> + + <para>The solution is of course obvious: switch to a lower data + transfer rate and try if that works better.</para> + + <para>In the case of a Adaptec 1542, there is an option that can be + put into the kernel config file to allow dynamic determination of + the right, read: fastest feasible, transfer rate. This option is + disabled by default:</para> + + <programlisting> +options "TUNE_1542" #dynamic tune of bus DMA speed</programlisting> + + <para>Check the man pages for the host adapter that you use. Or + better still, use the ultimate documentation (read: driver + source).</para> + </sect4> + --> + </sect3> + + + + <sect3> + <title>*** Résoudre les problèmes</title> + &sgml.todo + + <!-- + <para>The following list is an attempt to give a guideline for the + most common SCSI problems and their solutions. It is by no means + complete.</para> + + <itemizedlist> + <listitem> + <para>Check for loose connectors and cables.</para> + </listitem> + + <listitem> + <para>Check and double check the location and number of your + terminators.</para> + </listitem> + + <listitem> + <para>Check if your bus has at least one supplier of terminator + power (especially with external terminators.</para> + </listitem> + + <listitem> + <para>Check if no double target IDs are used.</para> + </listitem> + + <listitem> + <para>Check if all devices to be used are powered up.</para> + </listitem> + + <listitem> + <para>Make a minimal bus config with as little devices as + possible.</para> + </listitem> + + <listitem> + <para>If possible, configure your host adapter to use slow bus + speeds.</para> + </listitem> + + <listitem> + <para>Disable tagged command queuing to make things as simple as + possible (for a NCR hostadapter based system see man + ncrcontrol)</para> + </listitem> + + <listitem> + <para>If you can compile a kernel, make one with the + <literal>SCSIDEBUG</literal> option, and try accessing the + device with debugging turned on for that device. If your device + does not even probe at startup, you may have to define the + address of the device that is failing, and the desired debug + level in <filename>/sys/scsi/scsidebug.h</filename>. If it + probes but just does not work, you can use the + &man.scsi.8; command to dynamically set a debug level to + it in a running kernel (if <literal>SCSIDEBUG</literal> is + defined). This will give you <emphasis>copious</emphasis> + debugging output with which to confuse the gurus. See + <command>man 4 scsi</command> for more exact information. Also + look at <command>man 8 scsi</command>.</para> + </listitem> + </itemizedlist> + --> + </sect3> + + + <sect3 id="scsi-further-reading"> + <title>*** Lectures complémentaires</title> + &sgml.todo + + <!-- + <para>If you intend to do some serious SCSI hacking, you might want to + have the official standard at hand:</para> + + <para>Approved American National Standards can be purchased from + ANSI at + + <address> + <otheraddr>13th Floor</otheraddr> + <street>11 West 42nd Street</street> + <city>New York</city> + <state>NY</state> <postcode>10036</postcode> + Sales Dept: <phone>(212) 642-4900</phone> + </address> + </para> + + <para>You can also buy many ANSI + standards and most committee draft documents from Global + Engineering Documents, + + <address> + <street>15 Inverness Way East</street> + <city>Englewood</city> + <state>CO</state>, <postcode>80112-5704</postcode> + Phone: <phone>(800) 854-7179</phone> + Outside USA and Canada: <phone>(303) 792-2181</phone> + Fax: <fax>(303) 792- 2192</fax> + </address> + </para> + + <para>Many X3T10 draft documents are available electronically on the + SCSI BBS (719-574-0424) and on the <hostid + role="fqdn">ncrinfo.ncr.com</hostid> anonymous ftp site.</para> + + <para>Latest X3T10 committee documents are:</para> + + <itemizedlist> + <listitem> + <para>AT Attachment (ATA or IDE) [X3.221-1994] + (<emphasis>Approved</emphasis>)</para> + </listitem> + + <listitem> + <para>ATA Extensions (ATA-2) [X3T10/948D Rev 2i]</para> + </listitem> + + <listitem> + <para>Enhanced Small Device Interface (ESDI) + [X3.170-1990/X3.170a-1991] + (<emphasis>Approved</emphasis>)</para> + </listitem> + + <listitem> + <para>Small Computer System Interface — 2 (SCSI-2) + [X3.131-1994] (<emphasis>Approved</emphasis>)</para> + </listitem> + + <listitem> + <para>SCSI-2 Common Access Method Transport and SCSI Interface + Module (CAM) [X3T10/792D Rev 11]</para> + </listitem> + </itemizedlist> + + <para>Other publications that might provide you with additional + information are:</para> + + <itemizedlist> + <listitem> + <para>“SCSI: Understanding the Small Computer System + Interface”, written by NCR Corporation. Available from: + Prentice Hall, Englewood Cliffs, NJ, 07632 Phone: (201) 767-5937 + ISBN 0-13-796855-8</para> + </listitem> + + <listitem> + <para>“Basics of SCSI”, a SCSI tutorial written by + Ancot Corporation Contact Ancot for availability information at: + Phone: (415) 322-5322 Fax: (415) 322-0455</para> + </listitem> + + <listitem> + <para>“SCSI Interconnection Guide Book”, an AMP + publication (dated 4/93, Catalog 65237) that lists the various + SCSI connectors and suggests cabling schemes. Available from + AMP at (800) 522-6752 or (717) 564-0100</para> + </listitem> + + <listitem> + <para>“Fast Track to SCSI”, A Product Guide written by + Fujitsu. Available from: Prentice Hall, Englewood Cliffs, NJ, + 07632 Phone: (201) 767-5937 ISBN 0-13-307000-X</para> + </listitem> + + <listitem> + <para>“The SCSI Bench Reference”, “The SCSI + Encyclopedia”, and the “SCSI Tutor”, ENDL + Publications, 14426 Black Walnut Court, Saratoga CA, 95070 + Phone: (408) 867-6642</para> + </listitem> + + <listitem> + <para>“Zadian SCSI Navigator” (quick ref. book) and + “Discover the Power of SCSI” (First book along with + a one-hour video and tutorial book), Zadian Software, Suite 214, + 1210 S. Bascom Ave., San Jose, CA 92128, (408) 293-0800</para> + </listitem> + </itemizedlist> + + <para>On Usenet the newsgroups <ulink + URL="news:comp.periphs.scsi">comp.periphs.scsi</ulink> and <ulink + URL="news:comp.periphs">comp.periphs</ulink> are noteworthy places + to look for more info. You can also find the SCSI-Faq there, which + is posted periodically.</para> + + <para>Most major SCSI device and host adapter suppliers operate ftp + sites and/or BBS systems. They may be valuable sources of + information about the devices you own.</para> + --> + </sect3> + </sect2> + + <sect2 id="hw-storage-controllers"> + <title>* Contrôleurs de disques/bandes</title> + <sect3> + <title>* SCSI</title> + <para></para> + </sect3> + <sect3> + <title>* IDE</title> + <para></para> + </sect3> + <sect3> + <title>* Disquettes</title> + <para></para> + </sect3> + </sect2> + + <sect2> + <title>*** Disques durs</title> + + <sect3> + <title>*** Disques durs SCSI</title> + &sgml.todo; +<!-- + <para><emphasis>Contributed by &a.asami;. 17 February + 1998.</emphasis></para> + + <para>As mentioned in the <link linkend="scsi">SCSI</link> section, + virtually all SCSI hard drives sold today are SCSI-2 compliant and + thus will work fine as long as you connect them to a supported SCSI + host adapter. Most problems people encounter are either due to + badly designed cabling (cable too long, star topology, etc.), + insufficient termination, or defective parts. Please refer to the + <link linkend="scsi">SCSI</link> section first if your SCSI hard + drive is not working. However, there are a couple of things you may + want to take into account before you purchase SCSI hard drives for + your system.</para> + + <sect4> + <title>Rotational speed</title> + + <para>Rotational speeds of SCSI drives sold today range from around + 4,500RPM to 10,000RPM. Most of them are either 5,400RPM or + 7,200RPM. Even though the 7,200RPM drives can generally transfer + data faster, they run considerably hotter than their 5,400RPM + counterparts. A large fraction of today's disk drive malfunctions + are heat-related. If you do not have very good cooling in your PC + case, you may want to stick with 5,400RPM or slower drives.</para> + + <para>Note that newer drives, with higher areal recording densities, + can deliver much more bits per rotation than older ones. Today's + top-of-line 5,400RPM drives can sustain a throughput comparable to + 7,200RPM drives of one or two model generations ago. The number + to find on the spec sheet for bandwidth is “internal data + (or transfer) rate”. It is usually in megabits/sec so + divide it by 8 and you'll get the rough approximation of how much + megabytes/sec you can get out of the drive.</para> + + <para>(If you are a speed maniac and want a 10,000RPM drive for your + cute little peecee, be my guest; however, those drives become + extremely hot. Don't even think about it if you don't have a fan + blowing air <emphasis>directly at</emphasis> the drive or a + properly ventilated disk enclosure.)</para> + + <para>Obviously, the latest 10,000RPM drives and 7,200RPM drives can + deliver more data than the latest 5,400RPM drives, so if absolute + bandwidth is the necessity for your applications, you have little + choice but to get the faster drives. Also, if you need low + latency, faster drives are better; not only do they usually have + lower average seek times, but also the rotational delay is one + place where slow-spinning drives can never beat a faster one. + (The average rotational latency is half the time it takes to + rotate the drive once; thus, it's 3 milliseconds for 10,000RPM + drives, 4.2ms for 7,200RPM drives and 5.6ms for 5,400RPM drives.) + Latency is seek time plus rotational delay. Make sure you + understand whether you need low latency or more accesses per + second, though; in the latter case (e.g., news servers), it may + not be optimal to purchase one big fast drive. You can achieve + similar or even better results by using the ccd (concatenated + disk) driver to create a striped disk array out of multiple slower + drives for comparable overall cost.</para> + + <para>Make sure you have adequate air flow around the drive, + especially if you are going to use a fast-spinning drive. You + generally need at least 1/2" (1.25cm) of spacing above and below a + drive. Understand how the air flows through your PC case. Most + cases have the power supply suck the air out of the back. See + where the air flows in, and put the drive where it will have the + largest volume of cool air flowing around it. You may need to seal + some unwanted holes or add a new fan for effective cooling.</para> + + <para>Another consideration is noise. Many 7,200 or faster drives + generate a high-pitched whine which is quite unpleasant to most + people. That, plus the extra fans often required for cooling, may + make 7,200 or faster drives unsuitable for some office and home + environments.</para> + </sect4> + + <sect4> + <title>Form factor</title> + + <para>Most SCSI drives sold today are of 3.5" form factor. They + come in two different heights; 1.6" (“half-height”) or + 1" (“low-profile”). The half-height drive is the same + height as a CD-ROM drive. However, don't forget the spacing rule + mentioned in the previous section. If you have three standard + 3.5" drive bays, you will not be able to put three half-height + drives in there (without frying them, that is).</para> + </sect4> + + <sect4> + <title>Interface</title> + + <para>The majority of SCSI hard drives sold today are Ultra or + Ultra-wide SCSI. The maximum bandwidth of Ultra SCSI is 20MB/sec, + and Ultra-wide SCSI is 40MB/sec. There is no difference in max + cable length between Ultra and Ultra-wide; however, the more + devices you have on the same bus, the sooner you will start having + bus integrity problems. Unless you have a well-designed disk + enclosure, it is not easy to make more than 5 or 6 Ultra SCSI + drives work on a single bus.</para> + + <para>On the other hand, if you need to connect many drives, going + for Fast-wide SCSI may not be a bad idea. That will have the same + max bandwidth as Ultra (narrow) SCSI, while electronically it's + much easier to get it “right”. My advice would be: if + you want to connect many disks, get wide SCSI drives; they usually + cost a little more but it may save you down the road. (Besides, + if you can't afford the cost difference, you shouldn't be building + a disk array.)</para> + + <para>There are two variant of wide SCSI drives; 68-pin and 80-pin + SCA (Single Connector Attach). The SCA drives don't have a + separate 4-pin power connector, and also read the SCSI ID settings + through the 80-pin connector. If you are really serious about + building a large storage system, get SCA drives and a good SCA + enclosure (dual power supply with at least one extra fan). They + are more electronically sound than 68-pin counterparts because + there is no “stub” of the SCSI bus inside the disk + canister as in arrays built from 68-pin drives. They are easier + to install too (you just need to screw the drive in the canister, + instead of trying to squeeze in your fingers in a tight place to + hook up all the little cables (like the SCSI ID and disk activity + LED lines).</para> + </sect4> + --> + </sect3> + + <sect3> + <title>* Disques durs IDE</title> + <para></para> + </sect3> + </sect2> + + <sect2> + <title>*** Contrôleurs de bande</title> +<!-- + <para><emphasis>Contributed by &a.jmb;. 2 July + 1996.</emphasis></para> +--> + <sect3> + <title>*** Commandes générales d'accès aux bandes</title> + + &sgml.todo + <!-- + <para>&man.mt.1; provides generic access to the tape drives. Some of + the more common commands are <command>rewind</command>, + <command>erase</command>, and <command>status</command>. See the + &man.mt.1; manual page for a detailed description.</para> + &sgml.todo; + --> + </sect3> + <sect3> + <title>*** Interfaces et contrôleurs</title> + &sgml.todo + <!-- + <para>There are several different interfaces that support tape drives. + The interfaces are SCSI, IDE, Floppy and Parallel Port. A wide + variety of tape drives are available for these interfaces. + Controllers are discussed in <link + linkend="hw-storage-controllers">Disk/tape + controllers</link>.</para> + --> + </sect3> + <sect3> + <title>*** Lecteurs SCSI</title> + &sgml.todo + <!-- + + <para>The &man.st.4; driver provides support for 8mm (Exabyte), 4mm + (DAT: Digital Audio Tape), QIC (Quarter-Inch Cartridge), DLT + (Digital Linear Tape), QIC Minicartridge and 9-track (remember the + big reels that you see spinning in Hollywood computer rooms) tape + drives. See the &man.st.4; manual page for a detailed + description.</para> + + <para>The drives listed below are currently being used by members of + the FreeBSD community. They are not the only drives that will work + with FreeBSD. They just happen to be the ones that we use.</para> + + <sect4> + <title>4mm (DAT: Digital Audio Tape)</title> + + <para><link linkend="hw-storage-python">Archive Python</link></para> + + <para><link linkend="hw-storage-hp1533a">HP C1533A</link></para> + + <para><link linkend="hw-storage-hp1534a">HP C1534A</link></para> + + <para><link linkend="hw-storage-hp35450a">HP 35450A</link></para> + + <para><link linkend="hw-storage-hp35470a">HP 35470A</link></para> + + <para><link linkend="hw-storage-hp35480a">HP 35480A</link></para> + + <para><link linkend="hw-storage-sdt5000">SDT-5000</link></para> + + <para><link linkend="hw-storage-wangtek6200">Wangtek + 6200</link></para> + </sect4> + + <sect4> + <title>8mm (Exabyte)</title> + + <para><link linkend="hw-storage-exb8200">EXB-8200</link></para> + + <para><link linkend="hw-storage-exb8500">EXB-8500</link></para> + + <para><link linkend="hw-storage-exb8505">EXB-8505</link></para> + </sect4> + + <sect4> + <title>QIC (Quarter-Inch Cartridge)</title> + + <para><link linkend="hw-storage-anaconda">Archive Ananconda + 2750</link></para> + + <para><link linkend="hw-storage-viper60">Archive Viper + 60</link></para> + + <para><link linkend="hw-storage-viper150">Archive Viper + 150</link></para> + + <para><link linkend="hw-storage-viper2525">Archive Viper + 2525</link></para> + + <para><link linkend="hw-storage-tandberg3600">Tandberg TDC + 3600</link></para> + + <para><link linkend="hw-storage-tandberg3620">Tandberg TDC + 3620</link></para> + + <para><link linkend="hw-storage-tandberg4222">Tandberg TDC + 4222</link></para> + + <para><link linkend="hw-storage-wangtek5525es">Wangtek + 5525ES</link></para> + </sect4> + + <sect4> + <title>DLT (Digital Linear Tape)</title> + + <para><link linkend="hw-storage-dectz87">Digital TZ87</link></para> + </sect4> + + <sect4> + <title>Mini-Cartridge</title> + + <para><link linkend="hw-storage-ctms3200">Conner CTMS + 3200</link></para> + + <para><link linkend="hw-storage-exb2501">Exabyte 2501</link></para> + </sect4> + + <sect4> + <title>Autoloaders/Changers</title> + + <para><link linkend="hw-storage-hp1553a">Hewlett-Packard HP C1553A + Autoloading DDS2</link></para> + </sect4> + + --> + </sect3> + <sect3> + <title>* Lecteurs IDE</title> + <para></para> + </sect3> + <sect3> + <title>* Lecteurs sur contrôleur de disquette</title> + &sgml.todo +<!-- + où est passé le source ????? +--> + + + + </sect3> + <sect3> + <title>* Lecteurs sur port parallèle</title> + <para></para> + </sect3> + <sect3> + <title>*** Informations détaillées</title> + &sgml.todo + <!-- + <sect4 id="hw-storage-anaconda"> + <title>Archive Anaconda 2750</title> + + <para>The boot message identifier for this drive is <literal>ARCHIVE + ANCDA 2750 28077 -003 type 1 removable SCSI 2</literal></para> + + <para>This is a QIC tape drive.</para> + + <para>Native capacity is 1.35GB when using QIC-1350 tapes. This + drive will read and write QIC-150 (DC6150), QIC-250 (DC6250), and + QIC-525 (DC6525) tapes as well.</para> + + <para>Data transfer rate is 350kB/s using + &man.dump.8;. Rates of 530kB/s have been reported when using + <link linkend="backups-programs-amanda">Amanda</link></para> + + <para>Production of this drive has been discontinued.</para> + + <para>The SCSI bus connector on this tape drive is reversed from + that on most other SCSI devices. Make sure that you have enough + SCSI cable to twist the cable one-half turn before and after the + Archive Anaconda tape drive, or turn your other SCSI devices + upside-down.</para> + + <para>Two kernel code changes are required to use this drive. This + drive will not work as delivered.</para> + + <para>If you have a SCSI-2 controller, short jumper 6. Otherwise, + the drive behaves are a SCSI-1 device. When operating as a SCSI-1 + device, this drive, “locks” the SCSI bus during some + tape operations, including: fsf, rewind, and rewoffl.</para> + + <para>If you are using the NCR SCSI controllers, patch the file + <filename>/usr/src/sys/pci/ncr.c</filename> (as shown below). + Build and install a new kernel.</para> + + <programlisting> +*** 4831,4835 **** + }; + +! if (np->latetime>4) { + /* + ** Although we tried to wake it up, +Remplacer les '*' par des '-' +*** 4831,4836 **** + }; + +! if (np->latetime>1200) { + /* + ** Although we tried to wake it up,</programlisting> + + <para>Reported by: &a.jmb;</para> + </sect4> + + <sect4 id="hw-storage-python"> + <title>Archive Python</title> + + <para>The boot message identifier for this drive is <literal>ARCHIVE + Python 28454-XXX4ASB</literal> <literal>type 1 removable SCSI + 2</literal> <literal>density code 0x8c, 512-byte + blocks</literal></para> + + <para>This is a DDS-1 tape drive.</para> + + <para>Native capacity is 2.5GB on 90m tapes.</para> + + <para>Data transfer rate is XXX.</para> + + <para>This drive was repackaged by Sun Microsystems as model + 411.</para> + + <para>Reported by: Bob Bishop <email>rb@gid.co.uk</email></para> + </sect4> + + <sect4 id="hw-storage-viper60"> + <title>Archive Viper 60</title> + + <para>The boot message identifier for this drive is <literal>ARCHIVE + VIPER 60 21116 -007</literal> <literal>type 1 removable SCSI + 1</literal></para> + + <para>This is a QIC tape drive.</para> + + <para>Native capacity is 60MB.</para> + + <para>Data transfer rate is XXX.</para> + + <para>Production of this drive has been discontinued.</para> + + <para>Reported by: Philippe Regnauld + <email>regnauld@hsc.fr</email></para> + </sect4> + + <sect4 id="hw-storage-viper150"> + <title>Archive Viper 150</title> + + <para>The boot message identifier for this drive is <literal>ARCHIVE + VIPER 150 21531 -004</literal> <literal>Archive Viper 150 is a + known rogue</literal> <literal>type 1 removable SCSI + 1</literal>. A multitude of firmware revisions exist for this + drive. Your drive may report different numbers (e.g + <literal>21247 -005</literal>.</para> + + <para>This is a QIC tape drive.</para> + + <para>Native capacity is 150/250MB. Both 150MB (DC6150) and 250MB + (DC6250) tapes have the recording format. The 250MB tapes are + approximately 67% longer than the 150MB tapes. This drive can + read 120MB tapes as well. It can not write 120MB tapes.</para> + + <para>Data transfer rate is 100kB/s</para> + + <para>This drive reads and writes DC6150 (150MB) and DC6250 (250MB) + tapes.</para> + + <para>This drives quirks are known and pre-compiled into the scsi + tape device driver (&man.st.4;).</para> + + <para>Under FreeBSD 2.2-current, use <command>mt blocksize + 512</command> to set the blocksize. (The particular drive had + firmware revision 21247 -005. Other firmware revisions may behave + differently) Previous versions of FreeBSD did not have this + problem.</para> + + <para>Production of this drive has been discontinued.</para> + + <para>Reported by: Pedro A M Vazquez + <email>vazquez@IQM.Unicamp.BR</email></para> + + <para>Mike Smith + <email>msmith@atrad.adelaide.edu.au</email></para> + </sect4> + + <sect4 id="hw-storage-viper2525"> + <title>Archive Viper 2525</title> + + <para>The boot message identifier for this drive is <literal>ARCHIVE + VIPER 2525 25462 -011</literal> <literal>type 1 removable SCSI + 1</literal></para> + + <para>This is a QIC tape drive.</para> + + <para>Native capacity is 525MB.</para> + + <para>Data transfer rate is 180kB/s at 90 inches/sec.</para> + + <para>The drive reads QIC-525, QIC-150, QIC-120 and QIC-24 tapes. + Writes QIC-525, QIC-150, and QIC-120.</para> + + <para>Firmware revisions prior to <literal>25462 -011</literal> are + bug ridden and will not function properly.</para> + + <para>Production of this drive has been discontinued.</para> + </sect4> + + <sect4 id="hw-storage-conner420r"> + <title>Conner 420R</title> + + <para>The boot message identifier for this drive is <literal>Conner + tape</literal>.</para> + + <para>This is a floppy controller, minicartridge tape drive.</para> + + <para>Native capacity is XXXX</para> + + <para>Data transfer rate is XXX</para> + + <para>The drive uses QIC-80 tape cartridges.</para> + + <para>Reported by: Mark Hannon + <email>mark@seeware.DIALix.oz.au</email></para> + </sect4> + + <sect4 id="hw-storage-ctms3200"> + <title>Conner CTMS 3200</title> + + <para>The boot message identifier for this drive is <literal>CONNER + CTMS 3200 7.00</literal> <literal>type 1 removable SCSI + 2</literal>.</para> + + <para>This is a minicartridge tape drive.</para> + + <para>Native capacity is XXXX</para> + + <para>Data transfer rate is XXX</para> + + <para>The drive uses QIC-3080 tape cartridges.</para> + + <para>Reported by: Thomas S. Traylor + <email>tst@titan.cs.mci.com</email></para> + </sect4> + + <sect4 id="hw-storage-dectz87"> + <title><ulink + URL="http://www.digital.com/info/Customer-Update/931206004.txt.html">DEC TZ87</ulink></title> + + <para>The boot message identifier for this drive is <literal>DEC + TZ87 (C) DEC 9206</literal> <literal>type 1 removable SCSI + 2</literal> <literal>density code 0x19</literal></para> + + <para>This is a DLT tape drive.</para> + + <para>Native capacity is 10GB.</para> + + <para>This drive supports hardware data compression.</para> + + <para>Data transfer rate is 1.2MB/s.</para> + + <para>This drive is identical to the Quantum DLT2000. The drive + firmware can be set to emulate several well-known drives, + including an Exabyte 8mm drive.</para> + + <para>Reported by: &a.wilko;</para> + </sect4> + + <sect4 id="hw-storage-exb2501"> + <title><ulink + URL="http://www.Exabyte.COM:80/Products/Minicartridge/2501/Rfeatures.html">Exabyte EXB-2501</ulink></title> + + <para>The boot message identifier for this drive is <literal>EXABYTE + EXB-2501</literal></para> + + <para>This is a mini-cartridge tape drive.</para> + + <para>Native capacity is 1GB when using MC3000XL + minicartridges.</para> + + <para>Data transfer rate is XXX</para> + + <para>This drive can read and write DC2300 (550MB), DC2750 (750MB), + MC3000 (750MB), and MC3000XL (1GB) minicartridges.</para> + + <para>WARNING: This drive does not meet the SCSI-2 specifications. + The drive locks up completely in response to a SCSI MODE_SELECT + command unless there is a formatted tape in the drive. Before + using this drive, set the tape blocksize with</para> + + <screen>&prompt.root; <userinput>mt -f /dev/st0ctl.0 blocksize 1024</userinput></screen> + + <para>Before using a minicartridge for the first time, the + minicartridge must be formated. FreeBSD 2.1.0-RELEASE and + earlier:</para> + + <screen>&prompt.root; <userinput>/sbin/scsi -f /dev/rst0.ctl -s 600 -c "4 0 0 0 0 0"</userinput></screen> + + <para>(Alternatively, fetch a copy of the + <command>scsiformat</command> shell script from FreeBSD + 2.1.5/2.2.) FreeBSD 2.1.5 and later:</para> + + <screen>&prompt.root; <userinput>/sbin/scsiformat -q -w /dev/rst0.ctl</userinput></screen> + + <para>Right now, this drive cannot really be recommended for + FreeBSD.</para> + + <para>Reported by: Bob Beaulieu + <email>ez@eztravel.com</email></para> + </sect4> + + <sect4 id="hw-storage-exb8200"> + <title>Exabyte EXB-8200</title> + + <para>The boot message identifier for this drive is <literal>EXABYTE + EXB-8200 252X</literal> <literal>type 1 removable SCSI + 1</literal></para> + + <para>This is an 8mm tape drive.</para> + + <para>Native capacity is 2.3GB.</para> + + <para>Data transfer rate is 270kB/s.</para> + + <para>This drive is fairly slow in responding to the SCSI bus during + boot. A custom kernel may be required (set SCSI_DELAY to 10 + seconds).</para> + + <para>There are a large number of firmware configurations for this + drive, some have been customized to a particular vendor's + hardware. The firmware can be changed via EPROM + replacement.</para> + + <para>Production of this drive has been discontinued.</para> + + <para>Reported by: Mike Smith + <email>msmith@atrad.adelaide.edu.au</email></para> + </sect4> + + <sect4 id="hw-storage-exb8500"> + <title>Exabyte EXB-8500</title> + + <para>The boot message identifier for this drive is <literal>EXABYTE + EXB-8500-85Qanx0 0415</literal> <literal>type 1 removable SCSI + 2</literal></para> + + <para>This is an 8mm tape drive.</para> + + <para>Native capacity is 5GB.</para> + + <para>Data transfer rate is 300kB/s.</para> + + <para>Reported by: Greg Lehey <email>grog@lemis.de</email></para> + </sect4> + + <sect4 id="hw-storage-exb8505"> + <title><ulink + URL="http://www.Exabyte.COM:80/Products/8mm/8505XL/Rfeatures.html">Exabyte EXB-8505</ulink></title> + + <para>The boot message identifier for this drive is + <literal>EXABYTE EXB-85058SQANXR1 05B0</literal> <literal>type 1 + removable SCSI 2</literal></para> + + <para>This is an 8mm tape drive which supports compression, and is + upward compatible with the EXB-5200 and EXB-8500.</para> + + <para>Native capacity is 5GB.</para> + + <para>The drive supports hardware data compression.</para> + + <para>Data transfer rate is 300kB/s.</para> + + <para>Reported by: Glen Foster + <email>gfoster@gfoster.com</email></para> + </sect4> + + <sect4 id="hw-storage-hp1533a"> + <title>Hewlett-Packard HP C1533A</title> + + <para>The boot message identifier for this drive is <literal>HP + C1533A 9503</literal> <literal>type 1 removable SCSI + 2</literal>.</para> + + <para>This is a DDS-2 tape drive. DDS-2 means hardware data + compression and narrower tracks for increased data + capacity.</para> + + <para>Native capacity is 4GB when using 120m tapes. This drive + supports hardware data compression.</para> + + <para>Data transfer rate is 510kB/s.</para> + + <para>This drive is used in Hewlett-Packard's SureStore 6000eU and + 6000i tape drives and C1533A DDS-2 DAT drive.</para> + + <para>The drive has a block of 8 dip switches. The proper settings + for FreeBSD are: 1 ON; 2 ON; 3 OFF; 4 ON; 5 ON; 6 ON; 7 ON; 8 + ON.</para> + + <informaltable frame="none"> + <tgroup cols="3"> + <thead> + <row> + <entry>switch 1</entry> + <entry>switch 2</entry> + <entry>Result</entry> + </row> + </thead> + + <tbody> + <row> + <entry>On</entry> + <entry>On</entry> + <entry>Compression enabled at power-on, with host + control</entry> + </row> + + <row> + <entry>On</entry> + <entry>Off</entry> + <entry>Compression enabled at power-on, no host + control</entry> + </row> + + <row> + <entry>Off</entry> + <entry>On</entry> + <entry>Compression disabled at power-on, with host + control</entry> + </row> + + <row> + <entry>Off</entry> + <entry>Off</entry> + <entry>Compression disabled at power-on, no host + control</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para>Switch 3 controls MRS (Media Recognition System). MRS tapes + have stripes on the transparent leader. These identify the tape + as DDS (Digital Data Storage) grade media. Tapes that do not have + the stripes will be treated as write-protected. Switch 3 OFF + enables MRS. Switch 3 ON disables MRS.</para> + + <para>See <ulink URL="http://www.hp.com/tape/c_intro.html">HP + SureStore Tape Products</ulink> and <ulink + URL="http://www.impediment.com/hp/hp_technical.html">Hewlett-Packard + Disk and Tape Technical Information</ulink> for more information + on configuring this drive.</para> + + <para><emphasis>Warning:</emphasis> Quality control on these drives + varies greatly. One FreeBSD core-team member has returned 2 of + these drives. Neither lasted more than 5 months.</para> + + <para>Reported by: &a.se;</para> + </sect4> + + <sect4 id="hw-storage-hp1534a"> + <title>Hewlett-Packard HP 1534A</title> + + <para>The boot message identifier for this drive is <literal>HP + HP35470A T503</literal> <literal>type 1 removable SCSI + 2</literal> <literal>Sequential-Access density code 0x13, + variable blocks</literal>.</para> + + <para>This is a DDS-1 tape drive. DDS-1 is the original DAT tape + format.</para> + + <para>Native capacity is 2GB when using 90m tapes.</para> + + <para>Data transfer rate is 183kB/s.</para> + + <para>The same mechanism is used in Hewlett-Packard's SureStore + <ulink URL="http://www.dmo.hp.com/tape/sst2000.htm">2000i</ulink> + tape drive, C35470A DDS format DAT drive, C1534A DDS format DAT + drive and HP C1536A DDS format DAT drive.</para> + + <para>The HP C1534A DDS format DAT drive has two indicator lights, + one green and one amber. The green one indicates tape action: + slow flash during load, steady when loaded, fast flash during + read/write operations. The amber one indicates warnings: slow + flash when cleaning is required or tape is nearing the end of its + useful life, steady indicates an hard fault. (factory service + required?)</para> + + <para>Reported by Gary Crutcher + <email>gcrutchr@nightflight.com</email></para> + </sect4> + + <sect4 id="hw-storage-hp1553a"> + <title>Hewlett-Packard HP C1553A Autoloading DDS2</title> + + <para>The boot message identifier for this drive is "".</para> + + <para>This is a DDS-2 tape drive with a tape changer. DDS-2 means + hardware data compression and narrower tracks for increased data + capacity.</para> + + <para>Native capacity is 24GB when using 120m tapes. This drive + supports hardware data compression.</para> + + <para>Data transfer rate is 510kB/s (native).</para> + + <para>This drive is used in Hewlett-Packard's SureStore <ulink + URL="http://www.dmo.hp.com/tape/sst12000.htm">12000e</ulink> + tape drive.</para> + + <para>The drive has two selectors on the rear panel. The selector + closer to the fan is SCSI id. The other selector should be set to + 7.</para> + + <para>There are four internal switches. These should be set: 1 ON; + 2 ON; 3 ON; 4 OFF.</para> + + <para>At present the kernel drivers do not automatically change + tapes at the end of a volume. This shell script can be used to + change tapes:</para> + + <programlisting> +#!/bin/sh +PATH="/sbin:/usr/sbin:/bin:/usr/bin"; export PATH + +usage() +{ + echo "Usage: dds_changer [123456ne] raw-device-name + echo "1..6 = Select cartridge" + echo "next cartridge" + echo "eject magazine" + exit 2 +} + +if [ $# -ne 2 ] ; then + usage +fi + +cdb3=0 +cdb4=0 +cdb5=0 + +case $1 in + [123456]) + cdb3=$1 + cdb4=1 + ;; + n) + ;; + e) + cdb5=0x80 + ;; + ?) + usage + ;; +esac + +scsi -f $2 -s 100 -c "1b 0 0 $cdb3 $cdb4 $cdb5"</programlisting> + </sect4> + + <sect4 id="hw-storage-hp35450a"> + <title>Hewlett-Packard HP 35450A</title> + + <para>The boot message identifier for this drive is <literal>HP + HP35450A -A C620</literal> <literal>type 1 removable SCSI + 2</literal> <literal>Sequential-Access density code + 0x13</literal></para> + + <para>This is a DDS-1 tape drive. DDS-1 is the original DAT tape + format.</para> + + <para>Native capacity is 1.2GB.</para> + + <para>Data transfer rate is 160kB/s.</para> + + <para>Reported by: mark thompson + <email>mark.a.thompson@pobox.com</email></para> + </sect4> + + <sect4 id="hw-storage-hp35470a"> + <title>Hewlett-Packard HP 35470A</title> + + <para>The boot message identifier for this drive is <literal>HP + HP35470A 9 09</literal> <literal>type 1 removable SCSI + 2</literal></para> + + <para>This is a DDS-1 tape drive. DDS-1 is the original DAT tape + format.</para> + + <para>Native capacity is 2GB when using 90m tapes.</para> + + <para>Data transfer rate is 183kB/s.</para> + + <para>The same mechanism is used in Hewlett-Packard's SureStore + <ulink URL="http://www.dmo.hp.com/tape/sst2000.htm">2000i</ulink> + tape drive, C35470A DDS format DAT drive, C1534A DDS format DAT + drive, and HP C1536A DDS format DAT drive.</para> + + <para><emphasis>Warning:</emphasis> Quality control on these drives + varies greatly. One FreeBSD core-team member has returned 5 of + these drives. None lasted more than 9 months.</para> + + <para>Reported by: David Dawes + <email>dawes@rf900.physics.usyd.edu.au</email> (9 09)</para> + + </sect4> + + <sect4 id="hw-storage-hp35480a"> + <title>Hewlett-Packard HP 35480A</title> + + <para>The boot message identifier for this drive is <literal>HP + HP35480A 1009</literal> <literal>type 1 removable SCSI + 2</literal> <literal>Sequential-Access density code + 0x13</literal>.</para> + + <para>This is a DDS-DC tape drive. DDS-DC is DDS-1 with hardware + data compression. DDS-1 is the original DAT tape format.</para> + + <para>Native capacity is 2GB when using 90m tapes. It cannot handle + 120m tapes. This drive supports hardware data compression. + Please refer to the section on <link + linkend="hw-storage-hp1533a">HP C1533A</link> for the proper + switch settings.</para> + + <para>Data transfer rate is 183kB/s.</para> + + <para>This drive is used in Hewlett-Packard's SureStore <ulink + URL="http://www.dmo.hp.com/tape/sst5000.htm">5000eU</ulink> and + <ulink URL="http://www.dmo.hp.com/tape/sst5000.htm">5000i</ulink> + tape drives and C35480A DDS format DAT drive..</para> + + <para>This drive will occasionally hang during a tape eject + operation (<command>mt offline</command>). Pressing the front + panel button will eject the tape and bring the tape drive back to + life.</para> + + <para>WARNING: HP 35480-03110 only. On at least two occasions this + tape drive when used with FreeBSD 2.1.0, an IBM Server 320 and an + 2940W SCSI controller resulted in all SCSI disk partitions being + lost. The problem has not be analyzed or resolved at this + time.</para> + </sect4> + + <sect4 id="hw-storage-sdt5000"> + <title><ulink + URL="http://www.sel.sony.com/SEL/ccpg/storage/tape/t5000.html">Sony SDT-5000</ulink></title> + + <para>There are at least two significantly different models: one is + a DDS-1 and the other DDS-2. The DDS-1 version is + <literal>SDT-5000 3.02</literal>. The DDS-2 version is + <literal>SONY SDT-5000 327M</literal>. The DDS-2 version has a 1MB + cache. This cache is able to keep the tape streaming in almost + any circumstances.</para> + + <para>The boot message identifier for this drive is <literal>SONY + SDT-5000 3.02</literal> <literal>type 1 removable SCSI + 2</literal> <literal>Sequential-Access density code + 0x13</literal></para> + + <para>Native capacity is 4GB when using 120m tapes. This drive + supports hardware data compression.</para> + + <para>Data transfer rate is depends upon the model or the drive. The + rate is 630kB/s for the <literal>SONY SDT-5000 327M</literal> + while compressing the data. For the <literal>SONY SDT-5000 + 3.02</literal>, the data transfer rate is 225kB/s.</para> + + <para>In order to get this drive to stream, set the blocksize to 512 + bytes (<command>mt blocksize 512</command>) reported by Kenneth + Merry ken@ulc199.residence.gatech.edu</para> + + <para><literal>SONY SDT-5000 327M</literal> information reported by + Charles Henrich henrich@msu.edu</para> + + <para>Reported by: &a.jmz;</para> + </sect4> + + <sect4 id="hw-storage-tandberg3600"> + <title>Tandberg TDC 3600</title> + + <para>The boot message identifier for this drive is + <literal>TANDBERG TDC 3600 =08:</literal> <literal>type 1 + removable SCSI 2</literal></para> + + <para>This is a QIC tape drive.</para> + + <para>Native capacity is 150/250MB.</para> + + <para>This drive has quirks which are known and work around code is + present in the scsi tape device driver (&man.st.4;). + Upgrading the firmware to XXX version will fix the quirks and + provide SCSI 2 capabilities.</para> + + <para>Data transfer rate is 80kB/s.</para> + + <para>IBM and Emerald units will not work. Replacing the firmware + EPROM of these units will solve the problem.</para> + + <para>Reported by: Michael Smith + <email>msmith@atrad.adelaide.edu.au</email></para> + </sect4> + + <sect4 id="hw-storage-tandberg3620"> + <title>Tandberg TDC 3620</title> + + <para>This is very similar to the <link + linkend="hw-storage-tandberg3600">Tandberg TDC 3600</link> + drive.</para> + + <para>Reported by: &a.joerg;</para> + </sect4> + + <sect4 id="hw-storage-tandberg4222"> + <title>Tandberg TDC 4222</title> + + <para>The boot message identifier for this drive is + <literal>TANDBERG TDC 4222 =07</literal> <literal>type 1 removable + SCSI 2</literal></para> + + <para>This is a QIC tape drive.</para> + + <para>Native capacity is 2.5GB. The drive will read all cartridges + from the 60 MB (DC600A) upwards, and write 150 MB (DC6150) + upwards. Hardware compression is optionally supported for the 2.5 + GB cartridges.</para> + + <para>This drives quirks are known and pre-compiled into the scsi + tape device driver (&man.st.4;) beginning with FreeBSD + 2.2-current. For previous versions of FreeBSD, use + <command>mt</command> to read one block from the tape, rewind the + tape, and then execute the backup program (<command>mt fsr 1; mt + rewind; dump ...</command>)</para> + + <para>Data transfer rate is 600kB/s (vendor claim with compression), + 350 KB/s can even be reached in start/stop mode. The rate + decreases for smaller cartridges.</para> + + <para>Reported by: &a.joerg;</para> + </sect4> + + <sect4 id="hw-storage-wangtek5525es"> + <title>Wangtek 5525ES</title> + + <para>The boot message identifier for this drive is <literal>WANGTEK + 5525ES SCSI REV7 3R1</literal> <literal>type 1 removable SCSI + 1</literal> <literal>density code 0x11, 1024-byte + blocks</literal></para> + + <para>This is a QIC tape drive.</para> + + <para>Native capacity is 525MB.</para> + + <para>Data transfer rate is 180kB/s.</para> + + <para>The drive reads 60, 120, 150, and 525MB tapes. The drive will + not write 60MB (DC600 cartridge) tapes. In order to overwrite 120 + and 150 tapes reliably, first erase (<command>mt erase</command>) + the tape. 120 and 150 tapes used a wider track (fewer tracks per + tape) than 525MB tapes. The “extra” width of the + previous tracks is not overwritten, as a result the new data lies + in a band surrounded on both sides by the previous data unless the + tape have been erased.</para> + + <para>This drives quirks are known and pre-compiled into the scsi + tape device driver (&man.st.4;).</para> + + <para>Other firmware revisions that are known to work are: + M75D</para> + + <para>Reported by: Marc van Kempen <email>marc@bowtie.nl</email> + <literal>REV73R1</literal> Andrew Gordon + <email>Andrew.Gordon@net-tel.co.uk</email> + <literal>M75D</literal></para> + </sect4> + + <sect4 id="hw-storage-wangtek6200"> + <title>Wangtek 6200</title> + + <para>The boot message identifier for this drive is <literal>WANGTEK + 6200-HS 4B18</literal> <literal>type 1 removable SCSI + 2</literal> <literal>Sequential-Access density code + 0x13</literal></para> + + <para>This is a DDS-1 tape drive.</para> + + <para>Native capacity is 2GB using 90m tapes.</para> + + <para>Data transfer rate is 150kB/s.</para> + + <para>Reported by: Tony Kimball <email>alk@Think.COM</email></para> + </sect4> + --> + </sect3> + <sect3> + <title>* Lecteurs posant problème</title> + <para></para> + </sect3> + </sect2> + + <sect2> + <title>*** Contrôleurs de CD-ROMs</title> + + &sgml.todo + <!-- + + <para><emphasis>Contribution de &a.obrien;. 23 Novembre + 1997.</emphasis></para> + + <para>Comme mentionné dans + <link linkend="hw-jordans-picks-cdrom">Jordan's Picks</link> + Generally speaking those in <emphasis>The FreeBSD + Project</emphasis> prefer SCSI CDROM drives over IDE CDROM drives. + However not all SCSI CDROM drives are equal. Some feel the quality of + some SCSI CDROM drives have been deteriorating to that of IDE CDROM + drives. Toshiba used to be the favored stand-by, but many on the SCSI + mailing list have found displeasure with the 12x speed XM-5701TA as + its volume (when playing audio CDROMs) is not controllable by the + various audio player software.</para> + + <para>Another area where SCSI CDROM manufacturers are cutting corners is + adhearance to the <link linkend="scsi-further-reading">SCSI + specification</link>. Many SCSI CDROMs will respond to <link + linkend="scsi-rogue-devices">multiple LUNs</link> for its target + address. Known violators include the 6x Teac CD-56S 1.0D.</para> + <para></para> + + --> + </sect2> + + <sect2> + <title>* Autres</title> + <para></para> + </sect2> + + <sect2> + <title>* Ajouter et reconfigurer des disques</title> + <para></para> + </sect2> + + </sect1> + + <sect1 id="hw-other"> + <title>* Autres</title> + + <sect2> + <title>* PCMCIA</title> + <para></para> + </sect2> + </sect1> + </chapter> +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-shorttag: nil + sgml-always-quote-attributes: t + sgml-minimize-attributes: max + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> diff --git a/fr_FR.ISO_8859-1/books/handbook/in-progress.sgml b/fr_FR.ISO_8859-1/books/handbook/in-progress.sgml new file mode 100644 index 0000000000..45248c01c8 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/in-progress.sgml @@ -0,0 +1,9 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: N/A +--> + +<para>** Traduction en Cours **</para> diff --git a/fr_FR.ISO_8859-1/books/handbook/install/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/install/chapter.sgml new file mode 100644 index 0000000000..d1e6009af8 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/install/chapter.sgml @@ -0,0 +1,1298 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + + <chapter id="install"> + <title>Installer FreeBSD</title> + &trans.a.haby; + + <para>Donc, vous voulez tester FreeBSD sur votre nouvelle machine? + Cette section vous donne rapidement toutes les indications pour le + faire. FreeBSD peut être installé à partir de différents supports + dont CD-ROM, disquettes, bande magnétique, partition MS-DOS, et si vous + avez une connexion réseau, par ftp anonyme ou via NFS.</para> + + <para>Quelle que soit la façon dons vous procéderez, vous pouvez commencer + par créer la <emphasis>disquette d'installation</emphasis>, comme + décrit plus bas. Démarrez votre ordinateur avec cette disquette, même + si vous ne voulez pas installer FreeBSD tout de suite, pour avoir des + informations importantes sur la compatibilité de votre matériel avec + FreeBSD, ce qui dictera quelles options d'installation vous pouvez + envisager. Cela peut aussi vous donner des indications quant aux + incompatibilités matérielles qui vous empêcheraient d'utiliser FreeBSD + sur votre machine.</para> + + <para>Si vous envisagez une installation par ftp anonyme, alors cette + disquette d'installation est tout ce que vous aurez besoin de + télécharger et créer - le programme d'installation se + chargera lui-même de récupérer tout ce qu'il faudra par la suite (via + une connexion Ethernet, un modem et une liaison ppp, etc.).</para> + + <para>Pour plus d'informations sur la manière de vous procurer la version + la plus récente de FreeBSD, voyez s'il vous plaît l'annexe + <link linkend="mirrors">Se procurer FreeBSD</link>.</para> + + <para>Donc, pour pouvoir commencer à installer, suivez les étapes + ci-dessous:</para> + + <procedure> + + <step> + <para>Passez en revue la section <link + linkend="install-hw">Configurations supportées</link> de ce + guide d'installation pour être sûr que votre matériel soit + compatible avec FreeBSD. Il peut être utile de faire une liste des + cartes particulières que vous avez installées, contrôleurs SCSI, + adaptateurs Ethernet ou cartes sons. Cette liste devra inclure + les paramètres de configuration nécessaires, tels que les + interruptions (IRQ) et les adresses des ports + d'Entrée/Sortie.</para> + </step> + + <step> + <para>Si vous installez FreeBSD depuis le CD-ROM, vous avez + plusieurs options d'installation:</para> + + <itemizedlist> + + <listitem> + <para>Si c'est un CD-ROM qui a été gravé avec le support de + démarrage El Torrito et que votre système peut démarrer + à partir du CD-ROM (de nombreux systèmes anciens ne savent + <emphasis>pas</emphasis> le faire), mettez simplement le + CD dans le lecteur et démarrez directement avec + celui-ci.</para> + </listitem> + + <listitem> + <para>Si vous êtes sous DOS et avez le pilote nécessaire pour + accéder à votre CD-ROM, exécutez la procédure + <command>install.bat</command> + qui se trouve sur le CD. Cela lancera l'installation de + FreeBSD à partir de DOS.</para> + + <note> + <para>Vous devez faire cela réellement sous DOS et non dans + une fenêtre DOS sous Windows.</para> + </note> + + <para> Si vous voulez installer FreeBSD depuis une partition + DOS (peut-être parce que FreeBSD ne supporte pas votre + lecteur de CD-ROMs), lancez alors d'abord le programme + <command>setup</command> qui copiera les fichiers + nécessaires du CD sur la partition DOS, puis lancez ensuite + <command>install</command>.</para> + </listitem> + + <listitem> + <para>Si l'une des deux méthodes précédentes fonctionne, vous + pouvez sauter la suite de cette section, sinon, il vous + reste la possibilité de créer une disquette de démarrage + à partir du fichier image + <filename>floppies\boot.flp</filename> - passez à + l'étape 4 pour avoir des indications sur la façon de + faire.</para> + </listitem> + + </itemizedlist> + + </step> + + <step> + <para>Si vous n'avez pas la distribution sur CD-ROM, téléchargez + simplement le fichier d'<ulink + url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/&rel.current;-RELEASE/floppies/boot.flp">image + de la disquette démarrable d'installation</ulink> sur votre disque + dur, en veillant à donner à votre navigateur l'option + <emphasis>enregistrer</emphasis> et non + <emphasis>ouvrir</emphasis> le fichier.</para> + + <note> + <para>Cette image disquette ne fonctionne qu'avec des lecteurs de + disquette 3.5" 1.44 Mo.</para> + </note> + </step> + + <step> + <para>Créez une disquette de démarrage de l'installation à partir + du fichier image:</para> + <itemizedlist> + + <listitem> + <para>Si vous utilisez MS-DOS, téléchargez <ulink + url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/tools/fdimage.exe">fdimage.exe</ulink> + ou récupérez-le de <filename>tools\fdimage.exe</filename> + sur le CD-ROM et utilisez-le comme suit:</para> + + <informalexample> + <screen><prompt>E:\></prompt> <userinput>tools\fdimage floppies\boot.flp a:</userinput></screen> + </informalexample> + <para>Le programme <emphasis>fdimage</emphasis> + formatera la disquette dans le lecteur + <devicename>A:</devicename> et y copiera + <filename>boot.flp</filename> (en supposant que vous êtes dans + le répertoire racine de la distribution de FreeBSD et que + l'image de la disquette se trouve dans le répertoire pour les + disquettes, ce qui est normalement le cas).</para> + </listitem> + + <listitem> + <para>Si vous utilisez un système UNIX pour créer la + disquette:</para> + + <informalexample> + <screen>&prompt.root; <userinput>dd if=boot.flp of=<replaceable>périphérique_disquette</replaceable></userinput></screen> + </informalexample> + <para><replaceable>périphérique_disquette</replaceable> est + l'entrée <filename>/dev</filename> pour le lecteur de + disquette. Sur les systèmes FreeBSD, c'est + <filename>/dev/rfd0</filename> pour le lecteur + <devicename>A:</devicename> et + <filename>/dev/rfd1</filename> pour le lecteur + <devicename>B:</devicename>.</para> + </listitem> + + </itemizedlist> + </step> + + <step> + <para>Redémarrez l'ordinateur avec la disquette d'installation + dans le lecteur <devicename>A:</devicename>. Vous devriez + obtenir une invite de démarrage du genre:</para> + <informalexample> + <screen> +>> FreeBSD BOOT ... +Usage: [[[0:][wd](0,a)]/kernel][-abcCdhrsv] +Use 1:sd(0,a)kernel to boot sd0 if it is BIOS drive 1 +Use ? for file list or press Enter for defaults +Boot: + </screen> + </informalexample> + <para>Si vous ne tapez <emphasis>rien</emphasis>, FreeBSD démarrera + automatiquement avec la configuration par défaut après un délai + d'environ 5 secondes. Au démarrage, FreeBSD effectue des tests + pour savoir quels matériels sont installés. Les résultats de ces + tests sont affichés à l'écran.</para> + </step> + + <step> + <para>Après le démarrage, le menu principal d'installation de + FreeBSD s'affiche.</para> + </step> + + </procedure> + + <para><emphasis>Si quelque chose se passe mal ...</emphasis></para> + + <para>Du fait des limitations de l'architecture PC, il n'est pas possible + d'avoir des tests fiables à 100%. Si votre matériel n'est pas détecté + correctement, ou si les tests plantent votre machine, consultez d'abord + la section <link linkend="install-hw">Configurations + supportées</link> de ce guide d'installation pour vérifiez que votre + matériel est effectivement compatible avec FreeBSD.</para> + + <para>Si votre matériel est supporté, réinitialisez l'ordinateur et tapez + <literal>-c</literal> quand l'invite <prompt>Boot:</prompt> s'affiche. + FreeBSD passe alors en mode configuration, grâce auquel vous pouvez + donner des indications sur votre matériel. Le noyau FreeBSD de la + disquette d'installation fait l'hypothèse que la plupart des dispositifs + matériels utilisent la configuration par défaut du fabricant en termes + d'IRQ, adresses d'E/S et canaux DMA. Si vous avez reconfiguré votre + matériel, il y a de fortes chances que vous devrez utiliser l'option + <option>-c</option> au démarrage pour dire à FreeBSD à quelle adresse se trouvent + vos cartes.</para> + + <para>Il peut arriver que le test d'un matériel qui n'est pas installé + entraîne l'échec du test ultérieur d'un matériel qui lui est bien là. + Dans ce cas, le test du(des) pilote(s) en conflit doit être + désactivé.</para> + + <warning> + <para>Ne désactivez aucun des périphériques dont vous aurez besoin + pendant l'installation, votre écran (<devicename>sc0</devicename>) + par exemple.</para> + </warning> + + <para>En mode configuration, vous pouvez:</para> + + <itemizedlist> + + <listitem> + <para>Avoir la liste des pilotes de périphériques inclus dans + le noyau.</para> + </listitem> + + <listitem> + <para>Désactiver les pilotes de périphériques pour les matériels + que vous n'avez pas.</para> + </listitem> + + <listitem> + <para>Changer les IRQs, DRQs, adresses des ports d'E/S utilisées par + un pilote de périphérique.</para> + </listitem> + + </itemizedlist> + + <para>Sous l'invite <prompt>config></prompt>, tapez + <command>help</command> pour plus d'informations sur les commandes + disponibles. Une fois que vous avez ajusté votre noyau pour qu'il + configure correctement votre matériel, tapez <command>quit</command> à + l'invite <prompt>config></prompt> pour continuer le processus de + démarrage avec la nouvelle configuration.</para> + + <para>Une fois FreeBSD installé, les modifications que vous avez fait en + mode configuration seront définitives, vous n'aurez pas à reconfigurer + le noyau à chaque redémarrage. Cependant, même dans ce cas, il y a des + chances que vous vouliez recompiler un noyau sur-mesure pour optimiser + les performances de votre système. Reportez-vous à la section + <link linkend="kernelconfig" >Configurer le noyau de FreeBSD</link> + pour plus d'informations sur la génération de noyaux sur-mesure.</para> + + <sect1 id="install-hw"> + <title>Configurations supportées</title> + + <para>FreeBSD fonctionne avec sur une grande variété de PC à bus ISA, + VLB, EISA et PCI, en commençant aux machines de classe 386sx (bien + que le 386sx ne soit pas conseillé). Il y a un support générique pour + les disques IDE et ESDI, et le support de divers contrôleurs SCSI, + cartes réseau et série, est aussi inclus.</para> + + <para>Il faut un minimum de 4Mo de RAM pour faire tourner FreeBSD. Pour + utiliser le gestionnaire graphique X Window System, un minimum de 8Mo + de RAM est recommandé.</para> + + <para>Voici une liste de contrôleurs de disques et de cartes Ethernet + qui fonctionnent actuellement avec FreeBSD. D'autres configurations + peuvent parfaitement marcher, je n'ai simplement pas eu d'indications + à leur sujet.</para> + + <sect2> + <title>Contrôleurs de disque</title> + + <itemizedlist> + + <listitem> + <para>WD1003 (n'importe quel MFM/RLL générique),</para> + </listitem> + + <listitem> + <para>WD1007 (n'importe quel IDE/ESDI générique),</para> + </listitem> + + <listitem> + <para>IDE,</para> + </listitem> + + <listitem> + <para>ATA,</para> + </listitem> + + <listitem> + <para>Contrôleur SCSI Adaptec 1505 ISA,</para> + </listitem> + + <listitem> + <para>Contrôleurs SCSI Adaptec ISA série 152x,</para> + </listitem> + + <listitem> + <para>Contrôleurs SCSI Adaptec 1535 ISA,</para> + </listitem> + + <listitem> + <para>Contrôleurs SCSI Adaptec ISA série 154x,</para> + </listitem> + + <listitem> + <para>Contrôleurs SCSI Adaptec EISA série 174x en mode + standard et étendu.</para> + </listitem> + + <listitem> + <para>Contrôleurs SCSI Adaptec séries 274x/284x/2940/2940U/3940 (Narrow/Wide/Twin) EISA/VLB/PCI,</para> + </listitem> + + <listitem> + <para>Contrôleurs Adaptec SCSI AIC7850 sur la carte mère,</para> + </listitem> + + <listitem> + <para>Cartes à base d'Adaptec, dont les cartes SCSI + AHA-152x et SoundBlaster,</para> + + <note> + <para>Vous ne pouvez pas démarrer le système avec les cartes + SoundBlaster car elles n'ont pas de BIOS intégré, qui est + indispensable pour affecter au périphérique de démarrage + les vecteurs d'E/S du BIOS système. Elles sont cependant + parfaitement utilisables avec les lecteurs de bandes et de + CD-ROMs externes, etc. C'est aussi vrai des autres cartes à + base d'AIC-6x60 sans ROM de démarrage. Certains systèmes + ont une ROM de démarrage, ce qui est généralement signalé + par un message à la mise sous tension ou à la + réinitialisation du système. Consultez la documentation de + votre système ou de votre carte pour plus de + détails.</para> + </note> + </listitem> + + <listitem> + <para>Buslogic 545S & 545c,</para> + + <note> + <para>Buslogic s'appelait autrefois + “Bustek”,</para> + </note> + </listitem> + + <listitem> + <para>Contrôleurs SCSI Buslogic 445S/445c VLB,</para> + </listitem> + + <listitem> + <para>Contrôleurs SCSI Buslogic 742A/747S/747c EISA,</para> + </listitem> + + <listitem> + <para>Contrôleur SCSI Buslogic 946c PCI,</para> + </listitem> + + <listitem> + <para>Contrôleur SCSI Buslogic 956c PCI,</para> + </listitem> + + <listitem> + <para>Contrôleurs SCSI NCR + 53C810/53C815/53C825/53C860/53C875 PCI,</para> + </listitem> + + <listitem> + <para>Contrôleurs SCSI NCR5380/NCR53400 + (“ProAudio Spectrum”),</para> + </listitem> + + <listitem> + <para>Contrôleur SCSI DTC 3290 EISA en mode émulation + 1542,</para> + </listitem> + + <listitem> + <para>Contrôleurs SCSI UltraStor 14F/24F/34F,</para> + </listitem> + + <listitem> + <para>Contrôleurs SCSI Seagate ST01/02,</para> + </listitem> + + <listitem> + <para>Contrôleurs SCSI Future Domain séries 8xx/950,</para> + </listitem> + + <listitem> + <para>Contrôleur SCSI WD7000.</para> + </listitem> + + </itemizedlist> + + <para>Le support intégral des périphériques + SCSI-I & SCSI-II, y compris disques, lecteurs de bandes + (dont DAT) et lecteurs de CD-ROMs, est inclus pour tous les + contrôleurs SCSI supportés.</para> + + <para>Les lecteurs de CD-ROMs suivants sont actuellement + supportés:</para> + + <itemizedlist> + + <listitem> + <para>SoundBlaster SCSI et ProAudio Spectrum SCSI (<literal>cd</literal>),</para> + </listitem> + + <listitem> + <para>Interface propriétaire Mitsumi (tous modèles) (<literal>mcd</literal>),</para> + </listitem> + + <listitem> + <para>Interface propriétaire Matsushita/Panasonic (Creative) + CR-562/CR-563 (<literal>matcd</literal>),</para> + </listitem> + + <listitem> + <para>Interface propriétaire + Sony(<literal>scd</literal>),</para> + </listitem> + + <listitem> + <para>Interface ATAPI IDE (expérimentale et doit être considérée + de niveau ALPHA!) (<literal>wcd</literal>).</para> + </listitem> + + </itemizedlist> + + </sect2> + + <sect2 id="install-nics"> + <title>Cartes Ethernet</title> + + <itemizedlist> + + <listitem> + <para>Cartes Allied-Telesis AT1700 et RE2000,</para> + </listitem> + + <listitem> + <para>Interface Ethernet SMC Elite 16 WD8013, et la plupart des + clones à base de WD8003E, WD8003EBT, WD8003W, WD8013W, + WD8003S, WD8003SBT et WD8013EBT. Les cartes à base de SMC + Elite Ultra et 9432TX sont aussi supportées,</para> + </listitem> + + <listitem> + <para>DEC EtherWORKS III NICs (“<foreignphrase>Network + Interface Card</foreignphrase>” - carte + d'interface réseau) (DE203, DE204, et DE205),</para> + </listitem> + + <listitem> + <para>DEC EtherWORKS II NICs (DE200, DE201, DE202, et + DE422),</para> + </listitem> + + <listitem> + <para>NICs à base de DEC DC21040/DC21041/DC21140:</para> + <itemizedlist> + + <listitem> + <para>ASUS PCI-L101-TB,</para> + </listitem> + + <listitem> + <para>Accton ENI1203,</para> + </listitem> + + <listitem> + <para>Cogent EM960PCI,</para> + </listitem> + + <listitem> + <para>Compex CPXPCI/32C,</para> + </listitem> + + <listitem> + <para>D-Link DE-530,</para> + </listitem> + + <listitem> + <para>DEC DE435,</para> + </listitem> + + <listitem> + <para>Danpex EN-9400P3,</para> + </listitem> + + <listitem> + <para>JCIS Condor JC1260,</para> + </listitem> + + <listitem> + <para>Kingston KNE100TX,</para> + </listitem> + + <listitem> + <para>Linksys EtherPCI,</para> + </listitem> + + <listitem> + <para>Mylex LNP101,</para> + </listitem> + + <listitem> + <para>SMC EtherPower 10/100 (Modèle 9332),</para> + </listitem> + + <listitem> + <para>SMC EtherPower (Modèle 8432),</para> + </listitem> + + <listitem> + <para>SMC EtherPower (2),</para> + </listitem> + + <listitem> + <para>Zynx ZX314,</para> + </listitem> + + <listitem> + <para>Zynx ZX342.</para> + </listitem> + + </itemizedlist> + + </listitem> + + <listitem> + <para>NICs DEC FDDI (DEFPA/DEFEA),</para> + </listitem> + + <listitem> + <para>Fujitsu FMV-181 et FMV-182,</para> + </listitem> + + <listitem> + <para>Fujitsu MB86960A/MB86965A,</para> + </listitem> + + <listitem> + <para>Intel EtherExpress,</para> + </listitem> + + <listitem> + <para>Intel EtherExpress Pro/100B 100Mbit,</para> + </listitem> + + <listitem> + <para>Isolan AT 4141-0 (16 bit),</para> + </listitem> + + <listitem> + <para>Isolink 4110 (8 bit),</para> + </listitem> + + <listitem> + <para>Interface réseau sans fil Lucent WaveLAN,</para> + </listitem> + + <listitem> + <para>Interface Ethernet Novell NE1000, NE2000, et NE2100,</para> + </listitem> + + <listitem> + <para>Cartes 3Com 3C501,</para> + </listitem> + + <listitem> + <para>3Com 3C503 Etherlink II,</para> + </listitem> + + <listitem> + <para>3Com 3c505 Etherlink/+,</para> + </listitem> + + <listitem> + <para>3Com 3C507 Etherlink 16/TP,</para> + </listitem> + + <listitem> + <para>3Com 3C509, 3C579, 3C589 (PCMCIA) Etherlink III,</para> + </listitem> + + <listitem> + <para>3Com 3C590, 3C595 Etherlink III,</para> + </listitem> + + <listitem> + <para>Cartes 3Com 3C90x,</para> + </listitem> + + <listitem> + <para>HP PC Lan Plus (27247B et 27252A),</para> + </listitem> + + <listitem> + <para>Cartes Ethernet Toshiba,</para> + </listitem> + + <listitem> + <para>Les cartes Ethernet PCMCIA d'IBM et National + Semiconductor sont aussi supportées.</para> + </listitem> + + </itemizedlist> + + <note> + <para>FreeBSD ne supporte pas actuellement les fonctionnalités + PnP (<foreignphrase>plug-n-play</foreignphrase>) de + certaines cartes Ethernet. Si votre carte est PnP et vous pose des + problèmes, essayez de désactiver ses fonctionnalités PnP.</para> + </note> + </sect2> + + <sect2 id="install-misc"> + <title>Périphériques divers</title> + + <itemizedlist> + + <listitem> + <para>Carte AST 4 ports série avec IRQ partagée,</para> + </listitem> + + <listitem> + <para>Carte ARNET 8 ports série avec IRQ partagée,</para> + </listitem> + + <listitem> + <para>Carte BOCA IOAT66 6 ports série avec IRQ partagée,</para> + </listitem> + + <listitem> + <para>Carte BOCA 2016 16 ports série avec IRQ partagée,</para> + </listitem> + + <listitem> + <para>Carte série Cyclades Cyclom-y,</para> + </listitem> + + <listitem> + <para>Carte série STB 4 ports avec IRQ partagée,</para> + </listitem> + + <listitem> + <para>Carte série SDL Communications Riscom/8,</para> + </listitem> + + <listitem> + <para>Carte série synchrone SDL Communications RISCom/N2 et + N2pci,</para> + </listitem> + + <listitem> + <para>Carte série synchrone grande vitesse Digiboard + Sync/570i,</para> + </listitem> + + <listitem> + <para>Carte Decision-Computer Intl. “Eight-Serial” + 8 ports série avec IRQ partagée,</para> + </listitem> + + <listitem> + <para>Cartes sons Adlib, SoundBlaster, SoundBlaster Pro, + ProAudioSpectrum, Gravis UltraSound, Gravis UltraSound MAX + et Roland MPU-401,</para> + </listitem> + + <listitem> + <para>Carte d'acquisition vidéo Matrox Meteor,</para> + </listitem> + + <listitem> + <para>Carte d'incrustation vidéo Creative Labs Video,</para> + </listitem> + + <listitem> + <para>Carte d'acquisition vidéo Omnimedia Talisman,</para> + </listitem> + + <listitem> + <para>Cartes d'acquisition vidéo à base de puce Brooktree + BT848,</para> + </listitem> + + <listitem> + <para>Contrôleurs d'alimentation X-10,</para> + </listitem> + + <listitem> + <para>Manette de jeu et haut-parleur PC.</para> + </listitem> + + </itemizedlist> + + + <para>FreeBSD n'est pas actuellement compatible avec le bus + IBM microchannel (MCA).</para> + + </sect2> + </sect1> + + <sect1> + <title>Préparer l'installation</title> + + <para>Il y a un certain nombre de méthodes pour installer FreeBSD. Les + paragraphes qui suivent décrivent ce qui doit être fait dans chaque + cas.</para> + + <sect2> + <title>Avant d'installer à partir du CD-ROM</title> + + <para>Si votre lecteur de CD-ROMs n'est pas supporté, passez s'il vous + plaît à la section <link linkend="install-msdos">Avant d'installer + depuis une partition MS-DOS</link>.</para> + + <para>Il n'y a pratiquement rien à faire avant d'installer avec + succés à partir des CD-ROMs FreeBSD de Walnut Creek (les CD-ROMs + d'autres distributions marcheront sans doute aussi, bien que nous + ne puissions l'affirmer, car nous n'intervenons en rien dans la + façon dont ils sont faits). Vous pouvez démarrez l'installation + par CD soit depuis DOS avec la procédure + <filename>install.bat</filename> de Walnut Creek ou vous pouvez + créez une disquette de démarrage avec la commande + <filename>makeflp.bat</filename>.</para> + + <note> + <para>Si vous utilisez FreeBSD 2.1-RELEASE et avez un CD-ROM IDE, + servez-vous des procédures <filename>inst_ide.bat</filename> ou + <filename>atapiflp.bat</filename> à la place.</para> + </note> + + <para>Pour avoir l'interface la plus facile à utiliser (sous DOS), + tapez <command>view</command>. Cela vous affichera un menu DOS + qui vous guidera à travers toutes les options disponibles.</para> + + <para>Si vous créez la disquette de démarrage sur une machine UNIX, + voyez <link linkend="install">le début de ce guide</link> pour + avoir des exemples sur la façon de créer une disquette de + démarrage.</para> + + <para>Une fois que vous avez démarré sous DOS ou avec la disquette, + vous devriez pouvoir sélectionner le CD-ROM comme support + d'installation depuis le menu de sélection du support. Vous n'aurez + besoin de rien d'autre que du CD-ROM.</para> + + <para>Une fois que vous aurez terminé l'installation et redémarré + à partir du disque dur, vous pourrez monter quand vous voudrez le + CD-ROM en tapant: <command>mount /cdrom</command></para> + + <para>Avant de sortir de nouveau le CD-ROM, notez qu'il faut d'abord + taper: <command>umount /cdrom</command>. Ne le retirez pas + simplement du lecteur!</para> + + <note> + <para>Avant de commencer l'installation, vérifiez que le CD-ROM est + bien dans le lecteur, sans quoi le test avant installation ne le + trouvera pas. C'est aussi vrai si vous voulez, dès l'installation, + ajouter automatiquement le CD-ROM à la + configuration du système (que vous vous en serviez comme support + d'installation ou non).</para> + </note> + + <para>Finalement, si vous voulez que les gens puissent installer + FreeBSD par FTP directement depuis le CD-ROM de votre machine, + c'est assez facile à mettre en oeuvre. Il vous suffit d'ajouter + la ligne suivante au fichier de mots de passe (avec la commande + <command>vipw</command>):</para> + + <programlisting> +ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent</programlisting> + + <para>Quiconque peut se connecter par le réseau à votre machine (et + est autorisé à y ouvrir une session) peut maintenant sélectionner + FTP comme support d'installation et taper: + <userinput>ftp://<replaceable>votre + machine</replaceable></userinput> après avoir sélectionné + “Other” - autres - dans le menu + des sites ftp.</para> + + </sect2> + + <sect2> + <title>Avant d'installer à partir de disquettes</title> + + <para>Si vous devez installer à partir de disquettes, soit parce que + vous avez du matériel non supporté, soit que vous aimiez vous compliquer + la vie, vous devez d'abord préparer les disquettes + nécessaires.</para> + + <para>Il vous faudra, au minimum, autant de disquettes 1.2MB ou 1.44MB + que nécessaires pour y mettre tous les fichiers du répertoire + <filename>bin</filename> (distribution binaire). Si vous préparez + ces disquettes sous DOS, alors CES disquettes doit être formatées + avec la commande FORMAT de MS-DOS. Si vous utilisez Windows, + servez-vous de la commande de formatage du gestionnaire de fichiers + de Windows.</para> + + <para>Ne faites <emphasis>pas</emphasis> confiance aux disquettes + préformatées en usine. Reformattez-les vous-même, de façon à être + sûr. Nos utilisateurs nous ont, dans le passé, signalé de nombreux + problèmes dus à des disquettes incorrectement formatées, ce qui + explique pourquoi j'y insiste autant ici!</para> + + <para>Si vous créez les disquettes sur une autre machine FreeBSD, + ce n'est malgré tout pas une mauvaise idée de les formater bien + que vous n'ayez pas besoin d'y mettre un système de fichiers MS-DOS. + Vous pouvez employer les commandes <command>disklabel</command> et + <command>newfs</command> pour y mettre un système de fichiers UFS à + la place, comme le montre la séquence de commandes suivantes (pour + une disquette 3.5" 1.44MB):</para> + + <informalexample> + <screen>&prompt.root; <userinput>fdformat -f 1440 fd0.1440</userinput> +&prompt.root; <userinput>disklabel -w -r fd0.1440 floppy3</userinput> +&prompt.root; <userinput>newfs -t 2 -u 18 -l 1 -i 65536 /dev/rfd0</userinput> + </screen> + </informalexample> + + + <note> + <para>Utilisez <literal>fd0.1200</literal> et + <literal>floppy5</literal> pour les disquettes 5.25" 1.2MB.</para> + </note> + + <para>Vous pouvez alors les monter et y écrire comme sur n'importe + quel autre système de fichiers.</para> + + <para>Après avoir formaté les disquettes, il vous faudra y copier les + fichiers. Les fichiers de la distribution sont scindés en morceaux + de taille telle que 5 d'entre eux tiennent sur une disquette 1.44MB + ordinaire. Préparez les disquettes les unes après les autres, y + mettant sur chaque autant de fichiers que vous pouvez, jusqu'à ce + que vous ayez recopié toutes les distributions que vous voulez + installer. Chaque distribution doit avoir son propre sous-répertoire + sur la disquette, e.g.: <filename>a:\bin\bin.aa</filename>, + <filename>a:\bin\bin.ab</filename>, et ainsi de suite.</para> + + <para>Une fois que vous en êtes à l'écran de sélection du support + d'installation, choisissez + “Floppy” - disquette - et vous + aurez ensuite des indications sur la marche à suivre.</para> + + </sect2> + + <sect2 id="install-msdos"> + <title>Avant d'installer depuis une partition MS-DOS</title> + + <para>Pour préparer l'installation depuis une partition MS-DOS, copiez + les fichiers de la distribution dans un répertoire nommé + <filename>C:\FREEBSD</filename>. L'arborescence des répertoires du + CD-ROM doit être partiellement reproduite dans ce répertoire, je + vous suggère donc d'utiliser la commande DOS + <command>xcopy</command>. + Par exemple, pour préparer une installation minimale de + FreeBSD:</para> + + <informalexample> + <screen><prompt>C:\></prompt> <userinput>MD C:\FREEBSD</userinput> +<prompt>C:\></prompt> <userinput>XCOPY /S E:\BIN C:\FREEBSD\BIN\</userinput> +<prompt>C:\></prompt> <userinput>XCOPY /S E:\MANPAGES C:\FREEBSD\MANPAGES\</userinput></screen> + </informalexample> + + <para>En supposant que vous ayez de la place sur + <devicename>C:</devicename> et que votre CD-ROM soit monté sur + <devicename>E:</devicename>.</para> + + <para>Copiez chaque distribution que vous voulez installer depuis + MS-DOS (et pour laquelle vous avez de la place libre) dans + <filename>C:\FREEBSD</filename> - la distribution + <abbrev>BIN</abbrev> n'est que le minimum obligatoire.</para> + + </sect2> + + <sect2> + <title>Avant d'installer à partir de bandes QIC/SCSI</title> + + <para>Installer à partir de bandes est probablement la méthode la plus + simple, mis à part l'installation en ligne avec FTP ou depuis le + CD-ROM. Le programme d'installation s'attend à ce que les fichiers + soient simplement archivés avec <command>tar</command> sur la bande, + donc, après avoir récupéré tous les fichiers des distributions qui + vous intéressent, recopiez-les par <command>tar</command> avec une + commande comme:</para> + + <informalexample> + <screen>&prompt.root; <userinput>cd /freebsd/distdir</userinput> +&prompt.root; <userinput>tar cvf /dev/rwt0 dist1 ... dist2</userinput></screen> + </informalexample> + + + <para>Quand vous installez, vous devez aussi vous assurer qu'il y a + assez de place dans un répertoire temporaire (que vous pourrez + choisir) pour y mettre le contenu <emphasis>entier</emphasis> de la + bande que vous avez créée. Vous devez donc vous attendre à avoir + besoin d'autant d'espace de stockage temporaire que vous avez mis + de données sur la bande.</para> + + <note> + <para>Au moment d'installer, la bande doit être dans le lecteur + <emphasis>avant</emphasis> de démarrer avec la disquette. Sinon, + les tests risquent de ne pas la trouver.</para> + </note> + </sect2> + + <sect2> + <title>Avant d'installer via le réseau</title> + + <para>Vous pouvez installer en réseau avec trois sortes de + communications:</para> + + <variablelist> + <varlistentry><term>Port série:</term> + <listitem> + <para>SLIP ou PPP,</para> + + </listitem> + </varlistentry> + + <varlistentry><term>Port parallèle:</term> + + <listitem> + <para>PLIP (câble “laplink”),</para> + + </listitem> + </varlistentry> + + <varlistentry><term>Ethernet:</term> + + <listitem> + <para>Contrôleur Ethernet standard (y compris certains + contrôleurs PCMCIA).</para> + + </listitem> + </varlistentry> + </variablelist> + + <para>Le support SLIP est assez rudimentaire et essentiellement + limité aux lignes directes. Les liaisons doivent être directes car + la procédure d'installation SLIP n'offre pas actuellement de + possibilité de connexion téléphonique; cette fonctionnalité existe + avec l'utilitaire PPP, qu'il faut utiliser de préférence à SLIP + chaque fois que c'est possible.</para> + + <para>Si vous utilisez un modem, PPP est certainement votre seul + choix. Veillez à avoir sous la main les informations concernant + votre fournisseur d'accès car vous en aurez besoin assez tôt dans + la procédure d'installation. Vous devrez savoir comment appeler + votre fournisseur d'accès Internet en utilisant les “commandes + AT” propres à votre modem, car le programme d'appel PPP ne + fournit qu'un émulateur de terminal trés simplifié. Si vous utilisez + PAP ou CHAP, vous devrez taper les commandes <command>set + authname</command> et <command>set authkey</command> avant de taper + <command>term</command>. Reportez-vous aux sections concernant PPP + intégré au noyau du <link linkend="userppp">manuel</link> ou de la + <ulink url="&url.faq;index.html">FAQ</ulink> + pour plus d'informations. Si vous avez des problèmes, connectez-vous + directement à l'écran avec la commande <command>set log local + ...</command>.</para> + + <para>Si vous disposez d'une liaison directe à une autre machine + FreeBSD (2.0R ou ultérieur), vous pouvez aussi envisager + l'installation avec un câble “laplink” sur le port + parallèle, la vitesse de transmission est supérieure à celle que + l'on obtient habituellement avec une liaison série, ce qui accélère + l'installation.</para> + + <para>Finalement, pour une installation en réseau la plus rapide + possible, une carte Ethernet est toujours un bon choix! FreeBSD + supporte la plupart des cartes Ethernet PC courantes. Il y a une + liste des cartes Ethernet supportées (et du paramètrage requis) + à la section <link linkend="install-hw">Configurations + supportées</link>. + Si vous utilisez l'une des cartes Ethernet PCMCIA suportées, ayez + soin de la mettre en place <emphasis>avant</emphasis> de mettre le + portable sous tension! FreeBSD ne supporte malheureusement pas + encore le branchement à chaud des cartes PCMCIA pendant + l'installation.</para> + + <para>Vous devrez aussi connaître votre adresse IP sur le réseau, le + masque de réseau pour votre classe d'adresses et le nom de votre + machine. Votre administrateur système peut vous dire quelles + valeurs vous devez utiliser pour votre configuration réseau + particulière. Si vous devez référencer d'autres machines par leur + nom plutôt que par leurs adresses IP, vous devrez aussi connaître + un serveur de noms et peut-être l'adresse d'une passerelle (si vous + utilisez PPP, c'est l'adresse IP de votre fournisseur d'accès) pour + accèder à ce serveur. Si vous n'avez pas les réponses à toutes ces + questions, vous devriez vraiment en discuter + <emphasis>d'abord</emphasis> avec votre administrateur système, + avant de vous lancer dans ce type d'installation.</para> + + <para>Une fois que vous avez une liaison d'un type ou l'autre qui + fonctionne, l'installation peut continuer avec NFS ou FTP.</para> + + <sect3> + <title>Préparer l'installation par NFS</title> + + <para>L'installation par NFS est assez directe: copiez simplement + les fichiers de la distribution de FreeBSD que vous voulez quelque + part sur le serveur et mentionnez ce répertoire au moment de + sélectionner le support NFS.</para> + + <para>Si le serveur n'accepte que les accès sur les “ports + privilégiés” (ce qui est généralement par défaut le cas sur + les stations de travail Sun), vous devrez le préciser dans le + menus des “Options” pour que l'installation puisse + continuer.</para> + + <para>Si vous avez une carte Ethernet de mauvaise qualité et des + vitesses de transfert très faibles, vous devrez peut-être aussi + positionner l'indicateur approprié dans ce menu.</para> + + <para>Pour que l'installation par NFS fonctionne, le serveur doit + pouvoir monter des sous-répertoires, e.g., si le répertoire pour + votre distribution de FreeBSD &rel.current; est + <filename>ziggy:/usr/archive/stuff/FreeBSD</filename>, alors + <hostid>ziggy</hostid> doit autoriser le montage de + <filename>/usr/archive/stuff/FreeBSD</filename>, et non simplement + de <filename>/usr</filename> ou + <filename>/usr/archive/stuff</filename>.</para> + + <para>Dans le fichier <filename>/etc/exports</filename> de FreeBSD, + on l'autorise avec l'option <option>-alldirs</option>. Il peut y + avoir d'autres conventions avec d'autres serveurs NFS. Si le + serveur vous envoie des messages + <errortype>Permission Denied</errortype>, il est probable que + c'est parce que vous n'avez pas activé correctemment cette + fonctionnalité.</para> + + </sect3> + + <sect3> + <title>Préparer l'Installation par FTP</title> + + <para>L'installation par FTP peut se faire à partir de n'importe + quel site miroir sur lequel il y a une version suffisamment + à jour de FreeBSD &rel.current;. Le menu des sites FTP propose + un choix raisonnable de sites pour à peu près n'importe quel + endroit du globe.</para> + + <para>Si vous voulez installer depuis une autre site FTP qui n'est + pas listé dans le menu, ou avez des difficultés à configurer + correctement votre serveur de noms, vous pouvez aussi préciser + l'URL de votre choix en sélectionnant l'option + “Other” - autre - de + ce menu. Vous pouvez aussi donner + directement l'adresse IP. Ceci par exemple fonctionnerait en + l'absence d'un serveur de noms:</para> + + <informalexample> + <screen>ftp://165.113.121.81/pub/FreeBSD/&rel.current;-RELEASE</screen> + </informalexample> + + <para>Il y a deux méthodes d'installation par FTP:</para> + + <variablelist> + <varlistentry><term>FTP actif</term> + <listitem> + <para>Utilise le mode “Actif” pour tous les + transferts FTP. Cela ne + marchera pas derrière un coupe-feu, mais fonctionnera + avec les serveurs ftp anciens qui ne supportent pas + encore le mode passif. Si votre connexion se bloque + en mode passif (qui est le mode par défaut), essayez cette + méthode!</para> + </listitem> + </varlistentry> + + <varlistentry><term>FTP passif</term> + + <listitem> + <para>Utilise le mode “Passif” pour tous les + transferts FTP. Cela permet de passer les coupe-feux qui + n'autorisent pas les connexions entrantes sur des ports + non privilégiés.</para> + </listitem> + </varlistentry> + </variablelist> + + <note> + <para>Ne confondez pas mode actif et passif et connexion mandatée, + quand un serveur mandataire écoute et transmet les requêtes + FTP!</para> + </note> + + <para>Avec un serveur FTP mandataire, vous devez habituellement + donner le nom du serveur réel accolé au nom d'utilisateur, après + une @. Le serveur mandataire passe alors pour le serveur réel. + Imaginons que vous vouliez installer depuis + <hostid role="fqdn">ftp.freebsd.org</hostid>, via le serveur FTP + mandataire <hostid role="fqdn">foo.bar.com</hostid>, qui écoute + sur le port 1234.</para> + + <para>Dans ce cas, vous allez dans le menu des options, donnez comme + nom d'utilisateur <username>ftp@ftp.freebsd.org</username>, et + comme mot de passe votre adresse de courrier électronique. Comme + support d'installation, vous précisez FTP (ou FTP passif, si le + serveur mandataire l'accepte) et comme URL + <literal>ftp://foo.bar.com:1234/pub/FreeBSD</literal>.</para> + + <para><filename>/pub/FreeBSD</filename> sur + <hostid role="fqdn">ftp.freebsd.org</hostid> + est alors mandaté par + <hostid role="fqdn">foo.bar.com</hostid>, ce qui vous + permet d'installer depuis <emphasis>cette</emphasis> + machine (qui va elle chercher les fichiers sur + <hostid role="fqdn">ftp.freebsd.org</hostid> au fur et à mesure + des besoins de votre installation).</para> + + </sect3> + </sect2> + </sect1> + + <sect1> + <title>Installer FreeBSD</title> + + <para>Une fois que vous avez établi quelles sont les étapes + préliminaires appropriées à votre méthode + d'installation, vous devriez arriver à installer FreeBSD sans autre problème.</para> + + <para>Dans le cas contraire, revenez sur vos pas et relisez les + sections + ci-dessus qui s'applique à la méthode que vous essayer d'utiliser, il + y a peut-être une indication utile qui vous a échappé à la première + lecture. Si vous avez des problèmes avec votre matériel ou si FreeBSD + refuse de démarrer, lisez le Guide du Matériel fourni sur la + disquette de démarrage pour avoir une liste de solutions + éventuelles.</para> + + <para>La disquette de démarrage de FreeBSD contient toute la + documentation en ligne dont vous devriez avoir besoin pour + naviguer dans la procédure d'installation, et si tel n'est + pas le cas, nous aimerions savoir ce que vous avez trouvé le + moins clair. Adressez vos remarques à &a.doc;. Nous souhaitons + que le programme d'installation de FreeBSD + (<command>sysinstall</command>) soit suffisamment auto-documenté + pour que les fastidieux guides d'installation “pas-à-pas” + deviennent inutiles. Cela nous prendra peut-être un peu de temps pour + y arriver, mais c'est notre objectif!</para> + + <para>En attendant, la “séquence typique d'installation + suivante” vous sera peut-être utile:</para> + + <orderedlist> + + <listitem> + <para>Démarrez avec la disquette d'installation. Après une + séquence d'initialisation qui peut prendre de 30 secondes à + 3 minutes, selon votre matériel, vous devriez obtenir le + menu des choix initiaux. Si votre machine ne démarre pas ou + se bloque, lisez la section Questions & Réponses du Guide + du Matériel pour en connaître les causes possibles.</para> + </listitem> + + <listitem> + <para>Appuyez sur F1. Vous devriez obtenir quelques indications de + base sur l'utilisation du système de menus et la façon d'y + naviguer. Si vous ne vous êtes pas encore servi de ces menus, + lisez <emphasis>s'il vous plaît</emphasis> ces indications en + détail!</para> + </listitem> + + <listitem> + <para>Sélectionnez “Options” et définissez vos + préférences.</para> + </listitem> + + <listitem> + <para>Choisissez l'installation “Novice”, + “Custom” - personnalisée - ou + “Express”, selon que vous préférez que la + procédure d'installation vous guide au long des étapes d'une + installation typique, vous donne une grande latitude dans le + choix des étapes successives, ou aille au plus rapide (en + utilisant des options par défaut à chaque fois que c'est + possible). Si vous n'avez encore jamais utilisé FreeBSD, + la méthode d'installation “Novice” est vivement + recommandée.</para> + </listitem> + + <listitem> + <para>Le menu final vous permet de configurer encore un peu plus + votre installation en vous donnant accès par menus à diverses + options système. Certains choix, comme ceux qui concernent le + réseau, peuvent être + particulièrement utiles si vous avez installé depuis le CD-ROM, + une bande ou des disquettes et n'avez pas encore configuré vos + interfaces réseau (si vous en avez). Si vous les configurez + maintenant correctement, votre machine FreeBSD sera sur le + réseau dès le prochain redémarrage depuis le disque + dur.</para> + </listitem> + + </orderedlist> + + </sect1> + + <sect1> + <title>Questions et Réponses pour les utilisateurs MS-DOS</title> + + <para>De nombreux utilisateurs veulent installer FreeBSD sur des PCs + qui fonctionnent sous MS-DOS. Voici quelques questions fréquentes + concernant l'installation de FreeBSD sur de tels systèmes.</para> + + <para><emphasis>A l'aide! Je n'ai plus de place! Faut-il que je + commence par tout effacer?</emphasis></para> + + <para>Si votre machine tourne déjà sous MS-DOS et qu'il ne vous reste + que peu ou pas de place pour installer FreeBSD, tout n'est pas perdu! + L'utilitaire FIPS qui se trouve dans le répertoire + <filename>tools</filename> du CDROM FreeBSD ou sur les différents + sites ftp vous sera probablement très utile.</para> + + <para>FIPS vous permet de scinder en deux une partition MS-DOS + existante, sans altérer le contenu de la partition originale, pour + installer ensuite FreeBSD sur la seconde partition ainsi créée; Vous + défragmentez d'abord votre partition MS-DOS, avec l'utilitaire DEFRAG + de DOS 6.xx ou les utilitaires Disque de Norton, puis utilisez FIPS. + Il vous demandera les autres informations dont il a besoin. Vous + pouvez ensuite redémarrer et installer sur la nouvelle + “tranche” libre. + Voyez le menu <emphasis>Distributions</emphasis> pour avoir une + estimation de la place dont vous aurez besoin selon ce que vous + voulez installer.</para> + + <para><emphasis>Puis-je utiliser des systèmes de fichiers MS-DOS + compressés depuis FreeBSD?</emphasis></para> + + <para>Non. Si vous employez des utilitaires tels que Stacker(tm) ou + DoubleSpace(tm), FreeBSD ne pourra utiliser que la partie du système + de fichiers que vous n'avez pas compressée. Le reste apparaîtra comme + un seul gros fichier (le fichier empilé/réduit). <emphasis>N'effacez + pas ce fichier!</emphasis> Vous le regretteriez très + certainement!</para> + + <para>Il est probablement mieux de créer une autre partition MS-DOS non + compressée et de l'utiliser pour les échanges entre MS-DOS et + FreeBSD.</para> + + <para><emphasis>Puis-je monter mes partitions MS-DOS + étendues?</emphasis></para> + + <para>Oui. Les partitions DOS étendues sont référencées après les autres + “tranches” par FreeBSD, exemple: votre disque + <devicename>D:</devicename> peut être appelé + <filename>/dev/sd0s5</filename>, et votre disque + <devicename>E:</devicename> <filename>/dev/sd0s6</filename>, et ainsi + de suite. Nous supposons bien sûr dans cet exemple que votre partition + étendue est sur le disque SCSI 0. Dans le cas des disques IDE, + remplacez <filename>sd</filename> par la référence au disque + <filename>wd</filename> appropriée. A part cela, les partitions + étendues se montent exactement comme toutes les autres partitions DOS, + e.g.:</para> + + <informalexample> + <screen>&prompt.root; <userinput>mount -t msdos /dev/sd0s5 /dos_d</userinput></screen> + </informalexample> + + <para><emphasis>Puis-je utiliser des binaires MS-DOS sous + FreeBSD?</emphasis></para> + + <para>BSDI a légué au monde BSD son émulateur DOS, qui a été porté sous + FreeBSD.</para> + + <para>Il y a aussi une belle application (du point de vue technique) + disponible au + <link linkend="ports">Catalogue des logiciels portés</link>, + qui s'appelle <command>pcemu</command> et qui vous permet d'utiliser + nombre de programmes MS-DOS simples en mode texte en émulant un + processeur 8088.</para> + + </sect1> + </chapter> + +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-shorttag: nil + sgml-always-quote-attributes: t + sgml-minimize-attributes: max + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> + diff --git a/fr_FR.ISO_8859-1/books/handbook/internals/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/internals/chapter.sgml new file mode 100644 index 0000000000..1f05f5a3b5 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/internals/chapter.sgml @@ -0,0 +1,2141 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: 1.8 +--> + +<chapter id="internals"> + <title>Les “internes” de FreeBSD</title> + &trans.a.haby; + + <sect1 id="booting"> + <title>Le processus de démarrage</title> + + <para><emphasis>Contribution de &a.phk;. v1.1, 16 Avril + 1995.</emphasis></para> + + <para>Le démarrage de FreeBSD est essentiellement un processus en + trois étapes : charger le noyau, identifier le système + de fichiers racine et initialiser utilisateur. Cela autorise + d'intéressantes combinaisons décrites plus loin.</para> + + <sect2> + <title>Charger un noyau</title> + + <para>Nous disposons actuellement des trois mécanismes de base + décrits ci-dessous pour charger un noyau : ils transmettent + tous des informations au noyau afin de l'aider à décider + de ce qu'il doit faire ensuite.</para> + + <variablelist> + <varlistentry> + <term>Biosboot</term> + + <listitem> + <para>Biosboot est notre “code de démarrage”. + Il consiste en deux fichiers qui seront copiés sur les huit + premiers kilo-octets de la disquette ou de la + “tranche” - <foreignphrase>slice</foreignphrase> - du + disque dur à partir de laquelle on démarrera.</para> + + <para>Biosboot peut charger un noyau donné par son nom dans + un système de fichiers FreeBSD.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Dosboot</term> + + <listitem> + <para>Dosboot a été écrit par DI. Christian + Gusenbauer, et c'est malheureusement actuellement l'un des + quelques codes qui ne compilent pas sous FreeBSD, parce qu'il est + écrit pour les compilateurs Microsoft.</para> + + <para>Dosboot peut charger un noyau depuis un fichier MS-DOS ou un + système de fichiers FreeBSD sur disque. Il essaye de + négocier avec les divers et étranges + gestionnires de mémoire qui hantent les adresses hautes des + systèmes MS-DOS et les gagne en général + à sa cause.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Netboot</term> + + <listitem> + <para>Netboot recherche une carte Ethernet supportée et + utilise BOOTP, TFTP et NFS pour trouver un noyau permettant de + démarrer.</para> + </listitem> + </varlistentry> + </variablelist> + </sect2> + + <sect2> + <title>Identifier le système de fichiers racine</title> + + <para>Dès que le noyau est chargé et que le code de + démarrage lui passe la main, le noyau s'initialise, il essaie de + déterminer quels sont les matériels installés, et + ainsi de suite; il lui faut ensuite trouver le système de + fichiers racine.</para> + + <para>Nous reconnaissons actuellement les types suivants de + systèmes de fichiers racine :</para> + + <variablelist> + <varlistentry> + <term>UFS</term> + + <listitem> + <para>C'est le type de système de fichiers racine le plus + habituel. Il peut être sur disquette ou sur disque + dur.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>MSDOS</term> + + <listitem> + <para>Bien que ce soit techniquement possible, ce n'est pas + particulièrement utile, du fait de l'impossibilité + pour le système de fichiers <acronym>FAT</acronym> de + gérer les liens, les fichiers spéciaux et autres + particularités “UNIX”.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>MFS</term> + + <listitem> + <para>Il s'agit en rélité d'un système de + fichiers UFS intégré au noyau à la + compilation de ce dernier. Cela signifie que le noyau n'a pas + vraiment besoin de disque dur, disquette ou autre matériel + pour s'exécuter.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>CD9660</term> + + <listitem> + <para>Cela permet d'utiliser un CD-ROM comme système de + fichiers racine.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>NFS</term> + + <listitem> + <para>Cela permet d'utiliser un serveur de fichiers comme + système de fichiers racine, essentiellement pour + faire fonctionner une machine sans disque dur.</para> + </listitem> + </varlistentry> + </variablelist> + </sect2> + + <sect2> + <title>Initialiser l'environnement utilisateur</title> + + <para>Pour que les programmes utilisateur puissent s'exécuter, le + noyau, quand la phase d'initialisation est terminée, lance un + processus de <literal>pid == 1</literal> et exécute + un programme du système de fichiers racine;, normalement + <filename>/sbin/init</filename>.</para> + + <para>Vous pouvez remplacer <command>/sbin/init</command> par n'importe + quel programme, tant que vous vous rappelez que :</para> + + <para>Il n'y a pas de stdin/out/err à moins que vous ne les ouvriez + vous-même. Si vous sortez du programme, la machine panique. La + gestion des signaux par le processus de <literal>pid == 1</literal> est + particulière à ce processus.</para> + + <para>Le programme <command>/stand/sysinstall</command> de la disquette + d'installation est un exemple d'“init” adapté.</para> + </sect2> + + <sect2> + <title>Combinaisons intéressantes</title> + + <para>Démarrer un noyau contenant un système de fichiers MFS + avec un programme <filename>/sbin/init</filename> particulier + qui...</para> + + <variablelist> + <varlistentry> + <term>A — En utilisant DOS</term> + + <listitem> + <itemizedlist> + <listitem> + <para>monte votre disque <filename>C:</filename> sous le + répertoire <filename>/C:</filename></para> + </listitem> + + <listitem> + <para>attache le fichier spécial + <filename>/dev/vn0</filename> au fichier + <filename>C:/freebsd.fs</filename></para> + </listitem> + + <listitem> + <para>monte <filename>/dev/vn0</filename> sous + <filename>/rootfs</filename></para> + </listitem> + + <listitem> + <para>crée les liens symboliques + <filename>/rootfs/bin</filename> -> + <filename>/bin</filename>, + <filename>/rootfs/etc</filename> -> + <filename>/etc</filename>, + <filename>/rootfs/sbin</filename> -> + <filename>/sbin</filename> (etc.)</para> + </listitem> + </itemizedlist> + + <para>Vous faites maintenant tourner FreeBSD sans avoir + repartitionné votre disque dur...</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>B — En utilisant NFS</term> + + <listitem> + <itemizedlist> + <listitem> + <para>monte avec NFS votre + <filename>serveur:~vous/FreeBSD</filename> sur + <filename>/nfs</filename>, redéfinit la racine comme + <filename>/nfs</filename> - avec + <citerefentry><refentrytitle>chroot</refentrytitle> + <manvolnum>8</manvolnum></citerefentry> - et + y exécute <filename>/sbin/init</filename></para> + </listitem> + </itemizedlist> + + <para>Vous faites maintenant tourner FreeBSD sans disque dur, bien + que vous n'ayez pas le contrôle du serveur NFS...</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>C — Démarre un serveur X</term> + + <listitem> + <para>Vous avez maintenant un terminal X, bien plus efficace que X + sous Windows, tellement lent que vous pouvez- voir- tout- ce + qu'il- fait, alors que votre patron assure que cela est toujours + mieux que de dépenser encore de l'argent en + matériel.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>D — En utilisant une bande</term> + + <listitem> + <itemizedlist> + <listitem> + <para>copie <filename>/dev/rwd0</filename> sur un lecteur de + bandes sur le réseau ou sur un serveur de + fichiers.</para> + </listitem> + </itemizedlist> + + <para>Vous avez finalement la sauvegarde que vous auriez dû + faire il y a un an déjà...</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>E — Fonctionne + comme coupe-feu / serveur Web / que sais-je + encore...</term> + + <listitem> + <para>C'est particulièrement intéressant parce que + vous pouvez démarrer à partir d'une disquette + protégée en écriture, et pouvez malgré + tout écrire sur votre système de fichiers + racine.</para> + </listitem> + </varlistentry> + </variablelist> + </sect2> + </sect1> + + <sect1 id="memoryuse"> + <title>Utilisation de la mémoire du PC</title> + + <para><emphasis>Contribution de &a.joerg;. 16 Avril 1995.</emphasis></para> + + <para><emphasis>Une brève description de la manière dont + FreeBSD utilise la mémoire sur les plates-formes + i386</emphasis></para> + + <para>Le secteur de démarrage est chargé à l'adresse + <literal>0:0x7c00</literal>, et se reloge immédiatement à + l'adresse <literal>0x7c0:0</literal>. (Il n'y a rien de mystérieux + là-dedans, c'est seulement un ajustement du registre + <literal>%cs</literal>, effectué par un + <literal>ljmp</literal>.)</para> + + <para>Il charge ensuite les quinze premiers secteurs à l'adresse + <literal>0x10000</literal> (segment <makevar>BOOTSEG</makevar> dans le + <filename>Makefile</filename> de + <citerefentry><refentrytitle>biosboot</refentrytitle></citerefentry>), et + initialise la pile pour qu'elle travaille aux adresses en-dessous + de <literal>0x1fff0</literal>. Il passe ensuite au point d'entrée + <literal>boot2</literal> de ce code, i.e. il se branche au-delà de + lui-même et de la table de partition (fictive), et ajuste le + registre <literal>%cs</literal>—nous sommes alors encore en + mode 16-bits.</para> + + <para><literal>boot2</literal> recherche le fichier de démarrage, et + examine son en-tête <filename>a.out</filename>. Il masque le point + d'entrée de ce fichier (habituellement + <literal>0xf0100000</literal>) avec <literal>0x00ffffff</literal> et + charge le code à l'adresse ainsi obtenue. Il est donc + généralement chargé à l'adresse 1 MB + (<literal>0x00100000</literal>). Pendant le chargement, le code va et + vient entre le mode réel et le mode protégé, pour + utiliser le BIOS en mode réel.</para> + + <para>Le code de démarrage lui-même utilise les + sélecteurs de segment <literal>0x18</literal> et + <literal>0x20</literal> pour <literal>%cs</literal> et + <literal>%ds/%es</literal> en mode protégé, et + <literal>0x28</literal> pour revenir en mode réel. Le noyau est + finalement lancé avec <literal>%cs</literal> + <literal>0x08</literal> et <literal>%ds/%es/%ss</literal> + <literal>0x10</literal>, qui constituent des descripteurs fictifs + recouvrant la totalité de l'espace d'adressage.</para> + + <para>Le noyau démarre à l'adresse à laquelle il est + chargé. Comme son édition de liens a été + effectuée pour une autre adresse (haute), il doit exécuter + du code <literal>PIC</literal> jusqu'à ce que la table de pages et + le répertoire des pages soient correctement renseignés, la + pagination peut alors être activée et le noyau + s'exécuter à l'adresse pour laquelle il a été + généré.</para> + + <para><emphasis>Contribution de &a.dg;. 16 Avril 1995.</emphasis></para> + + <para>Les pages physiques qui suivent immédiatement le segment + <literal>BSS</literal> du noyau contiennent le répertoire de pages + de <literal>proc0</literal>, ses tables de pages et les + pages utilisateur. Plus tard, quand le système de + mémoire virtuelle est initialisé, la mémoire + physique entre <literal>0x1000-0x9ffff</literal> et la mémoire + physique après le noyau (<literal>text+data+bss+proc0+d'autres + choses</literal>) est mise à disposition sous forme de pages de + mémoire virtuelle ordinaires et ajoutée à la liste + globales des pages libres.</para> + </sect1> + + <sect1 id="dma"> + <title>L'accès direct à la + mémoire - -<foreignphrase>DMA</foreignphrase> : + Qu'est-ce que c'est et comment ça marche</title> + + <para><emphasis>Copyright © 1995,1997 &a.uhclem;, Tous Droits + Réservés. 10 Décembre 1996. Dernière mise + à jour le 8 Octobre 1997.</emphasis></para> + + <para>L'accès direct à la + mémoire - <foreignphrase>Direct + Memory Access (DMA)</foreignphrase> - est une technique qui + permet que les mouvements de données entre la mémoire et + les périphériques se fassent sans intervention de + l'unité centrale (<foreignphrase>CPU</foreignphrase>).</para> + + <para>L'implémentation de l'accès direct à la + mémoire diffère selon les architectures matérielles, + nous limiterons donc la discussion à son implémentation sur + l'ordinateur personnel IBM (<foreignphrase>PC</foreignphrase>), sur l'IBM + PC/AT, ses successeurs et ses différents clones.</para> + + <para>Le sous-système DMA du PC repose sur le contrôleur DMA + Intel 8237. Ce contrôleur gère quatre canaux DMA qui peuvent + être programmés séparément et chacun de ces + canaux peut être le canal actif à un moment donné. Ces + canaux sont numérotés 0, 1, 2 et 3. Depuis le PC/AT, IBM a + ajouté une seconde puce 8237, et numéroté ces canaux + 4, 5, 6 et 7.</para> + + <para>Le contrôleur DMA d'origine (0,1, 2 et 3) effectue les + transferts octet par octet. Le second contrôleur DMA (4, 5, 6 et 7) + effectue les transferts 16 bits par 16 bits, le premier octet étant + toujours un octet d'adresse paire. Les deux contrôleurs sont des + composants identiques, la différence dans la taille des transferts + vient du càblage différent du second + contrôleur.</para> + + <para>Il y a deux signaux électriques par canal sur le 8237, + appelés DRQ (<foreignphrase>Data Request</foreignphrase>) et -DACK + (<foreignphrase>Data Acknowledge</foreignphrase>). Il y a des signaux supplémentaires dont les noms sont HRQ (<foreignphrase>Hold + Request</foreignphrase>), HLDA (<foreignphrase>Hold + Ackwnoledge</foreignphrase>), -EOP (<foreignphrase>End Of + Process</foreignphrase>) et des signaux de contrôle du bus -MEMR + (<foreignphrase>Memory Read</foreignphrase>), -MEMW (<foreignphrase>Memory + Write</foreignphrase>), -IOR (<foreignphrase>I/O Read</foreignphrase>) et + IOW (<foreignphrase>I/O Write</foreignphrase>).</para> + + <para>Le contrôleur DMA 8237 est un contrôleur + “<foreignphrase>fly-by</foreignphrase>” - transparent. + Cela signifie que les données transférées ne + transitent pas par la puce DMA et n'y sont pas mémorisées. + En conséquence, le DMA ne peut effectuer de transferts qu'entre un + port d'entrée/sortie et la mémoire, pas entre deux ports + d'entrée/sortie ou deux adresses mémoire.</para> + + <note> + <para>Le 8237 autorise l'interconnexion de deux de ses canaux pour + permettre les opérations DMA de mémoire à + mémoire, en mode + non-“<foreignphrase>fly-by</foreignphrase>”, mais nul dans + l'industrie du PC n'utilise cette ressource rare de cette façon, + parce qu'il est plus rapide de transférer des données + entre deux adresses mémoire en passant par le processeur.</para> + </note> + + <para>Dans l'architecture PC, chaque canal DMA est normalement activé + uniquement quand le matériel qui utilise le canal DMA en question + demande un transfert en validant la ligne DRQ pour ce canal.</para> + + <sect2> + <title>Un exemple de transfert DMA</title> + + <para>Voici un exemple des étapes successives qui provoquent et + effectuent un transfert DMA. Dans cet exemple, le contrôleur + du lecteur de disquette - <foreignphrase>floppy disk + controller (FDC)</foreignphrase> - vient de lire un octet sur + la disquette et demande au DMA de le ranger à l'adresse + mémoire <literal>0x00123456</literal>. Le processus commence + quand le FDC active le signal DRQ2 (la ligne DRQ pour le canal DMA + numéro 2) pour prévenir le contrôleur DMA.</para> + + <para>Le contrôleur DMA s'aperçoit que le signal DRQ2 est + positionné et s'assure que le canal DMA 2 est programmé + et non-masqué (activé). Le contrôleur DMA s'assure + aussi qu'aucun autre canal DMA n'est actif ou ne demande à + l'être et possède une plus haute priorité. Ces + vérifications faites, le DMA demande au processeur de + libérer le bus pour pouvoir l'utiliser. Il le fait en activant + le signal HRQ, envoyé au processeur.</para> + + <para>Le CPU détecte le signal HRQ et termine l'exécution de + l'instruction en cours. Dès que le processeur est en mesure de + libérer le bus, il le fait. Tous les signaux normalement + générés par le processeur (-MEMR, -MEMW, -IOR, + -IOW et quelques autres) sont positionnés dans un état + intermédiaire (ni haut, ni bas), puis le CPU positionne le + signal HDLA qui prévient le contrôleur DMA qu'il a + maintenant le contrôle du bus.</para> + + <para>Selon le processeur, le CPU peut encore être capable + d'exécuter quelques instructions supplémentaires bien + qu'il n'ait plus accès au bus, mais il peut aussi devoir + attendre lorsqu'il arrive sur une instruction qui doit lire une + donnée en mémoire et que celle-ci ne se trouve pas dans le + cache interne du processeur ou dans son + canal - “<foreignphrase>pipeline</foreignphrase>”.</para> + + <para>Maintenant que le DMA “a la main”, il active ses signaux + de sortie -MEMR, -MEMW, -IOR, -IOW, et fixe l'adresse de sortie du DMA + en <literal>0x3456</literal>, adresse qui sera utilisée pour + diriger l'octet qui va être transféré vers une + adresse mémoire donnée.</para> + + <para>Le DMA avertit ensuite le périphérique qui a + demandé le transfert que celui-ci commence, en positionnant le + signal -DACK, ou, dans le cas du contrôleur de disquette, le + signal -DACK2.</para> + + <para>C'est maintenant au contrôleur de disquette de placer l'octet + à transférer sur les lignes de données du bus. A + moins qu'il ne faille plus de temps au contrôleur de disquette + pour placer l'octet de donnée sur le bus (et dans ce cas, il + prévient le DMA via le signal READY), le DMA attend un cycle de + son horloge, puis désactive les signaux -MEMW et -IOR, de + façon à ce que la mémoire bascule et stocke + l'octet qui se trouve sur le bus, et que le contrôleur de + disquette sache que l'octet a été + transféré.</para> + + <para>Comme le DMA ne transfère qu'un seul octet à la fois + et par cycle, le FDC désactive maintenant le signal DRQ2, de + sorte que le DMA sache que l'on n'a plus besoin de ses services. Le + DMA désactive alors le signal -DACK2, pour avertir le FDC de + ne plus mettre de donnée sur le bus.</para> + + <para>Le DMA regarde alors si les autres canaux DMA ont des + opérations à effectuer. Si aucun des canaux n'a sa ligne + DRQ active, le travail du contrôleur DMA est terminé et il + positionne ses signaux -MEMR, -MEMW, -IOR, -IOW et d'adresse dans un + état intermédiaire.</para> + + <para>Pour finir, le DMA désactive le signal HRQ. Le CPU s'en + aperçoit et désactive le signal HOLDA puis active ses + signaux -MEMR, -MEMW, -IOR, -IOW et d'adresse et enfin reprend + l'exécution des instructions et ses accès à la + mémoire et aux périphériques.</para> + + <para>Pour un secteur de disquette typique, le processus ci-dessus est + répété 512 fois, une fois pour chaque octet. Chaque + fois qu'un octet est transféré, le registre d'adresse du + DMA est incrémenté et le compteur du DMA qui indique + combien d'octets ont été transférés, + décrémenté.</para> + + <para>Quand le compteur arrive à zéro, le DMA positionne le + signal EOP, qui indique que son compteur est nul et qu'aucune autre + donnée ne sera transférée tant que le + contrôleur DMA n'aura pas été reprogrammé par + le CPU. Cet événement est aussi appelé + “fin de décompte” - <foreignphrase>Terminal + Count (TC)</foreignphrase>. Il n'y a qu'un seul signal EOP, et comme il + ne peut y avoir qu'un seul canal DMA actif à un moment + donné, c'est nécessairement le canal DMA actuellement + actif qui vient de terminer sa tâche.</para> + + <para>Si un périphérique veut générer une + interruption à la fin du transfert d'un tampon, il peut tester si + les signaux -DACKn et EOP sont simultanément actifs. Quand cela + se produit, c'est que le DMA ne transférera plus d'autre + donnée pour ce périphérique sans intervention du + CPU. Le périphérique peut alors positionner un de ses + signaux d'interruption pour avertir le CPU. Dans l'architecture PC, le + circuit DMA lui-même ne peut pas générer + d'interruption. Le périphérique et l'électronique + associée sont responsables de la génération de + toutes les interruptions qui peuvent intervenir. Il est en + conséquence impossible d'avoir des périphériques + qui utilisent le DMA mais n'emploient pas d'interruptions.</para> + + <para>Il est important de comprendre que bien que le CPU laisse toujours + l'accès au bus au DMA quand le DMA effectue sa demande, cette + action est transparente pour les applications et pour le + système d'exploitation, hormis pour le petit temps + supplémentaire que met le processeur agrave; exécuter des + instructions quand le DMA est actif. En conséquence, le + processeur doit interroger les périphériques, les + registres du DMA ou recevoir une interruption du + périphérique pour être sûr qu'un transfert DMA + est terminé.</para> + </sect2> + + <sect2> + <title>Les registres de page DMA et la limite d'adressage de 16Mo</title> + + <para>Vous avez peut-être déjà remarqué qu'au + lieu de prendre pour adresse la valeur <literal>0x00123456</literal>, le + DMA utilise la valeur <literal>0x3456</literal>. Cela mérite + quelques explications.</para> + + <para>Quand l'IBM PC d'origine a été conçu, IBM a + choisi d'utiliser à la fois des circuits contrôleur DMA et + contrôleur d'interruptions prévus pour le 8085, un + processeur 8-bits avec un espace adressable sur 16 bits (64Ko). Comme + l'IBM PC supportait plus de 64Ko de mémoire, il fallait trouver + le moyen de permettre au DMA de lire ou d'écrire à des + emplacements mémoire au-delà de la limite de 64Ko. Pour + résoudre le problème, IBM a ajouté un registre + externe pour chaque canal DMA qui reçoit les bits de poids fort + de l'adresse où lire ou écrire. Chaque fois + qu'un canal DMA est actif, le contenu de ce registre est écrit + sur le bus d'adresse et y reste jusqu'à ce que l'opération + DMA pour ce canal soit terminée. IBM a appelé ces + registres “registres de page”.</para> + + <para>Dans notre exemple précédent donc, le DMA mettrait la + partie <literal>0x3456</literal> de l'adresse sur le bus et le registre + de page du canal DMA 2 mettrait la partie <literal>0x0012xxxx</literal> + sur le bus. Ensemble, ces deux valeurs constituent l'adresse + mémoire complète de l'accès.</para> + + <para>Comme le registre de page est indépendant du circuit DMA, la + zone mémoire où lire ou écrire ne doit pas franchir + la limite d'une plage de 64Ko. Par exemple, si le DMA accède + à l'adresse <literal>0xffff</literal>, après transfert, le + DMA incrémente le registre d'adresse et accède à + l'octet d'adresse suivante <literal>0x0000</literal> et non + <literal>0x10000</literal>. Ce n'est probablement pas le résultat + attendu.</para> + + <note> + <para>Les limites “physiques” de 64Ko ne doivent pas + être confondues avec les “segments” de 64Ko du mode + 8086, qui sont définis par l'addition d'un registre de segment + et d'un registre de déplacement. Les registres de page ne + peuvent pas recouvrir d'adresses communes car ils font l'objet d'un + <literal>OU</literal> logique avec l'adresse basse.</para> + </note> + + <para>Pour compliquer encore les choses, les registres externes d'adresse + DMA du PC/AT n'ont que 8 bits, ce qui nous donne 8+16=24 bits, ce qui + signifie que le DMA ne peut adresser la mémoire qu'entre 0 et + 16Mo. Sur les ordinateurs plus récents, qui permettent d'utiliser + plus de 16Mo de mémoire, le DMA compatible PC standard ne peut + adresser au-delà de 16Mo.</para> + + <para>Pour contourner cette restriction, les systèmes + d'exploitation réservent une zone de mémoire en + dessous de 16Mo qui n'inclue pas une limite de plage de 64 Ko. Le DMA + est alors programmé pour effectuer les transferts dans cette zone + tampon. Une fois que ce transfert est terminé, le système + d'exploitation copie alors les données à l'adresse + où elles doivent effectivement être stockées.</para> + + <para>Pour transférer des données d'une adresse + au-delà de 16Mo vers un périphérique utilisant le + DMA, les données doivent d'abord être copiées dans + un tampon en dessous de 16Mo, et de là, le DMA peut les + transférer au périphérique. Sous FreeBSD, ces + tampons réservés sont appelés “tampons + à rebonds” - <foreignphrase>Bounce + Buffers</foreignphrase>. Dans le monde MS-DOS, ils sont parfois + appelés “tampons + intelligents” - <foreignphrase>Smart + Buffers</foreignphrase>.</para> + + <note> + <para>Une nouvelle implémentation du 8237, appelée 82374, + possède des registres de page de 16 bits, ce qui permet + l'adressage 32 bits, sans avoir à utiliser de tampon à + rebonds.</para> + </note> + </sect2> + + <sect2> + <title>Modes opératoires et configurations du DMA</title> + + <para>Le DMA 8237 peut opérer selon différents modes. Les + principaux sont :</para> + + <variablelist> + <varlistentry> + <term>Simple</term> + + <listitem> + <para>Un seul octet (ou mot) est transféré. Le DMA + doit libérer et réobtenir le bus pour chaque nouvel + octet. Ce mode est habituellement utilisé par les + périphériques qui ne peuvent transférer + immédiatement un bloc entier de données. Le + périphérique fait appel au DMA chaque fois qu'il est + prêt à un nouveau transfert.</para> + + <para>Le contrôleur de disquette standard des compatibles PC + (NEC 765) n'a qu'un tampon d'un octet. Il utilise donc ce + mode.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Bloc/A la Demande</term> + + <listitem> + <para>Une fois que le DMA a eu le contrôle du bus + système, il transfère un bloc entier de + données, de 64Ko au plus. Si le périphérique + a besoin de plus de temps, il peut activer le signal READY pour + suspendre brièvement le transfert. READY doit être + utilisé parcimonieusement et, pour un + périphérique lent, il faut plutôt utiliser le + mode simple.</para> + + <para>Le différence entre les modes Bloc et A la Demande est + que dès qu'un transfert Bloc est entamé, il se + poursuit jusqu'à ce que le compteur d'octets + transférés atteigne la valeur zéro. Le signal + DRQ ne doit être actif que jusqu'à ce que le signal + -DACK soit activé. En mode A la Demande, les octets sont + transférés jusqu'à ce que le signal DRQ soit + désactivé, le DMA interrompt alors le transfert et + rend le contrôle du bus au CPU. Quand le signal DRQ est + ensuite réactivé, le transfert reprend là + où il a été interrompu.</para> + + <para>Les anciens contrôleurs de disques durs utilisaient le + mode A la Demande, jusqu'à ce que la puissance des + processeurs augmente au point qu'il soit plus efficace de + transférer les données en utilisant le CPU, en + particulier lorsque les adresses mémoire utilisées + pour le transfert se situent au-delà de la limite des + 16Mo.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Cascade</term> + + <listitem> + <para>Ce mécanisme permet à un canal DMA de + prendre le contrôle du bus, mais c'est ensuite le + périphérique associé et non le DMA qui est + chargé de paramétrer le bus d'adresse. Ce mode est + aussi utilisé pour mettre en oeuvre une technique + appelée “Maîtrise du + bus” - <foreignphrase>Bus + Mastering</foreignphrase>.</para> + + <para>Quand un canal DMA en mode Cascade reçoit le + contrôle du bus, le DMA ne met pas les adresses et les + signaux de contrôle des entrées/sorties sur le bus + comme le DMA le fait normalement quand il est actif. Au lieu de + cela, il positionne uniquement le signal -DACK pour le canal + DMA actif.</para> + + <para>C'est au périphérique relié + à ce canal DMA de fournir l'adresse et les signaux de + contrôle du bus. Le périphérique + contrôle alors intégralement le bus système + et peut effectuer des opérations de lecture et/ou + d'écriture à n'importe quelle adresse en dessous de + 16 Mo. Quand le périphérique en a terminé, + il désactive le signal DRQ et le contrôleur DMA peut + alors rendre le main au processeur ou à un autre canal + DMA.</para> + + <para>Le mode Cascade peut servir à mettre plusieurs + contrôleurs DMA en série, et c'est exactement + à cela que sert le canal DMA 4 dans l'architecture PC. + Quand un périphérique demande le bus sur un des + canaux DMA 0, 1, 2 ou 3, le contrôleur DMA esclave active + le signal HLDREQ, mais ce dernier est en fait relié + à la ligne DRQ4 du contrôleur DMA primaire et non au + processeur. Le contrôleur DMA primaire, pensant qu'il a + un transfert à effectuer sur le canal 4, demande le bus au + processeur avec le signal HLDREQ. Une fois que le CPU lui a + octroyé le bus, le signal -DACK4 est positionné et + ce dernier est en fait relié au signal HLDA du + contrôleur DMA esclave. Le contrôleur DMA esclave + transfère alors des données pour le canal DMA + (0, 1, 2 ou 3) qui l'a demandé ou bien confie le bus + à un périphérique qui veut en avoir la + maîtrise, un contrôleur SCSI, par exemple.</para> + + <para>A cause de ce câblage, seuls les canaux DMA 0, 1, 2, 3, + 5, 6 et 7 peuvent être utilisés par des + périphériques sur les systèmes PC/AT.</para> + + <note> + <para>Le canal DMA 0 était réservé pour les + opérations de rafraîchissement sur les premiers + IBM PC, mais est habituellement disponible pour les + périphériques sur les systèmes + récents.</para> + </note> + + <para>Quand un périphérique prend le contrôle du + bus, il faut qu'il transfère des données de ou vers + la mémoire de façon constante, tant qu'il garde le + contrôle du bus système. Si le + périphérique ne peut pas le faire, il faut qu'il + libère fréquemment le bus, pour que le + système puisse rafraîchir la mémoire.</para> + + <para>La RAM dynamique utilisée par tous les PCs doit + être rafraîchie fréquemment pour que les bits + stockés par ses composants restent + “chargés”. La RAM dynamique est essentiellement constituée de millions de condensateurs représentant + chacun un bit de donnée. Ces condensateurs sont + chargés pour représenter un <literal>1</literal> ou + déchargés pour représenter un + <literal>0</literal>. Comme tous les condensateurs fuient, il faut + les recharger à intervalles réguliers pour conserver + les valeurs <literal>1</literal>. Les circuits de mémoire + s'occupent en fait de la tâche de recharger les cases + mémoire appropriées, mais le reste du système + doit leur dire quand le faire, pour que cela n'interfère + pas avec les accès normaux du système à la + mémoire. Si l'ordinateur ne peut pas rafraîchir la + mémoire, le contenu de cette dernière sera corrompu + en quelques millisecondes.</para> + + <para>Comme les cycles de lecture et d'écriture en + mémoire “comptent” pour des cycles de + rafraîchissement (un cycle de rafraîchissement de la + RAM dynamique est en fait un cycle de lecture incomplet), tant que + le périphérique continue de lire ou d'écrire + des données en séquence en mémoire, cette + opération rafraîchit la totalité de la + mémoire.</para> + + <para>La prise de contrôle du bus est utilisée par les + interfaces SCSI et d'autres contrôleurs de + périphérique de haute performance.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Autoinitialisation</term> + + <listitem> + <para>Dans ce mode, le DMA opère des transferts d'octet, de + bloc, ou à la demande mais, lorsque le compteur de + transferts du DMA arrive à zéro, le compteur et + l'adresse sont réinitialisés avec les valeurs + initialement programmées pour le canal DMA. Cela signifie + que tant que le périphérique demande des transferts, + ils lui sont accordés. C'est au processeur de placer les + données à l'avance dans le tampon fixe d'où + le DMA les déplacera lors d'opérations de sortie, et + de lire les données du tampon avant que le DMA n'y + réécrive lors d'opérations + d'entrée.</para> + + <para>Cette technique est couramment utilisée par les + périphériques audio qui n'ont qu'un petit ou pas + de tampon matériel pour les échantillons. + Il y a occupation supplémentaire du processeur pour + gérer ce tampon “circulaire” mais, dans + certains cas, c'est la seule façon d'éliminer le + temps de latence qui intervient lorsque le compteur du DMA + arrive à zéro et que le DMA arrête le + transfert jusqu'à ce qu'il soit reprogrammé.</para> + </listitem> + </varlistentry> + </variablelist> + </sect2> + + <sect2> + <title>Programmation du DMA</title> + + <para>Le canal DMA qui va être programmé doit toujours + être “masqué” avant de le paramétrer. + Cela parce que le matériel pourrait inopinément activer + le signal DRQ pour ce canal avant que tous les paramètres n'aient + été chargés ou mis à jour.</para> + + <para>Une fois masqué, le processeur doit préciser le sens + du transfert (de la mémoire vers le périphérique + ou du périphérique vers la mémoire), le mode + d'opération du DMA (Simple, Bloc, A la Demande, Cascade, etc.) + qui sera utilisé pour le transfert et, pour finir, l'adresse et + le volume de données à transférer. La + quantité de données à indiquer est + inférieure d'un octet à celle que vous voulez que le DMA + transfère. Le LSB (octet bas) et le MSB (octet haut) de l'adresse + et de la quantité sont écrites sur le même port + d'entrée/sortie 8 bits, il y a donc un autre + port sur lequel il faut écrire d'abord pour s'assurer que le + DMA comprenne le premier octet comme le LSB et le second comme le MSB + de la quantité et de l'adresse.</para> + + <para>Enfin, il faut mettre à jour le registre de page, qui est + externe au DMA et est accessible via un autre jeu de ports + d'entrée/sortie.</para> + + <para>Une fois que toutes ces valeurs sont définies, le canal DMA + peut être démasqué. Le canal DMA en question est + maintenant considéré “armé”, et + répondra quand la ligne DRQ correspondante sera + activée.</para> + + <para>Reportez-vous à un manuel documentant le matériel + pour connaître les détails de la programmation du 8237. + Vous aurez aussi besoin de la carte des ports d'entré/sortie des + systèmes PC, qui donne les adresses des ports du DMA et du + registre de page. Vous trouverez ci-dessous une table donnant une + description complète de ces ports.</para> + </sect2> + + <sect2> + <title>Ports DMA</title> + + <para>Les contrôleurs DMA sont situés sur les mêmes + ports d'entrée/sortie sur tous les systèmes de type IBM-PC + et PC/AT. La table ci-dessous en donne la liste complète. Les + ports affectés au deuxième contrôleur DMA ne sont + pas définis sur les systèmes non-AT.</para> + + <sect3> + <title>0x00–0x0f Contrôleur numéro 1 (Canaux 0, 1, 2 + et 3)</title> + + <para>Registres d'adresse et compteur DMA</para> + + <informaltable frame="none"> + <tgroup cols="3"> + <tbody> + <row> + <entry>0x00</entry> + <entry>écriture</entry> + <entry>Adresse initiale Canal 0</entry> + </row> + + <row> + <entry>0x00</entry> + <entry>lecture</entry> + <entry>Adresse courante Canal 0</entry> + </row> + + <row> + <entry>0x01</entry> + <entry>écriture</entry> + <entry>Compteur initial Canal 0</entry> + </row> + + <row> + <entry>0x01</entry> + <entry>lecture</entry> + <entry>Compteur courant Canal 0</entry> + </row> + + <row> + <entry>0x02</entry> + <entry>écriture</entry> + <entry>Adresse initiale Canal 1</entry> + </row> + + <row> + <entry>0x02</entry> + <entry>lecture</entry> + <entry>Adresse courante Canal 1</entry> + </row> + + <row> + <entry>0x03</entry> + <entry>écriture</entry> + <entry>Compteur initial Canal 1</entry> + </row> + + <row> + <entry>0x03</entry> + <entry>lecture</entry> + <entry>Compteur courant Canal 1</entry> + </row> + + <row> + <entry>0x04</entry> + <entry>écriture</entry> + <entry>Adresse initiale Canal 2</entry> + </row> + + <row> + <entry>0x04</entry> + <entry>lecture</entry> + <entry>Adresse courante Canal 2</entry> + </row> + + <row> + <entry>0x05</entry> + <entry>écriture</entry> + <entry>Compteur initial Canal 2</entry> + </row> + + <row> + <entry>0x05</entry> + <entry>lecture</entry> + <entry>Compteur courant Canal 2</entry> + </row> + + <row> + <entry>0x06</entry> + <entry>écriture</entry> + <entry>Adresse initiale Canal 3</entry> + </row> + + <row> + <entry>0x06</entry> + <entry>lecture</entry> + <entry>Adresse courante Canal 3</entry> + </row> + + <row> + <entry>0x07</entry> + <entry>écriture</entry> + <entry>Compteur initial Canal 3</entry> + </row> + + <row> + <entry>0x07</entry> + <entry>lecture</entry> + <entry>Compteur courant Canal 3</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para>Registres de commande du DMA</para> + + <informaltable frame="none"> + <tgroup cols="3"> + <tbody> + <row> + <entry>0x08</entry> + <entry>écriture</entry> + <entry>Registre de commande</entry> + </row> + + <row> + <entry>0x08</entry> + <entry>lecture</entry> + <entry>Registre d'état</entry> + </row> + + <row> + <entry>0x09</entry> + <entry>écriture</entry> + <entry>Registre de requête</entry> + </row> + + <row> + <entry>0x09</entry> + <entry>lecture</entry> + <entry>-</entry> + </row> + + <row> + <entry>0x0a</entry> + <entry>écriture</entry> + <entry>Registre de masque de bit</entry> + </row> + + <row> + <entry>0x0a</entry> + <entry>lecture</entry> + <entry>-</entry> + </row> + + <row> + <entry>0x0b</entry> + <entry>écriture</entry> + <entry>Registre de mode</entry> + </row> + + <row> + <entry>0x0b</entry> + <entry>lecture</entry> + <entry>-</entry> + </row> + + <row> + <entry>0x0c</entry> + <entry>écriture</entry> + <entry>Remise à zéro du LSB/MSB de la + bascule</entry> + </row> + + <row> + <entry>0x0c</entry> + <entry>lecture</entry> + <entry>-</entry> + </row> + + <row> + <entry>0x0d</entry> + <entry>écriture</entry> + <entry>Remise à zéro/réinitialisation + maître</entry> + </row> + + <row> + <entry>0x0d</entry> + <entry>lecture</entry> + <entry>Registre temporaire (non disponible sur les versions + récentes)</entry> + </row> + + <row> + <entry>0x0e</entry> + <entry>écriture</entry> + <entry>Registre de remise à zéro du masque</entry> + </row> + + <row> + <entry>0x0e</entry> + <entry>lecture</entry> + <entry>-</entry> + </row> + + <row> + <entry>0x0f</entry> + <entry>écriture</entry> + <entry>Registre d'écriture de tous les bits du + masque</entry> + </row> + + <row> + <entry>0x0f</entry> + <entry>lecture</entry> + <entry>Registre de lecture de tous les bits du masque (Intel + 82374 uniquement)</entry> + </row> + </tbody> + </tgroup> + </informaltable> + </sect3> + + <sect3> + <title>0xc0–0xdf Contrôleur numéro 2 (Canaux 4, 5, 6 + et 7)</title> + + <para>Registres d'adresse et compteur DMA</para> + + <informaltable frame="none"> + <tgroup cols="3"> + <tbody> + <row> + <entry>0xc0</entry> + <entry>ériture</entry> + <entry>Adresse initiale Canal 4</entry> + </row> + + <row> + <entry>0xc0</entry> + <entry>lecture</entry> + <entry>Adresse courante Canal 4</entry> + </row> + + <row> + <entry>0xc2</entry> + <entry>écriture</entry> + <entry>Compteur initial Canal 4</entry> + </row> + + <row> + <entry>0xc2</entry> + <entry>lecture</entry> + <entry>Compteur courant Canal 4</entry> + </row> + + <row> + <entry>0xc4</entry> + <entry>écriture</entry> + <entry>Adresse initiale Canal 5</entry> + </row> + + <row> + <entry>0xc4</entry> + <entry>lecture</entry> + <entry>Adresse courante Canal 5</entry> + </row> + + <row> + <entry>0xc6</entry> + <entry>écriture</entry> + <entry>Compteur initial Canal 5</entry> + </row> + + <row> + <entry>0xc6</entry> + <entry>lecture</entry> + <entry>Compteur courant Canal 5</entry> + </row> + + <row> + <entry>0xc8</entry> + <entry>écriture</entry> + <entry>Adresse initiale Canal 6</entry> + </row> + + <row> + <entry>0xc8</entry> + <entry>lecture</entry> + <entry>Adresse courante Canal 6</entry> + </row> + + <row> + <entry>0xca</entry> + <entry>écriture</entry> + <entry>Compteur initial Canal 6</entry> + </row> + + <row> + <entry>0xca</entry> + <entry>lecture</entry> + <entry>Compteur courant Canal 6</entry> + </row> + + <row> + <entry>0xcc</entry> + <entry>écriture</entry> + <entry>Adresse initiale Canal 7</entry> + </row> + + <row> + <entry>0xcc</entry> + <entry>lecture</entry> + <entry>Adresse courante Canal 7</entry> + </row> + + <row> + <entry>0xce</entry> + <entry>écriture</entry> + <entry>Compteur initial Canal 7</entry> + </row> + + <row> + <entry>0xce</entry> + <entry>lecture</entry> + <entry>Compteur courant Canal 7</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para>Registres de commande du DMA</para> + + <informaltable frame="none"> + <tgroup cols="3"> + <tbody> + <row> + <entry>0xd0</entry> + <entry>écriture</entry> + <entry>Registre de commande</entry> + </row> + + <row> + <entry>0xd0</entry> + <entry>lecture</entry> + <entry>Registre d'état</entry> + </row> + + <row> + <entry>0xd2</entry> + <entry>écriture</entry> + <entry>Registre de requête</entry> + </row> + + <row> + <entry>0xd2</entry> + <entry>lecture</entry> + <entry>-</entry> + </row> + + <row> + <entry>0xd4</entry> + <entry>écriture</entry> + <entry>Registre de masque de bit</entry> + </row> + + <row> + <entry>0xd4</entry> + <entry>lecture</entry> + <entry>-</entry> + </row> + + <row> + <entry>0xd6</entry> + <entry>écriture</entry> + <entry>Registre de mode</entry> + </row> + + <row> + <entry>0xd6</entry> + <entry>lecture</entry> + <entry>-</entry> + </row> + + <row> + <entry>0xd8</entry> + <entry>écriture</entry> + <entry>Remise à zéro du LSB/MSB de la + bascule</entry> + </row> + + <row> + <entry>0xd8</entry> + <entry>lecture</entry> + <entry>-</entry> + </row> + + <row> + <entry>0xda</entry> + <entry>écriture</entry> + <entry>Remise à zéro/réinitialisation + maître</entry> + </row> + + <row> + <entry>0xda</entry> + <entry>lecture</entry> + <entry>Registre temporaire (non disponible sur l'Intel + 82374)</entry> + </row> + + <row> + <entry>0xdc</entry> + <entry>écriture</entry> + <entry>Registre de remise à zéro du masque</entry> + </row> + + <row> + <entry>0xdc</entry> + <entry>lecture</entry> + <entry>-</entry> + </row> + + <row> + <entry>0xde</entry> + <entry>écriture</entry> + <entry>Registre d'écriture de tous les bits du + masque</entry> + </row> + + <row> + <entry>0xdf</entry> + <entry>lecture</entry> + <entry>Registre de lecture de tous les bits du masque (Intel + 82374 uniquement)</entry> + </row> + </tbody> + </tgroup> + </informaltable> + </sect3> + + <sect3> + <title>0x80–0x9f Registres de page du DMA</title> + + <informaltable frame="none"> + <tgroup cols="3"> + <tbody> + <row> + <entry>0x87</entry> + <entry>lecture/écriture</entry> + <entry>Canal 0 octet bas (23-16) du registre de page</entry> + </row> + + <row> + <entry>0x83</entry> + <entry>lecture/écriture</entry> + <entry>Canal 1 octet bas (23-16) du registre de page</entry> + </row> + + <row> + <entry>0x81</entry> + <entry>lecture/écriture</entry> + <entry>Canal 2 octet bas (23-16) du registre de page</entry> + </row> + + <row> + <entry>0x82</entry> + <entry>lecture/écriture</entry> + <entry>Canal 3 octet bas (23-16) du registre de page</entry> + </row> + + <row> + <entry>0x8b</entry> + <entry>lecture/écriture</entry> + <entry>Canal 5 octet bas (23-16) du registre de page</entry> + </row> + + <row> + <entry>0x89</entry> + <entry>lecture/écriture</entry> + <entry>Canal 6 octet bas (23-16) du registre de page</entry> + </row> + + <row> + <entry>0x8a</entry> + <entry>lecture/écriture</entry> + <entry>Canal 7 octet bas (23-16) du registre de page</entry> + </row> + + <row> + <entry>0x8f</entry> + <entry>lecture/écriture</entry> + <entry>Octet bas rafraîchissement de page</entry> + </row> + </tbody> + </tgroup> + </informaltable> + </sect3> + + <sect3> + <title>0x400–0x4ff Registres du DMA Etendu 82374</title> + + <para>Le composant système EISA - <foreignphrase>EISA + System Component (ESC)</foreignphrase> - Intel 82374 est + apparu au début de 1996 et comporte un contrôleur DMA + qui fournit un sur-ensemble des fonctionnalités du 8237 en + même temps que d'autres composants périphériques + compatibles PC de base sur une seule puce. Ce composant est + destiné à la fois aux plates-formes EISA et PCI et + offre des fonctionnalités DMA récentes telles que + dispersion/regroupement, tampons en anneau et accès direct + via le DMA à la totalité de l'espace d'adressage sur 32 + bits.</para> + + <para>Lorsque ces possibilités sont utilisées, il faut + aussi fournir le code qui procure les mêmes + fonctionnalités aux ordinateurs compatibles PC des 16 + années précédentes. Pour des raisons de + compatibilité, il faut programmer certains registres du 82374 + <emphasis>après</emphasis> avoir programmé les registres + traditionnels du 8237, pour chaque transfert. Ecrire dans un registre + 8237 traditionnel remet à zéro certains registres + étendus du 82374 de façon à assurer la + rétro-compatibilité du logiciel.</para> + + <informaltable frame="none"> + <tgroup cols="3"> + <tbody> + <row> + <entry>0x401</entry> + <entry>lecture/écriture</entry> + <entry>Canal 0 octet haut (23-16) du compteur de mots</entry> + </row> + + <row> + <entry>0x403</entry> + <entry>lecture/écriture</entry> + <entry>Canal 1 octet haut (23-16) du compteur de mots</entry> + </row> + + <row> + <entry>0x405</entry> + <entry>lecture/écriture</entry> + <entry>Canal 2 octet haut (23-16) du compteur de mots</entry> + </row> + + <row> + <entry>0x407</entry> + <entry>lecture/écriture</entry> + <entry>Canal 3 octet haut (23-16) du compteur de mots</entry> + </row> + + <row> + <entry>0x4c6</entry> + <entry>lecture/écriture</entry> + <entry>Canal 5 octet haut (23-16) du compteur de mots</entry> + </row> + + <row> + <entry>0x4ca</entry> + <entry>lecture/écriture</entry> + <entry>Canal 6 octet haut (23-16) du compteur de mots</entry> + </row> + + <row> + <entry>0x4ce</entry> + <entry>lecture/écriture</entry> + <entry>Canal 7 octet haut (23-16) du compteur de mots</entry> + </row> + + <row> + <entry>0x487</entry> + <entry>lecture/écriture</entry> + <entry>Canal 0 octet haut (23-16) du registre de page</entry> + </row> + + <row> + <entry>0x483</entry> + <entry>lecture/écriture</entry> + <entry>Canal 1 octet haut (23-16) du registre de page</entry> + </row> + + <row> + <entry>0x481</entry> + <entry>lecture/écriture</entry> + <entry>Canal 2 octet haut (23-16) du registre de page</entry> + </row> + + <row> + <entry>0x482</entry> + <entry>lecture/écriture</entry> + <entry>Canal 3 octet haut (23-16) du registre de page</entry> + </row> + + <row> + <entry>0x48b</entry> + <entry>lecture/écriture</entry> + <entry>Canal 5 octet haut (23-16) du registre de page</entry> + </row> + + <row> + <entry>0x489</entry> + <entry>lecture/écriture</entry> + <entry>Canal 6 octet haut (23-16) du registre de page</entry> + </row> + + <row> + <entry>0x48a</entry> + <entry>lecture/écriture</entry> + <entry>Canal 7 octet haut (23-16) du registre de page</entry> + </row> + + <row> + <entry>0x48f</entry> + <entry>lecture/écriture</entry> + <entry>Octet haut rafraîchissement de page</entry> + </row> + + <row> + <entry>0x4e0</entry> + <entry>lecture/écriture</entry> + <entry>Canal 0 registre Stop (bits 7-2)</entry> + </row> + + <row> + <entry>0x4e1</entry> + <entry>lecture/écriture</entry> + <entry>Canal 0 registre Stop (bits 15-8)</entry> + </row> + + <row> + <entry>0x4e2</entry> + <entry>lecture/écriture</entry> + <entry>Canal 0 registre Stop (bits 23-16)</entry> + </row> + + <row> + <entry>0x4e4</entry> + <entry>lecture/écriture</entry> + <entry>Canal 1 registre Stop (bits 7-2)</entry> + </row> + + <row> + <entry>0x4e5</entry> + <entry>lecture/écriture</entry> + <entry>Canal 1 registre Stop (bits 15-8)</entry> + </row> + + <row> + <entry>0x4e6</entry> + <entry>lecture/écriture</entry> + <entry>Canal 1 registre Stop (bits 23-16)</entry> + </row> + + <row> + <entry>0x4e8</entry> + <entry>lecture/écriture</entry> + <entry>Canal 2 registre Stop (bits 7-2)</entry> + </row> + + <row> + <entry>0x4e9</entry> + <entry>lecture/écriture</entry> + <entry>Canal 2 registre Stop (bits 15-8)</entry> + </row> + + <row> + <entry>0x4ea</entry> + <entry>lecture/écriture</entry> + <entry>Canal 2 registre Stop (bits 23-16)</entry> + </row> + + <row> + <entry>0x4ec</entry> + <entry>lecture/écriture</entry> + <entry>Canal 3 registre Stop (bits 7-2)</entry> + </row> + + <row> + <entry>0x4ed</entry> + <entry>lecture/écriture</entry> + <entry>Canal 3 registre Stop (bits 15-8)</entry> + </row> + + <row> + <entry>0x4ee</entry> + <entry>lecture/écriture</entry> + <entry>Canal 3 registre Stop (bits 23-16)</entry> + </row> + + <row> + <entry>0x4f4</entry> + <entry>lecture/écriture</entry> + <entry>Canal 5 registre Stop (bits 7-2)</entry> + </row> + + <row> + <entry>0x4f5</entry> + <entry>lecture/écriture</entry> + <entry>Canal 5 registre Stop (bits 15-8)</entry> + </row> + + <row> + <entry>0x4f6</entry> + <entry>lecture/écriture</entry> + <entry>Canal 5 registre Stop (bits 23-16)</entry> + </row> + + <row> + <entry>0x4f8</entry> + <entry>lecture/écriture</entry> + <entry>Canal 6 registre Stop (bits 7-2)</entry> + </row> + + <row> + <entry>0x4f9</entry> + <entry>lecture/écriture</entry> + <entry>Canal 6 registre Stop (bits 15-8)</entry> + </row> + + <row> + <entry>0x4fa</entry> + <entry>lecture/écriture</entry> + <entry>Canal 6 registre Stop (bits 23-16)</entry> + </row> + + <row> + <entry>0x4fc</entry> + <entry>lecture/écriture</entry> + <entry>Canal 7 registre Stop (bits 7-2)</entry> + </row> + + <row> + <entry>0x4fd</entry> + <entry>lecture/écriture</entry> + <entry>Canal 7 registre Stop (bits 15-8)</entry> + </row> + + <row> + <entry>0x4fe</entry> + <entry>lecture/écriture</entry> + <entry>Canal 7 registre Stop (bits 23-16)</entry> + </row> + + <row> + <entry>0x40a</entry> + <entry>écriture</entry> + <entry>Canaux 0-3 registre de mode chaînage</entry> + </row> + + <row> + <entry>0x40a</entry> + <entry>lecture</entry> + <entry>Registre d'état d'interruption du canal</entry> + </row> + + <row> + <entry>0x4d4</entry> + <entry>écriture</entry> + <entry>Canaux 4-7 registre de mode chaînage</entry> + </row> + + <row> + <entry>0x4d4</entry> + <entry>lecture</entry> + <entry>Etat du mode chaînage</entry> + </row> + + <row> + <entry>0x40c</entry> + <entry>lecture</entry> + <entry>Registre de contrôle d'expiration du tampon de + chaînage</entry> + </row> + + <row> + <entry>0x410</entry> + <entry>écriture</entry> + <entry>Canal 0 registre de commande + dispersion/regroupement</entry> + </row> + + <row> + <entry>0x411</entry> + <entry>écriture</entry> + <entry>Canal 1 registre de commande + dispersion/regroupement</entry> + </row> + + <row> + <entry>0x412</entry> + <entry>écriture</entry> + <entry>Canal 2 registre de commande + dispersion/regroupement</entry> + </row> + + <row> + <entry>0x413</entry> + <entry>écriture</entry> + <entry>Canal 3 registre de commande + dispersion/regroupement</entry> + </row> + + <row> + <entry>0x415</entry> + <entry>écriture</entry> + <entry>Canal 5 registre de commande + dispersion/regroupement</entry> + </row> + + <row> + <entry>0x416</entry> + <entry>écriture</entry> + <entry>Canal 6 registre de commande + dispersion/regroupement</entry> + </row> + + <row> + <entry>0x417</entry> + <entry>écriture</entry> + <entry>Canal 7 registre de commande + dispersion/regroupement</entry> + </row> + + <row> + <entry>0x418</entry> + <entry>lecture</entry> + <entry>Canal 0 registre d'état + dispersion/regroupement</entry> + </row> + + <row> + <entry>0x419</entry> + <entry>lecture</entry> + <entry>Canal 1 registre d'état + dispersion/regroupement</entry> + </row> + + <row> + <entry>0x41a</entry> + <entry>lecture</entry> + <entry>Canal 2 registre d'état + dispersion/regroupement</entry> + </row> + + <row> + <entry>0x41b</entry> + <entry>lecture</entry> + <entry>Canal 3 registre d'état + dispersion/regroupement</entry> + </row> + + <row> + <entry>0x41d</entry> + <entry>lecture</entry> + <entry>Canal 5 registre d'état + dispersion/regroupement</entry> + </row> + + <row> + <entry>0x41e</entry> + <entry>lecture</entry> + <entry>Canal 6 registre d'état + dispersion/regroupement</entry> + </row> + + <row> + <entry>0x41f</entry> + <entry>lecture</entry> + <entry>Canal 7 registre d'état + dispersion/regroupement</entry> + </row> + + <row> + <entry>0x420-0x423</entry> + <entry>lecture/écriture</entry> + <entry>Canal 0 registre de pointeur sur le table de descripteurs + dispersion/regroupement</entry> + </row> + + <row> + <entry>0x424-0x427</entry> + <entry>lecture/écriture</entry> + <entry>Canal 1 registre de pointeur sur le table de descripteurs + dispersion/regroupement</entry> + </row> + + <row> + <entry>0x428-0x42b</entry> + <entry>lecture/écriture</entry> + <entry>Canal 2 registre de pointeur sur le table de descripteurs + dispersion/regroupement</entry> + </row> + + <row> + <entry>0x42c-0x42f</entry> + <entry>lecture/écriture</entry> + <entry>Canal 3 registre de pointeur sur le table de descripteurs + dispersion/regroupement</entry> + </row> + + <row> + <entry>0x434-0x437</entry> + <entry>lecture/écriture</entry> + <entry>Canal 5 registre de pointeur sur le table de descripteurs + dispersion/regroupement</entry> + </row> + + <row> + <entry>0x438-0x43b</entry> + <entry>lecture/écriture</entry> + <entry>Canal 6 registre de pointeur sur le table de descripteurs + dispersion/regroupement</entry> + </row> + + <row> + <entry>0x43c-0x43f</entry> + <entry>lecture/écriture</entry> + <entry>Canal 7 registre de pointeur sur le table de descripteurs + dispersion/regroupement</entry> + </row> + </tbody> + </tgroup> + </informaltable> + </sect3> + </sect2> + </sect1> + + <sect1 id="internals-vm"> + <title>La gestion de mémoire virtuelle de FreeBSD</title> + + <para><emphasis>Contribution de &a.dillon;. 6 Février + 1999</emphasis></para> + + <sect2> + <title>Gestion de la mémoire + physique—<literal>vm_page_t</literal></title> + + <para>La mémoire physique est gérée page par page + via la structure <literal>vm_page_t</literal>. Les pages de + mémoire physique sont caractérisées par + l'emplacement de leurs structures <literal>vm_page_t</literal> + respectives dans l'une des queues de pagination.</para> + + <para>Une page peut être verrouillée, active, inactive, dans + le cache ou libre. Sauf lorsqu'elle est verrouillée, la page est + typiquement placée dans une queue représentée par + une liste à double chaînage décrivant l'état + dans lequel elle est. Les pages verrouillées n'appartiennent + à aucune queue.</para> + + <para>FreeBSD implément système de queues de pagination plus + sophistiqué pour les pages libres ou dans le cache, de + façon à mettre en oeuvre un algorithme de coloration des + pages. Chacun de ces états (libre, caché) met en oeuvre + des files d'attente multiples selon la taille des caches L1 et L2 du + processeur. Quand il faut allouer une nouvelle page, FreeBSD essaie d'en + obtenir une qui soit raisonnablement alignée du point de vue des + caches L1 et L2 selon le type d'objet en mémoire virtuelle pour + lequel la page est allouée.</para> + + <para>De plus, une page peut être retenue par un compteur + de référence, ou bloquée avec un compteur + d'utilisation. Le système de mémoire virtuelle + implémente aussi un état “verrouillage + ultime” lorsque la page utilise le bit PG_BUSY des drapeaux de + page.</para> + + <para>En termes généraux, chacune des queues de pagination + opère en mode LRU (moins récemment utilisé). Une + page est habituellement initialement placée dans l'état + actif ou verrouillé. Lorsqu'elle est verrouillée, la page + est normalement associée à une table de pages quelque + part. Le système de mémoire virtuelle + “viellit” les pages en parcourant les pages d'une queue de + pagination plus active de façon à les déplacer vers + une queue moins active. Les pages qui sont déplacées vers + le cache sont toujours associées à un objet en + mémoire virtuelle mais sont candidates à une + réutilisation immédiate. Les pages dans la queue libre + sont vraiment disponibles. FreeBSD essaie de minimiser le nombre de + pages dans la queue libre, mais il faut conserver un certain nombre de + pages réellement disponibles pour pouvoir gérer + l'allocation de pages lors d'interruptions.</para> + + <para>Si un processus essaie d'accéder à une page qui + n'existe pas dans sa table de pages mais existe dans une des queues de + pagination (la queue inactive ou celle du cache par exemple), il se + produit un défaut relativement peu pénalisant de + réactivation de page, qui fait que la page est + réactivée. Si la page n'existe nulle part en + mémoire, le processus doit attendre que la page soit + récupérée sur disque.</para> + + <para>FreeBSD optimise dynamiquement ses queues de pagination et essaie de + maintenir un ratio raisonnable entre les différentes queues de + même qu'entre les pages à jour et celles qui ne le sont + pas. Ce rééquilibrage est mis en oeuvre par le + démon de pagination et comprend le nettoyage des pages + dégradées (leur synchronisation avec la version en + arrière-plan), la surveillance des pages + référencées par des tâches actives (leur + repositionnement dans les queues LRU ou leur déplacement d'une + queue à une autre), la migration de pages entre queues lorsque + les queues sont déséquilibrées, et ainsi de suite. + Le système de mémoire virtuelle de FreeBSD accepte un + nombre raisonnable de défauts de réactivation de page afin + de savoir à quel point une page est active ou inactive. Cela + permet de prendre de meilleures décisions pour savoir quand + mettre à jour ou décharger une page sur disque.</para> + </sect2> + + <sect2> + <title>Le tampon cache + unifié—<literal>vm_object_t</literal></title> + + <para>FreeBSD implémente la notion d'“objet en mémoire + virtuelle” générique. Les objets en mémoire + virtuelle peuvent être associés à différents + types de mise en arrière-plan—non sauvegardé, + sauvegardé sur disque (<foreignphrase>swap</foreignphrase>), + sauvegardé sur un périphérique physique, ou + sauvegardé dans un fichier. Comme le système de fichiers + utilise les mêmes objets en mémoire virtuelle pour + gérer les informations de base relatives aux fichiers, le + résultat est un tampon cache unifié.</para> + + <para>Les objets en mémoire virtuelle peuvent être des objets + <emphasis>ombre - <foreignphrase>shadowed</foreignphrase></emphasis>, + c'est-à-dire qu'ils peuvent être empilés les uns au + dessus des autres. Par exemple, il peut y avoir un objet ombre + sauvegardé dans l'espace de <foreignphrase>swap</foreignphrase> + empilé sur un objet sauvegardé dans un fichier pour + implémenter une correspondance + <citerefentry><refentrytitle>mmap</refentrytitle> + <manvolnum>2</manvolnum></citerefentry> de type + <literal>MAP_PRIVATE</literal>. Ce type d'empilement est aussi + utilisé pour implémenter différents types de + partage, dont la copie sur écriture pour les espaces d'adressage + de processus fils (créés par + <citerefentry><refentrytitle>fork</refentrytitle> <manvolnum>2</manvolnum></citerefentry>.</para> + + <para>Il faut noter qu'un <literal>vm_page_t</literal> ne peut être + associé qu'à un seul objet en mémoire virtuelle + à la fois. Les objets ombre en mémoire + virtuelle implémentent le partage apparent de la même page + pour des instances multiples.</para> + </sect2> + + <sect2> + <title>Entrée/sortie sur le système de + fichiers—<literal>struct buf</literal></title> + + <para>Les objets en mémoire virtuelle sauvegardés via le + système de “vnodes”, tels que les objets + sauvegardés dans des fichiers, doivent généralement + maintenir eux-mêmes leurs informations d'état à + jour/périmé, indépendamment de l'idée que + s'en fait le système de mémoire virtuelle. Par exemple, + quand le système de mémoire virtuelle décide de + synchroniser une page physique avec sa version en arrière-plan, + il doit indiquer que la page est à jour avant qu'elle ne soit + effectivement écrite en arrière-plan. De plus, les + systèmes de fichiers doivent être capables de faire + correspondre des parties d'un fichier ou de méta-informations + sur un fichier avec l'interface entre la mémoire virtuelle et le + noyau, pour pouvoir travailler sur ces informations.</para> + + <para>Les entités qui servent à gérer cela sont + appelées tampons du système de fichiers, + <literal>struct buf</literal>s, ou encore <literal>bp</literal>s. Quand + un système de fichiers doit opérer sur une partie d'un + objet en mémoire virtuelle, il fait typiquement correspondre + une partie de l'objet à un <literal>struct buf</literal> puis + les pages du <literal>struct buf</literal> à l'interface entre + la mémoire virtuelle et le noyau. De même, les + entrées/sorties disque sont typiquement gérées en + faisant correspondre des parties des objets et des structures tampon + et en effectuent les entrées/sorties sur ces structures. Les + <literal>vm_page_t</literal>s sous-jacentes sont habituellement + monopolisées le temps des entrées/sorties. Les tampons du + système de fichiers ont leur propre notion d'occupation, ce qui + est utile pour le code des pilotes du système de fichiers, qui + travaille plutôt sur ces tampons que directement sur les pages de + la mémoire virtuelle.</para> + + <para>FreeBSD réserve une quantité limitée de + l'interface mémoire virtuelle du noyau pour les correspondances + avec les <literal>struct buf</literal>s, mais il faut garder à + l'esprit que cet espace n'est utilisé que pour stocker les + correspondances et que cela ne diminue pas les possibilités de + mettre des données dans un cache. Le cache physique de + données est une fonction des <literal>vm_page_t</literal>s, et + non des tampons du système de fichiers. Cependant, comme les + tampons du système de fichiers sont utilisés pour les + entrées/sorties, ils limitent de fait le nombre + d'entrées/sorties possibles simultanément. Comme il y a + habituellement quelques milliers de tampons de système de + fichiers disponibles, ce n'est généralement pas un + problème.</para> + </sect2> + + <sect2> + <title>Tables de correspondance des + pages—<literal>vm_map_t</literal>, + <literal>vm_entry_t</literal></title> + + <para>FreeBSD dissocie l'organisation des tables de pages physiques du + système de mémoire virtuelle. Toutes les tables en dur de + pages par processus peuvent être reconstruites à la + volée et sont généralement + considérées comme jetables. Des tables de pages + particulières, comme celles qui gèrent l'interface entre + la mémoire virtuelle et le noyau, sont allouées de + façon permanente. Ces pages ne sont pas considérées + comme jetables.</para> + + <para>FreeBSD associe des parties des <literal>vm_object</literal>s + à des plages d'adresses via les structures + <literal>vm_map_t</literal> et <literal>vm_entry_t</literal>. Les tables + de pages sont construites synthétiquement à partir de la + hiérarchie + <literal>vm_map_t</literal>/<literal>vm_entry_t</literal>/<literal>vm_object_t</literal>. + Rappelez-vous que j'ai dit que les pages physiques n'étaient + directement associées qu'à un + <literal>vm_object</literal>. Ce n'est en fait pas tout-à-fait + vrai. Les <literal>vm_page_t</literal>s sont aussi liés aux + tables de pages auxquelles ils sont activement associés. + Un <literal>vm_page_t</literal> peut être lié à + plusieurs <emphasis>pmaps</emphasis>, nom que l'on donne aux tables de + pages. Cependant, l'association hiérarchique fait que toutes les + références du même objet à la même page + se rapportent à la même <literal>vm_page_t</literal> de + sorte que le tampon cache est globalement unifié.</para> + </sect2> + + <sect2> + <title>Organisation mémoire de l'interface mémoire virtuelle + du noyau - <foreignphrase>KVM</foreignphrase></title> + + <para>FreeBSD utilise l'interface mémoire virtuelle du noyau pour + stocker différentes structures de données du noyau. + L'unique plus grosse entité de cette interface est le tampon + de cache du système de fichiers. C'est-à-dire, les + correspondances se rapportant aux <literal>struct buf</literal>s.</para> + + <para>Au contraire de Linux, FreeBSD ne fait <emphasis>pas</emphasis> + correspondre toute la mémoire physique avec l'interface de + mémoire virtuelle. Ce qui signifie que FreeBSD peut gérer + des configurations ayant jusqu'à 4 Go de mémoire sur les + plates-formes 32 bits. En fait, si l'unité de gestion de la + mémoire - <foreignphrase>Memory Management Unit + (MMU)</foreignphrase> en était capable, FreeBSD pourrait + théoriquement gérer jusqu'à 8 To sur une + plate-forme 32 bits. Nénmoins, comme la plupart des plates-formes + 32 bits ne peuvent pas recevoir plus de 4 Go, c'est un sujet de + controverse.</para> + + <para>L'interface de mémoire virtuelle du noyau est + gérée par différents mécanismes. Le + mécanisme principal de gestion de cette interface est + l'allocateur de zone - <emphasis>zone allocator</emphasis>. + L'allocateur de zone prend une portion de l'interface de + mémoire virtuelle et la découpe en blocs de + mémoire de même taille pour y allouer un type + particulier de structure. Vous pouvez utiliser la commande + <command>vmstat -m</command> pour avoir une vue d'ensemble de + l'utilisation actuelle de l'interface entre le noyau et la + mémoire virtuelle zone par zone.</para> + </sect2> + + <sect2> + <title>Optimisation du système de gestion de mémoire + virtuelle de FreeBSD</title> + + <para>Il a été fourni un effort concerté pour que le + noyau de FreeBSD optimise lui-même dynamiquement son + fonctionnement. Vous n'avez normalement pas à vous casser la + tête avec les options <literal>maxusers</literal> et + <literal>NMBCLUSTERS</literal> de configuration du noyau, options de + compilation habituellement définies dans + <filename>/usr/src/sys/i386/conf/<replaceable>FICHIER_DE_CONFIGURATION</replaceable></filename>. + On trouve une description de toutes les options de configuration du + noyau dans <filename>/usr/src/sys/i386/conf/LINT</filename>.</para> + + <para>Lors de la configuration d'un gros système, vous pouvez + vouloir augmenter <literal>maxusers</literal>. Ses valeurs sont + généralement comprises entre 10 et 128. Remarquez que + donner une valeur trop importante à + <literal>maxusers</literal> peut provoquer un débordement de + l'interface de mémoire virtuelle disponible, entraînant des + résultats imprévisibles. Il vaut mieux donner à + <literal>maxusers</literal> une valeur raisonnable et ajouter d'autres + options, telles que <literal>NMBCLUSTERS</literal>, pour augmenter des + ressources précises.</para> + + <para>Si votre système va faire beaucoup appel au réseau, + vous pouvez augmenter <literal>NMBCLUSTERS</literal>. Les valeurs + usuelles sont comprises entre 1024 et 4096.</para> + + <para>Le paramètre <literal>NBUF</literal> est aussi + traditionnellement utilisé pour dimensionner le système. + Ce paramètre définit la taille de l'interface de + mémoire virtuelle du noyau disponible pour les correspondances + avec les tampons d'entrée/sortie du système de fichiers. + Notez bien que ce paramètre n'a rien à voir avec le + tampon cache unifié ! Ce paramètre est + optimisé dynamiquement par le noyau + <literal>3.0-current</literal> et les noyaux ultérieurs et n'a + normalement pas besoin d'être ajusté à la main. + Nous recommandons de ne <emphasis>pas</emphasis> essayer de fixer le + paramètre <literal>NBUF</literal>. Laissez le système + s'en charger. Une valeur trop faible peut rendre le système de + fichiers largement inefficace et une valeur trop grande saturer les + queues de pages en entraînant le verrouillage d'un trop grand + nombre de pages.</para> + + <para>Par défaut, les noyaux FreeBSD ne sont pas optimisés. + Vous pouvez positionner les indicateurs d'optimisation et de + déboguage avec les directives <literal>makeoptions</literal> de + configuration du noyau. Remarquez que vous ne devriez pas utiliser + l'option <option>-g</option> à moins que vous ne puissiez vous + accommoder des noyaux de taille importante (habituellement plus de 7 Mo) + qui en résultent.</para> + + <programlisting> +makeoptions DEBUG="-g" +makeoptions COPTFLAGS="-O2 -pipe" + </programlisting> + + <para><command>sysctl</command> fournit un moyen d'optimiser le noyau en + temps réel. Vous n'avez habituellement pas à vous + préoccuper des variables de <command>sysctl</command>, et en + particulier pas de celles qui concernent la mémoire + virtuelle.</para> + + <para>L'optimisation de la gestion de mémoire virtuelle et du + système d'exécution est relativement simple. Tout + d'abord, utilisez “les mises à jour + logicielles” - <foreignphrase>softupdates</foreignphrase> - sur + vos systèmes de fichiers UFS/FFS chaque fois que c'est possible. + Le fichier + <filename>/usr/src/contrib/sys/softupdates/README</filename> donne + les indications (et les restrictions) sur la façon de les + configurer.</para> + + <para>En second lieu, prévoyez suffisamment d'espace de pagination. + Vous devriez avoir une partition de pagination sur chaque disque + physique, jusqu'à quatre, même sur vos disques “de + travail”. Il doit y avoir au moins deux fois autant d'espace de + pagination que de mémoire, et éventuellement même + plus si vous n'avez pas beaucoup de mémoire. Vous devriez aussi + dimensionner votre partition de pagination en fonction de la + quantité maximale de mémoire que vous comptez installer + sur votre système pour ne pas avoir à repartitionner vos + disques par la suite. Si vous voulez pouvoir garder une trace en cas + de plantage - <foreignphrase>crash + dump</foreignphrase> - votre première partition de + pagination doit être au moins de la taille de la mémoire et + <filename>/var/crash</filename> doit disposer de suffisamment de place + libre pour recevoir la trace.</para> + + <para>Il est tout à fait admissible de paginer via NFS à + partir des systèmes <literal>-4.x</literal> et ultérieurs, + mais il faut être conscient que le serveur NFS supportera le plus + fort de la charge de pagination.</para> + </sect2> + </sect1> +</chapter> + +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-always-quote-attributes: t + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> diff --git a/fr_FR.ISO_8859-1/books/handbook/introduction/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/introduction/chapter.sgml new file mode 100644 index 0000000000..c18577aa65 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/introduction/chapter.sgml @@ -0,0 +1,727 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: 1.13 +--> + + <chapter id="introduction"> + <title>Introduction</title> + &trans.a.haby; + <para>FreeBSD est une système d'exploitation basé sur 4.4BSD-Lite2 pour + les PCs à base d'architecture Intel (x86) et DEC Alpha. Pour un aperçu de FreeBSD, + reportez-vous à <link linkend="nutshell">FreeBSD en bref</link>. Pour + connaître l'histoire du projet, lisez <link linkend="history">Un + court historique de FreeBSD</link>. Pour avoir une description de la + version la plus récente, allez à la section + <link linkend="relnotes">A propos de cette version</link>. Si vous + voulez contribuer d'une façon ou d'une autre au projet FreeBSD + (code, matériel, chèques en blanc), voyez s'il vous plaît à la section + <link linkend="contrib">Contribuer à FreeBSD</link>.</para> + + <sect1 id="nutshell"> + <title>FreeBSD en bref</title> + + <para>FreeBSD est un système d'exploitation en l'état de + l'art pour les ordinateurs personnels à base d'architecture à + processeurs Intel, ce qui inclut les processeurs 386, 486 (SX et + DX) et Pentium ainsi que l'architecture Alpha. Les CPUs + compatibles Intel d'AMD et Cyrix sont aussi supportées. FreeBSD + vous apporte de nombreuses fonctionnalités avancées qui + n'étaient jusque-là disponibles que sur des ordinateurs beaucoup + plus onéreux. Parmi ces fonctionnalités:</para> + + + <itemizedlist> + + <listitem> + <para><emphasis>Multi-tâche préemptif</emphasis> avec + ajustement dynamique des priorités pour garantir un + partage équilibré et fluide de l'ordinateur entre les + applications et utilisateurs.</para> + </listitem> + + <listitem> + <para>Accès <emphasis>Multi-utilisateurs</emphasis>, ce qui + signifie que de nombreuses personnes peuvent utiliser en + même temps un système FreeBSD à des fins très différentes. + Les périphériques tels que les imprimantes ou les lecteurs + de bandes peuvent être aussi PARTAGES sans problème entre + TOUS les utilisateurs du système.</para> + </listitem> + + <listitem> + <para><emphasis>Réseau TCP/IP</emphasis> complet dont le + support de SLIP, PPP, NFS et NIS. Cela signifie que votre + machine FreeBSD peut coopérer facilement avec les autres + systèmes ou bien être utilisée + comme serveur d'entreprise, fournissant + des fonctions essentielles comme NFS (accès aux fichiers en + réseau) ou le service de courrier électronique, ou encore + gérer l'accès de votre entreprise à l'Internet grâce aux + services WWW, ftp, et aux fonctionnalités de routage et de + coupe-feu (sécurité).</para> + </listitem> + + <listitem> + <para>La <emphasis>Protection mémoire</emphasis> garantit que les + applications ou les utilisateurs n'interfèrent pas entre eux. + Une application qui “plante” n'affecte en rien les + autres.</para> + </listitem> + + <listitem> + <para>FreeBSD est un système d'exploitation + <emphasis>32-bit</emphasis> et a été conçu comme tel dès le + début.</para> + </listitem> + + <listitem> + <para>Le standard industriel <emphasis>X Window System</emphasis> + (X11R6) fournit une interface graphique (“Graphical User + Interface” - GUI), + moyennant l'achat d'une carte VGA + ordinaire et d'un moniteur, et est livré avec l'intégralité de + son code source.</para> + </listitem> + + <listitem> + <para><emphasis>Compatibilité binaire</emphasis> avec de + nombreux programmes compilés pour SCO, BSDI, NetBSD, Linux et + 386BSD.</para> + </listitem> + + <listitem> + <para>Des centaines d'applications + <emphasis>prêtes à l'emploi</emphasis> + sont disponibles grâce au catalogue des logiciels + <emphasis>portés</emphasis> (“ports”) et au catalogue + des logiciels <emphasis>pré-compilés</emphasis> + (“packages”). Pourquoi chercher sur l'Internet alors + que tout est déjà là?</para> + </listitem> + + <listitem> + <para>Des milliers d'applications <emphasis>faciles à + porter</emphasis> sont disponibles sur l'Internet. FreeBSD est + compatible au niveau du code source avec les systèmes + Unix commerciaux les plus répandus et donc il y a peu, sinon + aucune modification, à faire pour les compiler.</para> + </listitem> + + <listitem> + <para><emphasis>Mémoire virtuelle</emphasis> paginée à la demande + et “cache unifié pour le disque + et la mémoire virtuelle”; cela + permet de répondre aux besoins d'applications gourmandes en + mémoire tout en garantissant le temps de réponse aux autres + utilisateurs.</para> + </listitem> + + <listitem> + <para>Les <emphasis>Biliothèques partagées</emphasis> + (l'équivalent Unix des DLLs de MS-Windows) permettent une + utilisation efficace de la mémoire et du disque.</para> + </listitem> + + <listitem> + <para>Des outils complets de développement <emphasis>C</emphasis>, + <emphasis>C++</emphasis> et <emphasis>Fortran</emphasis>. De + nombreux autres langages pour la recherche de pointe et le + développement sont aussi disponibles dans les catalogues des + logiciels portés et pré-compilés.</para> + </listitem> + + <listitem> + <para>La disponibilité du <emphasis>Code source</emphasis> de la + totalité du système vous donne tout contrôle sur votre + environnement. Pourquoi être prisonnier d'une solution + propriétaire et dépendant de votre fournisseur alors que vous + pouvez avoir un vrai Système Ouvert?</para> + + </listitem> + + <listitem> + <para><emphasis>Documentation en ligne</emphasis> très + complète.</para> + </listitem> + + <listitem> + <para><emphasis>Et beaucoup d'autres choses + encore!</emphasis></para> + </listitem> + + </itemizedlist> + + <para>FreeBSD est basé sur la version 4.4BSD-Lite2 du “Computer + Systems Research Group” (CSRG) de l'Université de Californie à + Berkeley et continue la tradition de développement renommée des + systèmes BSD. En plus de l'excellent travail fourni par le CSRG, le + Projet FreeBSD a investi des milliers d'heures de travail pour + optimiser le système pour arriver aux meilleures performances et au + maximum de fiabilité sous la charge d'un environnement de production. + Alors que la plupart des géants dans le domaine des systèmes + d'exploitation pour PC s'acharnent encore + à obtenir de telles possibilités, + performances et fiabilité, FreeBSD peut les offrir + <emphasis>dès maintenant</emphasis>!</para> + + <para>La seule limite aux domaines d'application auxquels FreeBSD peut + satisfaire est votre propre imagination. Du développement + de logiciels à la production robotisée, de la gestion de stocks à + la correction d'azimuth pour les antennes satellites; si un + Unix commercial peut le faire, il y a de très fortes chances que + FreeBSD le puisse aussi! FreeBSD bénéficie aussi + de centaines d'applications de haute qualité developpées par les + centres de recherche et les universités du monde entier, souvent + disponibles gratuitement ou presque. Il existe aussi des applications + commerciales et leur nombre croît de jour en jour.</para> + + <para>Comme le code source de FreeBSD lui-même est globalement + disponible, le système peut aussi être adapté sur mesure à un + point pratiquement jamais atteint pour des applications ou des + projets particuliers, d'une façon qui serait habituellement + impossible avec les systèmes d'exploitation commerciaux de la + plupart des principaux fournisseurs. Voici juste quelques exemples + d'applications pour lesquelles FreeBSD est utilisé:</para> + + + <itemizedlist> + + <listitem> + <para><emphasis>Services Internet:</emphasis> Les + fonctionnalités réseau TCP/IP robustes qu'inclut FreeBSD + en font la plate-forme idéale pour un éventail de services + Internet, tels que:</para> + <itemizedlist> + + <listitem> + <para>Serveurs FTP,</para> + </listitem> + + <listitem> + <para>Serveurs “World Wide Web”,</para> + </listitem> + + <listitem> + <para>Serveurs Gopher,</para> + </listitem> + + <listitem> + <para>Serveurs de courrier électronique,</para> + </listitem> + + <listitem> + <para>Serveurs de “News + USENET” - forums + de discussion,</para> + </listitem> + + <listitem> + <para>“Bulletin Board Systems (BBS)”,</para> + </listitem> + + <listitem> + <para>Et plus...</para> + </listitem> + + </itemizedlist> + + <para>Vous pouvez facilement commencer petit avec un PC 386 à bas + prix et muscler votre configuration au fur et à mesure que + votre entreprise grandit.</para> + </listitem> + + <listitem> + <para><emphasis>Education:</emphasis> Etes-vous étudiant en + informatique ou dans un domaine d'ingénierie apparenté? Il + n'y a pas de meilleur moyen pour étudier les systèmes + d'exploitation, l'architecture des ordinateurs et les + réseaux que l'expérience directe et de + “derrière la coulisse” + que FreeBSD peut vous apporter. Il y a aussi un grand nombre + d'outils mathématiques, graphiques et de Conception Assistée + par Ordinateur qui en font en outil très utile pour ceux qui + s'intéressent aux ordinateurs essentiellement pour faire un + <emphasis>autre</emphasis> travail!</para> + </listitem> + + <listitem> + <para><emphasis>Recherche:</emphasis> Avec le code source de la + totalité du système disponible, FreeBSD est un excellent outil + de recherche sur les systèmes d'exploitation tout autant que + pour d'autres branches de l'informatique. Le fait que FreeBSD + soit librement disponible rend aussi possible l'échange d'idées + et le développement partagé entre groupes éloignés sans avoir à + se préoccuper de problèmes de licence particulières ou de + restrictions à ce qui pourait être discuté sur des forums + ouverts.</para> + </listitem> + + <listitem> + <para><emphasis>Réseau:</emphasis> Il vous faut un nouveau + routeur? Un serveur de domaine (DNS)? Un coupe-feu pour tenir + les gens à l'écart de votre réseau interne? FreeBSD peut + facilement faire de votre vieux 386 ou 486 inutilisé qui + traîne dans un coin un routeur évolué avec des fonctionnalités + sophistiquées de filtrage de paquets.</para> + </listitem> + + <listitem> + <para><emphasis>Station de travail X Window:</emphasis> FreeBSD + est un excellent choix pour faire un terminal X peu coûteux, + soit avec le serveur XFree86 librement disponible, soit avec + les excellents serveurs commerciaux de X Inside. Au contraire + d'un terminal X, FreeBSD permet d'exécuter localement, si + désiré, un grand nombre d'applications, déchargeant ainsi + le serveur central. FreeBSD peut même démarrer “sans + disque”, ce qui permet de concevoir des postes de + travail individuels moins chers et plus faciles à + administrer.</para> + </listitem> + + <listitem> + <para><emphasis>Développement de logiciel:</emphasis> Le système + FreeBSD de base inclut un environnement de développement + complet dont les compilateur et débogueur GNU C/C++ + réputés.</para> + </listitem> + + </itemizedlist> + + <para>FreeBSD est disponible sous forme de code source ou binaire sur + CD-ROM ou par ftp anonyme, Voyez <link linkend="mirrors">Se procurer + FreeBSD</link> pour plus de détails.</para> + + </sect1> + + <sect1 id="history"> + <title>Un court historique de FreeBSD</title> + + <para><emphasis>Contribution de &a.jkh;</emphasis>.</para> + + <para>Le projet FreeBSD a vu le jour au début de 1993, en partie + comme extension du “Kit de mise à jour non officiel de + 386BSD” des trois derniers coordinateurs du kit de mise à + jour : Nate Williams, Rod Grimes et moi-même.</para> + + <para>Notre objectif de départ était de fournir une distribution + intermédiaire de 386BSD pour corriger un certain nombre de + problèmes que le mécanisme du kit de mise à jour ne permettait + pas de résoudre. Certains d'entre vous se rappellent peut-être + que l'intitulé de travail d'origine du projet était + “386 BSD 0.5” ou “386BSD Interim” en + référence à ce problème.</para> + + <para>386BSD était le système d'exploitation de Bill Jolitz, qui + souffrait assez sévèrement à ce moment-là d'avoir été négligé + presque un an. Comme le kit de mise à jour enflait de plus + en plus inconfortablement au fil des jours, nous avons décidé à + l'unanimité qu'il fallait faire quelque chose et aider Bill en + fournissant cette distribution provisoire de “remise à plat”. + Ces projets se sont brutalement interrompus lorsque Bill a décidé + de retirer son aval au projet sans dire + clairement ce qui serait fait à + la place.</para> + + <para>Il ne nous a pas fallu longtemps pour décider que l'objectif + restait valable, même sans l'adhésion de Bill, et nous avons donc + adopté le nom “FreeBSD”, une proposition de David + Greenman. Nos objectifs de départ ont été définis après avoir + consulté les utilisateurs du moment du système et, dès qu'il est + devenu clair que le projet était parti pour devenir un jour + éventuellement réalité, nous avons contacté Walnut + Creek CDROM dans l'optique d'améliorer la distribution de + FreeBSD pour le grand nombre de ceux qui n'avaient pas la chance + de pouvoir accéder facilement à l'Internet. Non seulement Walnut + Creek CDROM a adopté l'idée de distribuer FreeBSD sur CD-ROM, mais + a été jusqu'à fournir au projet une machine pour travailler et + une connexion rapide à l'Internet. Sans le degré pratiquement + sans précédent de confiance de Walnut Creek CDROM en ce qui n'était + alors qu'un projet totalement inconnu, il y a peu de chance que + FreeBSD ait été aussi loin, aussi vite, que là où il en est + aujourd'hui.</para> + + <para>La première version sur CD-ROM (et sur l'ensemble du Net) fut + FreeBSD 1.0, parue en Décembre 1993. Elle reposait sur la bande + 4.3BSD-Lite (“Net/2”) de l'Université de Californie à + Berkeley, avec de nombreux composants venant aussi de 386BSD et de + la “Free Software Foundation”. Ce fut un + succès honnête pour une + version initiale, qui fut suivi par le franc succès de la version 1.1 + de FreeBSD, publiée en Mai 1994.</para> + + <para>A peu près à cette époque, des nuages menaçants et inattendus + apparurent lorsque commença la bataille juridique entre Novell et + l'U.C. Berkley autour du statut légal de la bande Net/2 de + Berkeley. Dans les termes de l'accord, l'U.C. Berkeley concédait + qu'une grande partie de Net/2 était du code “protégé” + et propriété de Novell, qui l'avait à son tour racheté à + AT&T quelque temps auparavant. Berkeley obtint en retour la + “bénédiction” de Novell que 4.4BSD-Lite soit, lorsqu'il + vit finalement le jour, déclaré non protégé et que tous les + utilisateurs de Net/2 soit fortement incités à migrer. Cela incluait + FreeBSD, et l'on donna au projet jusqu'à Juillet 1994 pour mettre un + terme à propre produit basé sur Net/2. Selon les termes de cet accord, + une dernière livraison était autorisée avant le délai final; ce + fut FreeBSD 1.1.5.1.</para> + + <para>FreeBSD s'attela alors à la tâche difficile de littéralement se + réinventer à partir de fragments totalement nouveaux et assez + incomplets de 4.4BSD-Lite. Les versions “Lite” + étaient légères (“light”) en partie parce que le + CSRG avait retiré de gros morceaux du code nécessaires pour que + l'on puisse effectivement en faire un système qui démarre (pour + différentes raisons légales) et parce que le portage pour Intel + de la version 4.4 était très partiel. Il fallu au projet jusqu'à + Décembre 1994 pour terminer cette étape de transition et FreeBSD 2.0 + parut sur l'Internet et sur CD-ROM en Janvier 1995. Bien qu'elle fut + encore assez rugueuse aux angles, cette livraison obtint un succès + significatif et fut suivie par la version 2.0.5 de FreeBSD, plus + fiable et facile à installer.</para> + + <para>Nous avons publié FreeBSD 2.1.5 en Août 1996, et il s'avéra + suffisamment populaire chez les fournisseurs d'accès et les + utilisateurs professionnels pour qu'une nouvelle version sur + la branche 2.1-stable soit justifiée. Ce fut la version + FreeBSD 2.1.7.1, parue en Février 1997 et qui marque la fin de + 2.1-stable comme branche principale de développement. Dès lors, il + n'y aurait plus que des améliorations quant à la sécurité et autres + corrections de bogues critiques sur cette branche, (RELENG_2_1_0), + passée en phase de maintenance.</para> + + <para>La branche FreeBSD 2.2 fut créée à partir de la branche principale + de développement (“-current”) en Novembre 1996 en tant + que branche RELENG_2_2, et la première version complète (2.2.1) parut + en Avril 1997. Il y eut d'autres versions sur la branche 2.2 à l'été + et à l'automne 97, la plus récente étant la 2.2.7, qui a été publiée + en Juillet 1998. La première version officielle 3.0 sortira en + Octobre 1998 et la dernière version sur la branche 2.2, la version + 2.2.8, en Novembre.</para> + + <para>Il y eut la création d'une nouvelle branche le 20 + Janvier 1999. Cela donna une branche 4.0-current et une branche + 3.X-stable. De cette dernière il y eut la version 3.1 livrée le + 15 Février 1999 et la version 3.2 livrée le 25 Mai 1999</para> + + <para>Tous les projets de développement à long terme, de SMP à la + version DEC Alpha, continueront à se faire sur la branche 4.0-current + et sur les versions d'instantanés de la 4.0 sur CD-ROM (et bien sûr + sur l'Internet).</para> + + </sect1> + + <sect1 id="goals"> + <title>Les objectifs du projet FreeBSD</title> + + <para><emphasis>Contribution de &a.jkh;</emphasis>.</para> + + <para>L'objectif du projet FreeBSD est de fournir du logiciel qui + puisse être utilisé à n'importe quelle fin et sans aucun restriction. + Nombre d'entre nous sont impliqués de façon significative dans le + code (et dans le projet) et ne refuseraient certainement pas une + petite compensation financière de temps à autre, mais ce n'est + certainement pas dans nos intentions d'insister là dessus. Nous + croyons que notre première et principale “mission” + est de fournir du code à tout le monde, pour n'importe quel projet, + de façon à ce que l'il soit utilisé le plus possible et avec + le maximum d'avantages. C'est, nous le pensons, l'un des objectifs + les plus fondamentaux du Logiciel Libre et l'un de ceux que nous + soutenons avec enthousiasme.</para> + + <para>Le code de l'arborescence des sources, qui est régi par la + Licence Publique GNU (“GNU Public + License” - GPL) ou + la Licence Publique GNU pour les Bibliothèques (“GNU Library + Public License” - GLPL) impose légèrement plus de + contraintes, bien que plutôt liées à une disponibilité plus grande + qu'au contraire, comme c'est généralement le cas. En raison des + complications supplémentaires qui peuvent résulter de l'utilisation + commerciale de logiciels GPL, nous essayons, cependant de remplacer + ces derniers par des logiciels soumis à la licence BSD qui est plus + souple, chaque fois que c'est possible.</para> + + </sect1> + + <sect1 id="development"> + <title>Le mode de développement de FreeBSD</title> + + <para><emphasis>Contribution de &a.asami;</emphasis>.</para> + + <para>Le développement de FreeBSD est un processus très ouvert et + très souple, FreeBSD est littéralement le résultat de + contributions de centaines de personnes dans le mode entier, + ce que reflète notre <link linkend="staff">liste des + participants</link>. Nous sommes toujours à l'affut de nouveaux + développeurs et de nouvelles idées, et ceux que s'impliquer + de plus près intéresse n'ont besoin que de contacter la + &a.hackers;. Ceux qui préfèrent travailler de façon plus + indépendante sont aussi acceptés, et sont libres d'utiliser nos + possibilités de FTP sur <ulink + url="ftp://ftp.freebsd.org/pub/FreeBSD/incoming">ftp.freebsd.org</ulink> + pour livrer leurs propres modifications ou sources en cours de + développement. La &a.announce; est aussi disponible pour ceux qui + veulent faire connaître aux autres utilisateurs de FreeBSD les + principaux domaines de développement en cours.</para> + + <para>Quelques points utiles à connaître à propos du projet FreeBSD + et de son processus de développement, que vous travailliez + indépendamment ou en collaboration étroite:</para> + + <variablelist> + <varlistentry><term>Les archives CVS + <anchor id="development-cvs-repository"></term> + <listitem> + <para>L'arborescence centrale des sources de FreeBSD est gérée + sous <ulink + url="http://www.cyclic.com/cyclic-pages/CVS-sheet.html">CVS</ulink> (“Concurrent Version System”), + un système librement disponible de gestion de + version des sources qui est livré avec FreeBSD. Les + <ulink url="http://www.freebsd.org/cgi/cvsweb.cgi">archives + CVS</ulink> d'origine sont sur une machine à Concord, CA, USA, + d'où elles sont répliquées sur de nombreuses machines miroir + à travers le monde. L'arborescence CVS, et les branches + <link linkend="current">-current</link> et <link + linkend="stable">-stable</link> qui en sont extraites, + peuvent facilement être dupliquées sur votre propre machine. + Reportez-vous à la section + <link linkend="synching">Synchroniser votre arborescence des + sources</link> pour plus d'informations sur la façon de + procéder.</para> + </listitem> + </varlistentry> + + <varlistentry><term>La liste des personnes autorisées, les “commiters” + <anchor id="development-committers"></term> + + <listitem> + <para>Les <link linkend="staff-committers">personnes + autorisées (“committers”)</link> sont celles qui + ont les droits en + <emphasis>écriture</emphasis> sur l'arborescence CVS, et sont + donc autorisées à faire des modifications dans les sources + de FreeBSD (le terme “committer” vient de la + commande + <citerefentry><refentrytitle>cvs</refentrytitle><manvolnum>1</manvolnum></citerefentry> <command>commit</command>, que l'on utilise pour + reporter des modifications dans les archives CVS). La + meilleure façon de proposer des modifications pour qu'elles + soient validées par les “committers” est + d'utiliser la commande + <citerefentry><refentrytitle>send-pr</refentrytitle><manvolnum>1</manvolnum></citerefentry>, + quoique, s'il semble y avoir un problème avec ce système, vous + pouvez aussi les joindre en envoyant un courrier électronique + aux <email>committers@freebsd.org</email>.</para> + </listitem> + </varlistentry> + + <varlistentry><term>L'équipe de base de + FreeBSD<anchor id="development-core"></term> + + <listitem> + <para><link linkend="staff-core">L'équipe de base de + FreeBSD</link> serait l'équivalent du comité de direction + si le Projet FreeBSD était une entreprise. La responsabilité + principale de l'équipe de base est de s'assurer que le projet, + dans son ensemble, fonctionne correctement et va dans la + bonne direction. Proposer à des développeurs impliqués et + responsables de rejoindre notre groupe de personnes autorisées + est une des fonctions de l'équipe de base, ainsi que le + recrutement de nouveaux membres de l'équipe de base quand + d'autres s'en vont. La plupart des membres actuels de + l'équipe de base ont d'abord été des “commiters” + dont l'attachement au projet a mobilisé la meilleure part + d'eux-mêmes.</para> + + <para>Certains membres de l'équipe de base ont aussi leur + propre <link + linkend="staff-who">domaine de responsabilité</link>, + ce qui signifie qu'il leur est dévolu de veiller à ce + qu'une partie significative du système satisfasse aux + fonctionnalités annoncées.</para> + + <note> + <para>La plupart des membres de l'équipe de base sont + volontaires en ce qui concerne le développement de FreeBSD + et ne retirent aucun profit financier du projet, donc + “implication” ne doit pas être compris + “support garanti”. La comparaison précédente + avec un comité directeur n'est pas très exacte, et il + serait plus juste de dire que ce sont des gens qui ont + sacrifié leur vie à FreeBSD contre toute raison! + <!-- smiley --><emphasis>;)</emphasis></para> + </note> + </listitem> + </varlistentry> + + <varlistentry><term>Contributions extérieures</term> + + <listitem> + <para>Enfin, mais certainement pas des moindres, le groupe le + plus important de développeurs est constitué par les + utilisateurs eux-mêmes qui nous fournissent de façon quasi + régulière leur retour d'expérience et leurs corrections de + bogues. Le principal moyen d'entrer en contact avec le + développement plus décentralisé de FreeBSD est + de s'inscrire sur la &a.hackers; (voyez les informations + sur les <link linkend="eresources-mail">listes de + discussion</link>), où ces questions sont abordées.</para> + + <para>La <link linkend="contrib-additional">liste</link> de + ceux qui ont fourni quelque chose qui a trouvé son chemin + jusqu'à notre arborescence des sources est longue et + s'accroît sans cesse, pourquoi donc ne pas vous y joindre + et contribuer à quelque chose en retour dès + aujourd'hui? <!-- smiley --><emphasis>:-)</emphasis></para> + + <para>Fournir du code n'est pas la seule manière de contribuer + au projet. Pour avoir une liste plus complète de ce qu'il y + a à faire, voyez s'il vous plaît la section + <link linkend="contrib">Comment contribuer</link> de ce + manuel.</para> + </listitem> + </varlistentry> + </variablelist> + + + <para>En résumé, notre modèle de développement est organisé comme + un ensemble relaché de cercles concentriques. Ce modèle centralisé + est en place pour la commodité des <emphasis>utilisateurs</emphasis> + de FreeBSD, qui disposent ainsi d'un moyen facile de suivre + l'évolution d'une base de code centrale, et non pour tenir à l'écart + d'éventuels participants! Nous souhaitons fournir un système + d'exploitation stable avec un nombre conséquent de + <link linkend="ports">programmes d'application</link> cohérents que + les utilisateurs puissent facilement installer et employer, + et c'est un modèle qui fonctionne très bien pour cela.</para> + + <para>Tout ce que nous attendons de ceux qui se joindraient à nous + pour développer FreeBSD est un peu de la même implication que les + développeurs actuels ont vis-à-vis de sa réussite continue!</para> + + </sect1> + + <sect1 id="relnotes"> + <title>A propos de cette version</title> + + <para>FreeBSD est une version librement disponible et incluant tout + le code source basé sur 4.4BSD-Lite2 pour les PCs à architecture + Intel i386/i486/Pentium/PentiumPro/Pentium II (ou + compatible) et DEC Alpha . Il est basé essentiellement sur + du logiciel du groupe CSRG de l'Université de Californie à + Berkeley, avec des additions venant de NetBSD, OpenBSD, 386BSD, + et de la “Free Software Foundation”.</para> + + + <para>Depuis la publication de FreeBSD 2.0 en Janvier 95, les + performances, fonctionnalités et la stabilité de FreeBSD ont + été améliorées de façon spectaculaire. La plus grosse modification + est un gestionnaire de mémoire virtuelle totalement revu qui + comprend un cache commun au disque et à la mémoire virtuelle, qui + n'améliore pas seulement les performances, mais diminue aussi + l'occupation de la mémoire, de telle sorte qu'une configuration avec + 5MB devienne un minimum acceptable. D'autres ajouts concernent le + support intégral des clients et serveurs NIS, le support des + transactions TCP, les connexions PPP à la demande, un sous-système + SCSI amélioré, un premier support ISDN, les supports des interfaces + FDDI et “Fast Ethernet” (100 Mbit), un meilleur support + du contrôleur Adaptec 2940 (Wide et normal) et des centaines de + corrections de bogues.</para> + + <para>Nous avons aussi pris en considération les commentaires et les + suggestions de nombre de nos utilisateurs et avons essayé de + fournir ce que nous espérons être une procédure d'installation + plus saine et facile à comprendre. Votre avis en retour + sur cette procédure (constamment en évolution) sera + particulièrement le bienvenu!</para> + + <para>En plus du système lui-même, FreeBSD offre un nouveau catalogue + de logiciels portés (“ports”) qui inclut + des centaines de programmes + habituellement demandés. A la fin Avril 1999, il y en avait plus de + 2300! La liste va des serveurs HTTP (WWW) aux jeux, langages, + éditeurs et presque tout ce qui existe entre. Le catalogue complet + des logiciels demande près de 50MB d'espace disque, les portages se + présentant sous forme de “delta” avec les sources + d'origine. Cela rend leur mise à jour bien plus facile, et diminue + de facon sensible l'espace nécessaire par rapport à l'ancien + catalogue 1.0. Pour compiler un logiciel porté, il vous suffit + d'aller dans le répertoire où il se trouve, de taper + <command>make all</command>, puis <command>make install</command> + une fois la compilation réussie, et de laisser le système faire + le reste. La distribution originale complète de chaque logiciel est + chargée dynamiquement depuis le CD-ROM ou un site ftp proche, il vous + suffit de disposer de suffisamment de place pour compiler le logiciel + que vous voulez. (Presque) tous les logiciels sont aussi fournis + sous forme pré-compilée (“package”) qui s'installe + en une seule commande (<command>pkg_add</command>), si vous ne voulez + pas les compiler à partir du source.</para> + + <para>Il y a un certain nombre d'autres documents qui vous serons + peut-être très utiles à l'installation et à l'utilisation de + FreeBSD, que vous pouvez maintenant trouver dans le répertoire + <filename>/usr/share/doc</filename> de n'importe quelle machine + sous FreeBSD 2.1 ou ultérieur. Vous pouvez consulter les manuels + localement disponibles avec n'importe quel navigateur HTML aux + URLs suivantes:</para> + + + <variablelist> + <varlistentry><term>Le manuel FreeBSD</term> + <listitem> + <para><ulink + url="file:/usr/share/doc/handbook/handbook.html">file:/usr/share/doc/handbook/handbook.html</ulink></para> + </listitem> + </varlistentry> + + <varlistentry><term>La FAQ FreeBSD</term> + + <listitem> + <para><ulink + url="file:/usr/share/doc/FAQ/FAQ.html">file:/usr/share/doc/FAQ/FAQ.html</ulink></para> + + </listitem> + </varlistentry> + </variablelist> + + + <para>Vous pouvez aussi consulter les exemplaires originaux (et les plus + souvent mis à jour) sur <ulink + url="http://www.freebsd.org">http://www.freebsd.org</ulink>.</para> + + <para>Le coeur de FreeBSD ne contient pas de code DES qui en + empêcherait l'exportation à l'extérieur des Etats-Unis. Il y a un + supplément à la version de base, utilisable aux Etats-Unis + uniquement, qui contient les programmes qui utilisent habituellement + le DES. Les logiciels auxiliaires fournis séparement peuvent être + utilisés par tout le monde. Il y a aussi une version Européenne + librement exportable (d'ailleurs que des Etats-Unis) du DES pour nos + utilisateurs non américains, qui est décrite dans la + <ulink url="&url.faq;index.html">FAQ FreeBSD</ulink>.</para> + + <para>Si vous ne voulez que des mots de passe sûrs, et que vous n'avez + pas besoin de copier de mots de passe venant de machines différentes + (des machines Suns, DEC, etc) vers des mots de passe FreeBSD, alors + l'encodage FreeBSD basé sur MD5 est probablement tout ce qu'il vous + faut. Nous pensons que notre modèle de sécurité par défaut est mieux + qu'un concurrent du DES, et il n'est + pas encombré de tous ces problèmes + délicats d'exportation. Si vous êtes à l'extérieur, ou même aux + Etats-Unis, essayez-le donc!</para> + + </sect1> + </chapter> + + +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-shorttag: nil + sgml-always-quote-attributes: t + sgml-minimize-attributes: max + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> diff --git a/fr_FR.ISO_8859-1/books/handbook/kernelconfig/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/kernelconfig/chapter.sgml new file mode 100755 index 0000000000..8a93fa5956 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/kernelconfig/chapter.sgml @@ -0,0 +1,1876 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + + <chapter id="kernelconfig"> + <title>Configurer le noyau de FreeBSD</title> + + <para><emphasis>Contribution de &a.jehamby;.<!-- <br> -->6 Octobre + 1995.</emphasis></para> + &trans.a.haby; + + <para>Cette longue section du manuel décrit l'essentiel de la + configuration d'un noyau FreeBSD adapté à vos besoins propres. + Elle concerne tout autant les administrateurs système débutants + que ceux qui ont une vaste expérience d'Unix.</para> + + + <sect1> + <title>Pourquoi compiler un noyau sur mesure?</title> + + <para>Générer un noyau sur mesure est l'un des plus importants + rites de passage que doit endurer tout administrateur système + Unix. Cette opération, qui prend du temps, apportera de nombreuses + améliorations à votre système FreeBSD. A l'inverse du noyau + <literal>GENERIC</literal>, qui doit supporter toutes les + cartes SCSI et réseau possibles, ainsi qu'une tonne de matériels + rarement utilisés, un noyau sur mesure n'inclut que le support + de <emphasis>votre</emphasis> configuration matérielle. Cela a + de nombreux avantages:</para> + + <para> + <itemizedlist> + + <listitem> + <para>Le système démarrera plus rapidement parce qu'il ne perdra + pas de temps à rechercher des périphériques que vous n'avez + pas.</para> + </listitem> + + <listitem> + <para>Un noyau personnalisé monopolise souvent moins de mémoire, + ce qui est important parce que le noyau est le processus qui + doit toujours résider en mémoire, ce qui fait que tout le + code inutilisé s'approprie des pages mémoire que vos programmes + pourraient utiliser. D'où l'importance critique de générer un + noyau sur mesure sur un système dont les ressources mémoire + sont limitées.</para> + </listitem> + + <listitem> + <para>Enfin, il y a plusieurs options du noyau que vous pouvez + ajuster à vos besoins, et des pilotes pour des périphériques + comme les cartes son que vous pouvez inclure dans votre + noyau, mais qui <emphasis>ne sont pas</emphasis> dans le + noyau générique.</para> + </listitem> + + </itemizedlist> + </para> + + </sect1> + + <sect1 + id="kernelconfig-building"> + <title>Compiler et installer un noyau sur mesure</title> + + <para>Commençons par passer rapidement en revue le répertoire + de configuration du noyau. Tous les chemins d'accès mentionnés + seront relatifs au répertoire principal + <filename>/usr/src/sys</filename>, auquel on accède aussi via + le lien symbolique <filename>/sys</filename>. Il comporte un + certain nombre de sous-répertoires correspondants à différentes + parties du noyau, mais les plus importants, en ce qui nous + concerne, sont <filename>i386/conf</filename>, où nous éditerons + notre fichier de configuration personnalisée, et + <filename>compile</filename>, qui est l'espace de travail où nous + générerons notre noyau. Remarquez l'organisation logique de + l'arborescence des répertoires, où chaque périphérique, système + de fichiers et option supporté a son propre sous-répertoire. D'autre + part, tout ce qui ce trouve dans le répertoire + <filename>i386</filename> est propre au matériel PC, alors que tout + le reste est commun à toutes les plates-formes sur lesquelles + FreeBSD pourrait potentiellement être porté.</para> + + <note> + <para>S'il <emphasis>n'y a pas</emphasis> de répertoire + <filename>/usr/src/sys</filename> sur votre système, c'est que les + sources du noyau n'ont pas été installés. Suivez les instructions + d'installation pour ajouter cette distribution à votre + système.</para> + </note> + + <para>Allez ensuite dans le répertoire <filename>i386/conf</filename> + et copiez le fichier de configuration <filename>GENERIC</filename> + dans un fichier qui aura le nom que vous voulez donner à votre + nouveau noyau. Par exemple: + + <informalexample> + <screen>&prompt.root; <userinput>cd /usr/src/sys/i386/conf</userinput> +&prompt.root; <userinput>cp GENERIC MONNOYAU</userinput></screen> + </informalexample> Par tradition, c'est un nom en majuscules, et + si vous maintenez plusieurs machines FreeBSD avec des configurations + différentes, c'est une bonne idée de lui donner le même nom que + la machine. Nous l'appelerons <filename>MONNOYAU</filename> + pour les besoins de notre exemple.</para> + + <note> + <para>Tout cela doit être fait sous le compte super-utilisateur sans + quoi vous aurez des erreurs + “<errortype>permission denied</errortype>”.</para> + </note> + + <para>Editez maintenant <filename>MONNOYAU</filename> avec votre éditeur + de texte préféré. Si vous venez tout juste de finir l'installation, le + seul éditeur disponible est probablement <command>vi</command>, qui + est trop complexe pour être décrit ici, mais est bien expliqué dans + de nombreux ouvrages de la + <link linkend="bibliography">Bibliographie</link>. + N'hésitez pas + à modifier les commentaires d'en-tête pour y décrire votre + configuration ou les modifications que vous avez apportées par rapport + à <filename>GENERIC</filename>.</para> + + <para>Si vous avez déjà compilé un noyau sur SunOs ou tout autre + système d'exploitation BSD, l'essentiel de ce que contient le + fichier vous sera très familier. Si vous venez d'un autre système + d'exploitation comme DOS, à l'inverse, le fichier de configuration + vous paraîtra peut-être inintelligible, lisez alors lentement et + attentivement la description qui en est faite dans la section + <link linkend="kernelconfig-config">Fichier de configuration</link>.</para> + + <note> + <para>Si vous essayez de mettre à jour votre noyau à partir d'une + ancienne version de FreeBSD, il vous faudra probablement une + version récente de + <citerefentry><refentrytitle>config</refentrytitle><manvolnum>8</manvolnum></citerefentry> + de même origine que les sources du nouveau noyau. Vous la trouverez + dans le répertoire <filename>/usr/src/usr.sbin</filename>. Il vous + faudra donc télécharger aussi les sources de cet utilitaire. + Recompilez et installez-le avant de faire autre chose.</para> + </note> + + <para>Une fois que vous avez terminé, tapez la commande suivante pour + compiler et installer votre noyau: + + <informalexample> + <screen>&prompt.root; <userinput>/usr/sbin/config MONNOYAU</userinput> +&prompt.root; <userinput>cd ../../compile/MONNOYAU</userinput> +&prompt.root; <userinput>make depend</userinput> +&prompt.root; <userinput>make</userinput> +&prompt.root; <userinput>make install</userinput></screen> + </informalexample> Le nouveau noyau sera recopié dans le répertoire + racine sous le nom <filename>/kernel</filename> et l'ancien renommé + en <filename>/kernel.old</filename>. Arrêtez maintenant votre système + et redémarrez-le pour utiliser votre nouveau noyau. Si + quelque chose tourne mal, il y a quelques instructions de + <link linkend="kernelconfig-trouble">dépannage</link> + à la fin de ce document. Ayez soin de lire la section qui explique + comment vous en sortir si votre nouveau noyau ne + <link linkend="kernelconfig-noboot">démarre pas</link>.</para> + + <note> + <para>Si vous avez ajouté de nouveaux périphériques (cartes son, + par exemple), vous devrez peut-être ajouter des + <link linkend="kernelconfig-nodes">fichiers spéciaux de périphériques</link> + dans votre répertoire <filename>/dev</filename> avant de pouvoir les + utiliser.</para> + </note> + + </sect1> + + <sect1 + id="kernelconfig-config"> + <title>Le fichier de configuration</title> + + <para>Le format général du fichier de configuration est assez simple. + Chaque ligne est composée d'un mot-clé et d'un ou plusieurs + arguments. Pour simplifier, la plupart des lignes ne prennent + qu'un seul argument. Tout ce qui suit le caractère + <literal>#</literal> est considéré comme un commentaire et ignoré. + Les sections suivantes décrivent chaque mot-clé, normalement dans + l'ordre où ils apparaîssent dans le fichier + <filename>GENERIC</filename>, quoique certains mots-clés + apparentés aient été regroupés en une seule section (Réseau par + exemple) bien qu'ils soient en fait dispersés dans le fichier + <filename>GENERIC</filename>. + <anchor id="kernelconfig-options">Il y a une liste exhaustive et + des explications plus détaillées des lignes se rapportant aux + périphériques dans le fichier de configuration + <filename>LINT</filename>, qui se trouve dans le + même répertoire que <filename>GENERIC</filename>. Si vous avez des + doutes sur la signification ou la nécessité d'une ligne, consultez + d'abord le fichier <filename>LINT</filename>.</para> + + <para>Le noyau est en cours de réorganisation pour une meilleure + gestion des options. Traditionnellement, chaque option du fichier + de configuration se traduisait par un indicateur <option>-D</option> + dans la ligne <acronym>CFLAGS</acronym> du fichier + <filename>Makefile</filename> du noyau. D'où une pléthore d'options, + dont personne ne savait vraiment lesquelles étaient référencées dans + quels fichiers.</para> + + <para>Dans le nouveau modèle, chaque <literal>#ifdef</literal> + qui dépend d'une option la déduit d'un fichier de déclarations + <filename>opt_<replaceable>foo</replaceable>.h</filename> + créé par la commande <command>config</command> dans le répertoire + de compilation. La liste des options valides de + <command>config</command> est définie par deux fichiers: les options + indépendantes de l'architecture dans + <filename>/sys/conf/options</filename>, et celles qui en dépendent + dans + <filename>/sys/<replaceable>arch</replaceable>/conf/options.<replaceable>arch</replaceable></filename>, + où <emphasis>arch</emphasis> vaut par exemple + <filename>i386</filename>.</para> + + + <sect2> + <title>Mots-clés obligatoires</title> + + <para>Ces mots-clés sont requis pour tous les noyaux que vous + générez.</para> + + + <variablelist> + <varlistentry><term>machine "i386"</term> + <listitem> + <para>Le premier mot-clé est <literal>machine</literal>, + qui, étant donné que FreeBSD ne tourne que sur des + processeurs Intel 386 ou compatibles, vaut i386.</para> + + <note> + <para>Tous les mots-clés composés d'une chaîne de + caractères comportant des chiffres doivent être + mis entre guillemets, sans quoi le programme + <command>config</command> ne les comprend pas et + pense que vous faites référence à la valeur + numérique, 386, par exemple.</para> + </note> + </listitem> + </varlistentry> + + <varlistentry><term>cpu "<replaceable>modèle_de_cpu</replaceable>"</term> + + <listitem> + <para>Le mot-clé suivant est <literal>cpu</literal>, + qui définit le support de chaque CPU reconnue par FreeBSD. + Les valeurs possibles de + <replaceable>modèle_de_cpu</replaceable> sont: + <itemizedlist> + + <listitem> + <para>I386_CPU</para> + </listitem> + + <listitem> + <para>I486_CPU</para> + </listitem> + + <listitem> + <para>I586_CPU</para> + </listitem> + + <listitem> + <para>I686_CPU</para> + </listitem> + + </itemizedlist>Il peut y avoir plusieurs occurences de la + ligne <literal>cpu</literal> avec des valeurs différentes + de <replaceable>modèle_de_cpu</replaceable> comme c'est + le cas dans le noyau <filename>GENERIC</filename>. + Dans le cas d'un noyau sur mesure, il vaut mieux n'indiquer + que l'unité centrale que vous avez. Si, par exemple, c'est + un Pentium Intel, donnez la valeur + <literal>I586_CPU</literal> à + <replaceable>modèle_de_cpu</replaceable>.</para> + </listitem> + </varlistentry> + + <varlistentry><term>ident <replaceable>nom_du_noyau</replaceable></term> + + <listitem> + <para>Ensuite vient <literal>ident</literal>, + qui est l'identifiant de votre noyau. Vous devriez + le modifier pour remplacer <literal>GENERIC</literal> + par le nom, quel qu'il soit, que vous donnez à votre + noyau; dans notre exemple, + <literal>MONNOYAU</literal>. La valeur que vous donnez à + <literal>ident</literal> s'affiche au démarrage du + système, il est donc parfois utile de lui donner un nom + différent du nom habituel (par exemple, si vous compilez + un noyau expérimental). Notez bien qu'il faut, comme pour + <literal>machine</literal> et <literal>cpu</literal>, + mettre le nom de votre noyau entre guillements, s'il + comporte des chiffres.</para> + + <para>Comme ce nom est transmis au compilateur C après un + indicateur <option>-D</option>, n'utilisez pas de nom + du genre <literal>DEBUG</literal>, ou qui puisse être + compris comme un nom de machine ou de CPU, du style + <literal>vax</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry><term>maxusers <replaceable>nombre</replaceable></term> + + <listitem> + <para>Cette ligne définit la taille d'un certain nombre + de tables importantes du système. Cette valeur est + supposée être en gros égale au nombre d'utilisateurs + simultanés que vous vous attendez à avoir sur votre + système. Cependant, dans des conditions normales, + vous devez fixer <literal>maxusers</literal> à + <literal>4</literal> au moins, en particulier si + vous utilisez le sous-système graphique X Window + ou compilez des logiciels. En effet, la valeur la plus + importante que dimensionne <literal>maxusers</literal> + est le nombre maximum de processus, qui est fixé à + <literal>20 + 16 * maxusers</literal>, de sorte que si + vous positionnez <literal>maxusers</literal> à + <literal>1</literal>, vous ne pouvez avoir que 36 + processus simultanés, dont les 18 environ que le système + lance au démarrage, et les 15 à peu près qui s'initialisent + au démarrage de X Window. Même une action aussi simple + que de lire une page de manuel activera 9 processus pour + la filtrer, la décompresser et la visualiser. Donner à + <literal>maxusers</literal> la valeur <literal>4</literal> + autorise jusqu'à 84 processus simultanés, ce qui devrait + suffire dans la plupart des cas. Si, toutefois, vous avez + le message d'erreur tant redouté + <errorname>proc table full</errorname> quand vous tentez + d'exécuter un nouveau programme, ou gérez un serveur + avec de nombreux utilisateurs simultanés + (tel le site FTP de Walnut Creek CDROM), vous pouvez + toujours augmenter cette valeur et recompiler le + noyau.</para> + + <note> + <para><literal>maxusers</literal> + <emphasis>ne limite pas</emphasis> le nombre + d'utilisateurs qui pourront ouvrir une session sur + votre machine. Cette valeur dimensionne simplement + raisonnablement différentes tables en fonction + du nombre maximum d'utilisateurs que vous aurez + vraisemblablement sur votre machine et du nombre + de processus que chacun d'entre eux exécutera. Un + mot-clé qui <emphasis>limite</emphasis> le nombre + d'<emphasis>utilisateurs distants</emphasis> est + <link linkend="kernelconfig-ptys">pseudo-device pty</link>.</para> + </note> + </listitem> + </varlistentry> + + <varlistentry><term>config <replaceable>nom_du_noyau</replaceable> root on + <replaceable>périphérique_racine</replaceable></term> + + <listitem> + <para>Cette ligne définit le nom et la localisation du + (fichier exécutable du) noyau. Traditionnellement, + le noyau s'appelle + <filename>vmunix</filename>, mais FreeBSD l'appelle, à juste + titre, <filename>kernel</filename>. Vous devriez toujours + utiliser <literal>kernel</literal> pour + <replaceable>nom_du_noyau</replaceable>, parce qu'en changer + rendra nombre d'utilitaires système inopérants. La deuxième + partie de la ligne indique sur quel disque et partition + résident le noyau et le système de fichiers racine, + typiquement <literal>wd0</literal> sur un système sans + disque SCSI, et <literal>sd0</literal> sur un système + avec des disques SCSI.</para> + </listitem> + </varlistentry> + </variablelist> + + + </sect2> + + <sect2> + <title>Options générales</title> + + <para>Ces lignes définissent les systèmes de fichiers supportés + par le noyau ainsi que certaines autres options.</para> + + <para> + <variablelist> + <varlistentry><term>options MATH_EMULATE</term> + <listitem> + <para>Cette ligne permet au noyau d'émuler un + co-processeur mathématique si votre système + n'en a pas (386 ou 486SX). Si vous avez un Pentium, + un 486DX, ou un 386 ou 486SX avec un co-processeur + mathématique 387 ou 487, vous pouvez mettre cette + ligne en commentaire.</para> + + <note> + <para>Les sous-programmes standards d'émulation de + co-processeur mathématique de FreeBSD + <emphasis>ne sont pas</emphasis> très précis. Si vous + n'avez pas de co-processeur mathématique, je vous + conseille de changer cette option en + <literal>GPL_MATH_EMULATE</literal> pour utiliser + les fonctions mathématiques GNU, qui ne sont pas + inclues par défaut pour des questions de licence.</para> + </note> + </listitem> + </varlistentry> + + <varlistentry><term>options "COMPAT_43"</term> + + <listitem> + <para>Compatibilité avec 4.3BSD. Gardez cette option; + certains programmes auront un comportement bizzare + si vous la commentez.</para> + </listitem> + </varlistentry> + + <varlistentry><term>options BOUNCE_BUFFERS</term> + + <listitem> + <para>Les périphériques ISA, et EISA fonctionnant en mode + compatible ISA, ne peuvent effectuer d'opérations DMA + ("Direct Memory Acces" - accès direct à la mémoire) + qu'en dessous de la limite de 16 méga-octets. Cette option + permet d'utiliser ces périphériques avec des systèmes ayant + plus de 16 méga-octets de mémoire.</para> + </listitem> + </varlistentry> + + <varlistentry><term>options UCONSOLE</term> + + <listitem> + <para>Permet aux utilisateurs d'accéder à la console système, + ce qui est utile avec X Window. Vous pouvez alors, + par exemple, ouvrir une console "xterm" avec + <command>xterm -C</command>, qui affichera les + sorties de <command>write</command>, + <command>talk</command> et les autres messages que vous + recevez, ainsi que tout message envoyé par le noyau + à la console.</para> + </listitem> + </varlistentry> + + <varlistentry><term>options SYSVSHM</term> + + <listitem> + <para>Cette option implémente la mémoire partagée de + System V. L'usage le plus courant qui en est fait + est l'extension XSHM d'X Window, dont nombre de logiciels + gourmants en graphique (comme le logiciel de visualisation + de films XAnim ou DOOM pour Linux) tireront automatiquement + parti pour fonctionner plus vite. Si vous utilisez X + Window, vous utiliserez absolument cette option.</para> + </listitem> + </varlistentry> + + <varlistentry><term>options SYSVSEM</term> + + <listitem> + <para>Cette option implémente les sémaphores de System V. + Ils sont d'un usage moins courant, mais cela n'augmente + que de quelques centaines d'octets la taille du + noyau.</para> + </listitem> + </varlistentry> + + <varlistentry><term>options SYSVMSG</term> + + <listitem> + <para>Cette option implémente les messages de System V. + De même, cela n'augmente que de quelques + centaines d'octets la taille du noyau.</para> + + <note> + <para>La commande <citerefentry><refentrytitle>ipcs</refentrytitle><manvolnum>1</manvolnum></citerefentry> + vous donnera la liste des processus qui utilisent chacun + de ces mécanismes de System V.</para> + </note> + </listitem> + </varlistentry> + </variablelist> + </para> + + </sect2> + + <sect2> + <title>Systèmes de fichiers</title> + + <para>Ces options incluent le support des différents systèmes + de fichiers. Vous devez au moins donner celle qui correspond + au périphérique à partir duquel vous démarrez votre système; + habituellement, ce sera <acronym>FFS</acronym> si vous chargez + le système depuis un disque dur, ou <acronym>NFS</acronym>, pour + une station sans disque récupérant son système via un réseau + Ethernet. Vous pouvez aussi indiquer les autres systèmes de + fichiers que vous utilisez couramment, mais n'hésitez pas à + commenter ceux qui vous sont d'un usage moins fréquent (peut-être + le système de fichiers MS-DOS?); ils seront chargés dynamiquement + depuis le répertoire <filename>lkm</filename> (Loadable Kernel + Module - modules du noyau à chargement dynamique) au premier montage + d'une partition de ce type.</para> + + + <variablelist> + <varlistentry><term>options FFS</term> + <listitem> + <para>Le système de fichiers de base sur disque dur; gardez + cette option si vous chargez le système depuis le disque + dur.</para> + </listitem> + </varlistentry> + + <varlistentry><term>options NFS</term> + + <listitem> + <para>Le système de fichiers en réseau. A moins que vous + n'envisagiez de monter des partitions depuis un serveur + de fichiers Unix via un réseau Ethernet, vous pouvez + commenter cette option.</para> + </listitem> + </varlistentry> + + <varlistentry><term>options MSDOSFS</term> + + <listitem> + <para>Le système de fichiers MS-DOS. A moins que vous + n'envisagiez de monter une partition formatée DOS + sur un disque dur au démarrage du système, vous pouvez + commenter sans risque cette option. Le module sera + automatiquement chargé la première fois que vous monterez + une partition DOS, comme décrit plus haut. Par ailleurs, + l'excellent logiciel <application>mtools</application> + (au catalogue des portages) permet d'accéder aux + disquettes DOS sans avoir besoin de les monter (et n'a + pas non plus besoin de MSDOSFS).</para> + </listitem> + </varlistentry> + + <varlistentry><term>options "CD9660"</term> + + <listitem> + <para>Le système de fichiers ISO 9660 pour les CD-ROMs. + Commentez-le si vous n'avez pas de lecteur de CD-ROMs ou ne + montez qu'occasionnellement des CD-ROMs (Il sera chargé + dynamiquement la première fois que vous monterez un + CD-ROM). Les CD-ROMs audio n'ont pas besoin de ce système + de fichiers.</para> + </listitem> + </varlistentry> + + <varlistentry><term>options PROCFS</term> + + <listitem> + <para>Le système de fichiers pour les processus. C'est un + pseudo-système de fichiers monté sur + <filename>/proc</filename> que des outils comme + <citerefentry><refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum></citerefentry> utilisent pour vous fournir plus d'informations + sur les processus qui s'exécutent.</para> + </listitem> + </varlistentry> + + <varlistentry><term>options MFS</term> + + <listitem> + <para>Système de fichiers en mémoire. C'est essentiellement + un disque RAM pour l'archivage rapide de fichiers + temporaires, utile si vous avez beaucoup d'espace de + pagination dont vous voulez tirer parti. Le répertoire + <filename>/tmp</filename> est un bon candidat pour le + montage d'une partition MFS, car de nombreux programmes + y mettent leurs données temporaires. Pour monter un disque + RAM MFS sur <filename>/tmp</filename>, ajoutez la ligne qui + suit au fichier <filename>/etc/fstab</filename> et + redémarrez le système ou tapez + <command>mount /tmp</command>: + + <programlisting> +/dev/wd1s2b /tmp mfs rw 0 0 + </programlisting> + </para> + + <note> + <para>Remplacez <filename>/dev/wd1s2b</filename> par + le nom de votre partition de pagination, qui est définie + comme suit dans votre fichier + <filename>/etc/fstab</filename>: + + <programlisting> +/dev/wd1s2b none swap sw 0 0 + </programlisting> + </para> + </note> + + <note> + <para>Le système de fichiers <acronym>MFS</acronym> + <emphasis>n'est pas</emphasis> chargeable dynamiquement, + <emphasis>vous devez</emphasis> donc l'inclure dans votre + noyau si vous voulez essayer de l'utiliser.</para> + </note> + </listitem> + </varlistentry> + + <varlistentry><term>options "EXT2FS"</term> + + <listitem> + <para>Système de fichiers natif de Linux. Avec le support + d'“ext2fs”, vous pouvez lire + et écrire sur des partitions + Linux. C'est utile si votre machine fonctionne + alternativement sous FreeBSD et sous Linux et que vous + voulez partager des données entre les deux systèmes.</para> + </listitem> + </varlistentry> + + <varlistentry><term>options QUOTA</term> + + <listitem> + <para>Active les quotas d'espace disque. Si votre système + est accessible à plusieurs utilisateurs et que vous + voulez éviter qu'ils ne saturent la partition + <filename>/home</filename>, vous pouvez définir des + quotas d'espace disque pour chaque utilisateur. + Reportez-vous au chapitre + <link linkend="quotas">Quotas d'espace disque</link> + pour plus d'informations.</para> + </listitem> + </varlistentry> + </variablelist> + + + </sect2> + + <sect2> + <title>Contrôleurs et périphériques standards</title> + + <para>Ces sections décrivent les contrôleurs de disques, lecteurs + de bandes magnétiques et lecteurs de CD-ROMs standards supportés + par FreeBSD. Les contrôleurs + <link linkend="kernelconfig-scsi">SCSI</link> et les cartes <link + linkend="kernelconfig-network">réseau</link> + sont décrits + dans des sections séparées.</para> + + + <variablelist> + <varlistentry><term>controller isa0</term> + <listitem> + <para>Tous les PC supportés par FreeBSD ont un contrôleur ISA. + Si vous avez un IBM PS/2 (Micro Channel Architecture), vous + ne pouvez pas utiliser FreeBSD pour l'instant.</para> + </listitem> + </varlistentry> + + <varlistentry><term>controller pci0</term> + + <listitem> + <para>Ajoutez cette option si vous avez une carte mère PCI. + Cela permet l'auto-détection des cartes PCI et gère + l'interface entre les bus PCI et ISA.</para> + </listitem> + </varlistentry> + + <varlistentry><term>controller fdc0</term> + + <listitem> + <para>Contrôleur de lecteur de + disquettes: <literal>fd0</literal> + correspond au lecteur de disquettes + <devicename>A:</devicename>, et + <literal>fd1</literal> au lecteur + <devicename>B:</devicename>. + <literal>ft0</literal> est le lecteur de bandes QIC-80 relié + au contrôleur du lecteur de disquettes. Commentez les lignes + correspondant aux périphériques que vous n'avez pas.</para> + + <note> + <para>Avec le lecteur de bandes QIC-80, vous devez de plus + utiliser un logiciel de filtrage appelé + <citerefentry><refentrytitle>ft</refentrytitle><manvolnum>8</manvolnum></citerefentry>, + reportez-vous à la page de manuel pour plus de + détails.</para> + </note> + </listitem> + </varlistentry> + + <varlistentry><term>controller wdc0</term> + + <listitem> + <para>C'est le contrôleur IDE primaire. <literal>wd0</literal> + et <literal>wd1</literal> sont respectivement, les disques + maître et esclave. + <literal>wdc1</literal> est le contrôleur IDE secondaire + sur lequel vous pouvez avoir un troisième et un quatrième + disque, ou un lecteur de CD-ROMs. Commentez les lignes qui + ne s'appliquent pas à votre configuration (par exemple, si + vous avez un disque SCSI, vous commenterez probablement + toutes les six lignes).</para> + </listitem> + </varlistentry> + + <varlistentry><term>device wcd0<anchor + id="kernelconfig-atapi"></term> + + <listitem> + <para>Cette option fournit le support du lecteur de CD-ROMs + IDE. Assurez-vous de conserver + <literal>wcd0</literal>, ainsi que + <literal>wcd1</literal> si vous avez plus d'un contrôleur + IDE et que votre CD-ROM est sur le second. Pour utiliser + cette option, vous devrez aussi inclure la ligne + <literal>options ATAPI</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry><term>device npx0 at isa? port "IO_NPX" irq 13 + vector npxintr</term> + + <listitem> + <para><literal>npx0</literal> est, dans FreeBSD, l'interface + avec le co-processeur mathématique, qu'il soit matériel ou + émulé par logiciel. Cette option + <emphasis>N'EST PAS</emphasis> facultative.</para> + </listitem> + </varlistentry> + + <varlistentry><term>device wt0 at isa? port 0x300 bio irq 5 drq + 1 vector wtintr</term> + + <listitem> + <para>Lecteurs de bandes Wangtek et Archive + QIC-02/QIC-36.</para> + </listitem> + </varlistentry> + + <varlistentry><term>Modèles spéciaux de lecteurs de CD-ROMs</term> + + <listitem> + <para>Les pilotes suivants sont ceux des lecteurs de + CD-ROMs soit-disant <emphasis>propriétaires</emphasis>. + Ces lecteurs ont leur propre contrôleur ou s'interfacent + parfois avec une carte son comme la carte SoundBlaster 16. + Ils ne sont <emphasis>ni</emphasis> IDE + <emphasis>ni</emphasis> SCSI. La plupart des anciens + lecteurs de CD-ROMs simple et double vitesse utilisent ces + interfaces, alors que les lecteurs quadruple vitesse sont + généralement soit <link linkend="kernelconfig-atapi">IDE</link>, + soit <link linkend="kernelconfig-scsi">SCSI</link>.</para> + + <para> + <variablelist> + <varlistentry><term>device mcd0 at isa? port 0x300 bio + irq 10 vector mcdintr</term> + <listitem> + <para>Mitsumi CD-ROM (LU002, LU005, FX001D).</para> + </listitem> + </varlistentry> + + <varlistentry><term>device scd0 at isa? port 0x230 + bio</term> + + <listitem> + <para>Sony CD-ROM (CDU31, CDU33A).</para> + </listitem> + </varlistentry> + + <varlistentry><term>controller matcd0 at isa? port ? + bio</term> + + <listitem> + <para>Matsushita/Panasonic CD-ROM (distribué par + Creative Labs pour la carte SoundBlaster).</para> + </listitem> + </varlistentry> + </variablelist> + </para> + </listitem> + </varlistentry> + </variablelist> + + + </sect2> + + <sect2 + id="kernelconfig-scsi"> + <title>Périphériques SCSI</title> + + <para>Cette section décrit les différents contrôleurs et + périphériques SCSI supportés par FreeBSD.</para> + + + <variablelist> + <varlistentry><term>Contrôleurs SCSI</term> + <listitem> + <para>La dizaine de lignes qui suit correspond au support de + différents type de contrôleurs SCSI. Commentez-les toutes + sauf celle(s) qui correspond(ent) à celui/ceux que vous + avez:</para> + + <para> + <variablelist> + <varlistentry><term>controller bt0 at isa? port + "IO_BT0" bio irq ? vector btintr</term> + <listitem> + <para>La plupart des contrôleurs Buslogic.</para> + </listitem> + </varlistentry> + + <varlistentry><term>controller uha0 at isa? port + "IO_UHA0" bio irq ? drq 5 vector uhaintr</term> + + <listitem> + <para>UltraStor 14F et 34F.</para> + </listitem> + </varlistentry> + + <varlistentry><term>controller ahc0</term> + + <listitem> + <para>Adaptec 274x/284x/294x.</para> + </listitem> + </varlistentry> + + <varlistentry><term>controller ahb0 at isa? bio irq ? + vector ahbintr</term> + + <listitem> + <para>Adaptec 174x.</para> + </listitem> + </varlistentry> + + <varlistentry><term>controller aha0 at isa? port + "IO_AHA0" bio irq ? drq 5 vector ahaintr</term> + + <listitem> + <para>Adaptec 154x.</para> + </listitem> + </varlistentry> + + <varlistentry><term>controller aic0 at isa? port + 0x340 bio irq 11 vector aicintr</term> + + <listitem> + <para>Adaptec 152x et les cartes sons utilisant + l'Adaptec AIC-6360 (lent!).</para> + </listitem> + </varlistentry> + + <varlistentry><term>controller nca0 at isa? port + 0x1f88 bio irq 10 vector ncaintr</term> + + <listitem> + <para>Carte ProAudioSpectrum avec NCR 5380 ou + Trantor T130.</para> + </listitem> + </varlistentry> + + <varlistentry><term>controller sea0 at isa? bio irq 5 + iomem 0xc8000 iosiz 0x2000 vector seaintr</term> + + <listitem> + <para>Contrôleur Seagate ST01/02 8 bits + (lent!).</para> + </listitem> + </varlistentry> + + <varlistentry><term>controller wds0 at isa? port + 0x350 bio irq 15 drq 6 vector wdsintr</term> + + <listitem> + <para>Contrôleur Western Digital WD700.</para> + </listitem> + </varlistentry> + + <varlistentry><term>controller ncr0</term> + + <listitem> + <para>Contrôleurs SCSI NCR 53C810, 53C815, 53C825, + 53C860, 53C875 PCI.</para> + </listitem> + </varlistentry> + </variablelist> + </para> + </listitem> + </varlistentry> + + <varlistentry><term>options "SCSI_DELAY=15"</term> + + <listitem> + <para>Cette option dit à votre noyau d'attendre 15 secondes + avec de rechercher les périphériques SCSI présents sur + votre système. Si vous n'avez que des disques IDE, vous + pouvez l'ignorer, sinon, vous pouvez peut-être diminuer + cette valeur, éventuellement jusqu'à 5 secondes, pour + accélerer le démarrage du système. Bien sûr, si vous le + faites et que FreeBSD a du mal à identifier vos + périphériques SCSI, vous devrez l'augmenter de + nouveau.</para> + </listitem> + </varlistentry> + + <varlistentry><term>controller scbus0</term> + + <listitem> + <para>Si vous avez des contrôleurs SCSI, cette ligne vous + en fournit le support générique. Si vous n'en avez pas, + commentez-la, ainsi que les trois lignes qui + suivent.</para> + </listitem> + </varlistentry> + + <varlistentry><term>device sd0</term> + + <listitem> + <para>Support de disque dur.</para> + </listitem> + </varlistentry> + + <varlistentry><term>device st0</term> + + <listitem> + <para>Support de lecteur de bandes SCSI.</para> + </listitem> + </varlistentry> + + <varlistentry><term>device cd0</term> + + <listitem> + <para>Support de lecteur de CD-ROMs SCSI.</para> + + <para>Notez bien que le chiffre <literal>0</literal> + dans les lignes précédentes n'est pas tout à fait exact: + tous ces périphériques sont automatiquement configurés + quand ils sont reconnus, quel que soit le nombre de + périphériques sur la ou les chaînes SCSI, et quels que + soient leurs IDs cibles.</para> + + <para>Si vous voulez “attacher” des IDs cibles + précis à des périphériques particuliers, reportez-vous + à la section appropriée du fichier de configuration du + noyau <filename>LINT</filename>.</para> + </listitem> + </varlistentry> + </variablelist> + + + </sect2> + + <sect2> + <title>Console, souris sur un bus, et serveur X</title> + + <para>Vous devez sélectionner un des deux types de console, et, + si vous envisagez d'utiliser le gestionnaire graphique X Window + avec la console vt220, activer l'option XSERVER. Optionnellement, + vous pouvez aussi choisir le support de souris sur un bus ou + PS/2.</para> + + <variablelist> + <varlistentry><term>device sc0 at isa? port "IO_KBD" tty irq 1 + vector scintr</term> + <listitem> + <para><literal>sc0</literal> est le pilote par défaut pour la + console, qui ressemble à une console SCO. Comme la plupart + des programmes en mode plein-écran accèdent à la console + par l'intermédiaire d'une base de données de description des + terminaux comme <filename>termcap</filename>, cela n'a guère + d'importance que vous choisissiez ce pilote ou le pilote + compatible VT220 <literal>vt0</literal>. Quand vous ouvrez + une session, positionnez la variable d'environnement + <envar>TERM</envar> à “scoansi” si vous avez + des problèmes pour utiliser des programmes en mode + plein-écran avec cette console.</para> + </listitem> + </varlistentry> + + <varlistentry><term>device vt0 at isa? port "IO_KBD" tty irq 1 + vector pcrint</term> + + <listitem> + <para>C'est le pilote de console compatible VT220, et, + retrospectivement, compatible avec les VT100/102. Il + fonctionne bien sur certains portables qui sont + matériellement incompatibles avec le pilote + <literal>sc0</literal>. Comme précédemment, positionnez la + variable d'environnement <envar>TERM</envar> à + <literal>vt100</literal> ou <literal>vt220</literal>, + cette fois-ci, quand vous ouvrez une session. Ce pilote + peut aussi s'avérer utile pour un certain nombre de + machines sur un réseau, pour lequelles le terminal + <devicename>sc0</devicename> est rarement défini dans les + fichiers <filename>termcap</filename> ou + <filename>terminfo</filename> + -- alors que le terminal <literal>vt100</literal> existe + pratiquement sur toutes les plates-formes.</para> + + <variablelist> + <varlistentry><term>options "PCVT_FREEBSD=210"</term> + <listitem> + <para>Obligatoire avec la console + <literal>vt0</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry><term>options XSERVER</term> + + <listitem> + <para>S'applique seulement à la console + <literal>vt0</literal>. Cette option inclut le + code nécessaire à l'utilisation du serveur X Window + <application>XFree86</application> avec la console + <literal>vt0</literal>.</para> + </listitem> + </varlistentry> + </variablelist> + + </listitem> + </varlistentry> + + <varlistentry><term>device mse0 at isa? port 0x23c tty irq 5 + vector ms</term> + + <listitem> + <para>Utilisez ce pilote si vous avez une carte Logitech + ou ATI InPort pour la souris.</para> + + <note> + <para>Si vous avez une souris sur le port série, ignorez + ces deux lignes, et, à la place, vérifiez que le port + <link linkend="kernelconfig-serial">série</link> + correspondant est bien activé + (probablement COM1).</para> + </note> + </listitem> + </varlistentry> + + <varlistentry><term>device psm0 at isa? port "IO_KBD" + conflicts tty irq 12 vector psmintr</term> + + <listitem> + <para>Utilisez ce pilote si votre souris se branche sur le + port PS/2.</para> + </listitem> + </varlistentry> + </variablelist> + + + </sect2> + + <sect2> + <title>Ports séries et parallèles</title> + + <para>Presque tous les systèmes ont ces ports. Si vous avez une + imprimante sur l'un d'eux, la section + <link linkend="printing">Imprimer</link> + de ce manuel vous + sera très utile. Si vous utilisez un modem, la section + <link linkend="dialup">Connexions téléphoniques</link> + vous fournit des informations détaillées sur la configuration du + port série pour ces périphériques.</para> + + + <variablelist> + <varlistentry><term>device sio0 at isa? port "IO_COM1" tty irq + 4 vector siointr<anchor id="kernelconfig-serial"></term> + <listitem> + <para><literal>sio0</literal> à <literal>sio3</literal> + sont les quatre ports séries, appelés COM1 à COM4 dans + le monde MS-DOS. Notez bien que si vous avez un modem + interne sur le port COM4 et un port série COM2, vous + devrez changer l'IRQ du modem en 2 (pour d'obscures + raisons techniques, IRQ 2 = IRQ 9) pour y accéder avec + FreeBSD. Si vous avez une carte série multi-ports, voyez + la page de manuel de + <citerefentry><refentrytitle>sio</refentrytitle><manvolnum>4</manvolnum></citerefentry> + pour plus d'informations sur les bonnes valeurs pour ces + lignes. Certaines cartes vidéo (notamment celles à base de + circuits S3) utilisent des adresses d'Entrée/Sortie du type + <literal>0x*2e8</literal>, et comme de nombreuses cartes + séries gèrent mal l'espace d'adressage complet sur + 16-bits, il y aura des conflits avec ces cartes, rendant + le port COM4 pratiquement inutilisable.</para> + + <para>Chaque port série doit avoir une IRQ unique (à moins + que vous n'utilisiez une carte multi-ports qui autorise + le partage d'interruption), de sorte que les IRQ par + défaut pour les ports COM3 et COM4 ne sont pas + utilisables.</para> + </listitem> + </varlistentry> + + <varlistentry><term>device lpt0 at isa? port? tty irq 7 vector + lptintr</term> + + <listitem> + <para><literal>lpt0</literal> à <literal>lpt2</literal> + sont les trois ports imprimante que vous pourriez + éventuellement avoir. La plupart des gens n'en ont qu'un, + n'hésitez donc pas à mettre en commentaires ceux que vous + n'avez pas.</para> + </listitem> + </varlistentry> + </variablelist> + + + </sect2> + + <sect2 + id="kernelconfig-network"> + <title>Le réseau</title> + + <para>FreeBSD, comme Unix en général, accorde + <emphasis>une</emphasis> grande importance au réseau. Donc, même + si vous n'avez pas de carte Ethernet, faites bien attention aux + options obligatoires et au support du réseau via une ligne + téléphonique.</para> + + + <variablelist> + <varlistentry><term>options INET</term> + <listitem> + <para>Support réseau. Conservez-le même si vous n'envisagez + pas de vous connecter à un réseau. La plupart des + programmes utilisent au moins le réseau "en boucle" (i.e. + établissent des connexions réseau avec le PC lui-même), + cette option est donc quasiment obligatoire.</para> + </listitem> + </varlistentry> + + <varlistentry><term>Cartes Ethernet</term> + + <listitem> + <para>Les lignes qui suivent incluent le support de + différentes cartes Ethernet. Si vous n'avez pas de + carte réseau, vous pouvez toutes les commenter. Sinon, + vous garderez le support pour la ou les cartes Ethernet + dont vous disposez:</para> + + <variablelist> + <varlistentry><term>device de0</term> + <listitem> + <para>Adaptateurs Ethernet à base de circuits + Digital Equipment DC21040, DC21041 ou DC21140.</para> + </listitem> + </varlistentry> + + <varlistentry><term>device fxp0</term> + + <listitem> + <para>Intel EtherExpress Pro/100B.</para> + </listitem> + </varlistentry> + + <varlistentry><term>device vx0</term> + + <listitem> + <para>3Com 3C590 et 3C595 (bogué).</para> + </listitem> + </varlistentry> + + <varlistentry><term>device cx0 at isa? port 0x240 net + irq 15 drq 7 vector cxintr</term> + + <listitem> + <para>Cronyx/Sigma multiport sync/async (avec + trames Cisco ou PPP).</para> + </listitem> + </varlistentry> + + <varlistentry><term>device ed0 at isa? port 0x280 net + irq 5 iomem 0xd8000 vector edintr</term> + + <listitem> + <para>Western Digital et SMC 80xx et 8216; Novell + NE1000 and NE2000; 3Com 3C503; HP PC Lan Plus + (HP27247B et HP27252A).</para> + </listitem> + </varlistentry> + + <varlistentry><term>device el0 at isa? port 0x300 net + irq 9 vector elintr</term> + + <listitem> + <para>3Com 3C501 (lent!).</para> + </listitem> + </varlistentry> + + <varlistentry><term>device eg0 at isa? port 0x310 net + irq 5 vector egintr</term> + + <listitem> + <para>3Com 3C505.</para> + </listitem> + </varlistentry> + + <varlistentry><term>device ep0 at isa? port 0x300 net + irq 10 vector epintr</term> + + <listitem> + <para>3Com 3C509 (bogué).</para> + </listitem> + </varlistentry> + + <varlistentry><term>device fe0 at isa? port 0x240 net + irq ? vector feintr</term> + + <listitem> + <para>Fujitsu MB86960A/MB86965A Ethernet.</para> + </listitem> + </varlistentry> + + <varlistentry><term>device fea0 at isa? net irq ? vector + feaintr</term> + + <listitem> + <para>Adaptateur DEC DEFEA EISA FDDI.</para> + </listitem> + </varlistentry> + + <varlistentry><term>device ie0 at isa? port 0x360 net + irq 7 iomem 0xd0000 vector ieintr</term> + + <listitem> + <para>AT&T StarLAN 10 et EN100; 3Com 3C507; + NI5210 quelconque.</para> + </listitem> + </varlistentry> + + <varlistentry><term>device ix0 at isa? port 0x300 net + irq 10 iomem 0xd0000 iosiz 32768 vector + ixintr</term> + + <listitem> + <para>Intel EtherExpress 16.</para> + </listitem> + </varlistentry> + + <varlistentry><term>device le0 at isa? port 0x300 net + irq 5 iomem 0xd0000 vector le_intr</term> + + <listitem> + <para>Digital Equipment EtherWorks 2 et EtherWorks + 3 (DEPCA, DE100, DE101, DE200, DE201, DE202, + DE203, DE204, DE205, DE422).</para> + </listitem> + </varlistentry> + + <varlistentry><term>device lnc0 at isa? port 0x300 net + irq 10 drq 0 vector lncintr</term> + + <listitem> + <para>Cartes Lance/PCnet (Isolan, Novell NE2100, + NE32-VL).</para> + </listitem> + </varlistentry> + + <varlistentry><term>device ze0 at isa? port 0x300 net + irq 5 iomem 0xd8000 vector zeintr</term> + + <listitem> + <para>Contrôleur Ethernet IBM/National Semiconductor + PCMCIA.</para> + </listitem> + </varlistentry> + + <varlistentry><term>device zp0 at isa? port 0x300 net + irq 10 iomem 0xd8000 vector zpintr</term> + + <listitem> + <para>3Com PCMCIA Etherlink III.</para> + </listitem> + </varlistentry> + </variablelist> + + + <note> + <para>Avec certaines cartes (notamment la NE2000) vous + devrez définir le port et/ou l'IRQ, car ces cartes + n'ont pas d'adresse “standard”.</para> + </note> + </listitem> + </varlistentry> + + <varlistentry><term>pseudo-device loop</term> + + <listitem> + <para><literal>loop</literal> est l'interface "en boucle" + générique de TCP/IP. Si vous employez telnet ou FTP sur + <hostid>localhost</hostid> + (a.k.a. <hostid role="ipaddr">127.0.0.1</hostid>) + la réponse vous arrivera via ce + pseudo-périphérique. Obligatoire.</para> + </listitem> + </varlistentry> + + <varlistentry><term>pseudo-device ether</term> + + <listitem> + <para><literal>ether</literal> ne sert que si vous avez une + carte Ethernet et inclut le code générique pour le + protocole Ethernet.</para> + </listitem> + </varlistentry> + + <varlistentry><term>pseudo-device sl + <replaceable>nombre</replaceable></term> + + <listitem> + <para><literal>sl</literal> est le support de SLIP + (Serial Line Internet Protocol - protocole Internet sur + ligne série). Il a pratiquement disparu au profit de PPP, + plus facile à mettre en oeuvre, mieux adapté aux connexions + par modem, et aussi plus puissant. La valeur numérique après + <literal>sl</literal> définit le nombre maximum de + connexions SLIP simultanées. + Ce manuel contient d'autres informations sur la mise en + place d'un <link linkend="slipc">client</link> ou d'un + <link linkend="slips">serveur</link> SLIP.</para> + </listitem> + </varlistentry> + + <varlistentry><term>pseudo-device ppp + <replaceable>nombre</replaceable></term> + + <listitem> + <para><literal>ppp</literal> est le support de + PPP (Point-to-Point Protocol - protocole point à point) + intégré au noyau, pour les connexions téléphoniques à + l'Internet. Il y a aussi une version de PPP sous forme + de programme utilisateur qui utilise le pseudo-périphérique + <devicename>tun</devicename> et offre plus de souplesse et + des possibilités, comme la connexion à la demande. Si vous + voulez cependant utiliser ce pilote PPP, lisez la section + <link linkend="ppp">Configurer PPP intégré au noyau</link> + de ce manuel. Comme pour le pilote <literal>sl</literal>, + <replaceable>nombre</replaceable> est le nombre maximum + de connexions PPP simultanées.</para> + </listitem> + </varlistentry> + + <varlistentry><term>pseudo-device tun + <replaceable>nombre</replaceable></term> + + <listitem> + <para><literal>tun</literal> est utilisé par le programme PPP + en mode utilisateur. Ce programme est facile à paramétrer + et très rapide. Il offre aussi des possibilités + particulières, comme la connexion automatique à la demande. + La valeur qui suit <literal>tun</literal> est le nombre + maximum de sessions PPP simultanées. Voyez la section + <link linkend="userppp">Configurer PPP en mode utilisateur</link> + de ce manuel pour plus + d'informations.</para> + </listitem> + </varlistentry> + + <varlistentry><term>pseudo-device bpfilter + <replaceable>nombre</replaceable></term> + + <listitem> + <para>Filtrage de paquets de Berkeley. Ce pseudo-périphérique + permet de mettre les interfaces + réseau en mode “indiscret”, + pour capturer tous les paquets sur un réseau de diffusion + (e.g. un réseau Ethernet). Ces paquets peuvent être + enregistrés sur disque et/ou examinés avec le programme + <citerefentry><refentrytitle>tcpdump</refentrytitle><manvolnum>1</manvolnum></citerefentry>. Rappelez-vous que la mise en service de cette + possibilité peut sérieusement compromettre la sécurité + globale de votre réseau. Le + <replaceable>nombre</replaceable> + après <literal>bpfilter</literal> est le nombre + d'interfaces qui peuvent être surveillées simultanément. + Optionnel et non recommandé, sauf à ceux qui ont pleinement + conscience des dangers éventuels. Toutes les cartes réseau + n'acceptent pas cette possibilité.</para> + </listitem> + </varlistentry> + </variablelist> + + + </sect2> + + <sect2> + <title>Cartes son</title> + + <para>C'est la première section qui comporte des lignes qui ne font + pas partie du noyau GENERIC. Pour inclure le support d'une carte + son, vous devrez copier les lignes adéquates du noyau LINT (qui + contient le support de <emphasis>tous</emphasis> les périphériques) + comme suit:</para> + + + <variablelist> + <varlistentry><term>controller snd0</term> + <listitem> + <para>Code générique du pilote de carte son. Requis pour + toutes les cartes ci-dessous, sauf + <literal>pca</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry><term>device pas0 at isa? port 0x388 irq 10 drq 6 + vector pasintr</term> + + <listitem> + <para>ProAudioSpectrum digital audio et MIDI.</para> + </listitem> + </varlistentry> + + <varlistentry><term>device sb0 at isa? port 0x220 irq 7 + conflicts drq 1 vector sbintr</term> + + <listitem> + <para>SoundBlaster digital audio.</para> + + <note> + <para>Si votre SoundBlaster est sur une IRQ différente + (5, par exemple), modifiez <literal>irq 7</literal> en + <literal>irq 5</literal>, par exemple, et supprimez + le mot-clé <literal>conflicts</literal>. Vous devrez aussi + ajouter la ligne: + <literal>options "SBC_IRQ=5"</literal></para> + </note> + </listitem> + </varlistentry> + + <varlistentry><term>device sbxvi0 at isa? drq 5</term> + + <listitem> + <para>SoundBlaster 16 digital 16-bits audio.</para> + + <note> + <para>Si votre SB16 est sur un canal DMA 16-bits + différent (tel que 6 ou 7), remplacez le mot-clé + <literal>drq 5</literal> par la valeur appropriée, et + ajoutez la ligne: + <literal>options "SB16_DMA=6"</literal>.</para> + </note> + </listitem> + </varlistentry> + + <varlistentry><term>device sbmidi0 at isa? port 0x330</term> + + <listitem> + <para>Interface SoundBlaster 16 MIDI. Si vous avez une + SoundBlaster 16, vous devez inclure cette ligne, sinon, + le noyau ne compilera pas.</para> + </listitem> + </varlistentry> + + <varlistentry><term>device gus0 at isa? port 0x220 irq 10 drq 1 + vector gusintr</term> + + <listitem> + <para>Gravis Ultrasound.</para> + </listitem> + </varlistentry> + + <varlistentry><term>device mss0 at isa? port 0x530 irq 10 drq 1 + vector adintr</term> + + <listitem> + <para>Microsoft Sound System.</para> + </listitem> + </varlistentry> + + <varlistentry><term>device opl0 at isa? port 0x388 + conflicts</term> + + <listitem> + <para>AdLib FM-synthesis audio. Ajoutez cette ligne pour + les cartes AdLib, SoundBlaster, et ProAudioSpectrum, + si vous voulez jouer de la musique au format MIDI avec + des logiciels comme <command>playmidi</command> + (au catalogue des logiciels portés).</para> + </listitem> + </varlistentry> + + <varlistentry><term>device mpu0 at isa? port 0x330 irq 6 drq + 0</term> + + <listitem> + <para>Carte d'extension Roland MPU-401.</para> + </listitem> + </varlistentry> + + <varlistentry><term>device uart0 at isa? port 0x330 irq 5 vector + "m6850intr"</term> + + <listitem> + <para>Carte d'extension 6850 UART pour MIDI.</para> + </listitem> + </varlistentry> + + <varlistentry><term>device pca0 at isa? port "IO_TIMER1" + tty<anchor id="kernelconfig-pcaudio"></term> + + <listitem> + <para>Son digital via le haut-parleur PC. Ce son sera de + très mauvaise qualité et consommera beaucoup de CPU, vous + êtes donc prévenus (mais il n'y a pas besoin de carte + son).</para> + </listitem> + </varlistentry> + </variablelist> + + + <note> + <para>Le fichier + <filename>/usr/src/sys/i386/isa/sound/sound.doc</filename>. + contient un complément de documentation. Si vous ajoutez l'un + de ces pilotes, créez aussi les + <link linkend="kernelconfig-nodes">fichiers spéciaux de périphériques</link> + pour le son.</para> + </note> + + </sect2> + + <sect2> + <title>Pseudo-périphériques</title> + + <para>Les pilotes de pseudo-périphériques sont des parties du noyau + qui se comportent comme des pilotes de périphériques mais ne + correspondent à aucun matériel de la machine. Les + pseudo-périphériques associés au + <link linkend="kernelconfig-network">réseau</link> + sont décrits dans la section + correspondante, les autres sont décrits ici.</para> + + + <variablelist> + <varlistentry><term>pseudo-device gzip</term> + <listitem> + <para><literal>gzip</literal> vous permet d'exécuter des + programmes FreeBSD qui ont été compressés avec la commande + <command>gzip</command>. C'est le cas des programmes du + répertoire <filename>/stand</filename>, aussi est-ce une + bonne idée de garder cette option dans votre noyau.</para> + </listitem> + </varlistentry> + + <varlistentry><term>pseudo-device log</term> + + <listitem> + <para><literal>log</literal> est utilisé pour tracer les + messages d'erreur du noyau. Indispensable.</para> + </listitem> + </varlistentry> + + <varlistentry><term>pseudo-device pty + <replaceable>nombre</replaceable><anchor + id="kernelconfig-ptys"></term> + + <listitem> + <para><literal>pty</literal> est un + “pseudo-terminal” ou un port simulant une + session. Il est utilisé par les sessions + <command>telnet</command> et <command>rlogin</command> + entrantes, par xterm, et d'autres applications comme emacs. + <replaceable>nombre</replaceable> est le nombre de + <literal>pty</literal>s à créer. S'il vous faut plus du + défaut <filename>GENERIC</filename> de 16 fenêtres xterm + et/ou connexions à distance simultanées, veillez à + augmenter cette valeur en conséquence, jusqu'au maximum + de 64.</para> + </listitem> + </varlistentry> + + <varlistentry><term>pseudo-device snp + <replaceable>nombre</replaceable></term> + + <listitem> + <para>Pseudo-périphérique espion. Ce pseudo-périphérique + permet à une session d'en espionner une autre avec la commande + <citerefentry><refentrytitle>watch</refentrytitle><manvolnum>8</manvolnum></citerefentry>. Notez + que l'implémentation de cette posibilité a d'importantes + conséquences sur la sécurité et la confidentialité. + Le <replaceable>nombre</replaceable> + qui suit snp est le nombre maximum de sessions + “espion” + simultanées. Optionnel.</para> + </listitem> + </varlistentry> + + <varlistentry><term>pseudo-device vn</term> + + <listitem> + <para>Pilote de noeud virtuel. Ce pilote permet d'utiliser + un fichier comme un périphérique après l'avoir configuré + avec la commande + <citerefentry><refentrytitle>vnconfig</refentrytitle><manvolnum>8</manvolnum></citerefentry>. + Il peut être utile pour manipuler des images de disquettes + ou pour utiliser un fichier comme périphérique de + pagination. (e.g. comme un fichier MS Windows de + pagination). En option.</para> + </listitem> + </varlistentry> + + <varlistentry><term>pseudo-device ccd + <replaceable>nombre</replaceable></term> + + <listitem> + <para>Disques concaténés, Ce pseudo-périphérique vous + permet de concaténer plusieurs partitions sur disque + en un seul gros “méta”-disque. Le + <replaceable>nombre</replaceable> après + ccd est le nombre maximum de disques concaténés (et non + le nombre maximum de disques qui peuvent être concaténés) + que l'on pourra créer. (Voyez les pages de manuel de + <citerefentry><refentrytitle>ccd</refentrytitle><manvolnum>4</manvolnum></citerefentry> + et <citerefentry><refentrytitle>ccdconfig</refentrytitle><manvolnum>8</manvolnum></citerefentry> + pour plus de détails.) En option.</para> + </listitem> + </varlistentry> + </variablelist> + + + </sect2> + + <sect2> + <title>Manette de jeu, haut-parleur PC, divers</title> + + <para>Cette section décrit des dispositifs divers qui sont + supportés par FreeBSD. Aucune de ces lignes ne se trouve + dans le noyau générique, vous devrez les recopier de ce manuel + ou du noyau LINT (qui inclut le support de + <emphasis>tous</emphasis> les périphériques):</para> + + <variablelist> + <varlistentry><term>device joy0 at isa? port "IO_GAME"</term> + <listitem> + <para>Manette de jeu PC.</para> + </listitem> + </varlistentry> + + <varlistentry><term>pseudo-device speaker</term> + + <listitem> + <para>Supporte les bruitages du style IBM BASIC via + le haut-parleur du PC. Certains programmes amusants + de <filename>/usr/sbin/spkrtest</filename>, qui est une + procédure qui joue quelques chansonnettes et + <filename>/usr/games/piano</filename>, qui vous permet + d'utiliser le clavier comme un piano rudimentaire (ce + fichier existe si vous avez installé les logiciels de + jeux <literal>games</literal>) utilisent cette possibilité. + L'excellent jeu de rôles en mode texte + <application>NetHack</application> (au catalogue des + logiciels portés) peut aussi être configuré pour faire + entendre la musique sur ce périphérique quand vous jouez + d'un instrument pendant le jeu.</para> + + <para>Voyez aussi ce qui concerne le périphérique + <link linkend="kernelconfig-pcaudio">pca0</link>.</para> + </listitem> + </varlistentry> + </variablelist> + + + </sect2> + </sect1> + + <sect1 + id="kernelconfig-nodes"> + <title>Créer les fichiers spéciaux de périphériques</title> + + <para>A pratiquement chaque périphérique correspond un + “noeud” (ou fichier spécial de périphérique) + dans le répertoire <filename>/dev</filename>. Ces noeuds ressemblent + à des fichiers ordinaires, mais sont en fait des points d'entrée + particuliers dans le noyau, qu'utilisent les programmes pour accéder + aux périphériques. La procédure + <filename>/dev/MAKEDEV</filename>, qui est exécutée à la première + installation du système d'exploitation, crée la plupart des noeuds + nécessaires. Cependant, elle ne les crée pas + <emphasis>tous</emphasis>, de sorte que, quand vous ajoutez le support + pour un nouveau périphérique, il vaut + la peine de vérifier que l'entrée + adéquate existe dans ce répertoire, et sinon, de l'y ajouter. Voici + un exemple simple:</para> + + <para>Supposons que vous ajoutiez au noyau le support du lecteur de + CD-ROMs IDE avec la ligne: + + <programlisting> +controller wcd0 + </programlisting> Cela signifie que vous devrez chercher une entrée + qui commence par <filename>wcd0</filename> dans le répertoire + <filename>/dev</filename>, éventuellement suivie d'une lettre comme + <literal>c</literal>, ou précédée de la lettre <literal>r</literal>, + qui désigne un périphérique en mode + caractère - “raw (brut)”. S'il + s'avère que ces fichiers n'existent + pas, vous devez aller dans le répertoire <filename>/dev</filename> + et taper: + + <informalexample> + <screen>&prompt.root; <userinput>sh MAKEDEV wcd0</userinput></screen> + </informalexample> Quand la procédure s'est exécutée, vous verrez + qu'il y a maintenant les entrées + <filename>wcd0c</filename> et <filename>rwcd0c</filename> + dans <filename>/dev</filename>. Ce qui vous confirme qu'elle a bien + fonctionné.</para> + + <para>Pour les cartes sons, la commande: + + <informalexample> + <screen>&prompt.root; <userinput>sh MAKEDEV snd0</userinput></screen> + </informalexample> créera les entrées nécessaires.</para> + + <note> + <para>Quand vous créez les noeuds pour des périphériques comme + les cartes sons, si d'autres personnes ont accès à votre + machine, il peut être souhaitable de protéger ces périphériques + d'accès extérieurs en les ajoutant au fichier + <filename>/etc/fbtab</filename> . Voyez <command>man + fbtab</command> pour plus d'informations.</para> + </note> + + <para>Suivez cette simple procédure pour tous les autres périphériques + absents de <filename>GENERIC</filename> pour lequels les entrées + n'existent pas encore.</para> + + <note> + <para>Tous les contrôleurs SCSI utilisent les mêmes entrées dans + <filename>/dev</filename>, vous n'avez donc pas besoin de les + créer. Par ailleurs, les cartes réseau et les pseudo-périphériques + SLIP/PPP n'ont pas d'entrée dans <filename>/dev</filename>, vous + n'avez donc pas non plus à vous en préoccupper.</para> + </note> + + </sect1> + + <sect1 + id="kernelconfig-trouble"> + <title>Si quelque chose se passe mal</title> + + <para>Il y a quatre types de problèmes que vous pouvez rencontrer + quand vous générez un noyau sur-mesure. Ce sont:</para> + + + <variablelist> + <varlistentry><term>La commande Config échoue.</term> + <listitem> + <para>Si la commande <command>config</command> échoue + quand vous lui donnez en paramètre la description de + votre noyau, vous avez probablement fait une simple + erreur quelque part. Heureusement + <command>config</command> vous affiche le numéro de + la ligne qui lui a posé problème, vous pouvez donc vous + y référez rapidement avec la commande <command>vi</command>. + Par exemple, si vous avez: + + <informalexample> + <screen>config: line 17: syntax error</screen> + </informalexample> vous pouvez aller droit au problème avec + <command>vi</command> en tapant <COMMAND>17G</COMMAND> + en mode commande. Vérifiez que le mot-clé est correctement + spécifié, en le comparant avec ce qu'il y a dans le noyau + GENERIC ou autre référence.</para> + </listitem> + </varlistentry> + + <varlistentry><term>La commande Make échoue.</term> + + <listitem> + <para>Si la commande <command>make</command> échoue, + c'est habituellement une erreur dans la description de + votre noyau, pas suffisamment sérieuse cependant pour + que la commande <command>config</command> la détecte. + Vérifiez là aussi votre fichier de configuration et, si + vous n'arrivez toujours pas à résoudre le problème, + adressez un courrier électronique à + &a.questions; en joignant votre fichier de configuration + du noyau, le diagnostic devrait être très rapide.</para> + </listitem> + </varlistentry> + + <varlistentry><term>Le système ne redémarre pas avec le nouveau + noyau<anchor + id="kernelconfig-noboot">.</term> + + <listitem> + <para>Si votre système ne redémarre pas avec le nouveau noyau, + ou ne reconnaît pas vos périphériques, ne paniquez pas! + BSD est heureusement doté d'un excellent mécanisme pour + récupérer si le noyau n'est pas cohérent. Tapez simplement + le nom du noyau que vous voulez charger à l'invite de + démarrage de FreeBSD + (i.e. <filename>kernel.old</filename>) au lieu d'appuyer + sur Entrée. Quand vous reconfigurez votre noyau, c'est + toujours une bonne idée de garder sous le coude un noyau + dont vous savez qu'il fonctionne.</para> + + <para>Après avoir démarré le système avec un noyau en état de + marche, vous pouvez revérifier votre fichier de configuration + et essayer de recompiler de nouveau votre noyau. Les + indications du fichier + <filename>/var/log/messages</filename> qui enregistre, entre + autres, tous les messages du noyau à chaque démarrage + réussi peuvent vous aider. La commande + <citerefentry><refentrytitle>dmesg</refentrytitle><manvolnum>8</manvolnum></citerefentry> + vous affichera aussi les messages du noyau pour le dernier + démarrage.</para> + + <note> + <para>Si vous avez des difficultés à compiler un noyau, + veillez à conserver un noyau <filename>GENERIC</filename>, + ou un autre noyau dont vous savez qu'il fonctionne, sous + la main, avec un nom différent de celui que vous générez, + de façon à ce qu'il ne soit pas écrasé par la prochaine + compilation. Vous ne pouvez pas vous fier au noyau + <filename>kernel.old</filename>, parce qu'à l'installation + du nouveau noyau, il est surchargé par le dernier noyau + installé, dont il n'est pas certain qu'il soit opérationnel. + Déplacez aussi, aussitôt que possible, le noyau opérationnel + vers le bon fichier <filename>kernel</filename>, sans quoi + des commandes comme + <citerefentry><refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum></citerefentry> + ne s'exécuteront pas correctement. La bonne commande pour + “déverrouiller” le fichier + <filename>kernel</filename> installé par la commande + <command>make</command> (pour mettre définitivement en + place une autre noyau) est: + + <informalexample> + <screen>&prompt.root; <userinput>chflags noschg /kernel</userinput></screen> + </informalexample> Si vous voulez + “verrouiller” le noyau que vous venez + d'installer, ou tout autre fichier le cas échéant, + de sorte qu'il ne puisse être déplacé ou modifié, + utilisez: + + <informalexample> + <screen>&prompt.root; <userinput>chflags schg /kernel</userinput></screen> + </informalexample> + </para> + </note> + </listitem> + </varlistentry> + + <varlistentry><term>Le noyau est opérationnel, mais la commande + <command>ps</command> ne fonctionne plus!</term> + + <listitem> + <para>Si vous avez installé une version du noyau différente de + celle avec laquelle ont été compilés les utilitaires système, + par exemple, un noyau expérimental “2.2.0” sur + un système 2.1.0-RELEASE, de nombreuses commandes d'affichage + de l'état du système, telles + <citerefentry><refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum></citerefentry> and <citerefentry><refentrytitle>vmstat</refentrytitle><manvolnum>8</manvolnum></citerefentry> + ne fonctionneront plus. Vous devez recompiler la + bibliothèque <filename>libkvm</filename> de même que ces + utilitaires. C'est une des raisons pour lesquelles il n'est + pas judicieux d'utiliser des versions différentes du noyau + et du reste du système d'exploitation.</para> + </listitem> + </varlistentry> + </variablelist> + + + + </sect1> + </chapter> +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-shorttag: nil + sgml-always-quote-attributes: t + sgml-minimize-attributes: max + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> diff --git a/fr_FR.ISO_8859-1/books/handbook/kerneldebug/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/kerneldebug/chapter.sgml new file mode 100644 index 0000000000..b8c33414c3 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/kerneldebug/chapter.sgml @@ -0,0 +1,682 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: 1.13 +--> + +<chapter id="kerneldebug"> + <title>Déboguer le noyau</title> + + <para><emphasis>Contribution de &a.paul; et &a.joerg;</emphasis></para> + &trans.a.haby; + + <sect1> + <title>Déboguer une trace de + plantage - <foreignphrase>crash + dump</foreignphrase> - avec <command>kgdb</command></title> + + <para>Voici quelques instructions pour déboguer le noyau en cas de + plantage. Elles supposent que vous avez suffisamment d'espace de + pagination pour enregistrer la trace du plantage. Si vous avez plusieurs + partitions de pagination et que la première est trop petite pour + archiver cette trace, vous pouvez configurer votre noyau pour utiliser + un autre fichier spécial de périphérique pour stocker + cette trace (à la ligne <literal>config kernel</literal>) ou vous + pouvez indiquer un autre fichier spécial de + périphérique avec la commande &man.dumpon.8;. La meilleure + méthode pour utiliser &man.dumpon.8; consiste à positionner + la variable <literal>dumpdev</literal> dans + <filename>/etc/rc.conf</filename>. Vous utiliserez typiquement une des + partitions de pagination définies dans + <filename>/etc/fstab</filename>. L'enregistrement de la trace sur d'autres + fichiers spéciaux de périphériques que les partitions + de pagination, des bandes par exemple, n'est actuellement pas + supporté. Configurez votre noyau avec <command>config -g</command>. + Reportez-vous au chapitre <link linkend="kernelconfig">Configuration du + noyau de FreeBSD</link> pour avoir plus de détails sur la + manière de procéder.</para> + + <para>Utilisez la commande &man.dumpon.8; pour dire au noyau où + enregistrer la trace (notez que cela doit être fait après + avoir configuré la partition en question comme partition de + pagination avec &man.swapon.8;). C'est normalement fait via + <filename>/etc/rc.conf</filename> et <filename>/etc/rc</filename>. Vous + pouvez aussi définir le fichier spécial de trace avec la + clause <literal>dump</literal> de la ligne <literal>config</literal> du + fichier de configuration du noyau. C'est déprécié + et ne devrait être utilisé que si vous voulez la trace d'un + plantage du noyau lors du démarrage du système.</para> + + <note> + <para>Dans ce qui suit, le terme <command>kgdb</command> se rapporte + à <command>gdb</command> exécuté en “mode + déboguage du noyau”. Cela se fait soit en lançant + <command>gdb</command> avec l'option <option>-k</option>, soit en + le générant et en le lançant sous le nom + <command>kgdb</command>. Ce n'est cependant pas fait par défaut, + et c'est une façon de faire obsolète, parce que les gens + du projet GNU n'aiment pas que leurs outils se comportent + différemment quand ils sont appelés d'un autre nom. Cette + fonctionnalité pourrait disparaître des versions + futures.</para> + </note> + + <para>Une fois que le noyau a été compilé, faites-en + une copie, disons <filename>kernel.debug</filename>, et exécutez + <command>strip -d</command> sur l'original. Installez l'original comme + d'habitude. Vous pouvez aussi installer le noyau non expurgé, mais + le temps de recherche dans la table des symboles augmentera de + façon dramatique pour certains programmes, et comme le noyau + est intégralement chargé en mémoire au + démarrage et y reste ensuite, vous gaspillerez plusieurs Mo de + mémoire physique.</para> + + <para>Si vous testez un nouveau noyau, par exemple en donnant le nom de ce + noyau au démarrage, mais avez besoin de démarrez avec un + autre noyau pour avoir de nouveau un système en état de + marche, démarrez uniquement en mode mono-utilisateur avec + l'indicateur <option>-s</option> à l'invite de démarrage et + effectuez ensuite les étapes suivantes :</para> + + <screen>&prompt.root; <userinput>fsck -p</userinput> +&prompt.root; <userinput>mount -a -t ufs</userinput> # de façon à ce qu'il soit possible d'écrire + # sur le système de fichiers pour /var/crash +&prompt.root; <userinput>savecore -N /kernel.panicked /var/crash</userinput> +&prompt.root; <userinput>exit</userinput> # ... en mode multi-utilisateur</screen> + + <para>Cela dit à &man.savecore.8; d'utiliser un autre noyau pour y + chercher les noms des symboles. Il utiliserait sans cela le noyau en cours + d'exécution et cela ne ménerait probablement à rien, + puisque les symboles de la trace de plantage et ceux du noyau ne sont pas + les mêmes.</para> + + <para>Maintenant, après un plantage, allez dans + <filename>/sys/compile/QUELQUE_CHOSE</filename> et lancez + <command>kgdb</command>. Sous <command>kgdb</command>, tapez :</para> + + <screen><userinput>symbol-file kernel.debug</userinput> +<userinput>exec-file /var/crash/kernel.0</userinput> +<userinput>core-file /var/crash/vmcore.0</userinput></screen> + + <para>et voilà, vous pouvez maintenant déboguer la trace de + plantage en vous servant des sources du noyau comme vous le feriez pour + n'importe quel autre programme.</para> + + <para>Voici la trace d'une session <command>kgdb</command> qui illustre la + façon de procéder. Les lignes trop longues ont + été scindées pour en faciliter la lecture, et les + lignes sont numérotées pour pouvoir y faire + référence. Malgré cela, c'est un exemple grandeur + nature, correspondant à une trace prise lors du + développement du pilote <devicename>pcvt</devicename>.</para> + +<screen> 1:Script started on Fri Dec 30 23:15:22 1994 + 2:&prompt.root; <userinput>cd /sys/compile/URIAH</userinput> + 3:&prompt.root; <userinput>kgdb kernel /var/crash/vmcore.1</userinput> + 4:Reading symbol data from /usr/src/sys/compile/URIAH/kernel +...done. + 5:IdlePTD 1f3000 + 6:panic: because you said to! + 7:current pcb at 1e3f70 + 8:Reading in symbols for ../../i386/i386/machdep.c...done. + 9:<prompt>(kgdb)</prompt> <userinput>where</userinput> +10:#0 boot (arghowto=256) (../../i386/i386/machdep.c line 767) +11:#1 0xf0115159 in panic () +12:#2 0xf01955bd in diediedie () (../../i386/i386/machdep.c line 698) +13:#3 0xf010185e in db_fncall () +14:#4 0xf0101586 in db_command (-266509132, -266509516, -267381073) +15:#5 0xf0101711 in db_command_loop () +16:#6 0xf01040a0 in db_trap () +17:#7 0xf0192976 in kdb_trap (12, 0, -272630436, -266743723) +18:#8 0xf019d2eb in trap_fatal (...) +19:#9 0xf019ce60 in trap_pfault (...) +20:#10 0xf019cb2f in trap (...) +21:#11 0xf01932a1 in exception:calltrap () +22:#12 0xf0191503 in cnopen (...) +23:#13 0xf0132c34 in spec_open () +24:#14 0xf012d014 in vn_open () +25:#15 0xf012a183 in open () +26:#16 0xf019d4eb in syscall (...) +27:<prompt>(kgdb)</prompt> <userinput>up 10</userinput> +28:Reading in symbols for ../../i386/i386/trap.c...done. +29:#10 0xf019cb2f in trap (frame={tf_es = -260440048, tf_ds = 16, tf_\ +30:edi = 3072, tf_esi = -266445372, tf_ebp = -272630356, tf_isp = -27\ +31:2630396, tf_ebx = -266427884, tf_edx = 12, tf_ecx = -266427884, tf\ +32:_eax = 64772224, tf_trapno = 12, tf_err = -272695296, tf_eip = -26\ +33:6672343, tf_cs = -266469368, tf_eflags = 66066, tf_esp = 3072, tf_\ +34:ss = -266427884}) (../../i386/i386/trap.c line 283) +35:283 (void) trap_pfault(&frame, FALSE); +36:<prompt>(kgdb)</prompt> <userinput>frame frame->tf_ebp frame->tf_eip</userinput> +37:Reading in symbols for ../../i386/isa/pcvt/pcvt_drv.c...done. +38:#0 0xf01ae729 in pcopen (dev=3072, flag=3, mode=8192, p=(struct p\ +39:roc *) 0xf07c0c00) (../../i386/isa/pcvt/pcvt_drv.c line 403) +40:403 return ((*linesw[tp->t_line].l_open)(dev, tp)); +41:<prompt>(kgdb)</prompt> <userinput>list</userinput> +42:398 +43:399 tp->t_state |= TS_CARR_ON; +44:400 tp->t_cflag |= CLOCAL; /* cannot be a modem (:-) */ +45:401 +46:402 #if PCVT_NETBSD || (PCVT_FREEBSD >= 200) +47:403 return ((*linesw[tp->t_line].l_open)(dev, tp)); +48:404 #else +49:405 return ((*linesw[tp->t_line].l_open)(dev, tp, flag)); +50:406 #endif /* PCVT_NETBSD || (PCVT_FREEBSD >= 200) */ +51:407 } +52:<prompt>(kgdb)</prompt> <userinput>print tp</userinput> +53:Reading in symbols for ../../i386/i386/cons.c...done. +54:$1 = (struct tty *) 0x1bae +55:<prompt>(kgdb)</prompt> <userinput>print tp->t_line</userinput> +56:$2 = 1767990816 +57:<prompt>(kgdb)</prompt> <userinput>up</userinput> +58:#1 0xf0191503 in cnopen (dev=0x00000000, flag=3, mode=8192, p=(st\ +59:ruct proc *) 0xf07c0c00) (../../i386/i386/cons.c line 126) +60: return ((*cdevsw[major(dev)].d_open)(dev, flag, mode, p)); +61:<prompt>(kgdb)</prompt> <userinput>up</userinput> +62:#2 0xf0132c34 in spec_open () +63:<prompt>(kgdb)</prompt> <userinput>up</userinput> +64:#3 0xf012d014 in vn_open () +65:<prompt>(kgdb)</prompt> <userinput>up</userinput> +66:#4 0xf012a183 in open () +67:<prompt>(kgdb)</prompt> <userinput>up</userinput> +68:#5 0xf019d4eb in syscall (frame={tf_es = 39, tf_ds = 39, tf_edi =\ +69: 2158592, tf_esi = 0, tf_ebp = -272638436, tf_isp = -272629788, tf\ +70:_ebx = 7086, tf_edx = 1, tf_ecx = 0, tf_eax = 5, tf_trapno = 582, \ +71:tf_err = 582, tf_eip = 75749, tf_cs = 31, tf_eflags = 582, tf_esp \ +72:= -272638456, tf_ss = 39}) (../../i386/i386/trap.c line 673) +73:673 error = (*callp->sy_call)(p, args, rval); +74:<prompt>(kgdb)</prompt> <userinput>up</userinput> +75:Initial frame selected; you cannot go up. +76:<prompt>(kgdb)</prompt> <userinput>quit</userinput> +77:&prompt.root; <userinput>exit</userinput> +78:exit +79: +80:Script done on Fri Dec 30 23:18:04 1994</screen> + <para>Commentaires sur les résultats ci-dessus :</para> + + <variablelist> + <varlistentry> + <term>ligne 6 :</term> + + <listitem> + <para>C'est une trace obtenue depuis DDB (voir plus bas), d'où + le commentaire panique “<foreignphrase>because you said + to!</foreignphrase> - parce que vous l'avez + demandé” - et une assez longue trace de la + pile d'exécution; la raison initiale du passage sous DDB est + néanmoins la détection d'un défaut de + page.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>ligne 20 :</term> + + <listitem> + <para>C'est la position de l'appel à la fonction + <function>trap()</function> dans la pile.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>ligne 36 :</term> + + <listitem> + <para>Impose l'utilisation d'un nouveau contexte de + pile - <foreignphrase>stack frame</foreignphrase>; ce + n'est dorénavant plus nécessaire. Les contextes de + pile sont maintenant censés pointer sur les bonnes adresses, + même en cas de débranchement. (Je n'ai pas de trace + récente de plantage sous la main; mon noyau n'a pas + paniqué depuis un certain temps.) Au vu de la ligne 403 du + code source, il y a de fortes chances pour que soit le pointeur de + “tp” soit erronné soit il y ait + débordement dans le tableau.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>ligne 52 :</term> + + <listitem> + <para>Le pointeur semble suspect, mais il se trouve que l'adresse est + valide.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>ligne 56 :</term> + + <listitem> + <para>Il pointe cependant sur n'importe quoi, nous avons donc + trouvé notre erreur! (Pour ceux qui ne sont pas + familiarisés avec ce code particulier : + <literal>tp->t_line</literal> se rapporte à la gestion de + la liaison - <foreignphrase>line + discipline</foreignphrase> - du périphérique + console, qui doit être un entier assez petit.)</para> + </listitem> + </varlistentry> + </variablelist> + </sect1> + + <sect1> + <title>Déboguer une trace de plantage avec DDD</title> + + <para>Il est aussi possible d'examiner une trace de plantage avec un + débogueur graphique comme <command>ddd</command>. Ajoutez l'option + <option>-k</option> à la ligne de commande de + <command>ddd</command> que vous utiliseriez normalement. Par + exemple :</para> + + <screen>&prompt.root; <userinput>ddd -k /var/crash/kernel.0 /var/crash/vmcore.0</userinput></screen> + + <para>Vous devriez maintenant pouvoir examiner la trace de plantage avec + l'interface graphique de <command>ddd</command>.</para> + </sect1> + + <sect1> + <title>Analyser la trace après plantage</title> + + <para>Que faire si le noyau plante alors que vous ne l'aviez pas + prévu et donc que vous ne l'avez pas compilé avec + <command>config -g</command> ? Tout n'est pas perdu. Ne paniquez + pas !</para> + + <para>Il faut bien sûr que vous autorisiez l'archivage des traces de + plantage. Voyez plus haut quelles options vous devez utiliser pour + cela.</para> + + <para>Allez dans le répertoire de compilation de votre noyau et + éditez la ligne contenant <literal>COPTFLAGS?=-O</literal>. + Ajoutez-y l'option <option>-g</option> (mais ne changez + <emphasis>rien</emphasis> au niveau d'optimisation. Si vous avez + déjà une vague idée de là où se situe + le code fautif (e.g., le pilote <devicename>pcvt</devicename> dans + l'exemple précédent), supprimez tous les fichiers objets + correspondant à ce code. Recompilez le noyau. Du fait de la + modification de la date du <filename>Makefile</filename>, d'autres + objets seront reconstruits, par exemple, <filename>trap.o</filename>. Avec + un peu de chance, l'option supplémentaire <option>-g</option> ne + changera rien au code généré, vous aurez donc un + nouveau noyau dont le code est similaire à celui qui a + planté à l'exception de quelques symboles de + débogage. Vérifiez au moins les tailles des deux noyaux avec + la commande &man.size.1;. Si elles ne correspondent pas, vous devrez + probablement en rester là.</para> + + <para>Examinez maintenant la trace comme décrit plus haut. Il y aura + probablement par endroit des symboles de débogage incomplets, comme + on peut le voir dans la trace de la pile de l'exemple plus haut, où + certaines fonctions sont listées sans numéro de ligne et + liste d'arguments. S'il vous faut plus d'informations, supprimez les + fichiers objets et reprenez la session <command>kgdb</command> + jusqu'à ce que vous en sachiez assez.</para> + + <para>Il n'y a aucune garantie que tout cela marche, mais cela fera + l'affaire dans la plupart des cas.</para> + </sect1> + + <sect1> + <title>Déboguer en ligne le noyau avec DDB</title> + + <para>Tandis que <command>kgdb</command> comme débogueur hors-ligne + procure une interface utilisateur de très haut niveau, il y a + certaines choses qu'il ne peut pas faire. Les principales sont la mise en + place de points d'arrêt et l'exécution pas -à-pas du + code du noyau.</para> + + <para>Si vous devez faire du débogage de bas niveau de votre noyau, + il y a un débogueur de bas niveau appelé DDB. Il permet la + mise en place des points d'arrêt, l'exécution instruction + par instruction des fonctions du noyau, l'examen et la modification + de variables du noyau, etc. Il ne peut cependant pas accéder aux + fichiers source du noyau et n'a accès qu'aux symboles globaux et + statiques et non à la totalité des informations comme + <command>kgdb</command>.</para> + + <para>Pour configurer votre noyau pour y inclure DDB, ajoutez la ligne + d'option :</para> + + <programlisting> +options DDB</programlisting> + + <para>à votre fichier de configuration et recompilez-le. + (Reportez-vous au chapitre <link linkend="kernelconfig">Configurer le + noyau de FreeBSD </link> pour plus de détails sur la configuration + du noyau de FreeBSD.)</para> + + <note> + <para>Si vous avez une ancienne version des blocs de démarrage, les + symboles du débogueur peuvent ne pas être chargés du + tout. Mettez à jour les blocs de démarrage; les versions + récentes chargent automagiquement les symboles de DDB.</para> + </note> + + <para>Une fois que votre noyau incluant DDB s'exécute, il y a + plusieurs façons de passer sous DDB. La première et la plus + immédiate est d'utiliser l'option <option>-d</option> dès le + démarrage; Le noyau démarrera en mode débogage et + passera sous DDB avant même de tester la présence des + périphériques. Vous pouvez donc même déboguer + les fonctions de test et d'attachement des + périphériques.</para> + + <para>Le seconde est d'utiliser une combinaison de touches du clavier, + habituellement + <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>>Esc</keycap></keycombo>. + Avec <devicename>syscons</devicename>, cette combinaison peut être + redéfinie; certaines redéfinitions distribuées du + clavier le font, faites-y donc attention. Il existe une option pour les + consoles série qui permet d'utiliser un <keysym>Break</keysym> sur + la ligne console pour passer sous DDB + (<literal>options BREAK_TO_DEBUGGER</literal> dans le fichier de + configuration du noyau). Ce n'est pas l'option par défaut, parce + qu'il y a de nombreux adaptateurs série qui génèrent + gratuitement un <keysym>Break</keysym>, par exemple, lorsque l'on + débranche le câble.</para> + + <para>Troisièmement, le noyau passe sous DDB lorsqu'une condition + panique intervient, s'il est configuré pour l'utiliser. En + conséquence, il vaut mieux ne pas configurer le noyau pour qu'il + inclue DDB, si la machine n'est pas sous surveillance.</para> + + <para>Les commandes de DDB ressemblent assez à celles de + <command>gdb</command>. La première chose que vous devrez + probablement faire sera de placer un point d'arrêt :</para> + + <screen><userinput>b nom-de-fonction</userinput> +<userinput>b adresse</userinput></screen> + + <para>Par défaut, les nombres sont normalement donnés en + hexadécimal, mais, pour les distinguer des noms de symboles, les + nombres hexadécimaux qui commencent par les lettres + <literal>a-f</literal> doivent être précédés de + <literal>0x</literal> (c'est facultatif pour les autres nombres). On peut + utiliser des expressions simples, par exemple : + <literal>nom-de-fonction + 0x103</literal>.</para> + + <para>Pour reprendre l'exécution interrompue du noyau, tapez + simplement :</para> + + <screen><userinput>c</userinput></screen> + + <para>Pour avoir le trace de la pile d'exécution, tapez :</para> + + <screen><userinput>trace</userinput></screen> + + <note> + <para>Remarquez que quand vous passez sous DDB avec une combinaison de + touches, le noyau traite en fait une interruption, le contenu de la pile + d'exécution ne vous sera alors peut-être pas très + utile.</para> + </note> + + <para>Si vous voulez supprimer un point d'arrêt, servez-vous + de :</para> + + <screen><userinput>del</userinput> +<userinput>del expression-définissant-l'adresse</userinput></screen> + + <para>Le premier exemple sert immédiatement après être + arrivé à un point d'arrêt et supprime ce point + d'arrêt. Le second exemple permet de supprimer n'importe quel point + d'arrêt, mais il faut donner son adresse exacte; on peut l'obtenir + avec :</para> + + <screen><userinput>show b</userinput></screen> + + <para>Pour exécuter pas-à-pas le noyau, essayez :</para> + + <screen><userinput>s</userinput></screen> + + <para>Vous exécuterez ainsi pas-à-pas les fonctions, mais vous + pouvez aussi faire en sorte que DDB aille jusqu'à l'instruction de + retour d'une fonction avec :</para> + + <screen><userinput>n</userinput></screen> + + <note> + <para>Ce n'est pas la même chose que la commande + <command>next</command> de <command>gdb</command>, mais c'est + l'équivalent de la commande <command>finish</command>.</para> + </note> + + <para>Pour consulter le contenu de la mémoire, employez (par + exemple) :</para> + + <screen><userinput>x/wx 0xf0133fe0,40</userinput> +<userinput>x/hd db_symtab_space</userinput> +<userinput>x/bc termbuf,10</userinput> +<userinput>x/s stringbuf</userinput></screen> + + <para>pour accéder à des mots/demi-mots/octets, et pour + afficher des chaînes de valeurs + hexadécimales/décimales/caractères. La valeur + après la virgule est le nombre d'éléments. Pour + afficher les <literal>0x10</literal> éléments suivants, + tapez simplement :</para> + + <screen><userinput>x ,10</userinput></screen> + + <para>De même, utilisez :</para> + + <screen><userinput>x/ia foofunc,10</userinput></screen> + + <para>pour désassembler les <literal>0x10</literal> premières + instructions de <function>foofunc</function>, et les afficher avec leur + déplacement depuis le début de + <function>foofunc</function>.</para> + + <para>Pour modifer le contenu de la mémoire, utilisez la commande + d'écriture :</para> + + <screen><userinput>w/b termbuf 0xa 0xb 0</userinput> +<userinput>w/w 0xf0010030 0 0</userinput></screen> + + <para>Le paramètre de la commande + (<literal>b</literal>/<literal>h</literal>/<literal>w</literal>) + indique la taille de la valeur à écrire, la première + expression qui suit est l'adresse où écrire et la suite est + interprétée comme donnant les valeurs à écrire + en séquence en mémoire.</para> + + <para>Si vous avez besoin de connaître le contenu des registres, + servez-vous de :</para> + + <screen><userinput>show reg</userinput></screen> + + <para>Vous pouvez aussi afficher la valeur d'un seul registre avec, par + exemple :</para> + + <screen><userinput>p $eax</userinput></screen> + + <para>et la modifier avec :</para> + + <screen><userinput>set $eax nouvelle-valeur</userinput></screen> + + <para>Si vous voulez appeler une fonction du noyau depuis DDB, dites + simplement :</para> + + <screen><userinput>call func(arg1, arg2, ...)</userinput></screen> + + <para>La valeur de retour sera affichée.</para> + + <para>Pour avoir un résumé du style &man.ps.1; des processus + lancés, utilisez :</para> + + <screen><userinput>ps</userinput></screen> + + <para>Vous avez maintenant examiné la raison de l'échec de + votre noyau, et voulez redémarrer le système. Rappelez-vous + que, selon la gravité des dysfonctionnements + précédents, toutes les parties du noyau ne fonctionneront + peut-être pas comme prévu. Redémarrez votre + système, avec l'un des moyens suivants :</para> + + <screen><userinput>call diediedie()</userinput></screen> + + <para>Votre noyau enregistrera une trace de plantage et redémarrera, + vous pourrez donc analyser à plus haut niveau la trace avec + <command>kgdb</command>. Cette commande doit habituellement être + suivie d'une instruction <command>continue</command>. Il y a maintenant + un alias pour cela : <command>panic</command>.</para> + + <screen><userinput>call boot(0)</userinput></screen> + + <para>C'est une bonne méthode pour arrêter proprement le + système, exécuter <function>sync()</function> sur tous les + disques et ensuite redémarrer. Tant que le disque et les interfaces + du système de fichier du noyau ne sont pas endommagés, ce + peut être une bonne façon d'arrêter presque proprement + le système.</para> + + <screen><userinput>call cpu_reset()</userinput></screen> + + <para>est la méthode ultime pour se sortir du désastre et + c'est à peu près la même chose que d'appuyer sur le + Bouton Rouge.</para> + + <para>Si vous avez besoin d'un bref résumé des commandes, + tapez simplemement :</para> + + <screen><userinput>help</userinput></screen> + + <para>Il est néanmoins chaudement recommandé d'avoir sous la + main un exemplaire des pages de manuel de &man.ddb.4; lors d'une session + de débogage. Rappelez-vous qu'il peut être difficile de lire + le manuel en ligne tandis que l'on exécute pas-à-pas le + noyau.</para> + </sect1> + + <sect1> + <title>Déboguer en ligne le noyau en utilisant GDB à + distance</title> + + <para>Cette fonctionnalité est supportée depuis FreeBSD 2.2, + et est de fait très élégante.</para> + + <para>GDB supporte déjà depuis longtemps le + <emphasis>débogage à distance</emphasis>. Cela se fait avec + un protocole très simple sur une ligne série. A l'inverse + des autres méthode décrite plus haut, il vous faudra pour + cela deux machines. L'une fournit l'environnement de débogage, y + compris la totalité des sources, et un exemplaire du binaire du + noyau incluant tous les symboles, et l'autre est la machine cible qui + exécute un exemplaire identique du noyau (mais sans les + informations de débogage).</para> + + <para>Vous devrez configurer le noyau en question avec <command>config + -g</command>, inclure <option>DDB</option> à sa configuration, et + le compiler comme d'habitude. Cela donne un binaire assez imposant, du + fait des informations de débogage. Copiez ce noyau sur la machine + cible, supprimez les informations de débogage avec <command>strip + -x</command>, et démarrez avec l'option <option>-d</option>. + Reliez la première ligne série de la machine cible à + n'importe quelle ligne série de la machine de débogage. + Allez maintenant dans le répertoire de compilation du noyau de la + machine de débogage, et lancez <command>gdb</command> :</para> + + <screen>&prompt.user; <userinput>gdb -k kernel</userinput> +GDB is free software and you are welcome to distribute copies of it + under certain conditions; type "show copying" to see the conditions. +There is absolutely no warranty for GDB; type "show warranty" for details. +GDB 4.16 (i386-unknown-freebsd), +Copyright 1996 Free Software Foundation, Inc... +<prompt>(kgdb)</prompt> </screen> + + <para>Initialisez la session de débogage à distance (en + supposant que l'on utilise le premier port série) + avec :</para> + + <screen><prompt>(kgdb)</prompt> <userinput>target remote /dev/cuaa0</userinput></screen> + + <para>Puis, sur la machine cible (celle qui est passée sous DDB avant + même de tester la présence des périphériques), + tapez :</para> + + <screen>Debugger("Boot flags requested debugger") +Stopped at Debugger+0x35: movb $0, edata+0x51bc +<prompt>db></prompt> <userinput>gdb</userinput></screen> + + <para>DDB répondra par :</para> + + <screen>Next trap will enter GDB remote protocol mode</screen> + + <para>Chaque que vous taperez <command>gdb</command>, vous passerez de GDB + à distance à DDB en local et inversement. Pour basculer + immédiatement, tapez simplement <command>s</command> + (<foreignphrase>step</foreignphrase>). Votre GDB hôte aura + maintenant le contrôle du noyau cible :</para> + + <screen>Remote debugging using /dev/cuaa0 +Debugger (msg=0xf01b0383 "Boot flags requested debugger") + at ../../i386/i386/db_interface.c:257 +<prompt>(kgdb)</prompt></screen> + + <para>Vous pouvez faire sous cette session à peu près les + mêmes choses qu'avec n'importe quelle autre session GDB, y compris + accéder intégralement au source, l'exécuter en mode + <foreignphrase>gud</foreignphrase> dans une fenêtre Emacs (ce qui + provoque l'affichage automatique du code source dans une autre + fenêtre Emacs), etc.</para> + + <para>GDB peut aussi être utilisé à distance pour + déboguer des modules du noyau à chargement + dynamique - <foreignphrase>LKM</foreignphrase>. Compilez d'abord + le module avec les symboles de débogage :</para> + + <screen>&prompt.root; <userinput>cd /usr/src/lkm/linux</userinput> +&prompt.root; <userinput>make clean; make COPTS=-g</userinput></screen> + + <para>Installez ensuite cette version du module sur la machine cible, + chargez-le et utilisez <command>modstat</command> pour trouver où + il a été chargé :</para> + + <screen>&prompt.root; <userinput>linux</userinput> +&prompt.root; <userinput>modstat</userinput> +Type Id Off Loadaddr Size Info Rev Module Name +EXEC 0 4 f5109000 001c f510f010 1 linux_mod</screen> + + <para>Prenez l'adresse de chargement et ajoutez-y <literal>0x20</literal> + (probablement pour prendre en compte l'en-tête a.out). C'est + l'adresse où le code du module a été relogé. + Utilisez la commande <command>add-symbol-file</command> de GDB pour + informer le débogueur de l'existence du module :</para> + + <screen><prompt>(kgdb)</prompt> <userinput>add-symbol-file /usr/src/lkm/linux/linux_mod.o 0xf5109020</userinput> +add symbol table from file "/usr/src/lkm/linux/linux_mod.o" at +text_addr = 0xf5109020? (y or n) <userinput>y</userinput> +<prompt>(kgdb)</prompt></screen> + + <para>Vous avez maintenant accès à tous les symboles du + module.</para> + </sect1> + + <sect1> + <title>Déboguer un pilote de console</title> + + <para>Comme vous avez besoin d'un pilote de console pour faire tourner DDB, + les choses sont plus compliquées si c'est le pilote de console + lui-même qui a des problèmes. Vous pouvez penser à + utiliser une console série (soit avec des blocs de démarrage + modifiés, soit en utilisant l'option <option>-h</option> à + l'invite <prompt>Boot:</prompt>) et connecter un terminal standard au + premier port série. DDB fonctionne avec n'importe quel pilote de + console configuré, donc bien sûr aussi avec une console + série.</para> + </sect1> +</chapter> + +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-always-quote-attributes: t + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> + diff --git a/fr_FR.ISO_8859-1/books/handbook/kernelopts/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/kernelopts/chapter.sgml new file mode 100644 index 0000000000..7837338269 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/kernelopts/chapter.sgml @@ -0,0 +1,200 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: 1.9 +--> + +<chapter id="kernelopts"> + <title>Ajouter de nouvelles options de configuration du noyau</title> + + <para><emphasis>Contribution de &a.joerg;</emphasis></para> + &trans.a.haby; + + <note> + <para>Vous devez être familiarisé avec le chapitre + <link linkend="kernelconfig">Configurer le noyau de FreeBSD</link> avant + de lire ce chapitre.</para> + </note> + + <sect1> + <title>Au fait, qu'est-ce-qu'une <emphasis>option du + noyau</emphasis> ?</title> + + <para>L'utilisation des options du noyau est principalement décrite + au chapitre <link linkend="kernelconfig-options">Configurer le noyau de + FreeBSD</link>. Il y a aussi des explications à propos des options + “historiques” et “nouveau style”. L'objectif final + est de remplacer toutes les options supportées du noyau par des + options de nouveau style, de façon à ce que pour ceux qui + ont correctement exécuté <command>make depend</command> dans + leur répertoire de compilation du noyau après + &man.config.8;, la phase de compilation retrouve automatiquement les + options modifiées et ne recompile que les fichiers + nécessaires. Il n'y aura alors plus besoin d'effacer tous les + fichiers de l'ancien répertoire de compilation après + chaque &man.config.8;, comme c'est encore le cas.</para> + + <para>Une option du noyau n'est essentiellement rien de plus que la + définition d'une macro-instruction du préprocesseur C pour + la compilation du noyau. Pour que la compilation soit vraiment + optionnelle, la partie correspondante du source du noyau (ou le fichier + <filename>.h</filename> du noyau) doit être écrit avec + l'option à l'esprit, i.e., la valeur par défaut doit pouvoir + être surchargée par l'option de configuration. C'est + habituellement réalisé avec quelque chose + comme :</para> + + <programlisting> +#ifndef CETTE_OPTION +#define CETTE_OPTION (une valeur par défaut) +#endif /* CETTE_OPTION */ + </programlisting> + + <para>De la sorte, un administrateur donnant une autre valeur à + l'option dans son fichier de configuration, désactivera la valeur + par défaut et la remplacera par sa nouvelle valeur. Bien + évidemment, la nouvelle valeur sera substituée dans le code + par le préprocesseur, ce doit donc être une expression C + valide dans le contexte dans lequel était utilisée la + valeur par défaut.</para> + + <para>Il est aussi possible de définir une option sans valeur qui + encadre une partie donnée du code pour la mettre en service ou + non :</para> + + <programlisting> +#ifdef CETTE_OPTION + +[votre code] + +#endif + </programlisting> + + <para>Simplement indiquer <literal>CETTE_OPTION</literal> dans le fichier de + de configuration (avec ou sans valeur) mettra en service le code + correspondant.</para> + + <para>Les gens qui ont l'habitude du langage C auront immédiatement + compris que n'importe quoi peut être une option de configuration, + dès lors qu'il y a au moins un <literal>#ifdef</literal> qui y fait + référence... Il y a cependant peu de chance que beaucoup + utilisent :</para> + + <programlisting> +options notyet,notdef</programlisting> + + <para>dans leur fichier de configuration, et se demandent ensuite pourquoi + la compilation du noyau échoue. <!-- smiley -->:-)</para> + + <para>A l'évidence, donner n'importe quel nom aux options rend + très difficile de retrouver où elles sont utilisées + dans l'arborescence des sources du noyau. C'est la raison d'être de + l'organisation des options de <emphasis>nouveau style</emphasis>, + dans laquelle chaque option est définie dans un + <filename>.h</filename> distinct du répertoire de compilation du + noyau, appelé par convention + <filename>opt_<replaceable>foo</replaceable>.h</filename>. De cette + façon, les dépendances habituelles dans le + <filename>Makefile</filename> s'appliquent, et <command>make</command> + peut savoir ce qu'il faut recompiler quand une option a été + modifiée.</para> + + <para>Le mécanisme d'option de style ancien a un avantage dans le cas + des options locales ou éventuellement expérimentales dont + la durée de vie prévue est courte : comme il est + simple d'ajouter un <literal>#ifdef</literal> au source du noyau, cela + en fait d'office une option de configuration du noyau. Dans ce cas, + l'administrateur qui utilise une telle option doit lui-même + savoir ce que cela implique (et éventuellement forcer la + recompilation de parties de son noyau). Une fois que toutes les options + supportées auront été converties, &man.config.8; + émettra un message d'avertissement toutes les fois qu'une option + non supportée sera détectée, mais il l'incluera + malgré tout dans le <filename>Makefile</filename> du + noyau.</para> + </sect1> + + <sect1> + <title>Que faut-il donc faire maintenant ?</title> + + <para>Editez d'abord <filename>sys/conf/options</filename> (ou + <filename>sys/i386/conf/options.<replaceable><arch></replaceable></filename>, + e. g., <filename>sys/i386/conf/options.i386</filename>), et + sélectionnez le fichier + <filename>opt_<replaceable>foo</replaceable>.h</filename> où votre + option ira le mieux.</para> + + <para>S'il y a déjà quelque chose qui se rapproche de + l'objectif de la nouvelle option, utilisez-le. Par exemple, les options + qui modifient le comportement général du sous-système + SCSI vont dans <filename>opt_scsi.h</filename>. Par défaut, le fait + d'indiquer une option dans le fichier d'option approprié, disons + <literal>FOO</literal>, implique que sa valeur sera définie dans le + fichier <filename>opt_foo.h</filename>. Ce peut être + surchargé dans la partie droite de la règle en indiquant un + autre nom de fichier.</para> + + <para>S'il n'y a pas encore de fichier + <filename>opt_<replaceable>foo</replaceable>.h</filename> pour la nouvelle + option envisagée, inventez un nouveau nom. Faites en sorte qu'il + soit significatif, et ajoutez des commentaires à la nouvelle + section du fichier + <filename>options[<replaceable>.<arch></replaceable>]</filename>. + &man.config.8; s'apercevra automagiquement de la modification et + créera ce fichier la prochaine fois qu'il sera utilisé. La + plupart des options vont normalement dans un fichier d'en-tête qui + leur est propre.</para> + + <para>Incorporer trop d'options à un même + <filename>opt_<replaceable>foo</replaceable>.h</filename> entraînera + la recompilation de nombreux fichiers du noyau dès qu'une des + options du fichier de configuration aura été + modifiée.</para> + + <para>Pour finir, déterminez quels fichiers du noyau dépendent + de la nouvelle option. A moins que vous veniez de l'inventer, et qu'elle + n'existe encore nulle part :</para> + <screen>&prompt.user; <userinput>find /usr/src/sys -name type f | xargs fgrep NEW_OPTION</userinput></screen> + <para>vous aidera à les trouver. Editez ces fichiers et + ajoutez-y :</para> + <programlisting> +#include "opt_foo.h" + </programlisting> + <para><emphasis>au début</emphasis>, avant tout autre + <literal>#include <xxx.h></literal>. Cet ordre est très + important, parce que les options peuvent surcharger les valeurs par + défaut des fichiers inclus habituels, si les valeurs par + défaut sont données sous forme :</para> + <programlisting> +#ifndef NOUVELLE_OPTION +#define NOUVELLE_OPTION (quelque chose) +#endif + </programlisting> + <para>dans l'en-tête habituelle.</para> + + <para>Ajouter une option qui redéfinisse quelque chose dans un + fichier d'en-tête du système (i.e., un fichier dans + <filename>/usr/include/sys/</filename>) est presque toujours une erreur. + <filename>opt_<replaceable>foo</replaceable>.h</filename> ne peut pas + être inclus dans ces fichiers parce que cela dégraderait plus + sérieusement les en-têtes, et s'il n'est pas inclus, il peut + alors y avoir des valeurs inconsistantes pour l'option là + où il est inclus. Oui, il y a déjà des + précédents, mais cela ne rend pas l'opération plus + correcte.</para> + </sect1> +</chapter> + +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-always-quote-attributes: t + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> + diff --git a/fr_FR.ISO_8859-1/books/handbook/l10n/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/l10n/chapter.sgml new file mode 100644 index 0000000000..f7e8c9fae2 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/l10n/chapter.sgml @@ -0,0 +1,376 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: 1.9 +--> + +<chapter id="l10n"> + <title>Localisation</title> + &trans.a.haby; + + <sect1 id="russian"> + <title>Russe (codage KOI8-R)</title> + + <para><emphasis>Contribution de &a.ache; 1 Mai + 1997</emphasis>.</para> + + <para>Vous trouverez plus d'informations sur la codification KOI8-R dans les + <ulink URL="http://www.nagual.pp.ru/~ache/koi8.html">Références + KOI8-R (Jeu de caractères russes pour Internet)</ulink>.</para> + + <sect2 id="russian-console"> + <title>Configuration de la console</title> + + <procedure> + <step> + <para>Ajoutez la ligne suivante à votre fichier de + configuration du noyau :</para> + + <programlisting> +options "SC_MOUSE_CHAR=0x03"</programlisting> + + <para>pour déplacer les codes utilisés pour le curseur + de la souris hors de la plage des caractères + pseudographiques KOI8-R.</para> + </step> + + <step> + <para>L'entrée pour la console russe de + <filename>/etc/rc.conf</filename> doit ressembler + à :</para> + + <programlisting> +keymap=ru.koi8-r +keychange="61 ^[[K" +scrnmap=koi8-r2cp866 +font8x16=cp866b-8x16 +font8x14=cp866-8x14 +font8x8=cp866-8x8</programlisting> + + <note> + <para><literal>^[</literal> signifie qu'il faut mettre le + caractère <keycap>ESC</keycap> dans + <filename>/etc/rc.conf</filename>, et non la chaîne de + caractères <literal>^[</literal>.</para> + </note> + + <para>Cela correspond au clavier KOI8-R avec la police de + caractères alternative correspondant à la codification + KOI8-R pour conserver les caractères pseudographiques et + à la touche <keycap>Gray Delete</keycap> + reconfigurée pour correspondre à l'entrée pour + le russe de &man.termcap.5; pour la console FreeBSD.</para> + + <para>Le passage de russe à latin se fera avec + <keycap>CapsLock</keycap>. L'ancienne fonctionnalitée de + <keycap>CapsLock</keycap> est toujours disponible avec + <keycombo><keycap>Shift</keycap><keycap>CapsLock</keycap></keycombo>. + La diode <keycap>CapsLock</keycap> indiquera que le mode russe est + actif, et non le mode majuscules.</para> + </step> + + <step> + <para>Pour chaque entrée <literal>ttyv?</literal> de + <filename>/etc/ttys</filename>, modifiez le type de terminal de + <literal>cons25</literal> en <literal>cons25r</literal>, i.e., + chaque entrée ressemblera à :</para> + + <programlisting> +ttyv0 "/usr/libexec/getty Pc" cons25r on secure</programlisting> + </step> + </procedure> + </sect2> + + <sect2 id="russian-locale"> + <title>Configuration pour + “<foreignphrase>locale</foreignphrase>”</title> + + <para><anchor id="russian-env">Il y a deux variables d'environnement pour + la configuration de + “<foreignphrase>locale</foreignphrase>” :</para> + + <itemizedlist> + <listitem> + <para><envar>LANG</envar> pour la famille de fonctions POSIX + &man.setlocale.3;,</para> + </listitem> + + <listitem> + <para><envar>MM_CHARSET</envar> pour le jeu de caractères des + applications MIME.</para> + </listitem> + </itemizedlist> + + <para>La meilleure façon de procéder est d'utiliser la + classe de session utilisateur <literal>russian</literal> de + &man.passwd.5; dans <filename>/etc/login.conf</filename>. Reportez-vous + aux pages de manuel de &man.login.conf.5; pour plus de + précisions.</para> + + <sect3 id="russian-class"> + <title>Méthode utilisant la classe de session utilisateur</title> + + <para>Vérifiez tout d'abord qu'il y a bien une classe de session + <literal>russian</literal> dans votre + <filename>/etc/login.conf</filename>, cette entrée ressemble + probablement à :</para> + + <programlisting> +russian:Russian Users Accounts:\ + :charset=KOI8-R:\ + :lang=ru_RU.KOI8-R:\ + :tc=default:</programlisting> + + <sect4> + <title>Comment faire avec &man.vipw.8;</title> + + <para>Si vous utilisez &man.vipw.8; pour ajouter de nouveaux comptes, + les entrées de <filename>/etc/master.passwd</filename> + doivent ressembler à :</para> + + <programlisting> +utilisateur:mot_de_passe:1111:11:russian:0:0:Nom d'utilisateur: + /home/utilisateur:/bin/csh</programlisting> + </sect4> + + <sect4> + <title>Comment faire avec &man.adduser.8;</title> + + <para>Si vous utilisez &man.adduser.8; pour ajouter de nouveaux + comptes :</para> + + <itemizedlist> + <listitem> + <para>Positionnez :</para> + + <programlisting> +defaultclass = russian</programlisting> + + <para>dans <filename>/etc/adduser.conf</filename> (vous devez + dans ce cas indiquer la classe <literal>default</literal> pour + tous les comptes autres que russes),</para> + </listitem> + + <listitem> + <para>Une autre façon de faire est de répondre + <literal>russian</literal> chaque fois que vous + voyez l'invite :</para> + + <screen><prompt>Enter login class:</prompt> default []:</screen> + <para>de &man.adduser.8;,</para> + </listitem> + + <listitem> + <para>Autre variante : utilisez :</para> + + <screen>&prompt.root; <userinput>adduser -class russian</userinput></screen> + + <para>chaque fois que vous voulez ajouter un compte utilisateur + russe.</para> + </listitem> + </itemizedlist> + </sect4> + + <sect4> + <title>Comment faire avec &man.pw.8;</title> + + <para>Si vous utilisez &man.pw.8; pour ajouter de nouveaux comptes, + appelez-le comme suit :</para> + + <screen>&prompt.root; <userinput>pw useradd nom_d_utilisateur -L russian</userinput></screen> + </sect4> + </sect3> + + <sect3> + <title>Méthode utilisant les fichiers d'initialisation de + l'interpréteur de commandes</title> + + <para>Si vous ne voulez pas utiliser <link linkend="russian-class">la + méthode par la classe de session</link> pour une raison ou une + autre, positionnez simplement ces <link linkend="russian-env">deux + variables d'environnement</link> dans les fichiers de démarrage + de l'interpréteur de commandes suivants :</para> + + <itemizedlist> + <listitem> + <para><filename>/etc/profile</filename> :</para> + + <programlisting> +LANG=ru_RU.KOI8-R; export LANG +MM_CHARSET=KOI8-R; export MM_CHARSET</programlisting> + </listitem> + + <listitem> + <para><filename>/etc/csh.login</filename> :</para> + + <programlisting> +setenv LANG ru_RU.KOI8-R +setenv MM_CHARSET KOI8-R</programlisting> + </listitem> + </itemizedlist> + + <para>Vous pouvez aussi ajouter ces instructions à :</para> + + <itemizedlist> + <listitem> + <para><filename>/usr/share/skel/dot.profile</filename> :</para> + + <para>(comme pour <filename>/etc/profile</filename> + ci-dessus);</para> + </listitem> + + <listitem> + <para><filename>/usr/share/skel/dot.login</filename> :</para> + + <para>(comme pour <filename>/etc/csh.login</filename> + ci-dessus).</para> + </listitem> + </itemizedlist> + </sect3> + </sect2> + + <sect2 id="russian-printer"> + <title>Configuration de l'imprimante</title> + + <para>Comme la plupart des imprimantes qui ont un jeu de caractères + russes ont un “code page” matériel CP866, il faut un + filtre de sortie spécial pour la conversion KOI8-R -> CP866. + Ce type de filtre s'installe par défaut dans + <filename>/usr/libexec/lpr/ru/koi2alt</filename>. L'entrée de + <filename>/etc/printcap</filename> pour l'imprimante russe devra donc + ressembler à :</para> + + <programlisting> +lp|Imprimante ligne russe locale:\ + :sh:of=/usr/libexec/lpr/ru/koi2alt:\ + :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:</programlisting> + + <para>Reportez-vous aux pages de manuel de &man.printcap.5; pour plus de + détails.</para> + </sect2> + + <sect2 id="russian-msdosfs"> + <title>Système de fichiers MSDOS et noms de fichiers russes</title> + + <para>Suivez l'exemple d'entrée dans &man.fstab.5; ci-dessous pour + autoriser les noms de fichiers en russe avec le système de + fichiers MSDOS :</para> + + <programlisting> +/dev/sd0s1 /dos/c msdos rw,-W=koi2dos,-L=ru_RU.KOI8-R 0 0</programlisting> + + <para>Reportez-vous aux pages de manuel de &man.mount.msdos.8; pour avoir + une description détaillée des options <option>-W</option> + et <option>-L</option>.</para> + </sect2> + + <sect2 id="russian-xwindow"> + <title>Configuration de X Window</title> + + <para>Instructions pas-à-pas:</para> + + <procedure> + <step> + <para>Configurez d'abord + <link linkend="russian-locale">“<foreignphrase>locale</foreignphrase>”</link> + indépendamment de X, comme expliqué plus haut.</para> + + <note> + <para><anchor id="russian-note">La configuration KOI8-R russe pour + “<foreignphrase>locale</foreignphrase>” peut ne pas + marcher avec d'anciennes versions de XFree86 (antérieures + à la 3.3). La version de XFree86 de + <filename>/usr/ports/x11/XFree86</filename> est d'hors et + déjà la plus récente, cela fonctionnera donc, + si vous avez installé cette version de XFree86. La version + de XFree86 fournie avec la dernière version de FreeBSD + devrait aussi marcher (Vérifiez que le numéro de + version de XFree86 est au moins 3.3).</para> + </note> + </step> + + <step> + <para>Allez dans le répertoire + <filename>/usr/ports/russian/X.language</filename> et + tapez-y :</para> + + <screen>&prompt.root; <userinput>make all install</userinput></screen> + <para>Cela installe la dernière version des polices de + caractères KOI8-R. Il y a déjà des polices + KOI8-R fournies avec XFree86 3.3, mais les précédentes + se redimensionnent mieux.</para> + + <para>Consultez la section <literal>"Files"</literal> de votre + <filename>/etc/XF86Config</filename>, les lignes suivantes doivent + précéder toutes autres entrées + <literal>FontPath</literal> :</para> + + <programlisting> +FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/misc" +FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi" +FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi"</programlisting> + + <para>Si vous utilisez un mode vidéo haute résolution, + intervertissez les lignes 75 dpi et 100 dpi.</para> + </step> + + <step> + <para>Pour mettre en service le clavier russe, ajoutez la + ligne :</para> + + <programlisting> +XkbKeymap "xfree86(ru)" + </programlisting> + + <para>à la section <literal>"Keyboard"</literal> de + <filename>/etc/XF86Config</filename>, et vérifiez que + <literal>XkbDisable</literal> y est désactivé + (mis en commentaires).</para> + + <para>Le passage de russe à latin se fera avec + <keycap>CapsLock</keycap>. L'ancienne fonctionnalitée de + CapsLock est toujours disponible avec + <keycombo><keycap>Shift</keycap><keycap>CapsLock</keycap></keycombo> + (en mode latin uniquement).</para> + + <note> + <para>Le clavier russe XKB peut ne pas fonctionner avec d'anciennes + versions de XFree86, voyez la <link linkend="russian-note">note + à propos de + “<foreignphrase>locale</foreignphrase>”</link> pour + plus d'informations. Le clavier russe XKB peut aussi ne pas + fonctionner avec des applications non localisées, pour + être un minimum localisée, une application doit + appeler la fonction + <literal>XtSetLanguageProc (NULL, NULL, NULL);</literal> assez en + amont dans le code.</para> + </note> + </step> + </procedure> + </sect2> + </sect1> + + <sect1 id="german"> + <title>Allemand (ISO 8859-1)</title> + + <para>Slaven Rezic <email>eserte@cs.tu-berlin.de</email> a + rédigé un guide sur l'utilisation des + <foreignphrase>umlaut</foreignphrase>s sur une machine FreeBSD. Ce guide + est écrit en allemand et disponible sur + <ulink URL="http://www.de.freebsd.org/de/umlaute/">http://www.de.freebsd.org/de/umlaute/</ulink>.</para> + </sect1> +</chapter> + +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-always-quote-attributes: t + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> + diff --git a/fr_FR.ISO_8859-1/books/handbook/linuxemu/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/linuxemu/chapter.sgml new file mode 100644 index 0000000000..45a5234038 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/linuxemu/chapter.sgml @@ -0,0 +1,973 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: 1.11 +--> + +<chapter id="linuxemu"> + <title>Emulation Linux</title> + + <para><emphasis>Contribution de &a.handy; et &a.rich;</emphasis></para> + &trans.a.haby; + + <sect1> + <title>Comment installer l'émulateur Linux</title> + + <para>L'émulation de Linux sous FreeBSD a atteint un point où + il est possible d'exécuter une grande partie des binaires Linux + et au format a.out et au format ELF. L'émulation Linux de la + branche 2.1-stable peut exécuter les versions Linux de Doom et + Mathematica; la version de l'émulateur sous &rel.current;-release + a encore plus de possibilités et exécute en plus de ces + programmes, les versions Linux de Quake, Abuse, IDL, netrek et bien + d'autres programmes.</para> + + <para>Il y a quelques particularités du système d'exploitation + Linux qui ne sont pas supportées sous FreeBSD. Les binaires Linux + ne fonctionneront pas sous FreeBSD s'ils utilisent le système de + fichiers <filename>/proc</filename> de Linux (qui diffère du + système de fichiers <filename>/proc</filename> optionnel de + FreeBSD) ou des appels i386 spécifiques, comme l'activation du + mode virtuel 8086.</para> + + <para>Selon la version de FreeBSD que vous utilisez, la mise en oeuvre de + l'émulation Linux se fait de façon légèrement + différente :</para> + + <sect2> + <title>Installer l'émulation Linux sous 2.1-stable</title> + + <para>Le noyau <filename>GENERIC</filename> de 2.1-stable n'est pas + configuré pour être compatible Linux, vous devez donc le + reconfigurer pour cela. Il y a deux façons de faire :</para> + + <orderedlist> + <listitem> + <para>Lier statiquement l'émulateur Linux au noyau + lui-même,</para> + </listitem> + <listitem> + <para>Configurer le noyau pour qu'il charge dynamiquement le module + Linux.</para> + </listitem> + </orderedlist> + + <para>Pour mettre en oeuvre l'émulateur, ajoutez la ligne suivante + à votre fichier de configuration du noyau (c.f. + <filename>/sys/i386/conf/LINT</filename>) :</para> + + <programlisting> +options COMPAT_LINUX + </programlisting> + + <para>Si vous voulez utiliser Doom ou d'autres applications qui utilisent + les mémoires partagées, ajoutez aussi :</para> + + <programlisting> +options SYSVSHM + </programlisting> + + <para>Les appels système Linux ont besoin de la + compatibilité 4.3BSD. Vérifiez que vous avez bien la + ligne :</para> + + <programlisting> +options "COMPAT_43" + </programlisting> + + <para>Si vous préférez lier statiquement l'émulateur + au noyau plutôt qu'utiliser le module du noyau à + chargement dynamique - <foreignphrase>loadable kernel module + (LKM)</foreignphrase>, ajoutez aussi :</para> + + <programlisting> +options LINUX + </programlisting> + + <para>Configurez et installez ensuite le nouveau noyau comme décrit + au chapitre <link linkend="kernelconfig">Configurer le noyau de + FreeBSD</link>.</para> + + <para>Si vous avez choisi d'utiliser le LKM, vous devez aussi installer + le module. Une incompatibilité de version entre le noyau et le module + à chargement dynamique peut planter le noyau. La façon la + plus sûre de procéder est donc de réinstaller le + LKM en même temps que le noyau :</para> + + <screen>&prompt.root; <userinput>cd /usr/src/lkm/linux</userinput> +&prompt.root; <userinput>make all install</userinput></screen> + + <para>Une fois que vous avez installé le noyau et le LKM, vous + pouvez utiliser <command>linux</command> sous le compte + super-utilisateur <username>root</username> pour charger le + LKM :</para> + + <screen>&prompt.root; <userinput>linux</userinput> +Linux emulator installed +Module loaded as ID 0</screen> + + <para>Pour vérifier que le LKM est chargé, utilisez + <command>modstat</command> :</para> + + <screen>&prompt.user; modstat +Type Id Off Loadaddr Size Info Rev +Module Name EXEC 0 3 f0baf000 0018 f0bb4000 1 linux_emulator</screen> + + <para>Il y a deux façons de charger le LKM au démarrage. + Sous FreeBSD 2.2.1-release et 2.1-stable, activez-le dans + <filename>/etc/sysconfig</filename> :</para> + + <programlisting> +linux=YES + </programlisting> + + <para>en remplaçant <literal>NO</literal> par + <literal>YES</literal>. Sous FreeBSD 2.1-release et antérieurs, + cette ligne n'existe pas. Vous devez donc éditer + <filename>/etc/rc.local</filename> et y ajouter la ligne :</para> + + <programlisting> +linux + </programlisting> + </sect2> + + <sect2> + <title>Installer l'émulation Linux sous 2.2.2-release et + ultérieurs</title> + + <para>Il n'y a plus besoin de préciser <literal>options + LINUX</literal> ou <literal>options COMPAT_LINUX</literal>. + L'émulation Linux est réalisée par un module du + noyau à chargement dynamique - LKM + (“<foreignphrase>Loadable Kernel + Module</foreignphrase>”) - et peut donc être + installée à la volée sans avoir à + redémarrer le système. Vos fichiers de démarrage + devront néanmoins comporter les instructions + suivantes :</para> + + <orderedlist> + <listitem> + <para>Dans <filename>/etc/rc.conf</filename>, la ligne + suivante :</para> + + <programlisting> +linux_enable=YES + </programlisting> + </listitem> + + <listitem> + <para>Ce qui ensuite active les commandes ci-dessous dans + <filename>/etc/rc.i386</filename> :</para> + + <programlisting> +# Start the Linux binary emulation if requested. +if [ "X${linux_enable}" = X"YES" ]; then echo -n ' + linux'; linux > /dev/null 2>&1 +fi + </programlisting> + </listitem> + </orderedlist> + + <para>Si vous voulez vérifier que l'émulation est active, + utilisez <command>modstat</command> :</para> + + <screen>&prompt.user; modstat +Type Id Off Loadaddr Size Info Rev Module Name +EXEC 0 4 f09e6000 001c f09ec010 1 linux_mod</screen> + + <para>On a cependant signalé des cas où cela ne marchait pas + avec certains systèmes 2.2-release et ultérieurs. Si pour + une raison ou une autre vous ne pouvez pas charger le LKM Linux, liez + alors statiquement l'émulateur au noyau en ajoutant la + ligne :</para> + + <programlisting> +options LINUX + </programlisting> + + <para>à votre fichier de configuration du noyau. Configurez et + installez ensuite le nouveau noyau comme décrit au chapitre + <link linkend="kernelconfig">Configurer le noyau de + FreeBSD</link>.</para> + </sect2> + + <sect2> + <title>Installer les bibliothèques Linux</title> + + <sect3> + <title>Installation à l'aide du “logiciel + porté” <filename>linux_lib</filename></title> + + <para>La plupart des applications Linux utilisent des + bibliothèques partagées, vous n'avez donc pas tout ce + qu'il vous faut tant que vous n'avez pas installé les + bibliothèques partagées. Vous pouvez le faire à + la main, mais il est beaucoup plus facile d'installer le logiciel + porté <filename>linux_lib</filename> :</para> + + <screen>&prompt.root; <userinput>cd /usr/ports/emulators/linux_lib</userinput> +&prompt.root; <userinput>make all install</userinput></screen> + + <para>et votre émulation Linux devrait fonctionner. La + légende et les archives du courrier électronique + <!-- smiley -->:-) veulent que l'émulation Linux fonctionne + mieux avec des binaires Linux liés avec les + bibliothèques ZMAGIC; Les bibliothèques QMAGIC (telles + celles utilisées par la distribution Slackware V2.0) peuvent + avoir tendance à donner des maux d'estomac au + “Linuxlateur”. Attendez-vous aussi à ce que + certains programmes se plaignent de versions mineures incorrectes de + bibliothèques système. Ce n'est cependant + généralement pas un problème.</para> + </sect3> + + <sect3> + <title>Installer les bibliothèques à la main</title> + + <para>Si vous n'avez pas installé la distribution pour les + “logiciels portés”, vous pouvez à la place + installer les bibliothèques à la main. Il vous faudra + les bibliothèques partagées Linux dont a besoin le + programme et l'éditeur de liens dynamiques. Vous devrez aussi + créer un répertoire racine + “masquant” - <foreignphrase>shadow + root</foreignphrase> - <filename>/compat/linux</filename> + pour les bibliothèques Linux sur votre système FreeBSD. + Les bibliothèques partagées ouvertes par les programmes + Linux exécutés sous FreeBSD iront d'abord voir dans + cette arborescence. Ainsi, si un programme Linux charge par exemple, + <filename>/lib/libc.so</filename>, FreeBSD essayera d'abord d'ouvrir + <filename>/compat/linux/lib/libc.so</filename>, puis, si cette + bibliothèque n'existe pas, <filename>/lib/libc.so</filename>. + Les bibliothèques partagées doivent donc être + installées sous l'arborescence + <filename>/compat/linux/lib</filename> plutôt que sous les + chemins d'accès mentionnés par la commande Linux + <command>ld.so</command>.</para> + + <para>Le fonctionnement de FreeBSD-2.2-release et ultérieurs est + légèrement différent en ce qui concerne + <filename>/compat/linux</filename> : tous les fichiers, et pas + seulement les bibliothèques, sont recherchés dans + l'arborescence “<foreignphrase>shadow + root</foreignphrase>” <filename>/compat/linux</filename>.</para> + + <para>Habituellement, vous n'aurez à chercher à savoir + de quelles bibliothèques partagées dépendent les + binaires Linux que les premières fois que vous installerez des + exécutables Linux sur votre système FreeBSD. + Après quelques temps, vous disposerez d'un jeu suffisant de + bibliothèques partagées Linux sur votre système + pour pouvoir exécuter les binaires Linux nouvellement + importés sans installation supplémentaire.</para> + </sect3> + + <sect3> + <title>Comment installer des bibliothèques partagées + supplémentaires</title> + + <para>Comment faire si vous avez installé le logiciel + porté <filename>linux_lib</filename> et que votre application + se plaint toujours qu'il lui manque des bibliothèques + partagées ? Comment savoir de quelles bibliothèques + partagées ont besoin les binaires Linux, et où se les + procurer ? Il y a habituellement deux possibilités (si + vous suivez les instructions ci-dessous , vous devrez être + en session sous le compte super-utilisateur <username>root</username> + pour effectuer les étapes nécessaires à + l'installation).</para> + + <para>Si vous avez accès un système Linux, + déterminez de quelles bibliothèques partagées + l'application a besoin et copiez-les sur votre système + FreeBSD. Supposons que vous veniez de télécharger le + binaire Linux de Doom. Installez-le sur le système Linux + auquel vous avez accès, et vérifiez de quelles + bibliothèques partagées il a besoin avec la commande + <command>ldd linuxxdoom</command> :</para> + + <screen>&prompt.user; <userinput>ldd linuxxdoom</userinput> +libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0 +libX11.so.3 (DLL Jump 3.1) => /usr/X11/lib/libX11.so.3.1.0 +libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29</screen> + + <para>Vous devrez récupérer tous les fichiers + mentionnés dans la dernière colonne et les installer + sous <filename>/compat/linux</filename>, en utilisant les noms de + la première colonne comme liens symboliques qui pointent + dessus. Ce qui signifie que vous aurez éventuellement les + fichiers suivants sur votre système FreeBSD :</para> + + <screen>/compat/linux/usr/X11/lib/libXt.so.3.1.0 +/compat/linux/usr/X11/lib/libXt.so.3 -> libXt.so.3.1.0 +/compat/linux/usr/X11/lib/libX11.so.3.1.0 +/compat/linux/usr/X11/lib/libX11.so.3 -> libX11.so.3.1.0 +/compat/linux/lib/libc.so.4.6.29 +/compat/linux/lib/libc.so.4 -> libc.so.4.6.29</screen> + + <note> + <para>Remarquez que si vous avez déjà une + bibliothèque partagée de même numéro de + version majeure que celle indiquée par la première + colonne du résultat de <command>ldd</command>, il est inutile + de copier le fichier décrit par la dernière colonne + sur votre système, celui que vous avez déjà + devrait suffire. Il est cependant recommandé de recopier + malgré tout la bibliothèque partagée si c'est + une version plus récente. Vous pouvez supprimer la version + plus ancienne, du moment que le lien symbolique pointe sur la + nouvelle. Par exemple, si vous avez les bibliothèques + suivantes sur votre système :</para> + + <screen>/compat/linux/lib/libc.so.4.6.27 +/compat/linux/lib/libc.so.4 -> libc.so.4.6.27</screen> + + <para>et que vous trouvez un nouveau binaire qui, d'après le + résultat de la commande <command>ldd</command> semble avoir + besoin d'une version plus récente :</para> + + <screen>libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29</screen> + + <para>Si vous n'avez qu'une ou deux versions de retard sur le dernier + indice, ne vous souciez pas d'installer la version + <filename>/lib/libc.so.4.6.29</filename> plus récente, + parce que le programme devrait fonctionner sans problème + avec une version légèrement antérieure. Vous + pouvez néanmoins décider de remplacer + <filename>libc.so</filename>, ce qui devrait vous donner quelque + chose comme :</para> + + <screen>/compat/linux/lib/libc.so.4.6.29 +/compat/linux/lib/libc.so.4 -> libc.so.4.6.29</screen> + </note> + + <note> + <para>Le mécanisme de lien symbolique n'est nécessaire + que pour les binaires Linux. L'éditeur de liens dynamiques de + FreeBSD se charge lui-même de trouver les numéros de + versions majeures adéquats et vous n'avez pas à vous + en préoccuper.</para> + </note> + </sect3> + + <sect3> + <title>Configurer <filename>ld.so</filename>—pour FreeBSD + 2.2-release et ultérieurs</title> + + <para>Cette section ne s'applique qu'à FreeBSD 2.2-release et + ultérieurs. Ceux qui utilisent 2.1-stable peuvent + l'ignorer.</para> + + <para>Pour finir, si vous utilisez FreeBSD 2.2-release, vous devez + vérifier que vous disposez de l'éditeur de liens + dynamiques Linux et de ses fichiers de configuration sur votre + système. Vous devez copier ces fichiers du système + Linux à l'endroit approprié sur votre système + FreeBSD (dans l'arborescence + <filename>/compat/linux</filename>) :</para> + + <screen>/compat/linux/lib/ld.so +/compat/linux/etc/ld.so.config</screen> + + <para>Si vous n'avez pas accès à un système Linux, + vous devrez récupérer les fichiers + supplémentaires de différents sites ftp. Des + informations sur où trouver les divers fichiers sont + données plus bas. Supposons pour l'instant que vous savez + où récupérer les fichiers.</para> + + <para>Téléchargez les fichiers suivants (du même + site ftp pour éviter les incompatibilités de version) + et installez-les sous <filename>/compat/linux</filename> (i.e., + <filename>/foo/bar</filename> est installé sous + <filename>/compat/linux/foo/bar</filename>):</para> + + <screen>/sbin/ldconfig +/usr/bin/ldd +/lib/libc.so.x.y.z +/lib/ld.so</screen> + + <para><command>ldconfig</command> et <command>ldd</command> n'ont pas + obligatoirement besoin d'être sous l'arborescence + <filename>/compat/linux</filename>; vous pouvez aussi les installer + ailleurs sur votre système. Veillez cependant à ce + qu'il n'y ait pas de conflit avec leurs équivalents FreeBSD. + C'est une bonne idée de les mettre dans + <filename>/usr/local/bin</filename> où sont + <command>ldconfig-linux</command> et + <command>ldd-linux</command>.</para> + + <para>Créez le fichier + <filename>/compat/linux/etc/ld.so.conf</filename>, décrivant + les répertoires où l'éditeur de liens dynamiques + Linux devra chercher les bibliothèques partagées. C'est + un fichier texte ordinaire, avec un nom de répertoire par + ligne. <filename>/lib</filename> and <filename>/usr/lib</filename> + sont standard, vous pourriez ajouter les lignes + suivantes :</para> + + <programlisting> +/usr/X11/lib +/usr/local/lib + </programlisting> + + <para>Quand un binaire Linux ouvre une bibliothèque telle que + <filename>/lib/libc.so</filename>, l'émulateur effectue en + interne la correspondance avec + <filename>/compat/linux/lib/libc.so</filename>. Toutes les + bibliothèques Linux doivent être installées sous + <filename>/compat/linux</filename> (e.g., + <filename>/compat/linux/lib/libc.so</filename>, + <filename>/compat/linux/usr/X11/lib/libX11.so</filename>, etc.) + pour que l'émulateur puisse les trouver.</para> + + <para>Ceux qui utilisent FreeBSD 2.2-release doivent exécuter le + programme <command>ldconfig</command> Linux.</para> + + <screen>&prompt.root <userinput>cd /compat/linux/lib</userinput> +&prompt.root; <userinput>/compat/linux/sbin/ldconfig</userinput></screen> + + <para><command>ldconfig</command> est lié statiquement, il n'a + donc pas besoin des bibliothèques partagées pour + s'exécuter. Il crée le fichier + <filename>/compat/linux/etc/ld.so.cache</filename> qui contient les + noms de toutes les bibliothèques partagées, et doit + être réexécuté pour recréer ce + fichier chaque fois que vous installez de nouvelles + bibliothèques partagées.</para> + + <para>Sous 2.1-stable, n'installez pas + <filename>/compat/linux/etc/ld.so.cache</filename> et + n'exécutez pas <command>ldconfig</command>; sous 2.1-stable, + les appels système sont implémentés + différemment et <command>ldconfig</command> n'est ni utile ni + utilisé.</para> + + <para>Tout devrait être maintenant en place pour les binaires + Linux qui n'ont besoin que d'une bibliothèque + <filename>libc</filename> partagée. Vous pouvez le tester en + exécutant la commande <command>ldd</command> Linux sur + elle-même. Supposons que vous l'ayez installé sous le nom + <command>ldd-linux</command>, le résultat devrait ressembler + à quelque chose comme :</para> + + <screen>&prompt.root; <userinput>ldd-linux `which ldd-linux`</userinput> +libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29</screen> + + <para>Une fois que c'est fait, vous êtes prêt à + installer de nouveaux binaires Linux. Toutes les fois que vous + installez un nouveau programme Linux, vous devriez vérifier + s'il a besoin de nouvelles bibliothèques partagées, et + si tel est le cas, les installer dans l'arborescence + <filename>/compat/linux</filename>. Pour cela, vous exécutez la + version Linux de <command>ldd</command> sur le nouveau programme et + consultez le résultat. <command>ldd</command> (reportez-vous + aussi aux pages de manuel de &man.ldd.1;) imprimera la liste des + bibliothèques partagées dont dépend le programme, + sous la forme <literal><replaceable>nom principal</replaceable> + (<replaceable>référence de version</replaceable>) => + <replaceable>nom complet</replaceable></literal>.</para> + + <para>S'il imprime <literal>not found</literal> au lieu du + <replaceable>nom complet</replaceable>, cela signifie qu'il vous faut + une nouvelle bibliothèque. La bibliothèque dont vous + avez besoin est celle indiquée par son + <literal><replaceable>nom principal</replaceable></literal> sous forme + <literal>lib<replaceable>XXXX</replaceable>.so.<replaceable>N</replaceable></literal>. + Il faudra que vous trouviez + <filename>lib<replaceable>XXXX</replaceable>.so.N.mm</filename> sur un + site ftp Linux et que vous l'installiez sur votre système. + <replaceable>XXXX</replaceable> (nom) et + <replaceable>N</replaceable> (numéro de version majeure) + doivent correspondre; le(s) numéro(s) de version(s) mineure(s) + sont moins importants, bien qu'il soit conseillé de prendre la + version la plus récente.</para> + </sect3> + </sect2> + + <sect2> + <title>Installer des binaires Linux ELF</title> + + <para>Il y a parfois besoin d'une étape supplémentaire pour + les binaires ELF : “le marquage”. Si vous essayez + d'exécuter un binaire ELF non marqué vous aurez un + message d'erreur ressemblant à ce qui suit :</para> + + <screen>&prompt.user; <userinput>./mon-binaire-elf-linux</userinput> +ELF binary type not known +Abort</screen> + + <para>Pour que le noyau de FreeBSD puisse distinguer entre un binaire ELF + FreeBSD et un binaire Linux, vous devez employer l'utilitaire + &man.brandelf.1;.</para> + + <screen>&prompt.user; <userinput>brandelf -t Linux mon-binaire-elf-linux</userinput></screen> + + <para>Les outils GNU incorporent maintenant automatiquement les marques + nécessaires dans les binaires ELF, vous aurez donc de moins en + moins besoin de passer par cette étape à l'avenir.</para> + </sect2> + + <sect2> + <title>Configurer le solveur de noms de domaines</title> + + <para>Si le DNS ne fonctionne pas, ou si vous avez les + messages :</para> + + <screen>resolv+: "bind" is an invalid keyword resolv+: +"hosts" is an invalid keyword</screen> + + <para>vous devez renseigner un fichier + <filename>/compat/linux/etc/host.conf</filename> contenant :</para> + + <programlisting> +order hosts, bind +multi on</programlisting> + + <para>où l'ordre ci-dessus spécifie qu'il faut d'abord + regarder dans le fichier <filename>/etc/hosts</filename> puis + interroger le DNS. Si le fichier + <filename>/compat/linux/etc/host.conf</filename> n'est pas + installé, les applications Linux trouvent le fichier + <filename>/etc/host.conf</filename> de FreeBSD et se plaignent de sa + syntaxe FreeBSD incompatible. Supprimez <literal>bind</literal>, si + vous n'avez pas configuré de serveur de noms avec le fichier + <filename>/etc/resolv.conf</filename>.</para> + + <para>Enfin, ceux qui utilisent 2.1-stable doivent définir une + variable d'environnement <envar>RESOLV_HOST_CONF</envar> pour que les + applications sachent comment chercher dans les tables de noms de + machines. Si vous êtes sous FreeBSD 2.2-release ou + ultérieurs, vous pouvez vous en passer. Avec + l'interpréteur de commandes <filename>/bin/csh</filename>, + utilisez :</para> + + <screen>&prompt.user; <userinput>setenv RESOLV_HOST_CONF /compat/linux/etc/host.conf</userinput></screen> + + <para>Avec <filename>/bin/sh</filename>, utilisez :</para> + + <screen>&prompt.user; <userinput>RESOLV_HOST_CONF=/compat/linux/etc/host.conf; export RESOLV_HOST_CONF</userinput></screen> + </sect2> + + <sect2> + <title>Trouver les fichiers nécessaires</title> + + <note> + <para>Les informations qui suivent sont valables à la date de + rédaction de ce document, mais certains détails, tels + que les noms des sites ftp, des répertoires ou des + distributions peuvent avoir changé au moment où vous le + lirez.</para> + </note> + + <para>Linux est distribué par plusieurs groupes donc chacun + constitue l'ensemble de programmes qu'il distribue. Chaque distribution + a son propre nom, “Slackware” ou “Yggdrasil”, + par exemple. Ces distributions sont disponibles sur nombre de sites + ftp. Les fichiers sont parfois individualisés, et vous pouvez + récupérer uniquement les fichiers dont vous avez besoin, + mais ils sont généralement archivés par + distributions, compactées et compressées avec + <citerefentry><refentrytitle>tar</refentrytitle> + <manvolnum>1</manvolnum></citerefentry> et + <citerefentry><refentrytitle>gzip</refentrytitle> + <manvolnum>1</manvolnum></citerefentry>. Les sites ftp principaux + pour les distributions sont :</para> + + <orderedlist> + <listitem> + <para>sunsite.unc.edu:/pub/Linux/distributions</para> + </listitem> + + <listitem> + <para>tsx-11.mit.edu:/pub/linux/distributions</para> + </listitem> + </orderedlist> + + <para>Quelques sites miroirs européens :</para> + + <orderedlist> + <listitem> + <para>ftp.luth.se:/pub/linux/distributions</para> + </listitem> + + <listitem> + <para>ftp.demon.co.uk:/pub/unix/linux</para> + </listitem> + + <listitem> + <para>src.doc.ic.ac.uk:/packages/linux/distributions</para> + </listitem> + </orderedlist> + + <para>Pour simplifier, nous nous concentrerons sur la Slackware. Cette + distribution est composée d'un certain nombre de + sous-répertoires, contenant des paquetages séparés. + Ils sont normalement contrôlés par un programme + d'installation, mais vous pouvez aussi les récupérer + à la main. Vous devrez d'abord aller voir dans le + sous-répertoire <filename>contents</filename> de la + distribution. Vous y trouverez de nombreux petits fichiers texte + décrivant le contenu de chacun des paquetages. La façon + la plus rapide de retrouver quelque chose est de récupérer + tous les fichiers de ce sous-répertoire et d'y rechercher avec + <citerefentry><refentrytitle>grep</refentrytitle> + <manvolnum>1</manvolnum></citerefentry> le fichier dont vous avez + besoin. Voici un exemple d'une liste de fichiers dont vous pourriez + avoir besoin et où vous les trouveriez en cherchant dans les + fichiers de contenu :</para> + + <informaltable frame="none"> + <tgroup cols="2"> + <thead> + <row> + <entry>Bibliothèque</entry> + <entry>Paquetage</entry> + </row> + </thead> + + <tbody> + <row> + <entry><filename>ld.so</filename></entry> + <entry>ldso</entry> + </row> + + <row> + <entry><filename>ldconfig</filename></entry> + <entry>ldso</entry> + </row> + + <row> + <entry><filename>ldd</filename></entry> + <entry>ldso</entry> + </row> + + <row> + <entry><filename>libc.so.4</filename></entry> + <entry>shlibs</entry> + </row> + + <row> + <entry><filename>libX11.so.6.0</filename></entry> + <entry>xf_lib</entry> + </row> + + <row> + <entry><filename>libXt.so.6.0</filename></entry> + <entry>xf_lib</entry> + </row> + + <row> + <entry><filename>libX11.so.3</filename></entry> + <entry>oldlibs</entry> + </row> + + <row> + <entry><filename>libXt.so.3</filename></entry> + <entry>oldlibs</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para>Dans ce cas donc, vous auriez besoin des paquetages + <filename>ldso</filename>, <filename>shlibs</filename>, + <filename>xf_lib</filename> et <filename>oldlibs</filename>. Dans + chacun des fichiers de contenu de ces paquetages, recherchez la ligne + <literal>PACKAGE LOCATION</literal>, qui vous dira sur quel + “disque” le paquetage se trouve; dans notre cas, cela nous + dira dans quel sous-répertoire il faut regarder. Pour notre + exemple, nous trouverions :</para> + + <informaltable frame="none"> + <tgroup cols="2"> + <thead + <row> + <entry>Paquetage</entry> + <entry>Localisation</entry> + </row> + </thead> + + <tbody> + <row> + <entry>ldso</entry> + <entry>diska2</entry> + </row> + + <row> + <entry>shlibs</entry> + <entry>diska2</entry> + </row> + + <row> + <entry>oldlibs</entry> + <entry>diskx6</entry> + </row> + + <row> + <entry>xf_lib</entry> + <entry>diskx9</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para>Les localisations appelées + “disk<replaceable>XX</replaceable>” se rapportent aux + sous-répertoires + <filename>slakware/<replaceable>XX</replaceable></filename> + de la distribution, d'autres peuvent se trouver dans le + sous-répertoire <filename>contrib</filename>. Dans notre cas, + nous pouvons maintenant télécharger les paquetages dont + nous avons besoin en récupérant les fichiers suivants + (à partir du répertoire racine de l'arborescence de la + distribution Slackware) :</para> + + <itemizedlist> + <listitem> + <para><filename>slakware/a2/ldso.tgz</filename></para> + </listitem> + + <listitem> + <para><filename>slakware/a2/shlibs.tgz</filename></para> + </listitem> + + <listitem> + <para><filename>slakware/x6/oldlibs/tgz</filename></para> + </listitem> + + <listitem> + <para><filename>slakware/x9/xf_lib.tgz</filename></para> + </listitem> + </itemizedlist> + + <para>Extrayez les fichiers de ces archives compressées dans le + répertoire <filename>/compat/linux</filename> (en ommettant ou en + supprimant ensuite les fichiers dont vous n'avez pas besoin) et vous + aurez tout ce qu'il vous faut.</para> + + <para><emphasis>Consultez aussi :</emphasis> + <filename>ftp.freebsd.org:pub/FreeBSD/2.0.5-RELEASE/xperimnt/linux-emu/README</filename> + et <filename>/usr/src/sys/i386/ibcs2/README.iBCS2</filename></para> + </sect2> + </sect1> + + <sect1 id="mathematica"> + <title>Comment installer Mathematica sous FreeBSD</title> + + <para><emphasis>Contribution de &a.rich; et &a.chuck;</emphasis></para> + + <para>Ce document explique comment installer la distribution binaire Linux + de Mathematica 2.2 sous FreeBSD 2.1.</para> + + <para>Mathematica supporte en natif Linux mais pas FreeBSD. Une fois donc + que vous avez configuré votre système pour qu'il soit + compatible Linux, vous avez à peu près tout ce qu'il vous + faut pour utiliser Mathematica.</para> + + <para>Pour ceux qui ont déjà la version + “étudiant&rdquo de Mathematica pour DOS, la mise à + jour pour Linux coûtait, quand ce document a été + rédigé, en Mars 1996, $45.00. Vous pouvez la commander + directement à Wolfram au (217) 398-6500 et payer par carte de + crédit.</para> + + <sect2> + <title>Décompacter la distribution de Mathematica</title> + + <para>Les binaires sont actuellement distribués par Wolfram sur + CD-ROM. Il y a une douzaine de fichiers d'archive sur le CD-ROM, chacun + contenant une distribution binaire pour une des architectures + supportées. Celle pour Linux s'appelle + <filename>LINUX.TAR</filename>. Vous pouvez, par exemple, la + décompacter dans + <filename>/usr/local/Mathematica</filename> :</para> + + <screen>&prompt.root; <userinput>cd /usr/local</userinput> +&prompt.root; <userinput>mkdir Mathematica</userinput> +&prompt.root; <userinput>cd Mathematica</userinput> +&prompt.root; <userinput>tar -xvf /cdrom/LINUX.TAR</userinput></screen> + </sect2> + + <sect2> + <title>Obtenir votre mot de passe pour Mathematica</title> + + <para>Avant de pouvoir utiliser Mathematica, vous devrez obtenir de + Wolfram un mot de passe qui corresponde à + l'“IDentifiant” de votre machine :</para> + + <para>Une fois que vous avez installé les bibliothèques pour + la compatibilité Linux et décompacté Mathematica, + vous pouvez connaître l'“IDentifiant” de votre machine + en exécutant le programme <command>mathinfo</command> dans le + répertoire d'installation :</para> + + <screen>&prompt.root; <userinput>cd /usr/local/Mathematica/Install</userinput> +&prompt.root; <userinput>mathinfo</userinput> +LINUX: 'ioctl' fd=5, typ=0x89(), num=0x27 not implemented +richc.isdn.bcm.tmc.edu 9845-03452-90255</screen> + + <para>Ici, par exemple, l'“IDentifiant” de la machine + <hostid>richc</hostid> est <literal>9845-03452-90255</literal>. Ne vous + souciez pas du message à propos de l'<literal>ioctl</literal> + qui n'est pas implémenté. Cela ne vous empèchera + pas d'utiliser Mathematica, bien que vous aurez ce message toutes les + fois que vous exécuterez Mathematica.</para> + + <para>Quand vous vous enregistrerez auprès de Wolfram, par courrier + électronique, téléphone, ou fax, vous leur + communiquerez l'“IDentifiant” de la machine et ils vous + donneront en réponse le mot de passe correspondant qui consiste + en groupes de chiffres. Vous devrez ajouter les deux, ainsi que le nom + de la machine et le numéro de licence, dans votre fichier + <filename>mathpass</filename>.</para> + + <para>Vous pouvez le faire en utilisant :</para> + + <screen>&prompt.root; <userinput>cd /usr/local/Mathematica/Install</userinput> +&prompt.root; <userinput>math.install</userinput></screen> + + <para>Il vous demandera votre numéro de licence et le mot de passe + que Wolfram vous a fourni. Si vous vous trompez ou si pour une raison ou + une autre <command>math.install</command> échoue, ce n'est pas un + problème; vous pouvez simplement éditer le fichier + <filename>mathpass</filename>, qui se trouve dans le même + répertoire, pour corriger à la main ces + informations.</para> + + <para>Après le mot de passe, <command>math.install</command> vous + demandera si vous voulez utiliser la configuration d'installation par + défaut ou si vous préférez définir la + vôtre. Si vous êtes comme nous et n'avez pas confiance dans + les programmes d'installation, vous voudrez certainement indiquer + vous-même les répertoires d'installation. Attention. Bien + que <command>math.install</command> vous demande les noms des + répertoires, il ne les crée pas à votre place, vous + devriez donc ouvrir une deuxième fenêtre pour le faire + avant de donner leurs noms au programme d'installation. Ou, si vous + échouez, vous pouvez créer les répertoires puis + relancer le programme <command>math.install</command>. Nous avons choisi + de créer au préalable et d'indiquer à + <command>math.install</command> les répertoires + suivants :</para> + + <informaltable frame="none"> + <tgroup cols="2"> + <tbody> + <row> + <entry><filename>/usr/local/Mathematica/bin</filename></entry> + <entry>pour les binaires</entry> + </row> + + <row> + <entry><filename>/usr/local/Mathematica/man/man1</filename></entry> + <entry>pour les pages de manuel</entry> + </row> + + <row> + <entry><filename>/usr/local/Mathematica/lib/X11</filename></entry> + <entry>pour le fichier <filename>XKeysymb</filename></entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para>Vous pouvez aussi lui dire d'utiliser + <filename>/tmp/math.record</filename> comme fichier d'enregistrement + système, dans lequel il conserve les traces des sessions. + <command>math.install</command> continuera ensuite en + décompactant la distribution et en mettant les fichiers là + où il faut.</para> + + <para>La fonction calepin de Mathematica est fournie séparement, + de même que l'interface X, et vous devez les installer à + part. Pour que l'interface X soit correctement installée, allez + dans le répertoire + <filename>/usr/local/Mathematica/FrontEnd</filename> et exécutez + la procédure <command>xfe.install</command>. Vous devrez lui + dire où mettre les fichiers, mais vous n'aurez pas de + répertoire à créer, parce qu'elle utilise les + mêmes que ceux qui ont été créés + pour <command>math.install</command>. Finalement, il doit y avoir + une nouvelle procédure appelée + <filename>mathematica</filename> dans le répertoire + <filename>/usr/local/Mathematica/bin</filename>.</para> + + <para>Pour finir, vous devrez modifier chacune des procédures que + Mathematica a installé pour y ajouter la ligne + suivante :</para> + + <screen>&prompt.user; <userinput>XKEYSYMDB=/usr/local/Mathematica/lib/X11/XKeysymDB; export XKEYSYMDB</userinput></screen> + + <para>Cela pour dire à Mathematica où trouver sa propre + version du fichier de correspondance clavier + <filename>XKeysymDB</filename>, sinon vous aurez des messages d'erreur + dus à des correspondances de touches manquantes.</para> + + <para>Sous 2.1-stable, vous devrez aussi ajouter la ligne + suivante :</para> + + <screen>&prompt.user; <userinput>RESOLV_HOST_CONF=/compat/linux/etc/host.conf; export RESOLV_HOST_CONF</userinput></screen> + + <para>pour dire à Mathematica d'utiliser la version Linux de + <filename>host.conf</filename>. Ce fichier a une syntaxe + différente de celui de FreeBSD, vous aurez donc un message + d'erreur à propos de <filename>/etc/host.conf</filename> si vous + oubliez cette modification.</para> + + <para>Vous voudrez peut-être aussi modifier votre fichier + <filename>/etc/manpath.config</filename> pour lire le nouveau + répertoire pour les pages de manuel, et aurez peut-être + besoin d'éditer votre fichier <filename>~/.cshrc</filename> + pour ajouter <filename>/usr/local/Mathematica/bin</filename> à + vos chemins d'accès par défaut.</para> + + <para>C'est à peu près tout. Vous devriez maintenant pouvoir + taper <command>mathematica</command> et obtenir un calepin Mathematica + vraiment “nickel”. Mathematica a inclu des interfaces + utilisateurs Motif, mais elles sont liées statiquement, vous + n'avez donc pas besoin des bibliothèques Motif. Bonne chance + pour votre propre installation !</para> + </sect2> + + <sect2> + <title>Bogues</title> + + <para>Il est connu que l'interface calepin se bloque parfois à la + lecture de certains fichiers calepin avec des messages d'erreur + du type :</para> + + <screen><errorname>File .../Untitled-1.mb appears to be broken for OMPR.257.0</errorname></screen> + + <para>Nous n'en avons pas trouvé la raison, mais cela ne touche que + l'interface calepin X, et non le moteur Mathematica lui-même. + L'interface en ligne de commande invoquée par + <command>math</command> n'est pas affectée par ce bogue.</para> + </sect2> + + <sect2> + <title>Remerciements</title> + + <para>Remerciements bien mérités à &a.sos; et + &a.peter; qui ont fait de l'émulation Linux ce qu'elle est + aujourd'hui, et à Michael Smith qui les a poussé au + point qu'elle exécute les binaires Linux mieux que Linux + lui-même ! <!-- smiley -->:-)</para> + </sect2> + </sect1> +</chapter> + +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-always-quote-attributes: t + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> + diff --git a/fr_FR.ISO_8859-1/books/handbook/mail/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/mail/chapter.sgml new file mode 100644 index 0000000000..c6e37f3993 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/mail/chapter.sgml @@ -0,0 +1,653 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + + <chapter id="mail"> + <title>Courrier électronique</title> + + <para><emphasis>Contribution de &a.wlloyd;.</emphasis></para> + &trans.a.haby; + + <para>De nombreux ouvrages d'<link + linkend="bibliography">Administration Système</link> traitent de la + configuration du courrier électronique. Si vous envisagez de faire + plus que configurer un seul serveur de courrier sur votre réseau, + il vous faut de la documentation de qualité industrielle.</para> + + <para>Certaines parties de la configuration du courrier électronique + sont confiées au Système de Noms de Domaines (DNS). Si vous gérez + votre propre serveur DNS, consultez <filename>/etc/namedb</filename> et + <command>man -k named</command> pour plus d'informations.</para> + + <sect1> + <title>Notions de base</title> + + <para>Voici les principaux programmes impliqués dans un échange de + courrier électronique. Le “serveur de courrier” est + responsable de l'expédition et de la réception du courrier pour + votre machine, voire votre réseau.</para> + + <sect2> + <title>Le programme utilisateur</title> + + <para>C'est un programme comme <application >elm</application>, + <application>pine</application>, <application>mail</application>, + ou un outil plus sophistiqué tel un navigateur WWW. Ce programme + transmet simplement toutes les transactions concernant le courrier + électronique au “serveur de courrier” local, soit en + invoquant <command>sendmail</command>, soit via TCP.</para> + + </sect2> + + <sect2> + <title>Le “démon” serveur de courrier</title> + + <para>C'est habituellement <command>sendmail</command> ou + <command>smail</command>, s'exécutant en tâche de fond. Vous + le désactivez ou modifiez les options de sa ligne de commande + dans le fichier <filename>/etc/rc.conf</filename> (ou, pour les + versions antérieures à FreeBSD 2.2.2, + <filename>/etc/sysconfig</filename>). Il vaut mieux le laisser + actif, à moins que vous n'ayez une bonne raison de ne pas + le faire tourner, par exemple, si vous configurez un + <link linkend="firewalls">coupe-feu</link>.</para> + + <para>Vous devez savoir que <command>sendmail</command> est un maillon + potentiellement faible sur un site sécurisé. Certaines versions de + <command>sendmail</command> ont des trous de sécurité connus.</para> + + <para><command>sendmail</command> accomplit deux tâches. Il se charge + d'envoyer et de recevoir le courrier.</para> + + <para>Lorsque <command>sendmail</command> doit expédier du courrier + depuis votre site, il consulte le DNS pour savoir quelle machine + reçoit le courrier pour la destination voulue.</para> + + <para>S'il agit comme expéditeur, <command>sendmail</command> prendra + le message dans la file d'attente locale et le délivrera via + l'Internet à un autre <command>sendmail</command> sur la machine + qui doit le recevoir.</para> + + </sect2> + + <sect2> + <title>DNS - Système de Noms de Domaines</title> + + <para>Le système de noms de domaines (DNS), + et son “démon” + <command>named</command>, gèrent la base de données qui fait + correspondre nom de machine et adresse IP, et nom de machine + et serveur de courrier. L'adresse IP est définie par un + enregistrement A. L'enregistrement MX définit le serveur qui + recevra votre courrier. S'il n'y a pas d'enregistrement MX + associé à votre machine, cette dernière recevra directement le + courrier.</para> + + <para>A moins que vous n'ayez votre propre serveur DNS, vous ne pouvez + pas modifier vous-même les informations du DNS. Si vous passez par + un fournisseur d'accès Internet, voyez cela avec lui.</para> + + </sect2> + + <sect2> + <title>Serveur POP</title> + + <para>Ce programme récupère le courrier dans votre boîte aux lettres + et le transmet à votre navigateur. Si vous voulez faire tourner + un serveur POP sur votre machine, vous devrez faire deux + choses:</para> + + <procedure> + + <step> + <para>Récupérez le logiciel POP du <ulink + url="http://www.freebsd.org/ports/mail.html">catalogue des + logiciels portés</ulink>, que vous trouverez dans le + répertoire <filename>/usr/ports</filename>, ou du catalogue + des logiciels précompilés. Ce manuel comprend une section qui + décrit exhaustivement l'installation des + <link linkend="ports">logiciels portés</link>.</para> + </step> + + <step> + <para>Modifiez <filename>/etc/inetd.conf</filename> + pour lancer le serveur POP.</para> + </step> + + </procedure> + + <para>Il y aura des instructions avec le serveur POP. + Lisez-les.</para> + + </sect2> + </sect1> + + <sect1> + <title>Configuration</title> + + <sect2> + <title>Les bases</title> + + <para>Avec votre système FreeBSD “prêt-à-l'emploi”[TM], + vous devriez pouvoir envoyer du courrier électronique à l'extérieur, + dès que vous aurez configuré <filename>/etc/resolv.conf</filename> + ou si vous faites tourner un serveur DNS. Si vous voulez que votre + courrier soit délivré à une machine particulière, il y a deux + méthodes:</para> + + <itemizedlist> + <listitem> + <para>Faire tourner un serveur DNS (<command>man -k named</command>) + et avoir votre propre domaine, i.e.: + <hostid role="domainname">petitemine.com</hostid>.</para> + </listitem> + + <listitem> + <para>Faire en sorte que le courrier soit envoyé à l'adresse (nom de + machine) DNS de votre machine, i.e.: + <hostid role="fqdn">refectoire6.maison.ecole.edu</hostid>.</para> + </listitem> + </itemizedlist> + + <para>Quelle que soit la méthode choisie, pour que le courrier soit + directement délivré à votre machine, elle doit être référencée sur + l'Internet. Vous devez avoir une adresse IP permanente. Donc pas de + PPP dynamique. Si vous êtes derrière un coupe-feu, il faut qu'il + vous passe le trafic SMTP (<foreignphrase>Simple Mail Transfer + Protocol</foreignphrase> - protocole élémentaire de + transport de courrier électronique). D'après + <filename>/etc/services</filename>:</para> + + <programlisting +>smtp 25/tcp mail #Simple Mail Transfer</programlisting> + + <para>Si vous voulez recevoir le courrier sur la machine elle-même, + vous devez vous assurez que l'entrée MX du DNS pointe sur cette + machine, ou qu'il n'y a pas d'entrée MX correspondant à son nom + dans le DNS.</para> + + <para>Essayez:</para> + + <informalexample> + <screen>&prompt.root; <userinput>hostname</userinput> +newbsdbox.freebsd.org +&prompt.root; <userinput>host newbsdbox.freebsd.org</userinput> +newbsdbox.freebsd.org has address 204.216.27.xx</screen> + </informalexample> + + <para>Si c'est la seule réponse que vous obtenez, le courrier adressé + à <email>root@newbsdbox.freebsd.org</email> + arrivera sans problème.</para> + + <para>Si au lieu de cela, vous obtenez:</para> + + <informalexample> + <screen>&prompt.root; <userinput>host newbsdbox.freebsd.org</userinput> +newbsdbox.FreeBSD.org has address 204.216.27.xx +newbsdbox.FreeBSD.org mail is handled (pri=10) by freefall.FreeBSD.org</screen> + </informalexample> + + <para>Tout le courrier adressé directement à votre machine arrivera + sur <hostid>freefall</hostid>, adressé au même utilisateur.</para> + + <para>Cette information est configurée par votre serveur de noms de + domaines. C'est la machine définie comme serveur de noms primaire + dans <filename>/etc/resolv.conf</filename>.</para> + + <para>L'enregistrement du DNS qui contient l'information de routage + du courrier est l'entrée MX (<foreignphrase>Mail + eXchange</foreignphrase>). S'il n'y a pas d'entrée MX, le courrier + est envoyé directement à la machine en utilisant l'entrée + Addresse.</para> + + <para>Voici ce que fut à l'occasion l'entrée MX pour + <hostid role="fqdn">freefall.freebsd.org:</hostid>.</para> + + <programlisting> +freefall MX 30 mail.crl.net +freefall MX 40 agora.rdrop.com +freefall HINFO Pentium FreeBSD +freefall MX 10 freefall.FreeBSD.org +freefall MX 20 who.cdrom.com +freefall A 204.216.27.xx +freefall CNAME www.FreeBSD.org</programlisting> + + <para><hostid>freefall</hostid> a plusieurs entrées MX. Celle dont le + numéro est le plus faible reçoit en définitive le courrier. Les + autres le mettent temporairement dans leur file d'attente, si + <hostid>freefall</hostid> est occupé ou hors-service.</para> + + <para>Les sites MX de secours doivent avoir une connexion séparée à + l'Internet, pour être vraiment utiles. Un fournisseur d'accès ou + un site amical peuvent vous fournir ce service.</para> + + <para><command>dig</command>, <command>nslookup</command>, + et <command>host</command> sont ici vos alliés.</para> + + </sect2> + + <sect2 id="mail-domain"> + <title>Courrier pour votre domaine (réseau).</title> + + <para>Pour configurer un serveur de courrier pour votre réseau, vous + devez éviter que le courrier arrive à toutes vos stations de + travail. En d'autres termes, vous devez détourner tout le courrier + pour <hostid role="domainname">*.petitemine.com</hostid> vers une + seule machine, votre “serveur de courrier”.</para> + + <para>Dans la grande majorité des cas, les utilisateurs du réseau + récupèreront leur courrier sur leurs stations de travail avec POP + ou telnet.</para> + + <para>Il faut qu'il y ait un compte utilisateur avec le + <emphasis>même nom</emphasis> sur les deux machines. Utilisez + <command>adduser</command> pour ce faire. Si vous définissez + <literal>/nonexistent</literal> comme interpréteur de commandes + (sur le serveur de courrier), les utilisateurs ne pourront pas y + ouvrir de session.</para> + + <para>Votre serveur de courrier sera défini comme + <foreignphrase>Mail eXchange</foreignphrase> pour chaque station de + travail. Cela doit être défini dans le DNS (i.e.: BIND, named). + Reportez-vous s'il vous plaît à un ouvrage d'administration réseau + pour avoir des informations détaillées.</para> + + <para>Vous devez essentiellement ajouter les lignes suivantes à la + configuration de votre serveur DNS:</para> + + <programlisting> +pc24.petitemine.com A <replaceable>xxx.xxx.xxx.xxx</replaceable> ; Adresse IP de la station de travail + MX 10 smtp.petitemine.com ; Serveur de courrier</programlisting> + + <para>Vous ne pouvez le faire vous-même que si vous gérez un serveur + de noms. Si vous ne voulez pas faire tourner un serveur de noms, + trouvez quelqu'un, votre fournisseur d'accès Internet par exemple, + pour le faire à votre place.</para> + + <para>Le courrier adressé à une station de travail sera envoyé à + votre machine <foreignphrase>Mail eXchange</foreignphrase>. Quelle + que soit la machine sur laquelle pointe l'enregistrement A, le + courrier arrivera sur la machine MX.</para> + + <para>On peut utiliser cela pour implémenter un hébergement virtuel du + courrier électronique.</para> + + <para>Exemple:</para> + + <para>J'ai un client qui a comme domaine foo.bar, et je veux que tout + le courrier pour foo.bar arrive sur ma machine smtp.smalliap.com. + Il faut configurer une entrée comme suit pour le serveur DNS:</para> + + <programlisting> +foo.bar MX 10 smtp.smalliap.com ; mon serveur de courrier</programlisting> + + <para>Il n'y a pas besoin d'enregistrement A si l'on ne veut que + le courrier pour le domaine. i.e.: ne vous attendez pas à ce que + <command>ping foo.bar</command> fonctionne, à moins qu'il + n'y ait aussi un enregistrement d'Addresse pour + <filename>foo.bar</filename>.</para> + + <para>Sur la machine qui reçoit le courrier pour le distribuer dans + une boîte aux lettres, il faut dire à <command>sendmail</command> + pour quelle machine il accepte du courrier.</para> + + <para>Ajoutez <literal>pc24.petitemine.com</literal> à + <filename>/etc/sendmail.cw</filename> (si vous utilisez + <literal>FEATURE(use_cw_file)</literal>), ou ajoutez une ligne + <literal>Cw myhost.smalliap.com</literal> à + <filename>/etc/sendmail.cf</filename>.</para> + + <para>Si vous envisagez d'utiliser sérieusement + <command>sendmail</command>, vous devriez installer les + sources de <command>sendmail</command>. Ils sont accompagnés de + beaucoup de documentation. Vous trouverez de l'information sur + la façon d'obtenir le source de <command>sendmail</command> + à la section <link linkend="sendmailuucp">Configurer + UUCP</link>.</para> + + </sect2> + + <sect2 id="sendmailuucp"> + <title>Configurer UUCP.</title> + + <para><emphasis>Emprunté à la FAQ.</emphasis></para> + + <para>La configuration de <command>sendmail</command> livrée avec + FreeBSD convient à des sites directement connectés à l'Internet. + Les sites qui veulent échanger du courrier par UUCP doivent + installer un autre fichier de configuration de + <command>sendmail</command>.</para> + + <para>Bidouiller <filename>/etc/sendmail.cf</filename> à la main est + généralement considéré comme une occupation de puriste. La version + 8 de <command>sendmail</command> s'accompagne d'une nouvelle manière + de générer les fichiers de configuration avec le pré-processeur + <command>m4</command>, grâce auquel le travail de configuration + à la main se fait à un niveau d'abstraction plus élevé. + Utilisez les fichiers de configuration du répertoire + <filename>/usr/src/usr.sbin/sendmail/cf</filename>.</para> + + <para>Si vous n'avez pas installé la totalité du source sur votre + système, les fichiers et outils de <command>sendmail</command> ont + été scindés en plusieurs fichiers d'archive, pour plus de + commodités. En supposant que vous ayez monté le CD-ROM, + tapez:</para> + + <informalexample> + <screen>&prompt.root; <userinput>cd /usr/src</userinput> +&prompt.root; <userinput>tar -xvzf /cdrom/dists/src/ssmailcf.aa</userinput></screen> + </informalexample> + + <para>Pas de panique, il n'y a que quelques centaines de kilo-octets. + Le fichier <filename>README</filename> du répertoire + <filename>cf</filename> est une bonne introduction de base à la + configuration avec <command>m4</command>.</para> + + <para>Pour le transfert par UUCP, le mieux est d'utiliser la + fonctionnalité <emphasis>mailertable</emphasis>. Elle construit une + base de données que <command>sendmail</command> peut utiliser pour + prendre ses décisions de routage.</para> + + <para>Vous devez d'abord créer un fichier <filename>.mc</filename>. + Le répertoire <filename>/usr/src/usr.sbin/sendmail/cf/cf</filename> + contient ces fichiers. Jetez-y un coup d'oeil, il y a déjà + quelques exemples. Supposons que vous ayez appelé votre fichier + <filename>foo.mc</filename>, tout ce que vous avez à faire pour le + convertir en un fichier <filename>sendmail.cf</filename> + valide est:</para> + + <informalexample> + <screen>&prompt.root; <userinput>cd /usr/src/usr.sbin/sendmail/cf/cf</userinput> +&prompt.root; <userinput>make foo.cf</userinput></screen> + </informalexample> + + <para>Si vous n'avez pas de répertoire + <filename>/usr/obj</filename>, alors:</para> + + <informalexample> + <screen>&prompt.root; <userinput>cp foo.cf /etc/sendmail.cf</userinput></screen> + </informalexample> + + <para>Sinon:</para> + + <informalexample> + <screen>&prompt.root; <userinput>cp /usr/obj/`pwd`/foo.cf /etc/sendmail.cf</userinput></screen> + </informalexample> + + <para>Un fichier <filename>.mc</filename> typique ressemblerait + à:</para> + + <programlisting> +include(`../m4/cf.m4') +VERSIONID(`<replaceable>Votre numéro de version</replaceable>') +OSTYPE(bsd4.4) + +FEATURE(nodns) +FEATURE(nocanonify) +FEATURE(mailertable) + +define(`UUCP_RELAY', <replaceable>votre.relais.uucp</replaceable>) +define(`UUCP_MAX_SIZE', 200000) + +MAILER(local) +MAILER(smtp) +MAILER(uucp) + +Cw <replaceable>votre.alias.nom.machine</replaceable> +Cw <replaceable>votrenomdenoeuduucp.UUCP</replaceable></programlisting> + + <para>Les fonctionnalités <literal>nodns</literal> et + <literal>nocanonify</literal> évitent le recours au DNS + pour délivrer le courrier. La clause <literal>UUCP_RELAY</literal> + est nécessaire pour d'obscures raisons, ne me demandez pas + lesquelles. Mettez-y simplement un nom de machine Internet qui + soit capable de comprendre les adresses du pseudo-domaine .UUCP; + vous y mettrez vraisemblablement le nom du relais de courrier + électronique de votre fournisseur d'accès.</para> + + <para>Un fois que cela est fait, il vous faut le fichier appelé + <filename>/etc/mailertable</filename>. De nouveau, un exemple + typique de cette variété:</para> + + <programlisting> +# +# makemap hash /etc/mailertable.db < /etc/mailertable +# +horus.interface-business.de uucp-dom:horus +.interface-business.de uucp-dom:if-bus +interface-business.de uucp-dom:if-bus +.heep.sax.de smtp8:%1 horus.UUCP +uucp-dom:horus if-bus.UUCP +uucp-dom:if-bus . uucp-dom:sax</programlisting> + + <para>Comme vous pouvez le constater, c'est un exemple d'après nature. + Les trois premières lignes prennent en charge les cas particuliers + où le courrier adressé au domaine ne doit pas être expédié sur la + route par défaut, mais à un voisin UUCP pour + “raccourcir” le trajet. La ligne suivante gère le + courrier sur le domaine local Ethernet, qui peut être délivré + par SMTP. Pour finir, les voisins UUCP sont référencés avec la + notation utilisant le pseudo-domaine .UUCP pour permettre + la surcharge des règles par défaut + <literal>uucp-voisin!destinataire</literal>. Il y a toujours un + simple point (“.”) sur la dernière ligne, + qui correspond à tout le reste, + et permet l'expédition UUCP à un voisin UUCP qui vous sert de + passerelle universelle pour le courrier au reste du monde. Tous les + noms de noeuds après le mot-clé <literal>uucp-dom:</literal> + doivent être des voisins UUCP valables, ce que vous pouvez contrôler + avec <command>uuname</command>.</para> + + <para>Pour vous rappeler que ce fichier doit être converti en base + de données DBM avant d'être utilisable, c'est une bonne idée de + mettre la ligne de commande qui le fait en tête du fichier + <filename>mailertable</filename>. Vous devez l'exécuter chaque fois + que vous modifiez <filename>mailertable</filename>.</para> + + <para>Dernier point: si vous n'êtes pas sûr qu'une route donnée + fonctionne, rappelez-vous l'option <option>-bt</option> de + <command>sendmail</command>. Elle lance <command>sendmail</command> + en mode “test d'addresse”; entrez simplement + <literal>0</literal>, puis l'adresse dont vous voulez tester la + route, la dernière ligne vous donnera l'agent de transport de + courrier utilisé en interne, la machine destinatrice que vous + avez donnée en paramètre, et l'adresse (éventuellement traduite). + Vous quittez ce mode en tapant Ctrl-D.</para> + + <informalexample> + <screen>&prompt.user; <userinput>sendmail -bt</userinput> +ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) +Enter <ruleset> <address> +<prompt>></prompt> <userinput>0 foo@interface-business.de</userinput> +rewrite: ruleset 0 input: foo @ interface-business . de +… +rewrite: ruleset 0 returns: $# uucp-dom $@ if-bus $: foo < @ interface-business . de</screen> + </informalexample> + + </sect2> + </sect1> + + <sect1 id="mailfaq"> + <title>FAQ</title> + + <para><emphasis>Emprunts à la FAQ.</emphasis></para> + + + <sect2> + <title>Pourquoi faut-il que j'utilise les FQDN (“Fully Qualified + Domain Name” - noms Internet + complets) pour les machines de mon site?</title> + + <para>Vous vous rendrez probablement compte que la machine est en + fait dans un domaine différent; par exemple, si vous êtes dans + le domaine <hostid role="fqdn">foo.bar.edu</hostid> et que vous + voulez atteindre la machine <hostid>mumble</hostid> du domaine + <hostid role="domainname">bar.edu</hostid>, vous devrez utiliser + son nom de domaine complet, <hostid + role="fqdn">mumble.bar.edu</hostid>, au lieu de + <hostid>mumble</hostid>.</para> + + <para>C'était traditionnellement admis par les solveurs BIND BSD. + Néanmoins, la version de <application>BIND</application> qui est + maintenant livrée avec FreeBSD ne sait pas compléter les noms + de domaines abrégés autrement qu'avec le nom de votre domaine. + Donc le nom non qualifié <hostid>mumble</hostid> doit correspondre + à <hostid role="fqdn">mumble.foo.bar.edu</hostid>, sans quoi il + sera recherché dans le domaine racine.</para> + + <para>Cela diffère du comportement antérieur, où la recherche se + prolongeait à <hostid role="domainname">mumble.bar.edu</hostid>, + puis <hostid role="domainname">mumble.edu</hostid>. Consultez la + RFC 1535 pour savoir pourquoi cela était considéré comme une manière + incorrecte de faire, voire un trou de sécurité.</para> + + <para>Comme palliatif, vous pouvez mettre la ligne: + + <programlisting> +search foo.bar.edu bar.edu</programlisting> + + à la place de: + + <programlisting> +domain foo.bar.edu</programlisting> + + dans votre fichier <filename>/etc/resolv.conf</filename>. Assurez-vous + cependant que la recherche ne franchit pas la + “limite entre l'administration locale et publique” + selon l'expression de la RFC 1535.</para> + + </sect2> + + <sect2> + <title>Sendmail affiche le message d'erreur + <errorname>mail loops back to myself</errorname></title> + + <para>La réponse donnée dans la FAQ de Sendmail est la suivante:</para> + + <programlisting> +* J'ai des messages "Local configuration error", du style: + +553 relay.domain.net config error: mail loops back to myself +554 <user@domain.net>... Local configuration error + +Comment puis-je résoudre ce problème? + +Vous avez demandé que le courrier pour un domaine (e.g., domain.net) soit +transmis à une machine donnée (dans ce cas précis, relay.domain.net) avec +un enregistrement MX, mais la machine relais ne se connaît pas elle-même +comme domain.net. Ajoutez domain.net à /etc/sendmail.cw (si vous utilisez +FEATURE(use_cw_file)) ou ajoutez "Cw domain.net" à /etc/sendmail.cf.</programlisting> + + <para>La FAQ Sendmail se trouve dans + <filename>/usr/src/usr.sbin/sendmail</filename>. Je vous en + recommande la lecture si vous voulez “bidouiller” + votre configuration du courrier électronique.</para> + + </sect2> + + <sect2> + <title>Comment puis-je gèrer le courrier électronique avec une + connexion téléphonique PPP?</title> + + <para>Vous voulez connecter une machine FreeBSD du réseau local + à l'Internet. Cette machine servira de passerelle de courrier + pour le réseau local. La connexion PPP n'est pas dédiée.</para> + + <para>Il y a au moins deux façons de faire.</para> + + <para>L'une d'elle est d'utiliser UUCP. Voici l'autre.</para> + + <para>Le point clé est d'obtenir d'un site Internet qu'il vous + fournisse les services MX secondaires pour votre domaine. Par + exemple:</para> + + <programlisting> +bigco.com. MX 10 bigco.com. + MX 20 smalliap.com.</programlisting> + + <para>Il doit y avoir une seule machine comme destinataire final + (ajoutez <literal>Cw bigco.com</literal> au fichier + <filename>/etc/sendmail.cf</filename> de bigco.com).</para> + + <para>Quand les <command>sendmail</command> expéditeurs essayeront + de vous délivrer du courrier, ils essayerons de vous contacter via + votre liaison modem. Ce qui échouera très probablement sur + dépassement de délai puisque vous n'êtes pas en ligne. + <command>sendmail</command> enverra automatiquement le courrier au + site MX secondaire, i.e.: votre fournisseur d'accès. Celui-ci + essayera toutes les 15 minutes (<literal>sendmail_flags = + "-bd -q15m"</literal> dans <filename>/etc/rc.conf</filename>) + de se connecter à votre machine pour expédier le courrier au site + MX primaire.</para> + + <para>Vous pouvez utiliser quelque chose comme ceci comme + procédure de connexion:</para> + + <programlisting> +#!/bin/sh +# Mettez-moi dans /usr/local/bin/pppbigco +( sleep 60 ; /usr/sbin/sendmail -q ) & +/usr/sbin/ppp -direct pppbigco</programlisting> + + <para>Si vous définissez une procédure de connexion particulière + pour un utilisateur, vous pouvez utiliser <command>sendmail + -qRbigco.com</command> au lieu de la procédure ci-dessus. Cela + forcera le traitement immédiat de tout le courrier dans la file + d'attente pour bigco.com.</para> + + <para>On peut encore affiner comme suit la configuration:</para> + + <para>Message emprunté à la liste de diffusion freebsd-isp.</para> + + <programlisting> +> Nous fournissons un MX secondaire à un client. Le client se connecte +> à notre service automatiquement plusieurs fois par jour pour acheminer +> le courrier sur son MX primaire (nous n'appelons pas son site lorsque +> du courrier lui arrive). Notre sendmail envoie le courrier de la file +> d'attente toutes les demi-heures. Pour l'instant, il doit rester une +> demi-heure en ligne pour être sûr que tout le courrier soit arrivé au +> MX primaire. +> +> Y-a-t-il une commande qui permette de dire à sendmail d'envoyer +> sur-le-champ tout le courrier? L'utilisateur n'a évidemment pas +> les droits super-utilisateur sur la machine. + +Dans la section 'indicateurs de confidentialité' de sendmail.cf, +il y a la définition : + Opgoaway,restrictqrun + +Supprimer restrictqrun permet à d'autres utilisateurs que le super-utilisateur +de lancer le traitement de la file d'attente. Vous pouvez aussi redéfinir les +MXs. Nous sommes le premier MX pour les utilisateurs de ce type et nous avons +défini: + +# Si nous sommes le meilleur MX pour une machine, essayer directement au lieu +# d'émettre des messages d'erreur de configuration locale. +OwTrue + +De cette façon, un site distant vous enverra le courrier, sans essayer de +se connecter chez votre client. Vous le lui transmettez ensuite. Cela ne +marche qu'avec "hosts", vous n'avez donc pas besoin que votre client appelle +son serveur de courrier "client.com" ou "machine.client.com" dans le DNS. +Mettez seulement un enregistrement A pour "client.com" dans le DNS.</programlisting> + + </sect2> + </sect1> + </chapter> + +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-shorttag: nil + sgml-always-quote-attributes: t + sgml-minimize-attributes: max + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> diff --git a/fr_FR.ISO_8859-1/books/handbook/mailing-lists.ent b/fr_FR.ISO_8859-1/books/handbook/mailing-lists.ent new file mode 100644 index 0000000000..21e0a7d074 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/mailing-lists.ent @@ -0,0 +1,110 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> +<!-- + fichier crée a partir du fichier lists.sgml + de la version linuxdoc du docbook +--> + +<!ENTITY a.announce "liste de diffusion pour les annonces relatives à FreeBSD + <email>freebsd-announce@FreeBSD.ORG</email>"> + +<!ENTITY a.advocacy "FreeBSD advocacy mailing list + <email>freebsd-advocacy@FreeBSD.ORG</email>"> + +<!ENTITY a.cvsall "liste de diffusion des messages de soumission CVS de FreeBSD + <email>cvs-all@FreeBSD.ORG</email>"> + +<!ENTITY a.database "FreeBSD based Databases + <email>freebsd-database@FreeBSD.ORG</email>"> + +<!ENTITY a.fr-doc "liste de diffusion du groupe de traduction en langue française de la documentation de FreeBSD + <email>freebsd-france@freebsd.francenet.fr</email>"> + +<!ENTITY a.doc "liste de diffusion du groupe de documentation de FreeBSD + <email>freebsd-doc@FreeBSD.ORG</email>"> + +<!ENTITY a.bugs "FreeBSD problem reports mailing list + <email>freebsd-bugs@FreeBSD.ORG</email>"> + +<!ENTITY a.chat "FreeBSD chat mailing list + <email>freebsd-chat@FreeBSD.ORG</email>"> + +<!ENTITY a.current "liste de diffusion à propos de FreeBSD-current + <email>freebsd-current@FreeBSD.ORG</email>"> + +<!ENTITY a.emulation "FreeBSD-emulation mailing list + <email>freebsd-emulation@FreeBSD.ORG</email>"> + +<!ENTITY a.fs "FreeBSD filesystem project mailing list + <email>freebsd-fs@FreeBSD.ORG</email>"> + +<!ENTITY a.hackers "liste de diffusion pour les discussions techniques sur FreeBSD + <email>freebsd-hackers@FreeBSD.ORG</email>"> + +<!ENTITY a.hardware "FreeBSD hardware and equipment mailing list + <email>freebsd-hardware@FreeBSD.ORG</email>"> + +<!ENTITY a.isdn "FreeBSD ISDN mailing list + <email>freebsd-isdn@FreeBSD.ORG</email>"> + +<!ENTITY a.isp "FreeBSD Internet service provider's mailing list + <email>freebsd-isp@FreeBSD.ORG</email>"> + +<!ENTITY a.java "FreeBSD Java Language mailing list + <email>freebsd-java@FreeBSD.ORG</email>"> + +<!ENTITY a.jobs "FreeBSD related employment mailing list + <email>freebsd-jobs@FreeBSD.ORG</email>"> + +<!ENTITY a.mobile "FreeBSD laptop computer mailing list + <email>freebsd-mobile@FreeBSD.ORG</email>"> + +<!ENTITY a.mozilla "FreeBSD port of the Mozilla browser mailing list + <email>freebsd-mozilla@FreeBSD.ORG</email>"> + +<!ENTITY a.multimedia "FreeBSD multimedia mailing list + <email>freebsd-multimedia@FreeBSD.ORG</email>"> + +<!ENTITY a.net "FreeBSD networking mailing list + <email>freebsd-net@FreeBSD.ORG</email>"> + +<!ENTITY a.newbies "FreeBSD new users mailing list + <email>freebsd-newbies@FreeBSD.ORG</email>"> + +<!ENTITY a.ports "liste de diffusion à propos du catalogue des logiciels portés de FreeBSD + <email>freebsd-ports@FreeBSD.ORG</email>"> + +<!ENTITY a.questions "liste de diffusion pour les questions d'ordre général à propos de FreeBSD + <email>freebsd-questions@FreeBSD.ORG</email>"> + +<!ENTITY a.scsi "FreeBSD SCSI subsystem mailing list + <email>freebsd-scsi@FreeBSD.ORG</email>"> + +<!ENTITY a.security "FreeBSD security mailing list + <email>freebsd-security@FreeBSD.ORG</email>"> + +<!ENTITY a.security-notifications "FreeBSD security notifications mailing list + <email>freebsd-security-notifications@FreeBSD.ORG</email>"> + +<!ENTITY a.small "liste de diffusion pour les systèmes FreeBSD embarqués + <email>freebsd-small@FreeBSD.ORG</email>"> + +<!ENTITY a.smp "FreeBSD symmetric multiprocessing mailing list + <email>freebsd-smp@FreeBSD.ORG</email>"> + +<!ENTITY a.stable "liste de diffusion à propos de FreeBSD-stable + <email>freebsd-stable@FreeBSD.ORG</email>"> + +<!ENTITY a.tokenring "FreeBSD tokenring mailing list + <email>freebsd-tokenring@FreeBSD.ORG</email>"> + +<!ENTITY a.majordomo + "<email>majordomo@FreeBSD.ORG</email>"> + +<!ENTITY a.core "Equipe de base de FreeBSD + <email>freebsd-core@FreeBSD.ORG</email>"> diff --git a/fr_FR.ISO_8859-1/books/handbook/mirrors/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/mirrors/chapter.sgml new file mode 100644 index 0000000000..69568d4228 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/mirrors/chapter.sgml @@ -0,0 +1,1420 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: 1.12 +--> + +<chapter id="mirrors"> + <title>Se procurer FreeBSD</title> + + <sect1> + <title>Editeurs de CD-ROMs</title> + + <para>FreeBSD est disponible sur CD-ROMs chez Walnut Creek CDROM : + + <address> + <otheraddr>Walnut Creek CDROM</otheraddr> + <street>4041 Pike Lane, Suite F</street> + <city>Concord</city> + <state>CA</state>, <postcode>94520</postcode> + <country>USA</country> + Téléphone : <phone>+1 925 674-0783</phone> + Fax : <fax>+1 925 674-0821</fax> + Email : <email>info@cdrom.com</email> + WWW : <otheraddr>http://www.cdrom.com/</otheraddr> + </address></para> + </sect1> + + <sect1 id="mirrors-ftp"> + <title>Sites FTP</title> + + <para>Les sources officiels de FreeBSD sont disponibles via FTP anonyme + à l'adresse suivante : + + <blockquote> + <para><ulink + URL="ftp://ftp.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.FreeBSD.ORG/pub/FreeBSD</ulink>.</para> + </blockquote></para> + + <para>La <ulink + url="http://www.itworks.com.au/~gavin/FBSDsites.php3">base de + données des sites miroir FreeBSD</ulink> est plus à jour que + la liste de ce manuel de référence, parce qu'elle tire ses + informations du DNS plutôt que de donner une liste + figée.</para> + + <para>FreeBSD est aussi disponible via FTP anonyme sur les sites miroir + ci-dessous. Si vous faites le choix de vous procurer FreeBSD via FTP + anonyme, faites s'il vous plaît en sorte d'utiliser un site proche + de vous.</para> + + <para> + <link linkend="mirrors-za">Afrique du Sud</link>, + <link linkend="mirrors-de">Allemagne</link>, + <link linkend="mirrors-ar">Argentine</link>, + <link linkend="mirrors-au">Australie</link>, + <link linkend="mirrors-br">Brésil</link>, + <link linkend="mirrors-ca">Canada</link>, + <link linkend="mirrors-kr">Corée</link>, + <link linkend="mirrors-dk">Danemark</link>, + <link linkend="mirrors-es">Espagne</link>, + <link linkend="mirrors-ee">Estonie</link>, + <link linkend="mirrors-us">Etats-Unis</link>, + <link linkend="mirrors-fi">Finlande</link>, + <link linkend="mirrors-fr">France</link>, + <link linkend="mirrors-hk">Hong Kong</link>, + <link linkend="mirrors-ie">Irelande</link>, + <link linkend="mirrors-il">Israël</link>, + <link linkend="mirrors-jp">Japon</link>, + <link linkend="mirrors-nl">Pays-Bas</link>, + <link linkend="mirrors-pl">Pologne</link>, + <link linkend="mirrors-pt">Portugal</link>, + <link linkend="mirrors-sk">République Slovaque</link>, + <link linkend="mirrors-cz">République Tchèque</link>, + <link linkend="mirrors-uk">Royaume-Uni</link>, + <link linkend="mirrors-ru">Russie</link>, + <link linkend="mirrors-si">Slovénie</link>, + <link linkend="mirrors-se">Suède</link>, + <link linkend="mirrors-tw">Taïwan</link>, + <link linkend="mirrors-th">Thaïlande</link>, + <link linkend="mirrors-ua">Ukraine</link>.</para> + + <variablelist> + <varlistentry> + <term><anchor id="mirrors-za">Afrique du Sud</term> + + <listitem> + <para>En cas de problème, contactez le + “<foreignphrase>hostmaster</foreignphrase>” + <email>hostmaster@za.FreeBSD.ORG</email> pour ce domaine.</para> + + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.za.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.za.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp2.za.FreeBSD.ORG/pub/FreeBSD">ftp://ftp2.za.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp3.za.FreeBSD.ORG/FreeBSD">ftp://ftp3.za.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term><anchor id="mirrors-de">Allemagne</term> + + <listitem> + <para>En cas de problème, contactez le + “<foreignphrase>hostmaster</foreignphrase>” + <email>hostmaster@de.FreeBSD.ORG</email> pour ce domaine.</para> + + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.de.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.de.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp2.de.FreeBSD.ORG/pub/FreeBSD">ftp://ftp2.de.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp3.de.FreeBSD.ORG/pub/FreeBSD">ftp://ftp3.de.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp4.de.FreeBSD.ORG/pub/FreeBSD">ftp://ftp4.de.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp5.de.FreeBSD.ORG/pub/FreeBSD">ftp://ftp5.de.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp6.de.FreeBSD.ORG/pub/FreeBSD">ftp://ftp6.de.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp7.de.FreeBSD.ORG/pub/FreeBSD">ftp://ftp7.de.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term><anchor id="mirrors-ar">Argentine</term> + + <listitem> + <para>En cas de problème, contactez le + “<foreignphrase>hostmaster</foreignphrase>” + <email>hostmaster@ar.FreeBSD.ORG</email> pour ce domaine.</para> + + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.ar.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.ar.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term><anchor id="mirrors-au">Australie</term> + + <listitem> + <para>En cas de problème, contactez le + “<foreignphrase>hostmaster</foreignphrase>” + <email>hostmaster@au.FreeBSD.ORG</email> pour ce domaine.</para> + + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.au.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.au.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp2.au.FreeBSD.ORG/pub/FreeBSD">ftp://ftp2.au.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp3.au.FreeBSD.ORG/pub/FreeBSD">ftp://ftp3.au.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp4.au.FreeBSD.ORG/pub/FreeBSD">ftp://ftp4.au.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term><anchor id="mirrors-br">Brésil</term> + + <listitem> + <para>En cas de problème, contactez le + “<foreignphrase>hostmaster</foreignphrase>” + <email>hostmaster@br.FreeBSD.ORG</email> pour ce domaine.</para> + + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.br.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.br.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp2.br.FreeBSD.ORG/pub/FreeBSD">ftp://ftp2.br.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp3.br.FreeBSD.ORG/pub/FreeBSD">ftp://ftp3.br.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp4.br.FreeBSD.ORG/pub/FreeBSD">ftp://ftp4.br.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp5.br.FreeBSD.ORG/pub/FreeBSD">ftp://ftp5.br.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp6.br.FreeBSD.ORG/pub/FreeBSD">ftp://ftp6.br.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp7.br.FreeBSD.ORG/pub/FreeBSD">ftp://ftp7.br.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term><anchor id="mirrors-ca">Canada</term> + + <listitem> + <para>En cas de problème, contactez le + “<foreignphrase>hostmaster</foreignphrase>” + <email>hostmaster@ca.FreeBSD.ORG</email> pour ce domaine.</para> + + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.ca.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.ca.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term><anchor id="mirrors-kr">Corée</term> + + <listitem> + <para>En cas de problème, contactez le + “<foreignphrase>hostmaster</foreignphrase>” + <email>hostmaster@kr.FreeBSD.ORG</email> pour ce domaine.</para> + + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.kr.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.kr.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp2.kr.FreeBSD.ORG/pub/FreeBSD">ftp://ftp2.kr.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink url="ftp://ftp3.kr.FreeBSD.ORG/pub/FreeBSD">ftp://ftp3.kr.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink url="ftp://ftp4.kr.FreeBSD.ORG/pub/FreeBSD">ftp://ftp4.kr.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink url="ftp://ftp5.kr.FreeBSD.ORG/pub/FreeBSD">ftp://ftp5.kr.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + url="ftp://ftp6.kr.FreeBSD.ORG/pub/FreeBSD">ftp://ftp6.kr.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term><anchor id="mirrors-dk">Danemark</term> + + <listitem> + <para>En cas de problème, contactez le + “<foreignphrase>hostmaster</foreignphrase>” + <email>hostmaster@dk.FreeBSD.ORG</email> pour ce domaine.</para> + + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.dk.freeBSD.ORG/pub/FreeBSD">ftp://ftp.dk.freeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term><anchor id="mirrors-es">Espagne</term> + + <listitem> + <para>En cas de problème, contactez le + “<foreignphrase>hostmaster</foreignphrase>” + <email>hostmaster@es.FreeBSD.ORG</email> pour ce domaine.</para> + + <itemizedlist> + <listitem> + <para><ulink url="ftp://ftp.es.freebsd.ORG/pub/FreeBSD">ftp://ftp.es.freebsd.ORG/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term><anchor id="mirrors-ee">Estonie</term> + + <listitem> + <para>En cas de problème, contactez le + “<foreignphrase>hostmaster</foreignphrase>” + <email>hostmaster@ee.FreeBSD.ORG</email> pour ce domaine.</para> + + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.ee.freebsd.ORG/pub/FreeBSD">ftp://ftp.ee.freebsd.ORG/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term><anchor id="mirrors-us">Etats-Unis</term> + + <listitem> + <para>En cas de problème, contactez le + “<foreignphrase>hostmaster</foreignphrase>” + <email>hostmaster@FreeBSD.ORG</email> pour ce domaine.</para> + + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp2.FreeBSD.ORG/pub/FreeBSD">ftp://ftp2.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp3.FreeBSD.ORG/pub/FreeBSD">ftp://ftp3.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp4.FreeBSD.ORG/pub/FreeBSD">ftp://ftp4.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp5.FreeBSD.ORG/pub/FreeBSD">ftp://ftp5.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp6.FreeBSD.ORG/pub/FreeBSD">ftp://ftp6.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term><anchor id="mirrors-fi">Finlande</term> + + <listitem> + <para>En cas de problème, contactez le + “<foreignphrase>hostmaster</foreignphrase>” + <email>hostmaster@fi.FreeBSD.ORG</email> pour ce domaine.</para> + + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.fi.freebsd.ORG/pub/FreeBSD">ftp://ftp.fi.freebsd.ORG/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term><anchor id="mirrors-fr">France</term> + + <listitem> + <para>En cas de problème, contactez le + “<foreignphrase>hostmaster</foreignphrase>” + <email>hostmaster@fr.FreeBSD.ORG</email> pour ce domaine.</para> + + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.fr.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.fr.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp2.fr.FreeBSD.ORG/pub/FreeBSD">ftp://ftp2.fr.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp3.fr.FreeBSD.ORG/pub/FreeBSD">ftp://ftp3.fr.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term><anchor id="mirrors-hk">Hong Kong</term> + + <listitem> + <itemizedlist> + + <listitem> + <para><ulink + URL="ftp://ftp.hk.super.net/pub/FreeBSD">ftp://ftp.hk.super.net/pub/FreeBSD</ulink> Contact: <email>ftp-admin@HK.Super.NET</email>.</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term><anchor id="mirrors-ie">Irelande</term> + + <listitem> + <para>En cas de problème, contactez le + “<foreignphrase>hostmaster</foreignphrase>” + <email>hostmaster@ie.FreeBSD.ORG</email> pour ce domaine.</para> + + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.ie.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.ie.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term><anchor id="mirrors-il">Israël</term> + + <listitem> + <para>En cas de problème, contactez le + “<foreignphrase>hostmaster</foreignphrase>” + <email>hostmaster@il.FreeBSD.ORG</email> pour ce domaine.</para> + + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.il.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.il.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp2.il.FreeBSD.ORG/pub/FreeBSD">ftp://ftp2.il.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term><anchor id="mirrors-jp">Japon</term> + + <listitem> + <para>En cas de problème, contactez le + “<foreignphrase>hostmaster</foreignphrase>” + <email>hostmaster@jp.FreeBSD.ORG</email> pour ce domaine.</para> + + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.jp.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.jp.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp2.jp.FreeBSD.ORG/pub/FreeBSD">ftp://ftp2.jp.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp3.jp.FreeBSD.ORG/pub/FreeBSD">ftp://ftp3.jp.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp4.jp.FreeBSD.ORG/pub/FreeBSD">ftp://ftp4.jp.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp5.jp.FreeBSD.ORG/pub/FreeBSD">ftp://ftp5.jp.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp6.jp.FreeBSD.ORG/pub/FreeBSD">ftp://ftp6.jp.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term><anchor id="mirrors-nl">Pays-Bas</term> + + <listitem> + <para>En cas de problème, contactez le + “<foreignphrase>hostmaster</foreignphrase>” + <email>hostmaster@nl.FreeBSD.ORG</email> pour ce domaine.</para> + + <itemizedlist> + + <listitem> + <para><ulink + URL="ftp://ftp.nl.freebsd.ORG/pub/FreeBSD">ftp://ftp.nl.freebsd.ORG/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term><anchor id="mirrors-pl">Pologne</term> + + <listitem> + <para>En cas de problème, contactez le + “<foreignphrase>hostmaster</foreignphrase>” + <email>hostmaster@pl.FreeBSD.ORG</email> pour ce domaine.</para> + + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.pl.freebsd.ORG/pub/FreeBSD">ftp://ftp.pl.freebsd.ORG/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term><anchor id="mirrors-pt">Portugal</term> + + <listitem> + <para>En cas de problème, contactez le + “<foreignphrase>hostmaster</foreignphrase>” + <email>hostmaster@pt.FreeBSD.ORG</email> pour ce domaine.</para> + + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.pt.freebsd.org/pub/FreeBSD">ftp://ftp.pt.freebsd.org/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp2.pt.freebsd.org/pub/FreeBSD">ftp://ftp2.pt.freebsd.org/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term><anchor id="mirrors-sk">République Slovaque</term> + + <listitem> + <para>En cas de problème, contactez le + “<foreignphrase>hostmaster</foreignphrase>” + <email>hostmaster@sk.FreeBSD.ORG</email> pour ce domaine.</para> + + <itemizedlist> + <listitem> + <para><ulink url="ftp://ftp.sk.freebsd.ORG/pub/FreeBSD">ftp://ftp.sk.freebsd.ORG/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term><anchor id="mirrors-cz">République Tchèque</term> + + <listitem> + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://sunsite.mff.cuni.cz/OS/FreeBSD">ftp://sunsite.mff.cuni.cz/OS/FreeBSD</ulink> Contact: <email>jj@sunsite.mff.cuni.cz</email>.</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term><anchor id="mirrors-uk">Royaume-Uni</term> + + <listitem> + <para>En cas de problème, contactez le + “<foreignphrase>hostmaster</foreignphrase>” + <email>hostmaster@uk.FreeBSD.ORG</email> pour ce domaine.</para> + + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.uk.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.uk.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp2.uk.FreeBSD.ORG/pub/FreeBSD">ftp://ftp2.uk.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp3.uk.FreeBSD.ORG/pub/FreeBSD">ftp://ftp3.uk.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp4.uk.FreeBSD.ORG/pub/FreeBSD">ftp://ftp4.uk.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term><anchor id="mirrors-ru">Russie</term> + + <listitem> + <para>En cas de problème, contactez le + “<foreignphrase>hostmaster</foreignphrase>” + <email>hostmaster@ru.FreeBSD.ORG</email> pour ce domaine.</para> + + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.ru.freebsd.org/pub/FreeBSD">ftp://ftp.ru.freebsd.org/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp2.ru.freebsd.org/pub/FreeBSD">ftp://ftp2.ru.freebsd.org/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp3.ru.freebsd.org/pub/FreeBSD">ftp://ftp3.ru.freebsd.org/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink url="ftp://ftp4.ru.freebsd.org/pub/FreeBSD">ftp://ftp4.ru.freebsd.org/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry><term><anchor id="mirrors-si">Slovénie</term> + + <listitem> + <para>En cas de problème, contactez le + “<foreignphrase>hostmaster</foreignphrase>” + <email>hostmaster@si.FreeBSD.ORG</email> pour ce domaine.</para> + + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.si.freebsd.ORG/pub/FreeBSD">ftp://ftp.si.freebsd.ORG/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term><anchor id="mirrors-se">Suède</term> + + <listitem> + <para>En cas de problème, contactez le + “<foreignphrase>hostmaster</foreignphrase>” + <email>hostmaster@se.FreeBSD.ORG</email> pour ce domaine.</para> + + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.se.freebsd.ORG/pub/FreeBSD">ftp://ftp.se.freebsd.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp2.se.freebsd.ORG/pub/FreeBSD">ftp://ftp2.se.freebsd.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp3.se.freebsd.ORG/pub/FreeBSD">ftp://ftp3.se.freebsd.ORG/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term><anchor id="mirrors-tw">Taïwan</term> + + <listitem> + <para>En cas de problème, contactez le + “<foreignphrase>hostmaster</foreignphrase>” + <email>hostmaster@tw.FreeBSD.ORG</email> pour ce domaine.</para> + + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.tw.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.tw.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp2.tw.FreeBSD.ORG/pub/FreeBSD">ftp://ftp2.tw.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp3.tw.FreeBSD.ORG/pub/FreeBSD">ftp://ftp3.tw.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term><anchor id="mirrors-th">Thaïlande</term> + + <listitem> + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.nectec.or.th/pub/FreeBSD">ftp://ftp.nectec.or.th/pub/FreeBSD</ulink> Contact: <email>ftpadmin@ftp.nectec.or.th</email>.</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term><anchor id="mirrors-ua">Ukraine</term> + + <listitem> + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.ua.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.ua.FreeBSD.ORG/pub/FreeBSD</ulink> Contact: <email>freebsd-mnt@lucky.net</email>.</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + </variablelist> + + <para>Les dernières versions du code FreeBSD (2.0C et + ultérieurs) soumis à des restrictions à l'exportation + (“eBones” et “secure”) sont disponibles sur les + sites suivants. Si vous êtes à l'extérieur des + Etats-Unis et du Canada, procurez-vous s'il vous plaît + “secure” (DES) et “eBones” d'un des sites de + distribution étrangers suivants :</para> + + <variablelist> + <varlistentry> + <term>Afrique du Sud</term> + + <listitem> + <para>“<foreignphrase>Hostmaster</foreignphrase>” + <email>hostmaster@internat.FreeBSD.ORG</email> pour ce + domaine.</para> + + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.internat.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.internat.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ftp2.internat.FreeBSD.ORG/pub/FreeBSD">ftp://ftp2.internat.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term>Brésil</term> + + <listitem> + <para>“<foreignphrase>Hostmaster</foreignphrase>” + <email>hostmaster@br.FreeBSD.ORG</email> pour ce domaine.</para> + + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.br.FreeBSD.ORG/pub/FreeBSD">ftp://ftp.br.FreeBSD.ORG/pub/FreeBSD</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term>Finlande</term> + + <listitem> + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://nic.funet.fi/pub/unix/FreeBSD/eurocrypt">ftp://nic.funet.fi/pub/unix/FreeBSD/eurocrypt</ulink> Contact: <email>count@nic.funet.fi</email>.</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + </variablelist> + </sect1> + + <sect1 id="mirrors-ctm"> + <title>Sites CTM</title> + + <para><link linkend="ctm">CTM</link>/FreeBSD est disponible via FTP anonyme + sur les sites miroir suivants. Si vous faites le choix de vous procurer + CTM via FTP anonyme, utilisez s'il vous plaît un site proche de + vous.</para> + + <para>En cas de problème, contactez &a.phk;.</para> + + <variablelist> + <varlistentry> + <term>Afrique du Sud, serveur de secours pour les anciens deltas</term> + + <listitem> + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.internat.freebsd.org/pub/FreeBSD/CTM">ftp://ftp.internat.freebsd.org/pub/FreeBSD/CTM</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term>Allemagne, Trier</term> + + <listitem> + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.uni-trier.de/pub/unix/systems/BSD/FreeBSD/CTM">ftp://ftp.uni-trier.de/pub/unix/systems/BSD/FreeBSD/CTM</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term>Californie, Bay Area, source officiel</term> + + <listitem> + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ftp.freebsd.org/pub/FreeBSD/development/CTM">ftp://ftp.freebsd.org/pub/FreeBSD/development/CTM</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term>Taiwan/R.O.C, Chiayi</term> + + <listitem> + <itemizedlist> + <listitem> + <para><ulink + URL="ftp://ctm.tw.freebsd.org/pub/FreeBSD/CTM">ftp://ctm.tw.freebsd.org/pub/FreeBSD/CTM</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ctm2.tw.freebsd.org/pub/FreeBSD/CTM">ftp://ctm2.tw.freebsd.org/pub/FreeBSD/CTM</ulink></para> + </listitem> + + <listitem> + <para><ulink + URL="ftp://ctm3.tw.freebsd.org/pub/freebsd/CTM">ftp://ctm3.tw.freebsd.org/pub/freebsd/CTM</ulink></para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + </variablelist> + + <para>Si vous n'avez pas trouvé de miroir proche de vous, ou si le + miroir est incomplet, essayez une + <ulink URL="http://ftpsearch.ntnu.no/"> recherche FTP</ulink> sur + <ulink URL="http://ftpsearch.ntnu.no/ftpsearch/">http://ftpsearch.ntnu.no/ftpsearch</ulink>. + Ce site est un excellent serveur “archie” libre à + Trondheim, en Norvège.</para> + </sect1> + + <sect1 id="mirrors-cvsup"> + <title>Sites CVSup</title> + + <para>Des serveurs <link linkend="cvsup">CVSup</link> FreeBSD sont + disponibles sur les sites suivants :</para> + + <variablelist> + <varlistentry> + <term>Afrique du Sud</term> + + <listitem> + <itemizedlist> + <listitem> + <para>cvsup.za.FreeBSD.ORG (responsable + <email>markm@FreeBSD.ORG</email>)</para> + </listitem> + + <listitem> + <para>cvsup2.za.FreeBSD.ORG (responsable + <email>markm@FreeBSD.ORG</email>)</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term>Allemagne</term> + + <listitem> + <itemizedlist> + <listitem> + <para>cvsup.de.FreeBSD.ORG (responsable + <email>wosch@freebsd.org</email>)</para> + </listitem> + + <listitem> + <para>cvsup2.de.FreeBSD.ORG (responsable + <email>petzi@freebsd.org</email>)</para> + </listitem> + + <listitem> + <para>cvsup3.de.FreeBSD.ORG (responsable + <email>ag@leo.org</email>)</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term>Argentine</term> + + <listitem> + <itemizedlist> + + <listitem> + <para>cvsup.ar.FreeBSD.ORG (responsable + <email>msagre@cactus.fi.uba.ar</email>)</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term>Australie</term> + + <listitem> + <itemizedlist> + <listitem> + <para>cvsup.au.FreeBSD.ORG (responsable + <email>dawes@physics.usyd.edu.au</email>)</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term>Brésil</term> + + <listitem> + <itemizedlist> + <listitem> + <para>cvsup.br.FreeBSD.ORG (responsable + <email>cvsup@cvsup.br.freebsd.org</email>)</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term>Canada</term> + + <listitem> + <itemizedlist> + <listitem> + <para>cvsup.ca.FreeBSD.ORG (responsable + <email>dm@glbalserve.net</email>)</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term>Danemark</term> + + <listitem> + <itemizedlist> + <listitem> + <para>cvsup.dk.FreeBSD.ORG (responsable + <email>jesper@skriver.dk</email>)</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term>Espagne</term> + + <listitem> + <itemizedlist> + <listitem> + <para>cvsup.es.freebsd.org (responsable + <email>jesusr@freebsd.org</email>)</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term>Estonie</term> + + <listitem> + <itemizedlist> + <listitem> + <para>cvsup.ee.FreeBSD.ORG (responsable + <email>taavi@uninet.ee</email>)</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term>Etats-Unis</term> + + <listitem> + <itemizedlist> + <listitem> + <para>cvsup1.FreeBSD.ORG (responsable + <email>skynyrd@opus.cts.cwu.edu</email>), Washington + state</para> + </listitem> + + <listitem> + <para>cvsup2.FreeBSD.ORG (responsable + <email>jdp@FreeBSD.ORG</email>), California</para> + </listitem> + + <listitem> + <para>cvsup3.FreeBSD.ORG (responsable + <email>wollman@FreeBSD.ORG</email>), Massachusetts</para> + </listitem> + + <listitem> + <para>cvsup5.FreeBSD.ORG (responsable + <email>cvsup@adsu.bellsouth.com</email>), Georgia</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term>Finlande</term> + + <listitem> + <itemizedlist> + <listitem> + <para>cvsup.fi.FreeBSD.ORG (responsable + <email>count@key.sms.fi</email>)</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term>Icelande</term> + + <listitem> + <itemizedlist> + <listitem> + <para>cvsup.is.FreeBSD.ORG (responsable + <email>adam@veda.is</email>)</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term>Japon</term> + + <listitem> + <itemizedlist> + + <listitem> + <para>cvsup.jp.FreeBSD.ORG (responsable + <email>simokawa@sat.t.u-tokyo.ac.jp</email>)</para> + </listitem> + + <listitem> + <para>cvsup2.jp.FreeBSD.ORG (responsable + <email>max@FreeBSD.ORG</email>)</para> + </listitem> + + <listitem> + <para>cvsup3.jp.FreeBSD.ORG (responsable + <email>shige@cin.nihon-u.ac.jp</email>)</para> + </listitem> + + <listitem> + <para>cvsup4.jp.FreeBSD.ORG (responsable + <email>cvsup-admin@ftp.media.kyoto-u.ac.jp</email>)</para> + </listitem> + + <listitem> + <para>cvsup5.jp.FreeBSD.ORG (responsable + <email>cvsup@imasy.or.jp</email>)</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term>Norvège</term> + + <listitem> + <itemizedlist> + <listitem> + <para>cvsup.no.FreeBSD.ORG (responsable + <email>Tor.Egge@idt.ntnu.no</email>)</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term>Pays-Bas</term> + + <listitem> + <itemizedlist> + + <listitem> + <para>cvsup.nl.FreeBSD.ORG (responsable + <email>xaa@xaa.iae.nl</email>)</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term>Pologne</term> + + <listitem> + <itemizedlist> + <listitem> + <para>cvsup.pl.FreeBSD.ORG (responsable + <email>Mariusz@kam.pl</email>)</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term>République Slovaque</term> + + <listitem> + <itemizedlist> + <listitem> + <para>cvsup.sk.FreeBSD.ORG (responsable + <email>tps@tps.sk</email>)</para> + </listitem> + + <listitem> + <para>cvsup2.sk.FreeBSD.ORG (responsable + <email>tps@tps.sk</email>)</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term>Royaume-Uni</term> + + <listitem> + <itemizedlist> + <listitem> + <para>cvsup.uk.FreeBSD.ORG (responsable + <email>joe@pavilion.net</email>)</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term>Russie</term> + + <listitem> + <itemizedlist> + <listitem> + <para>cvsup.ru.FreeBSD.ORG (responsable + <email>mishania@demos.su</email>)</para> + </listitem> + + <listitem> + <para>cvsup2.ru.FreeBSD.ORG (responsable + <email>dv@dv.ru</email>)</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term>Suède</term> + + <listitem> + <itemizedlist> + <listitem> + <para>cvsup.se.FreeBSD.ORG (responsable + <email>pantzer@ludd.luth.se</email>)</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term>Taïwan</term> + + <listitem> + <itemizedlist> + <listitem> + <para>cvsup.tw.FreeBSD.ORG (responsable + <email>jdli@freebsd.csie.nctu.edu.tw</email>)</para> + </listitem> + + </itemizedlist> + </listitem> + </varlistentry> + + <varlistentry> + <term>Ukraine</term> + + <listitem> + <itemizedlist> + + <listitem> + <para>cvsup2.ua.FreeBSD.ORG (responsable + <email>freebsd-mnt@lucky.net</email>)</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + </variablelist> + + <para>Le code pour FreeBSD soumis à des restrictions à + l'exportation (“eBones” et “secure”) est + disponible via <application>CVSup</application> sur l'archive + internationale suivante. Utilisez s'il vous plaît ce site pour + obtenir ce code, si vous êtes à l'extérieur des + Etats-Unis et du Canada.</para> + + <variablelist> + <varlistentry> + <term>Afrique du Sud</term> + + <listitem> + <itemizedlist> + <listitem> + <para>cvsup.internat.FreeBSD.ORG (responsable + <email>markm@FreeBSD.ORG</email>)</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + </variablelist> + + <para>Le site <application>CVSup</application> suivant est + spécialement conçu pour les utilisateurs de + <link linkend="ctm">CTM</link>. A l'inverse des autres miroirs CVSup, il + est mis à jour via <application>CTM</application>. Ce qui signifie + que si vous récupérez avec <application>CVSup</application> + <literal>cvs-all</literal> avec <literal>release=cvs</literal> de ce site, vous obtenez une version + des archives (y compris l'inévitable fichier + <filename>.ctm_status</filename>) prête à être mise + à jour avec les deltas <application>CTM</application> + <literal>cvs-cur</literal>. Cela permet aux utilisateurs qui maintiennent + à jour toute l'arborescence <literal>cvs-all</literal> de passer de + <application>CVSup</application> à <application>CTM</application> + sans avoir à réinitialiser leur archive avec un nouveau + delta <application>CTM</application> de base.</para> + + <note> + <para>Cette fonctionnalité particulière ne s'applique + qu'à la distribution <literal>cvs-all</literal> avec + <command>cvs</command> comme étiquette de version. + Récupérer tout autre distribution et/ou version CVSup vous + procurera la distribution en question, mais elle ne pourra pas + être mise à jour avec + <application>CTM</application>.</para> + </note> + + <note> + <para>Comme la version actuelle de <application>CTM</application> ne + conserve pas les dates des fichiers, les dates sur ce site miroir ne + sont pas les mêmes que sur les autres sites. Il n'est pas + recommandé de passer de ce site à d'autres. Cela + fonctionnera, mais ce n'est pas très efficace.</para> + </note> + + <variablelist> + <varlistentry> + <term>Allemagne</term> + + <listitem> + <itemizedlist> + <listitem> + <para>ctm.FreeBSD.ORG (responsable + <email>blank@fox.uni-trier.de</email>)</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + </variablelist> + </sect1> + + <sect1 id="mirrors-afs"> + <title>Sites AFS</title> + + <para>Il y a des serveurs AFS pour FreeBSD sur les sites + suivants :</para> + + <variablelist> + <varlistentry> + <term>Suède</term> + + <listitem> + <para>Le chemin d'accès aux fichiers est : + <filename>/afs/stacken.kth.se/ftp/pub/FreeBSD</filename></para> + + <itemizedlist> + <listitem> + <para><hostid role="fqdn">stacken.kth.se</hostid>, Stacken + Computer Club, KTH, Suède</para> + </listitem> + + <listitem> + <para><hostid role="ipaddr">130.237.234.3</hostid>, <hostid + role="fqdn">milko.stacken.kth.se</hostid></para> + </listitem> + + <listitem> + <para><hostid role="ipaddr">130.237.234.43</hostid>, <hostid + role="fqdn">hot.stacken.kth.se</hostid></para> + </listitem> + + <listitem> + <para><hostid role="ipaddr">130.237.234.44</hostid>, <hostid + role="fqdn">dog.stacken.kth.se</hostid></para> + </listitem> + </itemizedlist> + + <para>Responsable : <email>ftp@stacken.kth.se</email></para> + </listitem> + </varlistentry> + </variablelist> + </sect1> +</chapter> + +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-always-quote-attributes: t + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> + diff --git a/fr_FR.ISO_8859-1/books/handbook/pgpkeys/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/pgpkeys/chapter.sgml new file mode 100644 index 0000000000..17f0f41fc8 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/pgpkeys/chapter.sgml @@ -0,0 +1,627 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: 1.11 +--> + +<chapter id="pgpkeys"> + <title>PGP keys</title> + + <para>Pour le cas où vous auriez besoin de vérifier une + signature ou d'envoyer un courrier électronique crypté + à l'un des officiers ou membres de l'équipe de base, voici + à cet effet un certain nombre de clés.</para> + + <sect1> + <title>Officiers</title> + + <sect2> + <title>Officier de sérité FreeBSD + <email>security-officer@freebsd.org</email></title> + + <programlisting> +FreeBSD Security Officer <security-officer@freebsd.org> +Fingerprint = 41 08 4E BB DB 41 60 71 F9 E5 0E 98 73 AF 3F 11 + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: 2.6.3i + +mQCNAzF7MY4AAAEEAK7qBgPuBejER5HQbQlsOldk3ZVWXlRj54raz3IbuAUrDrQL +h3g57T9QY++f3Mot2LAf5lDJbsMfWrtwPrPwCCFRYQd6XH778a+l4ju5axyjrt/L +Ciw9RrOC+WaPv3lIdLuqYge2QRC1LvKACIPNbIcgbnLeRGLovFUuHi5z0oilAAUR +tDdGcmVlQlNEIFNlY3VyaXR5IE9mZmljZXIgPHNlY3VyaXR5LW9mZmljZXJAZnJl +ZWJzZC5vcmc+iQCVAwUQMX6yrOJgpPLZnQjrAQHyowQA1Nv2AY8vJIrdp2ttV6RU +tZBYnI7gTO3sFC2bhIHsCvfVU3JphfqWQ7AnTXcD2yPjGcchUfc/EcL1tSlqW4y7 +PMP4GHZp9vHog1NAsgLC9Y1P/1cOeuhZ0pDpZZ5zxTo6TQcCBjQA6KhiBFP4TJql +3olFfPBh3B/Tu3dqmEbSWpuJAJUDBRAxez3C9RVb+45ULV0BAak8A/9JIG/jRJaz +QbKom6wMw852C/Z0qBLJy7KdN30099zMjQYeC9PnlkZ0USjQ4TSpC8UerYv6IfhV +nNY6gyF2Hx4CbEFlopnfA1c4yxtXKti1kSN6wBy/ki3SmqtfDhPQ4Q31p63cSe5A +3aoHcjvWuqPLpW4ba2uHVKGP3g7SSt6AOYkAlQMFEDF8mz0ff6kIA1j8vQEBmZcD +/REaUPDRx6qr1XRQlMs6pfgNKEwnKmcUzQLCvKBnYYGmD5ydPLxCPSFnPcPthaUb +5zVgMTjfjS2fkEiRrua4duGRgqN4xY7VRAsIQeMSITBOZeBZZf2oa9Ntidr5PumS +9uQ9bvdfWMpsemk2MaRG9BSoy5Wvy8VxROYYUwpT8Cf2iQCVAwUQMXsyqWtaZ42B +sqd5AQHKjAQAvolI30Nyu3IyTfNeCb/DvOe9tlOn/o+VUDNJiE/PuBe1s2Y94a/P +BfcohpKC2kza3NiW6lLTp00OWQsuu0QAPc02vYOyseZWy4y3Phnw60pWzLcFdemT +0GiYS5Xm1o9nAhPFciybn9j1q8UadIlIq0wbqWgdInBT8YI/l4f5sf6JAJUDBRAx +ezKXVS4eLnPSiKUBAc5OBACIXTlKqQC3B53qt7bNMV46m81fuw1PhKaJEI033mCD +ovzyEFFQeOyRXeu25Jg9Bq0Sn37ynISucHSmt2tUD5W0+p1MUGyTqnfqejMUWBzO +v4Xhp6a8RtDdUMBOTtro16iulGiRrCKxzVgEl4i+9Z0ZiE6BWlg5AetoF5n3mGk1 +lw== +=ipyA +-----END PGP PUBLIC KEY BLOCK-----</programlisting> + </sect2> + + <sect2> + <title>&a.imp;</title> + + <programlisting> +Warner Losh <imp@village.org> + aka <imp@freebsd.org> +Fingerprint = D4 31 FD B9 F7 90 17 E8 37 C5 E7 7F CF A6 C1 B9 +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: 2.6.2 + +mQCNAzDzTiAAAAEEAK8D7KWEbVFUrmlqhUEnAvphNIqHEbqqT8s+c5f5c2uHtlcH +V4mV2TlUaDSVBN4+/D70oHmZc4IgiQwMPCWRrSezg9z/MaKlWhaslc8YT6Xc1q+o +EP/fAdKUrq49H0QQbkQk6Ks5wKW6v9AOvdmsS6ZJEcet6d9G4dxynu/2qPVhAAUR +tCBNLiBXYXJuZXIgTG9zaCA8aW1wQHZpbGxhZ2Uub3JnPokAlQMFEDM/SK1VLh4u +c9KIpQEBFPsD/1n0YuuUPvD4CismZ9bx9M84y5sxLolgFEfP9Ux196ZSeaPpkA0g +C9YX/IyIy5VHh3372SDWN5iVSDYPwtCmZziwIV2YxzPtZw0nUu82P/Fn8ynlCSWB +5povLZmgrWijTJdnUWI0ApVBUTQoiW5MyrNN51H3HLWXGoXMgQFZXKWYiQCVAwUQ +MzmhkfUVW/uOVC1dAQG3+AP/T1HL/5EYF0ij0yQmNTzt1cLt0b1e3N3zN/wPFFWs +BfrQ+nsv1zw7cEgxLtktk73wBGM9jUIdJu8phgLtl5a0m9UjBq5oxrJaNJr6UTxN +a+sFkapTLT1g84UFUO/+8qRB12v+hZr2WeXMYjHAFUT18mp3xwjW9DUV+2fW1Wag +YDKJAJUDBRAzOYK1s1pi61mfMj0BARBbA/930CHswOF0HIr+4YYUs1ejDnZ2J3zn +icTZhl9uAfEQq++Xor1x476j67Z9fESxyHltUxCmwxsJ1uOJRwzjyEoMlyFrIN4C +dE0C8g8BF+sRTt7VLURLERvlBvFrVZueXSnXvmMoWFnqpSpt3EmN6TNaLe8Cm87a +k6EvQy0dpnkPKokAlQMFEDD9Lorccp7v9qj1YQEBrRUD/3N4cCMWjzsIFp2Vh9y+ +RzUrblyF84tJyA7Rr1p+A7dxf7je3Zx5QMEXosWL1WGnS5vC9YH2WZwv6sCU61gU +rSy9z8KHlBEHh+Z6fdRMrjd9byPf+n3cktT0NhS23oXB1ZhNZcB2KKhVPlNctMqO +3gTYx+Nlo6xqjR+J2NnBYU8p +=7fQV +-----END PGP PUBLIC KEY BLOCK-----</programlisting> + </sect2> + </sect1> + + <sect1> + <title>Membres de l'équipe de base</title> + + <sect2> + <title>&a.asami;</title> + + <programlisting> +Satoshi Asami <asami@cs.berkeley.edu> + aka <asami@FreeBSD.ORG> +Fingerprint = EB 3C 68 9E FB 6C EB 3F DB 2E 0F 10 8F CE 79 CA + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: 2.6.2 + +mQCNAzPVyoQAAAEEAL7W+kipxB171Z4SVyyL9skaA7hG3eRsSOWk7lfvfUBLtPog +f3OKwrApoc/jwLf4+Qpdzv5DLEt/6Hd/clskhJ+q1gMNHyZ5ABmUxrTRRNvJMTrb +3fPU3oZj7sL/MyiFaT1zF8EaMP/iS2ZtcFsbYOqGeA8E/58uk4NA0SoeCNiJAAUR +tCVTYXRvc2hpIEFzYW1pIDxhc2FtaUBjcy5iZXJrZWxleS5lZHU+iQCVAwUQM/AT ++EqGN2HYnOMZAQF11QP/eSXb2FuTb1yX5yoo1Im8YnIk1SEgCGbyEbOMMBznVNDy +5g2TAD0ofLxPxy5Vodjg8rf+lfMVtO5amUH6aNcORXRncE83T10JmeM6JEp0T6jw +zOHKz8jRzygYLBayGsNIJ4BGxa4LeaGxJpO1ZEvRlNkPH/YEXK5oQmq9/DlrtYOJ +AEUDBRAz42JT8ng6GBbVvu0BAU8nAYCsJ8PiJpRUGlrz6rxjX8hqM1v3vqFHLcG+ +G52nVMBSy+RZBgzsYIPwI5EZtWAKb22JAJUDBRAz4QBWdbtuOHaj97EBAaQPA/46 ++NLUp+Wubl90JoonoXocwAg88tvAUVSzsxPXj0lvypAiSI2AJKsmn+5PuQ+/IoQy +lywRsxiQ5GD7C72SZ1yw2WI9DWFeAi+qa4b8n9fcLYrnHpyCY+zxEpu4pam8FJ7H +JocEUZz5HRoKKOLHErzXDiuTkkm72b1glmCqAQvnB4kAlQMFEDPZ3gyDQNEqHgjY +iQEBFfUEALu2C0uo+1Z7C5+xshWRYY5xNCzK20O6bANVJ+CO2fih96KhwsMof3lw +fDso5HJSwgFd8WT/sR+Wwzz6BAE5UtgsQq5GcsdYQuGI1yIlCYUpDp5sgswNm+OA +bX5a+r4F/ZJqrqT1J56Mer0VVsNfe5nIRsjd/rnFAFVfjcQtaQmjiQCVAwUQM9uV +mcdm8Q+/vPRJAQELHgP9GqNiMpLQlZig17fDnCJ73P0e5t/hRLFehZDlmEI2TK7j +Yeqbw078nZgyyuljZ7YsbstRIsWVCxobX5eH1kX+hIxuUqCAkCsWUY4abG89kHJr +XGQn6X1CX7xbZ+b6b9jLK+bJKFcLSfyqR3M2eCyscSiZYkWKQ5l3FYvbUzkeb6K0 +IVNhdG9zaGkgQXNhbWkgPGFzYW1pQEZyZWVCU0QuT1JHPg== +=39SC +-----END PGP PUBLIC KEY BLOCK-----</programlisting> + </sect2> + + <sect2> + <title>&a.jmb;</title> + + <programlisting> +Jonathan M. Bresler <jmb@FreeBSD.org> +f16 Fingerprint16 = 31 57 41 56 06 C1 40 13 C5 1C E3 E5 DC 62 0E FB + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: PGPfreeware 5.0i for non-commercial use + +mQCNAzG2GToAAAEEANI6+4SJAAgBpl53XcfEr1M9wZyBqC0tzpie7Zm4vhv3hO8s +o5BizSbcJheQimQiZAY4OnlrCpPxijMFSaihshs/VMAz1qbisUYAMqwGEO/T4QIB +nWNo0Q/qOniLMxUrxS1RpeW5vbghErHBKUX9GVhxbiVfbwc4wAHbXdKX5jjdAAUR +tCVKb25hdGhhbiBNLiBCcmVzbGVyIDxqbWJARnJlZUJTRC5PUkc+iQCVAwUQNbtI +gAHbXdKX5jjdAQHamQP+OQr10QRknamIPmuHmFYJZ0jU9XPIvTTMuOiUYLcXlTdn +GyTUuzhbEywgtOldW2V5iA8platXThtqC68NsnN/xQfHA5xmFXVbayNKn8H5stDY +2s/4+CZ06mmJfqYmONF1RCbUk/M84rVT3Gn2tydsxFh4Pm32lf4WREZWRiLqmw+J +AJUDBRA0DfF99RVb+45ULV0BAcZ0BACCydiSUG1VR0a5DBcHdtin2iZMPsJUPRqJ +tWvP6VeI8OFpNWQ4LW6ETAvn35HxV2kCcQMyht1kMD+KEJz7r8Vb94TS7KtZnNvk +2D1XUx8Locj6xel5c/Lnzlnnp7Bp1XbJj2u/NzCaZQ0eYBdP/k7RLYBYHQQln5x7 +BOuiRJNVU4kAlQMFEDQLcShVLh4uc9KIpQEBJv4D/3mDrD0MM9EYOVuyXik3UGVI +8quYNA9ErVcLdt10NjYc16VI2HOnYVgPRag3Wt7W8wlXShpokfC/vCNt7f5JgRf8 +h2a1/MjQxtlD+4/Js8k7GLa53oLon6YQYk32IEKexoLPwIRO4L2BHWa3GzHJJSP2 +aTR/Ep90/pLdAOu/oJDUiQCVAwUQMqyL0LNaYutZnzI9AQF25QP9GFXhBrz2tiWz +2+0gWbpcGNnyZbfsVjF6ojGDdmsjJMyWCGw49XR/vPKYIJY9EYo4t49GIajRkISQ +NNiIz22fBAjT2uY9YlvnTJ9NJleMfHr4dybo7oEKYMWWijQzGjqf2m8wf9OaaofE +KwBX6nxcRbKsxm/BVLKczGYl3XtjkcuJAJUDBRA1ol5TZWCprDT5+dUBATzXA/9h +/ZUuhoRKTWViaistGJfWi26FB/Km5nDQBr/Erw3XksQCMwTLyEugg6dahQ1u9Y5E +5tKPxbB69eF+7JXVHE/z3zizR6VL3sdRx74TPacPsdhZRjChEQc0htLLYAPkJrFP +VAzAlSlm7qd+MXf8fJovQs6xPtZJXukQukPNlhqZ94kAPwMFEDSH/kF4tXKgazlt +bxECfk4AoO+VaFVfguUkWX10pPSSfvPyPKqiAJ4xn8RSIe1ttmnqkkDMhLh00mKj +lLQuSm9uYXRoYW4gTS4gQnJlc2xlciA8Sm9uYXRoYW4uQnJlc2xlckBVU2kubmV0 +PokAlQMFEDXbdSkB213Sl+Y43QEBV/4D/RLJNTrtAqJ1ATxXWv9g8Cr3/YF0GTmx +5dIrJOpBup7eSSmiM/BL9Is4YMsoVbXCI/8TqA67TMICvq35PZU4wboQB8DqBAr+ +gQ8578M7Ekw1OAF6JXY6AF2P8k7hMcVBcVOACELPT/NyPNByG5QRDoNmlsokJaWU +/2ls4QSBZZlb +=zbCw +-----END PGP PUBLIC KEY BLOCK-----</programlisting> + </sect2> + + <sect2> + <title>&a.ache;</title> + + <programlisting> +Andrey A. Chernov <ache@FreeBSD.org> + aka <ache@nagual.pp.ru> +Key fingerprint = 33 03 9F 48 33 7B 4A 15 63 48 88 0A C4 97 FD 49 + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: 2.6.3ia + +mQCNAiqUMGQAAAEEAPGhcD6A2Buey5LYz0sphDLpVgOZc/bb9UHAbaGKUAGXmafs +Dcb2HnsuYGgX/zrQXuCi/wIGtXcZWB97APtKOhFsZnPinDR5n/dde/mw9FnuhwqD +m+rKSL1HlN0z/Msa5y7g16760wHhSR6NoBSEG5wQAHIMMq7Q0uJgpPLZnQjrAAUT +tCVBbmRyZXkgQS4gQ2hlcm5vdiA8YWNoZUBuYWd1YWwucHAucnU+iQCVAwUQM2Ez +u+JgpPLZnQjrAQEyugP8DPnS8ixJ5OeuYgPFQf5sy6l+LrB6hyaS+lgsUPahWjNY +cnaDmfda/q/BV5d4+y5rlQe/pjnYG7/yQuAR3jhlXz8XDrqlBOnW9AtYjDt5rMfJ +aGFTGXAPGZ6k6zQZE0/YurT8ia3qjvuZm3Fw4NJrHRx7ETHRvVJDvxA6Ggsvmr20 +JEFuZHJleSBBLiBDaGVybm92IDxhY2hlQEZyZWVCU0Qub3JnPokAlQMFEDR5uVbi +YKTy2Z0I6wEBLgED/2mn+hw4/3peLx0Sb9LNx//NfCCkVefSf2G9Qwhx6dvwbX7h +mFca97h7BQN4GubU1Z5Ffs6TeamSBrotBYGmOCwvJ6S9WigF9YHQIQ3B4LEjskAt +pcjU583y42zM11kkvEuQU2Gde61daIylJyOxsgpjSWpkxq50fgY2kLMfgl/ftCZB +bmRyZXkgQS4gQ2hlcm5vdiA8YWNoZUBuaWV0enNjaGUubmV0PokAlQMFEDR5svDi +YKTy2Z0I6wEBOTQD/0OTCAXIjuak363mjERvzSkVsNtIH9hA1l0w6Z95+iH0fHrW +xXKT0vBZE0y0Em+S3cotLL0bMmVE3F3D3GyxhBVmgzjyx0NYNoiQjYdi+6g/PV30 +Cn4vOO6hBBpSyI6vY6qGNqcsawuRtHNvK/53MpOfKwSlICEBYQimcZhkci+EtCJB +bmRyZXkgQS4gQ2hlcm5vdiA8YWNoZUBuYWd1YWwucnU+iQCVAwUQMcm5HeJgpPLZ +nQjrAQHwvQP9GdmAf1gdcuayHEgNkc11macPH11cwWjYjzA2YoecFMGV7iqKK8QY +rr1MjbGXf8DAG8Ubfm0QbI8Lj8iG3NgqIru0c72UuHGSn/APfGGG0AtPX5UK/k7B +gI0Ca2po6NA5nrSp8tDsdEz/4gyea84RXl2prtTf5Jj07hflbRstGXK0MkFuZHJl +eSBBLiBDaGVybm92LCBCbGFjayBNYWdlIDxhY2hlQGFzdHJhbC5tc2suc3U+iQCV +AwUQMCsAo5/rGryoL8h3AQHq1QQAidyNFqA9hvrmMcjpY7csJVFlGvj574Wj4GPa +o3pZeuQaMBmsWqaXLYnWU/Aldb6kTz6+nRcQX50zFH0THSPfApwEW7yybSTI5apJ +mWT3qhKN2vmLNg2yNzhqLTzHLD1lH3i1pfQq8WevrNfjLUco5S/VuekTma/osnzC +Cw7fQzCJAJUDBRAwKvwoa1pnjYGyp3kBARihBACoXr3qfG65hFCyKJISmjOvaoGr +anxUIkeDS0yQdTHzhQ+dwB1OhhK15E0Nwr0MKajLMm90n6+Zdb5y/FIjpPriu8dI +rlHrWZlewa88eEDM+Q/NxT1iYg+HaKDAE171jmLpSpCL0MiJtO0i36L3ekVD7Hv8 +vffOZHPSHirIzJOZTYkAlQMFEDAau6zFLUdtDb+QbQEBQX8D/AxwkYeFaYxZYMFO +DHIvSk23hAsjCmUA2Uil1FeWAusb+o8xRfPDc7TnosrIifJqbF5+fcHCG5VSTGlh +Bhd18YWUeabf/h9O2BsQX55yWRuB2x3diJ1xI/VVdG+rxlMCmE4ZR1Tl9x+Mtun9 +KqKVpB39VlkCBYQ3hlgNt/TJUY4riQCVAwUQMBHMmyJRltlmbQBRAQFQkwP/YC3a +hs3ZMMoriOlt3ZxGNUUPTF7rIER3j+c7mqGG46dEnDB5sUrkzacpoLX5sj1tGR3b +vz9a4vmk1Av3KFNNvrZZ3/BZFGpq3mCTiAC9zsyNYQ8L0AfGIUO5goCIjqwOTNQI +AOpNsJ5S+nMAkQB4YmmNlI6GTb3D18zfhPZ6uciJAJUCBRAwD0sl4uW74fteFRkB +AWsAA/9NYqBRBKbmltQDpyK4+jBAYjkXBJmARFXKJYTlnTgOHMpZqoVyW96xnaa5 +MzxEiu7ZWm5oL10QDIp1krkBP2KcmvfSMMHb5aGCCQc2/P8NlfXAuHtNGzYiI0UA +Iwi8ih/S1liVfvnqF9uV3d3koE7VsQ9OA4Qo0ZL2ggW+/gEaYIkAlQMFEDAOz6qx +/IyHe3rl4QEBIvYD/jIr8Xqo/2I5gncghSeFR01n0vELFIvaF4cHofGzyzBpYsfA ++6pgFI1IM+LUF3kbUkAY/2uSf9U5ECcaMCTWCwVgJVO+oG075SHEM4buhrzutZiM +1dTyTaepaPpTyRMUUx9ZMMYJs7sbqLId1eDwrJxUPhrBNvf/w2W2sYHSY8cdiQCV +AwUQMAzqgHcdkq6JcsfBAQGTxwQAtgeLFi2rhSOdllpDXUwz+SS6bEjFTWgRsWFM +y9QnOcqryw7LyuFmWein4jasjY033JsODfWQPiPVNA3UEnXVg9+n8AvNMPO8JkRv +Cn1eNg0VaJy9J368uArio93agd2Yf/R5r+QEuPjIssVk8hdcy/luEhSiXWf6bLMV +HEA0J+OJAJUDBRAwDUi+4mCk8tmdCOsBAatBBACHB+qtW880seRCDZLjl/bT1b14 +5po60U7u6a3PEBkY0NA72tWDQuRPF/Cn/0+VdFNxQUsgkrbwaJWOoi0KQsvlOm3R +rsxKbn9uvEKLxExyKH3pxp76kvz/lEWwEeKvBK+84Pb1lzpG3W7u2XDfi3VQPTi3 +5SZMAHc6C0Ct/mjNlYkAlQMFEDAMrPD7wj+NsTMUOQEBJckD/ik4WsZzm2qOx9Fw +erGq7Zwchc+Jq1YeN5PxpzqSf4AG7+7dFIn+oe6X2FcIzgbYY+IfmgJIHEVjDHH5 ++uAXyb6l4iKc89eQawO3t88pfHLJWbTzmnvgz2cMrxt94HRvgkHfvcpGEgbyldq6 +EB33OunazFcfZFRIcXk1sfyLDvYE +=1ahV +-----END PGP PUBLIC KEY BLOCK-----</programlisting> + </sect2> + + <sect2> + <title>&a.jkh;</title> + + <programlisting> +Jordan K. Hubbard <jkh@FreeBSD.org> +Fingerprint = 3C F2 27 7E 4A 6C 09 0A 4B C9 47 CD 4F 4D 0B 20 + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: 2.6.3ia + +mQCNAzFjX0IAAAEEAML+nm9/kDNPp43ZUZGjYkm2QLtoC1Wxr8JulZXqk7qmhYcQ +jvX+fyoriJ6/7ZlnLe2oG5j9tZOnRLPvMaz0g9CpW6Dz3nkXrNPkmOFV9B8D94Mk +tyFeRJFqnkCuqBj6D+H8FtBwEeeTecSh2tJ0bZZTXnAMhxeOdvUVW/uOVC1dAAUR +tCNKb3JkYW4gSy4gSHViYmFyZCA8amtoQEZyZWVCU0Qub3JnPokBFQMFEDXCTXQM +j46yp4IfPQEBwO8IAIN0J09AXBf86dFUTFGcAMrEQqOF5IL+KGorAjzuYxERhKfD +ZV7jA+sCQqxkWfcVcE20kVyVYqzZIkio9a5zXP6TwA247JkPt54S1PmMDYHNlRIY +laXlNoji+4q3HP2DfHqXRT2859rYpm/fG/v6pWkos5voPKcZ2OFEp9W+Ap88oqw+ +5rx4VetZNJq1Epmis4INj6XqNqj85+MOOIYE+f445ohDM6B/Mxazd6cHFGGIR+az +VjZ6lCDMLjzhB5+FqfrDLYuMjqkMTR5z9DL+psUvPlCkYbQ11NEWtEmiIWjUcNJN +GCxGzv5bXk0XPu3ADwbPkFE2usW1cSM7AQFiwuyJAJUDBRAxe+Q9a1pnjYGyp3kB +AV7XA/oCSL/Cc2USpQ2ckwkGpyvIkYBPszIcabSNJAzm2hsU9Qa6WOPxD8olDddB +uJNiW/gznPC4NsQ0N8Zr4IqRX/TTDVf04WhLmd8AN9SOrVv2q0BKgU6fLuk979tJ +utrewH6PR2qBOjAaR0FJNk4pcYAHeT+e7KaKy96YFvWKIyDvc4kAlQMFEDF8ldof +f6kIA1j8vQEBDH4D/0Zm0oNlpXrAE1EOFrmp43HURHbij8n0Gra1w9sbfo4PV+/H +U8ojTdWLy6r0+prH7NODCkgtIQNpqLuqM8PF2pPtUJj9HwTmSqfaT/LMztfPA6PQ +csyT7xxdXl0+4xTDl1avGSJfYsI8XCAy85cTs+PQwuyzugE/iykJO1Bnj/paiQCV +AwUQMXvlBvUVW/uOVC1dAQF2fQP/RfYC6RrpFTZHjo2qsUHSRk0vmsYfwG5NHP5y +oQBMsaQJeSckN4n2JOgR4T75U4vS62aFxgPLJP3lOHkU2Vc7xhAuBvsbGr5RP8c5 +LvPOeUEyz6ZArp1KUHrtcM2iK1FBOmY4dOYphWyWMkDgYExabqlrAq7FKZftpq/C +BiMRuaw= +=C/Jw +-----END PGP PUBLIC KEY BLOCK-----</programlisting> + </sect2> + + <sect2> + <title>&a.phk;</title> + + <programlisting> +Poul-Henning Kamp <phk@FreeBSD.org> +Fingerprint = A3 F3 88 28 2F 9B 99 A2 49 F4 E2 FA 5A 78 8B 3E + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: 2.6.3ia + +mQCNAzAdpMIAAAEEALHDgrFUwhZtb7PbXg3upELoDVEUPFRwnmpJH1rRqyROUGcI +ooVe7u+FQlIs5OsXK8ECs/5Wpe2UrZSzHvjwBYOND5H42YtI5UULZLRCo5bFfTVA +K9Rpo5icfTsYihrzU2nmnycwFMk+jYXyT/ZDYWDP/BM9iLjj0x9/qQgDWPy9AAUR +tCNQb3VsLUhlbm5pbmcgS2FtcCA8cGhrQEZyZWVCU0Qub3JnPokAlQMFEDQQ0aZ1 +u244dqP3sQEBu4ID/jXFFeJgs2MdTDNOZM/FbfDhI4qxAbYUsqS3+Ra16yd8Wd/A +jV+IHJE2NomFWl8UrUjCGinXiwzPgK1OfFJrS9Og1wQLvAl0X84BA8MTP9BQr4w7 +6I/RbksgUSrVCIO8MJwlydjSPocWGBeXlVjbZxXzyuJk7H+TG+zuI5BuBcNIiQCV +AwUQMwYr2rNaYutZnzI9AQHiIQP/XxtBWFXaBRgVLEhRNpS07YdU+LsZGlLOZehN +9L4UnJFHQQPNOpMey2gF7Y95aBOw5/1xS5vlQpwmRFCntWsm/gqdzK6rulfr1r5A +y94LO5TAC6ucNu396Y4vo1TyD1STnRC466KlvmtQtAtFGgXlORWLL9URLzcRFd1h +D0yXd9aJAJUDBRAxfo19a1pnjYGyp3kBAQqyA/4v64vP3l1F0Sadn6ias761hkz/ +SMdTuLzILmofSCC4o4KWMjiWJHs2Soo41QlZi1+xMHzV32JKiwFlGtPHqL+EHyXy +Q4H3vmf9/1KF+0XCaMtgI0wWUMziPSTJK8xXbRRmMDK/0F4TnVVaUhnmf+h5K7O6 +XdmejDTa0X/NWcicmIkAlQMFEDF8lef1FVv7jlQtXQEBcnwD/0ro1PpUtlkLmreD +tsGTkNa7MFLegrYRvDDrHOwPZH152W2jPUncY+eArQJakeHiTDmJNpFagLZglhE0 +bqJyca+UwCXX+6upAclWHEBMg2byiWMMqyPVEEnpUoHM1sIkgdNWlfQAmipRBfYh +2LyCgWvR8CbtwPYIFvUmGgB3MR87iQCVAwUQMUseXB9/qQgDWPy9AQGPkwP/WEDy +El2Gkvua9COtMAifot2vTwuvWWpNopIEx0Ivey4aVbRLD90gGCJw8OGDEtqFPcNV +8aIiy3fYVKXGZZjvCKd7zRfhNmQn0eLDcymq2OX3aPrMc2rRlkT4Jx425ukR1gsO +qiQAgw91aWhY8dlw/EKzk8ojm52x4VgXaBACMjaJAJUDBRAxOUOg72G56RHVjtUB +AbL4A/9HOn5Qa0lq9tKI/HkSdc5fGQD/66VdCBAb292RbB7CS/EM07MdbcqRRYIa +0+0gwQ3OdsWPdCVgH5RIhp/WiC+UPkR1cY8N9Mg2kTwJfZZfNqN+BgWlgRMPN27C +OhYNl8Q33Nl9CpBLrZWABF44jPeT0EvvTzP/5ZQ7T75EsYKYiYkAlQMFEDDmryQA +8tkJ67sbQQEBPdsEALCj6v1OBuJLLJTlxmmrkqAZPVzt5QdeO3Eqa2tcPWcU0nqP +vHYMzZcZ7oFg58NZsWrhSQQDIB5e+K65Q/h6dC7W/aDskZd64jxtEznX2kt0/MOr +8OdsDis1K2f9KQftrAx81KmVwW4Tqtzl7NWTDXt44fMOtibCwVq8v2DFkTJy +=JKbP +-----END PGP PUBLIC KEY BLOCK-----</programlisting> + </sect2> + + <sect2> + <title>&a.rich;</title> + + <programlisting> +Rich Murphey <rich@FreeBSD.org> +fingerprint = AF A0 60 C4 84 D6 0C 73 D1 EF C0 E9 9D 21 DB E4 + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: 2.6.2 + +mQCNAy97V+MAAAEEALiNM3FCwm3qrCe81E20UOSlNclOWfZHNAyOyj1ahHeINvo1 +FBF2Gd5Lbj0y8SLMno5yJ6P4F4r+x3jwHZrzAIwMs/lxDXRtB0VeVWnlj6a3Rezs +wbfaTeSVyh5JohEcKdoYiMG5wjATOwK/NAwIPthB1RzRjnEeer3HI3ZYNEOpAAUR +tCRSaWNoIE11cnBoZXkgPHJpY2hAbGFtcHJleS51dG1iLmVkdT6JAJUDBRAve15W +vccjdlg0Q6kBAZTZBACcNd/LiVnMFURPrO4pVRn1sVQeokVX7izeWQ7siE31Iy7g +Sb97WRLEYDi686osaGfsuKNA87Rm+q5F+jxeUV4w4szoqp60gGvCbD0KCB2hWraP +/2s2qdVAxhfcoTin/Qp1ZWvXxFF7imGA/IjYIfB42VkaRYu6BwLEm3YAGfGcSw== +=QoiM +-----END PGP PUBLIC KEY BLOCK-----</programlisting> + </sect2> + + <sect2> + <title>&a.jdp;</title> + + <programlisting> +John D. Polstra <jdp@polstra.com> +Fingerprint = 54 3A 90 59 6B A4 9D 61 BF 1D 03 09 35 8D F6 0D + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: 2.6.2 + +mQCNAzMElMEAAAEEALizp6ZW9QifQgWoFmG3cXhzQ1+Gt+a4S1adC/TdHdBvw1M/ +I6Ok7TC0dKF8blW3VRgeHo4F3XhGn+n9MqIdboh4HJC5Iiy63m98sVLJSwyGO4oM +dkEGyyCLxqP6h/DU/tzNBdqFzetGtYvU4ftt3RO0a506cr2CHcdm8Q+/vPRJAAUR +tCFKb2huIEQuIFBvbHN0cmEgPGpkcEBwb2xzdHJhLmNvbT6JAJUDBRAzBNBE9RVb ++45ULV0BAWgiA/0WWO3+c3qlptPCHJ3DFm6gG/qNKsY94agL/mHOr0fxMP5l2qKX +O6a1bWkvGoYq0EwoKGFfn0QeHiCl6jVi3CdBX+W7bObMcoi+foqZ6zluOWBC1Jdk +WQ5/DeqQGYXqbYjqO8voCScTAPge3XlMwVpMZTv24u+nYxtLkE0ZcwtY9IkAlQMF +EDMEt/DHZvEPv7z0SQEBXh8D/2egM5ckIRpGz9kcFTDClgdWWtlgwC1iI2p9gEhq +aufy+FUJlZS4GSQLWB0BlrTmDC9HuyQ+KZqKFRbVZLyzkH7WFs4zDmwQryLV5wkN +C4BRRBXZfWy8s4+zT2WQD1aPO+ZsgRauYLkJgTvXTPU2JCN62Nsd8R7bJS5tuHEm +7HGmiQCVAwUQMwSvHB9/qQgDWPy9AQFAhAQAgJ1AlbKITrEoJ0+pLIsov3eQ348m +SVHEBGIkU3Xznjr8NzT9aYtq4TIzt8jplqP3QoV1ka1yYpZf0NjvfZ+ffYp/sIaU +wPbEpgtmHnVWJAebMbNs/Ad1w8GDvxEt9IaCbMJGZnHmfnEqOBIxF7VBDPHHoJxM +V31K/PIoYsHAy5w= +=cHFa +-----END PGP PUBLIC KEY BLOCK-----</programlisting> + </sect2> + + <sect2> + <title>&a.guido;</title> + + <programlisting> +Guido van Rooij <guido@gvr.win.tue.nl> +Fingerprint = 16 79 09 F3 C0 E4 28 A7 32 62 FA F6 60 31 C0 ED + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: 2.6.2 + +mQCNAzGeO84AAAEEAKKAY91Na//DXwlUusr9GVESSlVwVP6DyH1wcZXhfN1fyZHq +SwhMCEdHYoojQds+VqD1iiZQvv1RLByBgj622PDAPN4+Z49HjGs7YbZsUNuQqPPU +wRPpP6ty69x1hPKq1sQIB5MS4radpCM+4wbZbhxv7l4rP3RWUbNaYutZnzI9AAUR +tCZHdWlkbyB2YW4gUm9vaWogPGd1aWRvQGd2ci53aW4udHVlLm5sPokAlQMFEDMG +Hcgff6kIA1j8vQEBbYgD/jm9xHuUuY+iXDkOzpCXBYACYEZDV913MjtyBAmaVqYo +Rh5HFimkGXe+rCo78Aau0hc57fFMTsJqnuWEqVt3GRq28hSK1FOZ7ni9/XibHcmN +rt2yugl3hYpClijo4nrDL1NxibbamkGW/vFGcljS0jqXz6NDVbGx5Oo7HBByxByz +iQCVAwUQMhmtVjt/x7zOdmsfAQFuVQQApsVUTigT5YWjQA9Nd5Z0+a/oVtZpyw5Z +OljLJP3vqJdMa6TidhfcatjHbFTve5x1dmjFgMX/MQTd8zf/+Xccy/PX4+lnKNpP +eSf1Y4aK+E8KHmBGd6GzX6CIboyGYLS9e3kGnN06F2AQtaLyJFgQ71wRaGuyKmQG +FwTn7jiKb1aJAJUDBRAyEOLXPt3iN6QQUSEBATwQA/9jqu0Nbk154+Pn+9mJX/YT +fYR2UqK/5FKCqgL5Nt/Deg2re0zMD1f8F9Dj6vuAAxq8hnOkIHKlWolMjkRKkzJi +mSPEWl3AuHJ31k948J8it4f8kq/o44usIA2KKVMlI63Q/rmNdfWCyiYQEVGcRbTm +GTdZIHYCOgV5dOo4ebFqgYkAlQMFEDIE1nMEJn15jgpJ0QEBW6kEAKqN8XSgzTqf +CrxFXT07MlHhfdbKUTNUoboxCGCLNW05vf1A8F5fdE5i14LiwkldWIzPxWD+Sa3L +fNPCfCZTaCiyGcLyTzVfBHA18MBAOOX6JiTpdcm22jLGUWBf/aJK3yz/nfbWntd/ +LRHysIdVp29lP5BF+J9/Lzbb/9LxP1taiQCVAwUQMgRXZ44CzbsJWQz9AQFf7gP/ +Qa2FS5S6RYKG3rYanWADVe/ikFV2lxuM1azlWbsmljXvKVWGe6cV693nS5lGGAjx +lbd2ADwXjlkNhv45HLWFm9PEveO9Jjr6tMuXVt8N2pxiX+1PLUN9CtphTIU7Yfjn +s6ryZZfwGHSfIxNGi5ua2SoXhg0svaYnxHxXmOtH24iJAJUDBRAyAkpV8qaAEa3W +TBkBARfQBAC+S3kbulEAN3SI7/A+A/dtl9DfZezT9C4SRBGsl2clQFMGIXmMQ/7v +7lLXrKQ7U2zVbgNfU8smw5h2vBIL6f1PyexSmc3mz9JY4er8KeZpcf6H0rSkHl+i +d7TF0GvuTdNPFO8hc9En+GG6QHOqbkB4NRZ6cwtfwUMhk2FHXBnjF4kAlQMFEDH5 +FFukUJAsCdPmTQEBe74EAMBsxDnbD9cuI5MfF/QeTNEG4BIVUZtAkDme4Eg7zvsP +d3DeJKCGeNjiCWYrRTCGwaCWzMQk+/+MOmdkI6Oml+AIurJLoHceHS9jP1izdP7f +N2jkdeJSBsixunbQWtUElSgOQQ4iF5kqwBhxtOfEP/L9QsoydRMR1yB6WPD75H7V +iQCVAwUQMZ9YNGtaZ42Bsqd5AQH0PAQAhpVlAc3ZM/KOTywBSh8zWKVlSk3q/zGn +k7hJmFThnlhH1723+WmXE8aAPJi+VXOWJUFQgwELJ6R8jSU2qvk2m1VWyYSqRKvc +VRQMqT2wjss0GE1Ngg7tMrkRHT0il7E2xxIb8vMrIwmdkbTfYqBUhhGnsWPHZHq7 +MoA1/b+rK7CJAJUDBRAxnvXh3IDyptUyfLkBAYTDA/4mEKlIP/EUX2Zmxgrd/JQB +hqcQlkTrBAaDOnOqe/4oewMKR7yaMpztYhJs97i03Vu3fgoLhDspE55ooEeHj0r4 +cOdiWfYDsjSFUYSPNVhW4OSruMA3c29ynMqNHD7hpr3rcCPUi7J2RncocOcCjjK2 +BQb/9IAUNeK4C9gPxMEZLokAlQMFEDGeO86zWmLrWZ8yPQEBEEID/2fPEUrSX3Yk +j5TJPFZ9MNX0lEo7AHYjnJgEbNI4pYm6C3PnMlsYfCSQDHuXmRQHAOWSdwOLvCkN +F8eDaF3M6u0urgeVJ+KVUnTz2+LZoZs12XSZKCte0HxjbvPpWMTTrYyimGezH79C +mgDVjsHaYOx3EXF0nnDmtXurGioEmW1J +=mSvM +-----END PGP PUBLIC KEY BLOCK-----</programlisting> + </sect2> + + <sect2> + <title>&a.peter;</title> + + <programlisting> +Peter Wemm <peter@FreeBSD.org> + aka <peter@spinner.dialix.com> + aka <peter@haywire.dialix.com> + aka <peter@perth.dialix.oz.au> +Key fingerprint = 47 05 04 CA 4C EE F8 93 F6 DB 02 92 6D F5 58 8A + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: 2.6.3ia + +mQCNAy9/FJwAAAEEALxs9dE9tFd0Ru1TXdq301KfEoe5uYKKuldHRBOacG2Wny6/ +W3Ill57hOi2+xmq5X/mHkapywxvy4cyLdt31i4GEKDvxpDvEzAYcy2n9dIup/eg2 +kEhRBX9G5k/LKM4NQsRIieaIEGGgCZRm0lINqw495aZYrPpO4EqGN2HYnOMZAAUT +tCVQZXRlciBXZW1tIDxwZXRlckBoYXl3aXJlLmRpYWxpeC5jb20+iQCVAwUQMwWT +cXW7bjh2o/exAQEFkQP+LIx5zKlYp1uR24xGApMFNrNtjh+iDIWnxxb2M2Kb6x4G +9z6OmbUCoDTGrX9SSL2Usm2RD0BZfyv9D9QRWC2TSOPkPRqQgIycc11vgbLolJJN +eixqsxlFeKLGEx9eRQCCbo3dQIUjc2yaOe484QamhsK1nL5xpoNWI1P9zIOpDiGJ +AJUDBRAxsRPqSoY3Ydic4xkBAbWLA/9q1Fdnnk4unpGQsG31Qbtr4AzaQD5m/JHI +4gRmSmbj6luJMgNG3fpO06Gd/Z7uxyCJB8pTst2a8C/ljOYZxWT+5uSzkQXeMi5c +YcI1sZbUpkHtmqPW623hr1PB3ZLA1TIcTbQW+NzJsxQ1Pc6XG9fGkT9WXQW3Xhet +AP+juVTAhLQlUGV0ZXIgV2VtbSA8cGV0ZXJAcGVydGguZGlhbGl4Lm96LmF1PokA +lQMFEDGxFCFKhjdh2JzjGQEB6XkD/2HOwfuFrnQUtdwFPUkgtEqNeSr64jQ3Maz8 +xgEtbaw/ym1PbhbCk311UWQq4+izZE2xktHTFClJfaMnxVIfboPyuiSF99KHiWnf +/Gspet0S7m/+RXIwZi1qSqvAanxMiA7kKgFSCmchzas8TQcyyXHtn/gl9v0khJkb +/fv3R20btB5QZXRlciBXZW1tIDxwZXRlckBGcmVlQlNELm9yZz6JAJUDBRAxsRJd +SoY3Ydic4xkBAZJUA/4i/NWHz5LIH/R4IF/3V3LleFyMFr5EPFY0/4mcv2v+ju9g +brOEM/xd4LlPrx1XqPeZ74JQ6K9mHR64RhKR7ZJJ9A+12yr5dVqihe911KyLKab9 +4qZUHYi36WQu2VtLGnw/t8Jg44fQSzbBF5q9iTzcfNOYhRkSD3BdDrC3llywO7Ql +UGV0ZXIgV2VtbSA8cGV0ZXJAc3Bpbm5lci5kaWFsaXguY29tPokAlQMFEDGxEi1K +hjdh2JzjGQEBdA4EAKmNFlj8RF9HQsoI3UabnvYqAWN5wCwEB4u+Zf8zq6OHic23 +TzoK1SPlmSdBE1dXXQGS6aiDkLT+xOdeewNs7nfUIcH/DBjSuklAOJzKliXPQW7E +kuKNwy4eq5bl+j3HB27i+WBXhn6OaNNQY674LGaR41EGq44Wo5ATcIicig/z +=gv+h +-----END PGP PUBLIC KEY BLOCK-----</programlisting> + </sect2> + + <sect2> + <title>&a.joerg;</title> + + <programlisting> +Type Bits/KeyID Date User ID +pub 1024/76A3F7B1 1996/04/27 Joerg Wunsch <joerg_wunsch@uriah.heep.sax.de> + Key fingerprint = DC 47 E6 E4 FF A6 E9 8F 93 21 E0 7D F9 12 D6 4E + Joerg Wunsch <joerg_wunsch@interface-business.de> + Joerg Wunsch <j@uriah.heep.sax.de> + Joerg Wunsch <j@interface-business.de> + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: 2.6.3ia + +mQCNAzGCFeAAAAEEAKmRBU2Nvc7nZy1Ouid61HunA/5hF4O91cXm71/KPaT7dskz +q5sFXvPJPpawwvqHPHfEbAK42ZaywyFp59L1GaYj87Pda+PlAYRJyY2DJl5/7JPe +ziq+7B8MdvbX6D526sdmcR+jPXPbHznASjkx9DPmK+7TgFujyXW7bjh2o/exAAUR +tC1Kb2VyZyBXdW5zY2ggPGpvZXJnX3d1bnNjaEB1cmlhaC5oZWVwLnNheC5kZT6J +AJUDBRA0FFkBs1pi61mfMj0BAfDCA/oCfkjrhvRwRCpSL8klJ1YDoUJdmw+v4nJc +pw3OpYXbwKOPLClsE7K3KCQscHel7auf91nrekAwbrXv9Clp0TegYeAQNjw5vZ9f +L6UZ5l3fH8E2GGA7+kqgNWs1KxAnG5GdUvJ9viyrWm8dqWRGo+loDWlZ12L2OgAD +fp7jVZTI1okAlQMFEDQPrLoff6kIA1j8vQEB2XQEAK/+SsQPCT/X4RB/PBbxUr28 +GpGJMn3AafAaA3plYw3nb4ONbqEw9tJtofAn4UeGraiWw8nHYR2DAzoAjR6OzuX3 +TtUV+57BIzrTPHcNkb6h8fPuHU+dFzR+LNoPaGJsFeov6w+Ug6qS9wa5FGDAgaRo +LHSyBxcRVoCbOEaS5S5EiQCVAwUQM5BktWVgqaw0+fnVAQGKPwP+OiWho3Zm2GKp +lEjiZ5zx3y8upzb+r1Qutb08jr2Ewja04hLg0fCrt6Ad3DoVqxe4POghIpmHM4O4 +tcW92THQil70CLzfCxtfUc6eDzoP3krD1/Gwpm2hGrmYA9b/ez9+r2vKBbnUhPmC +glx5pf1IzHU9R2XyQz9Xu7FI2baOSZqJAJUDBRAyCIWZdbtuOHaj97EBAVMzA/41 +VIph36l+yO9WGKkEB+NYbYOz2W/kyi74kXLvLdTXcRYFaCSZORSsQKPGNMrPZUoL +oAKxE25AoCgl5towqr/sCcu0A0MMvJddUvlQ2T+ylSpGmWchqoXCN7FdGyxrZ5zz +xzLIvtcio6kaHd76XxyJpltCASupdD53nEtxnu8sRrQxSm9lcmcgV3Vuc2NoIDxq +b2VyZ193dW5zY2hAaW50ZXJmYWNlLWJ1c2luZXNzLmRlPokAlQMFEDIIhfR1u244 +dqP3sQEBWoID/RhBm+qtW+hu2fqAj9d8CVgEKJugrxZIpXuCKFvO+bCgQtogt9EX ++TJh4s8UUdcFkyEIu8CT2C3Rrr1grvckfxvrTgzSzvtYyv1072X3GkVY+SlUMBMA +rdl1qNW23oT7Q558ajnsaL065XJ5m7HacgTTikiofYG8i1s7TrsEeq6PtCJKb2Vy +ZyBXdW5zY2ggPGpAdXJpYWguaGVlcC5zYXguZGU+iQCVAwUQMaS91D4gHQUlG9CZ +AQGYOwQAhPpiobK3d/fz+jWrbQgjkoO+j39glYGXb22+6iuEprFRs/ufKYtjljNT +NK3B4DWSkyIPawcuO4Lotijp6jke2bsjFSSashGWcsJlpnwsv7EeFItT3oWTTTQQ +ItPbtNyLW6M6xB+jLGtaAvJqfOlzgO9BLfHuA2LY+WvbVW447SWJAJUDBRAxqWRs +dbtuOHaj97EBAXDBA/49rzZB5akkTSbt/gNd38OJgC+H8N5da25vV9dD3KoAvXfW +fw7OxIsxvQ/Ab+rJmukrrWxPdsC+1WU1+1rGa4PvJp/VJRDes2awGrn+iO7/cQoS +IVziC27JpcbvjLvLVcBIiy1yT/RvJ+87a3jPRHt3VFGcpFh4KykxxSNiyGygl4kA +lQMFEDGCUB31FVv7jlQtXQEB5KgD/iIJZe5lFkPr2B/Cr7BKMVBot1/JSu05NsHg +JZ3uK15w4mVtNPZcFi/dKbn+qRM6LKDFe/GF0HZD/ZD1FJt8yQjzF2w340B+F2GG +EOwnClqZDtEAqnIBzM/ECQQqH+6Bi8gpkFZrFgg5eON7ikqmusDnOlYStM/CBfgp +SbR8kDmFtCZKb2VyZyBXdW5zY2ggPGpAaW50ZXJmYWNlLWJ1c2luZXNzLmRlPokA +lQMFEDHioSdlYKmsNPn51QEByz8D/10uMrwP7MdaXnptd1XNFhpaAPYTVAOcaKlY +OGI/LLR9PiU3FbqXO+7INhaxFjBxa0Tw/p4au5Lq1+Mx81edHniJZNS8tz3I3goi +jIC3+jn2gnVAWnK5UZUTUVUn/JLVk/oSaIJNIMMDaw4J9xPVVkb+Fh1A+XqtPsVa +YESrNp0+iQCVAwUQMwXkzcdm8Q+/vPRJAQEA4QQAgNNX1HFgXrMetDb+w6yEGQDk +JCDAY9b6mA2HNeKLQAhsoZl4HwA1+iuQaCgo3lyFC+1Sf097OUTs74z5X1vCedqV +oFw9CxI3xuctt3pJCbbN68flOlnq0WdYouWWGlFwLlh5PEy//VtwX9lqgsizlhzi +t+fX6BT4BgKi5baDhrWJAJUDBRAyCKveD9eCJxX4hUkBAebMA/9mRPy6K6i7TX2R +jUKSl2p5oYrXPk12Zsw4ijuktslxzQhOCyMSCGK2UEC4UM9MXp1H1JZQxN/DcfnM +7VaUt+Ve0wZ6DC9gBSHJ1hKVxHe5XTj26mIr4rcXNy2XEDMK9QsnBxIAZnBVTjSO +LdhqqSMp3ULLOpBlRL2RYrqi27IXr4kAlQMFEDGpbnd1u244dqP3sQEBJnQD/RVS +Azgf4uorv3fpbosI0LE3LUufAYGBSJNJnskeKyudZkNkI5zGGDwVneH/cSkKT4OR +ooeqcTBxKeMaMuXPVl30QahgNwWjfuTvl5OZ8orsQGGWIn5FhqYXsKkjEGxIOBOf +vvlVQ0UbcR0N2+5F6Mb5GqrXZpIesn7jFJpkQKPU +=97h7 +-----END PGP PUBLIC KEY BLOCK-----</programlisting> + </sect2> + </sect1> + + <sect1> + <title>Développeurs</title> + + <sect2> + <title>&a.wosch;</title> + + <programlisting> +Type Bits/KeyID Date User ID +pub 1024/2B7181AD 1997/08/09 Wolfram Schneider <wosch@FreeBSD.org> + Key fingerprint = CA 16 91 D9 75 33 F1 07 1B F0 B4 9F 3E 95 B6 09 + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: 2.6.3ia + +mQCNAzPs+aEAAAEEAJqqMm2I9CxWMuHDvuVO/uh0QT0az5ByOktwYLxGXQmqPG1G +Q3hVuHWYs5Vfm/ARU9CRcVHFyqGQ3LepoRhDHk+JcASHan7ptdFsz7xk1iNNEoe0 +vE2rns38HIbiyQ/2OZd4XsyhFOFtExNoBuyDyNoe3HbHVBQT7TmN/mkrcYGtAAUR +tCVXb2xmcmFtIFNjaG5laWRlciA8d29zY2hARnJlZUJTRC5vcmc+iQCVAwUQNxnH +AzmN/mkrcYGtAQF5vgP/SLOiI4AwuPHGwUFkwWPRtRzYSySXqwaPCop5mVak27wk +pCxGdzoJO2UgcE812Jt92Qas91yTT0gsSvOVNATaf0TM3KnKg5ZXT1QIzYevWtuv +2ovAG4au3lwiFPDJstnNAPcgLF3OPni5RCUqBjpZFhb/8YDfWYsMcyn4IEaJKre0 +JFdvbGZyYW0gU2NobmVpZGVyIDxzY2huZWlkZXJAemliLmRlPokAlQMFEDcZxu85 +jf5pK3GBrQEBCRgD/jPj1Ogx4O769soiguL1XEHcxhqtrpKZkKwxmDLRa0kJFwLp +bBJ3Qz3vwaB7n5gQU0JiL1B2M7IxVeHbiIV5pKp7FD248sm+HZvBg6aSnCg2JPUh +sHd1tK5X4SB5cjFt3Cj0LIN9/c9EUxm3SoML9bovmze60DckErrRNOuTk1IntCJX +b2xmcmFtIFNjaG5laWRlciA8d29zY2hAYXBmZWwuZGU+iQEVAwUQNmfWXAjJLLJO +sC7dAQEASAgAnE4g2fwMmFkQy17ATivljEaDZN/m0GdXHctdZ8CaPrWk/9/PTNK+ +U6xCewqIKVwtqxVBMU1VpXUhWXfANWCB7a07D+2GrlB9JwO5NMFJ6g0WI/GCUXjC +xb3NTkNsvppL8Rdgc8wc4f23GG4CXVggdTD2oUjUH5Bl7afgOT4xLPAqePhS7hFB +UnMsbA94OfxPtHe5oqyaXt6cXH/SgphRhzPPZq0yjg0Ef+zfHVamvZ6Xl2aLZmSv +Cc/rb0ShYDYi39ly9OPPiBPGbSVw2Gg804qx3XAKiTFkLsbYQnRt7WuCPsOVjFkf +CbQS31TaclOyzenZdCAezubGIcrJAKZjMIkAlQMFEDPs+aE5jf5pK3GBrQEBlIAD +/3CRq6P0m1fi9fbPxnptuipnoFB/m3yF6IdhM8kSe4XlXcm7tS60gxQKZgBO3bDA +5QANcHdl41Vg95yBAZepPie6iQeAAoylRrONeIy6XShjx3S0WKmA4+C8kBTL+vwa +UqF9YJ1qesZQtsXlkWp/Z7N12RkueVAVQ7wRPwfnz6E3tC5Xb2xmcmFtIFNjaG5l +aWRlciA8d29zY2hAcGFua2UuZGUuZnJlZWJzZC5vcmc+iQCVAwUQNxnEqTmN/mkr +cYGtAQFnpQP9EpRZdG6oYN7d5abvIMN82Z9x71a4QBER+R62mU47wqdRG2b6jMMh +3k07b2oiprVuPhRw/GEPPQevb6RRT6SD9CPYAGfK3MDE8ZkMj4d+7cZDRJQ35sxv +gAzQwuA9l7kS0mt5jFRPcEg5/KpuyehRLckjx8jpEM7cEJDHXhBIuVg= +=3V1R +-----END PGP PUBLIC KEY BLOCK-----</programlisting> + </sect2> + + <sect2> + <title>&a.brian;</title> + + <programlisting> +Type Bits/KeyID Date User ID +pub 1024/666A7421 1997/04/30 Brian Somers <brian@awfulhak.org> + Key fingerprint = 2D 91 BD C2 94 2C 46 8F 8F 09 C4 FC AD 12 3B 21 + Brian Somers <brian@uk.FreeBSD.org> + Brian Somers <brian@OpenBSD.org> + Brian Somers <brian@FreeBSD.org> +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: 2.6.3ia + +mQCNAzNmogUAAAEEALdsjVsV2dzO8UU4EEo7z3nYuvB2Q6YJ8sBUYjB8/vfR5oZ9 +7aEQjgY5//pXvS30rHUB9ghk4kIFSljzeMudE0K2zH5n2sxpLbBKWZRDLS7xnrDC +I3j9CNKwQBzMPs0fUT46gp96nf1X8wPiJXkDUEia/c0bRbXlLw7tvOdmanQhAAUR +tCFCcmlhbiBTb21lcnMgPGJyaWFuQGF3ZnVsaGFrLm9yZz6JAJUDBRA3Fjs4H3+p +CANY/L0BAZOxBACTZ1zPdaJzEdT4AfrebQbaU4ytEeodnVXZIkc8Il+LDlDOUAIe +k5PgnHTRM4yiwcZuYQrCDRFgdOofcFfRo0PD7mGFzd22qPGmbvHiDBCYCyhlkPXW +IDeoA1cX77JlU1NFdy0dZwuX7csaMlpjCkOPc7+856mr6pQi48zj7yZtrYkAlQMF +EDcUqZ2dZ0EADG4SFQEBEm0EAL2bBNc4vpxPrg3ATdZ/PekpL6lYj3s9pBf8f7eY +LXq438A/ywiWkrL74gXxcZ2Ey9AHZW+rbJPzUbrfMAgP3uWobeSvDyKRo1wtKnTY +Hy+OEIbBIHDmIUuK3L7KupBf7WAI46Q7fnyz0txvtRruDjvfoyl9/TSRfIKcaw2a +INh7iQCVAwUQNwyWpmdKPfFUsXG5AQEIrAQAmukv2u9ihcnO2Zaak265I+gYozu+ +biAngdXNfhTGMeExFzdzQ8Qe7EJugMpIDEkJq2goY35sGitD+ogSVWECjcVbHIAP +M2u9axFGlK7fDOmmkH2ZWDMtwx2I5dZps3q2g9mY2O9Az5Yokp7GW7viSpWXHTRH +xOsuY6aze71U7RWJAHUDBRA3DAEvDuwDH3697LEBAWRHAv9XXkub6mir/DCxzKI2 +AE3tek40lRfU6Iukjl/uzT9GXcL3uEjIewiPTwN+k4IL+qcCEdv8WZgv/tO45r59 +IZQsicNaSAsKX/6Cxha6Hosg1jw4rjdyz13rgYRi/nreq5mJAJUDBRA2r0CM9p+f +Pnxlu7UBAYObA/40s5SwEpXTrePO78AoUFEa5Z4bgyxkpT7BVbq6m/oQtK509Xe2 +M2y0XTLkd86oXpjyKzGzWq8T6ZTKNdF9+5LhS2ylJytdPq1AjDk2BocffWX4+pXn +RPiC6XcNdYGiQL8OTHvZESYQDiHeMfwA8WdMzFK1R80nJMwANYXjJJrLzYkAlQMF +EDNt51zvs7EFZlNtbQEBW0UD/jZB6UDdEFdhS0hxgahv5CxaQDWQbIEpAY9JL1yg +d1RWMKUFGXdRkWZmHEA4NvtwFFeam/HZm4yuGf8yldMyo84loTcVib7lKh4CumGx +FT5Pxeh/F8u9EeQzclRFSMhVl0BA2/HEGyjw0kbkprI/RD3pXD7ewTAUrj2O3XhE +InLgiQCVAwUQM3O9vWyr6JZzEUkFAQF9nAP9Hco0V/3Kl70N5ryPVgh41nUTd7Td +6fUjx8yPoSZLX8vVZ8XMyd8ULFmzsmA+2QG4HcKo/x/4s50O3o8c+o1qSYj0Tp+K +4Z8lneMVlgBNdrRcq4ijEgk0qGqSlsXyLElkVPEXAADBVgzf6yqvipDwXNVzl6e3 +GPLE8U2TAnBFZX6JAJUDBRAzZqIFDu2852ZqdCEBATsuBACI3ofP7N3xuHSc7pWL +NsnFYVEc9utBaclcagxjLLzwPKzMBcLjNGyGXIZQNB0d4//UMUJcMS7vwZ8MIton +VubbnJVHuQvENloRRARtarF+LC7OLMCORrGtbt0FtYgvBaqtgXlNcKXD6hRT+ghR +bi3q34akA7Xw8tiFIxdVgSusALQjQnJpYW4gU29tZXJzIDxicmlhbkB1ay5GcmVl +QlNELm9yZz6JAJUDBRA3FLWcnWdBAAxuEhUBAcYYBACos9nKETuaH+z2h0Ws+IIY +mN9FEm8wpPUcQmX5GFhfBUQ+rJbflzv0jJ/f2ac9qJHgIIAlJ3pMkfMpU8UYHEuo +VCe4ZTU5sr4ZdBaF9kpm2OriFgZwIv4QAi7dCMu9ZwGRtZ3+z3DQsVSagucjZTIe +yTUR6K+7E3YXANQjOdqFZYkAlQMFEDcUpeQO7bznZmp0IQEB4HED/Ru3NjwWO1gl +xEiLTzRpU31Rh1Izw1lhVMVJkLAGBw9ieSkjvdIkuhqV1i+W4wKBClT0UOE28Kjp +WbBKPFIASRYzN4ySwpprsG5H45EFQosovYG/HPcMzXU2GMj0iwVTxnMq7I8oH588 +ExHqfEN2ARD3ngmB2499ruyGl26pW/BftCBCcmlhbiBTb21lcnMgPGJyaWFuQE9w +ZW5CU0Qub3JnPokAlQMFEDcUtW6dZ0EADG4SFQEBQwsD/j9B/lkltIdnQdjOqR/b +dOBgJCtUf905y6kD+k4kbxeT1YAaA65KJ2o/Zj+i+69F2+BUJ/3kYB7prKwut2h0 +ek1ZtncGxoAsQdFJ5JSeMkwUZ5qtGeCmVPb59+KPq3nU6p3RI8Bn77FzK//Qy+IW +/WFVJbf/6NCNCbyRiRjPbGl/iQCVAwUQNxSlyA7tvOdmanQhAQFzMAP/dvtsj3yB +C+seiy6fB/nS+NnKBoff3Ekv57FsZraGt4z9n4sW61eywaiRzuKlhHqrDE17STKa +fBOaV1Ntl7js7og5IFPWNlVh1cK+spDmd655D8pyshziDF6fSAsqGfTn35xl23Xj +O20MMK44j4I5V6rEyUDBDrmX49J56OFkfwa0IEJyaWFuIFNvbWVycyA8YnJpYW5A +RnJlZUJTRC5vcmc+iQCVAwUQNxS1Y51nQQAMbhIVAQHPBQP+IMUlE4DtEvSZFtG4 +YK9usfHSkStIafh/F/JzSsqdceLZgwcuifbemw79Rhvqhp0Cyp7kuI2kHO3a19kZ +3ZXlDl3VDg41SV/Z5LzNw9vaZKuF/vtGaktOjac5E5aznWGIA5czwsRgydEOcd8O +VPMUMrdNWRI6XROtnbZaRSwmD8aJAJUDBRA3FKWuDu2852ZqdCEBAWVJA/4x3Mje +QKV+KQoO6mOyoIcD4GK1DjWDvNHGujJbFGBmARjr/PCm2cq42cPzBxnfRhCfyEvN +aesNB0NjLjRU/m7ziyVn92flAzHqqmU36aEdqooXUY2T3vOYzo+bM7VtInarG1iU +qw1G19GgXUwUkPvy9+dNIM/aYoI/e0Iv3P9uug== +=R3k0 +-----END PGP PUBLIC KEY BLOCK-----</programlisting> + </sect2> + </sect1> +</chapter> + +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-always-quote-attributes: t + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> + diff --git a/fr_FR.ISO_8859-1/books/handbook/policies/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/policies/chapter.sgml new file mode 100644 index 0000000000..17781d440a --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/policies/chapter.sgml @@ -0,0 +1,404 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: 1.7 +--> + +<chapter id="policies"> + <title>Gestion de l'arborescence des sources</title> + + <para><emphasis>Contribution de &a.phk;.</emphasis></para> + &trans.a.haby; + + <para>Ce document décrit différents principes et recommandations + en vigueur pour la gestion de l'arborescence des sources de FreeBSD.</para> + + <sect1 id="policies-maintainer"> + <title><makevar>MAINTAINER</makevar> dans les + <filename>Makefile</filename>s</title> + + <para>Juin 1996.</para> + + <para>Si un sous-ensemble particulier de la distribution de FreeBSD est + maintenu par une personne ou un groupe de personne, ils peuvent le + faire savoir à l'extérieur en ajoutant une + ligne :</para> + + <programlisting> +MAINTAINER= email-addresses + </programlisting> + + <para>aux <filename>Makefile</filename>s correspondant à cette partie + de l'arborescence.</para> + + <para>Cela signifie que :</para> + + <para>La personne détient et assume la responsabilité de ce + code. Ce qui veut dire qu'il est responsable de la corrections des bogues + et des réponses aux rapports d'anomalie se rapportant à ce + code, et, dans le cas de logiciels d'origine extérieure, du suivi + des nouvelles versions, selon les besoins.</para> + + <para>Les modifications dans les répertoires pour lesquels il existe + un responsable de la maintenance devront être transmises à ce + responsable pour qu'il les passe en revue. Il n'est admis + d'intégrer de modifications sans passer par cette étape + qu'aux seuls cas où le responsable ne répond pas dans un + délai acceptable, et après plusieurs courriers + électroniques. Il est cependant suggeré d'insister et de + faire en sorte que les modifications soient revues par quelqu'un d'autre, + si c'est possible.</para> + + <para>Il n'est bien sûr pas acceptable d'ajouter une personne ou un + groupe de personnes comme responsable de la maintenance, s'ils ne sont pas + d'accord pour assumer cette obligation. D'un autre côté, il + n'est pas nécessaire que ce soit une personne ayant les droits + d'écriture dans + l'arborescence - “<foreignphrase>committer</foreignphrase>” - et + ce peut sans problème être un groupe de personnes.</para> + </sect1> + + <sect1> + <title>Logiciels de provenance + extérieure - “contribués”</title> + + <para><emphasis>Contribution de &a.phk; et &a.obrien;.</emphasis></para> + + <para>Juin 1996.</para> + + <para>Certaines parties de la distribution de FreeBSD consistent en + logiciels qui sont activement maintenus extérieurement au projet + FreeBSD. Pour des raisons historiques, on appelle cela des logiciels + <emphasis>contribués</emphasis>. Perl, gcc et patch en sont des + exemples.</para> + + <para>Ces deux dernières années, nous avons employé + différentes méthodes pour gérer ce type de logiciels, elles ont toutes leurs avantages et leurs inconvénients. Aucune ne + s'est avérée incontestablement meilleure.</para> + + <para>De ce fait, après discussion, une de ces méthode a + été retenue comme méthode “officielle” et + devra être utilisée pour les prochaines adjonctions de + logiciels de ce type. De plus, il est fortement suggéré que + les logiciels déjà intégrés convergent avec le + temps vers cette méthode, parce qu'elle présente des + avantages significatifs sur l'ancienne méthode, dont la + possibilité pour chacun d'obtenir facilement des + <filename>diff</filename>s avec les versions “officielles” du + source (même sans accès cvs). Cela rendra beaucoup plus + facile la communication en retour des modifications aux + développeurs d'origine des logiciels.</para> + + <para>Au final, néanmoins, tout dépend des personnes qui ont + en charge la maintenance. Si ce modèle est particulièrement + mal adapté au paquetage concerné, il peut y avoir des + exceptions à ces règles, à condition expresse + d'approbation par l'équipe de base et de consensus + général des autres développeurs, la + maintenabilité ultérieure du paquetage étant le + principal critère de décision.</para> + + <note> + <para>Du fait de limitations malheureuses de conception du format des + fichiers RCS et de l'utilisation par CVS des branches d'origine, les + modifications mineures, triviales et/ou cosmétiques sont + <emphasis>fortement découragées</emphasis> sur les + fichiers qui sont toujours gérés sur la branche + d'origine. Les fichiers de “localisation” sont explicitement + inclus ici dans la catégorie “cosmétique” et + ne doivent pas avoir de numéros de révision + <literal>1.1.x.x</literal>. La modification d'un seul caractère + peut congestionner de façon relativement dramatique l'ensemble + des archives.</para> + </note> + + <para>Nous utiliserons le langage de programmation + <application>Tcl</application> pour illustrer la façon dont ce + modèle s'applique :</para> + + <para><filename>src/contrib/tcl</filename> contient le source tel qu'il est + distribué par les gens qui maintiennent ce paquetage. Les parties + qui ne s'appliquent pas du tout à FreeBSD peuvent être + supprimées. Dans le cas de Tcl, les sous-répertoires + <filename>mac</filename>, <filename>win</filename> et + <filename>compat</filename> ont été éliminés + avant l'importation.</para> + + <para><filename>src/lib/libtcl</filename> ne contient qu'un + <filename>Makefile</filename> de “style bmake” qui utilise les + règles standard de <filename>bsd.lib.mk</filename> pour + générer la bibliothèque et installer la + documentation.</para> + + <para><filename>src/usr.bin/tclsh</filename> ne contient qu'un + <filename>Makefile</filename> de “style bmake” qui + génère et installe le programme + <command>tclsh</command> et les pages de manuel correspondantes en + utilisant les règles standard de + <filename>bsd.prog.mk</filename>.</para> + + <para><filename>src/tools/tools/tcl_bmake</filename> contient une paire de + procédures qui peuvent être utiles quand il faut mettre + à jour le logiciel Tcl. Elles ne font pas partie du logiciel + compilé et installé.</para> + + <para>L'important ici est que le répertoire + <filename>src/contrib/tcl</filename> est créé en respectant + les règles suivantes : il est supposé contenir les + sources tels que distribués (sur une branche CVS d'origine ad hoc + et sans extensions RCS des mots-clés) avec aussi peu de + modifications spécifiques à FreeBSD que possible. L'outil + d'“importation facile” sur <hostid>freefall</hostid> + aidera à importer le logiciel, mais, au moindre doute, il est + impératif de se renseigner auparavant et de ne pas aller à + l'aveuglette en espérant que “cela marchera”. CVS ne + pardonne pas les erreurs d'importation et il n'est pas trivial de + récupérer d'erreurs majeures.</para> + + <para>Du fait des limitations conceptuelles déjà + mentionnées des branches d'origine de CVS, les correctifs + “officiels” du distributeur doivent être + appliqués aux sources d'origine et le résultat + réimporté dans la branche principale. Ces correctifs + officiels ne doivent jamais être appliqués aux versions + extraites pour FreeBSD et “soumis” ensuite, parce que cela + détruit la cohérence de la branche d'origine et rend + l'importation des versions ultérieures assez difficile, parce qu'il + y aura des conflits.</para> + + <para>Comme de nombreux paquetages contiennent des fichiers + dédiés à la compatibilité avec d'autres + architectures et environnements que FreeBSD, il est admissible de + supprimer les parties de la distribution qui ne concernent pas FreeBSD + pour gagner de la place. Les fichiers qui contiennent les notices de + <foreignphrase>copyright</foreignphrase> et des informations du type + “notes de version” qui s'appliquent aux autres fichiers ne + doivent <emphasis>pas</emphasis> être supprimés.</para> + + <para>Si cela s'avère plus facile, les <filename>Makefile</filename>s + <command>bmake</command> de l'arborescence de la distribution peuvent + être générés avec un utilitaire, ce qui peut + le cas échéant faciliter les montées de version. Si + tel est le cas, veillez à administrer ces utilitaires (si besoin + est) dans le répertoire <filename>src/tools</filename> en + même temps que le logiciel lui-même, de sorte qu'ils soient + disponibles pour les personnes qui assureront par la suite la + maintenance.</para> + + <para>Dans le répertoire <filename>src/contrib/tcl</filename>, il + faut ajouter un fichier appelé <filename>FREEBSD-upgrade</filename> qui mentionne des choses telles que :</para> + + <itemizedlist> + <listitem> + <para>Quels fichiers ont été laissés de + côté,</para> + </listitem> + + <listitem> + <para>Où a été obtenue la distribution originale + et/ou quel est le site principal officiel,</para> + </listitem> + + <listitem> + <para>Où réadresser les correctifs à l'auteur + original,</para> + </listitem> + + <listitem> + <para>Eventuellement un résumé des modifications + apportées propres à FreeBSD.</para> + </listitem> + </itemizedlist> + + <para>Cependant, n'importez pas <filename>FREEBSD-upgrade</filename> en + même temps que le source du logiciel. Vous devriez plutôt + effectuer un <command>cvs add FREEBSD-upgrade ; cvs ci</command> + après le premier <command>import</command>. Voici par exemple + ce que cela donne pour <filename>src/contrib/cpio</filename> + <footnote><para>Traduction :</para> + <programlisting> + +Ce répertoire contient les sources d'origine non modifiés sur la +branche “d'origine”. N'essayez en aucun cas de mettre à jour +les fichiers de ce répertoire via des correctifs et un “commit” +cvs. Les nouvelles versions ou les versions officiellement +rectifiées doivent être importées. N'oubliez pas d'importer +avec l'option “-ko” pour ne pas écraser les IDentifiants +RCS d'origine. + +A l'importation de GNU cpio 2.4.2, les fichiers suivants ont été +éliminés : + + INSTALL cpio.info mkdir.c + Makefile.in cpio.texi mkinstalldirs + +Pour passer à une nouvelle version de cpio, quand elle sera disponible : + 1. Décompactez la nouvelle version dans un sous-répertoire vide + [Ne modifiez en AUCUN cas les fichiers.] + + 2. Supprimez les fichiers listés ci-dessus et tous autres fichiers + qui ne s'appliquent pas à FreeBSD. + + 3. Utilisez la commande : + cvs import -ko -m 'Virgin import of GNU cpio v<version>' \ + src/contrib/cpio GNU cpio_<version> + + Voici par example comment j'ai importé la version 2.4.2 de cpio : + cvs import -ko -m 'Virgin import of GNU v2.4.2' \ + src/contrib/cpio GNU cpio_2_4_2 + + 4. Suivez les instructions affichées à l'étape 3 pour résoudre les + conflits entre les modifications locales pour FreeBSD et la + nouvelle version. + +Ne déviez en aucun cas de cette procédure. + +Pour appliquer les modifications locales à cpio, “patchez” +simplement et soumettez sur la branche principale (aka HEAD). +N'appliquez jamais les modifications locales à la branche GNU. + +Toutes les modifications locales doivent être soumises à +“cpio@gnu.ai.mit.edu” pour inclusion dans la prochaine +version originale. + +obrien@freebsd.org - 30 Mars 1997 + </programlisting></footnote> :</para> + + <programlisting> +This directory contains virgin sources of the original distribution files +on a "vendor" branch. Do not, under any circumstances, attempt to upgrade +the files in this directory via patches and a cvs commit. New versions or +official-patch versions must be imported. Please remember to import with +"-ko" to prevent CVS from corrupting any vendor RCS Ids. + +For the import of GNU cpio 2.4.2, the following files were removed: + +INSTALL cpio.info mkdir.c +Makefile.in cpio.texi mkinstalldirs + +To upgrade to a newer version of cpio, when it is available: + 1. Unpack the new version into an empty directory. + [Do not make ANY changes to the files.] + + 2. Remove the files listed above and any others that don't apply to + FreeBSD. + + 3. Use the command: + cvs import -ko -m 'Virgin import of GNU cpio v<version>' \ + src/contrib/cpio GNU cpio_<version> + + For example, to do the import of version 2.4.2, I typed: + cvs import -ko -m 'Virgin import of GNU v2.4.2' \ + src/contrib/cpio GNU cpio_2_4_2 + + 4. Follow the instructions printed out in step 3 to resolve any + conflicts between local FreeBSD changes and the newer version. + +Do not, under any circumstances, deviate from this procedure. + +To make local changes to cpio, simply patch and commit to the main +branch (aka HEAD). Never make local changes on the GNU branch. + +All local changes should be submitted to "cpio@gnu.ai.mit.edu" for +inclusion in the next vendor release. + +obrien@freebsd.org - 30 March 1997 + </programlisting> + </sect1> + + <sect1 id="policies-shlib"> + <title>Bibliothèques partagées</title> + + <para><emphasis>Contribution de &a.asami;, &a.peter;, and &a.obrien; 9 + Décembre 1996.</emphasis></para> + + <para>Si vous ajoutez à des logiciels portés ou d'autres + logiciels, le support des bibliothèques partagées qu'ils + n'ont pas encore, les numéros de version des bibliothèques + doivent suivre les règles ci-dessous. De façon + générale, ces numéros n'ont pas de rapport avec les + numéros de version du logiciel.</para> + + <para>Les trois principes de génération des + bibliothèques partagées sont :</para> + + <itemizedlist> + <listitem> + <para>Commencez à <literal>1.0</literal>,</para> + </listitem> + + <listitem> + <para>Si la modification est rétro-compatible, augmentez le + numéro de version mineure,</para> + </listitem> + + <listitem> + <para>Si la modification est incompatible avec les versions + antérieures, augmentez le numéro de version + majeure.</para> + </listitem> + </itemizedlist> + + <para>Par exemple, l'ajout de fonctions et les corrections de bogues + résultent en une incrémentation du numéro de version + mineure, alors que la suppression de fonctions ou la modification de + syntaxes d'appel de fonctions imposent un changement de numéro de + version majeure.</para> + + <para>Tenez-vous en à des numéros de version de la forme + majeure.mineure + (<replaceable>x</replaceable>.<replaceable>y</replaceable>). Notre + éditeur de liens dynamiques ne gère pas très bien + les numéros de version de la forme + <replaceable>x</replaceable>.<replaceable>y</replaceable>.<replaceable>z</replaceable>. + Tout numéro de version après le + <replaceable>y</replaceable> (i.e., le troisième chiffre) est + totalement ignoré lors de la comparaison des numéros de + version des bibliothèques partagées pour décider + avec quelle bibliothèque effectuer le lien. Si deux + bibliothèques partagées diffèrent d'une + “micro” révision, <command>ld.so</command> fera le lien + avec la plus élevée. I.e. : si vous éditez les liens + avec <filename>libfoo.so.3.3.3</filename>, l'éditeur de liens + n'enregistre que <literal>3.3</literal> dans les en-têtes, et fera + le lien avec n'importe quoi qui commence par + <replaceable>libfoo.so.3</replaceable>.<replaceable>(quelque chose >= + 3)</replaceable>.<replaceable>(le numéro le plus + élevé disponible)</replaceable>.</para> + + <note> + <para><command>ld.so</command> utilisera toujours la révision + “mineure” la plus élevée. I.e. : il + choisira <filename>libc.so.2.2</filename> plutôt que + <filename>libc.so.2.0</filename>, même si le programme a + été initialement lié avec + <filename>libc.so.2.0</filename>.</para> + </note> + + <para>Pour les bibliothèques autres que celles des logiciels + portés, c'est aussi notre politique de ne changer de numéro + de version de bibliothèque partagée qu'une seule fois par + version de FreeBSD. Si vous modifiez une bibliothèque + système de telle sorte que cela réclame une + incrémentation du numéro de version, consultez l'historique + des soumissions du <filename>Makefile</filename>. C'est la personne qui + soumet qui doit s'assurer que le numéro de version de la + bibliothèque partagée est bien incrémenté + à la première modification et que les modifications + suivantes n'y touchent plus.</para> + </sect1> +</chapter> + +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-always-quote-attributes: t + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> + diff --git a/fr_FR.ISO_8859-1/books/handbook/ports/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/ports/chapter.sgml new file mode 100644 index 0000000000..461ba197cb --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/ports/chapter.sgml @@ -0,0 +1,5197 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + + <chapter id="ports"> + <title>Installer des applications du “Catalogue des logiciels + portés”</title> + + <para><emphasis>Contribution de &a.jraynard;.</emphasis></para> + &trans.a.haby; + + <para>Le catalogue des logiciels portés de FreeBSD vous permet de + compiler et d'installer une grande variété d'applications avec + un minimum d'efforts.</para> + + <para>Malgré toutes les déclarations exagérées sur les standards ouverts, + faire fonctionner un programme sur différentes versions d'Unix + peut en réalité être fastidieux et délicat, comme tous ceux qui + ont essayé le savent. Vous aurez peut-être la chance d'arriver + à compiler, installer où il faut et exécuter sans incident le + programme que vous voulez “tel quel”, mais c'est + malheureusement assez rare. Dans la plupart des cas, vous devrez + vous creuser un peu la tête, et il y a un certain nombre de programmes + qui vous donneront prématurement des cheveux blancs, ou même une + calvitie chronique...</para> + + <para>Certaines distributions de logiciels ont résolu ce problème + en fournissant des procédures de configuration. Certaines sont très + sophistiquées, mais ont une fâcheuse tendance à vous annoncer + triomphalement que votre système est d'une espèce dont vous n'avez + jamais entendu parler et à vous poser un tas de questions qui + ressemblent plus à un examen de programmation système Unix. + <literal>(La fonction gethitlist de votre système vous rend-elle un + pointeur const sur un schmilblick ou un pointeur sur un schmilblick + const? Avez-vous la gestion des exceptions inconnues de style + Foonix? Et sinon, pourquoi?)</literal></para> + + <para>Heureusement, grâce au catalogue des logiciels portés, tout le + travail pénible a déjà été fait, et il vous suffit de taper + <command>make install</command> pour avoir un logiciel qui + fonctionne.</para> + + <sect1> + <title>Pourquoi un catalogue des logiciels portés?</title> + + <para>Le système FreeBSD de base comporte une grande variété d'outils + et d'utilitaires système, mais de nombreux logiciels d'usage + courant n'en font pas partie, et il y a de bonnes raisons à + cela:</para> + + <orderedlist> + + <listitem> + <para>Il y a des programmes dont certains ne peuvent se passer + et que d'autres ne peuvent pas voir en peinture, un certain + éditeur basé sur Lisp, par exemple.</para> + </listitem> + + <listitem> + <para>Certains programmes sont trop spécialisés pour faire partie + du système de base (Conception Assistée par Ordinateur, bases de données).</para> + </listitem> + + <listitem> + <para>Les programmes de la catégorie “Je devrais y jeter + un coup d'oeil quand j'aurais cinq minutes”, et qui n'ont + rien d'indispensable (certains langages, peut-être).</para> + </listitem> + + <listitem> + <para>Les programmes qui sont bien trop amusants pour être fournis + avec un système d'exploitation sérieux comme FreeBSD ;-)</para> + </listitem> + + <listitem> + <para>Peut importe la quantité de programmes fournis de base, + les gens en veulent toujours plus, et il faut définir une + séparation quelque part (sans quoi les distributions de FreeBSD + deviendraient absolument énormes).</para> + </listitem> + + </orderedlist> + + <para>Il serait évidemment irréaliste d'attendre que chacun porte + ses programmes favoris à la main (sans mentionner la quantité + invraisemblable de travail refait à chaque fois), le Projet + FreeBSD a donc mis en place une méthode ingénieuse d'utilisation + d'outils standard pour automatiser le processus.</para> + + <para>C'est, au passage, une excellente illustration de la + “manière Unix” de faire en combinant un jeu + d'outils simples mais souples pour arriver à un mécanisme + très puissant.</para> + + </sect1> + + <sect1> + <title>Comment fonctionne le catalogue des logiciels portés?</title> + + <para>Les logiciels sont typiquement distribués sur l'Internet sous + forme d'<link linkend="ports-tarball">archives</link> incluant un + fichier <filename>Makefile</filename>, le code source du programme + et habituellement quelques instructions (qui ne sont pas toujours + aussi instructives qu'elles pourraient l'être), avec peut-être aussi + une procédure de configuration.</para> + + <para>Le scénario standard consiste à télécharger l'archive par FTP, + l'extraire quelque part, parcourir les instructions, faire les + modifications qui vous paraissent nécessaires, lancer la procédure + de configuration pour mettre tout au point et utiliser la commande + <command>make</command> habituelle pour compiler et installer le + programme à partir du source.</para> + + <para>Les logiciels portés de FreeBSD utilisent toujours le mécanisme + des archives, mais se servent d'un + <link linkend="ports-skeleton">squelette</link> qui renferme + la “connaissance” nécessaire pour pouvoir obtenir un + logiciel utilisable sous FreeBSD, plutôt que d'attendre de + l'utilisateur qu'il se débrouille. Ils comportent aussi leurs + propres + <link linkend="ports-makefile"><filename>Makefile</filename>s</link>, + de sorte que presque tous les logiciels portés se compilent et + s'installent de la même façon.</para> + + <para>Si vous regardez le squelette pour un logiciel porté (soit sur + <ulink url="file://localhost/usr/ports/devel/ElectricFence">votre + machine FreeBSD</ulink>, soit sur <ulink + url="ftp://ftp.freebsd.org/pub/FreeBSD/ports/devel/ElectricFence">le + site FTP</ulink>), et espérez y trouver toutes sortes de techniques + d'avant-garde, vous serez déçu par les quelques fichiers et + répertoires sans éclat que vous y verrez. (Nous parlerons bientôt de + la façon de <link linkend="ports-getting">Se procurer un logiciel + porté</link>).</para> + + <para>Je vous entends d'ici: “Comment diable cela peut-il arriver + à faire quoi que ce soit? Le code source n'y est même + pas!”</para> + + <para>Ne craignez rien, aimable lecteur, tout va s'éclairer + (espérons-le). Examinons ce qui se passe lorsque nous essayons + d'installer un logiciel porté. J'ai choisi + <application>ElectricFence</application>, un bon outil pour les + développeurs, car son squelette est plus explicite que la + plupart.</para> + + <note> + <para>Si vous essayez de le faire chez vous, vous devez être + super-utilisateur.</para> + </note> + + <informalexample> + <screen>&prompt.root; <userinput>cd /usr/ports/devel/ElectricFence</userinput> +&prompt.root; <userinput>make install</userinput> +>> Checksum OK for ElectricFence-2.0.5.tar.gz. +===> Extracting for ElectricFence-2.0.5 +===> Patching for ElectricFence-2.0.5 +===> Applying FreeBSD patches for ElectricFence-2.0.5 +===> Configuring for ElectricFence-2.0.5 +===> Building for ElectricFence-2.0.5 +[une tonne de résultats de compilation...] +===> Installing for ElectricFence-2.0.5 +===> Warning: your umask is "0002". If this is not desired, set it to + an appropriate value and install this port again by ``make reinstall''. +install -c -o bin -g bin -m 444 /usr/ports/devel/ElectricFence/work/ElectricFence-2.0.5/libefence.a /usr/local/lib +install -c -o bin -g bin -m 444 /usr/ports/devel/ElectricFence/work/ElectricFence-2.0.5/libefence.3 /usr/local/man/man3 +===> Compressing manual pages for ElectricFence-2.0.5 +===> Registering installation for ElectricFence-2.0.5</screen> + </informalexample> + + <para>Pour éviter la confusion, je n'ai pas donné les résultats de la + compilation.</para> + + <para>Si vous avez essayé de votre côté, vous avez peut-être obtenu au + début quelque chose du genre:</para> + + <informalexample id="ports-fetch"> + <screen>&prompt.root; <userinput>make install</userinput> +>> ElectricFence-2.0.5.tar.gz doesn't seem to exist on this system. +>> Attempting to fetch from + ftp://ftp.doc.ic.ac.uk/Mirrors/sunsite.unc.edu/pub/Linux/devel/lang/c/.</screen> + </informalexample> + + <para>Le programme <command>make</command> s'est rendu compte que vous + n'aviez pas de copie locale du source et a essayé de le télécharger + pour pouvoir continuer son travail. J'avais déjà le source, il n'a + donc pas eu besoin d'aller le chercher.</para> + + <para>Continuons et voyons ce que le programme <command>make</command> + a fait:</para> + + <procedure> + + <step> + <para>Localiser l'<link linkend="ports-tarball">archive</link> + du code source. Si elle n'est pas localement disponible, aller + la chercher sur un site FTP.</para> + </step> + + <step> + <para>Lancer un test de la <link linkend="ports-checksum">somme de + contrôle</link> sur le fichier d'archive pour s'assurer qu'il + a bien été récupéré, et non accidentellement tronqué, + téléchargé en mode ASCII, ou bombardé de neutrinos pendant le + transfert.</para> + </step> + + <step> + <para>Extraire l'archive dans un répertoire temporaire.</para> + </step> + + <step> + <para>Appliquer les + <link linkend="ports-patch">“patches”</link> - mises + à jour - nécessaires à la compilation et à l'exécution + sous FreeBSD.</para> + </step> + + <step> + <para>Lancer les procédures de configuration nécessaires à la + compilation et répondre correctement aux questions + posées.</para> + </step> + + <step> + <para>(Finalement!) Compiler le code.</para> + </step> + + <step> + <para>Installer le programme exécutable et les autres fichiers + qui vont avec, pages de manuel, etc. dans un sous-répertoire de + <filename>/usr/local</filename>, où ils ne se mélangeront pas + avec vos programmes système. Cela garantit aussi que tous les + logiciels portés soient au même endroit, au lieu d'être + éparpillés à droite et à gauche sur votre système.</para> + </step> + + <step> + <para>Enregistrez l'installation dans une base de données. Si vous + ne voulez pas conserver le programme par la suite, vous pourrez + le <link linkend="ports-remove">désinstaller</link> proprement + de votre système.</para> + </step> + + </procedure> + + <para>Parcourez les résultats de <command>make</command> et voyez si + vous retrouvez ces différentes étapes. Si vous n'étiez pas encore + impressionné, vous devriez l'être maintenant!</para> + + </sect1> + + <sect1 id="ports-getting"> + <title>Se procurer un logiciel porté pour FreeBSD</title> + + <para>Il y a deux façons d'obtenir la version portée pour FreeBSD d'un + logiciel. Il vous faut soit le <link linkend="ports-cd">CD-ROM + FreeBSD</link>, soit une <link linkend="ports-inet">connexion + Internet</link>.</para> + + <sect2 id="ports-cd"> + <title>Compiler les logiciels portés depuis le CD-ROM</title> + + <para>Si vous avez répondu oui à la question “Do you want to + link the ports collection to your + CD-ROM?” - “Voulez-vous créer un lien + symbolique sur le catalogue des logiciels portés du + CD-ROM?” - pendant la configuration de + l'installation de FreeBSD, le programme aura déjà effectué à votre + place les étapes préliminaires.</para> + + <para>Sinon, vérifiez que le CD-ROM <emphasis>FreeBSD</emphasis> est + bien dans le lecteur et monté sur, par exemple, + <filename>/cdrom</filename>. puis tapez:</para> + + <informalexample> + <screen>&prompt.root; <userinput>mkdir /usr/ports</userinput> +&prompt.root; <userinput>cd /usr/ports</userinput> +&prompt.root; <userinput>ln -s /cdrom/ports/distfiles distfiles</userinput></screen> + </informalexample> + + <para>pour que le mécanisme d'installation puisse trouver + les archives (il s'attend à ce qu'elles soient dans le répertoire + <filename>/usr/ports/distfiles</filename>, c'est la raison pour + laquelle nous avons créé un lien symbolique du répertoire + d'archive du CD-ROM sur ce répertoire).</para> + + <para>Supposons maintenant que nous voulions installer le programme + <application>gnats</application> qui se trouve dans le répertoire + des bases de données. Voici comment nous procéderions:</para> + + <informalexample> + <screen>&prompt.root; <userinput>cd /usr/ports</userinput> +&prompt.root; <userinput>mkdir databases</userinput> +&prompt.root; <userinput>cp -R /cdrom/ports/databases/gnats databases</userinput> +&prompt.root; <userinput>cd databases/gnats</userinput> +&prompt.root; <userinput>make install</userinput></screen> + </informalexample> + + <para>Si vous utilisez sérieusement les bases de données et que vous + voulez comparer toutes celles qui sont disponibles au catalogue, + tapez:</para> + + <informalexample> + <screen>&prompt.root; <userinput>cd /usr/ports</userinput> +&prompt.root; <userinput>cp -R /cdrom/ports/databases .</userinput> +&prompt.root; <userinput>cd databases</userinput> +&prompt.root; <userinput>make install</userinput></screen> + </informalexample> + + <para>(oui, il y a vraiment un “.” à la fin de la + commande <command>cp</command>, ce n'est pas une erreur. C'est une + “Unixerie” qui veut dire: “le répertoire + courant”) et le système d'installation des logiciels portés + compilera et installera automatiquement tous les logiciels de + base de données disponibles!</para> + + <para>Si cette méthode ne vous convient pas, voici une façon + entièrement différente de faire:</para> + + <para>Créez une “arborescence de liens” vers le catalogue + en vous servant de la commande <citerefentry><refentrytitle>lndir</refentrytitle><manvolnum>1</manvolnum></citerefentry> + de la distribution de <emphasis>XFree86</emphasis>. Trouvez un + endroit où vous avez de la place, créez-y un répertoire et + placez-vous dans ce répertoire avec <command>cd</command>. Utilisez + maintenant la commande + <citerefentry><refentrytitle>lndir</refentrytitle><manvolnum>1</manvolnum></citerefentry> + avec comme premier argument le chemin d'accès complet au répertoire + <filename>ports</filename> du CD-ROM et un “.” (le + répertoire courant) comme second argument. Quelque chose du + genre:</para> + + <informalexample> + <screen>&prompt.root; <userinput>lndir /cdrom/ports .</userinput></screen> + </informalexample> + + <para>Vous pouvez alors installer les logiciels portés directement + à partir du CD-ROM en le faisant depuis l'arborescence de liens que + vous venez de créer.</para> + + <para>Remarquez que les sources d'origine de certains logiciels ne + peuvent être fournis sur le CD-ROM, pour des questions de licence. + Dans ce cas, vous devrez vous reporter à la section + <link linkend="ports-inet">Installer de logiciels portés via + une connexion Internet</link>.</para> + + </sect2> + + <sect2 id="ports-inet"> + <title>Installer des logiciels portés via une connexion + Internet</title> + + <para>Si vous n'avez pas de CD-ROM, ou voulez être sûr d'avoir + la toute dernière version d'un logiciel, vous devrez + télécharger le <link linkend="ports-skeleton">squelette</link> + associé au logiciel porté. Cela peut paraître une combine + pleine d'embûches, mais c'est en réalité très + simple.</para> + + <para>Le secret est que le serveur FTP FreeBSD peut vous générer + des <link linkend="ports-tarball">archives</link> à la volée. Voici + comment cela fonctionne, avec toujours comme exemple le programme + <application>gnats</application> du répertoire des bases de données + (les textes entre crochets sont des commentaires. Ne le tapez pas + si vous essayez cela de votre côté!):</para> + + <informalexample> + <screen>&prompt.root; <userinput>cd /usr/ports</userinput> +&prompt.root; <userinput>mkdir databases</userinput> +&prompt.root; <userinput>cd databases</userinput> +&prompt.root; <userinput>ftp ftp.freebsd.org</userinput> +[ouvrez une session en tant qu'utilisateur `ftp' et donnez votre adresse +de courrier électronique quand on vous demande un mot de passe. N'oubliez +pas d'utiliser le mode binaire (appelé aussi 'image')!] +<prompt>></prompt> <userinput>cd /pub/FreeBSD/ports/databases</userinput> +<prompt>></prompt> <userinput>get gnats.tar</userinput> +[archive et récupère le squelette de gnats] +<prompt>></prompt> <userinput>quit</userinput> +&prompt.root; <userinput>tar xf gnats.tar</userinput> +[extrait le squelette de gnats] +&prompt.root; <userinput>cd gnats</userinput> +&prompt.root; <userinput>make install</userinput> +[compile et installe gnats]</screen> + </informalexample> + + <para>Que se passe-t-il? Nous nous sommes connectés comme à + l'ordinaire au serveur FTP et sommes allés dans son sous-répertoire + des bases de données. Quand nous lui + avons donné la commande <command>get gnats.tar</command>, le serveur + FTP a créé une <link linkend="ports-tarball">archive</link> du + répertoire gnats à notre usage.</para> + + <para>Nous avons alors extrait de cette archive le squelette pour + gnats qu'elle contenait et sommes allés dans le répertoire gnats + pour compiler et installer le logiciel. Comme nous l'avons expliqué + <link linkend="ports-fetch">plus haut</link>, le processus + d'installation s'est rendu compte que nous n'avions pas de copie + locale des sources, en a téléchargé une avant de l'extraire, de la + mettre à jour et de la compiler.</para> + + <para>Essayons maintenant quelque chose de plus ambitieux. Au lieu + de récupérer un seul squelette, récupérons un sous-répertoire + complet, par exemple, tous les squelettes pour les bases de données + du catalogue des logiciels portés. La façon de procéder est + quasi identique:</para> + + <informalexample> + <screen>&prompt.root; <userinput>cd /usr/ports</userinput> +&prompt.root; <userinput>ftp ftp.freebsd.org</userinput> +[ouvrez une session en tant qu'utilisateur `ftp' et donnez votre adresse +de courrier électronique quand on vous demande un mot de passe. N'oubliez +pas d'utiliser le mode binaire (appelé aussi 'image')!] +<prompt>></prompt> <userinput>cd /pub/FreeBSD/ports</userinput> +<prompt>></prompt> <userinput>get databases.tar</userinput> +[archive et récupère les squelettes pour les bases de données] +<prompt>></prompt> <userinput>quit</userinput> +&prompt.root; <userinput>tar xf databases.tar</userinput> +[extrait les squelettes de toutes les bases de données] +&prompt.root; <userinput>cd databases</userinput> +&prompt.root; <userinput>make install</userinput> +[compile et installe les logiciels de base de données portés]</screen> + </informalexample> + + <para>Avec une demi-douzaine de commandes élémentaires, nous + disposons maintenant d'un éventail de logiciels de base de + données sur notre machine FreeBSD. La seule différence avec + l'installation d'un seul logiciel est que nous avons récupéré + et compilé d'un seul coup tout un répertoire de programmes. + Impressionnant, non?</para> + + <para>Si vous envisagez d'installer de nombreux logiciels portés, cela + vaut probablement la peine de télécharger tous les répertoires du + catalogue.</para> + + </sect2> + </sect1> + + <sect1 id="ports-skeleton"> + <title>Les squelettes</title> + + <para>Une bande de programmeurs compulsifs qui ont oublié de manger + lors d'une tentative désespérée de respecter une échéance? Des choses + désagréables hantant les sous-sols de FreeBSD? Non, un squelette est + un environnement minimal qui contient tout ce qu'il faut pour que la + magie des logiciels portés fonctionne.</para> + + <sect2 id="ports-makefile"> + <title><filename>Makefile</filename></title> + + <para>Le composant le plus important d'un squelette est le fichier + <filename>Makefile</filename>. Il contient les divers ordres qui + précisent comment le logiciel doit être compilé et installé. Voici + le <filename>Makefile</filename> pour + <application>ElectricFence</application>:</para> + + <programlisting> +# New ports collection makefile for: Electric Fence +# Version required: 2.0.5 +# Date created: 13 November 1997 +# Whom: jraynard +# +# $Id$ +# + +DISTNAME= ElectricFence-2.0.5 +CATEGORIES= devel +MASTER_SITES= ${MASTER_SITE_SUNSITE} +MASTER_SITE_SUBDIR= devel/lang/c + +MAINTAINER= jraynard@freebsd.org + +MAN3= libefence.3 + +do-install: + ${INSTALL_DATA} ${WRKSRC}/libefence.a ${PREFIX}/lib + ${INSTALL_MAN} ${WRKSRC}/libefence.3 ${PREFIX}/man/man3 + +.include <bsd.port.mk></programlisting> + + <para>Les lignes qui commencent par un “#” sont des + commentaires à l'intention des lecteurs humains (comme dans la + plupart des procédures Unix).</para> + + <para><literal>DISTNAME</literal> donne le nom, sans extension, de + l'<link linkend="ports-tarball">archive</link>.</para> + + <para><literal>CATEGORIES</literal> indique de quel type de logiciel + il s'agit. Dans le cas présent, c'est un outil pour les + développeurs.</para> + + <para><literal>MASTER_SITES</literal> est l'URL(s) du site FTP + principal, d'où sera téléchargé + l'<link linkend="ports-tarball">archive</link>, si elle n'est + pas disponible sur la machine locale. C'est un site considéré + comme fiable, normalement celui de la distribution officielle + (dans la mesure où un logiciel peut être + “officiellement” distribué sur l'Internet).</para> + + <para><literal>MAINTAINER</literal> est l'adresse électronique de + la personne responsable de la maintenance du squelette, qui + intervient lorsque, par exemple, il sort une nouvelle version du + programme.</para> + + <para>Sautons pour l'instant quelques lignes, la ligne + <literal>.include <bsd.port.mk></literal> indique que les + autres directives et commandes nécessaires se trouvent dans le + fichier générique <filename>bsd.port.mk</filename>. Comme ce sont + les mêmes pour tous les logiciels portés, il n'y a pas de raison + de les dupliquer à chaque fois, elles sont donc enregistrées dans un + fichier standard.</para> + + <para>Ce n'est probablement pas l'endroit où expliquer en détail + comment le <filename>Makefile</filename> fonctionne; il suffit de + préciser que la ligne qui commence par <literal>MAN3</literal> + garantit que les pages de manuel d'ElectricFence seront compressées + après installation, pour économiser votre précieux espace disque. Le + logiciel d'origine ne définissait pas de cible + <maketarget>install</maketarget>, les trois lignes qui commencent à + <maketarget>do-install</maketarget> veillent à ce que les fichiers + générés soient bien placés là où il faut.</para> + + </sect2> + + <sect2> + <title>Le répertoire <filename>files</filename></title> + + <para>Le fichier qui contient la <link linkend="ports-checksum">somme + de contrôle</link> pour ce logiciel s'appelle + <filename>md5</filename>, du nom de l'algorithme MD5 utilisé pour + la calculer. Il se trouve dans un répertoire au nom quelque peu + trompeur de <filename>files</filename>.</para> + + <para>Ce répertoire peut aussi contenir divers fichiers nécessaires + au portage et qui n'ont pas de raison particulière + d'être ailleurs.</para> + + </sect2> + + <sect2> + <title>Le répertoire <filename>patches</filename></title> + + <para>Ce répertoire contient les <link linkend="ports-patch">mises à + niveau</link> qu'il faut appliquer pour que tout fonctionne + correctement sous FreeBSD.</para> + + </sect2> + + <sect2> + <title>Le répertoire <filename>pkg</filename></title> + + <para>Ce répertoire contient trois fichiers assez utiles:</para> + + <itemizedlist> + + <listitem> + <para><filename>COMMENT</filename> - une description + en une seule ligne du logiciel.</para> + </listitem> + + <listitem> + <para><filename>DESCR</filename> - une description + plus détaillée.</para> + </listitem> + + <listitem> + <para><filename>PLIST</filename> - la liste de tous + les fichiers qui seront créés quand le logiciel sera + installé.</para> + </listitem> + + </itemizedlist> + + </sect2> + </sect1> + + <sect1 id="ports-troubleshooting"> + <title>Que faire quand un portage échoue?</title> + + <para>Oh. Il y a quatre (4) choses que vous pouvez faire :</para> + + <orderedlist> + + <listitem> + <para>Corriger le problème vous-même. Vous trouverez des détails + techniques sur le mécanisme des portages à la section + <link linkend="porting">Faire vous-même un portage</link>.</para> + </listitem> + + <listitem> + <para>Rouspéter. Cela ne se fait <emphasis>que</emphasis> par + courrrier électronique! adressez-vous à la &a.ports; et précisez + s'il vous plaît le nom et la version du logiciel, sur quel site + vous avez récupéré le squelette et l'(les) archive(s) et quel + message d'erreur vous obtenez.</para> + </listitem> + + <listitem> + <para>Faire une croix dessus. C'est la méthode la plus facile pour + la plupart des gens - il y a bien peu de programmes + du catalogue qui soient vraiment essentiels!</para> + </listitem> + + <listitem> + <para>Récupérer la version précompilée sur un serveur ftp. Le + catalogue de référence des logiciels précompilés se trouve + sur le serveur FTP de FreeBSD dans le répertoire des + <ulink + url="ftp://ftp.FreeBSD.org/pub/FreeBSD/packages/">logiciels + précompilés</ulink>, bien que nous souhaiterions + s'il vous plaît que + vous consultiez d'abord vos sites miroirs locaux! Il y a + globalement plus de chances que cela marche, que lorsque vous + essayez de les compiler d'après les sources, et cela va + de plus beaucoup plus vite. Servez-vous du programme + <citerefentry><refentrytitle>pkg_add</refentrytitle><manvolnum>1</manvolnum></citerefentry> + pour installer le fichier contenant un logiciel précompilé sur + votre système.</para> + </listitem> + + </orderedlist> + + </sect1> + + <sect1> + <title>Quelques questions et leurs réponses</title> + + <itemizedlist> + + <listitem> + <para>Q. Je pensais que cela allait être une discussion sur les + modems??!</para> + + <para>R. Ah. Vous pensiez peut-être aux “ports” + série sur la face arrière de votre ordinateur. Nous utilisons + ici le terme + “port” - logiciels portés - pour + parler du résultat du “portage” d'un logiciel d'une + version d'Unix à une autre. (Les informaticiens ont la fâcheuse + habitude d'employer le même mot pour parler de choses + différentes.)</para> + </listitem> + + <listitem> + <para>Q. Je pensais qu'il fallait utiliser des + “paquetages” pour installer des logiciels + supplémentaires.</para> + + <para>R. Oui, c'est habituellement la façon la plus rapide et la + plus facile de le faire.</para> + </listitem> + + <listitem> + <para>Q. Pourquoi alors se préoccuper de logiciels portés?</para> + + <para>R. Il y a plusieurs raisons:</para> + + <orderedlist> + + <listitem> + <para>Les licences de certains logiciels stipulent qu'ils + doivent être distribués sous forme de sources et non de + binaires.</para> + </listitem> + + <listitem> + <para>Certains ne font pas confiance aux distributions sous + forme binaire. Avec le code source, vous pouvez au moins + (en théorie) le lire pour y repérer d'éventuels + problèmes.</para> + </listitem> + + <listitem> + <para>Si vous avez des corrections/évolutions qui vous sont + propres, vous avez besoin des sources pour les + appliquer.</para> + </listitem> + + <listitem> + <para>Vous pouvez vouloir compiler le programme avec des + options différentes de celles qu'a utilisées la personne + qui a construit le + “paquetage” - certains ont des + opinions bien arrêtées sur la manière dont il faut + optimiser, sur le fait qu'il faut ou non disposer de + versions débogables et y inclure ou non les symboles, + etc.</para> + </listitem> + + <listitem> + <para>Certains aiment disposer du code source, pour pouvoir + le lire en cas de problème, le modifier, en emprunter des + morceaux (si la licence le permet, bien sûr!), et ainsi de + suite.</para> + </listitem> + + <listitem> + <para>Si vous n'avez pas le source, ce n'est pas du + logiciel! <!-- smiley -->;-)</para> + </listitem> + + </orderedlist> + + </listitem> + + <listitem> + <para><anchor id="ports-patch"> Q. Qu'est-ce qu'un + “patch” - mise à jour?</para> + + <para>R. Un “patch” est (habituellement) un petit + fichier qui précise comment passer d'une version à une autre. Il + contient du texte qui dit, par exemple, des choses comme + “effacez la ligne 23”, “ajoutez ces deux + lignes après la ligne 468” ou “modifiez comme suit + la ligne 197”. On appelle aussi cela un + “diff” parce qu'il est généré avec un programme + du même nom.</para> + </listitem> + + <listitem> + <para><anchor id="ports-tarball"> Q. Que sont les archives?</para> + + <para>R. C'est un fichier d'extension <filename>.tar</filename> ou + <filename>.tar.gz</filename> (avec des variantes du style + <filename>.tar.Z</filename>, ou même <filename>.tgz</filename> + si vous voulez utiliser ces noms de fichiers avec un systèmes + de fichiers DOS).</para> + + <para>C'est essentiellement une arborescence de répertoires qui a + été archivée en un seul fichier (<filename>.tar</filename>) et + éventuellement compressé (<filename>.gz</filename>). Cette + technique était à l'origine utilisée pour les + “<emphasis>T</emphasis>ape” - bande - “<emphasis>AR</emphasis>chives” + (d'où le nom <command>tar</command>), mais c'est une méthode + très utilisée pour distribuer du code source sur + l'Internet.</para> + + <para>Vous pouvez avoir la liste des fichiers qu'elles + contiennent, ou même les extraire vous-même, avec le programme + Unix standard <command>tar</command>, qui fait partie du système + FreeBSD de base, comme ceci:</para> + + <informalexample> + <screen>&prompt.user; <userinput>tar tvzf foobar.tar.gz</userinput> # connaître le contenu de foobar.tar.gz +&prompt.user; <userinput>tar xzvf foobar.tar.gz</userinput> # extraire le contenu de foobar.tgz dans le répertoire courant +&prompt.user; <userinput>tar tvf foobar.tar</userinput> # connaître le contenu de foobar.tar +&prompt.user; <userinput>tar xvf foobar.tar</userinput> # extraire le contenu de foobar.tar dans le répertoire courant + </screen> + </informalexample> + </listitem> + + <listitem> + <para><anchor id="ports-checksum"> Q. Et une somme de + contrôle?</para> + + <para>R. C'est un nombre calculé en additionnant tout ce que + contient le fichier. Si un caractère change, la somme de + contrôle n'est plus la même, et une simple comparaison vous + permettra de repérer la différence. (En pratique, le calcul + est un peu plus compliqué pour pouvoir repérer des problèmes + comme les permutations de caractères, ce que ne permettrait + pas une simple addition.)</para> + </listitem> + + <listitem> + <para>Q. J'ai suivi vos indications au paragraphe + <link linkend="ports-cd">Compiler les logiciels portés depuis + le CD-ROM</link> et ça a marché sans problème jusqu'à ce que + j'essaie d'installer <command>kermit</command></para> + + <informalexample> + <screen>&prompt.root; <userinput>make install</userinput> +>> cku190.tar.gz doesn't seem to exist on this system. +>> Attempting to fetch from ftp://kermit.columbia.edu/kermit/archives/.</screen> + </informalexample> + <para>Pourquoi ne le trouve-t-il pas? Ai-je un CD-ROM + endommagé?</para> + + <para>R. La licence de <command>kermit</command> ne nous permet + pas d'inclure l'archive sur le CD-ROM, vous devrez donc la + récupérez vous-même - désolé! Vous avez tous ces + messages d'erreur parce que vous n'étiez pas alors connecté à + l'Internet. Une fois que vous l'avez téléchargé à partir de l'un + des sites mentionnés, vous pouvez recommencer l'installation + (essayez et choisissez le site le plus proche, pour économiser + votre temps et de la bande passante);</para> + </listitem> + + <listitem> + <para>Q. Je l'ai fait, mais quand j'ai essayé de la mettre + dans <filename>/usr/ports/distfiles</filename>, j'ai eu des + erreurs à propos de permissions que je n'avais pas.</para> + + <para>R. Le mécanisme des logiciels portés cherche les archives + dans <filename>/usr/ports/distfiles</filename>, mais il ne peut + rien y copier parce que c'est un lien symbolique sur le CD-ROM, + sur lequel on ne peut que lire. Vous pouvez lui dire de chercher + ailleurs avec:</para> + + <informalexample> + <screen>&prompt.root; <userinput>make DISTDIR=/where/you/put/it install</userinput></screen> + </informalexample> + </listitem> + + <listitem> + <para>Q. Le système des logiciels portés ne fonctionne-t-il + qu'avec <filename>/usr/ports</filename>? Mon administrateur + système veut que je mette tout dans + <filename>/u/people/guests/wurzburger</filename>, mais cela ne + marche apparemment pas.</para> + + <para>R. Vous pouvez utiliser les variables + <makevar>PORTSDIR</makevar> et <makevar>PREFIX</makevar> + pour dire au mécanisme des logiciels portés de travailler dans + d'autres répertoires. Par exemple:</para> + + <informalexample> + <screen>&prompt.root; <userinput>make PORTSDIR=/u/people/guests/wurzburger/ports install</userinput></screen> + </informalexample> + + <para>compilera le logiciel dans + <filename>/u/people/guests/wurzburger/ports</filename> et + l'installera dans <filename>/usr/local</filename>.</para> + + <informalexample> + <screen>&prompt.root; <userinput>make PREFIX=/u/people/guests/wurzburger/local install</userinput></screen> + </informalexample> + + <para>le compilera dans <filename>/usr/ports</filename> et + l'installera dans + <filename>/u/people/guests/wurzburger/local</filename>.</para> + + <para>Et bien sûr:</para> + + <informalexample> + <screen>&prompt.root; <userinput>make PORTSDIR=.../ports PREFIX=.../local install</userinput></screen> + </informalexample> + + <para>combinera les deux (c'est trop long pour tenir entièrement + sur la page, mais je suis sûr que vous avez compris le + principe).</para> + + <para>Si vous ne voulez pas avoir à retaper tout cela à chaque + fois que vous installez un logiciel (et pour être honnête, + pourquoi le feriez-vous?), c'est une bonne idée de définir + ces deux variables dans votre environnement par défaut.</para> + </listitem> + + <listitem> + <para>Q. Je n'ai pas le CD-ROM FreeBSD, mais je voudrais avoir les + archives sous la main sur mon système pour ne pas avoir à + attendre la fin du téléchargement chaque fois que j'installe un + logiciel. y-a-t-il une façon simple de tout récupérer d'un + coup?</para> + + <para>R. Pour récupérer toutes les archives du catalogue des + logiciels portés, tapez:</para> + + <informalexample> + <screen>&prompt.root; <userinput>cd /usr/ports</userinput> +&prompt.root; <userinput>make fetch</userinput></screen> + </informalexample> + + <para>Pour avoir toutes les archives d'un seul sous-répertoire, + utilisez:</para> + + <informalexample> + <screen>&prompt.root; <userinput>cd /usr/ports/<replaceable>directory</replaceable></userinput> +&prompt.root; <userinput>make fetch</userinput></screen> + </informalexample> + + <para>et pour un seul port - bon, je suppose que vous + avez déjà deviné.</para> + </listitem> + + <listitem> + <para>Q. Je sais qu'il est probablement plus rapide de récupérer + les archives de sites miroir FreeBSD proches. Y'a-t-il un moyen + de dire au mécanisme de s'adresser à d'autres serveurs que ceux + listés dans les MASTER_SITES?</para> + + <para>R. Oui. Si vous savez que, par exemple, + <hostid role="fqdn">ftp.FreeBSD.ORG</hostid> est plus près que + les sites listés dans <makevar>MASTER_SITES</makevar>, faites + comme dans l'exemple suivant:</para> + + <informalexample> + <screen>&prompt.root; <userinput>cd /usr/ports/directory</userinput> +&prompt.root; <userinput>make MASTER_SITE_OVERRIDE=ftp://ftp.FreeBSD.ORG/pub/FreeBSD/distfiles/ fetch</userinput></screen> + </informalexample> + </listitem> + + <listitem> + <para>Q. Je veux savoir de quels fichiers j'aurai besoin, avant + d'essayer de les télécharger.</para> + + <para>R. <command>make fetch-list</command> affichera la liste des + fichiers nécessaires pour installer un logiciel porté.</para> + </listitem> + + <listitem> + <para>Q. Y-a-t il un moyen de faire en sorte que le logiciel ne + soit pas compilé. Je veux modifier les sources avant de le + compiler et c'est fastidieux de surveiller ce qui ce passe à + chaque fois et de toujours taper Ctrl-C.</para> + + <para>R. <command>make extract</command> ne fait que récupérer et + extraire le code source.</para> + </listitem> + + <listitem> + <para>Q. J'essaie de faire mon propre portage, et voudrais qu'il + ne soit pas compilé avant que j'ai pu vérifier que les mises à + jour aient été correctement appliquées. Y-a-t-il un équivalent + de <command>make extract</command>, pour les mises à + jour?</para> + + <para>A. Oui, <command>make patch</command> est ce qu'il vous + faut. Vous trouverez peut-être aussi utile l'option + <option>PATCH_DEBUG</option>. Et, au + passage, merci de vos efforts!</para> + </listitem> + + <listitem> + <para>Q. J'ai entendu dire que certaines options du compilateur + posait des problèmes. Est-ce exact? Comment puis-je être sûr + que je compile les logiciels avec les bonnes options?</para> + + <para>R. Oui, avec la version 2.6.3 de <command>gcc</command> (la + version livrée avec FreeBSD 2.1.0 et 2.1.5), l'option + <option>-O2</option> pouvait générer du code bogué, à moins que + vous n'utilisiez en même temps l'option + <option>-fno-strength-reduce</option>. (La plupart des logiciels + portés n'utilisent pas l'option <option>-O2</option>). Vous + <emphasis>devriez</emphasis> pouvoir préciser au compilateur les + options à utiliser avec quelque chose comme:</para> + + <informalexample> + <screen>&prompt.root; <userinput>make CFLAGS='-O2 -fno-strength-reduce' install</userinput></screen> + </informalexample> + + <para>ou en éditant <filename>/etc/make.conf</filename>, mais tous + les logiciels portés n'en tiennent malheureusement pas compte. + Le plus sûr est d'utiliser <command>make configure</command>, + puis d'aller dans le répertoire des sources et de regarder ce + que font les <filename>Makefile</filename>s, mais cela peut + devenir fastidieux s'il y a de nombreux sous-répertoires avec + chacun leurs <filename>Makefile</filename>s.</para> + </listitem> + + <listitem> + <para>Q. Il y a tellement de logiciels portés qu'il est difficile + de trouver celui que je veux. Y-a-t-il quelque part une liste + des logiciels portés?</para> + + <para>R. Regardez dans le fichier <filename>INDEX</filename> + du répertoire <filename>/usr/ports</filename>.</para> + </listitem> + + <listitem> + <para>Q. J'ai installé le logiciel <literal>foo</literal> mais le + mécanisme s'est soudainement interrompu et a commencé à compiler + le logiciel <literal>bar</literal>. Que se passe-t-il?</para> + + <para>R. Le logiciel <literal>foo</literal> a besoin de quelque + chose qui fait partie de <literal>bar</literal> - par + exemple, si <literal>foo</literal> utilise des graphiques, + <literal>bar</literal> peut comporter une bibliothèque avec des + sous-programmes graphiques utiles. Ou bien + <literal>bar</literal> est un outil nécessaire à la compilation + du logiciel <literal>foo</literal>.</para> + </listitem> + + <listitem> + <para><anchor id="ports-remove">Q. J'ai installé le logiciel + <literal>grizzle</literal> du catalogue et c'est franchement + du gaspillage d'espace disque. Je veux le supprimer mais je + ne sais pas où il a mis tous les fichiers. Des + indications?</para> + + <para>R. Pas de problème, tapez simplement:</para> + + <informalexample> + <screen>&prompt.root; <userinput>pkg_delete grizzle-6.5</userinput></screen> + </informalexample> + </listitem> + + <listitem> + <para> + Q. Une minute, il faut connaître le numéro de version pour + utiliser cette commande. Vous ne vous attendez sérieusement pas + à ce que je l'ai retenu, n'est-ce pas?</para> + + <para>R. Absolument pas, vous pouvez le trouver en tapant:</para> + + <informalexample> + <screen>&prompt.root; <userinput>pkg_info -a | grep grizzle</userinput> +Information for grizzle-6.5: +grizzle-6.5 - La méthode de piano, l'interpréteur LOGO et le casse-briques tout +en un.</screen> + </informalexample> + </listitem> + + <listitem> + <para>Q. A propos d'espace disque, le catalogue des logiciels + portés occupe apparemment énormément de place. Est-il possible + d'y faire du ménage?</para> + + <para>R. Oui, si vous avez installé un programme et êtes à peu + près certain que vous n'aurez plus besoin des sources, il est + inutile de les garder. La meilleure façon de faire est:</para> + + <informalexample> + <screen>&prompt.root; <userinput>cd /usr/ports</userinput> +&prompt.root; <userinput>make clean</userinput></screen> + </informalexample> + + <para>qui parcourera tous les sous-répertoires et supprimera tout + ce qui se rapporte aux logiciels sauf les squelettes.</para> + </listitem> + + <listitem> + <para>Q. J'ai essayé, mais il reste toujours toutes ces archives, + quelque soit le nom que vous leur donniez, dans le répertoire + <filename>distfiles</filename>. Puis-je aussi les + effacer?</para> + + <para>R. Oui, si vous êtes sûr d'en avez terminé avec elles, vous + pouvez aussi les supprimer.</para> + </listitem> + + <listitem> + <para>Q. J'aime avoir quantité de logiciels pour les tester? + Y-a-t-il un moyen de tous les installer d'un seul coup?</para> + + <para>R. Tapez simplement:</para> + + <informalexample> + <screen>&prompt.root; <userinput>cd /usr/ports</userinput> +&prompt.root; <userinput>make install</userinput></screen> + </informalexample> + </listitem> + + <listitem> + <para>Q. OK, j'ai essayé, mais comme je pensais que cela allait + prendre beaucoup de temps, j'ai laissé la machine telle quelle + et je suis allé me coucher. Ce matin, quand j'ai jeté une coup + d'oeil à l'ordinateur, je n'avais que trois logiciels et demi + installés. Quelque chose s'est-il mal passé?</para> + + <para>R. Non, le problème est que certains logiciels ont des + questions à vous poser auxquelles ils ne peuvent répondre à + votre place (par exemple, “Voulez-vous imprimer au format + A4 ou au format légal US?”) et il faut donc que quelqu'un + y réponde sur le moment.</para> + </listitem> + + <listitem> + <para>Q. Je ne veux pas passer toute la journée planté devant + l'écran. Une meilleure idée?</para> + + <para>A. OK, avant d'aller au lit/travail/jardin public, + tapez:</para> + + <informalexample> + <screen>&prompt.root <userinput>cd /usr/ports</userinput> +&prompt.root; <userinput>make -DBATCH install</userinput></screen> + </informalexample> + + <para>Cela installera tous les logiciels sans interaction avec + l'utilisateur. A votre retour, tapez:</para> + + <informalexample> + <screen>&prompt.root; <userinput>cd /usr/ports</userinput> +&prompt.root; <userinput>make -DIS_INTERACTIVE install</userinput></screen> + </informalexample> + + <para>Pour terminer les installations.</para> + </listitem> + + <listitem> + <para>Q. Au bureau, nous utilisons <literal>frobble</literal>, qui + fait partie de votre catalogue des logiciels portés, mais nous + l'avons un peu modifié pour nos besoins propres. Y-a-t-il un + moyen de faire notre propre “paquetage” pour le + distribuer plus facilement sur nos sites?</para> + + <para>R. Pas de problème, si vous savez comment générer les + “patches” pour vos modifications:</para> + + <informalexample> + <screen>&prompt.root; <userinput>cd /usr/ports/somewhere/frobble</userinput> +&prompt.root; <userinput>make extract</userinput> +&prompt.root; <userinput>cd work/frobble-2.8</userinput> +[Appliquer vos mises à jour] +&prompt.root; <userinput>cd ../..</userinput> +&prompt.root; <userinput>make package</userinput></screen> + </informalexample> + </listitem> + + <listitem> + <para>Q. Ce système des logiciels portés est vraiment génial. Je + désespère de comprendre comment vous avez fait. Quel est votre + secret?</para> + + <para>R. Il n'y a absolument pas de secret, jetez juste un coup + d'oeil aux fichiers <filename>bsd.ports.mk</filename> et + <filename>bsd.ports.subdir.mk</filename> du répertoire des + <ulink url="file://localhost/usr/share/mk/"><filename>makefile</filename>s.</ulink></para> + + <note> + <para>Cette lecture est déconseillée à ceux que les procédures + de commandes compliquées rebutent...)</para> + </note> + </listitem> + + </itemizedlist> + + </sect1> + + <sect1 id="porting"> + <title>** Faire vous-même un portage</title> + + <para><emphasis>Contribution de &a.jkh;, &a.gpalmer;, &a.asami; + &a.obrien; et &a.hoek;. 28 Août 1996.</emphasis></para> + + <para>Donc, vous voulez faire vous-même votre propre portage? + Génial!</para> + + <para>Voici quelques indications sur la façon de créer un nouveau + portage d'un logiciel pour FreeBSD. L'essentiel du travail + est fait par <filename>/usr/share/mk/bsd.port.mk</filename>, qui + est inclus dans le <filename>Makefile</filename> de chaque logiciel + porté. Reportez-vous s'il vous plaît à ce fichier pour avoir plus + de détails sur le fonctionnement interne du catalogue des logiciels + portés. Même si vous n'écrivez pas tous les jours des + <filename>Makefile</filename>s, il est pas mal commenté, et vous + en apprendrez malgré tout beaucoup de choses.</para> + + <note> + <para>Seule une partie des variables surchargeables + (<makevar><replaceable>VAR</replaceable></makevar>) est décrite + dans ce document. La plupart (sinon toutes) sont explicitées au + début de <filename>bsd.port.mk</filename>. Ce fichier utilise des + tabulations non standard. <application>Emacs</application> et + <application>Vim</application> devraient reconnaître cette + configuration au chargement du fichier. <command>vi</command> ou + <command>ex</command> peuvent être configurés avec la valeur + adéquate après avoir chargé le fichier en tapant <command>:set + tabstop=4</command>.</para> + </note> + + <sect2> + <title>Portage rapide</title> + + <para>Cette section vous explique comment faire un portage rapide. + La plupart du temps, ce n'est pas suffisant, mais nous verrons + cela par la suite.</para> + + <para>Commencez par récupérer le fichier d'archive d'origine et + mettez-le dans <makevar>DISTDIR</makevar>, par défaut c'est le + répertoire <filename>/usr/ports/distfiles</filename>.</para> + + <note> + <para>Nous supposerons dans ce qui suit que le source a compilé + “tel quel”, i.e., il n'y a absolument pas eu de + modification à y apporter pour qu'il tourne sur votre machine + FreeBSD. Si vous avez dû changer quelque chose, vous devrez + aussi vous reporter à la section suivante.</para> + </note> + + <sect3> + <title>Ecrire le <filename>Makefile</filename></title> + + <para>Le <filename>Makefile</filename> minimal ressemblera à + ceci :</para> + + <programlisting> +# Nouveau makefile du catalogue pour: oneko +# Version correspondante: 1.1b +# Date de création: 5 Décembre 1994 +# Par: asami +# +# $Id$ +# + +DISTNAME= oneko-1.1b +CATEGORIES= games +MASTER_SITES= ftp://ftp.cs.columbia.edu/archives/X11R5/contrib/ + +MAINTAINER= asami@FreeBSD.ORG + +MAN1= oneko.1 +MANCOMPRESSED= yes +USE_IMAKE= yes + +.include <bsd.port.mk></programlisting> + + <para>Voyez si vous y comprenez quelque chose. Ne vous occupez + pas de la ligne <literal>$Id$</literal>, elle sera + automatiquement renseignée par CVS quand le logiciel sera + importé dans notre arborescence principale des logiciels + portés. Vous trouverez un exemple plus détaillé à la section + <link linkend="porting-samplem">Exemple de + Makefile</link>.</para> + + </sect3> + + <sect3> + <title>Créer les fichiers de description</title> + + <para>Il y a trois fichiers de description indispensables à + chaque logiciel porté, qu'il soit ou non précompilé. Ce sont + les fichiers <filename>COMMENT</filename>, + <filename>DESCR</filename> et <filename>PLIST</filename>, + du sous-répertoire <filename>pkg</filename>.</para> + + <sect4> + <title><filename>COMMENT</filename></title> + + <para>C'est une description en une seule ligne du logiciel. + <emphasis>S'il vous plaît</emphasis>, n'incluez pas le nom + du logiciel (ni son numéro de version) dans le commentaire. + Voici un exemple :</para> + + <programlisting> +Un chat poursuit une souris à travers l'écran.</programlisting> + + </sect4> + + <sect4> + <title><filename>DESCR</filename></title> + + <para>C'est une description plus longue du logiciel. Un à + quelques paragraphes, expliquant succintement ce qu'il + fait, suffisent.</para> + + <note> + <para>Ce <emphasis>n'est pas</emphasis> un manuel, ni + une description détaillée de la manière de compiler et + d'utiliser le logiciel. Faites + <emphasis>s'il vous plaît attention si vous la recopiez + du <filename>README</filename> ou des pages de + manuel</emphasis>; trop souvent, ce ne sont pas des + descriptions concises et elles sont mal formatées (e.g., les + pages de manuel sont justifiées avec des espaces). S'il y a + une page Web officielle pour le logiciel, vous devriez la + mentionner ici.</para> + </note> + + <para>Il vous est recommandé de signer en fin de fichier, comme + suit:</para> + + <programlisting> +C'est le portage de “oneko”, le chat qui poursuit la pauvre souris +sur tout l'écran. + : +(etc.) + +http://www.oneko.org/ + +- Satoshi +asami@cs.berkeley.edu</programlisting> + + </sect4> + + <sect4> + <title><filename>PLIST</filename></title> + + <para>C'est la liste de tous les fichiers installés pour ce + logiciel. On l'appelle aussi “liste de paquetage” + parce que le “paquetage” sera généré en archivant + tous les fichiers de cette liste. Les chemins d'accès sont + relatifs à <filename>/usr/local</filename> ou + <filename>/usr/X11R6</filename>). Si vous utilisez des + variables <makevar>MAN<replaceable>n</replaceable></makevar> + (comme vous devriez le faire), n'y listez pas les pages de + manuel.</para> + + <para>Voici un court exemple:</para> + + <programlisting> +bin/oneko +lib/X11/app-defaults/Oneko +lib/X11/oneko/cat1.xpm +lib/X11/oneko/cat2.xpm +lib/X11/oneko/mouse.xpm +@dirrm lib/X11/oneko</programlisting> + + <para>Reportez-vous aux pages de manuel de + <citerefentry><refentrytitle>pkg_create</refentrytitle><manvolnum>1</manvolnum></citerefentry> + pour plus de détails sur la “liste de + paquetage”.</para> + + <note> + <para>Vous devez lister tous les fichiers, mais pas les noms + des répertoires. Par contre, s'il y a des répertoires créés + à l'installation, veillez à ajouter les lignes + <literal>@dirrm</literal> nécessaires pour qu'ils soient + détruits si le logiciel est désinstallé.</para> + + <para>Il est recommandé de lister les fichiers dans l'ordre + alphabétique. Cela facilite beaucoup les contrôles lors des + mises à jour.</para> + </note> + </sect4> + </sect3> + + <sect3> + <title>Créer le fichier pour la somme de contrôle</title> + + <para>Tapez simplement <command>make makesum</command>. + Les règles de construction des logiciels portés génèreront + automatiquement le fichier + <filename>files/md5</filename>.</para> + + </sect3> + + <sect3 id="porting-testing"> + <title>Tester le portage</title> + + <para>Vous devez vérifiez que les règles de construction du + logiciel porté font exactement ce que vous voulez. Voici + les points importants à contrôler:</para> + + <itemizedlist> + <listitem> + <para><filename>PLIST</filename> ne contient rien d'autre que + ce qu'installe votre logiciel.</para> + </listitem> + + <listitem> + <para><filename>PLIST</filename> contient tout ce qu'installe + votre logiciel.</para> + </listitem> + + <listitem> + <para>Le logiciel peut être installé plusieurs fois de suite + en utilisant la cible + <maketarget>reinstall</maketarget>.</para> + </listitem> + + <listitem> + <para>Le mécanisme de portage du logiciel + <link linkend="porting-cleaning">fait le ménage</link> + lors de la désinstallation.</para> + </listitem> + </itemizedlist> + + <procedure> + <title>Ordre de test recommandé</title> + + <step> + <para><command>make install</command></para> + </step> + + <step> + <para><command>make package</command></para> + </step> + + <step> + <para><command>make deinstall</command></para> + </step> + + <step> + <para><command>pkg_add `make nom_du_paquetage`</command></para> + </step> + + <step> + <para><command>make deinstall</command></para> + </step> + + <step> + <para><command>make reinstall</command></para> + </step> + + <step> + <para><command>make package</command></para> + </step> + </procedure> + + <para>Vérifiez qu'il n'y a aucun message d'avertissement + aux étapes <maketarget>package</maketarget> et + <maketarget>deinstall</maketarget>. Après l'étape 3, vérifiez + que tous les répertoires créés ont bien été détruits. Essayez + aussi d'utilisez le logiciel après l'étape 4, pour vous assurer + qu'il fonctionne correctement après installation sous forme + de “paquetage”.</para> + </sect3> + + <sect3 id="porting-portlint"> + <title>Vérifier votre portage avec + <command>portlint</command></title> + + <para>Utilisez s'il vous plaît la commande + <command>portlint</command> pour contrôler que votre portage + se conforme à nos recommandations. + Le programme <command>portlint</command> fait partie du catalogue + des logiciels portés. En particulier, vous devriez vérifier + que votre <link linkend="porting-samplem">Makefile</link> est + bien construit et que le nom du + <link linkend="porting-pkgname">paquetage</link> est + correct.</para> + </sect3> + + <sect3 id="porting-submitting"> + <title>Soumettre le portage</title> + + <para>Veillez d'abord à lire la section <link + linkend="porting-dads">A faire et à ne pas + faire</link>.</para> + + <para>Maintenant que vous êtes satisfait de votre portage, la + seule chose qui reste à faire est de le mettre dans + l'arborescence principale des logiciels portés de FreeBSD + de façon à ce que tout le monde en profite. Nous n'avons + pas besoin de votre répertoire + <filename>work</filename> ni de votre fichier + <filename><replaceable>nom_du_paquetage</replaceable>.tgz</filename>, + effacez-les donc maintenant. Incluez simplement ensuite le + résultat de la commande <command>shar `find répertoire_portage`</command> + dans un rapport de bogue et envoyez-le nous avec le programme + <citerefentry> + <refentrytitle>send-pr</refentrytitle> + <manvolnum>1</manvolnum> + </citerefentry>. (Voyez <link linkend="contrib-general">Rapports + de bogues et commentaires généraux</link> pour plus + d'informations sur <citerefentry> + <refentrytitle>send-pr</refentrytitle> + <manvolnum>1</manvolnum> + </citerefentry>.) Si le logiciel porté non compressé fait plus de + 20KB, vous devrez en faire une archive compressée et utiliser + <citerefentry><refentrytitle>uuencode</refentrytitle> + <manvolnum>1</manvolnum> + </citerefentry> avant de l'inclure dans le rapport (les archives + “tar” “uuencodées” sont admises même + si le rapport de bogue fait moins de 20KB, quoique non + souhaitées dans ce cas). Veillez à classer le rapport dans la + catégorie + <literal>ports</literal> - “portages” et + la classe + <literal>change-request</literal> - “demande + de modification”. (Ne classez pas le rapport + <literal>confidential</literal> - “confidentiel” !)</para> + + <para>Encore une fois, <emphasis>n'incluez pas la distribution + originale du source, le répertoire <filename>work</filename> ni le + “paquetage” construit avec <command>make + package</command></emphasis>.</para> + + <note> + <para>Dans le passé, nous demandions que les soumissions de + logiciels portés passent par notre site ftp + (<hostid role="fqdn">ftp.freebsd.org</hostid>). Ce n'est plus + souhaitable parce que l'accès en lecture est interdit sur le + répertoire <filename>incoming/</filename> de ce site du fait + de la trop grande quantité de logiciels piratés qui y + atterrissaient.</para> + </note> + + <para>Nous regarderons votre portage, vous contacterons si nécessaire, + et le mettrons dans l'arborescence. Votre nom apparaîtra aussi dans + la liste des “Autres collaborateurs de FreeBSD” du + manuel FreeBSD et dans d'autres fichiers. Génial, + non?!? <!-- smiley -->:)</para> + + </sect3> + </sect2> + + <sect2> + <title>Portage évolué</title> + + <para>Bon, ce n'était en fait pas si simple, et il a fallu + modifier le code pour que le portage fonctionne. Dans cette + section, nous allons expliquer, étape par étape, comment faire + dans ce cas pour appliquer le paradigme des logiciels + portés.</para> + + <sect3> + <title>Comment les choses fonctionnent</title> + + <para>Pour commencer, voici ce qui se passe lorsque + l'utilisateur tape <command>make</command> dans le + répertoire de votre logiciel porté. Ouvrir le fichier + <filename>bsd.port.mk</filename> dans une autre fenêtre + pendant que vous lisez ceci vous en facilitera la + compréhension.</para> + + <para>Ne vous inquiétez pas si vous ne comprenez pas complètement + ce que fait <filename>bsd.port.mk</filename>, peu de gens y + arrivent... <!-- smiley --><emphasis>:></emphasis></para> + + <procedure> + + <step> + <para>La cible <maketarget>fetch</maketarget> est exécutée. + La cible <maketarget>fetch</maketarget> est chargée de + faire en sorte que l'archive soit localement + disponible dans <makevar>DISTDIR</makevar>. Si + <maketarget>fetch</maketarget> ne trouve pas les + fichiers dans + <makevar>DISTDIR</makevar>, elle regardera à l'URL + <makevar>MASTER_SITES</makevar>, définie dans le + <filename>Makefile</filename>, et sur notre site ftp + principal dans <ulink + URL="ftp://ftp.freebsd.org/pub/FreeBSD/distfiles/">ftp://ftp.freebsd.org/pub/FreeBSD/distfiles/</ulink> où nous avons mis les archives + validées, à titre de copie de secours. Elle essayera alors + de rapatrier le fichier de la distribution avec + <makevar>FETCH</makevar>, en présumant que la machine + qui fait la demande a un accès direct à l'Internet. En + cas de succès, le fichier est sauvegardé dans + <makevar>DISTDIR</makevar> pour la suite, et le traitement + peut continuer.</para> + </step> + + <step> + <para>La cible <maketarget>extract</maketarget> est ensuite + exécutée. Elle cherche le fichier de distribution de votre + portage (typiquement une archive créée par + <command>tar</command> et compressée avec + <command>gzip</command>) dans + <makevar>DISTDIR</makevar> et en extrait le contenu dans + un sous-répertoire temporaire défini par + <makevar>WRKDIR</makevar> + (par défaut <filename>work</filename>).</para> + </step> + + <step> + <para>La cible suivante est <maketarget>patch</maketarget>. + Dans un premier temps, tous les fichiers de mise à jour + définis dans <makevar>PATCHFILES</makevar> sont appliqués. + Ensuite, s'il y a des fichiers de mise à jour dans + <makevar>PATCHDIR</makevar> (le sous-répertoire + <filename>patches</filename> par défaut), ils sont + appliqués, dans l'ordre alphabétique cette fois-ci.</para> + </step> + + <step> + <para>Vient ensuite <maketarget>configure</maketarget> qui + peut faire l'une des opérations suivantes:</para> + + <orderedlist> + + <listitem> + <para>Si elle existe, exécuter la procédure + <filename>scripts/configure</filename>.</para> + </listitem> + + <listitem> + <para>Si <makevar>HAS_CONFIGURE</makevar> ou + <makevar>GNU_CONFIGURE</makevar> + est définie, exécuter + <filename><makevar>WRKSRC</makevar>/configure</filename>.</para> + </listitem> + + <listitem> + <para>Si <makevar>USE_IMAKE</makevar> est définie, + exécuter <makevar>XMKMF</makevar> + (par défaut: <command>xmkmf + -a</command>).</para> + </listitem> + + </orderedlist> + + </step> + + <step> + <para>La dernière cible est + <maketarget>build</maketarget>. Elle passe dans le + sous-répertoire de travail du portage + (<makevar>WRKSRC</makevar>) et se charge de la + compilation. Si la variable <makevar>USE_GMAKE</makevar> + est définie, la commande <command>make</command> GNU est + utilisée, sinon c'est la commande <command>make</command> + du système qui est employée.</para> + </step> + + </procedure> + + <para>Ce sont les opérations par défaut. Vous pouvez en plus + définir des cibles + <maketarget>pre-<replaceable>quelque_chose</replaceable></maketarget> + ou <maketarget>post-<replaceable>quelque_chose</replaceable></maketarget>, + ou mettre des procédures du même nom dans le sous-répertoire + <filename>scripts</filename>, et elles précéderont ou suivront + les opérations par défaut.</para> + + <para>Par exemple, si vous avez défini une cible + <maketarget>post-extract</maketarget> dans votre + <filename>Makefile</filename>, et créé un fichier + <filename>pre-build</filename> dans le sous-répertoire + <filename>scripts</filename>, la cible + <maketarget>post-extract</maketarget> sera invoquée après + l'opération habituelle d'extraction et la procédure + <filename>pre-build</filename> exécutée avant d'appliquer les + règles de compilation par défaut. Il est recommandé d'utiliser + des cibles dans le <filename>Makefile</filename> si les actions + sont suffisamment élémentaires, car il est alors plus facile à + quelqu'un d'autre de voir quelles sont les opérations + supplémentaires effectuées lors du portage.</para> + + <para>Les opérations par défaut sont prises en charge par les + cibles + <maketarget>do-<replaceable>quelque_chose</replaceable></maketarget> + du fichier <filename>bsd.port.mk</filename>. Par exemple, les + commandes d'extraction sont définies par la cible + <maketarget>do-extract</maketarget>. Si la cible par défaut ne + vous convient pas, vous pouvez rédefinir + <maketarget>do-<replaceable>quelque_chose</replaceable></maketarget> + dans votre <filename>Makefile</filename>.</para> + + <note> + <para>Les cibles “principales” (e.g., <maketarget>extract</maketarget>, <maketarget>configure</maketarget>, etc.) ne font rien + d'autre que de s'assurer que les étapes qui les précèdent se + sont bien déroulées et appellent les vrais cibles ou + procédures. Elles ne doivent donc pas être modifiées. Si vous + voulez changer la méthode d'extraction, redéfinissez + <maketarget>do-extract</maketarget>, mais ne modifiez pas + <maketarget>extract</maketarget> !</para> + </note> + + <para>Maintenant que vous avez compris ce qui se passe quand + l'utilisateur tape <command>make</command>, passons en revue + les étapes conseillées pour créer le portage parfait.</para> + + </sect3> + + <sect3> + <title>Obtenez les sources d'origine</title> + + <para>Récupérez les sources d'origine (normalement) sous forme + d'archive compressée + (<filename><replaceable>foo</replaceable>.tar.gz</filename> ou + <filename><replaceable>foo</replaceable>.tar.Z</filename>) et + copiez-les dans <makevar>DISTDIR</makevar>. Utilisez toujours + des sources <emphasis>de première main</emphasis> si vous le + pouvez.</para> + + <para>Si vous ne trouvez pas de site ftp/http correctement + accessible sur le réseau, ou ne trouvez que des sites qui + utilisent des formats non standard, vous voudrez peut-être + mettre une copie sur un serveur ftp ou http fiable que vous + contrôlez (e.g., votre page personnelle). Veillez à définir + <makevar>MASTER_SITES</makevar> pour refléter ce choix.</para> + + <para>Si vous ne trouvez aucun endroit adéquat et fiable où mettre + la distribution (si vous y êtes autorisé, vous pouvez la mettre + dans votre sous-répertoire <filename>public_html/</filename> sur + <hostid>freefall</hostid>), nous pouvons en dernier ressort + “l'accueillir” nous-même en la mettant dans + <filename>ftp://ftp.freebsd.org/pub/FreeBSD/distfiles/LOCAL_PORTS/</filename>. + Définissez cette adresse dans + <makevar>MASTER_SITE_LOCAL</makevar>. Adressez un courrier + électronique à la &a.ports;, si vous n'êtes pas sûr de ce qu'il + faut faire.</para> + + <para>Si la distribution est fréquemment modifiée sans raison + valable, envisagez de la recopier sur votre page personnelle et + listez-la en premier dans <makevar>MASTER_SITES</makevar>. Cela + évitera que les utilisateurs aient des erreurs + “<errorname>checksum mismatch</errorname>” + sur les sommes de contrôle, et réduira aussi + le travail des personnes chargées de maintenir notre site ftp. + D'autre part, s'il n'y a qu'un seul site pour le logiciel + d'origine, il est recommandé que vous ayez une sauvegarde sur + votre site et qu'elle soit mentionnée en second lieu dans + <makevar>MASTER_SITES</makevar>.</para> + + <para>S'il faut d'autres “patches” disponibles sur + l'Internet pour ce portage, récupérez-les aussi et mettez-les + dans <makevar>DISTDIR</makevar>. Ce n'est pas un problème s'ils + proviennent d'autres sites que la distribution de base, nous + pouvons gérer cette situation (voyez plus bas la description + de <link + linkend="porting-patchfiles">PATCHFILES</link>).</para> + + </sect3> + + <sect3> + <title>Modifier les sources</title> + + <para>Extrayez le contenu de l'archive dans un sous-répertoire + privé et faites-y les modifications nécessaires pour que le + logiciel compile correctement avec la version courante de + FreeBSD. Gardez <emphasis>avec soin trace</emphasis> de tout + ce que vous faites, car vous allez bientôt automatiser ces + opérations. Tout, y compris suppressions, ajouts et + modifications de fichiers doit pouvoir être fait par des + procédures ou fichiers de mise à jour une fois que vous aurez + terminé le portage.</para> + + <para>Si le portage demande l'intervention ou des choix de + l'utilisateur à la compilation ou à l'installation, vous + devriez jeter un oeil aux procédures classiques + <application>Configure</application> de Larry Wall, et peut-être + faire quelque chose du même genre. L'objectif du nouveau + catalogue des logiciels portés est que chaque logiciel soit + aussi “prêt-a-l'emploi” que possible pour + l'utilisateur final, tout en utilisant le minimum d'espace + disque.</para> + + <note> + <para>Sauf si vous le précisez explicitement, tous les fichiers + de mise à jour, procédures et fichiers que vous aurez créés + et introduits comme contribution au catalogue des logiciels + portés sont supposés couverts par les conditions standard + de copyright BSD.</para> + </note> + </sect3> + + <sect3> + <title>Modifications</title> + + <para>Les fichiers ajoutés ou modifiés pendant la mise au point + du portage peuvent être identifiés avec un + <command>diff</command> récursif pour générer ensuite les + fichiers de mise à + jour - <foreignphrase>patches</foreignphrase>. Chaque + ensemble de mise à jour que vous souhaitez appliquer doit + être rassemblé dans un fichier + <filename>patch-<replaceable>xx</replaceable></filename>, où + <replaceable>xx</replaceable> correspond au rang de cette + mise à jour dans la séquence d'application de ces + modifications - elles sont traitées en + <emphasis>ordre alphabétique</emphasis>, donc + <literal>aa</literal> d'abord, <literal>ab</literal> en second + et ainsi de suite. Ces fichiers doivent être placés dans + <makevar>PATCHDIR</makevar>, d'où ils seront automatiquement + appliqués. Toutes les modifications doivent être relatives à + <makevar>WRKSRC</makevar> (c'est habituellement le répertoire + où l'archive s'extrait elle-même, et où se fera la + compilation). Pour simplifier les corrections et les mises à + niveau, vous devriez éviter d'avoir plus d'un fichier de mise + à jour s'appliquant au même fichier source + (e.g., <filename>patch-aa</filename> et <filename>patch-ab</filename> modifiant tous deux <filename><makevar>WRKSRC</makevar>/foobar.c</filename>).</para> + + </sect3> + + <sect3> + <title>Configuration</title> + + <para>Ajoutez toutes les autres commandes de mise au point à votre + procédure <filename>configure</filename> et enregistrez-la dans + le sous-répertoire <filename>scripts</filename>. Comme on l'a + dit plus haut, vous pouvez aussi utiliser les cibles du + <filename>Makefile</filename> et/ou les procédures + <filename>pre-configure</filename> ou + <filename>post-configure</filename>.</para> + + </sect3> + + <sect3> + <title>Interactions avec l'utilisateur</title> + + <para>Si vos procédures de compilation, configuration ou + installation ont besoin d'interagir avec l'utilisateur, + définissez la variable <makevar>IS_INTERACTIVE</makevar> dans + votre <filename>Makefile</filename>. Cela permettra aux + “compilations de nuits” d'ignorer le logiciel + que vous avez porté, si l'utilisateur définit dans son + environnement la variable <envar>BATCH</envar> (s'il définit + la variable <envar>INTERACTIVE</envar>, + <emphasis>seuls</emphasis> les logiciels portés pour lesquels + il faut des réponses de l'utilisateur sont compilés).</para> + + <para>Il est aussi recommandé, s'il y a des réponses par défaut + raisonnables à vos questions, de tester la variable + <makevar>PACKAGE_BUILDING</makevar> et de désactiver la partie + interactive de la procédure si cette variable est définie. Cela + permet de compiler les “paquetages” pour les CD-ROMs + et les sites ftp.</para> + </sect3> + </sect2> + + <sect2> + <title>Configurer le Makefile</title> + + <para>Il est assez facile de configurer le Makefile, et nous vous + suggérons à nouveau de jeter un coup d'oeil aux exemples + existants avant de commencer. Il y a aussi un + <link linkend="porting-samplem">exemple de Makefile</link> dans ce + manuel, consultez-le donc et respectez s'il vous plaît l'ordre + des variables et des sections de ce modèle pour que votre + portage soit plus facile à lire pour les autres.</para> + + <para>Envisageons maintenant les problèmes suivants en + séquence au fur et à mesure que vous mettez au point + votre nouveau Makefile :</para> + + <sect3> + <title>Le source original</title> + + <para>Se trouve-t-il dans <makevar>DISTDIR</makevar> sous forme standard + d'archive compressée avec + <citerefentry><refentrytitle>gzip</refentrytitle> <manvolnum>1</manvolnum></citerefentry>. + Si ce n'est pas le cas, vous devriez envisager de surcharger une des + variables <makevar>EXTRACT_CMD</makevar>, + <makevar>EXTRACT_BEFORE_ARGS</makevar>, + <makevar>EXTRACT_AFTER_ARGS</makevar>, + <makevar>EXTRACT_SUFX</makevar> ou <makevar>DISTFILES</makevar> selon + le degré de non-conformité du fichier de distribution + de votre logiciel à porter. (Le cas le plus fréquent est + <literal>EXTRACT_SUFX=.tar.Z</literal>, quand l'archive est + compressée avec + <citerefentry><refentrytitle>compress</refentrytitle> <manvolnum>1</manvolnum></citerefentry> + et non + <citerefentry><refentrytitle>gzip</refentrytitle> <manvolnum>1</manvolnum></citerefentry>.)</para> + + <para>Dans le pire des cas, vous pouvez simplement créer votre + propre cible <maketarget>do-extract</maketarget> pour surcharger la + cible par défaut, bien que ce ne soit que rarement, sinon + jamais, nécessaire.</para> + </sect3> + + <sect3> + <title><makevar>DISTNAME</makevar></title> + + <para>Vous devez affecter à <makevar>DISTNAME</makevar> le nom de + fichier de votre logiciel à porter. Les règles par + défaut veulent que le fichier de distribution + (<makevar>DISTFILES</makevar>) s'appelle + <makevar>DISTNAME</makevar><makevar>EXTRACT_SUFX</makevar> qui, si + c'est un fichier d'archive habituel, sera quelque chose du style + <literal>foozolix-1.0.tar.gz</literal> si + <literal>DISTNAME=foozolix-1.0</literal>.</para> + + <para>Les règles par défaut veulent aussi que l(es) + archive(s) soi(en)t extraite(s) dans un sous-répertoire + appelé <filename>work/<makevar>DISTNAME</makevar></filename>, + e.g., <filename>work/foozolix-1.0/</filename>.</para> + + <para>Toutes ces conventions peuvent bien sûr être + surchargées; ce sont simplement les valeurs par défaut + qui font gagner le plus de temps. Pour un logiciel à porter + pour lequel il y a plusieurs fichiers de distribution, + définissez simplement explicitement + <makevar>DISTFILES</makevar>. S'il n'y a qu'un sous-ensemble de + <makevar>DISTFILES</makevar> qui est effectivement constitué + d'archives extractibles, définissez-les dans + <makevar>EXTRACT_ONLY</makevar>, qui surchargera la liste de + <makevar>DISTFILES</makevar> au moment de l'extraction, les autres + restant dans <makevar>DISTDIR</makevar> pour usage + ultérieur.</para> + </sect3> + + <sect3> + <title><makevar>PKGNAME</makevar></title> + + <para>Si <makevar>DISTNAME</makevar> n'est pas conforme à nos + <link linkend="porting-pkgname">recommandations pour un bon nom de + paquetage</link>, vous devriez affecter à la variable + <makevar>PKGNAME</makevar> une meilleure valeur. Reportez-vous aux + recommandations mentionnées ci-dessus pour plus de + détails.</para> + </sect3> + + <sect3> + <title><makevar>CATEGORIES</makevar></title> + + <para>Quand un paquetage est crée, il est mis dans + <filename>/usr/ports/packages/All</filename> et des liens sont + définis dans un ou plusieurs sous-répertoires de + <filename>/usr/ports/packages</filename>. Les noms de ces + sous-répertoires sont spécifiés par la + variable <makevar>CATEGORIES</makevar>. L'objectif est de faciliter + la vie de l'utilisateur qui erre dans la quantité de + paquetages sur le site ftp ou le CD-ROM. Jettez un oeil s'il vous + plaît aux + <link linkend="porting-categories">catégories</link> + existantes et choisissez celles qui conviennent à votre + logiciel à porter.</para> + + <para>Cette liste détermina aussi où le logiciel sera + importé dans l'arborescence du catalogue des logiciels + portés Si vous y mentionnez plus d'une catégorie, les + fichiers iront dans le sous-répertoire de même nom que la + première de ces catégories. Reportez-vous à la + section <link linkend="porting-categories">Catégories</link> + pour plus d'informations sur la manière de sélectionner + les bonnes catégories.</para> + + <para>Si votre logiciel à porter appartient vraiment à une + autre catégorie que celles qui sont déjà + définies, vous pouvez même créer une nouvelle + catégorie. Dans ce cas, envoyez s'il vous plaît un + courrier électronique à la &a.ports; pour proposer la + création d'une nouvelle catégorie.</para> + + <note> + <para>Il n'y a pas de contrôle des noms de catégorie. + <command>make paquetage</command> créera sans sourcillier un + nouveau sous-répertoire si vous orthographiez mal le nom de + la catégorie, soyez donc prudent !</para> + </note> + </sect3> + + <sect3> + <title><makevar>MASTER_SITES</makevar></title> + + <para>Indiquez le répertoire de l'“URL” ftp/http + où se trouve l'archive originale dans + <makevar>MASTER_SITES</makevar>. N'oubliez pas le “slash” + final (<filename>/</filename>) !</para> + + <para>Les macros-instructions <command>make</command> essayerons + d'utiliser cette valeur pour récupérer le fichier de + distribution avec <makevar>FETCH</makevar>, si elles ne le trouvent + pas sur votre système.</para> + + <para>Il est conseillé de mentionner plusieurs sites dans cette + liste, si possible sur des continents différents. Cela + constituera un garde-fou contre les problèmes du réseau + mondial, et nous envisageons même d'ajouter la + détermination automatique du site de référence + le plus proche, pour aller y chercher la distribution !</para> + + <para>Si l'archive d'origine se trouve sur l'une des archives classiques suivantes : X-contrib, GNU, Perl CPAN, TeX CTAN ou Linux Sunsite, + vous pouvez y faire référence sous forme plus compacte + en vous servant de <makevar>MASTER_SITE_XCONTRIB</makevar>, + <makevar>MASTER_SITE_GNU</makevar>, + <makevar>MASTER_SITE_PERL_CPAN</makevar>, + <makevar>MASTER_SITE_TEX_CTAN</makevar> et + <makevar>MASTER_SITE_SUNSITE</makevar>. Affectez simplement à + <makevar>MASTER_SITE_SUBDIR</makevar> le chemin d'accès au + fichier dans l'archive. En voici un exemple :</para> + + <programlisting> +MASTER_SITES= ${MASTER_SITE_XCONTRIB} +MASTER_SITE_SUBDIR= applications + </programlisting> + + <para>L'utilisateur peut aussi configurer les variables + <makevar>MASTER_SITE_*</makevar> dans + <filename>/etc/make.conf</filename> pour surcharger vos choix, et + utiliser à la place ses sites miroir favoris pour ces + archives.</para> + </sect3> + + <sect3 id="porting-patchfiles"> + <title><makevar>PATCHFILES</makevar></title> + + <para>Si votre logiciel à porter a besoin de + correctifs - <foreignphrase>patches</foreignphrase> - disponibles + via ftp ou http, affectez à <makevar>PATCHFILES</makevar> les + noms des fichiers et à <makevar>PATCH_SITES</makevar> + l'“URL” du répertoire où ils se trouvent (le + format est le même que pour + <makevar>MASTER_SITES</makevar>).</para> + + <para>Si le correctif ne s'applique pas à la racine de + l'arborescence des sources (i.e., <makevar>WKRSRC</makevar>) parce + qu'il contient des chemins d'accès supplémentaires, + définissez <makevar>PATCH_DIST_STRIP</makevar> en + conséquence. Par exemple, si tous les noms de fichiers dans le + correctif sont précédés de + <literal>foozolix-1.0/</literal>, configurez alors + <literal>PATCH_DIST_STRIP=-p1</literal>.</para> + + <para>Ne vous inquiétez pas si les correctifs sont + compressés, ils seront automatiquement + décompressés si les noms des fichiers se terminent par + <filename>.gz</filename> ou <filename>.Z</filename>.</para> + + <para>Si le correctif est distribué avec d'autres fichiers, de la + documentation par exemple, sous forme d'archive compressée avec + <citerefentry><refentrytitle>gzip</refentrytitle> <manvolnum>1</manvolnum></citerefentry>, + vous ne pouvez pas utiliser <makevar>PATCHFILES</makevar>. Dans ce + cas, ajoutez le nom et la localisation du correctif à + <makevar>DISTFILES</makevar> et <makevar>MASTER_SITES</makevar>. Puis, + appliquez le correctif depuis la cible + <maketarget>pre-patch</maketarget>, soit en y exécutant la + commande <command>patch</command>, soit en copiant le correctif dans + le répertoire <makevar>PATCHDIR</makevar> et en l'appelant + <filename>patch-<replaceable>xx</replaceable></filename>.</para> + + <note> + <para>Remarquez que cette archive sera extraite en même temps + que le source de base, il n'est donc pas nécessaire de + l'extraire explicitement si elle est normalement compressée + avec + <citerefentry><refentrytitle>gzip</refentrytitle> <manvolnum>1</manvolnum></citerefentry> + ou + <citerefentry><refentrytitle>compress</refentrytitle> <manvolnum>1</manvolnum></citerefentry>. + Si vous le faites néanmoins, faites attention à + ne rien écraser de ce qui existe dans le répertoire. + Et n'oubliez pas non plus d'ajouter une commande pour supprimer le + correctif recopié à la cible + <maketarget>pre-clean</maketarget>.</para> + </note> + </sect3> + + <sect3> + <title><makevar>MAINTAINER</makevar></title> + + <para>Indiquez ici votre adresse électronique. S'il vous + plaît. <!-- smiley --><emphasis>:)</emphasis></para> + + <para>Pour une description détaillé de la + responsabilité du chargé de la maintenance, + reportez-vous à la section + <link linkend="policies-maintainer">MAINTAINER des + <filename>Makefile</filename>s</link>.</para> + </sect3> + + <sect3> + <title>Dépendances</title> + + <para>De nombreux logiciels portés dépendent d'autres + logiciels. Il y a cinq variables que vous pouvez utiliser pour vous + assurer qu'il y a tout ce qu'il faut sur la machine de l'utilisateur. + Il y a aussi des variables prédéfinies pour les cas les + plus courants, et quelques autres pour contrôler le comportement + vis-à-vis des dépendances.</para> + + <sect4> + <title><makevar>LIB_DEPENDS</makevar></title> + + <para>Cette variable définit les bibliothèques + partagées dont dépend le logiciel à porter. + C'est une liste de tuples + <replaceable>biblothèque</replaceable>:<replaceable>répertoire</replaceable><optional><replaceable>:cible</replaceable></optional> + où <replaceable>bibliothèque</replaceable> est + le nom de la bibliothèque partagée, + <replaceable>répertoire</replaceable> est le nom du + répertoire où la trouver si elle n'est pas + encore installée et <replaceable>cible</replaceable> celui de + la cible à exécuter dans ce répertoire. Par + exemple :</para> + <programlisting> +LIB_DEPENDS= jpeg\\.9\\.:${PORTSDIR}/graphics/jpeg:install + </programlisting> + <para>cherchera une bibliothèque partagée + <literal>jpeg</literal> avec le numéro de version majeure 9 + et descendra dans le sous-répertoire + <filename>graphics/jpeg</filename> de l'arborescence du catalogue + des logiciels portés pour la compiler et l'installer, s'il ne + la trouve pas. La <replaceable>cible</replaceable> peut être + omise si elle est égale à + <makevar>DEPENDS_TARGET</makevar> (dont la valeur par défaut + est <literal>install</literal>).</para> + + <note> + <para><replaceable>bibliothèque</replaceable> est + passé en argument à + <command>ldconfig -r | grep -wF</command>. Cette variable ne doit + pas comporter d'expression régulière.</para> + </note> + + <para>La dépendance est vérifiée deux fois, une + première fois depuis la cible + <maketarget>extract</maketarget> et ensuite par la cible + <maketarget>install</maketarget>. Le nom de la dépendance est + aussi enregistré dans le paquetage de sorte que + <command>pkg_add</command> l'installe automatiquement si elle n'est + pas disponible sur le système de l'utilisateur.</para> + </sect4> + + <sect4> + <title><makevar>RUN_DEPENDS</makevar></title> + + <para>Cette variable définit quels exécutables et + fichiers doivent être présents pour pouvoir utiliser le + logiciel porté. C'est une liste de tuples + <replaceable>chemin d'accès</replaceable>:<replaceable>répertoire</replaceable><optional><replaceable>:cible</replaceable></optional> + où <replaceable>chemin d'accès</replaceable> est le + nom de l'exécutable ou du fichier, + <replaceable>répertoire</replaceable> est le + répertoire où le trouver s'il n'est pas encore + installé et <replaceable>cible</replaceable> est la cible + à exécuter dans ce répertoire. Si + <replaceable>chemin d'accès</replaceable> commence par un + “<foreignphrase>slash</foreignphrase> + (<literal>/</literal>), il est traité comme un fichier et son + existence est testée avec <command>test -e</command> ; + sinon, on suppose que c'est un exécutable, et c'est la + commande <command>which -s</command> qui est utilisée pour + voir si le programme existe dans les chemins d'accès par + défaut de l'utilisateur.</para> + + <para>Par exemple :</para> + + <programlisting> +RUN_DEPENDS= ${PREFIX}/etc/innd:${PORTSDIR}/news/inn \ + wish8.0:${PORTSDIR}/x11-toolkits/tk80</programlisting> + + <para>regardera si le fichier ou le répertoire + <filename>/usr/local/etc/innd</filename> existe, et le compilera et + l'installera dans le sous-répertoiree + <filename>news/inn</filename> de l'arborescence du catalogue des + logiciels portés s'il ne le trouve pas. Il s'assurera aussi + de la présence d'un exécutable appelé + <command>wish8.0</command> dans vos chemins d'accès par + défaut, et ira dans le sous-répertoire + <filename>x11-toolkits/tk80</filename> de l'arborescence du + catalogue des logiciels portés pour le compiler et + l'installer s'il ne le trouve pas.</para> + + <note> + <para>Dans ce cas, <command>innd</command> est en fait un + exécutable ; si un programme n'est pas à la + place normale où on s'attend à le trouver dans les + chemins d'accès par défaut de l'utilisateur, il faut + utiliser son nom complet depuis la racine.</para> + </note> + + <para>La dépendance est vérifiée par la cible + <maketarget>install</maketarget>. Le nom de la dépendance est + aussi enregistré dans le paquetage de sorte que + <command>pkg_add</command> l'installe automatiquement si elle n'est + pas disponible sur le système de l'utilisateur. La + <replaceable>cible</replaceable> peut être omise si elle est + égale à <makevar>DEPENDS_TARGET</makevar>.</para> + </sect4> + + <sect4> + <title><makevar>BUILD_DEPENDS</makevar></title> + + <para>Cette variable définit quels exécutables et + fichiers sont nécessaires pour installer le logiciel. Comme + <makevar>RUN_DEPENDS</makevar>, c'est une liste de tuples + <replaceable>chemin d'accès</replaceable>:<replaceable>répertoire</replaceable><optional><replaceable>:cible</replaceable></optional>. + Par exemple :</para> + <programlisting> +BUILD_DEPENDS= unzip:${PORTSDIR}/archivers/unzip + </programlisting> + <para>recherchera un exécutable appelé + <command>unzip</command> et ira dans le sous-répertoire + <filename>archivers/unzip</filename> de l'arborescence du + catalogue des logiciels portés pour le compiler et + l'installer s'il ne le trouve pas.</para> + + <note> + <para>“installer” recouvre ici tout le processus, de + l'extraction à la compilation. La dépendance est + vérifiée par la cible + <maketarget>extract</maketarget>. La + <replaceable>cible</replaceable> peut être omise si elle + est égale à + <makevar>DEPENDS_TARGET</makevar>.</para> + </note> + </sect4> + + <sect4> + <title><makevar>FETCH_DEPENDS</makevar></title> + + <para>Cette variable définit quels exécutables le + logiciel a besoin de récupérer. Comme les deux + précédentes, c'est une liste de tuples + <replaceable>chemin d'accès</replaceable>:<replaceable>répertoire</replaceable><optional><replaceable>:cible</replaceable></optional>. + Par exemple :</para> + <programlisting> +FETCH_DEPENDS= ncftp2:${PORTSDIR}/net/ncftp2 + </programlisting> + <para>recherchera un exécutable appelé + <command>ncftp2</command> et descendera dans le + sous-répertoire <filename>net/ncftp2</filename> de + l'arborescence du catalogue des logiciels portés pour le + compiler et l'installer s'il ne le trouve pas.</para> + + <para>La dépendance est vérifiée par la cible + <maketarget>fetch</maketarget>. La <replaceable>cible</replaceable> + peut être omise si elle est égale à + <makevar>DEPENDS_TARGET</makevar>.</para> + </sect4> + + <sect4> + <title><makevar>DEPENDS</makevar></title> + + <para>S'il y a une dépendance qui ne rentre pas dans les quatre + catégories précédentes ou si votre logiciel + à porter a besoin que les sources d'un autre logiciel soient + installés en plus de ce logiciel lui-même, + utilisez cette variable. C'est une liste de + <replaceable>répertoire</replaceable><optional><replaceable>:cible</replaceable></optional>, + puisqu'il n'y a rien à vérifier, à l'inverse + des quatre précédentes. La + <replaceable>cible</replaceable> peut être omise si elle est + égale à <makevar>DEPENDS_TARGET</makevar>.</para> + </sect4> + + <sect4> + <title>Variables prédéfinies</title> + + <para>Utilisez <literal>USE_XLIB=yes</literal> si votre logiciel + à porter a besoin que le système <application>X + Window</application> soit installé (c'est implicite avec + <makevar>USE_IMAKE</makevar>). Utilisez + <literal>USE_GMAKE=yes</literal> si votre logiciel à porter a + besoin de GNU <command>make</command> au lieu de BSD + <command>make</command>. Utilisez + <literal>USE_AUTOCONF=yes</literal> si votre logiciel à + porter a besoin que GNU <command>autoconf</command> soit + exécuté. Utilisez <literal>USE_QT=yes</literal> si + votre logiciel utilise la boîte à outils + <application>Qt</application>. Utilisez + <literal>USE_PERL5=yes</literal> si votre logiciel à porter a + besoin de la version 5 du langage perl. (Cette dernière + variable est particulièrement importante parce que certaines + versions de FreeBSD comportent perl 5 installé de base, mais + d'autres non.)</para> + </sect4> + + <sect4> + <title>Notes à propos des dépendances</title> + + <para>Comme indiqué plus haut, la cible à appeler par + défaut quand il y a un dépendance requise est + <maketarget>DEPENDS_TARGET</maketarget>. Sa valeur par défaut + est <literal>install</literal>. C'est une variable utilisateur. Elle + n'est jamais définie dans le <filename>Makefile</filename> + d'un logiciel à porter. Si votre logiciel à porter a + besoin qu'une dépendance soit gérée d'une + façon particulière, utilisez la partie + <literal>:cible</literal> des variables <makevar>*_DEPENDS</makevar> + au lieu de redéfinir + <makevar>DEPENDS_TARGET</makevar>.</para> + + <para>Quand vous tapez <command>make clean</command>, les + dépendances sont aussi purgées. Si vous ne voulez pas + qu'il en soit ainsi, définissez la variable + <makevar>NOCLEANDEPENDS</makevar> dans votre environnement.</para> + + <para>Pour dépendre sans condition d'un autre logiciel + porté, il est habituel d'utiliser l'indication + <literal>nonexistent</literal> comme premier champ de + <makevar>BUILD_DEPENDS</makevar> ou + <makevar>RUN_DEPENDS</makevar>. N'utilisez cela que si vous avez + besoin du source d'un autre logiciel porté. Vous pouvez aussi + avec cette cible économiser du temps de compilation. Par + exemple :</para> + + <programlisting> +BUILD_DEPENDS= /nonexistent:${PORTSDIR}/graphics/jpeg:extract + </programlisting> + + <para>ira toujours dans le répertoire du logiciel porté + JPEG pour l'extraire.</para> + + <para>N'utilisez <makevar>DEPENDS</makevar> que s'il n'y a pas d'autre + moyen d'obtenir ce que vous voulez. Cela provoquera toujours + la compilation (et par défaut l'installation) d'autres + logiciels portés et la dépendance sera aussi + inclue aux paquetages. Si c'est vraiment ce dont vous avez besoin, + je vous recommande d'utiliser <literal>BUILD_DEPENDS</literal> et + <literal>RUN_DEPENDS</literal> à la place—au moins + votre intention sera claire.</para> + </sect4> + </sect3> + + <sect3> + <title>Mécanismes de compilation</title> + + <para>Si votre paquetage utilise GNU <command>make</command>, + positionnez <literal>USE_GMAKE=yes</literal>. Si votre paquetage + utilise <command>configure</command>, positionnez + <literal>HAS_CONFIGURE=yes</literal>. Si votre paquetage utilise GNU + <command>configure</command>, positionnez + <literal>GNU_CONFIGURE=yes</literal> (ce qui implique + <literal>HAS_CONFIGURE</literal>). Si vous voulez passer des arguments + supplémentaires à <command>configure</command> (la liste + d'arguments par défaut est + <literal>--prefix=${PREFIX}</literal> pour GNU + <command>configure</command> et elle est vide pour les autres versions + de <command>configure</command>), définissez ces arguments + complémentaires avec la variable + <makevar>CONFIGURE_ARGS</makevar>. Si votre paquetage utilise GNU + <command>autoconf</command>, positionnez + <literal>USE_AUTOCONF=yes</literal>. Cela implique + <makevar>GNU_CONFIGURE</makevar>, et provoquera l'exécution + d'<command>autoconf</command> avant celle de + <command>configure</command>.</para> + + <para>Si votre paquetage est une application X qui génère + des <filename>Makefile</filename>s à partir + d'<filename>Imakefile</filename>s avec <command>imake</command>, + positionnez alors <literal>USE_IMAKE=yes</literal>. A l'étape + de configuration, la commande <command>xmkmf -a</command> sera + automatiquement exécutée. Si l'option + <option>-a</option> pose une problème pour votre portage, + positionnez <literal>XMKMF=xmkmf</literal>. Si le portage utilise + <command>imake</command> mais ne comprend pas la cible + <maketarget>install.man</maketarget>, il faut alors définir + <literal>NO_INSTALL_MANPAGES=yes</literal>. De plus, l'auteur + d'origine du logiciel devrait être “fusillé”. + <!-- smiley --><emphasis>:></emphasis></para> + + <para>Si le <filename>Makefile</filename> d'origine du logiciel que vous + portez utilise une autre cible principale que + <maketarget>all</maketarget>, définissez en conséquence + <makevar>ALL_TARGET</makevar>. Il en va de mê:me pour + <maketarget>install</maketarget> et + <makevar>INSTALL_TARGET</makevar>.</para> + </sect3> + </sect2> + + <sect2> + <title>Considérations particulières</title> + + <para>Il y a quelques autres points à prendre en compte lorsque + vous portez un logiciel. Cette section détaille les plus + fréquemment rencontrés.</para> + + <sect3> + <title><command>ldconfig</command></title> + + <para>Si votre portage installe une bibliothèque partagée, + ajoutez une cible <maketarget>post-install</maketarget> à votre + <filename>Makefile</filename> qui exécute + <literal>${LDCONFIG} -m</literal> sur le répertoire + où la nouvelle bibliothèque est installée + (habituellement <filename><makevar>PREFIX</makevar>/lib</filename>) + pour l'enregistrer dans le cache de bibliothèque + partagée.</para> + + <para>Ajoutez aussi une ligne <literal>@exec /sbin/ldconfig -m</literal> + et la ligne <literal>@unexec /sbin/ldconfig -R</literal> + correspondante à votre fichier <filename>pkg/PLIST</filename> + de façon à ce que l'utilisateur qui installe le + paquetage puisse utiliser immédiatement la bibliothèque + partagée et qu'à la désinstallation, le + système sache que la bibliothèque n'est plus là. + Ces lignes doivent suivre immédiatement celle qui concerne la + bibliothèque partagée elle-même, comme + dans :</para> + + <programlisting> +lib/libtvl80.so.1 +@exec /sbin/ldconfig -m %D/lib +@unexec /sbin/ldconfig -R + </programlisting> + + <para>N'ajoutez jamais, mais vraiment <emphasis>jamais</emphasis> de + ligne qui ne contienne que <literal>ldconfig</literal> sans argument + à votre <filename>Makefile</filename> ou à votre + <filename>pkg/PLIST</filename>. Cela réinitialisera le cache de + bibliothèque partagée avec le contenu de + <filename>/usr/lib</filename> uniquement, et vérolera + royalement la machine de l'utilisateur (“A l'aide, xinit ne + fonctionne plus depuis que j'ai installé ce logiciel + porté !). Quiconque commet ce crime sera fusillé + et découpé en 65.536 morceaux avec un couteau + rouillé, son foie sera déchiqueté par une bande + de corbeaux et il rôtira éternellement au tréfonds + de l'enfer (pas nécessairement dans cet ordre…)</para> + </sect3> + </sect2> + + <sect2> + <title>Support ELF</title> + + <para>Comme FreeBSD passe à ELF peu de temps aprè + 3.0-release, il faut convertir de nombreux ports qui compilent des + biblothèques partagées pour qu'ils supportent ELF. Cette + tâche est compliquée par le fait qu'un système 3.0 + peut s'exécuter à la fois en ELF et en a.out et que nous + voulons supporter la version 2.2 aussi longtemps que possible. Voici + quelques indications pour la conversion de logiciels portés a.out + pour qu'ils supportent à la fois la compilation en a.out et + ELF.</para> + + <para>Certains points cités ne s'appliquent qu'à la + conversion elle-même. Ils resteront mentionnés + néanmoins quelque temps pour le cas où vous tomberiez sur + un ancien logiciel porté que vous voulez mettre à + niveau.</para> + + <sect3> + <title>Mettre de côté les bibliothèques + a.out</title> + + <para>Les bibliothèques a.out doivent être + déplacées de <filename>/usr/local/lib</filename> et + autres vers un sous-répertoire <filename>aout</filename>. (Si + vous ne les mettez pas de côté, les logiciels + portés ELF les écraseront sans sourciller.) + La cible <maketarget>move-aout-libs</maketarget> du + <filename>src/Makefile</filename> de 3.0-current (appelé par + <maketarget>aout-to-elf</maketarget>) le fera pour vous. Elle ne + déplacera que les bibliothèques a.out, il n'y a donc pas + de risque à l'appeler sur un système où il y a + à la fois des bibliothèques ELF et a.out dans les + répertoires standard.</para> + </sect3> + + <sect3> + <title>Format</title> + + <para>L'arborescence du catalogue des logiciels portés compilera + les paquetages au format utilisé par la machine, + c'est-à-dire a.out en 2.2 et a.out ou ELF en 3.0 selon ce que + retourne la commande <command>`objformat`</command>. D'autre part, + un fois que les utilisateurs déplacent les bibliothèques + a.out dans un sous-répertoire, la compilation des + bibliothèques a.out ne sera plus supporté. (i.e., cela + peut encore marcher si vous savez ce que vous faites, mais vous devrez + vous débrouiller par vous-même.)</para> + + <note> + <para>Si un logiciel porté ne fonctionne qu'en a.out, affectez + à <makevar>BROKEN_ELF</makevar> une chaîne de + caractères qui décrive pourquoi. Ces logiciels ne + seront pas générés à la compilation sur + un système ELF.</para> + </note> + </sect3> + + <sect3> + <title><makevar>PORTOBJFORMAT</makevar></title> + + <para><filename>bsd.port.mk</filename> affectera à + <makevar>PORTOBJFORMAT</makevar> la valeur <literal>aout</literal> ou + <literal>elf</literal> et l'exportera dans les environnements + <envar>CONFIGURE_ENV</envar>, <envar>SCRIPTS_ENV</envar> et + <envar>MAKE_ENV</envar>. (Ce sera toujours + <literal>aout</literal> sous 2.2-STABLE). Elle est aussi passée + à <maketarget>PLIST_SUB</maketarget> sous la forme + <literal>PORTOBJFORMAT=${PORTOBJFORMAT}</literal>. (Reportez-vous aux + explications concernant <literal>ldconfig</literal> plus bas.)</para> + + <para>Cette variable est définie par la ligne suivante de + <filename>bsd.port.mk</filename> :</para> + + <programlisting> +PORTOBJFORMAT!= test -x /usr/bin/objformat && /usr/bin/objformat || echo aout</programlisting> + + <para>Le processus de compilation des logiciels portés devrait + toujours utiliser cette variable pour décider de ce qu'il faut + faire. Cependant, si la procédure + <filename>configure</filename> associée + détecte déjà automatiquement un système + ELF, il n'est pas nécessaire de se référer + à <makevar>PORTOBJFORMAT</makevar>.</para> + </sect3> + + <sect3> + <title>Compilation des bibliothèques partagées</title> + + <para>Ce qui suit décrit les différences de gestion des + bibliothèques partagées entre les formats ELF et + a.out.</para> + + <itemizedlist> + <listitem> + <para>Versions de bibliothèques partagées</para> + + <para>Une bibliothèque partagée ELF doit s'appeler + <filename>libfoo.so.<replaceable>M</replaceable></filename>, + où <replaceable>M</replaceable> est un unique numéro + de version et une bibliothèque partagée a.out doit + s'appeler + <filename>libfoo.so.<replaceable>M</replaceable>.<replaceable>N</replaceable></filename>, + où <replaceable>M</replaceable> est le numéro de + version majeure et + <replaceable>N</replaceable> celui de version mineure. + Ne confondez pas ; n'installez <emphasis>jamais</emphasis> de + bibliothèque partagée ELF appelée + <filename>libfoo.so.<replaceable>N</replaceable>.<replaceable>M</replaceable></filename> + ou de bibliothèque partagée A.out (ou de lien + symbolique dessus) appelée + <filename>libfoo.so.<replaceable>N</replaceable></filename>.</para> + </listitem> + + <listitem> + <para>Ligne de commande de l'éditeur de liens</para> + + <para>En supposant que <command>cc -shared</command> + soit utilisé plutôt que <command>ld</command> + directement, la seule différence est qu'il faut ajouter + <option>-Wl,-<replaceable>soname,libfoo.so.M</replaceable></option> + sur la ligne de commande pour ELF.</para> + </listitem> + </itemizedlist> + + <para>Il faut définir un lien symbolique de + <filename>libfoo.so</filename> vers + <filename>libfoo.so.<replaceable>N</replaceable></filename> pour que + les éditeurs de liens ELF s'y retrouvent. Comme il doit + être aussi mentionné dans + <filename>PLIST</filename>, cela ne posera pas de problème dans + le cas de a.out (pour certains logiciels portés, il faut + même que ce lien existe pour l'édition de liens + dynamiques), vous devriez définir ce lien quelle que soit la + valeur de la variable <makevar>PORTOBJFORMAT</makevar>.</para> + </sect3> + + <sect3> + <title><makevar>LIB_DEPENDS</makevar></title> + + <para>Tous les <filename>Makefile</filename>s des logiciels + portés sont à modifier pour supprimer les numéros + de versions mineures de <makevar>LIB_DEPENDS</makevar>, ainsi que le + support des expressions réqulières (e.g., + <literal>foo\\.1\\.\\(33|40\\)</literal> devient + <literal>foo.2</literal>.) La correspondance sera effectuée par + <command>grep -wF</command>.</para> + </sect3> + + <sect3> + <title><filename>PLIST</filename></title> + + <para><filename>PLIST</filename> doit contenir les noms courts (ELF) des + bibliothèques partagées si leur numéro de version + mineure a.out est zéro et les noms longs (a.out) dans le cas + contraire. <filename>bsd.port.mk</filename> ajoutera automatiquement + le <literal>.0</literal> à la fin des noms courts de + bibliothèques partagées si + <makevar>PORTOBJFORMAT</makevar> vaut <literal>aout</literal>, et + supprimera le numéro de version mineure des noms longs si + <makevar>PORTOBJFORMAT</makevar> vaut <literal>elf</literal>.</para> + + <para>Au cas où vous auriez vraiment besoin d'installer des + bibliothèques partagées avec deux numéros de + version sur un système ELF ou avec un seul numéro de + version sur un système a.out (par exemple, pour les logiciels + portés qui installent des bibliothèques pour la + compatibilité avec d'autres systèmes d'exploitation), + définissez la variable <makevar>NO_FILTER_SHLIBS</makevar>. + Cela inhibera le mécanisme de modification de + <filename>PLIST</filename> décrit au paragraphe + précédent.</para> + </sect3> + + <sect3> + <title><literal>ldconfig</literal></title> + + <para>La ligne <literal>ldconfig</literal> des + <filename>Makefile</filename>s doit contenir :</para> + + <programlisting> +${SETENV} OBJFORMAT=${PORTOBJFORMAT} ${LDCONFIG} -m .... + </programlisting> + + <para>Dans <filename>PLIST</filename>, il doit y avoir :</para> + + <programlisting> +@exec /usr/bin/env OBJFORMAT=%%PORTOBJFORMAT%% /sbin/ldconfig -m ... +@unexec /usr/bin/env OBJFORMAT=%%PORTOBJFORMAT%% /sbin/ldconfig -R + </programlisting> + + <para>Cela pour garantir que la bonne commande + <command>ldconfig</command> sera appelée en fonction du format + du paquetage et non du format par défaut sur le + système.</para> + </sect3> + </sect2> + + <sect2 id="porting-masterdir"> + <title><makevar>MASTERDIR</makevar></title> + + <para>Si votre logiciel porté a besoin de générer des + versions légèrement différentes des paquetages en + fonction de la valeur d'une variable (la résolution ou le format + de page par exemple), créez un sous-répertoire par + paquetage pour qu'il soit plus facile aux utilisateurs de savoir quoi + faire, mais essayez de partager autant de fichiers que possible entre + logiciels portés. Vous aurez normalement besoin d'un + <filename>Makefile</filename> très court dans tous les + sous-répertoires à l'exception d'un seul. Dans ces + <filename>Makefile</filename>s, vous pouvez utiliser la variable + <makevar>MASTERDIR</makevar> pour indiquer le répertoire + où se trouvent le reste des fichiers. Utilisez aussi une variable + pour une partie de + <link linkend="porting-pkgname"><makevar>PKGNAME</makevar></link> de + façon à ce que les paquetages aient des noms + différents.</para> + + <para>Cela sera plus clair avec un exemple. C'est un extrait de + <filename>japanese/xdvi300/Makefile</filename> :</para> + + <programlisting> +PKGNAME= ja-xdvi${RESOLUTION}-17 + : +# default +RESOLUTION?= 300 +.if ${RESOLUTION} != 118 && ${RESOLUTION} != 240 && \ + ${RESOLUTION} != 300 && ${RESOLUTION} != 400 + @${ECHO} "Erreur: valeur incorrecte pour RESOLUTION: \"${RESOLUTION}\"" + @${ECHO} "Les valeurs acceptables sont : 118, 240, 300 (par défaut) et 400." + @${FALSE} +.endif</programlisting> + + <para><filename>japanese/xdvi300</filename> contient aussi les fichiers + de “<foreignphrase>patches</foreignphrase>”, paquetages, + etc. Si vous y tapez <command>make</command>, la valeur de la + résolution sera prise par défaut (300) et le logiciel + porté compilera normalement.</para> + + <para>Poue les autres résolutions, voici le + <filename>xdvi118/Makefile</filename> + <emphasis>complet</emphasis> :</para> + + <programlisting> +RESOLUTION= 118 +MASTERDIR= ${.CURDIR}/../xdvi300 + +.include ${MASTERDIR}/Makefile + </programlisting> + + <para>(<filename>xdvi240/Makefile</filename> et + <filename>xdvi400/Makefile</filename> sont identiques). La + définition de <makevar>MASTERDIR</makevar> dit à + <filename>bsd.port.mk</filename> que le jeu de sous-répertoires + habituels tels que <makevar>PATCHDIR</makevar> et + <makevar>PKGDIR</makevar> se trouvent dans + <filename>xdvi300</filename>. La ligne <literal>RESOLUTION=118</literal> + surchargera la ligne <literal>RESOLUTION=300</literal> de + <filename>xdvi300/Makefile</filename> et le logiciel porté sera + compilé avec une résolution de 118.</para> + </sect2> + + <sect2> + <title>Versions des biblothèques partagées</title> + + <para>Lisez tout d'abord s'il vous plaît nos + <link linkend="policies-shlib">Instructions à propos des versions + de bibliothèques partagées</link> pour savoir comment + gérer de façon générale les versions de + bibliothèques. Ne supposez pas aveuglement que les auteurs des + logiciels savent ce qu'ils font; ce n'est, la plupart du temps, pas le + cas. Il est très important que ces détails soient + attentivement examinés, parce que nous nous trouvons dans une + situation assez particulière dans laquelle nous devons faire + cohabiter des douzaines de logiciels potentiellement incompatibles. + Les importations à la va-vite de logiciels ont posé dans + le passé de gros problèmes en ce qui concerne les + bibliothèques partagées (vous êtes vous jamais + demandé pourquoi le numéro de version de la + bibliothèque partagée <filename>jpeg-6b</filename> + était 0.9?). En cas de doute, envoyez un message à + &a.ports;. La plupart du temps, votre tâche se limitera à + déterminer la bonne version de bibliothèque + partagée et à appliquer les bonnes mises à + niveau - <foreignphrase>patches</foreignphrase> - pour + l'implémenter.</para> + + <para>Néanmoins, s'il y a une bibliothèque portée qui + n'est qu'une même version de la même bibliothèque + partagée déjà présente au catalogue, la + situation est beaucoup plus complexe. Brièvement, + l'implémentation sous FreeBSD ne permet pas à + l'utilisateur de préciser à l'éditeur de liens avec + quelle version de bibliothèque partagée effectuer + l'édition de liens (l'éditeur de liens choisira toujours + le numéro de version le plus élevé). Cela signifie + que, s'il y a sur le système une + <filename>libfoo.so.3.2</filename> et une + <filename>libfoo.so.4.0</filename>, il n'y a aucun moyen de dire + à l'éditeur de liens qu'une application donnée + doit être liée avec <filename>libfoo.so.3.2</filename>. + c'est totalement masqué au moment de l'édition de liens. + Dans ce cas, il n'y a qu'une seule solution, renommer la + <emphasis>base</emphasis> du nom de la bibliothèque + partagée. Par exemple, modifier + <filename>libfoo.so.4.0</filename> en + <filename>libfoo4.so.1.0</filename> pour que les versions 3.2 et 4.0 + puissent être liées avec d'autres logiciels + portées.</para> + </sect2> + + <sect2 id="porting-manpages"> + <title>Pages de manuel</title> + + <para>Les variables <makevar>MAN[1-9LN]</makevar> ajouteront + automatiquement toutes les pages de manuel à + <filename>pkg/PLIST</filename> (cela signifie que vous ne devez + <emphasis>pas</emphasis> lister les pages de manuel dans + <filename>PLIST</filename>—reportez-vous à la section + <link linkend="porting-plist">Modifier <filename>PLIST</filename> sur + la base des variables du <literal>make</literal></link> pour plus de + détails). Cela provoquera aussi la compression ou la + décompression de pages de manuel selon le contenu de la variable + <makevar>NOMANCOMPRESS</makevar> dans + <filename>/etc/make.conf</filename>.</para> + + <para>Pour indiquer si les pages de manuel doivent être + compressées à l'installation, utilisez la variable + <makevar>MANCOMPRESSED</makevar>. Cette variable peut prendre trois + valeurs, <literal>yes</literal>, <literal>no</literal> et + <literal>maybe</literal>. <literal>yes</literal> signifie que les pages + de manuel sont installées déjà compressées, + <literal>no</literal> signifie qu'elles ne le sont pas, et + <literal>maybe</literal> signifie que le logiciel s'aligne toujours sur + la valeur de <makevar>NOMANCOMPRESS</makevar> de sorte que + <filename>bsd.port.mk</filename> n'a rien à faire de + spécial.</para> + + <para><makevar>MANCOMPRESSED</makevar> est automatiquement définie + à <literal>yes</literal> si <makevar>USE_IMAKE</makevar> est + définie et que <makevar>NO_INSTALL_MANPAGES</makevar> ne l'est + pas, et à <literal>no</literal> sinon. Vous n'avez pas à + la définir explicitement, à moins que la valeur par + défaut ne convienne pas à votre logiciel à + porter.</para> + + <para>Si votre logiciel à porter installe ses pages de manuel + ailleurs que dans <makevar>PREFIX</makevar>, vous pouvez utiliser + <makevar>MANPREFIX</makevar> pour l'indiquer. Si ce sont seulement + certaines pages de manuel qui ne doivent pas être + installées dans le répertoire habituel, comme c'est le + cas pour certains modules portés Perl, vous pouvez définir + des répertoires individualisés pour les pages de manuel + avec <makevar>MAN<replaceable>section</replaceable>PREFIX</makevar> + (où <replaceable>sect</replaceable> est une valeur de + <literal>1-9</literal>, ou <literal>L</literal> ou + <literal>N</literal>).</para> + + <para>Si vos pages de manuel vont dans des sous-répertoires + dépendant de la langue, définissez les noms de ces langues + dans <makevar>MANLANG</makevar>. La valeur par défaut de cette + variable est <literal>""</literal> (i.e., Anglais seulement).</para> + + <para>Voici un exemple qui rassemble tout cela :</para> + + <programlisting> +MAN1= foo.1 +MAN3= bar.3 +MAN4= baz.4 +MANLANG= "" ja +MAN3PREFIX= ${PREFIX}/share/foobar +MANCOMPRESSED= yes</programlisting> + + <para>Ce qui veut dire que six fichiers sont installés par ce + logiciel porté :</para> + + <programlisting> +${PREFIX}/man/man1/foo.1.gz +${PREFIX}/man/ja/man1/foo.1.gz +${PREFIX}/share/foobar/man/man3/bar.3.gz +${PREFIX}/share/foobar/man/ja/man3/bar.3.gz +${PREFIX}/man/man4/baz.4.gz +${PREFIX}/man/ja/man4/baz.4.gz</programlisting> + </sect2> + + <sect2> + <title>Les logiciels portés qui ont besoin de Motif</title> + + <para>Il y a de nombreux programmes qui ont besoin d'une bibliothèque + Motif pour compiler (disponible auprès de plusieurs distributeurs + commerciaux, et dont il existe un clone libre, qui est capable de faire + fonctionner pas mal d'applications, dans + <filename>x11-toolkits/lesstif</filename>). Comme c'est un boîte + à outils très utilisée et que ses licences + autorisent habituellement la redistribution de binaires si la + bibliothèque est liée statiquement, nous avons + prévu un mécanisme pour gérer les logiciels + portés qui ont besoin de Motif de façon à pouvoir + facilement compiler des binaires soit liés dynamiquement (pour + ceux qui utilisent le catalogue des logiciels portés) ou + statiquement (pour ceux qui distribuent des paquetages).</para> + + <sect3> + <title><makevar>REQUIRES_MOTIF</makevar></title> + + <para>Si votre logiciel à porter a besoin de Motif, + définissez cette variable dans le + <filename>Makefile</filename>. cela empéchera que ceux qui + ne disposent pas de Motif puissent ne serait-ce qu'essayer de + compiler votre logiciel.</para> + </sect3> + + <sect3> + <title><makevar>MOTIFLIB</makevar></title> + + <para>Cette variable sera définie par + <filename>bsd.port.mk</filename> pour référencer la + version appropriée de la bibliothèque Motif. Ajoutez + s'il vous plaît un + correctif - <foreignphrase>patch</foreignphrase> - au + source pour qu'il utilise cette variable chaque fois que la + bibliothèque Motif est référencé dans le + <filename>Makefile</filename> ou le + <filename>Imakefile</filename>.</para> + + <para>Il y a deux cas de figure courants :</para> + + <itemizedlist> + <listitem> + <para>Si le logiciel à porter désigne la + bibliothèque Motif avec <literal>-lXm</literal> dans son + <filename>Makefile</filename> ou <filename>Imakefile</filename>, + remplacez-le simplement par + <literal>${MOTIFLIB}</literal>,</para> + </listitem> + + <listitem> + <para>Si le logiciel à porter utilise + <literal>XmClientLibs</literal> dans son + <filename>Imakefile</filename>, remplacez-le par + <literal>${MOTIFLIB} ${XTOOLLIB} + ${XLIB}</literal>.</para> + </listitem> + </itemizedlist> + + <para>Remarquez que la variable <makevar>MOTIFLIB</makevar> est + (habituellement) remplacée par + <literal>-L/usr/X11R6/lib -lXm</literal> ou + <literal>/usr/X11R6/lib/libXm.a</literal>, il n'y a donc pas besoin + d'y inclure le <literal>-L</literal> ou <literal>-l</literal>.</para> + </sect3> + </sect2> + + <sect2> + <title>Polices X11</title> + + <para>Si votre logiciel à porter installe des polices de + caractères pour le Système X Window, mettez-les dans + <filename><makevar>X11BASE</makevar>/lib/X11/fonts/local</filename>. + Ce répertoire est une nouveauté de XFree86 version 3.3.3. + S'il n'existe pas, créez-le s'il vous plaît et + émettez un message pour suggérer à l'utilisateur de passer à la version 3.3.3, ou ultérieure, de XFree86, ou + ajoutez au moins ce répertoire aux chemins d'accès aux + polices de caractères dans + <filename>/etc/XF86Config</filename>.</para> + </sect2> + + <sect2> + <title>Fichiers “Info”</title> + + <para>La nouvelle version de <application>texinfo</application> (depuis + 2.2.2-RELEASE) comporte un utilitaire appelé + <command>install-info</command> pour ajouter ou supprimer des + entrées dans le fichier <filename>dir</filename>. Si votre + logiciel à porter installe des documents “info”, + suivez s'il vous plaît les instructions ci-dessous pour que votre + logiciel porté/précompilé mette correctement + à jour le fichier + <filename><makevar>PREFIX</makevar>/info/dir</filename> de + l'utilisateur. (Excusez-moi de la longueur de cette section, mais il + est impératif d'assembler correctement ensemble tous les fichiers + “info;”. Si c'est proprement fait, il en résultera + une <emphasis>belle</emphasis> édition, accordez-moi donc s'il + vous plaît votre attention.)</para> + + <para>Voici ce que vous devez en premier lieu savoir (pour porter un + logiciel) :<footnote><para>Traduction :</para> + <screen>&prompt.user; <userinput>install-info --help</userinput> +install-info [OPTION]... [INFO-FILE [DIR-FILE]] + Installe INFO-FILE dans le répertoire “Info” DIR-FILE. + +Options: +--delete supprime les entrées existantes dans INFO-FILE; + n'insère aucune nouvelle entrée. + : +--entry=TEXT Insère un entrée pour le répertoire “Info;”. + : +--section=SEC Ajoute les entrées de ce fichier à la section SEC de ce répertoire. :</screen></footnote></para> + + <screen>&prompt.user; <userinput>install-info --help</userinput> +install-info [OPTION]... [INFO-FILE [DIR-FILE]] + Install INFO-FILE in the Info directory file DIR-FILE. + +Options: +--delete Delete existing entries in INFO-FILE; + don't insert any new entries. + : +--entry=TEXT Insert TEXT as an Info directory entry. + : +--section=SEC Put this file's entries in section SEC of the directory. :</screen> + + <note> + <para>Ce programme n'installe en fait <emphasis>pas</emphasis> de + fichiers “info”; il ne fait qu'insérer ou supprimer + des entrées au fichier <filename>dir</filename>.</para> + </note> + + <para>Voici une procédure en sept étapes pour adapter les + logiciels à porter pour qu'ils utilisent + <command>install-info</command>. Je prendrais comme exemple + <filename>editors/emacs</filename> :</para> + + <procedure> + <step> + <para>Consultez les sources <application>texinfo</application> et + construisez un fichier de mise à jour qui insère + des instructions <literal>@dircategory</literal> et + <literal>@direntry</literal> aux fichiers où il n'y en a pas. + Voici un extrait de mon + “<foreignphrase>patch</foreignphrase>” :</para> + + <programlisting> +--- ./man/vip.texi.org Fri Jun 16 15:31:11 1995 ++++ ./man/vip.texi Tue May 20 01:28:33 1997 +@@ -2,6 +2,10 @@ + + @setfilename ../info/vip + @settitle VIP ++@dircategory The Emacs editor and associated tools ++@direntry ++* VIP: (vip). A VI-emulation for Emacs. ++@end direntry + + @iftex + @finalout + : + </programlisting> + + <para>Cela doit pouvoir se passer d'explications. De nombreux auteurs + mettent dans leur arborescence des sources un fichier + <filename>dir</filename> qui contient toutes les entrées dont + vous avez besoin, regardez donc à droite et à gauche + avant de le créer vous-même. Veillez aussi à + consulter les entrées pour les logiciels en rapport avec le + voˆtre, pour que vos noms de sections et indentations soient en + cohérence (nous recommandons de mettre les libellés + après la quatrième position de tabulation).</para> + + <note> + <para>Remarquez que vous ne pouvez mettre qu'une entrée + “info” par fichier, à cause d'un bogue + dans <command>install-info --delete</command>, qui ne supprime + que la première entrée de la section + <literal>@direntry</literal> si vous en indiquez plusieurs.</para> + </note> + + <para>Vous pouvez donner les entrées <literal>dir</literal> + comme arguments à <command>install-info</command> + (<option>--section</option> et <option>--entry</option>) au lieu de + rectifier les sources de <application>texinfo</application>. Je ne + trouve pas que cela soit une bonne idée parce que vous devez + répéter la même information à trois + endroits différents (<filename>Makefile</filename> et + <literal>@exec</literal>/<literal>@unexec</literal> de + <filename>PLIST</filename>; voyez plus bas). Néanmoins, si + vous avez des fichiers “info” en Japonais (ou + codés sur plusieurs octets), vous devrez utiliser les + paramètres supplémentaires + d'<command>install-info</command> parce que + <command>makeinfo</command> ne sait pas gérer ces sources + <application>texinfo</application>. (Consultez le + <filename>Makefile</filename> et <filename>PLIST</filename> de + <filename>japanese/skk</filename> pour avoir un exemple de la + manière de procéder.)</para> + </step> + + <step> + <para>Retournez dans le répertoire de votre logiciel + porté, faites un <command>make clean; make</command> et + vérifiez que les fichiers “info” sont + régénérés à partir des sources + <application>texinfo</application>. Comme ces derniers sont plus + récents que les fichiers “info”, ils doivent + être reconstruits par le <command>make</command>; mais de + nombreux <filename>Makefile</filename>s ne comportent pas les + dépendances correctes pour les fichiers “info”. + Dans le cas d'<command>emacs</command>, j'ai dû rectifier le + <filename>Makefile.in</filename> principal pour qu'il aille dans le + sous-répertoire <filename>man</filename> pour reconstruire + les pages “info” :</para> + + <programlisting> +--- ./Makefile.in.org Mon Aug 19 21:12:19 1996 ++++ ./Makefile.in Tue Apr 15 00:15:28 1997 +@@ -184,7 +184,7 @@ + # Sous-répertoires à reconstruire récursivement. `lisp' n'est pas inclus + # parce que les fichiers lisp compilés font partie de la distribution + # et que vous ne pouvez pas les recompiler sans installer d'abord Emacs +-SUBDIR = lib-src src ++SUBDIR = lib-src src man + + # makefile des sous-répertoires listés dans $SUBDIR. + SUBDIR_MAKEFILES = lib-src/Makefile man/Makefile src/Makefile oldXMenu/Makefile lwlib/Makefile +--- ./man/Makefile.in.org Thu Jun 27 15:27:19 1996 ++++ ./man/Makefile.in Tue Apr 15 00:29:52 1997 +@@ -66,6 +66,7 @@ + ${srcdir}/gnu1.texi \ + ${srcdir}/glossary.texi + ++all: info + info: $(INFO_TARGETS) + + dvi: $(DVI_TARGETS) + </programlisting> + + <para>La deuxième modification est nécessaire parce que + la cible par défaut dans le sous-répertoire + <filename>man</filename> s'appelle <maketarget>info</maketarget>, + alors que le <filename>Makefile</filename> veut exécuter la + cible <maketarget>all</maketarget>. J'ai aussi supprimé + l'installation du fichier “info” parce que nous en + avons déjà un de même nom dans + <filename>/usr/share/info</filename> (cette correction + n'apparaît pas dans l'exemple).</para> + </step> + + <step> + <para>Si le fichier <filename>dir</filename> est installé par + des instructions quelque part dans le <filename>Makefile</filename>, + supprimez-les. Votre logiciel à porter ne doit pas le faire. + Supprimez aussi toutes les autres commandes qui + “saliraient” le fichier <filename>dir</filename>.</para> + + <programlisting> +--- ./Makefile.in.org Mon Aug 19 21:12:19 1996 ++++ ./Makefile.in Mon Apr 14 23:38:07 1997 +@@ -368,14 +368,8 @@ + if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd ${infodir} && /bin/pwd)` ]; \ + then \ + (cd ${infodir}; \ +- if [ -f dir ]; then \ +- if [ ! -f dir.old ]; then mv -f dir dir.old; \ +- else mv -f dir dir.bak; fi; \ +- fi; \ + cd ${srcdir}/info ; \ +- (cd $${thisdir}; ${INSTALL_DATA} ${srcdir}/info/dir ${infodir}/dir); \ +- (cd $${thisdir}; chmod a+r ${infodir}/dir); \ + for f in ccmode* cl* dired-x* ediff* emacs* forms* gnus* info* message* mh-e* sc* vip*; do \ + (cd $${thisdir}; \ + ${INSTALL_DATA} ${srcdir}/info/$$f ${infodir}/$$f; \ + chmod a+r ${infodir}/$$f); \ + </programlisting> + </step> + + <step> + <para>(Cette étape n'est nécessaire que si vous modifiez + un logiciel porté déjà existant.) Consultez + <filename>pkg/PLIST</filename> et supprimez tout ce qui essaye + d'appliquer des rectificatifs à + <filename>info/dir</filename>. Cela peut se produire dans + <filename>pkg/INSTALL</filename> ou un autre fichier, faites donc + une recherche détaillée :</para> + + <programlisting> +Index: pkg/PLIST +=================================================================== +RCS file: /usr/cvs/ports/editors/emacs/pkg/PLIST,v +retrieving revision 1.15 +diff -u -r1.15 PLIST +--- PLIST 1997/03/04 08:04:00 1.15 ++++ PLIST 1997/04/15 06:32:12 +@@ -15,9 +15,6 @@ + man/man1/emacs.1.gz + man/man1/etags.1.gz + man/man1/ctags.1.gz +-@unexec cp %D/info/dir %D/info/dir.bak +-info/dir +-@unexec cp %D/info/dir.bak %D/info/dir + info/cl + info/cl-1 + info/cl-2 + </programlisting> + </step> + + <step> + <para>Ajoutez une cible <maketarget>post-install</maketarget> au + <filename>Makefile</filename> pour créer un fichier + <filename>dir</filename> s'il n'y en a pas. Appelez aussi + <maketarget>install-info</maketarget> pour les fichiers + “info” installés :</para> + + <programlisting> +Index: Makefile +=================================================================== +RCS file: /usr/cvs/ports/editors/emacs/Makefile,v +retrieving revision 1.26 +diff -u -r1.26 Makefile +--- Makefile 1996/11/19 13:14:40 1.26 ++++ Makefile 1997/05/20 10:25:09 1.28 +@@ -20,5 +20,11 @@ + post-install: + .for file in emacs-19.34 emacsclient etags ctags b2m + strip ${PREFIX}/bin/${file} + .endfor ++ if [ ! -f ${PREFIX}/info/dir ]; then \ ++ ${SED} -ne '1,/Menu:/p' /usr/share/info/dir > ${PREFIX}/info/dir; \ ++ fi ++.for info in emacs vip viper forms gnus mh-e cl sc dired-x ediff ccmode ++ install-info ${PREFIX}/info/${info} ${PREFIX}/info/dir ++.endfor + + .include <bsd.port.mk> + </programlisting> + + <para>N'utilisez rien d'autre que + <filename>/usr/share/info/dir</filename> et la commande ci-dessus + pour créer un nouveau fichier “info”. J'ai en + fait ajouté les trois premières lignes du rectificatif + ci-dessus à <filename>bsd.port.mk</filename> pour le cas + o` vous ne l'auriez pas fait par vous-même dans + <filename>PLIST</filename>.</para> + </step> + + <step> + <para>Editez <filename>PLIST</filename> et ajoutez les instructions + <literal>@exec</literal> ainsi que <literal>@unexec</literal> + équivalentes pour <command>pkg_delete</command>. Vous n'avez + pas besoin de supprimer <filename>info/dir</filename> avec + <literal>@unexec</literal> :</para> + + <programlisting> +Index: pkg/PLIST +=================================================================== +RCS file: /usr/cvs/ports/editors/emacs/pkg/PLIST,v +retrieving revision 1.15 +diff -u -r1.15 PLIST +--- PLIST 1997/03/04 08:04:00 1.15 ++++ PLIST 1997/05/20 10:25:12 1.17 +@@ -16,7 +14,15 @@ + man/man1/etags.1.gz + man/man1/ctags.1.gz ++@unexec install-info --delete %D/info/emacs %D/info/dir + : ++@unexec install-info --delete %D/info/ccmode %D/info/dir + info/cl + info/cl-1 +@@ -87,6 +94,18 @@ + info/viper-3 + info/viper-4 ++@exec [ -f %D/info/dir ] || sed -ne '1,/Menu:/p' /usr/share/info/dir > %D/info/dir ++@exec install-info %D/info/emacs %D/info/dir + : ++@exec install-info %D/info/ccmode %D/info/dir + libexec/emacs/19.34/i386--freebsd/cvtmail + libexec/emacs/19.34/i386--freebsd/digest-doc + </programlisting> + + <note> + <para>Les commandes <literal>@unexec install-info --delete</literal> + doivent être placées avant les fichiers + “info” eux-mêmes pour qu'elles puissent lire + les fichiers. Il faut aussi placer les commandes + <literal>@exec install-info</literal> après les fichiers + “info” et la commande <literal>@exec</literal> qui + crée le fichier <filename>dir</filename> file.</para> + </note> + </step> + + <step> + <para><link linkend="porting-testing">Testez</link> et admirez votre + oeuvre. <!-- smiley --><emphasis>:)</emphasis>. Vérifiez le + fichier <filename>dir</filename> avant et après chaque + étape.</para> + </step> + </procedure> + </sect2> + + <sect2> + <title>Le sous répertoire <filename>pkg/</filename></title> + + <para>Il y a quelques astuces dont je n'ai pas encore parlé + à propos du sous-répertoire <filename>pkg/</filename> qui + sont parfois utiles.</para> + + <sect3 id="porting-message"> + <title><filename>MESSAGE</filename></title> + + <para>Si vous avez besoin d'afficher un message lors de l'installation, + vous pouvez le mettre dans <filename>pkg/MESSAGE</filename>. Cette + fonctionnalité sert souvent à informer des étapes + d'installation qui doivent être effectuées après + <command>pkg_add</command> ou pour afficher des informations à + propos de la licence.</para> + + <note> + <para>Il n'y a pas besoin d'ajouter le fichier + <filename>pkg/MESSAGE</filename> à + <filename>pkg/PLIST</filename>. D'autre part, il ne sera pas + affiché automatiquement si l'utilisateur installe le logiciel + porté au lieu du logiciel précompilé, vous + devriez donc probablement l'afficher vous-même depuis la cible + <maketarget>post-install</maketarget>.</para> + </note> + </sect3> + + <sect3> + <title><filename>INSTALL</filename></title> + + <para>S'il faut exécuter des commandes lors de l'installation du + logiciel précompilé avec <command>pkg_add</command>, + vous pouvez le faire avec la procédure + <filename>pkg/INSTALL</filename>. Cette procédure sera + automatiquement ajoutée au paquetage et exécutée + deux fois par <command>pkg_add</command>. La première fois sous + la forme <literal>INSTALL ${PKGNAME} PRE-INSTALL</literal> et + la seconde fois sous la forme + <literal>INSTALL ${PKGNAME} POST-INSTALL</literal>. Vous pouvez + tester <literal>$2</literal> pour savoir comment la + procédure a été appelée. La variable + d'environnement <envar>PKG_PREFIX</envar> contient le chemin + d'accès au répertoire d'installation du logiciel. + Reportez-vous aux pages de manuel de &man.pkg.add.1; pour plus + d'informations.</para> + + <note> + <para>Cette procédure n'est pas exécutée + automatiquement si le logiciel porté est installé avec + <command>make install</command>. Si vous avez besoin qu'elle le + soit, vous devrez l'appeler explicitement depuis le + <filename>Makefile</filename> du logiciel porté.</para> + </note> + </sect3> + + <sect3> + <title><filename>REQ</filename></title> + + <para>Si votre logiciel à porter doit déterminer s'il doit + être installé ou non, vous pouvez créer une + procédure + <filename>pkg/REQ</filename> - “requis”. Elle + sera appelée automatiquement lors de l'installation et de la + désinstallation pour décider s'il faut ou non effectuer + l'opération.</para> + </sect3> + + <sect3 id="porting-plist"> + <title>Modifier <filename>PLIST</filename> sur la base de variables + du <command>make</command></title> + + <para>Certains logiciels portés, en particulier les logiciels + <literal>p5-...</literal>, doivent modifier leur + <filename>PLIST</filename> selon les options avec lesquelles ils sont + configurés (ou la version de perl, dans le cas des logiciels + <literal>p5-...</literal>). Pour rendre les choses plus faciles, + toutes les occurrences de <literal>%%OSREL%%</literal>, + <literal>%%PERL_VER%%</literal> et <literal>%%PERL_VERSION%%</literal> + dans la <filename>PLIST</filename> seront remplacées par les + valeurs appropriées. La valeur de <literal>%%OSREL%%</literal> + est le numéro de version du système d'exploitation + (e.g., <literal>2.2.7</literal>). <literal>%%PERL_VERSION%%</literal> + est le numéro de version complet de perl (e.g., + <literal>5.00502</literal>) et <literal>%%PERL_VER%%</literal> est le + numéro de version de perl, sans le niveau de + “<foreignphrase>patch</foreignphrase>” (e.g., + <literal>5.005</literal>).</para> + + <para>Si vous avez besoin d'autres substitutions, vous pouvez renseigner + la variable <makevar>PLIST_SUB</makevar> avec une liste de doublets + <literal><replaceable>VAR</replaceable>=<replaceable>VALUE</replaceable></literal> + et toutes les occurrences de + <literal>%%<replaceable>VAR</replaceable>%%</literal> seront + remplacées par <replaceable>VALUE</replaceable> dans la + <filename>PLIST</filename>.</para> + + <para>Par exemple, si votre logiciel à porter installe de + nombreux fichiers dans un sous-répertoire différent + selon la version, vous pouvez mettre quelque chose comme :</para> + + <programlisting> +OCTAVE_VERSION= 2.0.13 +PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION} + </programlisting> + + <para>dans le <filename>Makefile</filename> et utiliser + <literal>%%OCTAVE_VERSION%%</literal> chaque fois que la version + apparaît dans la <filename>PLIST</filename>. De cette + façon, lorsque vous mettez à jour le logiciel, vous + n'aurez pas à modifier des douzaines (dans certains cas, des + centaines) de lignes dans la <filename>PLIST</filename>.</para> + + <para>Cette substitution (de même que l'ajout des + <link linkend="porting-manpages">pages de manuel</link>) est faite + entre les cibles <maketarget>do-install</maketarget> et + <maketarget>post-install</maketarget>, en lisant + <makevar>PLIST</makevar> et en écrivant dans + <makevar>TMPPLIST</makevar> (par défaut : + <filename><makevar>WRKDIR</makevar>/.PLIST.mktmp</filename>). Si votre + logiciel à porter construit <makevar>PLIST</makevar> à + la volée, faites-le alors dans ou avant + <maketarget>do-install</maketarget>. De plus, si votre logiciel a + besoin de modifier le fichier obtenu, faites-le dans + <maketarget>post-install</maketarget> et dans un fichier appelé + <makevar>TMPPLIST</makevar>.</para> + </sect3> + + <sect3> + <title id="porting-pkgsubdir">Changer les noms des fichiers du + sous-répertoire <filename>pkg</filename></title> + + <para>Tous les noms de fichier du sous-répertoire + <filename>pkg</filename> sont définis par des variables, vous + pouvez donc les changer dans votre <filename>Makefile</filename> si + besoin est. C'est particulièrement utile si vous partager le + même sous-répertoire <filename>pkg</filename> entre + plusieurs logiciels portés ou devez écrire dans l'un + de ces fichiers (voyez la section + <link linkend="porting-wrkdir">Ecrire ailleurs que dans + <makevar>WRKDIR</makevar></link> pour savoir pourquoi c'est une + mauvaise idée d'écrire directement dans le + sous-répertoire <filename>pkg</filename>.</para> + + <para>Voici la liste de ces variables et leurs valeurs par + défaut :</para> + + <informaltable frame="none"> + <tgroup cols="2"> + <thead> + <row> + <entry>Variable</entry> + <entry>Valeur par défaut</entry> + </row> + </thead> + + <tbody> + <row> + <entry><makevar>COMMENT</makevar></entry> + <entry><literal>${PKGDIR}/DESCR</literal></entry> + </row> + + <row> + <entry><makevar>DESCR</makevar></entry> + <entry><literal>${PKGDIR}/DESCR</literal></entry> + </row> + + <row> + <entry><makevar>PLIST</makevar></entry> + <entry><literal>${PKGDIR}/PLIST</literal></entry> + </row> + + <row> + <entry><makevar>PKGINSTALL</makevar></entry> + <entry><literal>${PKGDIR}/PKGINSTALL</literal></entry> + </row> + + <row> + <entry><makevar>PKGDEINSTALL</makevar></entry> + <entry><literal>${PKGDIR}/PKGDEINSTALL</literal></entry> + </row> + + <row> + <entry><makevar>PKGREQ</makevar></entry> + <entry><literal>${PKGDIR}/REQ</literal></entry> + </row> + + <row> + <entry><makevar>PKGMESSAGE</makevar></entry> + <entry><literal>${PKGDIR}/MESSAGE</literal></entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para>Modifiez s'il vous plaît ces variables plutôt que de + surcharger <makevar>PKG_ARGS</makevar>. Si vous modifiez + <makevar>PKG_ARGS</makevar>, ces fichiers ne seront pas correctement + installés dans <filename>/var/db/pkg</filename> lors de + l'installation sous forme de logiciel porté.</para> + </sect3> + </sect2> + + <sect2> + <title>Problèmes de licence</title> + + <para>Certains logiciels ont des licences qui imposent des restrictions ou + peuvent violer la loi. (Le brevet de PKP sur la cryptographie ` + clé publique et ITAR - exportation de logiciel de + cryptographie - pour ne citer que deux exemples). Ce que nous + pouvons en faire varie beaucoup, selon les termes exacts de leurs + licences respectives.</para> + + <note> + <para>Il est de votre responsabilité, pour le logiciel que vous + porter, de lire les termes de la licence et de vous assurer que le + projet FreeBSD ne pourra pas être accusé de les violer en + redistribuant le source ou les binaires compilés que ce soit + par ftp ou sur CD-ROM. En cas de doute, contactez-la &a.ports;.</para> + </note> + + <para>Il y a deux variables que vous pouvez définir dans le + <filename>Makefile</filename> pour gérer les situations qui se + produisent souvent :</para> + + <orderedlist> + <listitem> + <para>Si le logiciel à porter a une licence de type “non + commercialisable” affectez à la variable + <makevar>NO_CDROM</makevar> une chaîne de caractères + expliquant pourquoi. Nous vérifierons que ces logiciels + ne soient pas sur le CD-ROM au moment de la parution. Les archives + du source et le paquetage seront cependant disponibles par + ftp.</para> + </listitem> + + <listitem> + <para>S'il faut recompiler le logiciel porté sur chaque site, + ou si le logiciel précompilé ne peut pas être + redistribué du fait de sa licence, affectez à la + variable <makevar>NO_PACKAGE</makevar> une chaîne de + caractères expliquant pourquoi. Nous vérifierons que + ces logiciels précompilés ne soient pas sur le site + ftp ni sur le CD-ROM au moment de la parution. Les archives du + source seront cependant disponibles sur les deux.</para> + </listitem> + + <listitem> + <para>S'il y a des restrictions légales à l'utilisation + du logiciel (e.g., cryptographie) ou que la licence est du type + “pas d'usage commercial”, affectez à la variable + <makevar>RESTRICTED</makevar> une chaîne de caractères + expliquant pourquoi. Pour ces logiciels, ni les archives du source + ni le logiciel précompilé ne seront même + disponibles sur nos sites ftp.</para> + </listitem> + </orderedlist> + + <note> + <para>La Licence Publique Générale + GNU - <foreignphrase>GNU General Public License + (GPL)</foreignphrase>, version 1 et 2, ne pose normalement pas de + problème pour les logiciels portés.</para> + </note> + + <note> + <para>Si vous êtes + “<foreignphrase>committer</foreignphrase>”, veillez + à mettre aussi à jour le fichier + <filename>ports/LEGAL</filename>.</para> + </note> + </sect2> + + <sect2> + <title>Mises à jour</title> + + <para>Si vous constatez qu'un logiciel porté n'est pas + synchronisé avec la plus récente version des auteurs + originaux, vérifiez d'abord que vous avez la dernière + version du logiciel porté. Vous la trouverez dans le + répertoire <filename>ports/ports-current</filename> des sites + miroir ftp.</para> + + <para>Envoyez ensuite un courrier électronique au responsable de + la maintenance, s'il est mentionné dans le + <filename>Makefile</filename> du logiciel. Il est peut-être + déjà en train de travailler sur la mise à jour, ou + a une bonne raison de ne pas la faire (par exemple à cause de + problèmes de stabilité de la nouvelle version).</para> + + <para>Si le responsable de la maintenance vous demande de mettre le + logiciel à jour ou s'il n'y a tout simplement pas de responsable, + faites cette mise à jour et envoyez un delta récursif + (soit contextuel soit unifié, mais les responsables de + l'arborescence des logiciels portés préfèrent le + format unifié) entre les anciens et les nouveaux + répertoires du logiciel (e.g., si votre répertoire + modifié s'appelle <filename>superedit</filename> et l'original + tel que dans notre arborescence <filename>superedit.bak</filename>, + envoyez nous alors le résultat de + <command>diff -ruN superedit.bak superedit</command>). + Contrôlez-le s'il vous plaît pour vérifier que toutes + les modifications sont cohérentes. La meilleure façon de + nous l'envoyer est de l'inclure dans un &man.send-pr.1; + (catégorie <literal>ports</literal>). Précisez s'il vous + plaît quels sont les fichiers ajoutés et supprimés, + parce qu'il faut explicitement les indiquez à CVS au moment de le + mise à jour. Si le delta fait plus de 20Ko, compressez-le et + codez-le avec <application>uuencode</application>; sinon, incluez-le + seulement tel quel dans le PR.</para> + + <para>Une fois encore, utilisez s'il vous plaît &man.diff.1; et non + &man.shar.1; pour nous envoyer les mises à jour des logiciels + portés.</para> + </sect2> + + <sect2> + <title><anchor id="porting-dads">A faire à ne pas faire</title> + + <para>Voici une liste de ce qu'il faut habituellement faire ou + éviter lors d'un portage. Vous devriez utiliser cette liste + pour valider votre propre portage et vous pouvez aussi contrôler + les logiciels que d'autres ont soumis dans la base des données + des rapports d'incidents. Transmettez tous vos commentaires au sujet des + logiciels portés dans la rubrique + <link linkend="contrib-general">Rapports d'incidents et commentaires + généraux - <foreignphrase>Bug Reports and + General Commentary</foreignphrase></link>. Validez les logiciels + portés mentionnés dans la base nous permettra de les + intégrer plus rapidement et prouvera en même temps que vous + savez ce que vous faites.</para> + + <sect3> + <title>Nettoyez les binaires</title> + + <para>Supprimez les informations + inutiles - <foreignphrase>strip</foreignphrase> - des + binaires. Si c'est déjà fait par le source d'origine, + tant mieux; sinon ajoutez une règle à la cible + <maketarget>post-install</maketarget> pour le faire vous-même. + Voici un example :</para> + + <programlisting> +post-install: + strip ${PREFIX}/bin/xdl + </programlisting> + + <para>Utilisez la commande &man.file.1; sur l'exécutable + installé pour voir s'il est déjà nettoyé. + Si elle ne vous répond pas <literal>not stripped</literal>, + c'est déjà fait.</para> + </sect3> + + <sect3> + <title>macros-instruction INSTALL_*</title> + + <para>Utilisez les macros-instructions fournies par + <filename>bsd.port.mk</filename> pour être sûr que les + droits sur les fichiers sont correctement gérés par vos + cibles <maketarget>*-install</maketarget>. Ce sont :</para> + + <itemizedlist> + <listitem> + <para><makevar>INSTALL_PROGRAM</makevar> pour installer les binaires + exécutables,</para> + </listitem> + + <listitem> + <para><makevar>INSTALL_SCRIPT</makevar> pour installer les + procédures exécutables,</para> + </listitem> + + <listitem> + <para><makevar>INSTALL_DATA</makevar> pour installer les + données partageables,</para> + </listitem> + + <listitem> + <para><makevar>INSTALL_MAN</makevar> pour installer les pages de + manuel et autres documentations (cela ne compresse rien).</para> + </listitem> + </itemizedlist> + + <para>Ces macros-instructions sont essentiellement composées + d'une commande <command>install</command> avec les options + appropriées. Vous trouverez plus bas un exemple de leur + utilisation.</para> + </sect3> + + <sect3 id="porting-wrkdir"> + <title><makevar>WRKDIR</makevar></title> + + <para>N'écrivez rien en dehors de <makevar>WRKDIR</makevar>. + <makevar>WRKDIR</makevar> est le seul endroit où vous + êtes sûr de pouvoir écrire pendant la + compilation d'un logiciel porté (reportez-vous à la + section <link linkend="ports-cd">compiler les logiciels portés + depuis un CD-ROM</link> pour avoir un example de compilation de + logiciels portés dans une arborescence en lecture seule). + example of building ports from a read-only tree). S'il vous faut + modifier un fichier dans <makevar>PKGDIR</makevar>, faites-le en + <link linkend="porting-pkgsubdir">redéfinissant une + variable</link>, non en l'écrasant.</para> + </sect3> + + <sect3> + <title><makevar>WRKDIRPREFIX</makevar></title> + + <para>Veillez à utiliser <makevar>WRKDIRPREFIX</makevar>. + Cela ne concerne pas la plupart des logiciels portés. Mais, + en particulier si vous faites référence au + <makevar>WRKDIR</makevar> d'un autre logiciel, notez que la + référence correcte est + <filename><makevar>WRKDIRPREFIX</makevar><makevar>PORTSDIR</makevar>/<replaceable>sous-répertoire</replaceable>/<replaceable>nom</replaceable>/work</filename> + et non <filename><makevar>PORTSDIR</makevar>/<replaceable>sous-répertoire</replaceable>/<replaceable>nom</replaceable>/work</filename> + ou <filename><makevar>.CURDIR</makevar>/../../<replaceable>sous-répertoire</replaceable>/<replaceable>nom</replaceable>/work</filename> + ou autre chose encore.</para> + + <para>Par ailleurs, si vous définissez vous-même + <makevar>WRKDIR</makevar>, veillez à bien le faire commencer + par <literal>${WKRDIRPREFIX}${.CURDIR}</literal>.</para> + </sect3> + + <sect3 id="porting-versions"> + <title>Distinguer les systèmes d'exploitation et leurs + versions</title> + + <para>Vous pouvez tomber sur du code qui doit être modifié + ou compilé conditionnellement selon la version d'Unix sur + laquelle il s'exécutera. Si vous avez besoin de faire ce type + de modifications du code ou de mettre en place une compilation + conditionelle, veillez à ce que vos modifications soient aussi + générales que possible, de sorte que nous puissions + rétroporter le code sur les systèmes FreeBSD 1.x et le + porter sur les autres systèmes BSD tels que 4.4BSD du CSRG, + BSD/386, 386BSD, NetBSD et OpenBSD.</para> + + <para>La solution appropriée pour distinguer 4.3BSD/Reno(1990) et + les versions ultérieures de BSD est d'utiliser la + macro-instruction <literal>BSD</literal> définie dans + <filename><sys/param.h></filename>. Avec de la chance, ce + fichier est déjà inclus; si ce n'est pas le cas, + ajoutez :</para> + + <programlisting> +#if (defined(__unix__) || defined(unix)) && !defined(USG) +#include <sys/param.h> +#endif + </programlisting> + + <para>à l'endroit voulu dans le fichier <filename>.c</filename>. + Nous estimons que tous les systèmes qui définissent ces + deux symboles disposent d'un <filename>sys/param.h</filename>. Si vous + tombez sur un système pour lequel ce n'est pas le cas, nous + aimerions le savoir. Envoyez un courrier électronique à + la &a.ports;.</para> + + <para>L'autre moyen est d'utiliser le style GNU + <application>autoconf</application> de faire ce genre de + choses :</para> + + <programlisting> +#ifdef HAVE_SYS_PARAM_H +#include <sys/param.h> +#endif + </programlisting> + + <para>N'oubliez pas d'ajouter <literal>-DHAVE_SYS_PARAM_H</literal> + à <makevar>CFLAGS</makevar> dans le + <filename>Makefile</filename> dans ce cas.</para> + + <para>Une fois que vous avez inclus + <filename>sys/param.h</filename> vous pouvez utiliser :</para> + + <programlisting> +#if (defined(BSD) && (BSD >= 199103)) + </programlisting> + + <para>pour savoir si le code est compilé sur un système + basé sur 4.3 Net2 ou sur une version ultérieure (e.g., + FreeBSD 1.x, 4.3/Reno, NetBSD 0.9, 386BSD, BSD/386 1.1 et + antérieurs).</para> + + <para>Utilisez :</para> + + <programlisting> +#if (defined(BSD) && (BSD >= 199306)) + </programlisting> + + <para>pour savoir si le code est compilé sur un système + basé sur 4.4 ou sur une version ultérieure (e.g., + FreeBSD 2.x, 4.4, NetBSD 1.0, 386BSD, BSD/386 2.0 et + ultérieurs).</para> + + <para>La macro-instruction <literal>BSD</literal> prend la valeur + <literal>199506</literal> lorsque le code est basé sur + 4.4BSD-Lite2. Ceci n'est donné qu'à titre d'information + et ne doit pas être utilisé pour distinguer les versions + de FreeBSD basées sur 4.4-Lite de celles qui ont + intégré les modifications introduites avec + 4.4-Lite2. Il faut utiliser pour cela la macro-instruction + <literal>__FreeBSD__</literal>.</para> + + <para>Utilisez avec modération :</para> + + <itemizedlist> + <listitem> + <para><literal>__FreeBSD__</literal> est définie dans toutes + les versions de FreeBSD. Utilisez-la si vos modifications + ne concernent <emphasis>que</emphasis> FreeBSD. Des trucs de + portage tel que remplacer <function>strerror()</function> + par <literal>sys_errlist[]</literal> sont propres aux + systèmes Berkeley, et non à FreeBSD.</para> + </listitem> + + <listitem> + <para>Sous FreeBSD 2.x, <literal>__FreeBSD__</literal> prend la + valeur <literal>2</literal>. Dans les versions antérieures, + elle vaut <literal>1</literal>. Les versions suivantes + l'augmenteront pour qu'elle soit égale à leur + numéro de version majeure.</para> + </listitem> + + <listitem> + <para>Si vous avez besoin de faire la différence entre un + système FreeBSD 2.x et un système 3.x, la bonne + manière de faire est normalement d'utiliser les + macros-instructions <literal>BSD</literal> décrites plus + haut. S'il y a effectivement des modifications spécifiques + à FreeBSD (une option particulière pour une + bibliothèque partiagée avec <command>ld</command>), + vous pouvez alors à juste titre utiliser + <literal>__FreeBSD__</literal> et + <literal>#if __FreeBSD__ > 1</literal> pour tester s'il s'agit + d'un système FreeBSD 2.x ou ultérieur. Si vous + avez besoin d'une particularisation plus fine des systèmes + FreeBSD à partir de 2.0-release, vous pouvez vous servir + de :</para> + + <programlisting> +#if __FreeBSD__ >= 2 +#include <osreldate.h> +# if __FreeBSD_version >= 199504 + /* code propre à la version 2.0.5 et ultérieures */ +# endif +#endifi + </programlisting> + + <informaltable frame="none"> + <tgroup cols="2"> + <thead> + <row> + <entry>Version de FreeBSD</entry> + <entry><literal>__FreeBSD_version</literal></entry> + </row> + </thead> + + <tbody> + <row> + <entry>2.0-RELEASE</entry> + <entry>119411</entry> + </row> + + <row> + <entry>2.1-CURRENTs</entry> + <entry>199501, 199503</entry> + </row> + + <row> + <entry>2.0.5-RELEASE</entry> + <entry>199504</entry> + </row> + + <row> + <entry>2.2-CURRENT avant 2.1</entry> + <entry>199508</entry> + </row> + + <row> + <entry>2.1.0-RELEASE</entry> + <entry>199511</entry> + </row> + + <row> + <entry>2.2-CURRENT aprè 2.1.5</entry> + <entry>199512</entry> + </row> + + <row> + <entry>2.1.5-RELEASE</entry> + <entry>199607</entry> + </row> + + <row> + <entry>2.2-CURRENT aprés 2.1.6</entry> + <entry>199608</entry> + </row> + + <row> + <entry>2.1.6-RELEASE</entry> + <entry>199612</entry> + </row> + + <row> + <entry>2.1.7-RELEASE</entry> + <entry>199612</entry> + </row> + + <row> + <entry>2.2-RELEASE</entry> + <entry>220000</entry> + </row> + + <row> + <entry>2.2.1-RELEASE</entry> + <entry>220000 (pas de changement)</entry> + </row> + + <row> + <entry>2.2-STABLE after 2.2.1-RELEASE</entry> + <entry>220000 (pas de changement)</entry> + </row> + + <row> + <entry>2.2-STABLE après introduction de + texinfo-3.9</entry> + <entry>221001</entry> + </row> + + <row> + <entry>2.2-STABLE après introduction de top</entry> + <entry>221002</entry> + </row> + + <row> + <entry>2.2.2-RELEASE</entry> + <entry>222000</entry> + </row> + + <row> + <entry>2.2-STABLE après 2.2.2-RELEASE</entry> + <entry>222001</entry> + </row> + + <row> + <entry>2.2.5-RELEASE</entry> + <entry>225000</entry> + </row> + + <row> + <entry>2.2-STABLE après 2.2.5-RELEASE</entry> + <entry>225001</entry> + </row> + + <row> + <entry>2.2-STABLE après fusion avec + ldconfig -R</entry> + <entry>225002</entry> + </row> + + <row> + <entry>2.2.6-RELEASE</entry> + <entry>226000</entry> + </row> + + <row> + <entry>2.2.7-RELEASE</entry> + <entry>227000</entry> + </row> + + <row> + <entry>2.2-STABLE après 2.2.7-RELEASE</entry> + <entry>227001</entry> + </row> + + <row> + <entry>2.2-STABLE après modification de + <citerefentry><refentrytitle>semctl</refentrytitle> + <manvolnum>2</manvolnum></citerefentry></entry> + <entry>227002</entry> + </row> + + <row> + <entry>2.2.8-RELEASE</entry> + <entry>228000</entry> + </row> + + <row> + <entry>2.2-STABLE après 2.2.8-RELEASE</entry> + <entry>228001</entry> + </row> + + <row> + <entry>3.0-CURRENT avant modification de + <citerefentry><refentrytitle>mount</refentrytitle> + <manvolnum>2</manvolnum></citerefentry></entry> + <entry>300000</entry> + </row> + + <row> + <entry>3.0-CURRENT après modification de + <citerefentry><refentrytitle>mount</refentrytitle> + <manvolnum>2</manvolnum></citerefentry> change</entry> + <entry>300002</entry> + </row> + + <row> + <entry>3.0-CURRENT après modification des + arguments de ioctl</entry> + <entry>300003</entry> + </row> + + <row> + <entry>3.0-CURRENT après conversions au format + ELF</entry> + <entry>300004</entry> + </row> + + <row> + <entry>3.0-RELEASE</entry> + <entry>300005</entry> + </row> + + <row> + <entry>3.0-CURRENT après 3.0-RELEASE</entry> + <entry>300006</entry> + </row> + + <row> + <entry>3.0-STABLE après introduction de la + branche 4.x</entry> + <entry>300007</entry> + </row> + + <row> + <entry>3.1-RELEASE</entry> + <entry>310000</entry> + </row> + + <row> + <entry>3.1-STABLE après 3.1-RELEASE</entry> + <entry>310001</entry> + </row> + + <row> + <entry>4.0-CURRENT après introduction de la + branche 4.x</entry> + <entry>400000</entry> + </row> + + </tbody> + </tgroup> + </informaltable> + </listitem> + </itemizedlist> + + <note> + <para>Remarquz que 2.2-stable s'identifie parfois elle-même + comme “2.2.5-stable” après la 2.2.5-release. La + clé était autrefois l'année suivie du mois, + mais nous avons décidé d'en changer pour un + système plus explicite constitué des numéros de + versions majeure et mineure à partir de la 2.2. Cela parce + que le développement parallèle sur plusieurs + branches rendait impossible le classement des versions simplement + par leur date effective de livraison. Si vous portez aujourd'hui + un logiciel, vous n'avez pas à vous soucier des anciennes + versions <literal>-current</literal>s; elles ne sont + mentionnées ici qu'à titre de + référence.</para> + </note> + + <para>Dans les centaines de logiciels qui ont été + portés, il n'y a qu'un ou deux cas où il fallait + effectivement utiliser <literal>__FreeBSD__</literal>. Ce n'est pas + parce qu'un portage antérieur n'a pas été bien + fait et s'en est servi à tort qu'il faut + perséverer.</para> + </sect3> + + <sect3> + <title>Mettre quelque chose après + <filename>bsd.port.mk</filename></title> + + <para>Ne mettez rien après la ligne <literal>.include + <bsd.port.mk></literal>. Cela peut être le plus souvent + évité en incluant + <filename>bsd.port.pre.mk</filename> quelque part au milieu de votre + <filename>Makefile</filename> et + <filename>bsd.port.post.mk</filename> à la fin.</para> + + <note> + <para>Vous devez inclure soit le couple + <filename>pre.mk</filename>/<filename>post.mk</filename> soit + <filename>bsd.port.mk</filename> uniquement; ne mélangez + pas les deux.</para> + </note> + + <para><filename>bsd.port.pre.mk</filename> ne définit que + quelques variables, qui peuvent être testées dans le + <filename>Makefile</filename>, <filename>bsd.port.post.mk</filename> + prend en charge tout le reste.</para> + + <para>Voici quelques unes des variables importantes qui sont + définies dans <filename>bsd.port.pre.mk</filename> (ce n'est + pas une liste exhaustive, reportez-vous s'il vous plaît à + <filename>bsd.port.mk</filename> pour avoir une liste + complète).</para> + + <informaltable frame="none"> + <tgroup cols="2"> + <thead> + <row> + <entry>Variable</entry> + <entry>Description</entry> + </row> + </thead> + + <tbody> + <row> + <entry><makevar>ARCH</makevar></entry> + <entry>L'architecture sous le même forme que le + résultat de <command>uname -m</command> (e.g., + <literal>i386</literal>)</entry> + </row> + + <row> + <entry><makevar>OPSYS</makevar></entry> + <entry>Le système d'exploitation, sous le même + forme que le résultat de la commande + <command>uname -s</command> (e.g., + <literal>FreeBSD</literal>)</entry> + </row> + + <row> + <entry><makevar>OSREL</makevar></entry> + <entry>La version du système d'exploitation (e.g., + <literal>2.1.5</literal> ou + <literal>2.2.7</literal>)</entry> + </row> + + <row> + <entry><makevar>OSVERSION</makevar></entry> + <entry>La version sous forme numérique du système + d'exploitation, identique à + <link linkend="porting-versions"><literal>__FreeBSD_version</literal></link>.</entry> + </row> + + <row> + <entry><makevar>PORTOBJFORMAT</makevar></entry> + <entry>Le format “objet” du système + (<literal>aout</literal> or <literal>elf</literal>)</entry> + </row> + + <row> + <entry><makevar>LOCALBASE</makevar></entry> + <entry>La racine de l'arborescence “locale” (e.g., + <literal>/usr/local/</literal>)</entry> + </row> + + <row> + <entry><makevar>X11BASE</makevar></entry> + <entry>La racine de l'arborescence “X11” (e.g., + <literal>/usr/X11R6</literal>)</entry> + </row> + + <row> + <entry><makevar>PREFIX</makevar></entry> + <entry>Où le logiciel s'installe lui-même + (Reportez-vous à la section + <link linkend="porting-prefix"><makevar>PREFIX</makevar></link> + pour plus d'informations).</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <note> + <para>Si vous avez besoin de définir les variables + <makevar>USE_IMAKE</makevar>, <makevar>USE_X_PREFIX</makevar> ou + <makevar>MASTERDIR</makevar>, faites-le avant d'inclure + <filename>bsd.port.pre.mk</filename>.</para> + </note> + + <para>Voici quelques exemples de ce que vous pouvez mettre après + <filename>bsd.port.pre.mk</filename> :</para> + + <programlisting> +# il est inutile de compiler lang/perl5 si perl5 fait déjà partie du système +.if ${OSVERSION} > 300003 +BROKEN= perl fait partie du système +.endif + +# un seule numéro de version de bibliothèque partagée en ELF +.if ${PORTOBJFORMAT} == "elf" +TCL_LIB_FILE= ${TCL_LIB}.${SHLIB_MAJOR} +.else +TCL_LIB_FILE= ${TCL_LIB}.${SHLIB_MAJOR}.${SHLIB_MINOR} +.endif + +# le logiciel fait déjà les liens pour ELF, mais pas pour a.out +post-install: +.if ${PORTOBJFORMAT} == "aout" + ${LN} -sf liblinpack.so.1.0 ${PREFIX}/lib/liblinpack.so +.endif + </programlisting> + </sect3> + + <sect3> + <title>Installer des documentations supplémentaires</title> + + <para>Si votre logiciel à porter est accompagné d'autres + documentations que les habituelles pages de manuel ou + “info”, que vous trouvez utiles, installez-les dans + <filename><makevar>PREFIX</makevar>/share/doc</filename>. + Vous pouvez le faire de même, comme expliqué plus haut + avec la cible <maketarget>post-install</maketarget>.</para> + + <para>Créez un nouveau sous-répertoire pour votre logiciel + à porter. Le nom de ce sous-répertoire devrait faire + référence à son contenu. Cela signifie la plupart + du temps que ce sera le <makevar>PKGNAME</makevar> sans le + numéro de version. Si vous pensez toutefois que l'utilisateur + voudra peut-être installer différentes versions du + logiciel, utilisez alors le <makevar>PKGNAME</makevar> complet.</para> + + <para>Paramétrez l'installation en utilisant la variable + <makevar>NOPORTDOCS</makevar> pour que les utilisateurs puissent ne + pas installer ces documentations, en se servant de + <filename>/etc/make.conf</filename>, s'ils le souhaitent, comme + suit :</para> + + <programlisting> +post-install: +.if !defined(NOPORTDOCS) + ${MKDIR}${PREFIX}/share/doc/xv + ${INSTALL_MAN} ${WRKSRC}/docs/xvdocs.ps ${PREFIX}/share/doc/xv +.endif + </programlisting> + + <para>N'oubliez pas de les ajouter aussi à + <filename>pkg/PLIST</filename> ! (Ne vous souciez pas ici de + <makevar>NOPORTDOCS</makevar>; il n'y a aujourd'hui aucun moyen pour + que les procédures d'installation des logiciels + précompilés lisent les variables de + <filename>/etc/make.conf</filename>.)</para> + + <para>Vous pouvez aussi vous servir du fichier + <filename>pkg/MESSAGE</filename> pour afficher des messages à + l'installation. Reportez-vous à la section sur l'utilisation + de + <link linkend="porting-message"><filename>pkg/MESSAGE</filename></link> + pour plus d'informations.</para> + + <note> + <para>Il n'y a pas besoin d'ajouter <filename>MESSAGE</filename> + à <filename>pkg/PLIST</filename>.</para> + </note> + </sect3> + + <sect3> + <title><makevar>DIST_SUBDIR</makevar></title> + + <para>Evitez que votre logiciel n'encombre + <filename>/usr/ports/distfiles</filename>. S'il doit rapatrier de + nombreux fichiers ou comporte un fichier dont le nom est + déjà utilisé par un autre logiciel (e.g., + <filename>Makefile</filename>), donnez à + <makevar>DIST_SUBDIR</makevar> le nom du logiciel + (<makevar>PKGNAME</makevar> sans le numéro de version devrait + faire l'affaire). Cela modifiera <makevar>DISTDIR</makevar> de + <filename>/usr/ports/distfiles</filename> par défaut, en + <filename>/usr/ports/distfiles/<makevar>DIST_SUBDIR</makevar></filename> + et mettra effectivement tout ce dont a besoin votre logiciel à + porter dans ce sous-répertoire. </para> + + <para>Le sous-répertoire du même nom sur le site principal + de secours <filename>ftp.freebsd.org</filename> sera aussi + consulté (Positionner explicitement <makevar>DISTDIR</makevar> + dans votre <makevar>Makefile</makevar> n'aboutira pas au même + résultat, utilisez s'il vous plaît + <makevar>DIST_SUBDIR</makevar>.)</para> + + <note> + <para>Cela n'a pas d'effet sur les <makevar>MASTER_SITES</makevar> que + vous définissez dans votre + <filename>Makefile</filename>.</para> + </note> + </sect3> + + <sect3> + <title>Informations sur le paquetage</title> + + <para>Ne mettez pas les informations sur le paquetage, i.e. + <filename>COMMENT</filename>, <filename>DESCR</filename> et + <filename>PLIST</filename> dans <filename>pkg</filename>.</para> + + <note> + <para>Notez bien que ces fichiers ne sont plus utilisés + uniquement pour la version précompilée et sont + maintenant <emphasis>indispensables</emphasis>, même si la + variable <makevar>NO_PACKAGE</makevar> est définie.</para> + </note> + </sect3> + + <sect3> + <title>Chaînes RCS</title> + + <para>Ne mettez pas les chaînes RCS dans les fichiers de mise + à niveau - <foreignphrase>patches</foreignphrase>. + CVS les modifiera quand nous mettrons les fichiers dans l'arborescence + des logiciels portés et de nouveau lorsque nous les + extrairons ensuite et les mises à jour échouerons. Les + chaînes RCS sont encadrées par des caractères + “dollar” (<literal>$</literal>), et commencent + typiquement par <literal>$Id</literal> ou + <literal>$RCS</literal>.</para> + </sect3> + + <sect3> + <title>“diff” récursifs</title> + + <para>Il est bien d'utiliser la récursivité + (<option>-r</option>) avec <command>diff</command> pour + générer les fichiers de mise à jour, mais + examinez s'il vous plaît le résultat pour vous assurer + qu'il n'est pas pollué par trop de choses inutiles. En + particulier, les deltas entre fichiers dupliqués pour + sauvegarder la version originale, les <filename>Makefile</filename>s + alors que le logiciel à porter utilise + <command>Imake</command> ou GNU <command>configure</command>, etc., + sont inutiles et doivent être supprimés. Si vous avez + dû modifier <filename>configure.in</filename> et utiliser + <command>autoconf</command> pour mettre à jour + <command>configure</command>, n'incluez pas le delta pour + <command>configure</command> (il contient souvent plusieurs centaines + de lignes !) ; définissez + <literal>USE_AUTOCONF=yes</literal> et donnez les deltas pour + <filename>configure.in</filename>.</para> + + <para>Si vous avez par ailleurs eu à supprimer un fichier, vous + pouvez le faire avec la cible <maketarget>post-extract</maketarget> + plutôt qu'en vous servant du fichier de mise à jour. Une + fois que le delta vous convient, découpez-le s'il vous + plaît pour qu'il y ait un fichier de mise à jour pour + chaque fichier source.</para> + </sect3> + + <sect3 id="porting-prefix"> + <title><makevar>PREFIX</makevar></title> + + <para>Faites en sorte que votre logiciel s'installe sous l'arborescence + <makevar>PREFIX</makevar>. (Cette variable prend la valeur de + <makevar>LOCALBASE</makevar> (par défaut + <filename>/usr/local</filename>), à moins que + <makevar>USE_X_PREFIX</makevar> ou <makevar>USE_IMAKE</makevar> ne + soient définies, auquel cas ce sera <makevar>X11BASE</makevar> + (par défaut <filename>/usr/X11R6</filename>).)</para> + + <para>Le fait de ne coder nulle part en dur + <filename>/usr/local</filename> ou <filename>/usr/X11R6</filename> + dans le source rend le portage plus souple et facilite son adaptation + aux besoins d'autres sites. Pour les logiciels X qui se servent de + <command>imake</command>, c'est automatique; dans les autres cas, il + suffit souvent de faire en sorte que <filename>/usr/local</filename> + (ou <filename>/usr/X11R6</filename> pour les logiciels X qui + n'utilisent pas <command>imake</command>) soit remplacé par la + valeur de <makevar>PREFIX</makevar> dans les différentes + procédures et <filename>Makefile</filename>s du logiciel, + puisque cette variable est toujours transmise à chaque + étape du processus de compilation et d'installation.</para> + + <para>N'utilisez pas <makevar>USE_X_PREFIX</makevar> à mois d'en + avoir vraiment besoin (i.e., l'édition de liens utilise les + bibliothèques X ou vous avez besoin de faire + référence à des fichiers de + <makevar>X11BASE</makevar>).</para> + + <para>La variable <makevar>PREFIX</makevar> peut être + redéfinie dans votre <filename>Makefile</filename> ou dans + l'environnement de l'utilisateur. Il est néanmoins fortement + déconseillé de la définir explicitement dans les + <filename>Makefile</filename>s de logiciels.</para> + + <para>Utilisez aussi les variables précédentes pour faire + référence à des programmes ou fichiers d'autres + logiciels portés et non en donnant les chemins d'accès + complets. Par exemple, si votre logiciel a besoin que la + macro-instruction <literal>PAGER</literal> donne le chemin + d'accès à <command>less</command>, utilisez + l'indicateur :</para> + + <programlisting> +-DPAGER=\"${PREFIX}/bin/less\" + </programlisting> + + <para>du compilateur, ou :</para> + + <programlisting> +-DPAGER=\"${LOCALBASE}/bin/less\" + </programlisting> + + <para>si c'est un logiciel X, au lieu de + <literal>-DPAGER=\"/usr/local/bin/less\"</literal>. Cela aura plus de + chances de marcher si votre administrateur système a + déplacé toute l'arborescence + <filename>/usr/local</filename> ailleurs.</para> + </sect3> + + <sect3> + <title>Sous-répertoires</title> + + <para>Essayez de faire en sorte que le logiciel à porter installe + ses fichiers dans les bons sous-répertoires de + <makevar>PREFIX</makevar>. Certains logiciels regroupent tout dans un + sous-répertoire portant le nom du logiciel, ce qui est + incorrect. De nombreux logiciels mettent aussi tout, sauf les + binaires, fichiers d'en-tête et pages de manuel dans un + sous-répertoire de <filename>lib</filename>, ce qui ne fait pas + bon ménage avec le paradigme BSD. La plupart des fichiers + doivent être déplacés vers : + <filename>etc</filename> (fichiers d'initialisation et de + configuration), <filename>libexec</filename> (exécutables + démarrés par le système), + <filename>sbin</filename> (exécutables pour les + super-utilisateurs/administrateurs), <filename>info</filename> + (documentations au format “info”) ou + <filename>share</filename> (fichiers indépendants de + l'architecture). Reportez-vous aux pages de manuel de &man.hier.7; + pour plus de détails au sujet des règles qui + régissent <filename>/usr</filename>, la plus grande partie + s'applique aussi à <filename>/usr/local</filename>. Les + logiciels en rapport avec les “news” USENET font + exception. Ils peuvent se servir de + <filename><makevar>PREFIX</makevar>/news</filename> pour y mettre + leurs fichiers.</para> + </sect3> + + <sect3 id="porting-cleaning"> + <title>Supprimer les répertoires vides</title> + + <para>Faites en sorte que le logiciel fasse le ménage lors de sa + désinstallation. Cela se fait habituellement en ajoutant des + lignes <literal>@dirrm</literal> pour tous les répertoires + spécifiquement créés par le logiciel. Il faut + supprimer les sous-répertoires avant de supprimer leurs + répertoires parents.</para> + + <programlisting> + : +lib/X11/oneko/pixmaps/cat.xpm +lib/X11/oneko/sounds/cat.au + : +@dirrm lib/X11/oneko/pixmals +@dirrm lib/X11/oneko/sounds +@dirrm lib/X11/oneko</programlisting> + + <para>Il arrive parfois que <literal>@dirrm</literal> émette un + message d'erreur parce que d'autres logiciels partagent le même + sous-répertoire. Vous pouvez invoquer + <command>rmdir</command> depuis <literal>@unexec</literal> pour ne + supprimer que les sous-répertoires vides sans messages + d'avertissement.</para> + + <programlisting> +@unexec rmdir %D/share/doc/gimp 2>/dev/null || true</programlisting> + + <para>Il n'y aura alors ni message d'erreur, ni fin anormale de + <command>pkg_delete</command> même si + <filename><makevar>PREFIX</makevar>/share/doc/gimp</filename> n'est + pas vide parce que d'autres logiciels y ont installé des + fichiers.</para> + </sect3> + + <sect3> + <title><literal>UID</literal>s</title> + + <para>Si votre logiciel a besoin qu'un utilisateur particulier existe + sur le système, appelez <command>pw</command> dans la + procédure <filename>pkg/INSTALL</filename> pour le créer + automatiquement. Voyez <filename>net/cvsup-mirror</filename> pour + avoir un exemple.</para> + + <para>Si votre logiciel à porter a besoin du même + <literal>ID</literal>dentifiant d'utilisateur/groupe qui a servi + à sa compilation quand on installe le paquetage binaire, vous + devez choisir un <literal>UID</literal> libre entre 50 et 99 et + l'enregistrer ci-dessous. Voyez <filename>japanese/Wnn</filename> pour + avoir un exemple.</para> + + <para>Veillez à ne pas utiliser un <literal>UID</literal> + déjà employé par le système ou d'autres + logiciels. Voici la liste des <literal>UID</literal>s entre 50 et + 99.</para> + + <programlisting> +majordom:*:54:54:Majordomo Pseudo User:/usr/local/majordomo:/nonexistent +cyrus:*:60:60:the cyrus mail server:/nonexistent:/nonexistent +gnats:*:61:1:GNATS database owner:/usr/local/share/gnats/gnats-db:/bin/sh +uucp:*:66:66:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico +xten:*:67:67:X-10 daemon:/usr/local/xten:/nonexistent +pop:*:68:6:Post Office Owner (popper):/nonexistent:/nonexistent +wnn:*:69:7:Wnn:/nonexistent:/nonexistent +ifmail:*:70:66:Ifmail user:/nonexistent:/nonexistent +pgsql:*:70:70:PostgreSQL pseudo-user:/usr/local/pgsql:/bin/sh +ircd:*:72:72:IRCd hybrid:/nonexistent:/nonexistent +alias:*:81:81:QMail user:/var/qmail/alias:/nonexistent +qmaill:*:83:81:QMail user:/var/qmail:/nonexistent +qmaild:*:82:81:QMail user:/var/qmail:/nonexistent +qmailq:*:85:82:QMail user:/var/qmail:/nonexistent +qmails:*:87:82:QMail user:/var/qmail:/nonexistent +qmailp:*:84:81:QMail user:/var/qmail:/nonexistent +qmailr:*:86:82:QMail user:/var/qmail:/nonexistent +msql:*:87:87:mSQL-2 pseudo-user:/var/db/msqldb:/bin/sh</programlisting> + + <para>Signalez s'il vous plaît que vous réservez un + <literal>UID</literal> ou <literal>GID</literal> dans cette plage, + quand vous soumettez un logiciel (ou une mise à niveau). Cela + nous permet de tenir à jour la liste des <literal>ID</literal>s + réservés.</para> + </sect3> + + <sect3> + <title>Faites les choses rationnellement</title> + + <para>Le <filename>Makefile</filename> doit faire des choses simples et + logiques. Si vous pouvez le raccourcir et le rendre plus lisible, + faites-le. Utilisez par exemple un instruction + <literal>.if</literal> de <command>make</command>, au lieu d'un + <literal>if</literal> de l'interpréteur de commandes, ne + redéfinissez pas <maketarget>do-extract</maketarget> si vous + pouvez utiliser <makevar>EXTRACT*</makevar> à la place et + servez-vous de <makevar>GNU_CONFIGURE</makevar> au lieu de + <literal>CONFIGURE_ARGS += --prefix=${PREFIX}</literal>.</para> + </sect3> + + <sect3> + <title>Prennez en compte <makevar>CFLAGS</makevar></title> + + <para>Le logiciel à porter doit prendre en considération + <makevar>CFLAGS</makevar>. Si ce n'est pas le cas, ajoutez s'il vous + plaît <literal>NO_PACKAGE=ignores cflags</literal> au + <filename>Makefile</filename>.</para> + </sect3> + + <sect3> + <title>Fichiers de Configuration</title> + + <para>Si votre logiciel a besoin de fichiers de configuration dans + <filename><makevar>PREFIX</makevar>/etc</filename>, ne les installez + <emphasis>pas</emphasis> et ne les listez pas dans + <filename>pkg/PLIST</filename>. <command>pkg_delete</command> + supprimerait alors des fichiers renseignés avec soin par les + utilisateurs et une réinstallation les + écraserait.</para> + + <para>Au lieu de cela, installez des fichiers d'exemple avec un suffixe + (<filename><replaceable>nom_de_fichier</replaceable>.sample</filename> + fonctionnera bien) et affichez un + <link linkend="porting-message">message</link> pour signaler à + l'utilisateur qu'il devra copier et modifier le fichier pour que le + logiciel soit utilisable.</para> + </sect3> + + <sect3> + <title>Portlint</title> + + <para>Contrôlez votre travail avec + <link linkend="porting-portlint"><command>portlint</command></link> + avant de le soumettre ou de le mettre dans l'arborescence des + sources.</para> + </sect3> + + <sect3> + <title>Retours d'information</title> + + <para>Envoyez vos modifications et mises à niveau à + l'auteur ou au responsable de la maintenance pour qu'il les inclue + dans la prochaine version du code. Cela ne fera que vous faciliter le + travail pour la prochaine fois.</para> + </sect3> + + <sect3> + <title>Divers</title> + + <para>Les fichiers <filename>pkg/DESCR</filename>, + <filename>pkg/COMMENT</filename> et <filename>pkg/PLIST</filename> + doivent chacun être revérifiés. Si vous passez un + logiciel en revue et pensez qu'ils peuvent être mieux + étre mieux écrits, faites-le.</para> + + <para>Ne mettez pas de nouvelles copies de la Licence Publique + Générale GNU - GPL - sur notre + système, s'il vous plaît.</para> + + <para>Notez s'il vous plaît soigneusement toutes les + considérations d'ordre légal. Ne nous laissez pas + distribuer illégalement du logiciel !</para> + </sect3> + + <sect3> + <title>Si vous êtes bloqué…</title> + + <para>Consultez les exemples existants et + <filename>bsd.port.mk</filename> avant de nous poser des + questions ! <!-- smiley --><emphasis>;)</emphasis></para> + + <para>Posez-nous des questions si vous avez des problèmes ! + Ne vous cognez pas la tête contre les murs ! + <!-- smiley --><emphasis>:)</emphasis></para> + </sect3> + </sect2> + + <sect2 id="porting-samplem"> + <title>Un exemple de <filename>Makefile</filename></title> + + <para>Voici un exemple de <filename>Makefile</filename> dont vous pouvez + vous servir pour porter un nouveau logiciel. Veillez à supprimer + les commentaires excédentaires (ceux qui sont entre + crochets) !</para> + + <para>Il est souhaitable que vous respectiez ce format (ordre des + variables, espacements entre sections, etc.). Il est conçu pour + qu'il soit facile de repérer les informations les plus + importantes. Nous vous recommandons d'utiliser + <link linkend="porting-portlint">portlint</link> pour vérifier le + <filename>Makefile</filename>.</para> + + <programlisting> +[l'en-tête...pour qu'il nous soit plus facile d'identifier les logiciels.] +# New ports collection makefile for: xdvi +[l'en-tête de version obligatoire doit être mise à jour + en même temps que le logiciel.] +# Version required: pl18 [des choses du genre "1.5alpha" conviennent aussi] +[C'est la date de création de la première version de ce Makefile. + Ne la modifiez jamais lors d'une mise à jour.] +# Date created: 26 May 1995 +[C'est la personne qui a fait le premier portage sous FreeBSD, en particulier, + celle qui a écrit la première version de ce Makefile. Rappelez-vous + que vous ne devez plus modifier ce nom par la suite.] +# Whom: Satoshi Asami <asami@FreeBSD.ORG> +# +# $Id$ +[ ^^^^ Ce sera automatiquement remplacé par la chaîne RCS par CVS + ensuite, lors de l'intégration à nos archives.] +# + +[Cette section décrit le logiciel et le site d'origine - DISTNAME + viens toujours en premier, suivi de PKGNAME (si nécessaire), CATEGORIES, + puis de MASTER_SITES, qui peut être suivi de MASTER_SITE_SUBDIR. + EXTRACT_SUFX ou DISTFILES peuvent éventuellement être précisés ensuite.] +DISTNAME= xdvi +PKGNAME= xdvi-pl18 +CATEGORIES= print +[N'oubliez pas le “slash” ("/") à la fin ! + si vous ne vous servez pas des macros-instructions MASTER_SITE_*] +MASTER_SITES= ${MASTER_SITE_XCONTRIB} +MASTER_SITE_SUBDIR= applications +[A définir si le source n'est pas au format ".tar.gz"] +EXTRACT_SUFX= .tar.Z + +[Section pour les mises à jour de la distribution -- peut être vide] +PATCH_SITES= ftp://ftp.sra.co.jp/pub/X11/japanese/ +PATCHFILES= xdvi-18.patch1.gz xdvi-18.patch2.gz + +[Responsable de la maintenance; *obligatoire* ! C'est la personne + (de préférence avec les droits d'écriture sur l'arborescence + des sources) que les utilisateurs peuvent contacter si questions ou rapports + d'anomalie - ce doit être la personne qui a fait le portage ou quelqu'un + qui peut lui transmettre les questions dans un délai raisonnable. Si vous + ne voulez vraimant pas que votre adresse apparaisse ici, mettez + "ports@FreeBSD.ORG".] +MAINTAINER= asami@FreeBSD.ORG + +[Dépendances -- peuvent être vides] +RUN_DEPENDS= gs:${PORTSDIR}/print/ghostscript +LIB_DEPENDS= Xpm.5:${PORTSDIR}/graphics/xpm + +[Cette section est réservée aux autres variables bsd.port.mk + qui n'ont pas leur place dans les sections précédentes] +[S'il y a des questions lors de la configuration, de la compilation, + de l'installation ...] +IS_INTERACTIVE= yes +[Si l'extraction se fait dans un autre répertoire que ${DISTNAME}...] +WRKSRC= ${WRKDIR}/xdvi-new +[Si les mises à jour de la distribution ne sont pas relatives à ${WRKSRC}, + vous devrez peut-être utiliser cette variable] +PATCH_DIST_STRIP= -p1 +[S'il faut exécuter une procédure "configure" générée par GNU autoconf] +GNU_CONFIGURE= yes +[S'il faut compiler avec GNU make, et non /usr/bin/make, ...] +USE_GMAKE= yes +[Si c'est une application X et qu'il faut utiliser "xmkmf -a" ...] +USE_IMAKE= yes +[et cetera.] + +[Variables non-standard pour les règles qui les suivent] +MY_FAVORITE_RESPONSE= "oui, pour sûr" + +[Les règles particulières, dans l'ordre où faut les appeler] +pre-fetch: + Ouais, il faut récupérer quelque chose + +post-patch: + Génial, j'ai quelque chose à faire après la mise à jour + +pre-install: + et d'autres choses encore après l'installation + +[et l'épilogue] +.include <bsd.port.mk></programlisting> + </sect2> + + <sect2 id="porting-pkgname"> + <title>Noms des paquetages</title> + + <para>Voici les conventions à respecter pour les noms des + paquetages. Cela pour qu'il soit facile de parcourir notre + répertoire des paquetages, parce qu'il y en a déjà + beaucoup et que cela va rebuter les utilisateurs s'ils s'y usent les + yeux !</para> + + <para>Le nom du paquetage doit être de la forme + <filename><replaceable>langue-</replaceable>nom<replaceable>-particularités.de.compilation</replaceable><replaceable>-numéros.de.version</replaceable></filename>.</para> + + <para>Si votre <makevar>DISTNAME</makevar> n'est pas de ce type, + définissez <makevar>PKGNAME</makevar> en respectant ce + format.</para> + + <orderedlist> + <listitem> + <para>FreeBSD essayer d'intégrer les supports des langues + maternelles de ses utilisateurs. Le préfixe + <replaceable>langue-</replaceable> doit être le sigle de deux + lettres défini par la convention ISO-639, si le logiciel + est propre à une langue particulière. Par exemple, + <literal>ja</literal> pour le Japonais, <literal>ru</literal> pour + le Russe, <literal>vi</literal> pour le Vietnamien, + <literal>zh</literal> pour le Chinois, <literal>ko</literal> pour le + Coréen et <literal>de</literal> pour l'Allemand.</para> + </listitem> + + <listitem> + <para>Le <filename>nom</filename> doit toujours être en + minuscules, sauf pour les paquetages particulièrement + importants (qui comportent de nombreux programmes). XFree86 ou + ImageMagick par exemple appartiennent à cette + catégorie. Sinon, mettez le nom (ou au moins la + première lettre) en minuscules. Si les majuscules ont un sens + dans le nom (par exemple pour les noms d'une seule lettre comme + <literal>R</literal> ou <literal>V</literal>), vous pouvez utiliser + des majuscules si vous le souhaitez. Il est de tradition d'appeler + les modules Perl 5 en les faisant précéder de + <literal>p5-</literal> et en remplaçant les deux deux-points + par un tiret; par exemple, le module <literal>Data::Dumper</literal> + devient <literal>p5-Data-Dumper</literal>. S'il y a des + numéros, tirets ou soulignés dans le nom, vous pouvez + aussi les conserver (par exemple, + <literal>kinput2</literal>).</para> + </listitem> + + <listitem> + <para>Si le logiciel peut-être compilé avec + différentes <link linkend="porting-masterdir">valeurs par + défaut codées en dur</link> (ce qui fait d'habitude + partie du nom de répertoire d'une famille de logiciels), les + <replaceable>-particularités.de.compilation</replaceable> + doivent indiquer quelles sont ces valeurs (le tiret n'est pas + obligatoire). On peut donner en exemple la résolution des + polices ou le format de papier.</para> + </listitem> + + <listitem> + <para>La version doit être une suite d'entiers + séparés par des points ou un unique caractère + alphabétique. La seule exception concerne la chaîne + <literal>pl</literal> + (“<foreignphrase>patchlevel</foreignphrase>” - niveau + de mise à jour), qui ne peut être utilisée que + lorsque qu'il n'y a pas de numéros de version majeure et + mineure du logiciel.</para> + </listitem> + </orderedlist> + + <para>Voici quelques exemples (réels) de la manière de + convertir un <makevar>DISTNAME</makevar> en un + <makevar>PKGNAME</makevar> :</para> + + <informaltable frame="none"> + <tgroup cols="3"> + <thead> + <row> + <entry>Nom de la Distribution</entry> + <entry>Nom du Paquetage</entry> + <entry>Raison</entry> + </row> + </thead> + + <tbody> + <row> + <entry>mule-2.2.2.</entry> + <entry>mule-2.2.2</entry> + <entry>Pas de changement nécessaire</entry> + </row> + + <row> + <entry>XFree86-3.1.2</entry> + <entry>XFree86-3.1.2</entry> + <entry>Pas de changement nécessaire</entry> + </row> + + <row> + <entry>EmiClock-1.0.2</entry> + <entry>emiclock-1.0.2</entry> + <entry>Pas de majuscules pour les programmes individuels</entry> + </row> + + <row> + <entry>gmod1.4</entry> + <entry>gmod-1.4</entry> + <entry>Il faut un tiret avant les numéros de + version</entry> + </row> + + <row> + <entry>xmris.4.0.2</entry> + <entry>xmris-4.0.2</entry> + <entry>Il faut un tiret avant les numéros de + version</entry> + </row> + + <row> + <entry>rdist-1.3alpha</entry> + <entry>rdist-1.3a</entry> + <entry>Les chaînes de caractères comme + <literal>alpha</literal> ne sont pas autorisées</entry> + </row> + + <row> + <entry>es-0.9-beta1</entry> + <entry>es-0.9b1</entry> + <entry>Les chaînes de caractères comme + <literal>beta</literal> ne sont pas autorisées</entry> + </row> + + <row> + <entry>v3.3beta021.src</entry> + <entry>tiff-3.3</entry> + <entry>C'était quoi exactement ?</entry> + </row> + + <row> + <entry>tvtwm</entry> + <entry>tvtwm-pl11</entry> + <entry>Il doit toujours y avoir une version</entry> + </row> + + <row> + <entry>piewm</entry> + <entry>piewm-1.0</entry> + <entry>Il doit toujours y avoir une version</entry> + </row> + + <row> + <entry>xvgr-2.10pl1</entry> + <entry>xvgr-2.10.1</entry> + <entry><literal>pl</literal> n'est autorisé que lorsqu'il + n'y a pas de numéro de version majeure/mineure</entry> + </row> + + <row> + <entry>gawk-2.15.6</entry> + <entry>ja-gawk-2.15.6</entry> + <entry>Version Japonaise</entry> + </row> + + <row> + <entry>psutils-1.13</entry> + <entry>psutils-letter-1.13</entry> + <entry>Taille de page en dur à la compilation</entry> + </row> + + <row> + <entry>pkfonts</entry> + <entry>pkfonts300-1.0</entry> + <entry>Paquetage pour les polices 300dpi</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para>S'il n'y a nulle part d'information sur la version et qu'il y a peu + de chances que l'auteur sorte une nouvelle version, prennez + <literal>1.0</literal> comme numéro de version (comme pour piewm + ci-dessus). Sinon, posez la question à l'auteur ou servez-vous de + la date + (<literal><replaceable>aa</replaceable>.<replaceable>mm</replaceable>.<replaceable>jj</replaceable></literal>) + comme version.</para> + </sect2> + + <sect2 id="porting-categories"> + <title>Catégories</title> + + <para>Comme vous le savez déjà, les logiciels portés + sont répartis en différentes catégories. Mais, il + est important, pour que cette classification fonctionne, que les + responsables des portages et les utilisateurs comprennent ce qu'est + chaque catégorie et comment nous choisissons la catégorie + dans laquelle nous classons un logiciel.</para> + + <sect3> + <title>Liste actuelle des catégories</title> + + <para>Voici tout d'abord la liste des catégories à ce + jour. Celles qui sont suivies d'une astérisque + (<literal>*</literal>) sont des catégories + <emphasis>virtuelles</emphasis>—il n'y a pas de + sous-répertoires correspondant dans le catalogue des logiciels + portés.</para> + + <note> + <para>Pour les catégories réelles, il y a une ligne de + description dans le fichier <filename>pkg/COMMENT</filename> du + sous-répertoire correspondant (e.g., + <filename>archivers/pkg/COMMENT</filename>).</para> + </note> + + <informaltable frame="none"> + <tgroup cols="2"> + <thead> + <row> + <entry>Catégorie</entry> + <entry>Description</entry> + </row> + </thead> + + <tbody> + <row> + <entry><filename>afterstep*</filename></entry> + <entry>Logiciels pour le gestionnaire de fenêtres + AfterStep</entry> + </row> + + <row> + <entry><filename>archivers</filename></entry> + <entry>Outils d'archivage</entry> + </row> + + <row> + <entry><filename>astro</filename></entry> + <entry>Logiciels d'astronomie</entry> + </row> + + <row> + <entry><filename>audio</filename></entry> + <entry>Son</entry> + </row> + + <row> + <entry><filename>benchmarks</filename></entry> + <entry>Outils de mesure de performances</entry> + </row> + + <row> + <entry><filename>biology</filename></entry> + <entry>Logiciels en rapport avec la biologie</entry> + </row> + + <row> + <entry><filename>cad</filename></entry> + <entry>Conception assistée par ordinateur</entry> + </row> + + <row> + <entry><filename>chinese</filename></entry> + <entry>Support de la langue Chinoise</entry> + </row> + + <row> + <entry><filename>comms</filename></entry> + <entry>Logiciels de communication. Essentiellement des logiciels + qui dialoguent avec votre port série</entry> + </row> + + <row> + <entry><filename>converters</filename></entry> + <entry>Convertisseurs de codes de caractéres</entry> + </row> + + <row> + <entry><filename>databases</filename></entry> + <entry>Bases de données</entry> + </row> + + <row> + <entry><filename>deskutils</filename></entry> + <entry>Ce que l'on avait sur son bureau avant l'invention des + ordinateurs</entry> + </row> + + <row> + <entry><filename>devel</filename></entry> + <entry>Outils de développement. N'y mettez pas de + bibliothèques simplement parce que ce sont des + bibliothèques—à moins qu'elles n'aient + vraiment pas leur place ailleurs, elles ne doivent pas + être dans cette catégorie</entry> + </row> + + <row> + <entry><filename>editors</filename></entry> + <entry>Editeurs généraux. Les éditeurs + spécialisés vont dans la catégorie + correspondante (e.g., un éditeur de formules + mathématiques ira dans + <filename>math</filename>)</entry> + </row> + + <row> + <entry><filename>elisp</filename></entry> + <entry>Logiciels Emacs-lisp</entry> + </row> + + <row> + <entry><filename>emulators</filename></entry> + <entry>Emulateurs d'autres systèmes d'exploitation. Les + émulateurs de terminaux ne rentrent + <emphasis>pas</emphasis> dans cette + catégorie—ceux pour X vont dans + <filename>x11</filename> et les émulateurs en mode + texte dans <filename>comms</filename> ou + <filename>misc</filename>, selon leur fonction exacte</entry> + </row> + + <row> + <entry><filename>games</filename></entry> + <entry>Jeux</entry> + </row> + + <row> + <entry><filename>german</filename></entry> + <entry>Support de la langue Allemande</entry> + </row> + + <row> + <entry><filename>graphics</filename></entry> + <entry>Utilitaires graphiques</entry> + </row> + + <row> + <entry><filename>japanese</filename></entry> + <entry>Support de la langue Japonaise</entry> + </row> + + <row> + <entry><filename>kde*</filename></entry> + <entry>Logiciels qui constituent “<foreignphrase>K Desktop + Environment</foreignphrase>” (kde)</entry> + </row> + + <row> + <entry><filename>korean</filename></entry> + <entry>Support de la langue Coréenne</entry> + </row> + + <row> + <entry><filename>lang</filename></entry> + <entry>Langages de programmation</entry> + </row> + + <row> + <entry><filename>mail</filename></entry> + <entry>Logiciels de courrier électronique</entry> + </row> + + <row> + <entry><filename>math</filename></entry> + <entry>Logiciels de calcul numérique et autres outils + mathématiques</entry> + </row> + + <row> + <entry><filename>mbone</filename></entry> + <entry>Applications MBone</entry> + </row> + + <row> + <entry><filename>misc</filename></entry> + <entry>Utilitaires variés—essentiellement ceux qui + n'ont pas leur place ailleurs. C'est la seul catégorie + qui ne doit pas apparaître en même temps qu'une + autre catégorie non virtuelle. S'il y a + <literal>misc</literal> et autre chose dans votre ligne + <makevar>CATEGORIES</makevar>, cela signifie que vous pouvez + sans risque supprimer <literal>misc</literal> et mettre le + logiciel dans cet autre sous-répertoire</entry> + </row> + + <row> + <entry><filename>net</filename></entry> + <entry>Outils réseau divers</entry> + </row> + + <row> + <entry><filename>news</filename></entry> + <entry>Logiciels pour les listes de discussion USENET</entry> + </row> + + <row> + <entry><filename>offix*</filename></entry> + <entry>Logiciels de la suite OffiX</entry> + </row> + + <row> + <entry><filename>palm</filename></entry> + <entry>Logiciels à utiliser avec la gamme 3Com + Palm(tm)</entry> + </row> + + <row> + <entry><filename>perl5*</filename></entry> + <entry>Logiciels qui nécessitent Perl version 5</entry> + </row> + + <row> + <entry><filename>plan9*</filename></entry> + <entry>Programmes divers de Plan9.</entry> + </row> + + <row> + <entry><filename>print</filename></entry> + <entry>Logiciels d'impression. Les logiciels de publication + (prévisualiseurs, etc.) appartiennent aussi à + cette catégorie</entry> + </row> + + <row> + <entry><filename>python*</filename></entry> + <entry>Logiciels écrits en Python</entry> + </row> + + <row> + <entry><filename>russian</filename></entry> + <entry>Support de la langue Russe</entry> + </row> + + <row> + <entry><filename>security</filename></entry> + <entry>Outils de sécurité</entry> + </row> + + <row> + <entry><filename>shells</filename></entry> + <entry>Interpréteurs de commandes</entry> + </row> + + <row> + <entry><filename>sysutils</filename></entry> + <entry>Utilitaires système</entry> + </row> + + <row> + <entry><filename>tcl75*</filename></entry> + <entry>Logiciels qui nécessitent Tcl 7.5</entry> + </row> + + <row> + <entry><filename>tcl76*</filename></entry> + <entry>Logiciels qui nécessitent Tcl 7.6</entry> + </row> + + <row> + <entry><filename>tcl80*</filename></entry> + <entry>Logiciels qui nécessitent Tcl 8.0</entry> + </row> + + <row> + <entry><filename>tcl81*</filename></entry> + <entry>Logiciels qui nécessitent Tcl 8.1</entry> + </row> + + <row> + <entry><filename>textproc</filename></entry> + <entry>Outils de traitement de texte, sauf les logiciels de + publication assistée par ordinateur, qui vont dans + <filename>print/</filename></entry> + </row> + + <row> + <entry><filename>tk41*</filename></entry> + <entry>Logiciels qui nécessitent Tk 4.1</entry> + </row> + + <row> + <entry><filename>tk42*</filename></entry> + <entry>Logiciels qui nécessitent Tk 4.2</entry> + </row> + + <row> + <entry><filename>tk80*</filename></entry> + <entry>Logiciels qui nécessitent Tk 8.0</entry> + </row> + + <row> + <entry><filename>tk81*</filename></entry> + <entry>Logiciels qui nécessitent Tk 8.1</entry> + </row> + + <row> + <entry><filename>vietnamese</filename></entry> + <entry>Support de la langue Vietnamienne</entry> + </row> + + <row> + <entry><filename>windowmaker*</filename></entry> + <entry>Logiciels pour le gestionnaire de fenêtres + WindowMaker</entry> + </row> + + <row> + <entry><filename>www</filename></entry> + <entry>Logiciels en rapport avec le World Wide Web. Ce qui + concerne le langage HTML a aussi sa place ici</entry> + </row> + + <row> + <entry>x11</entry> + <entry>Le système X window et consorts. Cette + catégorie ne concerne que les logiciels directement en + rapport avec X Window. N'y mettez pas les applications X + ordinaires. Si votre logiciel est une application X, + définissez <makevar>USE_XLIB</makevar> (implicite avec + <makevar>USE_IMAKE</makevar>) et mettez le dans la + catégorie appropriée. Un grand nombre d'entre + eux vont dans les autres catégories + <filename>x11-*</filename> (voir plus bas)</entry> + </row> + + <row> + <entry><filename>x11-clocks</filename></entry> + <entry>Horloges X11</entry> + </row> + + <row> + <entry><filename>x11-fm</filename></entry> + <entry>Gestionnaires de fichiers X11</entry> + </row> + + <row> + <entry><filename>x11-fonts</filename></entry> + <entry>Polices de caractères X11 et outils + associés</entry> + </row> + + <row> + <entry><filename>x11-toolkits</filename></entry> + <entry>Boîtes à outils X11</entry> + </row> + + <row> + <entry><filename>x11-wm</filename></entry> + <entry>Gestionnaires de fenêtres X11</entry> + </row> + </tbody> + </tgroup> + </informaltable> + </sect3> + + <sect3> + <title>Choisir la bonne catégorie</title> + + <para>Comme de nombreuses catégories ont des logiciels en commun, + vous devez souvent décider laquelle sera la catégorie + principale de votre logiciel. Voici une liste de priorités, par + ordre décroissant :</para> + + <itemizedlist> + <listitem> + <para>Les catégories liées à la langue + viennent en premier. Par exemple, si vous installez des polices + X11 Japonaise, alors vous mettrez <literal>japanese x11</literal> + dans votre ligne <makevar>CATEGORIES</makevar>.</para> + </listitem> + + <listitem> + <para>Les catégories les plus spécifiques viennent + avant celles qui le sont moins. Par exemple, un éditeur + HTML doit être listé dans <literal>www + editors</literal>, et non l'inverse. Vous n'avez par ailleurs pas + besoin de mettre <literal>net</literal> si le logiciel appartient + à l'une des catégories <literal>mail</literal>, + <literal>mbone</literal>, <literal>news</literal>, + <literal>security</literal> ou <literal>www</literal>.</para> + </listitem> + + <listitem> + <para><literal>x11</literal> n'est une catégorie secondaire + que lorsque la catégorie principale est une langue + nationale. En particulier, il ne faut pas mettre + <literal>x11</literal> pour les applications X.</para> + </listitem> + + <listitem> + <para>Si votre logiciel ne va vraiment nulle part ailleurs, + mettez-le dans <literal>misc</literal>.</para> + </listitem> + </itemizedlist> + + <para>SI vous n'êtes pas sûr de la catégorie, mettez + s'il vous plaît un commentaire à ce sujet lorsque vous + soumettez votre <command>send-pr</command> pour que nous puissions en + discuter avant de l'intégrer. (Si vous avez l'accès en + écriture, envoyez une note à &a.ports; pour qu'il y ait + discussion au préalable—les nouveaux logiciels sont trop + souvent importés dans la mauvaise catégorie et doivent + être déplacés immédiatement + après.)</para> + </sect3> + </sect2> + + <sect2> + <title>Modifications de ce document et du système des logiciels + portés</title> + + <para>Si vous maintenez de noombreux logiciels portés, vous + devriez vous abonner à &a.ports;. Les modifications importantes + au fonctionnement du catalogue des logiciels portés y seront + annoncées. Vous aurez toujours des informations plus + détaillées sur les dernières modifications en + consultant les + <ulink url="http://www.FreeBSD.ORG/cgi/cvsweb.cgi/ports/Mk/bsd.port.mk">traces + CVS pour bsd.port.mk</ulink>.</para> + </sect2> + + <sect2> + <title>That is It, Folks!</title> + + <para>C'est vraiment un long chapitre, n'est-ce-pas ? Merci de + nous avoir suivi jusqu'ici.</para> + + <para>Vous savons donc maintenant comment porter un logiciel. Allons-y et + convertissons le monde entier en logiciel portés ! C'est la + façon la plus simple de commencer à contribuer au projet + FreeBSD ! <!-- smiley --><emphasis>:)</emphasis></para> + </sect2> + </sect1> +</chapter> +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-shorttag: nil + sgml-always-quote-attributes: t + sgml-minimize-attributes: max + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> + diff --git a/fr_FR.ISO_8859-1/books/handbook/ppp-and-slip/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/ppp-and-slip/chapter.sgml new file mode 100644 index 0000000000..4ca6f4bf84 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/ppp-and-slip/chapter.sgml @@ -0,0 +1,2783 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + + <chapter id="ppp-and-slip"> + <title>PPP et SLIP</title> + &trans.a.haby; + + <para>Si vous vous connectez à l'Internet avec un modem ou si vous + voulez offrir à d'autres la possibilité de se connecter à l'Internet + par l'intermédiaire d'un système FreeBSD, vous pouvez utiliser PPP ou + SLIP. Il y a par ailleurs deux versions de PPP: + <emphasis>en mode utilisateur</emphasis> (aussi appelé + <emphasis>iijppp</emphasis>) et <emphasis>intégré au + noyau</emphasis>. Ce chapitre décrit les procédures de configuration + des deux variantes de PPP et de mise en oeuvre de SLIP.</para> + + + <sect1 id="userppp"> + <title>Configurer PPP en mode utilisateur</title> + + <para>La version utilisateur de PPP est apparue avec la version 2.0.5 + de FreeBSD en supplément à l'implémentation existante + de PPP dans le noyau. Qu'a donc de différent cette + nouvelle version de PPP qui justifie son ajout? Pour citer les pages + de manuel:</para> + + <blockquote> + <para>Ceci est le logiciel PPP sous forme de processus utilisateur. + PPP est normalement implémenté dans le noyau (e.g. le + “démon” <command>pppd</command>) et est alors plus + difficile à déboguer ou + à modifier. A l'inverse, la présente implémentation se présente + sous forme de processus utilisateur utilisant le pilote de + périphérique “tunnel” + (<devicename>tun</devicename>).</para> + </blockquote> + + <para>Cela signifie essentiellement qu'au lieu de lancer un + “démon” PPP, le programme <command>ppp</command> + peut être exécuté quand et de la façon que l'on veut. Il n'y a + pas besoin de compiler d'interface PPP dans le noyau, parce que le + programme peut utiliser le pilote “tunnel” générique + pour échanger des données avec le noyau.</para> + + <para>A partir de maintenant, le programme utilisateur + <command>ppp</command> sera simplement appelé ppp, à moins qu'il ne + faille explicitement faire la distinction entre lui et d'autres + logiciels PPP client/serveur comme <command>pppd</command>. Sauf + indications contraires, toutes les commandes mentionnées dans cette + section doivent être exécutées par le super-utilisateur + <username>root</username>.</para> + + <para>Il y a de nombreuses améliorations dans la version 2 de ppp. Vous + pouvez savoir quelle est la version que vous utilisez en lançant ppp + sans argument et en tapant <command>show version</command> à l'invite. + Il est facile de passer à la version la plus récente de ppp (sur + n'importe quelle version de FreeBSD) en téléchargeant la dernière + version archivée sur + <ulink url="http://www.Awfulhak.org/ppp.html">www.Awfulhak.org</ulink>.</para> + + <sect2> + <title>Avant de commencer</title> + + <para>Ce document suppose que vous en êtes à peu près à ce + point:</para> + + <para>Vous avez un compte chez un fournisseur d'accès Internet (FAI) + qui vous permet d'utiliser PPP. Vous avez de plus un modem (ou un + autre périphérique) installé et correctement configuré avec lequel + vous pouvez vous connecter chez votre fournisseur d'accès.</para> + + <para>Vous devrez avoir les informations suivantes à portée de + main:</para> + + <itemizedlist> + + <listitem> + <para>Le(s) numéro(s) de téléphone de votre fournisseur + d'accès.</para> + </listitem> + + <listitem> + <para>Votre identifiant utilisateur et votre mot de passe. Selon + le cas, ce seront soit un identifiant et un mot de passe Unix + classiques, soit un identifiant et un mot de passe PPP PAP ou + CHAP.</para> + </listitem> + + <listitem> + <para>Les adresses IP d'un ou plusieurs serveurs de noms de + domaines. Votre fournisseur doit normalement vous donner deux + adresses IP. Vous <emphasis>devez</emphasis> avoir cette + information pour <application>PPP</application> version 1.x, + à moins que vous n'ayez votre propre serveur de noms de + domaines. A partir de la version 2, + <application>PPP</application> supporte la négociation des + adresses des serveurs de noms. Si votre fournisseur dispose + de cette fonctionnalité, alors la commande + <command>enable dns</command> dans votre fichier de + configuration dit à <application>PPP</application> de + définir à votre place les serveurs de noms.</para> + </listitem> + </itemizedlist> + + <para>Les informations suivantes vous ont peut-être aussi été données + par votre fournisseur d'accès, mais ce n'est pas absolument + indispensable:</para> + + <itemizedlist> + <listitem> + <para>L'adresse IP de la passerelle de votre fournisseur. La + passerelle est la machine à laquelle vous vous connecterez et + qui deviendra votre <emphasis>route par + défaut</emphasis> - “default route”. S'il + ne vous l'a pas donnée, vous pouvez en fabriquer une et le serveur + PPP de votre fournisseur vous donnera l'adresse exacte quand vous + vous connecterez.</para> + + <para>ppp connaît ce numéro IP sous l'appellation + <literal>HISADDR</literal>.</para> + </listitem> + + <listitem> + <para>Le masque de sous-réseau de votre fournisseur d'accès. S'il ne + vous l'a pas donné, vous pouvez sans risque utiliser la valeur + <hostid role="netmask">255.255.255.0</hostid>.</para> + + <para>Si votre fournisseur vous procure une adresse IP fixe et un + nom de machine, vous pouvez aussi introduire ces informations dans + votre configuration. Sinon, nous le laisserons simplement nous + attribuer l'adresse IP qui lui convient.</para> + </listitem> + </itemizedlist> + + <para>Si vous n'avez pas l'une des informations requises, contactez + votre fournisseur et assurez-vous qu'il vous la donne.</para> + + </sect2> + + <sect2> + <title>Compiler un noyau pour ppp</title> + + <para>Comme on l'a vu dans la description qu'en donnent les pages de + manuel, <command>ppp</command> + utilise le pilote <devicename>tun</devicename> du noyau. Il faut + vous assurez que le support de ce pseudo-périphérique est bien + inclus dans votre noyau.</para> + + <para>Pour cela, allez dans votre répertoire de configuration du + noyau (<filename>/sys/i386/conf</filename> ou + <filename>/sys/pc98/conf</filename>) et consultez votre fichier + de configuration. Il doit comporter quelque part la ligne + + <programlisting> +pseudo-device tun 1</programlisting> + + Elle figure en standard dans le noyau <filename>GENERIC</filename>, + donc, si vous n'avez pas installé de noyau sur-mesure ou n'avez pas + de répertoire <filename>/sys</filename>, vous n'avez rien + à changer.</para> + + <para>Si la ligne n'est pas dans le fichier de configuration de votre + noyau, ou si vous avez besoin de plus d'un périphérique + <devicename>tun</devicename> (par exemple, si vous installez un + serveur qui puisse fournir 16 connexions simultanées vers + l'extérieur, vous devrez mettre <literal>16</literal> au lieu de + <literal>1</literal>), il vous faut alors ajouter la ligne, + recompiler, réinstaller et redémarrer avec le nouveau noyau. + Reportez-vous s'il vous plaît au chapitre + <link linkend="kernelconfig">Configurer le noyau de FreeBSD</link> + pour plus d'informations sur la marche à suivre.</para> + + <para>Vous pouvez voir de combien de pseudo-périphériques + <devicename>tun</devicename> dispose votre noyau avec la + commande suivante:</para> + + <informalexample> + <screen>&prompt.root; <userinput>ifconfig -a</userinput> +tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500 + inet 200.10.100.1 --> 203.10.100.24 netmask 0xffffffff +tun1: flags=8050<POINTOPOINT,RUNNING,MULTICAST> mtu 576 +tun2: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500 + inet 203.10.100.1 --> 203.10.100.20 netmask 0xffffffff +tun3: flags=8010<POINTOPOINT,MULTICAST> mtu 1500</screen> + </informalexample> + + <para>Dans cette exemple, il y a quatre périphériques + “tunnel”, dont deux sont déjà configurés et utilisés. + Remarquez que l'indication <literal>RUNNING</literal> signifie que + l'interface + a déjà été utilisée à un moment donné - ce n'est pas + une erreur si votre interface n'apparaît pas comme + <literal>RUNNING</literal>.</para> + + <para>Si votre noyau n'inclut pas de pseudo-périphérique + <devicename>tun</devicename> et que vous ne pouvez pas le recompiler + pour une raison ou une autre, tout n'est pas perdu. Vous devriez + pouvoir charger dynamiquement le code. Voyez les pages de manuel de + <citerefentry><refentrytitle>modload</refentrytitle><manvolnum>8</manvolnum></citerefentry> + et <citerefentry><refentrytitle>lkm</refentrytitle><manvolnum>4</manvolnum></citerefentry> + appropriées pour plus de détails.</para> + + <para>Vous voudrez peut-être en profiter pour configurer en même temps + un coupe-feu. Vous trouverez plus de détails à la section + <link linkend="firewalls">Coupe-Feux</link>.</para> + + </sect2> + + <sect2> + <title>Tester le périphérique <devicename>tun</devicename></title> + + <para>La plupart des utilisateurs n'auront besoin que d'un + périphérique <devicename>tun</devicename> + (<filename>/dev/tun0</filename>). Si vous en avez définis plus d'un + (i.e., une autre valeur que <literal>1</literal> à la ligne + <literal>pseudo-device</literal> du fichier de configuration du + noyau), adaptez toutes les références à + <devicename>tun0</devicename> dans ce qui suit à votre cas + particulier.</para> + + <para>La meilleure façon de vous assurez que votre périphérique + <devicename>tun0</devicename> est correctement configuré est de + recréer le fichier spécial de périphérique. Pour cela, exécutez les + commandes suivantes:</para> + + <informalexample> + <screen>&prompt.root; <userinput>cd /dev</userinput> +&prompt.root; <userinput>./MAKEDEV tun0</userinput></screen> + </informalexample> + + <para>Si vous avez 16 périphériques “tunnel” + dans votre noyau, il vous + faudra créer plus que <filename>tun0</filename>:</para> + + <informalexample> + <screen>&prompt.root; <userinput>cd /dev</userinput> +&prompt.root; <userinput>./MAKEDEV tun15</userinput></screen> + </informalexample> + + <para>Pour vérifier encore que votre noyau est correctement configuré, + la commande ci-dessous devrait vous donner le même résultat:</para> + + <informalexample> + <screen>&prompt.root; <userinput>ifconfig tun0</userinput> +tun0: flags=8050<POINTOPOINT,RUNNING,MULTICAST> mtu 1500</screen> + </informalexample> + + <para>L'indication <literal>RUNNING</literal> n'est peut-être pas encore + présente, auquel cas vous verriez:</para> + + <informalexample> + <screen>&prompt.root; <userinput>ifconfig tun0</userinput> +tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500</screen> + </informalexample> + </sect2> + + <sect2> + <title>Configuration du solveur de noms</title> + + <para>Le solveur est la partie du système qui convertit les adresses + IP en noms de machines et vice versa. Il est configurable pour + consulter des tables de correspondances entre adresses et noms + qui peuvent se trouver à deux endroits différents. La première est + le fichier <filename>/etc/hosts</filename> + (<command>man 5 hosts</command>). La seconde est le service de noms + de domaines Internet (“Domain Name + Service” - DNS), une base de données distribuée + dont la description déborde le cadre du présent document.</para> + + <para>Cette section décrit brièvement comment configurer votre + solveur.</para> + + <para>Le solveur est un ensemble d'appels système qui font la + conversion, mais vous devez leur dire où trouver l'information. + Cela se fait en modifiant le fichier + <filename>/etc/host.conf</filename>. + <emphasis>N'appelez pas</emphasis> ce fichier + <filename>/etc/hosts.conf</filename> (Remarquez le + <literal>s</literal> en trop), cela pourrait poser des + problèmes.</para> + + <sect3> + <title>Renseigner le fichier + <filename>/etc/host.conf</filename></title> + + <para>Ce fichier doit contenir les deux lignes suivantes (dans cet + ordre):</para> + + <programlisting> +hosts +bind</programlisting> + + <para>Cela dit au solveur de chercher d'abord dans le fichier + <filename>/etc/hosts</filename>, puis de consulter le + DNS s'il n'a pas trouvé le nom recherché.</para> + + </sect3> + + <sect3> + <title>Renseigner le fichier + <filename>/etc/hosts</filename>(5)</title> + + <para>Ce fichier doit contenir les noms et les adresses IP des + machines de votre réseau. Il doit au grand minimum contenir les + entrées pour la machine sur laquelle tournera ppp. Supposons + qu'elle s'appelle <hostid role="fqdn">foo.bar.com</hostid> + et que son adresse IP soit + <hostid role="ipaddr">10.0.0.1</hostid>, + <filename>/etc/hosts</filename> devra comporter:</para> + + <programlisting> +127.0.0.1 localhost +10.0.0.1 foo.bar.com foo</programlisting> + + <para>La première ligne définit l'adresse <hostid>localhost</hostid> + comme synonyme de la machine elle-même. Quelle que soit votre + propre adresse IP, l'adresse IP sur cette ligne doit toujours + être <hostid role="ipaddr">127.0.0.1</hostid>. La deuxième ligne + affecte au nom <hostid role="fqdn">foo.bar.com</hostid> (et au + raccourci <hostid>foo</hostid>) l'adresse IP + <hostid role="ipaddr">10.0.0.1</hostid>.</para> + + <para>Si votre fournisseur vous a donné une adresse IP + statique et un + nom de machine, mettez-les à la place de l'entrée + <hostid role="ipaddr">10.0.0.1</hostid>.</para> + + </sect3> + + <sect3> + <title>Renseigner le fichier + <filename>/etc/resolv.conf</filename></title> + + <para><filename>/etc/resolv.conf</filename> dit au solveur ce qu'il + doit faire. Si vous avez en service votre propre DNS, vous pouvez + le laisser vide. Vous devez normalement y mettre la(les) ligne(s) + suivante(s):</para> + + <programlisting> +nameserver <replaceable>x.x.x.x</replaceable> +nameserver <replaceable>y.y.y.y</replaceable> +domain <replaceable>bar.com</replaceable></programlisting> + + <para><hostid + role="ipaddr"><replaceable>x.x.x.x</replaceable></hostid> et + <hostid role="ipaddr"><replaceable>y.y.y.y</replaceable></hostid> + sont les adresses que votre fournisseur vous a données. + Mettez autant de lignes <literal>nameserver</literal> qu'il vous + a donné d'adresses. La ligne <literal>domain</literal> se réfère + par défaut au nom de domaine de votre machine, et est + probablement inutile. Consultez les pages de manuel de + <filename>resolv.conf</filename> pour plus de détails sur les + autres entrées possibles dans ce fichier.</para> + + <para>Si vous utilisez la version 2 ou ultérieure de PPP, la commande + <command>enable dns</command> dira à PPP de demander à votre + fournisseur de confirmer les informations sur les serveurs de noms. + S'il vous donne des adresses différentes (ou s'il n'y a pas de ligne + <literal>nameserver</literal> dans + <filename>/etc/resolv.conf</filename>), PPP récrira dans le fichier + les valeurs que votre fournisseur lui aura données.</para> + </sect3> + </sect2> + + <sect2> + <title>Configurer <command>ppp</command></title> + + <para>Le programme utilisateur <command>ppp</command> et le + “démon” <command>pppd</command> (l'implémentation de + PPP dans le noyau) emploient tous deux des fichiers de configuration + qui se trouvent dans le répertoire <filename>/etc/ppp</filename>. + Les fichiers de configuration fournis en exemple sont une bonne + référence pour ppp en mode utilisateur, ne les effacez pas.</para> + + <para>Pour configurer <command>ppp</command>, vous devrez, selon vos + besoins, renseigner un certain nombre de fichiers. Ce que vous y + mettrez dépend entre autres du fait que votre fournisseur vous + alloue une adresse IP statique (i.e., on vous donne une adresse IP + et vous utilisez toujours la même) ou dynamique (i.e., votre adresse + IP peut être différente à chaque session PPP).</para> + + <sect3 id="userppp-staticIP"> + <title>PPP et les adresses IP statiques</title> + + <para>Vous devrez créer un fichier de configuration appelé + <filename>/etc/ppp/ppp.conf</filename>. Il ressemblera à + l'exemple ci-dessous:</para> + + <note> + <para>Les lignes qui se terminent par <literal>:</literal> + commencent en première colonne. Toutes les autres lignes + doivent être indentées avec des espaces ou des tabulations + comme dans l'exemple donné.</para> + </note> + + <programlisting> +1 default: +2 set device /dev/cuaa0 +3 set speed 115200 +4 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0 OK-AT-OK \\dATDT\\TTIMEOUT 40 CONNECT" +5 provider: +6 set phone "(0123) 456 7890" +7 set login "TIMEOUT 10 \"\" \"\" gin:--gin: foo word: bar col: ppp" +8 set timeout 300 +9 set ifaddr <replaceable>x.x.x.x</replaceable> <replaceable>y.y.y.y</replaceable> 255.255.255.0 0.0.0.0 +10 add default HISADDR +11 enable dns</programlisting> + + <para>Ne mettez pas les numéros de ligne, ils ne sont là que pour + pouvoir y faire référence dans la suite de cette + documentation.</para> + + <variablelist> + <varlistentry><term>Ligne 1:</term> + <listitem> + <para>Définit l'entrée par défaut. Les commandes de cette + entrée sont automatiquement exécutées au lancement de + ppp.</para> + </listitem> + </varlistentry> + + <varlistentry><term>Ligne 2:</term> + + <listitem> + <para>Identifie le périphérique auquel est connecté le + modem. <devicename>COM1:</devicename> correspond à + <filename>/dev/cuaa0</filename> et + <devicename>COM2:</devicename> à + <filename>/dev/cuaa1</filename>.</para> + </listitem> + </varlistentry> + + <varlistentry><term>Ligne 3:</term> + + <listitem> + <para>Fixe la vitesse à laquelle vous voulez vous + connecter. Si 115200 ne marche pas (cela devrait + fonctionner avec n'importe quel modem assez récent), + essayez avec 38400.</para> + </listitem> + </varlistentry> + + <varlistentry><term>Ligne 4:</term> + + <listitem> + <para>La chaîne d'appel. PPP en mode utilisateur utilise une + syntaxe “commande envoyée/réponse attendue” + semblable à celle du programme + <citerefentry><refentrytitle>chat</refentrytitle><manvolnum>8</manvolnum></citerefentry>. + Reportez-vous aux pages de manuel pour plus + d'informations sur les caractéristiques de ce langage.</para> + </listitem> + </varlistentry> + + <varlistentry><term>Ligne 5:</term> + + <listitem> + <para>Définit une entrée pour un fournisseur appelé + “provider”.</para> + </listitem> + </varlistentry> + + <varlistentry><term>Ligne 6:</term> + + <listitem> + <para>Donne le numéro de téléphone de ce fournisseur. + On peut indiquer plusieurs numéros de téléphone avec + les caractères <literal>:</literal> ou + <literal>|</literal> comme séparateur. La différence + entre les deux est décrite dans les pages de manuel de + ppp. En résumé, si vous voulez utiliser les numéros les + uns après les autres, utilisez <literal>:</literal>. + Si vous voulez toujours essayer d'appeler le premier + numéro et n'utiliser les autres qu'en cas d'échec, + servez-vous de <literal>|</literal>. Mettez toujours la + série de numéros de téléphone entre guillemets comme + dans l'exemple.</para> + </listitem> + </varlistentry> + + <varlistentry><term>Ligne 7:</term> + + <listitem> + <para>La séquence d'ouverture de session suit la même + syntaxe de style “chat” que la séquence + d'établissement de la connexion. Dans l'exemple donné, + la séquence correspond à un service où l'ouverture + de session ressemble à:</para> + + <informalexample> + <screen>J. Random Provider +login: <replaceable>foo</replaceable> +password: <replaceable>bar</replaceable> +protocol: ppp</screen> + </informalexample> + + <para>Vous devrez modifier cette procédure pour l'adapter + à vos besoins. Quand vous la mettez pour la première + fois au point, activez la trace de “chat” + pour vérifier que la conversation se déroule conformément + à votre attente.</para> + + <para>Si vous utilisez PAP ou CHAP, il n'y aura pas à ce stade + d'ouverture de session, la séquence peut donc être laissée à + blanc. Voyez la section + <link linkend="userppp-PAPnCHAP">authentification PAP et + CHAP</link> pour plus de détails.</para> + </listitem> + </varlistentry> + + <varlistentry><term>Ligne 8:</term> + + <listitem> + <para>Définit le délai de connexion par défaut (en + secondes). Ici, la connexion sera automatiquement coupée + après 300 secondes d'inactivité. Si vous ne voulez pas + de coupure automatique après un temps d'inactivité + donné, mettez cette valeur à zéro.</para> + </listitem> + </varlistentry> + + <varlistentry><term>Ligne 9:</term> + + <listitem> + <para>Donne les adresses des interfaces. La chaîne + <replaceable>x.x.x.x</replaceable> doit être remplacée + par l'adresse IP que votre fournisseur vous a allouée. + La chaîne <replaceable>y.y.y.y</replaceable> doit être + remplacée par l'adresse IP que votre fournisseur vous + a donnée comme passerelle (la machine à laquelle vous + vous connectez). Si votre fournisseur ne vous a pas + indiqué d'adresse pour la passerelle, utilisez + <hostid role="netmask">10.0.0.2/0</hostid>. Si vous + devez “deviner” cette adresse, veillez à + créer une entrée dans + <filename>/etc/ppp/ppp.linkup</filename> + comme expliqué à la section + <link linkend="userppp-dynamicIP">PPP et les adresses + IP dynamiques</link>. Si cette ligne manque, + <command>ppp</command> ne pourra pas être utilisé en + mode <option>-auto</option> ou + <option>-dynamic</option>.</para> + </listitem> + </varlistentry> + + <varlistentry><term>Ligne 10:</term> + + <listitem> + <para>Ajoute une route par défaut vers la passerelle de + votre fournisseur. Le mot réservé + <literal>HISADDR</literal> est remplacé par l'adresse de + la passerelle donnée à la ligne 9. Il est important que + cette ligne apparaisse après la précédente, sans quoi + le valeur de <literal>HISADDR</literal> n'est pas encore + initialisée.</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term>Ligne 11:</term> + + <listitem> + <para>Cette ligne dit à PPP de demander à votre fournisseur de + confirmer que les adresses des serveurs de noms sont correctes. + Si votre fournisseur supporte cette fonctionnalité, PPP peut + alors mettre à jour les entrées pour les serveurs de noms dans + <filename>/etc/resolv.conf</filename> avec les bonnes + valeurs.</para> + </listitem> + </varlistentry> + </variablelist> + + <para>Il n'est pas utile d'ajouter une entrée au fichier + <filename>ppp.linkup</filename> lorsque vous avez une adresse IP + statique car les entrées de votre table de routage sont correctes + avant même que vous vous soyez connecté. Vous pouvez malgré tout + vouloir ajouter des entrées pour lancer des programmes une fois + que vous êtes déjà connecté. C'est expliqué plus bas dans + l'exemple pour <command>sendmail</command>.</para> + + <para>Il y a des exemples de fichiers de configuration dans le + répertoire <filename>/etc/ppp</filename>.</para> + + </sect3> + + <sect3 id="userppp-dynamicIP"> + <title>PPP et les adresses IP dynamiques</title> + + <para>Si votre fournisseur ne vous donne pas d'adresse IP statique, + <command>ppp</command> peut être configuré pour négocier les + adresses locale et éloignée. Cela se fait en + “devinant” l'adresse IP et en laissant + <command>ppp</command> la rectifier avec le protocole de + configuration IP (“IP Configuration + Protocol” - IPCP) une fois la connexion établie. + Le fichier de configuration <filename>ppp.conf</filename> est le + même que pour <link linkend="userppp-staticIP">PPP et les + addresses IP statiques</link>, aux modifications suivantes + près:</para> + + <programlisting> +9 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0</programlisting> + + <para>Encore une fois, ne mettez pas les numéros de ligne, ils ne + sont là que pour y faire référence dans le suite des explications. + Indentez avec au moins un blanc.</para> + + <variablelist> + <varlistentry><term>Ligne 9:</term> + <listitem> + <para>Le nombre qui suit le caractère <literal>/</literal> + est le nombre de bits de l'adresse que ppp ne négociera + pas. Vous voudrez peut être utiliser des adresses IP plus + adaptées à votre cas particulier, mais l'exemple donné + marchera dans tous les cas de figure.</para> + + <para>Le dernier argument (<literal>0.0.0.0</literal>) dit à PPP + de négocier en utilisant l'adresse <hostid + role="ipaddr">0.0.0.0</hostid> plutôt que <hostid + role="ipaddr">10.0.0.1</hostid>. Ne mettez pas + <literal>0.0.0.0</literal> en premier argument de + <command>set ifaddr</command> parce que cela empêche PPP + de définir la route initiale en mode + <option>-auto</option>.</para> + + </listitem> + </varlistentry> + </variablelist> + + <para>Si vous utilisez la version 1.x de PPP, il vous faudra aussi + une entrée dans <filename>/etc/ppp/ppp.linkup</filename>. + <filename>ppp.linkup</filename> est utilisé après que la connexion + ait été établie. A ce stade, <command>ppp</command> connaît les + adresses IP <emphasis>réelles</emphasis>. L'entrée qui suit + supprimera les routes erronées existantes et créera les routes + valides:</para> + + <programlisting> +1 provider: +2 delete ALL +3 add 0 0 HISADDR</programlisting> + + <variablelist> + <varlistentry><term>Ligne 1:</term> + <listitem> + <para>A l'établissement de la connexion, + <command>ppp</command> parcourera les entrées de + <filename>ppp.linkup</filename> selon le principe + suivant. Il essayera d'abord de trouver le même libellé + que celui qui a été employé dans + <filename>ppp.conf</filename>. S'il échoue, il cherchera + une entrée pour l'adresse IP de la passerelle. C'est une + entrée dont le libellé est composé de quatre entiers (pour + les quatre octets). S'il ne la trouve pas non plus, il + cherchera l'entrée <literal>MYADDR</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry><term>Line 2:</term> + + <listitem> + <para>Cette ligne dit à <command>ppp</command> de supprimer + toutes les routes existantes pour l'interface + <devicename>tun</devicename> qu'il utilise (sauf la route + directe).</para> + </listitem> + </varlistentry> + + <varlistentry><term>Ligne 3:</term> + + <listitem> + <para>Cette ligne dit à <command>ppp</command> d'ajouter + une route par défaut vers <literal>HISADDR</literal>. + <literal>HISADDR</literal> sera remplacée par l'adresse IP + de la passerelle négociée par IPCP.</para> + + </listitem> + </varlistentry> + </variablelist> + + <para>Voyez l'entrée “pmdemand” dans les fichiers + <filename>/etc/ppp/ppp.conf.sample</filename> et + <filename>/etc/ppp/ppp.linkup.sample</filename> pour avoir un + exemple détaillé.</para> + + <para>La version 2 de PPP introduit les “routes + persistantes”. Toutes les lignes + <literal>add</literal> ou <literal>delete</literal> qui contiennent + <literal>MYADDR</literal> ou <literal>HISADDR</literal> sont + mémorisées et chaque fois que la valeur de + <literal>MYADDR</literal> ou <literal>HISADDR</literal> change, les + routes sont redéfinies. Il n'est donc plus nécessaire de répéter ces + lignes dans <filename>ppp.linkup</filename>.</para> + </sect3> + + <sect3> + <title>Recevoir des appels entrants avec <command>ppp</command></title> + + <para>Cette section vous explique comment configurer + <command>ppp</command> pour l'utiliser comme serveur.</para> + + <para>Quand vous configurez <command>ppp</command> pour recevoir + des appels entrants sur une machine connectée à un réseau local, + vous devez décider si vous transmettrez des paquets vers le + réseau local. Si c'est le cas, vous devrez allouer à la machine + distante une adresse IP sur votre sous-réseau local et utiliser la + commande + + <programlisting> +enable proxy</programlisting> + + dans le fichier <filename>ppp.conf</filename>. Vous devrez aussi + vous assurer que le fichier <filename>/etc/rc.conf</filename> + (ce fichier s'appelait auparavant + <filename>/etc/sysconfig</filename>) contienne la ligne:</para> + + <programlisting> +gateway=YES</programlisting> + + <sect4> + <title>Quel “getty”?</title> + + <para>La section + <link linkend="dialup">Connexions téléphoniques</link> + décrit en détail la mise en oeuvre des connexions + entrantes avec “getty”.</para> + + <para>Une alternative à <command>getty</command> est <ulink + url="http://www.leo.org/~doering/mgetty/index.html">mgetty</ulink>, une version de <command>getty</command> spécialement conçue pour les connexions téléphoniques.</para> + + <para>Un des avantages de <command>mgetty</command> est qu'il + <emphasis>discute</emphasis> avec les modems, ce qui signifie + que si le port est marqué “off” dans + <filename>/etc/ttys</filename>, votre modem ne décrochera pas + le téléphone.</para> + + <para>Les dernières versions de <command>mgetty</command> (à + partir de la 0.99bêta) suportent aussi la détection automatique + des fluxs PPP, ce qui permet à vos clients d'accéder au serveur + sans exécuter de procédures particulières.</para> + + <para>Voyez <link linkend="userppp-mgetty">Mgetty et + AutoPPP</link> pour plus d'informations sur + <command>mgetty</command>.</para> + + </sect4> + + <sect4> + <title>Autorisations pour PPP</title> + + <para><command>ppp</command> doit normalement être exécuté avec un + IDentifiant utilisateur de 0. Cependant, si vous voulez + autoriser l'exécution du serveur <command>ppp</command>, comme + décrit ci-dessous, sous un compte utilisateur ordinaire, vous + devez autoriser ces utilisateurs à exécuter + <command>ppp</command> en les ajoutant au groupe + <username>network</username> dans + <filename>/etc/group</filename>.</para> + + <para>Vous devrez aussi leur donner accès à une ou plusieurs sections + du fichier de configuration avec la commande + <command>allow</command>:</para> + + <programlisting> +allow users fred mary</programlisting> + + <para>Si vous mettez cette commande dans la section + <literal>default</literal>, vous donnez aux utilisateurs mentionnés + accès à tout.</para> + </sect4> + + <sect4> + <title>Installer une procédure PPP pour les utilisateurs + avec des adresses IP dynamiques</title> + + <para>Créez un fichier appelé + <filename>/etc/ppp/ppp-shell</filename> comme suit:</para> + + <programlisting> +#!/bin/sh +IDENT=`echo $0 | sed -e 's/^.*-\(.*\)$/\1/'` +CALLEDAS="$IDENT" +TTY=`tty` + +if [ x$IDENT = xdialup ]; then + IDENT=`basename $TTY` +fi + +echo "PPP pour $CALLEDAS sur $TTY" +echo "Démarrage PPP pour $IDENT" + +exec /usr/sbin/ppp -direct $IDENT</programlisting> + + <para>Cette procédure doit être exécutable. Créez maintenant un + lien symbolique appelé <filename>ppp-dialup</filename> sur + cette procédure avec la commande:</para> + + <informalexample> + <screen>&prompt.root; <userinput>ln -s ppp-shell /etc/ppp/ppp-dialup</userinput></screen> + </informalexample> + + <para>Utilisez cette procédure comme + <emphasis>interpréteur de commandes</emphasis> pour tous vos + utilisateurs qui se connectent avec ppp. Voici une exemple de + fichier <filename>/etc/password</filename> avec un utilisateur + PPP appelé <username>pchilds</username>. (n'oubliez pas de ne + pas éditer directement le fichier <filename>passwd</filename>, + utilisez <command>vipw</command>):</para> + + <programlisting> +pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialup</programlisting> + + <para>Créez un répertoire <filename>/home/ppp</filename> que tout + le monde puisse lire, avec le fichier vide suivant: + + <informalexample> + <screen>-r--r--r-- 1 root wheel 0 May 27 02:23 .hushlogin +-r--r--r-- 1 root wheel 0 May 27 02:22 .rhosts</screen> + </informalexample> + + ce qui évite que le contenu du fichier + <filename>/etc/motd</filename> soit affiché + à l'ouverture de session.</para> + + </sect4> + + <sect4> + <title>Installer une procédure PPP pour les utilisateurs + avec des adresses IP statiques</title> + + <para>Créez le fichier <filename>ppp-shell</filename> comme décrit + ci-dessus, et pour chaque compte auquel est assignée une adresse + IP fixe, créez un lien symbolique sur + <filename>ppp-shell</filename>.</para> + + <para>Par exemple, si vous avez trois clients appelés + <username>fred</username>, <username>sam</username>, + et <username>mary</username>, qui se connectent par téléphone et + pour qui vous servez de passerelle sur des réseaux + de classe C, vous taperez les commandes suivantes:</para> + + <informalexample> + <screen>&prompt.root; <userinput>ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred</userinput> +&prompt.root; <userinput>ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-sam</userinput> +&prompt.root; <userinput>ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-mary</userinput></screen> + </informalexample> + + <para>Vous devez définir comme interpréteur de commandes de chacun + de ces comptes les liens symboliques que vous venez de créer. + (ie. <filename>/etc/ppp/ppp-mary</filename> pour + <username>mary</username>, etc.)</para> + + </sect4> + + <sect4> + <title>Renseigner ppp.conf pour les utilisateurs avec des + adresses IP dynamiques</title> + + <para>Le fichier <filename>/etc/ppp/ppp.conf</filename> doit + contenir quelque chose qui ressemble à:</para> + + <programlisting> +default: + set debug phase lcp chat + set timeout 0 + +ttyd0: + set ifaddr 203.14.100.1 203.14.100.20 255.255.255.255 + enable proxy + +ttyd1: + set ifaddr 203.14.100.1 203.14.100.21 255.255.255.255 + enable proxy</programlisting> + + <note> + <para>L'indentation est importante.</para> + </note> + + <para>La section <literal>default:</literal> est utilisée pour + chaque session. Créez une entrée semblable à celle pour + <literal>ttyd0:</literal> ci-dessus pour chaque ligne activée + dans <filename>/etc/ttys</filename>. Vous devez attribuer à + chaque ligne une adresse IP dans votre plage d'adresses IP + dynamiques.</para> + + </sect4> + + <sect4> + <title>Renseigner <filename>ppp.conf</filename> pour les + utilisateurs avec des adresses IP statiques</title> + + <para>En plus de ce que vous avez déjà introduit dans le fichier + <filename>/etc/ppp/ppp.conf</filename> d'exemple ci-dessus + vous devez ajouter une section pour chaque utilisateur auquel + est assignée une adresse IP fixe. En continuant avec notre + exemple pour <username>fred</username>, + <username>sam</username> et + <username>mary</username>:</para> + + <programlisting> +fred: + set ifaddr 203.14.100.1 203.14.101.1 255.255.255.255 + +sam: + set ifaddr 203.14.100.1 203.14.102.1 255.255.255.255 + +mary: + set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255</programlisting> + + <para>Vous devez aussi, si besoin est, + donnez les informations de routage dans + <filename>/etc/ppp/ppp.linkup</filename> pour + chaque utilisateur ayant une adresse IP fixe. + La première ligne ci-dessous ajoute + une route vers le réseau de classe C <hostid + role="ipaddr">203.14.101.0</hostid> via la liaison + ppp du client.</para> + + <programlisting> +fred: + add 203.14.101.0 netmask 255.255.255.0 HISADDR + +sam: + add 203.14.102.0 netmask 255.255.255.0 HISADDR + +mary: + add 203.14.103.0 netmask 255.255.255.0 HISADDR</programlisting> + + </sect4> + + <sect4> + <title>A propos de <command>mgetty</command>, AutoPPP et des + extensions Microsoft</title> + + + <sect5 id="userppp-mgetty"> + <title><command>mgetty</command> et AutoPPP</title> + + <para>Configurer et compiler + <command>mgetty</command> avec l'option + <literal>AUTO_PPP</literal> permet à + <command>mgetty</command> de détecter la phase LCP des + connexions PPP et de lancer automatiquement une procédure + adaptée à ppp. Cependant, comme il n'y a pas alors + d'ouverture de session avec invite et demande de mot de + passe, il est nécessaire d'authentifier les utilisateurs + en utilisant soit PAP, soit CHAP.</para> + + <para>Nous supposerons dans cette section que vous avez déjà + réussi à configurer, compiler et installer une version de + <command>mgetty</command> avec l'option + <literal>AUTO_PPP</literal> (v0.99bêta ou ultérieure).</para> + + <para>Assurez-vous que le fichier + <filename>/usr/local/etc/mgetty+sendfax/login.config</filename> contienne bien la ligne suivante:</para> + + <programlisting> +/AutoPPP/ - - /etc/ppp/ppp-pap-dialup</programlisting> + + <para>Cela dit à <command>mgetty</command> d'exécuter la + procédure <filename>ppp-pap-dialup</filename> lorsqu'il + reconnaît une connexion PPP.</para> + + <para>Créez un fichier + <filename>/etc/ppp/ppp-pap-dialup</filename> + (ce fichier doit être exécutable) avec pour contenu:</para> + + <programlisting> +#!/bin/sh +exec /usr/sbin/ppp -direct pap$IDENT</programlisting> + + <para>Pour chaque ligne d'appel activée dans le fichier + <filename>/etc/ttys</filename>, créez une entrée + correspondante dans le fichier + <filename>/etc/ppp/ppp.conf</filename>. Ces entrées + peuvent sans problème exister conjointement aux entrées + que nous avons déjà créées plus haut.</para> + + <programlisting> +pap: + enable pap + set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40 + enable proxy</programlisting> + + <para>Chaque utilisateur se connectant de cette manière devra + disposer d'une entrée “nom d'utilisateur/mot de + passe” dans le fichier + <filename>/etc/ppp/ppp.secret</filename>, ou bien vous pouvez + ajouter l'option:</para> + + <programlisting> +enable passwdauth</programlisting> + + <para>pour identifier les utilisateurs avec pap en utilisant le + fichier <filename>/etc/password</filename>.</para> + + <para>Si vous voulez affecter à certains utilisateurs une adresse IP + statique, vous pouvez donner ce numéro comme troisième argument + de <filename>/etc/ppp/ppp.secret</filename>. Le fichier + <filename>/etc/ppp/ppp.secret.sample</filename> vous en donne + des exemples.</para> + </sect5> + + <sect5> + <title>Extentions Microsoft</title> + + <para>Il est possible de configurer PPP pour qu'il fournisse à la + demande les adresses des serveurs DNS et NetBIOS.</para> + + <para>Pour mettre en service ces extensions avec PPP version 1.x, + ajoutez les lignes suivantes à la section adéquate de + <filename>/etc/ppp/ppp.conf</filename>:</para> + + <programlisting> +enable msext +set ns 203.14.100.1 203.14.100.2 +set nbns 203.14.100.5</programlisting> + + <para>Et pour PPP version 2 et ultérieures:</para> + + <programlisting> +accept dns +set dns 203.14.100.1 203.14.100.2 +set nbns 203.14.100.5</programlisting> + + <para>Cela donnera aux clients les adresses des serveurs + DNS primaire et secondaire et du serveur de noms + netbios.</para> + + <para>A partir de la version 2, si la ligne + <literal>set dns</literal> n'est pas mentionnée, PPP utilise + les valeurs données par + <filename>/etc/resolv.conf</filename>.</para> + </sect5> + </sect4> + </sect3> + + <sect3 id="userppp-PAPnCHAP"> + <title>Authentification PAP et CHAP</title> + + <para>Certains fournisseurs d'accès configurent leurs systèmes de + sorte que la phase d'authentification de votre connexion se fasse + par PAP ou CHAP. Si tel est le cas, il n'y a pas d'invite + <prompt>login:</prompt> quand vous vous connectez, le dialogue + s'établit immédiatement avec PPP.</para> + + <para>PAP est moins sécurisé que CHAP, mais la sécurité n'est + normalement pas un problème dans ce cas, parce que les mots + de passe, bien que transmis en clair, ne sont transmis que sur + une liaison série, ce qui la rend très difficile à espionner + par un pirate.</para> + + <para>Par rapport aux exemples donnés aux sections + <link linkend="userppp-staticIP">PPP et les adresses IP + statiques</link> ou <link + linkend="userppp-dynamicIP">PPP et les adresses IP + dynamiques</link>, vous devez faire les modifications + suivantes:</para> + + <programlisting> +7 set login +... +12 set authname <replaceable>MonNomUtilisateur</replaceable> +13 set authkey <replaceable>MonMotDePasse</replaceable></programlisting> + + <para>Comme toujours, ne mettez pas les numéros de ligne, ils ne + sont là que pour y faire référence dans les explications qui + suivent. Il faut indenter avec au moins un espace.</para> + + <variablelist> + <varlistentry><term>Ligne 7:</term> + <listitem> + <para>Votre fournisseur ne vous demandera normalement pas + d'ouvrir de session sur le serveur si vous utilisez PAP + ou CHAP. Vous devez donc désactiver votre séquence + “set login”.</para> + </listitem> + </varlistentry> + + <varlistentry><term>Ligne 12:</term> + + <listitem> + <para>Cette ligne donne votre nom d'utilisateur PAP/CHAP. + Remplacez <replaceable>MonNomUtilisateur</replaceable> par + la bonne valeur.</para> + </listitem> + </varlistentry> + + <varlistentry><term>Ligne 13:</term> + + <listitem> + <para>Cette ligne donne votre mot de PAP/CHAP. + Remplacez <replaceable>MonMotDePasse</replaceable> par + la bonne valeur. Peut-être voudrez-vous ajouter une ligne + supplémentaire: + + <programlisting> +15 accept PAP</programlisting> ou + + <programlisting> +15 accept CHAP</programlisting> pour que l'intention soit claire, mais + PAP et CHAP sont tous deux acceptés par défaut.</para> + + </listitem> + </varlistentry> + </variablelist> + </sect3> + + <sect3> + <title>Modifier à chaud votre configuration + <command>ppp</command></title> + + <para>Il est possible de dialoguer avec le programme + <command>ppp</command> tandis qu'il s'exécute en tâche de fond, + mais vous devez avoir configuré un port de diagnostic + qui convienne. Pour cela, ajoutez à votre configuration la + ligne suivante:</para> + + <programlisting> +set server /var/run/ppp-tun%d MotDePasseDeDiagnostic 0177</programlisting> + + <para>Cela dit à PPP d'écouter sur + la “prise” - socket - Unix + indiquée, et de demander au client de lui donner le mot de passe + mentionné avant de lui autoriser l'accès. Le + <literal>%d</literal> est à remplacer par le numéro du périphérique + “tunnel” utilisé.</para> + + <para>Une fois que + la “prise” - socket - a + été créée, le programme + <citerefentry><refentrytitle>pppctl</refentrytitle><manvolnum>8</manvolnum></citerefentry> + peut être utilisé par des procédures qui veulent agir sur la + configuration du programme <command>ppp</command> actif.</para> + + </sect3> + </sect2> + + <sect2 id="userppp-final"> + <title>Configuration finale du système</title> + + <para><command>ppp</command> est maintenant configuré, mais il y a + encore quelques petites choses à faire avant de pouvoir l'utiliser. + Il faut pour cela modifier le fichier + <filename>/etc/rc.conf</filename> (qui s'appelait auparavant + <filename>/etc/sysconfig</filename>).</para> + + <para>En le parcourant de haut en bas, vérifiez que la valeur + <literal>hostname=</literal> est bien renseignée, e.g.:</para> + + <programlisting> +hostname=foo.bar.com</programlisting> + + <para>Si votre fournisseur d'accès vous a donné une adresse IP + statique et un nom de machine, le mieux est d'utiliser ce nom + comme nom de votre machine.</para> + + <para>Cherchez la variable <literal>network_interfaces</literal>. Si + vous voulez configurer votre système pour vous connecter à la + demande chez votre fournisseur, vérifiez que le périphérique + <devicename>tun0</devicename> est bien dans la liste, sinon + ajoutez-le.</para> + + <programlisting> +network_interfaces="lo0 tun0" ifconfig_tun0=</programlisting> + + <note> + <para>La variable <literal>ifconfig_tun0</literal> doit être vide. + Il faut créer un fichier <filename>/etc/start_if.tun0</filename> + avec la ligne:</para> + + <programlisting> +ppp -auto mysystem</programlisting> + + <para>Cette procédure est exécutée lors de la configuration du + réseau au démarrage et lance le “démon” ppp en + mode automatique. Si cette machine sert de passerelle sur un + réseau local, vous pouvez aussi ajouter l'indicateur + <option>-alias</option>. Reportez-vous aux pages de manuel pour + plus de détails.</para> + </note> + + <para>Donnez <literal>NO</literal> comme valeur pour le programme + de routage avec la ligne:</para> + + <programlisting> +router_enable=NO (/etc/rc.conf) +router=NO (/etc/sysconfig)</programlisting> + + <para>Il est important que le “démon” + <command>routed</command> ne soit pas lancé (il est démarré par + défaut) parce que <command>routed</command> a tendance à effacer + les entrées par défaut créées dans la table de routage par + <command>ppp</command>.</para> + + <para>Il vaut probablement la peine de vérifier que la ligne + <literal>sendmail_flags</literal> ne comporte pas l'option + <option>-q</option>, sans quoi <command>sendmail</command> + jettera de temps à autre un oeil au réseau, ce qui peut amener + votre machine à ouvrir la connexion. Vous pouvez essayez:</para> + + <programlisting> +sendmail_flags="-bd"</programlisting> + + <para>L'inconvénient est que vous devrez forcer + <command>sendmail</command> à réexaminer la file d'attente + du courrier électronique chaque fois que la liaison ppp sera + activée, en tapant:</para> + + <informalexample> + <screen>&prompt.root; <userinput>/usr/sbin/sendmail -q</userinput></screen> + </informalexample> + + <para>Vous pouvez utiliser la commande <command>!bg</command> + de <filename>ppp.linkup</filename> pour le faire + automatiquement:</para> + + <programlisting> +1 provider: +2 delete ALL +3 add 0 0 HISADDR +4 !bg sendmail -bd -q30m</programlisting> + + <para>Si cela ne vous convient pas, il + est possible de mettre en place un + “dfilter” pour bloquer le trafic SMTP. Consultez les + fichiers d'exemple pour plus de détails.</para> + + <para>Vous n'avez plus qu'à redémarrer votre machine.</para> + + <para>Apres qu'elle ait redémarré, vous pouvez taper soit:</para> + + <informalexample> + <screen>&prompt.root; <userinput>ppp</userinput></screen> + </informalexample> + + <para>puis <command>dial provider</command> pour initialiser la + session PPP ou, si vous voulez que ppp lance la session + automatiquement lorsqu'il y a du trafic sortant (et que vous + n'avez pas créé le fichier <filename>start_if.tun0</filename>), + tapez:</para> + + <informalexample> + <screen>&prompt.root; <userinput>ppp -auto provider</userinput></screen> + </informalexample> + + </sect2> + + <sect2> + <title>Résumé</title> + + <para>Pour récapituler, les étapes suivantes sont nécessaires lors de + la première configuration de ppp:</para> + + <para>Côté client:</para> + + <procedure> + + <step> + <para>Vérifier que le pilote de périphérique + <devicename>tun</devicename> soit inclus dans le noyau.</para> + </step> + + <step> + <para>Vérifier que le fichier spécial de périphérique + <filename>tun<replaceable>X</replaceable></filename> existe + dans le répertoire <filename>/dev</filename>.</para> + </step> + + <step> + <para>Créer une entrée dans + <filename>/etc/ppp/ppp.conf</filename>. L'exemple + <filename>pmdemand</filename> doit suffire pour la plupart + des fournisseurs d'accès.</para> + </step> + + <step> + <para>Dans le cas d'une adresse IP dynamique, créer une entrée + dans <filename>/etc/ppp/ppp.linkup</filename>.</para> + </step> + + <step> + <para>Modifier le fichier <filename>/etc/rc.conf</filename> (ou + <filename>sysconfig</filename>).</para> + </step> + + <step> + <para>Créer une procédure <filename>start_if.tun0</filename> + dans le cas d'une connexion automatique à la demande.</para> + </step> + + </procedure> + + + <para>Côté serveur:</para> + + <procedure> + + <step> + <para>Vérifier que le pilote de périphérique + <devicename>tun</devicename> soit inclus dans le noyau.</para> + </step> + + <step> + <para>Vérifier que le fichier spécial de périphérique + <filename>tun<replaceable>X</replaceable></filename> existe + dans le répertoire <filename>/dev</filename>.</para> + </step> + + <step> + <para>Créer une entrée dans <filename>/etc/passwd</filename> + (avec le programme <citerefentry><refentrytitle>vipw</refentrytitle><manvolnum>8</manvolnum></citerefentry>).</para> + </step> + + <step> + <para>Créer un profil dans le répertoire de cet utilisateur qui + exécute <command>ppp -direct direct-server</command> ou + quelque chose d'équivalent.</para> + </step> + + <step> + <para>Créer une entrée dans + <filename>/etc/ppp/ppp.conf</filename>. L'exemple + <filename>direct-server</filename> devrait suffire.</para> + </step> + + <step> + <para>Créer une entrée dans + <filename>/etc/ppp/ppp.linkup</filename>.</para> + </step> + + <step> + <para>Modifier le fichier <filename>/etc/rc.conf</filename> (ou + <filename>sysconfig</filename>).</para> + </step> + + </procedure> + + </sect2> + + <sect2> + <title>Remerciements</title> + + <para>La dernière mise à jour de cette section du manuel a été + effectuée le Lundi 10 Août 1998 par &a.brian;.</para> + + <para>Merci aux personnes suivantes pour les informations, + commentaires et suggestions qu'elles m'ont transmis:</para> + + <para>&a.nik;</para> + + <para>&a.dirkvangulik;</para> + + <para>&a.pjc;</para> + + </sect2> + </sect1> + + <sect1 id="ppp"> + <title>Configurer PPP intégré au noyau</title> + + <para><emphasis>Contribution de &a.gena;.</emphasis></para> + + <para>Avant de lancer PPP sur votre machine, vérifiez que + <command>pppd</command> est bien dans le répertoire + <filename>/usr/sbin</filename> et que le répertoire + <filename>/etc/ppp</filename> existe.</para> + + <para><command>pppd</command> fonctionne de deux façons:</para> + + <orderedlist> + + <listitem> + <para>comme “client”, i.e. si vous voulez connecter + votre machine au monde extérieur via un liaison PPP série ou un + modem.</para> + </listitem> + + <listitem> + <para>comme “serveur”, i.e. si votre machine est + sur le réseau et sert à y connecter d'autres ordinateurs avec + PPP.</para> + </listitem> + + </orderedlist> + + <para>Dans les deux cas, vous devrez renseigner un fichier d'options + (<filename>/etc/ppp/options</filename> ou + <filename>~/.ppprc</filename> s'il y a plus d'un utilisateur sur votre + machine qui utilisent PPP).</para> + + <para>Il vous faudra aussi un logiciel “modem/série” + (de préférence <command>kermit</command>) pour appeler et établir la + connexion avec la machine distante.</para> + + <sect2> + <title>Utiliser le client PPP</title> + + <para>J'ai utilisé le fichier <filename>/etc/ppp/options</filename> + suivant pour me connecter à la liaison PPP d'un concentrateur + CISCO.</para> + + <programlisting> +crtscts # contrôle de flux matériel +modem # liaison par modem +noipdefault # adresse IP affectée par le serveur PPP distant + # si la machine distante ne vous donne pas d'adresse IP + # lors de la négociation IPCP, ne mettez pas cette option +passive # attendre les paquets LCP +domain ppp.foo.com # mettez ici votre nom de domaine + +:<ip_éloigné> # mettez ici l'adresse IP de la machine PPP distante + # elle servira à router des paquets via la liaison PPP + # si vous n'avez pas utilisé l'option noipdefault + # changez cette ligne en <ip_local>:<ip_éloigné> +defaultroute # mettez cette ligne si vous voulez que le serveur PPP soit + # votre routeur par défaut</programlisting> + + <para>Pour vous connecter:</para> + + <procedure> + + <step> + <para>Appelez la machine éloignée avec kermit (ou un autre + programme pour modem) et donnez votre nom et votre mot + de passe (ou ce qu'il faut pour activer PPP sur la machine + distante).</para> + </step> + + <step> + <para>Quittez kermit (sans raccrocher la ligne).</para> + </step> + + <step> + <para>Entrez:</para> + + <informalexample> + <screen>&prompt.root; <userinput>/usr/src/usr.sbin/pppd.new/pppd <replaceable>/dev/tty01</replaceable> <replaceable>19200</replaceable></userinput></screen> + </informalexample> + + <para>Utilisez la vitesse et le nom de périphérique + adéquats.</para> + </step> + + </procedure> + + <para>Votre ordinateur est maintenant connecté par PPP. Si la + connexion échoue pour une raison ou une autre, vous pouvez ajouter + l'option <option>debug</option> au fichier + <filename>/etc/ppp/options</filename> et consulter les messages à + la console pour trouver la cause du problème.</para> + + <para>La procédure <filename>/etc/ppp/pppup</filename> ci-dessous + fera tout cela automatiquement:</para> + + <programlisting> +#!/bin/sh +ps ax |grep pppd |grep -v grep +pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'` +if [ "X${pid}" != "X" ] ; then + echo 'arrêt de pppd, PID=' ${pid} + kill ${pid} +fi +ps ax |grep kermit |grep -v grep +pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'` +if [ "X${pid}" != "X" ] ; then + echo 'arrêt de kermit, PID=' ${pid} + kill -9 ${pid} +fi + +ifconfig ppp0 down +ifconfig ppp0 delete + +kermit -y /etc/ppp/kermit.dial +pppd /dev/tty01 19200</programlisting> + + <para><filename>/etc/ppp/kermit.dial</filename> est la procédure + kermit qui appelle et fournit les informations d'authentification + à la machine distante. (Il y a une exemple de procédure de ce type + à la fin de ce document.)</para> + + <para>Utilisez la procédure <filename>/etc/ppp/pppdown</filename> + ci-dessous pour terminer la session PPP et vous déconnecter:</para> + + <programlisting> +#!/bin/sh +pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'` +if [ X${pid} != "X" ] ; then + echo 'arrêt de pppd, PID=' ${pid} + kill -TERM ${pid} +fi + +ps ax |grep kermit |grep -v grep +pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'` +if [ "X${pid}" != "X" ] ; then + echo 'arrêt de kermit, PID=' ${pid} + kill -9 ${pid} +fi + +/sbin/ifconfig ppp0 down +/sbin/ifconfig ppp0 delete +kermit -y /etc/ppp/kermit.hup +/etc/ppp/ppptest</programlisting> + + <para>Pour voir si PPP tourne toujours + (<filename>/usr/etc/ppp/ppptest</filename>):</para> + + <programlisting> +#!/bin/sh +pid=`ps ax| grep pppd |grep -v grep|awk '{print $1;}'` +if [ X${pid} != "X" ] ; then + echo 'pppd actif : PID=' ${pid-NONE} +else + echo 'Pas de pppd actif.' +fi +set -x +netstat -n -I ppp0 +ifconfig ppp0</programlisting> + + <para>Pour raccrocher la ligne modem + (<filename>/etc/ppp/kermit.hup</filename>):</para> + + <programlisting> +set line /dev/tty01 ; mettez ici le périphérique pour votre modem +set speed 19200 +set file type binary +set file names literal +set win 8 +set rec pack 1024 +set send pack 1024 +set block 3 +set term bytesize 8 +set command bytesize 8 +set flow none + +pau 1 +out +++ +inp 5 OK +out ATH0\13 +echo \13 +exit</programlisting> + + <para>Voici une autre méthode qui utilise <command>chat</command> + au lieu de <command>kermit</command>:</para> + + <para><emphasis>Contribution de &a.rhuff;.</emphasis></para> + + <para>Les deux fichiers suivants suffisent à établir une liaison + ppp.</para> + + <para><filename>/etc/ppp/options</filename>:</para> + + <programlisting> +/dev/cuaa1 115200 + </programlisting> + <para></para> + <programlisting> +crtscts # contrôle de flux matériel +modem # liaison par modem +connect "/usr/bin/chat -f /etc/ppp/login.chat.script" +noipdefault # adresse IP affectée par le serveur PPP distant + # si la machine distante ne vous donne pas d'adresse IP + # lors de la négociation IPCP, ne mettez pas cette option +passive # attendre les paquets LCP +domain ppp.foo.com # mettez ici votre nom de domaine + +:<ip_éloigné> # mettez ici l'adresse IP de la machine PPP distante + # elle servira à router des paquets via la liaison PPP + # si vous n'avez pas utilisé l'option noipdefault + # changez cette ligne en <ip_local>:<ip_éloigné> +defaultroute # mettez cette ligne si vous voulez que le serveur PPP soit + # votre routeur par défaut</programlisting> + + <para><filename>/etc/ppp/login.chat.script</filename>:</para> + + <para>(Ceci doit être tapé <emphasis>sur une seule + ligne</emphasis>.)</para> + + <programlisting> +ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDT<numéro.de.téléphone> + CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: <nom-d-utilisateur> + TIMEOUT 5 sword: <mot-de-passe></programlisting> + + <para>Une fois que ces fichiers sont installés et contiennent ce qu'il + faut, vous n'avez plus qu'à taper:</para> + + <informalexample> + <screen>&prompt.root; <userinput>pppd</userinput></screen> + </informalexample> + + <para>Cet exemple est avant tout basé sur des informations fournies + par: Trev Roydhouse + <Trev.Roydhouse@f401.n711.z3.fidonet.org> et utilisées + avec son autorisation.</para> + + </sect2> + + <sect2> + <title>Utiliser le serveur PPP</title> + + <para><filename>/etc/ppp/options</filename>:</para> + + <programlisting> +crtscts # contrôle de flux matériel +netmask 255.255.255.0 # masque de sous-réseau ( facultatif ) +192.114.208.20:192.114.208.165 # adresses IP des machines locales et distantes + # l'adresse locale ne doit pas être la même que + # celle que vous avez assignée à l'interface + # Ethernet ( ou autre ) de la machine. + # l'adresse IP de la machine distante est + # l'adresse qui lui sera affectée +domain ppp.foo.com # votre nom de domaine +passive # attendre LCP +modem # liaison modem</programlisting> + + <para>La procédure <filename>/etc/ppp/pppserv</filename> ci-dessous + lancera le serveur ppp sur votre machine:</para> + + <programlisting> +#!/bin/sh +ps ax |grep pppd |grep -v grep +pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'` +if [ "X${pid}" != "X" ] ; then + echo 'arrêt de pppd, PID=' ${pid} + kill ${pid} +fi +ps ax |grep kermit |grep -v grep +pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'` +if [ "X${pid}" != "X" ] ; then + echo 'arrêt de kermit, PID=' ${pid} + kill -9 ${pid} +fi + +# réinitialiser l'interface ppp +ifconfig ppp0 down +ifconfig ppp0 delete + +# activer le mode réponse automatique +kermit -y /etc/ppp/kermit.ans + +# lancer ppp +pppd /dev/tty01 19200</programlisting> + + <para>Utilisez cette procédure + <filename>/etc/ppp/pppservdown</filename> pour arrêter + le serveur:</para> + + <programlisting> +#!/bin/sh +ps ax |grep pppd |grep -v grep +pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'` +if [ "X${pid}" != "X" ] ; then + echo 'arrêt de pppd, PID=' ${pid} + kill ${pid} +fi +ps ax |grep kermit |grep -v grep +pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'` +if [ "X${pid}" != "X" ] ; then + echo 'arrêt de kermit, PID=' ${pid} + kill -9 ${pid} +fi +ifconfig ppp0 down +ifconfig ppp0 delete + +kermit -y /etc/ppp/kermit.noans</programlisting> + + <para>La procédure kermit ci-dessous active ou désactive + le mode réponse automatique de votre modem + (<filename>/etc/ppp/kermit.ans</filename>):</para> + + <programlisting> +set line /dev/tty01 +set speed 19200 +set file type binary +set file names literal +set win 8 +set rec pack 1024 +set send pack 1024 +set block 3 +set term bytesize 8 +set command bytesize 8 +set flow none + +pau 1 +out +++ +inp 5 OK +out ATH0\13 +inp 5 OK +echo \13 +out ATS0=1\13 ; remplacez par ATS0=0\13 pour désactiver + ; le mode réponse automatique +inp 5 OK +echo \13 +exit</programlisting> + + <para>La procédure + <filename>/etc/ppp/kermit.dial</filename> établit la connexion et + ouvre la session sur la machine distante. Vous devrez l'adapter + à vos besoins propres. Mettez-y votre nom d'utilisateur et votre + mot de passe, et modifiez aussi les chaînes attendues en réponse + selon ce que vous envoient votre modem et la machine + distante.</para> + + <programlisting> +; +; mettez ici la liaison série à laquelle est raccordé le modem: +; +set line /dev/tty01 +; +; mettez ici la vitesse du modem: +; +set speed 19200 +set file type binary ; transfert 8 bits +set file names literal +set win 8 +set rec pack 1024 +set send pack 1024 +set block 3 +set term bytesize 8 +set command bytesize 8 +set flow none +set modem hayes +set dial hangup off +set carrier auto ; puis SET CARRIER si nécessaire, +set dial display on ; puis SET DIAL si nécessaire, +set input echo on +set input timeout proceed +set input case ignore +def \%x 0 ; compteur d'ouverture de session +goto slhup + +:slcmd ; met le modem en mode commande +echo Modem en mode commande. +clear ; vide le tampon d'entrée +pause 1 +output +++ ; séquence d'échappement Hayes +input 1 OK\13\10 ; attendre un OK +if success goto slhup +output \13 +pause 1 +output at\13 +input 1 OK\13\10 +if fail goto slcmd ; si le modem ne répond pas OK, réessayer + +:slhup ; raccrocher +clear ; vider le tampon d'entrée +pause 1 +echo On raccroche. +output ath0\13 ; commande HAYES pour raccrocher +input 2 OK\13\10 +if fail goto slcmd ; si pas de réponse OK, passez en mode commande + +:sldial ; composer le numéro +pause 1 +echo On appelle. +output atdt9,550311\13\10 ; mettre ici le numéro de téléphone +assign \%x 0 ; mettre le compteur de secondes à 0 + +:look +clear ; vider le tampon d'entrée +increment \%x ; compter les secondes +input 1 {CONNECT } +if success goto sllogin +reinput 1 {NO CARRIER\13\10} +if success goto sldial +reinput 1 {NO DIALTONE\13\10} +if success goto slnodial +reinput 1 {\255} +if success goto slhup +reinput 1 {\127} +if success goto slhup +if < \%x 60 goto look +else goto slhup + +:sllogin ; ouverture de session +assign \%x 0 ; mettre le compteur de secondes à 0 +pause 1 +echo Attente de l'invite de session. + +:slloop +increment \%x ; compter les secondes +clear ; vider le tampon d'entrée +output \13 +; +; Mettez ici l'invite que vous attendez: +; +input 1 {Username: } +if success goto sluid +reinput 1 {\255} +if success goto slhup +reinput 1 {\127} +if success goto slhup +if < \%x 10 goto slloop ; essayer 10 fois d'avoir l'invite +else goto slhup ; raccrocher et recommencer après 10 échecs + +:sluid +; +; Mettez ici votre nom d'utilisateur: +; +output nom-d-utilisateur-ppp\13 +input 1 {Password: } +; +; Mettez ici votre mot de passe: +; +output mot-de-passe-ppp\13 +input 1 {Entering SLIP mode.} +echo +quit + +:slnodial +echo \7Pas de tonalité. Vérifiez votre ligne téléphonique!\7 +exit 1 + +; local variables: +; mode: csh +; comment-start: "; " +; comment-start-skip: "; " +; end:</programlisting> + + </sect2> + </sect1> + + <sect1 id="slipc"> + <title>Configurer un client SLIP</title> + + <para><emphasis>Contribution de &a.asami;<!-- <br> -->8 Août + 1995.</emphasis></para> + + <para>Cette section décrit une manière de configurer une machine + FreeBSD pour utiliser SLIP sur un réseau où le nom de machine + est statique. Si le nom de machine est affecté dynamiquement (i.e., + votre adresse change à chaque connexion), vous devrez probablement + employer une méthode plus sophistiquée.</para> + + <para>Déterminez d'abord sur quel port série votre modem est branché. + J'utilise un lien symbolique de <filename>/dev/modem</filename> vers + <filename>/dev/cuaa1</filename>, et n'utilise que ce lien dans mes + fichiers de configuration. Cela évite qu'il devienne laborieux + de modifier un certain nombre de fichiers de + <filename>/etc</filename> et les + <filename>.kermrc</filename> pour l'ensemble du système!</para> + + <note> + <para><filename>/dev/cuaa0</filename> correspond à + <devicename>COM1</devicename> et + <filename>cuaa1</filename> à <devicename>COM2</devicename>, + etc.</para> + </note> + + <para>Vérifiez que la ligne: + + <programlisting> +pseudo-device sl 1</programlisting> est bien présente dans votre fichier + de configuration du noyau. Elle existe dans le noyau + <filename>GENERIC</filename>, ce n'est donc un problème que si vous + l'avez supprimée.</para> + + <sect2> + <title>Ce que vous n'aurez à faire qu'une seule fois</title> + + <procedure> + + <step> + <para>Ajoutez votre machine, la passerelle et les serveurs de + noms de domaines à votre fichier + <filename>/etc/hosts</filename>. Voici à quoi ressemble le + mien:</para> + + <programlisting> +127.0.0.1 localhost loghost +136.152.64.181 silvia.HIP.Berkeley.EDU silvia.HIP silvia +136.152.64.1 inr-3.Berkeley.EDU inr-3 slip-gateway +128.32.136.9 ns1.Berkeley.edu ns1 +128.32.136.12 ns2.Berkeley.edu ns2</programlisting> + + <para>Au passage, silvia est le nom de la voiture que j'avais + quand je suis retourné au Japon (on l'appelle 2?0SX ici aux + Etats-Unis).</para> + </step> + + <step> + <para>Vérifiez que <option>hosts</option> vient avant + <option>bind</option> dans votre fichier + <filename>/etc/host.conf</filename>. Sinon, il peut se + passer des choses bizarres.</para> + </step> + + <step> + <para>Modifiez le fichier <filename>/etc/rc.conf</filename>. + Si votre version de FreeBSD est antérieure à la version 2.2.2, + c'est le fichier <filename>/etc/sysconfig</filename> qu'il + faut modifier à la place.</para> + <orderedlist> + + <listitem> + <para>Définissez votre nom de machine à la ligne:</para> + <programlisting> +hostname=myname.my.domain</programlisting> + + <para>Vous devez donner votre nom Internet de + machine en entier.</para> + </listitem> + + <listitem> + <para>Ajouter sl0 à la liste des interfaces réseau + en modifiant la ligne:</para> + + <programlisting> +network_interfaces="lo0"</programlisting> + + <para>en:</para> + + <programlisting> +network_interfaces="lo0 sl0"</programlisting> + </listitem> + + <listitem> + <para>Définissez les paramètres de configuration de sl0 en + ajoutant une ligne:</para> + + <programlisting> +ifconfig_sl0="inet ${hostname} slip-gateway netmask 0xffffff00 up"</programlisting> + </listitem> + + <listitem> + <para>Précisez la passerelle par défaut en modifiant + la ligne:</para> + <programlisting> +defaultrouter=NO</programlisting> + <para>en:</para> + <programlisting> +defaultrouter=slip-gateway</programlisting> + </listitem> + + </orderedlist> + + </step> + + <step> + <para>Créez un fichier <filename>/etc/resolv.conf</filename> qui + contienne:</para> + + <programlisting> +domain HIP.Berkeley.EDU +nameserver 128.32.136.9 +nameserver 128.32.136.12</programlisting> + + <para>Comme vous le constatez, c'est la définition des serveurs de + noms de domaines. Bien entendu, les noms et les adresses de + ceux-ci sont fonction de votre environnement particulier.</para> + </step> + + <step> + <para>Donnez des mots de passe à root et toor (et à tous les + autres comptes qui n'auraient pas de mot de passe). Employez + <command>passwd</command>, ne modifiez pas les fichiers + <filename>/etc/passwd</filename> ou + <filename>/etc/master.passwd</filename>!</para> + </step> + + <step> + <para>Redémarrez la machine et vérifiez qu'elle a bien le nom + voulu.</para> + </step> + + </procedure> + + </sect2> + + <sect2> + <title>Etablir une connexion SLIP</title> + + <procedure> + + <step> + <para>Téléphonez, tapez <command>slip</command> à l'invite, + entrez votre nom d'utilisateur et votre mot de passe. Ce + que vous avez à faire dépend de votre environnement. J'utilise + une procédure kermit comme celle-ci:</para> + + <programlisting> +# configuration kermit +set modem hayes +set line /dev/modem +set speed 115200 +set parity none +set flow rts/cts +set terminal bytesize 8 +set file type binary +# La macro-instruction qui suit téléphone et établit la connexion +define slip dial 643-9600, input 10 =>, if failure stop, - +output slip\x0d, input 10 Username:, if failure stop, - +output silvia\x0d, input 10 Password:, if failure stop, - +output ***\x0d, echo \x0aCONNECTED\x0a</programlisting> + <para>(vous devez bien sur remplacer le nom et le mot de + passe par les vôtres). Vous pouvez alors entrer simplement + <command>slip</command> à l'invite de kermit + pour vous connecter.</para> + + <note> + <para>Laisser votre mot de passe en clair dans un + quelconque fichier est en général une + <emphasis>MAUVAISE</emphasis> idée. Faites-le à vos risques + et périls. Je suis simplement trop paresseux.</para> + </note> + </step> + + <step> + <para>Laissez maintenant kermit tel que (vous pouvez le mettre + en arrière-plan avec <command>z</command>) et, sous le compte + super-utilisateur, tapez:</para> + + <informalexample> + <screen>&prompt.root; <userinput>slattach -h -c -s 115200 /dev/modem</userinput></screen> + </informalexample> + + <para>Si vous arriver à envoyer un <command>ping</command> à des + machines situées de l'autre côté du routeur, vous êtes + connecté! Si cela ne marche pas, vous pouvez essayer l'option + <option>-a</option> au lieu de l'option <option>-c</option> de + slattach.</para> + </step> + + </procedure> + + </sect2> + + <sect2> + <title>Comment couper la connexion</title> + + <para>Tapez: + + <informalexample> + <screen>&prompt.root; <userinput>kill -INT `cat /var/run/slattach.modem.pid`</userinput></screen> + </informalexample>(en étant super-utilisateur + <username>root</username>) + pour tuer slattach. Revenez maintenant sous kermit + (<command>fg</command> si vous l'avez mis en tâche de fond) + et quittez-le (<command>q</command>).</para> + + <para>Les pages de manuel de slattach disent que vous devez employer + <command>ifconfig sl0 down</command> pour indiquer que l'interface + n'est plus active, mais cela ne change apparement rien pour moi. + (Les diagnostics de <command>ifconfig sl0</command> sont + identiques.)</para> + + <para>Il arrive parfois que votre modem refuse de raccrocher (le mien + le fait souvent). Dans ce cas, relancez kermit et quittez-le de + nouveau. Cela marche en général au deuxième essai.</para> + + </sect2> + + <sect2> + <title>En cas de problèmes</title> + + <para>Si cela ne marche pas, n'hésitez pas à me contacter. Voici + les problèmes que certains ont rencontrés jusqu'ici:</para> + + <itemizedlist> + + <listitem> + <para>Ne pas utiliser l'option <option>-c</option> ou + <option>-a</option> de slattach (Je n'ai aucune idée + de pourquoi cela pose problème, mais le fait de mettre + cet indicateur a au moins fourni la solution dans un + cas).</para> + </listitem> + + <listitem> + <para>Mettre <option>s10</option> au lieu <option>sl0</option> + (avec certaines polices de caractères, il est parfois + difficile de faire la différence).</para> + </listitem> + + <listitem> + <para>Essayez <command>ifconfig sl0</command> pour contrôler + la configuration de votre interface. J'obtiens:</para> + + <informalexample> + <screen>&prompt.root; <userinput>ifconfig sl0</userinput> +sl0: flags=10<POINTOPOINT> + inet 136.152.64.181 --> 136.152.64.1 netmask ffffff00</screen> + </informalexample> + </listitem> + + <listitem> + <para>De même, <command>netstat -r</command> vous affichera + la table de routage, au cas où <command>ping</command> + vous renverrait des + messages “no route to host”. + Voici la mienne:</para> + + <informalexample> + <screen>&prompt.root; <userinput>netstat -r</userinput> +Routing tables +Destination Gateway Flags Refs Use IfaceMTU Rtt Netmasks: + +(root node) +(root node) + +Route Tree for Protocol Family inet: +(root node) => +default inr-3.Berkeley.EDU UG 8 224515 sl0 - - +localhost.Berkel localhost.Berkeley UH 5 42127 lo0 - 0.438 +inr-3.Berkeley.E silvia.HIP.Berkele UH 1 0 sl0 - - +silvia.HIP.Berke localhost.Berkeley UGH 34 47641234 lo0 - 0.438 +(root node)</screen> + </informalexample> + <para>(cela après transfert d'un certain nombre de fichiers, vous + devriez avoir des valeurs moins importantes).</para> + </listitem> + + </itemizedlist> + + </sect2> + </sect1> + + <sect1 id="slips"> + <title>Configurer un serveur SLIP</title> + + <para><emphasis>Contribution de &a.ghelmer;.<!-- <br> --> v1.0, 15 Mai + 1995.</emphasis></para> + + <para>Ce document vous donne des indications pour mettre en oeuvre un + serveur SLIP sur un système FreeBSD, ce qui signifie typiquement + configurer votre système pour ouvrir une connexion à l'ouverture + d'une session depuis une machine distante. L'auteur l'a rédigé en + se basant sur sa propre expérience; néanmoins, comme votre système et + vos besoins peuvent être différents, il ne répond peut-être pas à + toutes vos questions, et l'auteur ne peut pas être tenu pour + responsable des dégâts que vous causeriez à votre système ou des + données que vous auriez perdues en essayant de suivre les indications + données ici.</para> + + <para>Ce guide a été à l'origine écrit pour le serveur SLIP de la + version 1.x de FreeBSD. Il a été adapté pour prendre en compte les + modifications de chemins d'accès et la suppression des indicateurs + de compression de l'interface SLIP des premières versions 2.x de + FreeBSD, qui sont apparemment les seuls différences importantes entre + ces versions. Si vous trouvez des erreurs, envoyez s'il + vous plaît à l'auteur un courrier électronique suffisamment détaillé + pour qu'il puisse les corriger.</para> + + <sect2 id="slips-prereqs"> + <title>Prérequis</title> + + <para>Ce document est très technique, il vous faut donc quelques + connaissances de base. On suppose que vous connaissez le protocole + réseau TCP/IP, et, en particulier, l'adressage des réseaux et + des noeuds, les masques de réseau, les sous-réseaux, le routage et + les protocoles de routage tels que RIP. Ce sont des choses que vous + devez connaître pour configurer les services SLIP sur un serveur + de connexions, et si ce n'est pas le cas, lisez s'il vous plaît + <emphasis>TCP/IP Network Administration</emphasis> par Craig Hunt + chez O'Reilly & Associates, Inc. (ISBN + 0-937175-82-X)<footnote><para>N.d.T.: traduit en français sous le + titre “TCP/IP, Administration de réseau TCP/IP”, chez + le même éditeur</para></footnote>, ou le livre de Douglas Comer + sur le protocole TCP/IP.</para> + + <para>On suppose aussi que vous avez déjà installé vos modems et + configuré les fichiers système appropriés pour permettre l'ouverture + de session via vos modems. Si vous ne l'avez pas encore fait, + reportez-vous au guide de configuration des connexions entrantes; + si vous disposez d'un navigateur World Wide Web, parcourez la liste + des guides sur <ulink + url="http://www.freebsd.org/">http://www.freebsd.org/</ulink>; + sinon, regardez là où vous avez trouvé le présent document et + cherchez un document appelé <filename>dialup.txt</filename> où + quelque chose du même genre. Vous pouvez aussi consulter les pages + de manuel de + <citerefentry><refentrytitle>sio</refentrytitle><manvolnum>4</manvolnum></citerefentry> pour plus d'informations sur le pilote de port série + et de <citerefentry><refentrytitle>ttys</refentrytitle><manvolnum>5</manvolnum></citerefentry>, + <citerefentry><refentrytitle>gettytab</refentrytitle><manvolnum>5</manvolnum></citerefentry>, + <citerefentry><refentrytitle>getty</refentrytitle><manvolnum>8</manvolnum></citerefentry> et <citerefentry><refentrytitle>init</refentrytitle><manvolnum>8</manvolnum></citerefentry> en + ce qui concerne la configuration du système pour qu'il autorise + des connexions de l'extérieur par modem et peut-être aussi celles de + <citerefentry><refentrytitle>stty</refentrytitle><manvolnum>1</manvolnum></citerefentry> pour avoir des renseignements sur le paramètrage des ports + série (comme <literal>clocal</literal> pour les interfaces série + directement connectées).</para> + + </sect2> + + <sect2> + <title>Brève vue d'ensemble</title> + + <para>Une configuration typique d'utilisation de FreeBSD comme + serveur SLIP fonctionne de la façon suivante: un utilisateur SLIP + appelle votre serveur SLIP FreeBSD et ouvre une session sous un + IDentifiant utilisateur SLIP particulier qui lance + <filename>/usr/sbin/sliplogin</filename> à la place de + l'interpréteur de commandes. Le programme + <command>sliplogin</command> consulte le fichier + <filename>/etc/sliphome/slip.hosts</filename> pour trouver une ligne + correspondant à cet utilisateur, et s'il la trouve, connecte la + ligne série à une interface SLIP disponible et lance ensuite la + procédure <filename>/etc/sliphome/slip.login</filename> pour + configurer cette interface SLIP.</para> + + <sect3> + <title>Un exemple d'ouverture de session sur un serveur SLIP</title> + + <para>Par exemple, si <username>Shelmerg</username> est un + IDentifiant utilisateur SLIP, l'entrée pour + <username>Shelmerg</username> dans + <filename>/etc/master.passwd</filename> ressemblera à ce qui + suit (sinon que tout sera sur une seule ligne):</para> + + <programlisting> +Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliplogin</programlisting> + + <para>Quand <username>Shelmerg</username> ouvre une session, + <command>sliplogin</command> cherche dans + <filename>/etc/sliphome/slip.hosts</filename> la ligne qui + contient cet IDentifiant utilisateur; il peut, par exemple, y + avoir dans <filename>/etc/sliphome/slip.hosts</filename> la + ligne:</para> + + <programlisting> +Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp</programlisting> + + <para><command>sliplogin</command> la trouvera alors, affectera la + ligne série à la prochaine interface SLIP disponible et exécutera + <filename>/etc/sliphome/slip.login</filename> avec les arguments + suivants:</para> + + <programlisting> +/etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp</programlisting> + + <para>Si tout se passe bien, + <filename>/etc/sliphome/slip.login</filename> exécutera un + <command>ifconfig</command> sur l'interface SLIP que s'est + attribuée <command>sliplogin</command> + (l'interface slip 0, dans l'exemple ci-dessus, qui est le premier + paramètre passé à <filename>slip.login</filename>) + pour définir l'adresse IP locale (<hostid>dc-slip</hostid>), + l'adresse IP de la machine éloignée (<hostid>sl-helmer</hostid>), + le masque de sous-réseau de l'interface SLIP + (<hostid role="netmask">0xfffffc00</hostid>) et tout autre + indicateur supplémentaire (<literal>autocomp</literal>). Si + quelque chose se passe mal, <command>sliplogin</command> + fournit en général des messages d'informations valables en + utilisant la fonctionnalité de trace du “démon” + <command>syslog</command>, qui les enregistre habituellement dans + <filename>/var/log/messages</filename> + (reportez-vous au pages de manuel de <citerefentry><refentrytitle>syslogd</refentrytitle><manvolnum>8</manvolnum></citerefentry> et + <citerefentry><refentrytitle>syslog.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>, et regardez peut-être aussi dans + <filename>/etc/syslog.conf</filename> pour voir où + <command>syslogd</command> enregistre les messages).</para> + + <para>OK, assez d'exemples - attelons-nous maintenant à la + configuration du système.</para> + + </sect3> + </sect2> + + <sect2> + <title>Configuration du noyau</title> + + <para>Les noyaux par défaut de FreeBSD définissent habituellement + deux interfaces SLIP (<devicename>sl0</devicename> et + <devicename>sl1</devicename>); vous pouvez vérifier avec + <command>netstat -i</command> si ces interfaces sont définies + dans votre noyau.</para> + + <para>Exemple de résultats de la commande + <command>netstat -i</command>:</para> + + <informalexample> + <screen>Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll +ed0 1500 <Link>0.0.c0.2c.5f.4a 291311 0 174209 0 133 +ed0 1500 138.247.224 ivory 291311 0 174209 0 133 +lo0 65535 <Link> 79 0 79 0 0 +lo0 65535 loop localhost 79 0 79 0 0 +sl0* 296 <Link> 0 0 0 0 0 +sl1* 296 <Link> 0 0 0 0 0</screen> + </informalexample> + + <para>Les interfaces <devicename>sl0</devicename> et + <devicename>sl1</devicename> apparaissent dans les sorties de + <command>netstat -i</command>, il y a donc deux interfaces + SLIP dans le noyau. (Les astérisques après <literal>sl0</literal> + et <literal>sl1</literal> indiquent que les interfaces sont + “inactives” - down.)</para> + + <para>Cependant, les noyaux par défaut de FreeBSD ne sont pas + configurés pour transmettre des paquets (i.e., votre machine + FreeBSD ne fonctionnera pas comme routeur) à cause des + spécifications imposées par les RFC Internet (reportez-vous à la + RFC's 1009 [Spécifications des passerelles Internet], 1122 + [Spécifications des machines Internet - Couches de + communication], et peut-être aussi 1127 [Une perspective sur le + RFCs de spécifications des machines]), donc, si vous voulez que + votre serveur SLIP serve de routeur, vous devez modifier votre + fichier <filename>/etc/rc.conf</filename> (appelé + <filename>/etc/sysconfig</filename> dans les versions de + FreeBSD antérieures à la 2.2.2) et affecter <option>YES</option> + à la variable <literal>gateway</literal>. Si vous avez un système + plus ancien qui n'a même pas de fichier + <filename>/etc/sysconfig</filename>, ajoutez alors la commande: + + <programlisting> +sysctl -w net.inet.ip.forwarding = 1</programlisting> à votre fichier + <filename>/etc/rc.local</filename>.</para> + + <para>Vous devrez alors redémarrer votre système pour que ce nouveau + paramètrage soit pris en compte.</para> + + <para>Vous remarquerez à la fin du fichier de configuration par + défaut du noyau (<filename>/sys/i386/conf/GENERIC</filename>) + la ligne:</para> + + <programlisting> +pseudo-device sl 2</programlisting> + + <para>C'est cette ligne qui définit le nombre de périphériques + SLIP disponibles dans le noyau; le nombre en fin de ligne est le + nombre maximum de connexions SLIP qui peuvent être simultanément + actives.</para> + + <para>Reportez-vous s'il vous plaît au chapitre + <link linkend="kernelconfig">Configurer le noyau de FreeBSD</link> + pour des indications sur la manière de configurer votre + noyau.</para> + + </sect2> + + <sect2> + <title>Configuration de sliplogin</title> + + <para>Comme on l'a dit plus haut, il y a trois fichiers dans le + répertoire <filename>/etc/sliphome</filename> qui servent à la + configuration de <filename>/usr/sbin/sliplogin</filename> (voyez + <citerefentry><refentrytitle>sliplogin</refentrytitle><manvolnum>8</manvolnum></citerefentry> pour avoir les pages de manuel de + <command>sliplogin</command>): + <filename>slip.hosts</filename>, qui définit les utilisateurs SLIP + et les adresses IP qui leur sont affectées; + <filename>slip.login</filename>, qui ne fait en général que + configurer l'interface SLIP; et (facultatif) + <filename>slip.logout</filename>, + qui fait le travail inverse de <filename>slip.login</filename> + quand la connexion série est terminée.</para> + + <sect3> + <title>Configuration de <filename>slip.hosts</filename></title> + + <para><filename>/etc/sliphome/slip.hosts</filename> contient des + lignes avec au moins quatre champs, séparés par des + blancs:</para> + + <itemizedlist> + + <listitem> + <para>L'IDentifiant d'utilisateur SLIP,</para> + </listitem> + + <listitem> + <para>L'addresse locale (locale au serveur SLIP) de la + liaison SLIP,</para> + </listitem> + + <listitem> + <para>L'adresse de l'autre extrémité de la liaison + SLIP,</para> + </listitem> + + <listitem> + <para>Le masque de réseau.</para> + </listitem> + + </itemizedlist> + + + <para>Les adresses locale et éloignée peuvent être des noms de + machines (qui seront converties en adresses IP via + <filename>/etc/hosts</filename> ou par le service de noms de + domaines, selon ce que contient + <filename>/etc/host.conf</filename>), et je crois que le masque + de réseau peut être un nom qui sera converti en consultant le + fichier <filename>/etc/networks</filename>. Pour notre exemple + plus haut, <filename>/etc/sliphome/slip.hosts</filename> + contiendrait:</para> + + <programlisting> +# +# login local-addr remote-addr mask opt1 opt2 +# (normal,compress,noicmp) +# +Shelmerg dc-slip sl-helmerg 0xfffffc00 autocomp</programlisting> + + <para>La ligne se termine par une ou plusieurs des options:</para> + + <itemizedlist> + + <listitem> + <para><option>normal</option> - pas de compression + des en-têtes,</para> + </listitem> + + <listitem> + <para><option>compress</option> - compression des + en-têtes,</para> + </listitem> + + <listitem> + <para><option>autocomp</option> - compression des + en-têtes si la machine distante l'autorise,</para> + </listitem> + + <listitem> + <para><option>noicmp</option> - interdire les + paquets ICMP (de sorte que les paquets “ping” + seront ignorés au lieu de consommer votre bande + passante).</para> + </listitem> + + </itemizedlist> + + <para>Remarquez que le programme <command>sliplogin</command> des + premières versions de FreeBSD 2 ignorait les options que + FreeBSD 1.x reconnaissait, de sorte que les options + <option>normal</option>, <option>compress</option>, + <option>autocomp</option> et <option>noicmp</option> restaient + sans effet, jusqu'à ce que leur support soit ajouté à + FreeBSD 2.2 (à moins que votre procédure + <filename>slip.login</filename> n'inclue le code nécessaire à + la prise en compte de ces indicateurs).</para> + + <para>Les choix des adresses pour les deux extrémités des liaisons + SLIP dépend du fait que vous leur dédiiez un sous-réseau ou que + vous comptiez utiliser “proxy ARP” sur votre serveur + SLIP (ce n'est pas du “vrai” proxy ARP, mais c'est + la terminologie que nous utiliserons dans ce document pour le + désigner). Si vous n'êtes pas sûr de la méthode à choisir ou de + la facon d'assigner les adresses IP, référez-vous s'il vous plaît + aux ouvrages mentionnés à la section <link + linkend="slips-prereqs">Prérequis</link> et/ou consultez + l'administrateur de votre réseau IP.</para> + + <para>Si vous comptez dédier un sous-réseau IP à vos clients SLIP, + vous devrez définir l'adresse de sous-réseau à partir de + l'adresse de réseau qui vous est affectée et attribuer à chacun + de vos clients SLIP une adresse IP sur ce sous-réseau. Vous devrez + alors probablement configurer une route statique vers votre + sous-réseau SLIP via votre serveur SLIP, sur votre routeur le + plus proche, ou installer <command>gated</command> sur votre + serveur SLIP FreeBSD et le configurer pour qu'il dialogue avec + les protocoles appropriés avec les autres routeurs, pour leur + annoncer la route de votre serveur SLIP vers le sous-réseau + SLIP.</para> + + <para>Sinon, si vous utilisez la méthode “proxy ARP”, + vous devrez assigner à vos client SLIP des adresses sur le + sous-réseau Ethernet de votre serveur SLIP, et vous devrez + aussi adapter vos procédures + <filename>/etc/sliphome/slip.login</filename> et + <filename>/etc/sliphome/slip.logout</filename> pour qu'elles + utilisent + <citerefentry><refentrytitle>arp</refentrytitle><manvolnum>8</manvolnum></citerefentry> pour gérer les entrées proxy-ARP dans la table ARP de + votre serveur SLIP.</para> + + </sect3> + + <sect3> + <title>Configuration de <filename>slip.login</filename></title> + + <para>Le fichier <filename>/etc/sliphome/slip.login</filename> + ressemble typiquement à ceci:</para> + + <programlisting> +#!/bin/sh - +# +# @(#)slip.login 5.1 (Berkeley) 7/1/90 + +# +# procédure d'ouverture de session générique pour une liaison slip +# sliplogin l'appelle avec les paramètres: +# +# 1 2 3 4 5 6 7-n +# interface vitesse nom adresse-locale adresse-éloignée masque optionnels +# +/sbin/ifconfig sl$1 inet $4 $5 netmask $6</programlisting> + + <para>Ce fichier <filename>slip.login</filename> ne fait + qu'exécuter <command>ifconfig</command> sur l'interface + SLIP appropriée avec comme paramètres les adresses locales + et distantes et le masque de réseau de l'interface SLIP.</para> + + <para>Si vous avez choisi la méthode “proxy ARP” + (au lieu d'affecter un sous-réseau distinct à vos clients + SLIP), votre fichier + <filename>/etc/sliphome/slip.login</filename> devra ressembler + à:</para> + + <programlisting> +#!/bin/sh - +# +# @(#)slip.login 5.1 (Berkeley) 7/1/90 + +# +# procédure d'ouverture de session générique pour une liaison slip +# sliplogin l'appelle avec les paramètres: +# +# 1 2 3 4 5 6 7-n +# interface vitesse nom adresse-locale adresse-éloignée masque optionnels +# +/sbin/ifconfig sl$1 inet $4 $5 netmask $6 +# +# répondre aux requêtes ARP concernant le client SLIP +# pour notre adresse Ethernet +# +/usr/sbin/arp -s $5 00:11:22:33:44:55 pub</programlisting> + + <para>La ligne supplémentaire + <command>arp -s $5 00:11:22:33:44:55 pub</command> + de ce fichier <filename>slip.login</filename> crée une entrée + ARP dans la table ARP du serveur SLIP. Cette entrée ARP fait + que le serveur SLIP répond en donnant sa propre adresse MAC + lorsqu'un autre noeud IP du réseau Ethernet demande à parler + avec le client SLIP qui a cette adresse IP.</para> + + <para>Dans l'exemple donné ci-dessus, remplacez bien l'adresse + MAC Ethernet (<hostid role="mac">00:11:22:33:44:55</hostid>) par + l'adresse MAC de la carte Ethernet de votre système, sans quoi + votre “proxy ARP” ne fonctionnera définitivement pas! + Vous pouvez connaître cette adresse MAC en regardant le résultat + de la commande <command>netstat -i</command>; la seconde ligne des + sorties doit ressembler à ce qui suit:</para> + + <informalexample> + <screen>ed0 1500 <Link>0.2.c1.28.5f.4a 191923 0 129457 0 116 + </screen> + </informalexample> + + <para>Cela indique que l'adresse MAC Ethernet de ce système + est <hostid role="mac">00:02:c1:28:5f:4a</hostid> - il + faut remplacer les “.” dans les adresses MAC Ethernet + que donne <command>netstat -i</command> par des “:” + et ajouter un “0” devant les valeurs hexadécimales + qui ne sont données que sur un seul caractère pour obtenir des + adresses telles que + <citerefentry><refentrytitle>arp</refentrytitle><manvolnum>8</manvolnum></citerefentry> + les demande; voyez les pages de manuel de + <citerefentry><refentrytitle>arp</refentrytitle><manvolnum>8</manvolnum></citerefentry> pour avoir des informations complètes sur ces + conventions.</para> + + <note> + <para>Quand vous créez les fichiers + <filename>/etc/sliphome/slip.login</filename> - et + <filename>/etc/sliphome/slip.logout</filename> - , le + bit “exécutable” doit être positionné + (i.e., <command>chmod 755 /etc/sliphome/slip.login + /etc/sliphome/slip.logout</command>), sinon + <command>sliplogin</command> ne pourra pas exécuter la + procédure.</para> + </note> + </sect3> + + <sect3> + <title>Configuration de <filename>slip.logout</filename></title> + + <para><filename>/etc/sliphome/slip.logout</filename> n'est pas + strictement indispensable (à moins que vous n'implémentiez + “proxy ARP”), mais, si vous décidez de la créer, + voici un exemple de procédure + <filename>slip.logout</filename> élémentaire:</para> + + <programlisting> +#!/bin/sh - +# +# slip.logout +# +# procédure de fermeture de session générique pour une liaison slip +# sliplogin l'appelle avec les paramètres: +# +# 1 2 3 4 5 6 7-n +# interface vitesse nom adresse-locale adresse-éloignée masque optionnels +# +/sbin/ifconfig sl$1 down</programlisting> + + <para>Si vous utilisez “proxy ARP”, vous voudrez que + <filename>/etc/sliphome/slip.logout</filename> supprime l'entrée + ARP pour le client SLIP:</para> + + <programlisting> +#!/bin/sh - +# +# slip.logout +# +# procédure de fermeture de session générique pour une liaison slip +# sliplogin l'appelle avec les paramètres: +# +# 1 2 3 4 5 6 7-n +# interface vitesse nom adresse-locale adresse-éloignée masque optionnels +# +/sbin/ifconfig sl$1 down +# Cessez de répondre aux requêtes ARP concernant le client SLIP +/usr/sbin/arp -d $5</programlisting> + + <para><command>arp -d $5</command> supprime l'entrée ARP que la + procédure <filename>slip.login</filename> pour “proxy + arp” a ajouté quand le client SLIP a ouvert la + session.</para> + + <para>Il n'est pas inutile de répéter: vérifiez que le bit + “exécutable” de la procédure + <filename>/etc/sliphome/slip.logout</filename> est positionné + après que vous l'ayez créée (i.e., <command>chmod + 755 /etc/sliphome/slip.logout</command>).</para> + + </sect3> + </sect2> + + <sect2> + <title>A propos du routage</title> + + <para>Si vous n'utilisez pas “proxy ARP” pour router + les paquets entre vos clients SLIP et le reste de votre réseau + (et peut-être l'Internet), vous devrez probablement soit ajouter + des routes statiques vers votre(vos) routeur(s) par défaut le(s) + plus proche(s) pour router le sous-réseau de vos clients SLIP via + votre serveur SLIP, soit installer et configurer + <command>gated</command> sur votre serveur SLIP FreeBSD de sorte + qu'il fournisse à vos routeurs, en utilisant les protocoles de + routage appropriés, les informations qui concernent votre + sous-réseau SLIP.</para> + + <sect3> + <title>Routes statiques</title> + + <para>Ajouter des routes statiques vers vos routeurs les plus + proches peut être problématique (voire impossible, si vous n'avez + pas les autorisations pour ...). Si vous avez un réseau avec + des routeurs divers, certains d'entre eux, tels les Cisco et les + Proteon, devront non seulement avoir la route statique vers votre + sous-réseau SLIP, mais devront aussi savoir quelles routes + statiques ils doivent annoncer aux autres routeurs, il faudra + donc quelques compétences, de la mise au point ou de la + “bidouille” pour que vos routes statiques + fonctionnent.</para> + + </sect3> + + <sect3> + <title>Utiliser <command>gated</command></title> + + <para>Une alternative aux maux de tête que provoquent les routes + statiques est d'installer <command>gated</command> sur votre + serveur SLIP FreeBSD et de le configurer pour qu'il utilise les + protocoles de routage appropriés (RIP/OSPF/BGP/EGP) pour annoncer + aux autres routeurs votre sous-réseau SLIP. Vous pouvez utiliser + la version de <command>gated</command> du + <link linkend="ports">catalogue des logiciels portés</link> ou le + télécharger depuis <ulink + url="ftp://ftp.gated.merit.edu/research.and.development/gated/">le site ftp anonyme de GateD</ulink> et + le compiler vous-même; Je crois que la dernière version au moment + où j'écris ceci est <filename>gated-R3_5Alpha_8.tar.Z</filename>, + qui inclut la version pour FreeBSD “prête-à-l'usage”. + Des informations complètes et la documentation de + <command>gated</command> sont disponibles + sur le Web sur le site du + <ulink url="http://www.gated.merit.edu/">Merit GateD Consortium</ulink>. + Compilez-le et installez-le, et créez ensuite un fichier + <filename>/etc/gated.conf</filename> pour le configurer; voici un + exemple, semblable à celui que l'auteur a utilisé sur un serveur + SLIP FreeBSD:</para> + + <programlisting> +# +# fichier de configuration de gated dc.dsu.edu; +# pour la version 3.5alpha5 de gated +# simplement diffuser les informations RIP pour xxx.xxx.yy +# via l'interface Ethernet "ed" +# +# options de trace +# +traceoptions "/var/tmp/gated.output" replace size 100k files 2 general ; + +rip yes { + interface sl noripout noripin ; + interface ed ripin ripout version 1 ; + traceoptions route ; +} ; + +# +# fournir des informations de trace sur l'interface au noyau: +kernel { + traceoptions remnants request routes info interface ; +} ; + +# +# Propager la route vers xxx.xxx.yy via l'Ethernet interface et RIP +# + +export proto rip interface ed { + proto direct { + <replaceable>xxx.xxx.yy</replaceable> mask 255.255.252.0 metric 1; # SLIP connections + } ; +} ; + +# +# Accepter les routes de RIP via les interfaces Ethernet "ed" + +import proto rip interface ed { + all ; +} ;</programlisting> + + <para>L'exemple ci-dessus de fichier <filename>gated.conf</filename> + diffuse l'information de routage concernant le sous-réseau SLP + <replaceable>xxx.xxx.yy</replaceable> en utilisant RIP sur + l'interface Ethernet; si vous utilisez un pilote Ethernet autre + que <devicename>ed</devicename>, vous devrez modifier en + conséquence les références à l'interface + <devicename>ed</devicename>. Ce fichier d'exemple active aussi les + traces sur <filename>/var/tmp/gated.output</filename> pour pouvoir + déboguer le fonctionnement de <command>gated</command>; vous + pouvez certainement désactiver ces options de trace si + <command>gated</command> fonctionne comme vous le voulez. Vous + devrez remplacer les <replaceable>xxx.xxx.yy</replaceable> par + l'adresse réseau de votre propre sous-réseau SLIP (veillez à + remplacer aussi le masque de réseau dans la clause + <literal>proto direct</literal>).</para> + + <para>Une fois que vous avez compilé et installé + <command>gated</command> et créer son fichier de configuration, + vous devrez lancer <command>gated</command> au lieu de + <command>routed</command> sur votre système FreeBSD; modifiez les + paramètres de démarrage de <filename>routed/gated</filename> dans + <filename>/etc/netstart</filename> comme requis par votre + système. Consultez s'il vous plaît les pages de manuel de + <command>gated</command> pour avoir des informations sur les + paramètres de la ligne de commande de + <command>gated</command>.</para> + + </sect3> + </sect2> + + <sect2> + <title>Remerciements</title> + + <para>Merci aux personnes suivantes pour leurs commentaires et leurs + conseils à propos de ce guide:</para> + + <variablelist> + <varlistentry><term>&a.wilko;</term> + <listitem> + <para></para> + </listitem> + </varlistentry> + + <varlistentry><term>Piero Serini</term> + + <listitem> + <para><email>Piero@Strider.Inet.IT</email></para> + + </listitem> + </varlistentry> + </variablelist> + + + </sect2> + </sect1> + </chapter> + +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-shorttag: nil + sgml-always-quote-attributes: t + sgml-minimize-attributes: max + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> + diff --git a/fr_FR.ISO_8859-1/books/handbook/printing/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/printing/chapter.sgml new file mode 100755 index 0000000000..0767427ef8 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/printing/chapter.sgml @@ -0,0 +1,5375 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + +<chapter id="printing"> + <title>Imprimer</title> + + <para><emphasis>Contribution de &a.kelly;<!-- <br> -->30 Septembre + 1995</emphasis></para> + &trans.a.haby; + + <para>Pour imprimer avec FreeBSD, vous devrez configurer l'utilisation de + vos imprimantes avec le gestionnaire de queues d'impression de + Berkeley, connu aussi sous le nom de gestionnaire d'impression + (“spooling system”) LPD (“Line Printer + Daemon”). C'est le gestionnaire d'impression standard de BSD. + Cette section décrit le gestionnaire d'impression LPD - souvent + abrégé en LPD.</para> + + <para>Si vous connaissez déjà LPD ou un autre gestionnaire de files + d'impression, vous pouvez passer directement à la section + <link linkend="printing-intro-setup">Configurer le gestionnaire + d'impression</link>.</para> + + <sect1 id="printing-intro-spooler"> + <title>Que fait le gestionnaire d'impression ?</title> + + <para>LPD contrôle tout ce qui concerne les imprimantes. Il assume + un certain nombre de fonctions:</para> + + <itemizedlist> + + <listitem> + <para>Il contrôle l'accès aux imprimantes locales et aux imprimantes + connectées à d'autres machines du réseau.</para> + </listitem> + + <listitem> + <para>Il permet aux utilisateurs de soumettre des fichiers à + l'impression; Ces demandes d'impression sont appelées + <emphasis>travaux</emphasis>.</para> + </listitem> + + <listitem> + <para>Il empêche l'accès simultané de plusieurs utilisateurs à une + même imprimante en gérant une <emphasis>queue</emphasis> pour + chaque imprimante.</para> + </listitem> + + <listitem> + <para>Il peut imprimer <emphasis>des pages d'en-tête</emphasis> + (appelées aussi <emphasis>bannières</emphasis> ou pages + “burst” (qui sautent aux yeux) de façon à ce que + les utilisateurs retrouvent facilement leurs travaux au milieu + d'une pile de documents imprimés.</para> + </listitem> + + <listitem> + <para>Il gère les paramètres de communication pour les imprimantes + raccordées sur un port série.</para> + </listitem> + + <listitem> + <para>Il peut envoyer des travaux au gestionnaire LPD d'une autre + machine du réseau.</para> + </listitem> + + <listitem> + <para>Il peut exécuter des filtres pour formater les impressions + en fonction des possibilités et du langage compris par les + différentes imprimantes.</para> + </listitem> + + <listitem> + <para>Il peut comptabiliser l'utilisation d'une imprimante.</para> + </listitem> + + </itemizedlist> + + <para>Avec un fichier de configuration et en fournissant les programmes + de filtrage spécifiques, vous pouvez confier à LPD tout ou une partie + de ces tâches, pour une large gamme de matériels d'impression.</para> + </sect1> + + <sect1 id="printing-intro-why"> + <title>Pourquoi faut-il utiliser le gestionnaire d'impression ?</title> + + <para>Si vous êtes l'unique utilisateur de votre système, vous pouvez + vous demander pourquoi vous devriez vous compliquer la vie en + utilisant le gestionnaire d'impression, alors que vous n'avez pas + besoin de contrôle d'accès, de pages d'en-tête ou de comptabilité. + Bien qu'il soit possible d'accéder directement à l'imprimante, il + vaut mieux passer malgré tout par le gestionnaire d'impression parce + que:</para> + + <itemizedlist> + + <listitem> + <para>LPD imprime les travaux en tâches de fond; vous n'avez pas + besoin d'attendre que l'imprimante ait reçu vos données.</para> + </listitem> + + <listitem> + <para>LPD peut appliquer des filtres aux travaux pour ajouter des + en-têtes avec la date et l'heure ou convertir des fichiers d'un + format particulier (comme les fichiers DVI de TeX) vers un format + compréhensible par l'imprimante. Vous n'avez pas besoin de faire + tout cela à la main.</para> + </listitem> + + <listitem> + <para>De nombreux logiciels libres ou commerciaux disposent d'une + fonctionnalité d'impression prévue pour utiliser le gestionnaire + d'impression. En installant le gestionnaire d'impression, vous + aurez moins de problèmes avec les logiciels que vous installerez + ensuite ou qui sont déjà sur votre système.</para> + </listitem> + + </itemizedlist> + + </sect1> + + <sect1 id="printing-intro-setup"> + <title>Configurer le gestionnaire d'impression</title> + + <para>Pour imprimer avec le gestionnaire d'impression, il vous faut + configurer et vos imprimantes et le logiciel LPD. Ce document décrit + les deux étapes de cette configuration:</para> + + <itemizedlist> + + <listitem> + <para>Lisez la section + <link linkend="printing-simple">Configuration simple d'une imprimante</link> + pour apprendre à connecter une imprimante, dire à LPD comment + communiquer avec et imprimer des fichiers texte.</para> + </listitem> + + <listitem> + <para>Lisez la section + <link linkend="printing-advanced">Configuration avancée d'une imprimante</link> + pour savoir comment imprimer + différents formats de fichiers, imprimer des pages d'en-tête, + imprimer via le réseau, contrôler l'accès aux imprimantes et + comptabiliser leur utilisation.</para> + </listitem> + + </itemizedlist> + + </sect1> + + <sect1 id="printing-simple"> + <title>Configuration simple d'une imprimante</title> + + <para>Cette section vous explique comment configurer l'imprimante et le + logiciel LPD pour pouvoir imprimer. Elle vous fournit les informations + de base:</para> + + <itemizedlist> + + <listitem> + <para>La section <link linkend="printing-hardware">Configuration du matériel</link> + vous donne des indications sur la + connexion de l'imprimante à votre ordinateur.</para> + </listitem> + + <listitem> + <para>La section <link linkend="printing-software">Configuration du logiciel</link> + vous explique comment renseigner le fichier + de configuration <filename>/etc/printcap</filename> de LPD.</para> + </listitem> + + </itemizedlist> + + <para>Si vous installez une imprimante qui utilise une protocole réseau + pour recevoir les données à imprimer et non une imprimante sur + l'interface série ou parallèle, reportez-vous à la section + <link linkend="printing-advanced-network-net-if">Imprimantes avec une interface + réseau</link>.</para> + + <para>Bien que cette section soit intitulée “Configuration simple + d'une imprimante”, elle est en fait assez complexe. Arriver à faire + fonctionner l'imprimante avec votre ordinateur et le gestionnaire + d'impression LPD est le plus difficile. Les options avancées comme les + pages d'en-tête et la comptabilité sont faciles à mettre en place une + fois que l'impression fonctionne.</para> + + <sect2 id="printing-hardware"> + <title>Configuration du matériel</title> + + <para>Cette section vous détaille les différentes façons de + connecter une imprimante à votre PC. Elle traite des types de + ports et de câbles et de la manière de configurer votre noyau + pour que FreeBSD puisse communiquer avec l'imprimante.</para> + + <para>Si votre imprimante est déjà connectée et que vous pouvez + imprimer avec un autre système d'exploitation, vous pouvez + peut-être passer directement à la section + <link linkend="printing-software">Configuration du logiciel</link>.</para> + + <sect3 id="printing-ports"> + <title>Ports et Câbles</title> + + <para>Pratiquement toutes les imprimantes actuelles pour PC + supportent l'une ou l'autre interface suivante + - ou les deux:</para> + + <itemizedlist> + + <listitem> + <para>Les interfaces <emphasis>série</emphasis> utilisent un + des ports série de votre ordinateur pour envoyer des + données à l'imprimante. Les interfaces série sont + courantes dans l'industrie informatique et les câbles + existent prêts à l'emploi et sont faciles à réaliser + soi-même. Certaines interfaces série ont besoin de câbles + particuliers ou d'une configuration un peu complexe des + options de communication.</para> + </listitem> + + <listitem> + <para>Les interfaces <emphasis>parallèles</emphasis> utilisent + un port parallèle de votre ordinateur pour envoyer des + données à l'imprimante. Les interfaces parallèles sont + courantes sur le marché des PCs. Les câbles existent prêts à + l'emploi, mais sont plus difficiles à faire soi-même. Il + n'y a habituellement pas d'option de communication + particulière pour les interfaces parallèles, leur + configuration est donc extrêmement simple.</para> + + <para>Les interfaces parallèles sont parfois appelées + interfaces “Centronics”, du nom du type de + connecteur de l'imprimante.</para> + </listitem> + + </itemizedlist> + + <para>D'une façon générale, les interfaces série sont plus lentes + que les interfaces parallèles. Les interfaces parallèles ne + permettent normalement la communication que dans un seul sens + (de l'ordinateur vers l'imprimante) alors que la communication + est bi-directionnelle avec les interfaces série. De nombreux + ports parallèles récents peuvent aussi recevoir des données de + l'imprimante, mais seules quelques imprimantes savent renvoyer + des données à l'ordinateur. Et FreeBSD ne supporte pas la + communication parallèle bi-directionnelle.</para> + + <para>Normalement, vous n'avez besoin de communication + bi-directionnelle qu'avec les imprimantes qui parlent PostScript. + Les imprimantes PostScript peuvent être très bavardes. En fait, + les travaux PostScript sont des programmes envoyés à + l'imprimante; ils ne produisent pas nécessairement d'impression + et peuvent renvoyer directement leurs résultats à l'ordinateur. + PostScript utilise aussi la communication bi-directionnelle pour + avertir l'ordinateur de problèmes, d'erreurs dans le programme + PostScript ou d'un bourrage papier, par exemple. Cela peut être + très apprécié de vos utilisateurs. De plus, la façon la plus + efficace de gérer la comptabilité avec une imprimante PostScript + passe par un dialogue avec l'imprimante: vous lui demandez la + valeur de son compteur de pages (combien de pages elle a déjà + imprimées dans sa vie) puis envoyez le travail de l'utilisateur + et lui redemandez ensuite la valeur de son compteur de pages. + La différence entre les deux valeurs vous donne le nombre de + pages à facturer à l'utilisateur.</para> + + <para>Quelle interface devez-vous donc utiliser?</para> + + <itemizedlist> + + <listitem> + <para>Si vous avez besoin de la communication + bi-directionnelle, utilisez le port série. FreeBSD ne + supporte pas encore la communication bi-directionnelle sur + le port parallèle.</para> + </listitem> + + <listitem> + <para>Si vous n'avez pas besoin de la communication parallèle + et avez le choix entre le port série et le port parallèle, + préférez le port parallèle. Le port série reste alors + disponible pour d'autres périphériques - comme un + terminal ou un modem - et le port parallèle est la + plupart du temps plus rapide. Il est aussi plus facile à + configurer.</para> + </listitem> + + <listitem> + <para>En dernier lieu, utilisez ce qui fonctionne.</para> + </listitem> + + </itemizedlist> + + </sect3> + + <sect3 id="printing-parallel"> + <title>Ports parallèles</title> + + <para>Pour brancher l'imprimante sur l'interface parallèle, + reliez-la à l'ordinateur avec un câble Centronics. La + documentation de l'ordinateur, de l'imprimante, ou les deux, + devraient vous donner toutes les indications nécessaires.</para> + + <para>Rappelez-vous quel port parallèle vous avez utilisé. FreeBSD + connaît le premier port parallèle sous le nom + <filename>/dev/lpt0</filename>; le second comme + <filename>/dev/lpt1</filename>, et ainsi de suite.</para> + + </sect3> + + <sect3 id="printing-serial"> + <title>Ports série</title> + + <para>Pour brancher l'imprimante sur l'interface série, + reliez-la à l'ordinateur avec le câble série approprié. La + documentation de l'ordinateur, de l'imprimante, ou les deux, + devrait vous donner toutes les indications nécessaires.</para> + + <para>Si vous n'êtes pas certain de quel est “le câble série + approprié”, vous pouvez tester une des possibilités + suivantes:</para> + + <itemizedlist> + + <listitem> + <para>Un câble <emphasis>modem</emphasis> connecte directement + chaque broche d'une des extrémité de la liaison à la broche + correspondante de l'autre extrémité. On appelle aussi ce + type de câble “DTE-à-DCE”.</para> + </listitem> + + <listitem> + <para>Un câble “<emphasis>null-modem</emphasis>” + connecte certaines broches directement, en intervertit + d'autres (donnée émise vers donnée reçue) et en + court-circuite certaines à chaque extrémité. On appelle + aussi ce type de câble “DTE-à-DTE”.</para> + </listitem> + + <listitem> + <para>Un câble pour <emphasis>imprimante série</emphasis>, + dont ont besoin certaines imprimantes non standard, est + semblable à un câble “null-modem” mais + transmet certains signaux broche à broche au lieu de les + court-circuiter.</para> + </listitem> + + </itemizedlist> + + <para>Vous devrez aussi définir les paramètres de communication de + l'imprimante, soit avec le panneau de contrôle frontal, soit par + l'intermédiaire de commutateurs DIP. Choisissez la vitesse en bps + (bits par seconde, on dit parfois <emphasis>vitesse en + bauds</emphasis>) la plus rapide que votre ordinateur et votre + imprimante acceptent tous les deux. Choisissez entre des données + 7 ou 8 bits, une parité paire, impaire ou pas de contrôle de + parité; et un ou deux bits de fin. Sélectionnez aussi le + protocole de contrôle de flux: soit aucun, soit XON/XOFF (appelé + aussi “en ligne” ou “logiciel”). Notez + bien ces paramètres pour l'étape suivante de configuration du + logiciel.</para> + + </sect3> + </sect2> + + <sect2 id="printing-software"> + <title>Configuration du logiciel</title> + + <para>Cette section explique comment configurer le logiciel pour + imprimer sous FreeBSD avec le gestionnaire d'impression LPD.</para> + + <para>Voici un résumé des étapes nécessaires:</para> + + <procedure> + <step> + <para>Recompiler votre noyau au besoin pour le port sur lequel + vous connectez votre imprimante; la section + <link linkend="printing-kernel">Configuration du noyau</link> + vous dit ce que vous devez faire.</para> + </step> + <step> + <para>Définir le mode de communication du port parallèle, + si c'est celui que vous utilisez; la section <link + linkend="printing-parallel-port-mode">Définir le mode de + communication avec le port parallèle</link> vous + décrit cette étape en détails.</para> + </step> + + <step> + <para>Vérifier que le système d'exploitation peut envoyer des + données à l'imprimante; la section + <link linkend="printing-testing">Tester la communication avec + l'imprimante</link> vous donne + quelques indications pour cela.</para> + </step> + + <step> + <para>Configurer LPD pour cette imprimante en modifiant le + fichier <filename>/etc/printcap</filename>; la section <link + linkend="printing-printcap">Activer le gestionnaire d'impression : le + fichier <filename>/etc/printcap</filename></link> + vous explique comment.</para> + </step> + + </procedure> + + <sect3 + id="printing-kernel"> + <title>Configuration du noyau</title> + + <para>Le noyau du système d'exploitation est compilé pour + fonctionner avec une sélection de périphériques donnée. Les + interfaces série ou parallèle de l'imprimante en font partie. + En conséquence, il peut être nécessaire d'ajouter le suppport + d'un port série ou parallèle si votre noyau n'est pas déjà + configuré pour cela.</para> + + <para>Pour savoir si le noyau que vous utilisez supporte une interface + série, tapez:</para> + + <informalexample> + <screen>&prompt.root; <userinput>dmesg | grep sio<replaceable>N</replaceable></userinput></screen> + </informalexample> + <para>où <replaceable>N</replaceable> est le numéro + du port série, zéro ou plus. Si vous obtenez quelque chose qui + ressemble à:</para> + + <informalexample> + <screen>sio2 at 0x3e8-0x3ef irq 5 on isa + sio2: type 16550A</screen> + </informalexample> <para>alors le port est bien configuré dans le + noyau.</para> + + <para>Pour savoir si le noyau que vous utilisez supporte une interface + parallèle, tapez:</para> + + <informalexample> + <screen>&prompt.root; <userinput>dmesg | grep lpt<replaceable>N</replaceable></userinput></screen> + </informalexample> <para>où <replaceable>N</replaceable> est le numéro + du port parallèle, zéro ou plus. Si vous obtenez quelque chose qui + ressemble à:</para> + + <informalexample> + <screen>lpt0 at 0x378-0x37f on isa</screen> + </informalexample> <para>alors le port est bien configuré dans le + noyau.</para> + + <para>Vous devrez peut-être reconfigurer votre noyau pour que + le système d'exploitation reconnaisse et puisse utiliser le + port série ou parallèle que vous affectez à votre + imprimante.</para> + + <para>Pour ajouter le support d'un port série, reportez-vous + au chapitre <link linkend="kernelconfig">Configurer le noyau de + FreeBSD</link>. Pour ajouter le + support d'un port parallèle, reportez-vous au chapitre sur + la configuration du noyau <emphasis>et</emphasis> lisez la + section suivante.</para> + + <sect4 + id="printing-dev-ports"> + <title>Ajouter les entrées pour les ports + dans le répertoire <filename>/dev</filename></title> + + + <para>Même si le noyau supporte déjà les communications + sur le port série ou parallèle, il vous faut encore + une interface logicielle pour que les programmes + puissent envoyer et recevoir des données. C'est à cela + que servent les entrées du répertoire + <filename>/dev</filename>.</para> + + <para><emphasis>Pour ajouter une entrée pour un port au + répertoire <filename>/dev</filename>:</emphasis></para> + + <procedure> + + <step> + <para>Devenez super-utilisateur avec la commande <citerefentry> + <refentrytitle>su</refentrytitle></citerefentry>. + Entrez le mot de passe super-utilisateur quand on vous le + demande.</para> + </step> + + <step> + <para>Allez dans le répertoire <filename>/dev</filename>: + + <informalexample> + <screen>&prompt.root; cd /dev</screen> + </informalexample></para> + </step> + + <step> + <para>Tapez: + + <informalexample> + <screen>&prompt.root; <userinput>./MAKEDEV <replaceable>port</replaceable></userinput></screen> + </informalexample> où <replaceable>port</replaceable> est l'entrée (fichier spécial de périphérique) que vous voulez + créer. Utilisez <literal>lpt0</literal> pour le premier + port parallèle, <literal>lpt1</literal> pour le second, et + ainsi de suite; utilisez <literal>ttyd0</literal> pour le + premier port série, <literal>ttyd1</literal> + pour le second, etc...</para> + </step> + + <step> + <para>Tapez: + + <informalexample> + <screen>&prompt.root; <userinput>ls -l <replaceable>port</replaceable></userinput></screen> + </informalexample>pour vous assurer que l'entrée a bien + été créée.</para> + </step> + + </procedure> + + </sect4> + + <sect4 + id="printing-parallel-port-mode"> + <title>Définir le mode de communication avec le port + parallèle</title> + + <para>Si vous utilisez l'interface parallèle, vous pouvez + choisir que FreeBSD communique avec l'imprimante en + l'interrogeant régulièrement ou par interruptions.</para> + + + <itemizedlist> + + <listitem> + <para>La méthode + <emphasis>pilotée par interruptions</emphasis> est la + méthode par défaut du noyau GENERIC. Le système + d'exploitation utilise dans ce cas une ligne IRQ pour + savoir si l'imprimante est prête à recevoir des + données.</para> + </listitem> + + <listitem> + <para>La méthode + <emphasis>par interrogations</emphasis> demande au + système d'interroger à intervalles réguliers l'imprimante + pour savoir si elle peut accepter de nouvelles données. + Dès que la réponse est positive, le noyau lui envoie + de nouvelles données.</para> + </listitem> + + </itemizedlist> + + + <para>La méthode par interruptions est plus rapide mais mobilise + une ligne IRQ précieuse. Utilisez ce qui fonctionne.</para> + + <para>Vous pouvez définir le mode de communication de deux + façons: en configurant le noyau ou avec la commande + <citerefentry><refentrytitle>lptcontrol</refentrytitle></citerefentry>.</para> + + <para><emphasis>Pour définir le mode de communication à la + configuration du noyau:</emphasis></para> + + <procedure> + + <step> + <para>Editez votre fichier de configuration du noyau + et cherchez ou ajoutez l'entrée <literal>lpt0</literal>. + Si vous utilisez le second port parallèle, mettez + <literal>lpt1</literal> à la place, + <literal>lpt2</literal> pour le troisième port, et ainsi + de suite. + <itemizedlist> + + <listitem> + <para>Si vous voulez utiliser le mode par + interruptions, ajoutez l'indicateur + <literal>irq</literal>: + + <programlisting> + device lpt0 at isa? port? tty irq <replaceable>N</replaceable> vector lptintr + </programlisting>où <replaceable>N</replaceable> + est le numéro d'IRQ du port parallèle de votre + ordinateur.</para> + </listitem> + + <listitem> + <para>Si vous voulez le mode par interrogations, + ne mettez pas l'indicateur + <literal>irq</literal>: + + <programlisting> + device lpt0 at isa? port? tty vector lptintr + </programlisting></para> + </listitem> + + </itemizedlist> + </para> + </step> + + <step> + <para>Sauvegardez le fichier. Puis configurez, compilez et + installez le noyau, et redémarrez votre système. + Reportez-vous au chapitre + <link linkend="kernelconfig">Configurer le noyau de FreeBSD</link> + pour plus de détails.</para> + </step> + + </procedure> + + <para><emphasis>Pour définir le mode de communication avec le + programme</emphasis> <citerefentry> + <refentrytitle>lptcontrol</refentrytitle></citerefentry>:</para> + + <procedure> + + <step> + <para>Tapez: + + <informalexample> + <screen>&prompt.root; <userinput>lptcontrol -i -u <replaceable>N</replaceable></userinput></screen> + </informalexample> pour utiliser le mode par interruptions + avec + <literal>lpt<replaceable>N</replaceable></literal>.</para> + </step> + + <step> + <para>Tapez: + + <informalexample> + <screen>&prompt.root; <userinput>lptcontrol -p -u <replaceable>N</replaceable></userinput></screen> + </informalexample> pour utiliser le mode par + interrogations avec + <literal>lpt<replaceable>N</replaceable></literal>.</para> + </step> + + </procedure> + + <para>Vous pouvez introduire ces commandes dans votre fichier + <filename>/etc/rc.local</filename> pour définir le mode + à chaque redémarrage. Voyez <citerefentry><refentrytitle>lptcontrol</refentrytitle><manvolnum>8</manvolnum></citerefentry> pour plus + d'informations.</para> + + </sect4> + + <sect4 + id="printing-testing"> + <title>Tester la communication avec l'imprimante</title> + + <para>Avant de passer à la configuration du gestionnaire + d'impression, vous devriez vous assurer que le système + d'exploitation arrive à envoyer des données à l'imprimante. + Il est plus facile de mettre séparement au point la + communication avec l'imprimante et la configuration du gestionnaire + d'impression.</para> + + <para>Pour tester l'imprimante, nous lui enverrons du texte. Pour + les imprimantes qui impriment immédiatement les caractères qu'on + leur envoie, le programme + <citerefentry> + <refentrytitle>lptest</refentrytitle></citerefentry> + est idéal: il génère les 96 caractères ASCII imprimables sur + 96 lignes.</para> + + <para>Pour une imprimante PostScript (ou tout autre imprimante + utilisant un langage), il nous faut un test plus sophistiqué. + Un petit programme PostScript, comme celui qui suit, fera l'affaire: + + <programlisting> + %!PS + 100 100 moveto 300 300 lineto stroke + 310 310 moveto /Helvetica findfont 12 scalefont setfont + (Is this thing working?) show + showpage + </programlisting> + </para> + + <note> + <para>Quand dans ce document j'utilise l'expression + “langage d'impression”, je me réfère à + un langage du type PostScript et non du genre PCL de + Hewlett Packard, bien que PCL ait d'excellentes + fonctionnalités - on peut insérer du texte au milieu + de ses séquences d'échappement. PostScript ne peut + imprimer directement du texte, et c'est pour ce genre + de langage qu'il y a des mesures particulières à + prendre.</para> + </note> + + <sect5 + id="printing-checking-parallel"> + <title>Tester une imprimante parallèle</title> + + <para>Cette section vous explique comment tester si FreeBSD + peut communiquer avec une imprimante connectée sur un port + parallèle.</para> + + <para><emphasis>Pour tester une imprimante sur un port + parallèle:</emphasis></para> + + <procedure> + + <step> + <para>Devenez super-utilisateur avec <citerefentry> + <refentrytitle>su</refentrytitle></citerefentry>.</para> + </step> + + <step> + <para>Envoyez des données à l'imprimante. + <itemizedlist> + + <listitem> + <para>Si l'imprimante accepte directement du texte, + utilisez <citerefentry> + <refentrytitle>lptest</refentrytitle></citerefentry>. Tapez: + + <informalexample> + <screen>&prompt.root; <userinput>lptest > /dev/lpt<replaceable>N</replaceable></userinput></screen> + </informalexample> où <replaceable>N</replaceable> + est le numéro du port parallèle, à partir de + zéro.</para> + </listitem> + + <listitem> + <para>Si l'imprimante comprend PostScript ou un + autre langage d'impression, alors envoyez-lui un + petit programme. Tapez: + + <informalexample> + <screen>&prompt.root; <userinput>cat > /dev/lpt<replaceable>N</replaceable></userinput></screen> + </informalexample> Puis tapez votre programme + ligne à ligne + <emphasis>avec soin</emphasis> car vous ne pouvez + pas corriger la ligne une fois que vous avez tapé + Entrée. Quand vous avez fini de saisir votre + programme, tapez CONTROL+D, ou une autre + combinaison particulière de touches, + pour indiquer la fin du fichier.</para> + + <para>Vous pouvez aussi mettre votre programme dans + un fichier et taper: + + <informalexample> + <screen>&prompt.root; <userinput>cat <replaceable>fichier</replaceable> > /dev/lpt<replaceable>N</replaceable></userinput></screen> + </informalexample> où <replaceable>fichier</replaceable> + est le nom du fichier contenant le programme que + vous voulez envoyer à l'imprimante.</para> + </listitem> + + </itemizedlist> + </para> + </step> + + </procedure> + + <para>Vous devriez obtenir une impression. Ne vous inquiétez pas + si le texte ne s'imprime pas correctement; nous réglerons ces + problèmes ensuite.</para> + + </sect5> + + <sect5 + id="printing-checking-serial"> + <title>Tester une imprimante série</title> + + <para>Cette section vous explique comment tester si FreeBSD + peut communiquer avec une imprimante connectée sur un port + série.</para> + + <para><emphasis>Pour tester une imprimante sur un port + série:</emphasis></para> + + <procedure> + + <step> + <para>Devenez super-utilisateur avec <citerefentry> + <refentrytitle>su</refentrytitle></citerefentry>.</para> + </step> + + <step> + <para>Editez le fichier <filename>/etc/remote</filename>. + Ajoutez la ligne suivante: + + <programlisting> + printer:dv=/dev/<replaceable>port</replaceable>:br#<replaceable>bps</replaceable>:pa=<replaceable>parité</replaceable> + </programlisting> où <replaceable>port</replaceable> + est le fichier spécial de périphérique pour le port + série (<literal>ttyd0</literal>, + <literal>ttyd1</literal>, etc...), <replaceable>bps</replaceable> est la vitesse de communication en bits par seconde, + et <replaceable>parité</replaceable> est la parité + requise par l'imprimante + (soit <literal>even</literal> (paire), <literal>odd</literal> (impaire), <literal>none</literal> (aucune), ou <literal>zero</literal> (toujours nulle) ).</para> + + <para>Voici un exemple pour une imprimante connectée par + une ligne série au troisième port série, à 19200 bps, + sans contrôle de parité: + + <programlisting> + printer:dv=/dev/ttyd2:br#19200:pa=none + </programlisting></para> + </step> + + <step> + <para>Connectez-vous à l'imprimante avec <citerefentry> + <refentrytitle>tip</refentrytitle></citerefentry>. Tapez: + <informalexample> + <screen>&prompt.root; <userinput>tip printer</userinput></screen> + </informalexample> Si cela ne marche pas, éditez de + nouveau le fichier <filename>/etc/remote</filename> + et essayez de remplacer + <filename>/dev/ttyd<replaceable>N</replaceable></filename> par <filename>/dev/cuaa<replaceable>N</replaceable></filename>.</para> + </step> + + <step> + <para>Envoyez des données à l'imprimante. + <itemizedlist> + + <listitem> + <para>Si l'imprimante accepte directement du texte, + utilisez <citerefentry> + <refentrytitle>lptest</refentrytitle></citerefentry>. Tapez: + + <informalexample> + <screen><prompt>~</prompt><userinput>$lptest</userinput></screen> + </informalexample></para> + </listitem> + + <listitem> + <para>Si votre imprimante comprend PostScript ou + un autre langage d'impression, envoyez-lui alors + un petit programme. Tapez le programme, ligne + à ligne, en faisant + <emphasis>très attention</emphasis> car le retour + arrière ou d'autres touches d'éditions peuvent + vouloir dire autre chose pour l'imprimante. + Vous devrez peut-être aussi utiliser un caractère + particulier de fin de fichier pour que + l'imprimante sache qu'elle a reçu tout le + programme. Pour les imprimantes PostScript, + tapez CONTROL+D.</para> + + <para>Vous pouvez aussi enregistrer votre programme + dans un fichier et taper: + + <informalexample> + <screen><prompt>~</prompt><userinput>><replaceable>fichier</replaceable></userinput></screen> + </informalexample> où <replaceable>fichier</replaceable> est le nom du fichier contenant le programme. Après que + <citerefentry> + <refentrytitle>tip</refentrytitle></citerefentry> ait envoyé le fichier, appuyez sur la touche de fin de fichier adéquate.</para> + </listitem> + + </itemizedlist> + </para> + </step> + + </procedure> + + <para>Vous devriez obtenir une impression. Ne vous inquiétez pas + si le texte ne s'imprime pas correctement; nous réglerons ces + problèmes ensuite.</para> + + </sect5> + </sect4> + </sect3> + + <sect3 + id="printing-printcap"> + <title>Activer le gestionnaire d'impression: Le + fichier <filename>/etc/printcap</filename> + </title> + + <para>A ce stade, votre imprimante devrait être connectée, votre + noyau configuré (au besoin) pour communiquer avec, et vous devriez + avoir réussi à lui envoyer un minimum de données. Nous sommes + maintenant prêt à configurer LPD pour qu'il contrôle l'accès à + votre imprimante.</para> + + <para>Vous configurez LPD en éditant le fichier + <filename>/etc/printcap</filename>. Le gestionnaire d'impression + LPD lit ce fichier chaque fois qu'il est fait appel à lui, les + modifications s'appliquent donc immédiatement.</para> + + <para>Le format du fichier <citerefentry> + <refentrytitle>printcap</refentrytitle></citerefentry> est + explicite. Utilisez votre éditeur de texte préféré pour le + modifier. Son format est similaire à celui des fichiers + associés à d'autres utilitaires comme + <filename>/usr/share/misc/termcap</filename> et + <filename>/etc/remote</filename>. Pour une description complète + de ce format, reportez-vous à + <citerefentry><refentrytitle>cgetent</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para> + + <para>Une configuration de base du gestionnaire d'impression passe + par les étapes suivantes:</para> + + <procedure> + + <step> + <para>Choisissez un nom (et quelques alias utiles) pour + l'imprimante et introduisez-le(s) dans le fichier + <filename>/etc/printcap</filename>; reportez-vous à + la section <link + linkend="printing-naming">Donner un nom à l'imprimante</link>.</para> + </step> + + <step> + <para>Désactivez l'impression des pages d'en-tête (qui sont + en service par défaut) en insérant la fonctionnalité + <literal>sh</literal>; + reportez-vous à la section + <link linkend="printing-no-header-pages">Supprimer l'impression des pages + d'en-tête</link>.</para> + </step> + + <step> + <para>Créez un répertoire pour la file d'attente, et indiquez + où il se trouve avec l'option <literal>sd</literal>; + reportez-vous à la section <link linkend="printing-spooldir">Créer + le répertoire tampon</link>.</para> + </step> + + <step> + <para>Identifiez l'entrée <filename>/dev</filename> à utiliser + avec cette imprimante et reportez-la dans le fichier + <filename>/etc/printcap</filename> avec l'option + <literal>lp</literal>; reportez-vous à la section + <link + linkend="printing-device">Définir le périphérique + associé à l'imprimante</link>. Si l'imprimante est sur un port série, vous + devez aussi préciser les paramètres de communication + avec les options + <literal>fs</literal>, <literal>fc</literal>, + <literal>xs</literal>, et <literal>xc</literal>; + reportez-vous à la section <link + linkend="printing-commparam">Configurer les paramètres + de communication du gestionnaire d'impression</link>.</para> + </step> + + <step> + <para>Installez un filtre pour l'impression de fichiers texte; + reportez-vous à la section <link + linkend="printing-textfilter">Installer le filtre texte</link>.</para> + </step> + + <step> + <para>Testez la configuration en imprimant quelque chose avec + la commande + <citerefentry> + <refentrytitle>lpr</refentrytitle></citerefentry>; + reportez-vous aux sections + <link linkend="printing-trying">Tester la configuration</link> + et <link linkend="printing-troubleshooting">Régler + les problèmes</link>.</para> + </step> + + </procedure> + + <note> + <para>Les imprimantes qui utilisent un langage, comme les + imprimantes PostScript, ne savent pas imprimer directement + du texte. La configuration simple résumée ci-desssus, et + décrite dans ce qui suit, suppose que si vous installez + ce type d'imprimante, vous lui enverrez uniquement des + fichiers qu'elle comprenne.</para> + </note> + + <para>Les utilisateurs s'attendent souvent à pouvoir imprimer + du texte simple sur toutes les imprimantes de votre système. + Les programmes qui font appel à LPD font la même supposition. + Si vous installez ce type d'imprimante et que vous voulez + utiliser le langage d'impression <emphasis>et</emphasis> + imprimer aussi des fichiers texte, je vous conseille fortement + d'ajouter une étape supplémentaire à la procédure résumée + ci-dessus: installez un filtre de conversion automatique des + fichiers texte en PostScript (ou tout autre langage d'impression). + La section <link + linkend="printing-advanced-if-conversion">Imprimer du texte + sur des imprimantes PostScript</link> vous explique comment + faire.</para> + + + <sect4 + id="printing-naming"> + <title>Donner un nom à l'imprimante</title> + + <para>La première étape (facile) consiste à donner + un nom à l'imprimante. Cela n'a pas d'importance que vous lui + donniez un nom fonctionnel ou nom bizarre parce que vous + pouvez aussi définir un certain nombre d'alias.</para> + + <para>Au moins l'une des imprimantes que vous définirez dans + le fichier <filename>/etc/printcap</filename> devrait s'appeler + <literal>lp</literal>. C'est le nom de l'imprimante par défaut. + Si les utilisateurs ne définissent pas leur variable + d'environnement PRINTER et ne précisent pas le nom de + l'imprimante avec une des commandes de LPD, alors + <literal>lp</literal> est l'imprimante par défaut à laquelle ils + s'adressent.</para> + + <para>Il est aussi d'usage que le dernier alias d'une imprimante + la décrive complètement, marque et modèle y compris.</para> + + <para>Un fois que vous avez choisi un nom et quelques alias + courants, introduisez-les dans le fichier + <filename>/etc/printcap</filename>. Le nom de l'imprimante + doit être écrit au début de la ligne. Séparez chaque alias + par une barre verticale et mettez un “:” après + le dernier alias.</para> + + <para>L'exemple suivant montre un fichier + <filename>/etc/printcap</filename> de base, qui définit deux + imprimantes (une imprimante ligne Diablo 630 et une imprimante + laser PostScript Panasonic KX-P4455): + + <programlisting> + # + # /etc/printcap pour la machine rose + # + rattan|line|diablo|lp|Imprimante Ligne Diablo 630: + + bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4: + </programlisting> + Dans cet exemple, la première imprimante s'appelle + <literal>rattan</literal> et a pour alias + <literal>line</literal>, <literal>diablo</literal>, + <literal>lp</literal>, et <literal>Imprimante Ligne Diablo + 630</literal>. Comme <literal>lp</literal> est un de ses alias, + c'est aussi l'imprimante par défaut. La seconde s'appelle + <literal>bamboo</literal>, et a pour alias <literal>ps</literal>, + <literal>PS</literal>, <literal>S</literal>, + <literal>panasonic</literal>, et <literal>Panasonic KX-P4455 PostScript + v51.4</literal>.</para> + + </sect4> + + <sect4 + id="printing-no-header-pages"> + <title>Supprimer l'impression de pages d'en-tête</title> + + <para>Le gestionnaire d'impression générera par défaut + une page d'en-tête pour chaque travail d'impression. La page + d'en-tête affiche le nom de l'utilisateur qui l'a soumis, + le nom de la machine d'où il a été lancé et le nom du + travail d'impression, le tout en grosses lettres. + Malheureusement, tout ce texte supplémentaire complique la + mise au point de la configuration des imprimantes, aussi + supprimerons-nous les pages d'en-tête.</para> + + <para>Pour supprimer les pages d'en-tête, + ajoutez la fonctionnalité + <literal>sh</literal> à l'entrée associée à l'imprimante dans + le fichier <filename>/etc/printcap</filename>. Voici un exemple + de fichier <filename>/etc/printcap</filename> où l'on a ajouté + <literal>sh</literal>:</para> + + <programlisting> + # + # /etc/printcap pour la machine rose - pas de pages d'en-tête + # + rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\ + :sh: + + bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ + :sh: + </programlisting> + + <para>Notez bien le format correct. La première ligne commence + immédiatement à gauche, et les lignes suivantes sont indentées + avec un seul caractère Tab. Chaque ligne d'une même entrée, sauf + la dernière, se termine par une barre oblique inverse.</para> + + </sect4> + + <sect4 + id="printing-spooldir"> + <title>Créer le répertoire tampon</title> + + <para>L'étape suivante de la configuration de base du gestionnaire + d'impression consiste à créer un + <emphasis>répertoire tampon</emphasis>, où les travaux + d'impression attendent d'être traités et où se trouvent aussi + un certain nombre de fichiers nécessaires au gestionnaire + d'impression.</para> + + <para>Comme le contenu de ces répertoires tampon est transitoire, + il est habituel de les mettre dans le répertoire + <filename>/var/spool</filename>. Ces répertoires n'ont pas non + plus besoin d'être archivés. Il suffit d'un simple + <citerefentry> + <refentrytitle>mkdir</refentrytitle></citerefentry> pour + les recréer.</para> + + <para>L'usage veut que l'on donne au répertoire le même nom + qu'à l'imprimante, comme ci-dessous: + + <informalexample> + <screen>&prompt.root; <userinput>mkdir /var/spool/<replaceable>imprimante</replaceable></userinput></screen> + </informalexample> Cependant, s'il y a beaucoup d'imprimantes + sur votre réseau, vous voudrez peut-être regrouper tous les + répertoires tampon dans un seul répertoire qui sera réservé + à l'impression par LPD. C'est ce que nous ferons pour nos deux + imprimantes <literal>rattan</literal> et + <literal>bamboo</literal>: + + <informalexample> + <screen>&prompt.root; <userinput>mkdir /var/spool/lpd</userinput> + &prompt.root; <userinput>mkdir /var/spool/lpd/rattan</userinput> + &prompt.root; <userinput>mkdir /var/spool/lpd/bamboo</userinput></screen> + </informalexample></para> + + <note> + <para>Si la confidentialité des travaux d'impression de + vos utilisateurs vous préoccuppe, vous pouvez protéger + le répertoire tampon pour qu'il ne soit pas accessible + à tout le monde. Les répertoires tampon doivent appartenir, + être accessibles en lecture et en écriture et pouvoir être + parcourus par l'utilisateur <username>daemon</username> et le + groupe <username>daemon</username>. C'est ce que nous ferons + pour les imprimantes de notre exemple:</para> + + + <informalexample> + <screen>&prompt.root; <userinput>chown daemon.daemon /var/spool/lpd/rattan</userinput> + &prompt.root; <userinput>chown daemon.daemon /var/spool/lpd/bamboo</userinput> + &prompt.root; <userinput>chmod 770 /var/spool/lpd/rattan</userinput> + &prompt.root; <userinput>chmod 770 /var/spool/lpd/bamboo</userinput></screen> + </informalexample> + </note> + + <para>En dernier lieu, il faut donner à LPD les noms de ces + répertoires par l'intermédiaire du fichier + <filename>/etc/printcap</filename>. Cela se fait avec + la fonctionnalité + <literal remap="tt">sd</literal>:</para> + + <programlisting> + # + # /etc/printcap pour la machine rose - ajout des répertoires tampon + # + rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\ + :sh:sd=/var/spool/lpd/rattan: + + bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ + :sh:sd=/var/spool/lpd/bamboo: + </programlisting> + + <para>Notez bien que le nom de l'imprimante commence en première + colonne, que toutes les autres lignes doivent être indentées + par une tabulation et que toutes les lignes sauf la dernière + se terminent par une barre oblique inverse.</para> + + <para>Si vous ne définissez pas le répertoire tampon avec + <literal>sd</literal>, le gestionnaire d'impression utilisera + <filename>/var/spool/lpd</filename> par défaut.</para> + + </sect4> + + <sect4 id="printing-device"> + <title>Définir le périphérique associé à l'imprimante</title> + + <para>Dans la section <link linkend="printing-dev-ports">Ajouter + les entrées pour les ports dans le répertoire <filename>/dev</filename></link>, + nous avons identifié l'entrée du répertoire <filename>/dev</filename> + via laquelle FreeBSD communiquera avec l'imprimante. Il faut + maintenant donner cette information à LPD. Quand le gestionnaire + aura un travail à imprimer, il ouvrira le fichier spécial + pour les besoins du programme filtre (qui envoie les données + à l'imprimante).</para> + + <para>Indiquez l'entrée <filename>/dev</filename> utilisée avec + la fonctionnalité <literal>lp</literal> dans le fichier + <filename>/etc/printcap</filename>.</para> + + <para>Supposons que, dans notre exemple, l'imprimante + <hostid>rattan</hostid> soit sur le premier port parallèle et + et l'imprimante <hostid>bamboo</hostid> sur le sixième; voici + ce qu'il faut ajouter au fichier + <filename>/etc/printcap</filename>:</para> + + <programlisting> + # + # /etc/printcap pour la machine rose + # définition des périphériques à utiliser + # + rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\ + :sh:sd=/var/spool/lpd/rattan:\ + :lp=/dev/lpt0: + + bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ + :sh:sd=/var/spool/lpd/bamboo:\ + :lp=/dev/ttyd5: + </programlisting> + + <para>Si vous ne donnez pas de valeur + <emphasis remap=tt>lp</emphasis> à une imprimante + dans le fichier + <filename>/etc/printcap</filename>, LPD utilise + <filename>/dev/lp</filename> par défaut. + <filename>/dev/lp</filename> n'existe actuellement pas sous + FreeBSD.</para> + + <para>Si l'imprimante est connectée à un port parallèle, allez + directement à la section <link + linkend="printing-textfilter">Installer le filtre texte</link>. + Sinon, suivez bien les instructions de + la prochaine section.</para> + + </sect4> + + <sect4 + id="printing-commparam"> + <title>Configurer les paramètres de communication du gestionnaire + d'impression</title> + + <para>Pour les imprimantes sur des ports série, LPD peut définir + la vitesse en bps, la parité et les autres paramètres de + communication série, pour les besoins du programme filtre, qui + envoie les données à l'imprimante. C'est intéressant parce que: + + <itemizedlist> + + <listitem> + <para>Cela vous permet de tester des valeurs différentes + des paramètres en modifiant simplement le fichier + <filename>/etc/printcap</filename>; vous n'avez pas + besoin de recompiler le programme filtre.</para> + </listitem> + + <listitem> + <para>Cela permet au gestionnaire d'impression d'utiliser + le même programme filtre pour différentes imprimantes + qui n'ont pas les mêmes paramètres de + communication.</para> + </listitem> + + </itemizedlist> + </para> + + <para>Les fonctionnalités suivantes de + <filename>/etc/printcap</filename> + contrôlent les paramètres de communication série du périphérique + spécifié avec la fonctionnalité + <emphasis remap=tt>lp</emphasis>: + + <variablelist> + <varlistentry><term><literal>br#<replaceable>vitesse_en_bps</replaceable></literal></term> + <listitem> + <para>Fixe la vitesse de communication à + <replaceable>vitesse_en_bps</replaceable>, où + <replaceable>vitesse_en_bps</replaceable> + peut prendre les valeurs 50, 75, + 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, + 9600, 19200, ou 38400 bits par seconde.</para> + </listitem> + </varlistentry> + + <varlistentry><term><literal>fc#<replaceable>bits_à_réinitialiser</replaceable></literal></term> + + <listitem> + <para>Réinitialise les indicateurs + <replaceable>bits_à_réinitialiser</replaceable> de la + structure <replaceable>sgttyb</replaceable> + après avoir ouvert le fichier spécial de + périphérique.</para> + </listitem> + </varlistentry> + + <varlistentry><term><literal>fs#<replaceable>bits_à_positionner</replaceable></literal></term> + + <listitem> + <para>Positionne les indicateurs + <replaceable>bits_à_positionner</replaceable> de la + structure <replaceable>sgttyb</replaceable>.</para> + </listitem> + </varlistentry> + + <varlistentry><term><literal>xc#<replaceable>bits_à_réinitialiser</replaceable></literal></term> + + <listitem> + <para>Réinitialise les indicateurs du mode local + <replaceable>bits_à_rénitialiser</replaceable> + après avoir ouvert le fichier spécial de + périphérique.</para> + </listitem> + </varlistentry> + + <varlistentry><term><literal>xs#<replaceable>bits_à_positionner</replaceable></literal></term> + + <listitem> + <para>Positionne les indicateurs du mode local + <replaceable>bits_à_positionner</replaceable>.</para> + </listitem> + </varlistentry> + </variablelist> Pour plus d'informations sur les bits manipulés + par les fonctionnalités + <literal>fc</literal>, <literal>fs</literal>, <literal>xc</literal>, + et <literal>xs</literal>, reportez-vous au fichier + <filename>/usr/include/sys/ioctl_compat.h</filename>.</para> + + <para>Quand LPD ouvre le périphérique défini par la fonctionnalité + <literal>lp</literal>, il lit les indicateurs de la structure + <literal>sgttyb</literal>; il réinitialise les bits définis + par la fonctionnalité <literal remap="tt">fc</literal>, + puis positionne ceux définis par la fonctionnalité + <literal>fs</literal> et applique le paramètrage ainsi défini. + Il fait de même pour les indicateurs du mode local.</para> + + <para>Complétons notre exemple pour l'imprimante sur le + sixième port série. Nous fixerons la vitesse à 38400 bps. + Nous positionnerons les indicateurs + TANDEM, ANYP, LITOUT, FLUSHO, et PASS8, et les indicateurs + du mode local LITOUT et PASS8: + + <programlisting> + bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ + :sh:sd=/var/spool/lpd/bamboo:\ + :lp=/dev/ttyd5:fs#0x82000c1:xs#0x820: + </programlisting></para> + + </sect4> + + <sect4 + id="printing-textfilter"> + <title>Installer le filtre texte</title> + + <para>Nous sommes maintenant prêts à dire à LPD quel filtre + texte utiliser pour envoyer les travaux à l'imprimante. + Un <emphasis>filtre texte</emphasis>, aussi appelé + <emphasis>filtre d'entrée</emphasis>, est un programme que LPD + exécute quand il a un travail à imprimer. Quand LPD + exécute un filtre texte pour une imprimante, il affecte + à l'entrée standard du filtre le travail à imprimer et à + sa sortie standard le fichier spécial de périphérique + défini par la fonctionnalité <literal>lp</literal>. + Le filtre est + supposé lire le travail sur l'entrée standard, effectuer le + transcodage nécessaire et envoyer le résultat sur la sortie + standard. Pour plus d'informations sur les filtres texte, + reportez-vous à la section <link + linkend="printing-advanced-filters">Comment + fonctionnent les filtres</link>.</para> + + <para>Pour notre exemple de configuration simple, le filtre texte + peut être une petite procédure qui exécute seulement + <command>/bin/cat</command> pour envoyer le travail à + l'imprimante. FreeBSD est livré avec un autre filtre appelé + <filename>lpf</filename> qui gère les retours arrière et les + soulignés pour les imprimantes qui ne traitent pas bien ces + caractères de contrôle. Et, bien sûr, vous pouvez utilisez le + filtre que vous voulez. Le filtre <command>lpf</command> est + décrit en détail à la section + <link linkend="printing-advanced-lpf"><command>lpf</command>: un + filtre texte</link>.</para> + + <para>Créons d'abord le filtre texte élémentaire + <filename>/usr/local/libexec/if-simple</filename>. + Avec votre éditeur de texte favori, donnez à ce fichier + le contenu suivant: + + <programlisting> + #!/bin/sh + # + # if-simple - filtre texte élémentaire pour lpd + # fichier /usr/local/libexec/if-simple + # + # copie simplement stdin dans stdout. Ne prend aucun argument. + + /bin/cat && exit 0 + exit 2 + </programlisting> + Mettez les droits d'exécution sur le fichier: + + <informalexample> + <screen>&prompt.root; <userinput>chmod 555 /usr/local/libexec/if-simple</userinput></screen> + </informalexample></para> + + <para>Et précisez maintenant à LPD de l'utiliser + avec la fonctionnalité + <literal>if</literal> de + <filename>/etc/printcap</filename>. Nous l'affecterons aux deux + imprimantes que nous avons déjà dans notre exemple de + <filename>/etc/printcap</filename>:</para> + + <programlisting> + # + # /etc/printcap pour la machine rose - ajout du filtre texte + # + rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\ + :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\ + :if=/usr/local/libexec/if-simple: + + bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ + :sh:sd=/var/spool/lpd/bamboo:\ + :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:\ + :if=/usr/local/libexec/if-simple: + </programlisting> + + </sect4> + + <sect4 + id="printing-trying"> + <title>Tester la configuration</title> + + <para>Vous avez terminé la configuration simple de LPD. + Malheureusement, les félicitations ne sont pas encore de mise, + il nous faut d'abord faire une essai et régler tous les + problèmes. Pour tester la configuration, essayez d'imprimer + quelque chose. Pour imprimer avec le gestionnaire LPD, vous + invoquez la commande <citerefentry> + <refentrytitle>lpr</refentrytitle></citerefentry>, + qui soumet un travail d'impression.</para> + + <para>Vous pouvez combiner <citerefentry> + <refentrytitle>lpr</refentrytitle></citerefentry> + et le programme <citerefentry> + <refentrytitle>lptest</refentrytitle></citerefentry>, + dont nous avons parlé à la section + <link linkend="printing-testing">Tester la communication avec + l'imprimante</link>, pour générer du + texte pour le test.</para> + + <para><emphasis>Tester la configuration simple de + LPD:</emphasis></para> + + <para>Tapez: + + <informalexample> + <screen>&prompt.root; <userinput>lptest 20 5 | lpr -P<replaceable>imprimante</replaceable></userinput></screen> + </informalexample> où <emphasis + remap=it>imprimante</emphasis> est le nom d'une imprimante + (ou un alias) définie dans <filename>/etc/printcap</filename>. + Pour tester l'imprimante par défaut, tapez <citerefentry> + <refentrytitle>lpr</refentrytitle></citerefentry> + sans argument <option>-P</option>. Encore une fois, si vous + tester une imprimante qui attend du PostScript, envoyez-lui + un programme PostScript au lieu d'utiliser + <citerefentry> + <refentrytitle>lptest</refentrytitle></citerefentry>. Vous + pouvez le faire en mettant ce programme dans un fichier et en + tapant <command>lpr <replaceable>fichier</replaceable></command>.</para> + + <para>Avec une imprimante PostScript, vous devriez voir les + résultats du programme. Si vous utilisez <citerefentry> + <refentrytitle>lptest</refentrytitle></citerefentry>, + alors le résultat devrait ressembler à ce qui suit:</para> + + <programlisting> + !"#$%&'()*+,-./01234 + "#$%&'()*+,-./012345 + #$%&'()*+,-./0123456 + $%&'()*+,-./01234567 + %&'()*+,-./012345678 + </programlisting> + + <para>Pour faire d'autres essais, envoyez des programmes plus + longs (aux imprimantes qui comprennent un langage) ou + exécutez <citerefentry> + <refentrytitle>lptest</refentrytitle></citerefentry> avec + d'autres arguments. Par exemple, <command>lptest 80 60</command> qui générera 60 lignes de 80 caractères chacune.</para> + + <para>Si l'imprimante ne fonctionne pas, voyez la section suivante <link + linkend="printing-troubleshooting">Régler les problèmes</link>.</para> + + </sect4> + + <sect4 + id="printing-troubleshooting"> + <title>Régler les problèmes</title> + + <para>Après le test élémentaire avec <citerefentry> + <refentrytitle>lptest</refentrytitle></citerefentry>, vous + pouvez avoir rencontré l'un des problèmes suivants, au lieu + d'obtenir une impression correcte:</para> + + <variablelist> + <varlistentry><term>Cela a marché quelque temps; ou, + l'imprimante n'a pas éjecté la page.</term> + <listitem> + <para>L'imprimante a bien imprimé les résultats du + test ci-dessus, puis s'est arrêtée et n'a rien fait. + Il vous aurait peut être fallu appuyer sur le bouton + “Avance Papier” ou “Continuer + l'Impression” pour obtenir la suite.</para> + + <para>Dans ce cas, l'imprimante attendait probablement + la suite de votre travail avant d'imprimer quoi que + ce soit. Pour régler le problème, vous pouvez modifier + le filtre texte pour qu'il envoie un caractère de saut + de page (“FORM FEED”) - ou tout autre + caractère nécessaire - à l'imprimante. Cela suffit + généralement pour que l'imprimante traite immédiatement + le texte qu'elle a encore en mémoire. C'est aussi + utile pour être sûr que chaque travail d'impression + se termine sur une page complète, de sorte que le + travail suivant ne commence pas sur la dernière page + du travail qui le précède.</para> + + <para>Voici une procédure + <filename>/usr/local/libexec/if-simple</filename> + modifiée qui envoie un saut de page à la fin du + travail d'impression: + + <programlisting> + #!/bin/sh + # + # if-simple - filtre texte élémentaire pour lpd + # fichier /usr/local/libexec/if-simple + # + # copie simplement stdin dans stdout. Ne prend aucun argument. + # envoie un caractère de saut de page (\f) en fin d'impression. + + /bin/cat && printf "\f" && exit 0 + exit 2 + </programlisting></para> + </listitem> + </varlistentry> + + <varlistentry><term>Le texte s'est imprimé “en + escalier.”</term> + + <listitem> + <para>Si vous obtenez ce qui suit: + + <programlisting> + !"#$%&'()*+,-./01234 + "#$%&'()*+,-./012345 + $%&'()*+,-./0123456 + </programlisting> + vous êtes la nouvelle victime de + l'<emphasis>effet d'escalier</emphasis>, dû à une + interprétation divergente des caractères de saut de + ligne. Les systèmes d'exploitation de type Unix + utilisent un seul caractère: le code ASCII 10, ou + saut de ligne (LF - “Line Feed”). + MS-DOS, OS/2 et d'autres utilisent deux caractères, + le code ASCII 10 <emphasis>et</emphasis> le code ASCII + 13 (le retour-chariot ou CR - “Carriage Return”). + De nombreuses imprimantes emploient les conventions + MS-DOS pour passer à la ligne.</para> + + <para>Quand vous imprimez avec FreeBSD, votre texte ne + contient que le caractère de saut de ligne. L'imprimante + passe alors à la ligne suivante, mais ne revient pas + en début de ligne. C'est à cela que sert le + retour-chariot: revenir au début de ligne avant + d'imprimer le prochain caractère.</para> + + <!-- This para needs to be rewritten - Nik --> + <para>Voici ce que FreeBSD attend de votre imprimante:</para> + + <informaltable> + <tgroup cols="2"> + <thead> + <row> + <entry>L'imprimante reçoit</entry> + <entry>L'imprimante imprime</entry> + </row> + </thead> + + <tbody> + <row> + <entry>CR</entry> + <entry>CR</entry> + </row> + + <row> + <entry>LF</entry> + <entry>CR + LF</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para>Il y a plusieurs façons d'y arriver: + <itemizedlist> + + <listitem> + <para>Utilisez les interrupteurs du panneau de + contrôle de l'imprimante pour modifier la façon + dont elle interprète ces caractères. Voyez le + mode d'emploi de votre imprimante pour savoir + comment faire.</para> + + <note> + <para>Si vous utilisez aussi sur votre machine + d'autres systèmes d'exploitation que FreeBSD, + vous devrez peut-être + <emphasis>configurer</emphasis> votre + imprimante pour qu'elle interprète CR et LF + en fonction de la manière dont ces autres + systèmes d'exploitation les utilisent. Vous + préférerez alors une des autres solutions + ci-dessous.</para> + </note> + </listitem> + + <listitem> + <para>Faire en sorte que le pilote de liaison série + de FreeBSD convertisse les LF en CR+LF. Cela ne + marche, bien entendu, <emphasis>qu'avec</emphasis> + les imprimantes sur des ports série. Pour cela, + positionnez le bit CRMOD de la fonctionnalité + <emphasis remap="tt">fs</emphasis> de l'imprimante dans + le fichier + <filename>/etc/printcap</filename>.</para> + </listitem> + + <listitem> + <para>Envoyer une + <emphasis>séquence d'échappement</emphasis> à + l'imprimante pour qu'elle traite temporairement + les caractères LF de façon différente. Consultez + la documentation de votre imprimante pour + connaître la commande adéquate. Une fois que vous + l'avez trouvée, modifiez le filtre pour qu'il + envoie cette commande avant le travail + d'impression.</para> + + <para>Voici un exemple de filtre texte pour les + imprimantes qui acceptent les séquences + d'échappement du langage PCL de Hewlett-Packard. + Ce filtre envoie la commande qui dit à + l'imprimante de traiter les caractères LF comme + un CR et un LF, puis le travail d'impression et + enfin un saut de page pour éjecter la dernière + page. Il devrait être utilisable avec presque + toutes les imprimantes Hewlett-Packard.</para> + + <programlisting> + #!/bin/sh + # + # hpif - filtre texte élémentaire pour lpd + # pour les imprimantes compatibles HP-PCL + # fichier /usr/local/libexec/hpif + # + # copie simplement stdin dans stdout. Ne prend aucun argument. + # dit à l'imprimante de traiter LF comme un CR+LF +# envoie un caractere de saut de page (\f) en fin d'impression. + +printf "\033&k2G" && cat && printf "\f" && exit 0 +exit 2 + </programlisting> + + <para>Voici un exemple de fichier + <filename>/etc/printcap</filename> pour une + machine appelée orchid. Elle a une seule + imprimante sur son premier port parallèle, une + LaserJet 3Si Hewlett-Packard appelée + <hostid>teak</hostid>. Elle utilise la procédure + ci-dessus comme filtre texte: + + <programlisting> + # + # /etc/printcap pour la machine orchid + # + teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ + :lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\ + :if=/usr/local/libexec/hpif: + </programlisting></para> + </listitem> + + </itemizedlist> + </para> + </listitem> + </varlistentry> + + <varlistentry><term>Les lignes se superposent.</term> + + <listitem> + <para>L'imprimante n'a jamais avancé d'une ligne. + Toutes les lignes sont imprimées les unes sur les + autres.</para> + + <para>C'est le problème “inverse” de l'effet + d'escalier décrit ci-dessus, et c'est plus rare. Pour + une raison quelconque, les caractères LF que FreeBSD + emploie en fin de ligne sont compris comme des + caractères CR de retour en début de ligne, sans passage + à la ligne.</para> + + <!-- Need to rewrite this para --> + <para>Utilisez les interrupteurs du panneau de + contrôle de l'imprimante pour modifier comme suit + son interprétation des caractères LF et CR.</para> + + <informaltable> + <tgroup cols="2"> + <thead> + <row> + <entry>L'imprimante reçoit</entry> + <entry>L'imprimante imprime</entry> + </row> + </thead> + + <tbody> + <row> + <entry>CR</entry> + <entry>CR</entry> + </row> + + <row> + <entry>LF</entry> + <entry>CR + LF</entry> + </row> + </tbody> + </tgroup> + </informaltable> + </listitem> + </varlistentry> + + <varlistentry><term>L'imprimante perd des caractères.</term> + + <listitem> + <para>En cours d'impression, l'imprimante perd + quelques caractères de chaque ligne. Cela peut aller + de mal en pis, de plus en plus de caractères se + perdent.</para> + + <para>Le problème tient à ce que l'imprimante ne + suit pas le rythme auquel l'ordinateur lui envoie + des données sur la ligne série. (Ce problème ne + devrait pas se produire avec les imprimantes sur + des ports parallèles.) Il y a deux façons de + résoudre ce problème: + <itemizedlist> + + <listitem> + <para>Si l'imprimante gère le contrôle de flux + XON/XOFF, faites en sorte que FreeBSD l'utilise + en positionnant le bit TANDEM de la + fonctionnalité + <literal>fs</literal>.</para> + </listitem> + + <listitem> + <para>Si l'imprimante gère le contrôle de flux + matériel, positionnez le bit MDMBUF de la + fonctionnalité <literal>fs</literal>. Vérifiez + que le câble qui relie l'imprimante à + l'ordinateur est bien conçu pour transmettre + les signaux de contrôle de flux (CTS/RTS).</para> + </listitem> + + <listitem> + <para>Si l'imprimante ne gère aucun protocole de + contrôle de flux, utilisez la bonne combinaison + de bits NLDELAY, TBDELAY, CRDELAY, VTDELAY, et + BSDELAY de la fonctionnalité + <literal>fs</literal> pour introduire les délais + appropriés dans le flot de données + envoyé à l'imprimante.</para> + </listitem> + + </itemizedlist> + </para> + </listitem> + </varlistentry> + + <varlistentry><term>Cela imprime n'importe quoi.</term> + + <listitem> + <para>Ce qui s'imprime ressemble à tout, sauf au + texte attendu.</para> + + <para>C'est en général un autre symptôme d'un paramétrage + incorrect de la communication avec une imprimante série. + Vérifiez la vitesse en bps de la fonctionnalité + <literal>br</literal>, et les bits de parité + des fonctionnalités <literal>fs</literal> et + <literal>fc</literal>; assurez-vous que l'imprimante + utilise les mêmes paramètres que ceux définis dans le + fichier <filename>/etc/printcap</filename>.</para> + </listitem> + </varlistentry> + + <varlistentry><term>Il ne se passe rien.</term> + + <listitem> + <para>S'il ne se passe rien, le problème vient + probablement de FreeBSD et non du matériel. Ajoutez + la fonctionnalité de trace + (<literal>lf</literal>) à l'entrée associée à + l'imprimante que vous testez, dans le fichier + <filename>/etc/printcap</filename>. Par exemple, + voici l'entrée pour <literal>rattan</literal>, avec + la fonctionnalité <literal>lf</literal>: + + <programlisting> + rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\ + :sh:sd=/var/spool/lpd/rattan:\ + :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple:\ + :lf=/var/log/rattan.log + </programlisting> + Refaites ensuite un essai d'impression et consultez le + fichier de trace + (<filename>/var/log/rattan.log</filename>, dans notre + exemple) pour voir s'il y a des messages d'erreur. + Essayez ensuite de corriger le problème au vu de + ces messages.</para> + + <para>Si vous n'utilisez pas la fonctionnalité + <literal>lf</literal>, LPD utilise + <filename>/dev/console</filename> par défaut.</para> + + </listitem> + </varlistentry> + </variablelist> + + </sect4> + </sect3> + </sect2> + </sect1> + + <sect1 + id="printing-using"> + <title>Utiliser les imprimantes</title> + + <para>Cette section vous explique comment utiliser les imprimantes + que vous avez configurées pour FreeBSD. Voici un résumé des + commandes utilisateur:</para> + + <variablelist> + <varlistentry><term><citerefentry> + <refentrytitle>lpr</refentrytitle></citerefentry></term> + <listitem> + <para>Imprime les travaux.</para> + </listitem> + </varlistentry> + + <varlistentry><term><citerefentry> + <refentrytitle>lpq</refentrytitle></citerefentry></term> + + <listitem> + <para>Consulte la file d'attente.</para> + </listitem> + </varlistentry> + + <varlistentry><term><citerefentry> + <refentrytitle>lprm</refentrytitle></citerefentry></term> + + <listitem> + <para>Retire des travaux de la file d'attente.</para> + </listitem> + </varlistentry> + </variablelist> + + <para>Il y a aussi une commande d'administration, <citerefentry> + <refentrytitle>lpc</refentrytitle></citerefentry>, + décrite dans la section <link linkend="printing-lpc">Administrer + les imprimantes</link>, + qui sert à gérer les imprimantes et leurs + files d'attente.</para> + + <para>Chacune des trois commandes <citerefentry> + <refentrytitle>lpr</refentrytitle></citerefentry>, <citerefentry> + <refentrytitle>lprm</refentrytitle></citerefentry>, et + <citerefentry> + <refentrytitle>lpq</refentrytitle></citerefentry> + accepte l'option <option>-P <replaceable>imprimante</replaceable></option> pour préciser à quelle imprimante/file d'attente, + définie dans le fichier <filename>/etc/printcap</filename>, + elle s'applique. Vous pouvez alors soumettre, annuler et + consulter l'état de vos travaux sur les différentes imprimantes. + Si vous omettez l'option <option>-P</option>, ces commandes + s'appliquent à l'imprimante définie par la variable + d'environnement <envar>PRINTER</envar>. En dernier ressort, si + vous n'avez pas défini la variable d'environnement + <envar>PRINTER</envar>, ces commandes s'appliquent par défaut à + l'imprimante appelée <emphasis remap=tt>lp</emphasis>.</para> + + <para>Dans ce qui suit, le terme + <emphasis>imprimante par défaut</emphasis> désigne donc + l'imprimante définie par la variable d'environnement + <envar>PRINTER</envar>, ou l'imprimante appelée + <literal>lp</literal> s'il n'y a pas de variable d'environnement + <envar>PRINTER</envar>.</para> + + + <sect2 + id="printing-lpr"> + <title>Imprimer</title> + + <para>Pour imprimer des fichiers, tapez: + + <informalexample> + <screen>&prompt.user; <userinput>lpr <replaceable>fichier</replaceable> <replaceable>...</replaceable></userinput></screen> + </informalexample> Cela imprime chacun des fichiers indiqués sur + l'imprimante par défaut. Si vous ne donnez pas de nom de fichier, + <citerefentry><refentrytitle>lpr</refentrytitle></citerefentry> + lit les données à imprimer sur l'entrée standard. Par exemple, + la commande: + + <informalexample> + <screen>&prompt.user; <userinput>lpr /etc/host.conf /etc/hosts.equiv</userinput></screen> + </informalexample> imprime des fichiers système importants. Pour + choisir l'imprimante, tapez: + + <informalexample> + <screen>&prompt.user; <userinput>lpr -P <replaceable>imprimante</replaceable> <replaceable>fichier</replaceable> <replaceable>...</replaceable></userinput></screen> + </informalexample> Cet exemple imprime la liste longue du répertoire + courant sur l'imprimante appelée <literal>rattan</literal>: + + <informalexample> + <screen>&prompt.user; <userinput>ls -l | lpr -P rattan</userinput></screen> + </informalexample> Comme on n'a pas donné de nom de fichier à la + commande + <citerefentry> + <refentrytitle>lpr</refentrytitle></citerefentry>, + elle lit les données à imprimer sur l'entrée standard, qui est ici + le résultat de la commande <command>ls -l</command>.</para> + + <para>La commande <citerefentry> + <refentrytitle>lpr</refentrytitle></citerefentry> accepte une + grande variété d'options pour contrôler le format, convertir + les fichiers, imprimer plusieurs copies et ainsi de suite. Pour + plus d'informations, reportez-vous à la section + <link linkend="printing-lpr-options">Au-delà du simple texte : options + d'impression</link>.</para> + + </sect2> + + <sect2 + id="printing-lpq"> + <title>Consulter l'état de la file d'attente</title> + + <para>Quand vous imprimez avec <citerefentry> + <refentrytitle>lpr</refentrytitle></citerefentry>, les + données que vous voulez imprimer sont regroupées dans un + “travail d'impression”, qui est envoyé au gestionnaire + LPD. Chaque imprimante a sa file d'attente des travaux d'impression, + et le votre y est mis en attente avec vos autres travaux et ceux des + autres utilisateurs. L'imprimante les traite sur la base du premier + arrivé, premier servi.</para> + + <para>Pour connaître l'état de la file d'attente de l'imprimante par + défaut, tapez: + <citerefentry> + <refentrytitle>lpq</refentrytitle></citerefentry>. Pour une + imprimante particulière, utilisez l'option <option>-P</option>. Par + exemple, la commande: + + <informalexample> + <screen>&prompt.user; <userinput>lpq -P bamboo</userinput></screen> + </informalexample>affiche la file d'attente de l'imprimante appelée + <hostid>bamboo</hostid>. Voici un exemple de résultat de la + commande <command>lpq</command>: + + <informalexample> + <screen>bamboo is ready and printing + Rank Owner Job Files Total Size + active kelly 9 /etc/host.conf, /etc/hosts.equiv 88 bytes + 2nd kelly 10 (standard input) 1635 bytes + 3rd mary 11 ... 78519 bytes</screen> + </informalexample> Il y a trois travaux dans la file d'attente de + <literal>bamboo</literal>. Le premier, soumis par l'utilisateur + kelly, a été affecté du “numéro de travail” 9. A chaque + travail est attribué un numéro de travail unique. La plupart du + temps, vous n'avez pas besoin de le connaître, sauf si vous voulez + annuler l'impression; reportez-vous à la section + <link linkend="printing-lprm">Annuler des impressions</link> pour plus de + détails.</para> + + <para>Le travail numéro neuf comporte deux fichiers à imprimer; + lorsque plusieurs noms de fichiers sont donnés en paramètres de + la commande <citerefentry> + <refentrytitle>lpr</refentrytitle></citerefentry>, + ils sont traités en un seul travail d'impression. C'est le travail + en cours (ce qu'indique la mention <literal>active</literal> + dans la colonne “Rank”), ce qui signifie que + l'imprimante devrait être en train de l'imprimer.</para> + + <para>Le deuxième travail est constitué par des données passées + de l'entrée standard à la commande <citerefentry> + <refentrytitle>lpr</refentrytitle></citerefentry>. + Le troisième travail vient de l'utilisateur mary; il est bien + plus volumineux. Les noms des fichiers qu'elle veut imprimer + sont trop longs, c'est pourquoi la commande <citerefentry> + <refentrytitle>lpq</refentrytitle></citerefentry> n'affiche + que trois points.</para> + + <para>La première ligne du résultat de <citerefentry> + <refentrytitle>lpq</refentrytitle></citerefentry> est aussi + utile: elle dit ce que l'imprimante est en train de faire (ou + tout du moins, ce que LPD pense qu'elle est en train de + faire).</para> + + <para>La commande <citerefentry> + <refentrytitle>lpq</refentrytitle></citerefentry> accepte + aussi l'option <option>-l</option> qui génère une sortie + détaillée. Voici un exemple de résultat de + <command>lpq -l</command>:</para> + + <informalexample> + <screen>waiting for bamboo to become ready (offline ?) + kelly: 1st [job 009rose] + /etc/host.conf 73 bytes + /etc/hosts.equiv 15 bytes + + kelly: 2nd [job 010rose] + (standard input) 1635 bytes + + mary: 3rd [job 011rose] + /home/orchid/mary/research/venus/alpha-regio/mapping 78519 bytes</screen> + </informalexample> + + </sect2> + + <sect2 + id="printing-lprm"> + <title>Annuler des impressions</title> + + <para>Si vous changez d'avis quant à un travail d'impression, vous + pouvez le retirer de la file d'attente avec la commande + <citerefentry> + <refentrytitle>lprm</refentrytitle></citerefentry>. + La plupart du temps, vous pouvez même utiliser <citerefentry> + <refentrytitle>lprm</refentrytitle></citerefentry> pour + annuler une impression en cours, mais il se peut que tout ou une + partie du travail soit malgré tout imprimé.</para> + + <para>Pour annuler une impression sur l'imprimante par défaut, + utilisez + <citerefentry> + <refentrytitle>lpq</refentrytitle></citerefentry> pour connaître + le numéro du travail. Puis tapez: + <informalexample> + <screen>&prompt.user; <userinput>lprm <replaceable>numéro_du_travail</replaceable></userinput></screen> + </informalexample></para> + + <para>Pour annuler une impression sur une imprimante donnée, ajoutez + l'option <option>-P</option>. La commande qui suit retire le travail + d'impression numéro 10 de la file d'attente de l'imprimante + <hostid>bamboo</hostid>:</para> + + <informalexample> + <screen>&prompt.user; <userinput>lprm -P bamboo 10</userinput></screen> + </informalexample> + + <para>La commande <citerefentry> + <refentrytitle>lprm</refentrytitle></citerefentry> + accepte différents raccourcis:</para> + + <variablelist> + <varlistentry><term>lprm -</term> + <listitem> + <para>Annule tous les travaux (sur l'imprimante par défaut) + qui vous appartiennent.</para> + </listitem> + </varlistentry> + + <varlistentry><term>lprm <replaceable>utilisateur</replaceable></term> + + <listitem> + <para>Annule tous les travaux (sur l'imprimante par défaut) + qui appartiennent à l'<replaceable>utilisateur</replaceable>. Le + super-utilisateur peut annuler les travaux d'impression + des autres utilisateurs; vous ne pouvez retirer que vos + propres travaux.</para> + </listitem> + </varlistentry> + + <varlistentry><term>lprm</term> + + <listitem> + <para>Sans numéro de travail, nom d'utilisateur, ou + <option>-</option> sur la ligne de commande, + <citerefentry> + <refentrytitle>lprm</refentrytitle></citerefentry> retire + le travail en cours de la file d'attente de l'imprimante + par défaut, s'il vous appartient. Le super-utilisateur + peut annuler n'importe quel travail en cours.</para> + + </listitem> + </varlistentry> + </variablelist> + + <para>Employez simplement l'option <option>-P</option> avec les + raccourcis ci-dessus pour les appliquer à une autre imprimante + que l'imprimante par défaut. La commande suivante, par exemple, + retire tous les travaux de l'utilisateur courant de la file + d'attente de l'imprimante appelée <literal>rattan</literal>:</para> + + <informalexample> + <screen>&prompt.user; <userinput>lprm -P rattan -</userinput></screen> + </informalexample> + + <note> + <para>Si vous travaillez dans un environnement en réseau, vous + ne pourrez annuler de travaux avec + <citerefentry> + <refentrytitle>lprm</refentrytitle></citerefentry> + que depuis la machine à partir de laquelle ils ont été soumis, + même si l'imprimante concernée est accessible depuis d'autres + machines. C'est ce qu'illustre la séquence suivante:</para> + + <informalexample> + <screen>&prompt.user; <userinput>lpr -P rattan myfile</userinput> + &prompt.user; <userinput>rlogin orchid</userinput> + &prompt.user; <userinput>lpq -P rattan</userinput> + Rank Owner Job Files Total Size + active seeyan 12 ... 49123 bytes + 2nd kelly 13 myfile 12 bytes + &prompt.user; <userinput>lprm -P rattan 13</userinput> + rose: Permission denied + &prompt.user; <userinput>logout</userinput> + &prompt.user; <userinput>lprm -P rattan 13</userinput> + dfA013rose dequeued + cfA013rose dequeued + </screen> + </informalexample> + </note> + </sect2> + + <sect2 + id="printing-lpr-options"> + <title>Au-delà du simple texte: options d'impression</title> + + <para>La commande <citerefentry> + <refentrytitle>lpr</refentrytitle></citerefentry> accepte + un certain nombre d'options qui contrôlent la mise en page, + la conversion des graphiques et d'autres formats de + fichiers, le nombre de copies, et autres. Cette section + décrit ces options.</para> + + <sect3 + id="printing-lpr-options-format"> + <title>Options de mise en page et de conversion</title> + + <para>Les options de <citerefentry> + <refentrytitle>lpr</refentrytitle></citerefentry> + ci-dessous contrôlent la mise en page des fichiers d'un travail + d'impression. Utilisez-les si vos fichiers ne contiennent pas + uniquement du texte ou si vous voulez formater du texte avec + l'utilitaire <citerefentry> + <refentrytitle>pr</refentrytitle></citerefentry>.</para> + + <para>Par exemple, la commande suivante imprime un fichier DVI + (produit par le traitement de texte TeX) appelé + <filename>rapport-poissons.dvi</filename> sur l'imprimante appelée + <literal>bamboo</literal>:</para> + <informalexample> + <screen>&prompt.user; <userinput>lpr -P bamboo -d rapports-poissons.dvi</userinput></screen> + </informalexample> + + <para>Ces options sont valables pour tous les fichiers du travail + d'impression, vous ne pouvez donc pas mélanger des fichiers + DVI et ditroff (par exemple). Vous devez les soumettre dans des + travaux séparés avec des options de conversion différentes pour + chaque travail.</para> + + <note> + <para>Toutes ces options, sauf <option>-p</option> et + <option>-T</option> impliquent que les filtres de conversion + soient installés pour les imprimantes utilisées. Pour l'option + <option>-d</option>, par exemple, il faut le filtre de + conversion DVI. La section <link + linkend="printing-advanced-convfilters">Filtres de conversion</link> + vous explique cela en détail.</para> + </note> + + + <variablelist> + <varlistentry><term><option>-c</option></term> + <listitem> + <para>Imprime des fichiers cifplot.</para> + </listitem> + </varlistentry> + + <varlistentry><term><option>-d</option></term> + + <listitem> + <para>Imprime des fichiers DVI.</para> + </listitem> + </varlistentry> + + <varlistentry><term><option>-f</option></term> + + <listitem> + <para>Imprime des programmes FORTRAN.</para> + </listitem> + </varlistentry> + + <varlistentry><term><option>-g</option></term> + + <listitem> + <para>Imprime des graphiques pour un traceur (“plot”).</para> + </listitem> + </varlistentry> + + <varlistentry><term><option>-i<replaceable>nombre</replaceable></option></term> + + <listitem> + <para>Indente la sortie de <replaceable>nombre</replaceable> de colonnes; si vous ne précisez pas + <replaceable>nombre</replaceable>, indente de 8 + colonnes. Cette option ne s'applique qu'à certains filtres + de conversion.</para> + + <note> + <para>Ne mettez pas de blanc entre + <option>-i</option> et le nombre.</para> + </note> + </listitem> + </varlistentry> + + <varlistentry><term><option>-l</option></term> + + <listitem> + <para>Imprime le texte tel quel, y compris les caractères + de contrôle.</para> + </listitem> + </varlistentry> + + <varlistentry><term><option>-n</option></term> + + <listitem> + <para>Imprime des données ditroff (troff indépendant du + périphérique - “device independent troff”).</para> + </listitem> + </varlistentry> + + <varlistentry><term>-p</term> + + <listitem> + <para>Formate du texte avec <citerefentry> + <refentrytitle>pr</refentrytitle></citerefentry> + avant de l'imprimer. Voyez <citerefentry><refentrytitle>pr</refentrytitle><manvolnum>1</manvolnum></citerefentry> pour plus informations.</para> + </listitem> + </varlistentry> + + <varlistentry><term><option>-T + <replaceable>titre</replaceable></option></term> + + <listitem> + <para>Utilise <replaceable>titre</replaceable> comme en-tête + <citerefentry> + <refentrytitle>pr</refentrytitle></citerefentry> + au lieu du nom de fichier. Cette option ne s'applique qu'avec + l'option <option>-p</option>.</para> + </listitem> + </varlistentry> + + <varlistentry><term><option>-t</option></term> + + <listitem> + <para>Imprime des données troff.</para> + </listitem> + </varlistentry> + + <varlistentry><term><option>-v</option></term> + + <listitem> + <para>Imprime des images point par point.</para> + </listitem> + </varlistentry> + </variablelist> + + + <para>Voici un exemple: cette commande imprime une version proprement + formatée des pages de manuel de <citerefentry> + <refentrytitle>ls</refentrytitle></citerefentry> + sur l'imprimante par défaut:</para> + + <informalexample> + <screen>&prompt.user; <userinput>zcat /usr/share/man/man1/ls.1.gz | troff -t -man | lpr -t</userinput></screen> + </informalexample> + + <para>La commande <citerefentry> + <refentrytitle>zcat</refentrytitle></citerefentry> + décompresse le source des pages de manuel de <citerefentry> + <refentrytitle>ls</refentrytitle></citerefentry> et les passe + à la commande <citerefentry> + <refentrytitle>troff</refentrytitle></citerefentry>, + qui les convertit au format GNU troff et le passe à + <citerefentry> + <refentrytitle>lpr</refentrytitle></citerefentry>, + qui soumet le travail au gestionnaire d'impression. Comme nous avons + utilisé l'option <option>-t</option> de la commande + <citerefentry> + <refentrytitle>lpr</refentrytitle></citerefentry>, le gestionnaire + d'impression convertira le format GNU troff en un format compréhensible + par l'imprimante.</para> + + </sect3> + + <sect3 + id="printing-lpr-options-job-handling"> + <title>Options de traitement</title> + + <para>Les options <citerefentry> + <refentrytitle>lpr</refentrytitle></citerefentry> qui suivent + indiquent à LPD les traitements particuliers à appliquer à un + travail d'impression:</para> + + <para> + <variablelist> + <varlistentry><term>-# <replaceable>nombre</replaceable></term> + <listitem> + <para>Produit le <replaceable>nombre</replaceable> de copies + de chaque fichier du travail d'impression, au lieu d'une + seule. L'administrateur peut désactiver cette option pour + réduire l'usure de l'imprimante et encourager l'utilisation + de la photocopieuse. Reportez-vous à la section <link + linkend="printing-advanced-restricting-copies">Restreindre + l'impression de plusieurs exemplaires</link>.</para> + + <para>Cet exemple imprime trois exemplaires du fichier + <filename>analyseur.c</filename> suivis de trois exemplaires + de <filename>analyseur.h</filename> sur l'imprimante par + défaut:</para> + + <informalexample> + <screen>&prompt.user; <userinput>lpr -#3 analyseur.c analyseur.h</userinput></screen> + </informalexample> + </listitem> + </varlistentry> + + <varlistentry><term>-m</term> + + <listitem> + <para>Envoie un courrier électronique à la fin du travail + d'impression. Avec cette option, LPD vous envoie un + courrier électronique quand il a fini de traiter votre + travail d'impression. Son message vous dit si le travail + s'est normalement déroulé ou s'il y a eu une erreur, et + (la plupart du temps) quelle était l'erreur.</para> + </listitem> + </varlistentry> + + <varlistentry><term>-s</term> + + <listitem> + <para>Ne recopie pas les fichiers dans le répertoire tampon, mais + utilise des liens symboliques.</para> + + <para>Vous utiliserez certainement cette option si vous avez + des travaux d'impression volumineux. Cela fait gagner de la place + dans le répertoire tampon (votre travail pourrait saturer le + système de fichiers où se trouve le répertoire tampon). Cela fait + aussi gagner du temps, car LPD n'a pas besoin de recopier votre + travail d'impression dans le répertoire tampon.</para> + + <para>Il y a cependant une restriction: comme LPD utilisera les + fichiers d'origine, vous ne pourrez pas les modifier ou les + supprimer avant qu'ils aient été imprimés.</para> + + <note> + <para>Si vous imprimez sur une imprimante à distance, LPD + copiera les fichiers de la machine locale + vers la machine distante, donc l'option <option>-s</option> + ne fera gagner de place que sur la machine locale, + mais pas sur la machine distante. Cela reste néanmoins + utile.</para> + </note> + </listitem> + </varlistentry> + + <varlistentry><term>-r</term> + + <listitem> + <para>Détruit les fichiers après les avoir copiés dans le + répertoire tampon, ou après les avoir imprimés avec l'option + <option>-s</option>. Soyez prudents avec cette + option!</para> + </listitem> + </varlistentry> + </variablelist> + </para> + + </sect3> + + <sect3 + id="printing-lpr-options-misc"> + <title>Options pour la page d'en-tête</title> + + <para>Ces options de <citerefentry> + <refentrytitle>lpr</refentrytitle></citerefentry> + influent sur le texte qui est normalement imprimé sur la page + d'en-tête du travail d'impression. Si les pages d'en-tête sont + désactivées pour l'imprimante destinataire, ces options n'ont + pas d'effet. Voyez la section <link + linkend="printing-advanced-header-pages">Pages d'en-tête</link> + pour savoir comment gérer les pages d'en-tête.</para> + + + <variablelist> + <varlistentry><term>-C <replaceable>texte</replaceable></term> + <listitem> + <para>Remplace le nom de machine sur la page d'en-tête par + <replaceable>texte</replaceable>. Le nom de machine est + normalement celui de la machine d'où le travail a été + soumis.</para> + </listitem> + </varlistentry> + + <varlistentry><term>-J <replaceable>texte</replaceable></term> + + <listitem> + <para>Remplace le nom du travail sur la page d'en-tête par + <replaceable>texte</replaceable>. Le nom du travail est + normalement le nom du premier fichier à imprimer, ou + <filename>stdin</filename> si vous imprimez depuis l'entrée + standard.</para> + </listitem> + </varlistentry> + + <varlistentry><term>-h</term> + + <listitem> + <para>N'imprime pas de page d'en-tête.</para> + + <note> + <para>Sur certains sites, cette option n'a pas d'effet, selon + la façon dont les pages d'en-tête sont générées. Voyez la section + <link + linkend="printing-advanced-header-pages">Pages d'en-tête</link> + pour plus de détails.</para> + </note> + </listitem> + </varlistentry> + </variablelist> + + + </sect3> +</sect2> + +<sect2 + id="printing-lpc"> + <title>Administrer les imprimantes</title> + + <para>En tant qu'administrateur de vos imprimantes, vous avez dû les + installer, les configurer et les tester. Avec la commande <citerefentry> + <refentrytitle>lpc</refentrytitle></citerefentry>, + vous pouvez encore agir d'autres façons sur vos imprimantes. Avec + <citerefentry> + <refentrytitle>lpc</refentrytitle></citerefentry>, vous + pouvez:</para> + + <para> + <itemizedlist> + + <listitem> + <para>Démarrer et arrêter les imprimantes.</para> + </listitem> + + <listitem> + <para>Activer et désactiver leurs files d'attente.</para> + </listitem> + + <listitem> + <para>Réordonner les travaux de chaque file d'attente.</para> + </listitem> + + </itemizedlist> + </para> + + <para>Une remarque tout d'abord sur la terminologie: si une imprimante est + <emphasis>arrêtée</emphasis>, elle n'imprimera plus rien de ce qui se trouve + dans sa file d'attente. Les utilisateurs peuvent toujours soumettre leurs + travaux, qui attendront dans la file d'attente que l'imprimante soit + <emphasis>redémarrée</emphasis> ou la file d'attente vidée.</para> + + <para>Si une file d'attente est <emphasis>désactivée</emphasis>, aucun + utilisateur (sauf le super-utilisateur) ne peut soumettre de travail à cette imprimante. Une + file d'attente <emphasis>active</emphasis> autorise la soumission de + travaux d'impression. Une imprimante peut être <emphasis>démarrée</emphasis> + pour une file d'attente inactive, auquel cas, elle continue à imprimer les + travaux jusqu'à ce que la file d'attente soit vidée.</para> + + <para>En général, vous devrez avoir les droits du super-utilisateur pour utiliser la + commande <citerefentry> + <refentrytitle>lpc</refentrytitle></citerefentry>. Les utilisateurs + ordinaires ne peuvent utiliser <citerefentry> + <refentrytitle>lpc</refentrytitle></citerefentry> que pour interroger + l'état d'une imprimante et redémarrer une imprimante qui s'est + interrompue.</para> + + <para>Voici un résumé des commandes <citerefentry> + <refentrytitle>lpc</refentrytitle></citerefentry>. + La plupart de ces commandes prennent un argument + <replaceable>imprimante</replaceable> qui dit à quelle imprimante + elles s'appliquent. Vous pouvez utiliser l'argument <literal>all</literal> + comme <replaceable>imprimante</replaceable> pour qu'elles s'appliquent + à toutes les imprimantes listées dans le fichier + <filename>/etc/printcap</filename>.</para> + + + <variablelist> + <varlistentry><term><command>abort + <replaceable>imprimante</replaceable></command></term> + <listitem> + <para>Annule le travail en cours et arrête l'imprimante. + Les utilisateurs peuvent toujours soumettre leurs travaux si la + file d'attente est active.</para> + </listitem> + </varlistentry> + + <varlistentry><term><command>clean + <replaceable>imprimante</replaceable></command></term> + + <listitem> + <para>Nettoie le repertoire tampon. Il arrive que les fichiers + associés à un travail d'impression ne soient pas correctement + supprimés par LPD, en particulier s'il s'est produit des + erreurs lors de l'impression ou s'il y a eu beaucoup d'activité + d'administration. Cette commande recherche les fichiers qui + n'ont plus lieu d'être dans le répertoire tampon et les + supprime.</para> + </listitem> + </varlistentry> + + <varlistentry><term><command>disable + <replaceable>imprimante</replaceable></command></term> + + <listitem> + <para>Interdit la mise en file d'attente de nouveaux travaux. Si + l'imprimante est active, elle continuera à imprimer les travaux + qui y sont déjà. Le super-utilisateur (root) peut toujours + soumettre des travaux d'impression, même à une file d'attente + désactivée.</para> + + <para>Cette commande est utile si vous testez une nouvelle + imprimante ou un nouveau filtre: désactivez la file + d'attente et soumettez vos travaux en étant super-utilisateur. Les + autres utilisateurs ne pourront pas soumettre de travaux + tant que vous n'aurez pas fini vos tests et réactivé la + file d'attente avec la commande <command>enable</command>.</para> + </listitem> + </varlistentry> + + <varlistentry><term><command remap="tt">down + <replaceable>imprimante</replaceable> + <replaceable>message</replaceable></command></term> + + <listitem> + <para>Arrête complètement une imprimante. C'est l'équivalent de + <command>disable</command> suivie de + <command>stop</command>. Le <replaceable>message</replaceable> + est affiché quand un utilisateur interroge l'état de la file + d'attente avec la commande <citerefentry> + <refentrytitle>lpq</refentrytitle></citerefentry> + ou <command>lpc status</command>.</para> + </listitem> + </varlistentry> + + <varlistentry><term><command>enable + <replaceable>imprimante</replaceable></command></term> + + <listitem> + <para>Active la file d'attente d'une imprimante. Les utilisateurs + peuvent soumettre leurs travaux, mais ils ne seront imprimés que + quand l'imprimante aura été démarrée.</para> + </listitem> + </varlistentry> + + <varlistentry><term><command remap="tt">help + <replaceable>commande</replaceable></command></term> + + <listitem> + <para>Affiche de l'aide sur la + <replaceable>commande</replaceable>. Sans + <replaceable>commande</replaceable>, affiche un résumé des + commandes disponibles.</para> + </listitem> + </varlistentry> + + <varlistentry><term><command>restart + <replaceable>imprimante</replaceable></command></term> + + <listitem> + <para>Démarre l'imprimante. Les utilisateurs normaux peuvent utiliser + cette commande si des circonstances extraordinaires interrompent + le bon fonctionnement de LPD, mais ils ne peuvent pas l'employer + pour redémarrer une imprimante arrêtée avec la commande + <command>stop</command> ou <command>down</command>. + La commande <command>restart</command> + est l'équivalent de <command>abort</command> suivie de + <command>start</command>.</para> + </listitem> + </varlistentry> + + <varlistentry><term><command>start + <replaceable>imprimante</replaceable></command></term> + + <listitem> + <para>Démarre l'imprimante. Elle imprimera les travaux de sa file + d'attente.</para> + </listitem> + </varlistentry> + + <varlistentry><term><command>stop + <replaceable>imprimante</replaceable></command></term> + + <listitem> + <para>Arrête l'imprimante. Elle terminera l'impression du travail en + cours puis cessera d'imprimer ce qui se trouve dans sa file + d'attente. Même si l'imprimante est arrêtée, les utilisateurs + peuvent toujours soumettre des travaux à une file d'attente + active.</para> + </listitem> + </varlistentry> + + <varlistentry><term><command>topq + <replaceable>imprimante</replaceable> + <replaceable>travaux_ou_utilisateur</replaceable></command></term> + + <listitem> + <para>Réordonne la file d'attente de + l'<replaceable>imprimante</replaceable> en plaçant les + <replaceable>travaux</replaceable> dont les numéros sont donnés + ou ceux qui appartiennent à l'<replaceable>utilisateur</replaceable> + en tête de la file. Vous ne pouvez pas utiliser + <literal>all</literal> comme <replaceable>imprimante</replaceable> + avec cette commande.</para> + </listitem> + </varlistentry> + + <varlistentry><term><command>up + <replaceable>imprimante</replaceable></command></term> + + <listitem> + <para> Met en service une <replaceable>imprimante</replaceable>. C'est + l'inverse de la commande <command>down</command> et équivaut à + <command>start</command> suivie de <command>enable</command>.</para> + </listitem> + </varlistentry> + </variablelist> + + + <para><citerefentry> + <refentrytitle>lpc</refentrytitle></citerefentry> accepte toutes les + commandes précédentes depuis la ligne de commande. Si vous ne donnez + aucune commande, <citerefentry> + <refentrytitle>lpc</refentrytitle></citerefentry> passe en mode interactif + et vous pouvez entrer vos commandes jusqu'à ce que vous tapiez + <command>exit</command>, <command>quit</command>, ou fin_de_fichier.</para> + +</sect2> +</sect1> + +<sect1 +id="printing-advanced"> +<title>Configuration avancée d'une imprimante</title> + +<para>Cette section décrit les filtres pour des formatages particuliers, + les pages d'en-tête, l'impression en réseau, les restrictions et la + comptabilisation de l'utilisation des imprimantes.</para> + + +<sect2 + id="printing-advanced-filter-intro"> + <title>Filtres</title> + + <para>Bien que LPD prenne en charge le protocole réseau, la gestion de la + file d'attente, le contrôle d'accès et d'autres aspects des tâches + d'impression, la plupart du travail <emphasis>effectif</emphasis> est + confié aux <emphasis>filtres</emphasis>. Les filtres sont des programmes + qui communiquent avec l'imprimante et se chargent de leurs caractéristiques + et exigences particulières. Lors de la configuration simple, nous avons + installé un filtre texte - un filtre très élémentaire qui devrait + marcher avec la plupart des imprimantes. + (cf. section <link linkend="printing-textfilter">Installer le filtre + texte</link>).</para> + + <para>Cependant, pour profiter de la conversion de format, de la + comptabilisation des impressions, des particularités de certaines + imprimantes, et ainsi de suite, il est utile de comprendre comment + fonctionnent les filtres. En dernier ressort, ce sont les filtres + qui gèreront ces fonctionnalités. La mauvaise nouvelle est que la + plupart du temps, <emphasis>vous</emphasis> devrez vous-même fournir + ces filtres. La bonne nouvelle est que beaucoup sont déjà disponibles; + quand ce n'est pas le cas, ils sont en général faciles à écrire.</para> + + <para>FreeBSD est aussi livré avec un filtre, + <filename>/usr/libexec/lpr/lpf</filename>, qui fonctionne avec nombre + d'imprimantes capables d'imprimer du texte. (Il gère les retours arrière, + les tabulations et la comptabilité, mais c'est à peu près tout ce qu'il + fait.) Il y a aussi plusieurs filtres ou composants de filtres au catalogue + des logiciels portés.</para> + + <para>Voici ce que vous trouverez dans cette section:</para> + + <itemizedlist> + + <listitem> + <para>La section <link linkend="printing-advanced-filters">Comment + fonctionnent les filtres</link> essaie de vous donner une vue d'ensemble + du rôle du filtre dans le processus d'impression. Vous devriez + lire cette section pour comprendre ce qui se passe + “dans la coulisse” quand LPD utilise les filtres. Cela + peut vous aider à anticiper et remédier aux problèmes que vous + rencontrerez au fur et à mesure que vous installerez de plus en + plus de filtres sur chacune de vos imprimantes.</para> + </listitem> + + <listitem> + <para>LPD s'attend à ce que, par défaut, chaque imprimante soit + capable d'imprimer du texte. C'est un problème avec les + imprimantes PostScript (ou d'autres imprimantes qui utilisent + un langage d'impression), qui ne savent pas imprimer + directement du texte. La section <link + linkend="printing-advanced-if-conversion">Imprimer + du texte sur des imprimantes PostScript</link> + vous explique comment résoudre ce problème. + Je vous recommande de la lire si vous avez une imprimante + PostScript.</para> + </listitem> + + <listitem> + <para>PostScript est un format de sortie populaire pour + beaucoup de programmes. Certaines personnes (moi y-compris) + écrivent directement du code PostScript. Mais les imprimantes + PostScript sont chères. La section + <link linkend="printing-advanced-ps">Emuler + PostScript sur des imprimantes Non-PostScript</link> + vous explique comment vous pouvez ajuster le filtre texte + d'une imprimante pour accepter et imprimer des données + PostScript sur une imprimante qui n'est + <emphasis>pas PostScript</emphasis>. Je vous recommande + de le lire si vous n'avez pas d'imprimante PostScript.</para> + </listitem> + + <listitem> + <para>La section <link linkend="printing-advanced-convfilters">Filtres + de conversion</link> vous donne une méthode pour + automatiser la conversion de formats de fichiers particuliers, + comme des données graphiques ou issues d'un traitement de + texte, vers un format compréhensible pour votre imprimante. + Après avoir lu cette section, vous devriez être capable de + configurer vos imprimantes pour que les utilisateurs puissent + taper <command>lpr -t</command> pour imprimer des données + troff, <command>lpr -d</command> pour imprimer des données + DVI produit par TeX, ou <command>lpr -v</command> + pour imprimer des images point à point, et ainsi de suite. Je + conseille la lecture de cette section.</para> + </listitem> + + <listitem> + <para>La section <link linkend="printing-advanced-of">Filtres + de sortie</link> introduit une possibilité + rarement utilisée de LPD: les filtres de sortie. A moins + que vous n'imprimiez des pages d'en-tête (voyez la section <link + linkend="printing-advanced-header-pages">Pages d'en-tête</link>), + vous pouvez probablement sauter + cette section.</para> + </listitem> + + <listitem> + <para>La section <link linkend="printing-advanced-lpf"><command>lpf</command>: + un filtre texte</link> décrit <command>lpf</command>, + un filtre texte assez complet, quoique simple, pour les + imprimantes ligne (et les imprimantes laser qui fonctionnent + comme des imprimantes ligne) et qui est livré avec FreeBSD. + S'il vous faut un moyen simple pour comptabiliser le + fonctionnement d'une imprimante en mode texte, ou si vous + avez une imprimante qui fume lorsqu'elle aperçoit un retour + arrière, vous devriez absolument envisager d'utiliser + <command>lpf</command>.</para> + </listitem> + + </itemizedlist> + + <sect3 + id="printing-advanced-filters"> + <title>Comment fonctionnent les filtres</title> + + <para>Comme expliqué plus haut, un filtre est un programme + exécuté par LPD pour gérer ce qui dépend de l'imprimante + dans la communication avec celle-ci.</para> + + <para>Quand LPD veut imprimer un fichier appartenant à un travail + d'impression, il démarre un programme de filtre. Il affecte à + l'entrée standard du filtre le fichier à imprimer, à sa sortie + standard l'imprimante et à son fichier d'erreur standard le + fichier de trace (défini par la fonctionnalité + <literal>lf</literal> de <filename>/etc/printcap</filename>, ou + <filename>/dev/console</filename> par défaut).</para> + + <para>Quel filtre LPD utilise et avec quels arguments dépend du + contenu du fichier <filename>/etc/printcap</filename> et des + arguments qu'a donnés l'utilisateur sur la ligne de commande de + <citerefentry> + <refentrytitle>lpr</refentrytitle></citerefentry> pour ce + travail d'impression. Par exemple, s'il a utilisé + <command>lpr -t</command>, LPD démarrera le filtre troff, indiqué + par la fonctionnalité <literal>tf</literal> pour l'imprimante + destinataire. Si l'utilisateur veut imprimer du texte, il lancera + le filtre <literal>if</literal> (c'est vrai la plupart du temps, + voyez la section <link linkend="printing-advanced-of">Filtres de sortie</link> + pour plus de détails).</para> + + <para>Il y a trois sortes de filtres que vous pouvez définir dans + <filename>/etc/printcap</filename>:</para> + + <itemizedlist> + + <listitem> + <para>Le <emphasis>filtre texte</emphasis>, inexactement + appelé <emphasis>filtre d'entrée</emphasis> dans la + documentation de LPD, se charge de l'impression du texte + ordinaire. Considérez-le comme le filtre par défaut. LPD + suppose que toutes les imprimantes savent par défaut + imprimer du texte, et c'est le rôle du filtre texte + de faire en sorte que les retours arrière, tabulations + et autres caractères spéciaux ne posent pas de problèmes + à l'imprimante. Si vous êtes dans un environnement où vous + devez comptabiliser l'utilisation des imprimantes, le + filtre texte doit aussi s'en charger, habituellement en + comptant le nombre de lignes et en le comparant au nombre + de lignes par page accepté par l'imprimante. Le filtre texte + est exécuté avec les arguments suivants: + + <cmdsynopsis> + <command>nom_du_filtre</command> + <arg>-c</arg> + <arg choice="plain">-w<replaceable>largeur</replaceable></arg> + <arg choice="plain">-l<replaceable>hauteur</replaceable></arg> + <arg choice="plain">-i<replaceable>indentation</replaceable></arg> + <arg choice="plain">-n <replaceable>utilisateur</replaceable></arg> + <arg choice="plain">-h <replaceable>hôte</replaceable></arg> + <arg choice="plain"><replaceable>fichier_comptable</replaceable></arg> + </cmdsynopsis> où: + + <variablelist> + <varlistentry><term><option>-c</option></term> + <listitem> + <para>est utilisé si le travail a été soumis par + <command>lpr -l</command>,</para> + </listitem> + </varlistentry> + + <varlistentry><term><replaceable>largeur</replaceable></term> + + <listitem> + <para>est la valeur donnée avec la fonctionnalité + <literal>pw</literal> (largeur de page - “page width”) + dans <filename>/etc/printcap</filename>, + 132 par défaut,</para> + </listitem> + </varlistentry> + + <varlistentry><term><replaceable>length</replaceable></term> + + <listitem> + <para>est la valeur indiquée par la fonctionnalité + <literal>pl</literal> (hauteur de page - “page length”), 66 par + défaut,</para> + </listitem> + </varlistentry> + + <varlistentry><term><replaceable>indentation</replaceable></term> + + <listitem> + <para>indentation précisée par + <command>lpr -i</command>, 0 par défaut,</para> + </listitem> + </varlistentry> + + <varlistentry><term><replaceable>utilisateur</replaceable></term> + + <listitem> + <para>est le nom (de session) de l'utilisateur imprimant le fichier,</para> + </listitem> + </varlistentry> + + <varlistentry><term><replaceable>hôte</replaceable></term> + + <listitem> + <para>est le nom de la machine d'où le travail a été + soumis,</para> + </listitem> + </varlistentry> + + <varlistentry><term><replaceable>fichier_comptable</replaceable></term> + + <listitem> + <para>est le nom du fichier de comptabilité spécifé + par la fonctionnalité <literal>af</literal>.</para> + </listitem> + </varlistentry> + </variablelist> + + </para> + </listitem> + + <listitem> + <para>Un <emphasis>filtre de conversion</emphasis> convertit + un format de fichier particulier en un format que + l'imprimante comprend. Par exemple, des données provenant + du traitement de texte ditroff ne peuvent pas être + imprimées directement, mais vous pouvez installer un + filtre de conversion pour les fichiers ditroff pour + transformer les fichiers ditroff de façon à ce que + l'imprimante les digère et les imprime. La section + <link linkend="printing-advanced-convfilters">Filtres de conversion</link> + vous dit tout ce que vous + devez savoir sur ces filtres. Les filtres de conversion + doivent aussi gérer la comptabilité, si vous en avez besoin. + Les filtres de conversion sont exécutés avec les arguments + suivants: + + <cmdsynopsis> + <command>nom_du_filtre</command> + <arg + choice="plain">-x<replaceable>largeur_du_pixel</replaceable></arg> + <arg choice="plain">-y<replaceable>hauteur_du_pixel</replaceable></arg> + <arg choice="plain">-n <replaceable>utilisateur</replaceable></arg> + <arg choice="plain">-h <replaceable>hôte</replaceable></arg> + <arg choice="plain"><replaceable>fichier_comptable</replaceable></arg> + </cmdsynopsis> où <replaceable>largeur_du_pixel</replaceable> est la valeur + définie par la fonctionnalité + <literal>px</literal> (0 par défaut) + et <replaceable>hauteur_du_pixel</replaceable> celle définie + par <literal>py</literal> + (0 par défaut).</para> + </listitem> + + <listitem> + <para>Le <emphasis>filtre de sortie</emphasis> n'est utilisé + que s'il n'y a pas de filtre texte, ou que les pages + d'en-tête sont activées. D'après mon expérience personnelle, + les filtres de sortie sont rarement utilisés. La section + <link linkend="printing-advanced-of">Filtres de sortie</link> + les décrit. Un filtre de sortie n'a que deux + arguments: + + <cmdsynopsis> + <command>nom_du_filtre</command> + <arg choice="plain">-w<replaceable>largeur</replaceable></arg> + <arg choice="plain">-l<replaceable>hauteur</replaceable></arg> + </cmdsynopsis> qui sont identiques aux arguments + <option>-w</option> et <option>-l</option> + du filtre texte.</para> + </listitem> + + </itemizedlist> + + <para>Les filtres doivent aussi retourner + (“exit”) avec l'un des codes retour + suivants:</para> + + <variablelist> + <varlistentry><term>exit 0</term> + <listitem> + <para>Le filtre a correctement imprimé le fichier.</para> + </listitem> + </varlistentry> + + <varlistentry><term>exit 1</term> + + <listitem> + <para>Le filtre n'a pas pu imprimer le fichier mais veut + que LPD tente une nouvelle impression. LPD relancera + le filtre s'il retourne ce code.</para> + </listitem> + </varlistentry> + + <varlistentry><term>exit 2</term> + + <listitem> + <para>Le filtre n'a pas pu imprimer le fichier et ne veut + pas que LPD relance l'impression. LPD supprimera le + fichier de la file d'attente.</para> + + </listitem> + </varlistentry> + </variablelist> + + <para>Le filtre texte livré avec la distribution de FreeBSD, + <filename>/usr/libexec/lpr/lpf</filename>, utilise les arguments + définissant la largeur et la hauteur de page pour déterminer + quand envoyer un saut de page et pour gérer la comptabilité. Il + se sert du nom d'utilisateur, du nom de machine et de celui du + fichier comptable pour tenir à jour les enregistrements + comptables.</para> + + <para>Si vous cherchez des filtres, vérifiez qu'ils sont + compatibles avec LPD. S'ils le sont, ils doivent accepter les + arguments décrits ci-dessus. Si vous envisagez d'écrire des + filtres, vous devez faire en sorte qu'ils acceptent ces arguments + et gèrent les bons codes retour.</para> + + </sect3> + + <sect3 + id="printing-advanced-if-conversion"> + <title>Imprimer du texte sur des imprimantes PostScript + </title> + + <para>Si vous êtes le seul utilisateur de votre ordinateur et d'une + imprimante PostScript (ou d'une autre imprimante fonctionnant + avec un langage d'impression) et êtes certain de ne jamais envoyer + de simples fichiers texte à l'imprimante ou de ne jamais utiliser + les options de différents programmes qui feraient de même, alors + vous n'avez pas besoin de vous préoccuper du contenu de cette + section.</para> + + <para>Mais, si vous voulez envoyer et du PostScript et de simples + fichiers texte à l'imprimante, alors je vous conjure d'adapter + la configuration de votre imprimante. Pour cela, nous ferons en + sorte que le filtre texte distingue entre les travaux d'impression + qui envoient du texte et ceux qui envoient du PostScript. Tous les + travaux PostScript commencent par <literal>%!</literal> (pour les + autres langages, consultez la documentation de votre imprimante). + Si nous avons ces deux caractères au début du travail d'impression, + alors c'est du PostScript, et nous pouvons l'envoyer tel quel. + Sinon, le filtre convertira le texte en PostScript et imprimera + le résultat.</para> + + <para>Comment réaliser cela?</para> + + <para>Avec une imprimante série, il suffit d'installer + <command>lprps</command>. <command>lprps</command> est un filtre + d'impression PostScript qui dialogue avec l'imprimante. Il met à + jour le fichier d'état de l'imprimante en fonction des + informations que celle-ci lui fournit, les utilisateurs et les + administrateurs peuvent donc savoir exactement quel est l'état + de l'imprimante (comme <errorname>manque d'encre</errorname> ou + <errorname>bourrage</errorname>). Mais, c'est plus intéressant, + il comporte un programme appelé <command>psif</command> qui + détecte si le prochain travail est du texte et invoque + <command>textps</command> (un autre programme qui fait partie de + <command>lprps</command>) pour le convertir en PostScript. Il + utilise ensuite <command>lprps</command> pour l'envoyer à + l'imprimante.</para> + + <para><command>lprps</command> fait partie du catalogue des + logiciels portés de FreeBSD (voyez le chapitre + <link linkend="ports">Installer des Logiciels au “Catalogue des + Logiciels Portés”</link>). Vous + pouvez le télécharger, le compiler et + l'installer vous-même, bien sûr. Après avoir installé + <command>lprps</command>, donnez juste le chemin d'accès au + programme <command>psif</command> qui fait partie de + <command>lprps</command>. Si vous avez installé + <command>lprps</command> depuis le catalogue des logiciels portés, + utilisez ce qui suit dans la définition de l'imprimante série + PostScript dans <filename>/etc/printcap</filename>:</para> + + <programlisting> +:if=/usr/local/libexec/psif: + </programlisting> + + <para>Vous devez aussi activer la fonctionnalité + <literal>rw</literal> qui dit à LPD d'ouvrir l'imprimante + en lecture/écriture.</para> + + <para>Si vous avez une imprimante PostScript parallèle (et donc + ne pouvez pas communiquer dans les deux sens avec l'imprimante, + ce qui est indispensable à <command>lprps</command>), vous pouvez + utilisez la procédure qui suit comme filtre texte:</para> + + <programlisting> +#!/bin/sh +# +# psif - Imprime du PostScript ou du texte +# version Procédure; Ce N'EST PAS la version qui accompagne lprs +# fichier /usr/local/libexec/psif +# + +read first_line +first_two_chars=`expr "$first_line" : '\(..\)'` + +if [ "$first_two_chars" = "%!" ]; then + # + # Travail PostScript; l'imprimer. + # + echo $first_line && cat && printf "\004" && exit 0 + exit 2 +else + # + # Texte simple, le convertir, puis l'imprimer. + # + ( echo $first_line; cat ) | /usr/local/bin/textps && printf "\004" && exit 0 + exit 2 +fi + </programlisting> + + <para>Dans la procédure ci-dessus, <command>textps</command> est un + programme que nous avons installé séparément pour convertir + du texte en PostScript. Vous pouvez utiliser le programme de + conversion de votre choix. Le catalogue des logiciels portés de FreeBSD + (voyez le chapitre <link linkend="ports">Installer des Logiciels + au “Catalogue des Logiciels Portés”</link>) + comporte un programme complet de conversion de + texte en PostScript appelé <citerefentry> + <refentrytitle>a2ps</refentrytitle></citerefentry> auquel vous + pourriez jeter un coup d'oeil.</para> + + </sect3> + + <sect3 + id="printing-advanced-ps"> + <title>Emuler PostScript sur des imprimantes Non-PostScript + </title> + + <para>PostScript est le standard <emphasis>de facto</emphasis> + du traitement de texte et de l'impression de qualité. PostScript + est, toutefois, un standard <emphasis>coûteux</emphasis>. + Heureusement, Alladin Enterprises fournit un émulateur PostScript + libre, appelé <application>Ghostscript</application>, qui + fonctionne sous FreeBSD. Ghostscript peut lire + la plupart des fichiers PostScript + et les convertir pour divers modèles d'imprimantes dont de + nombreuses imprimantes non-PostScript. En installant Ghostscript + et avec un filtre texte adapté à votre imprimante, vous pouvez + utiliser votre imprimante comme une vraie imprimante + PostScript.</para> + + <para>Ghostscript devrait être dans le catalogue des logiciels portés + de FreeBSD, d'où vous pouvez l'installer. Vous pouvez aussi + facilement le télécharger, le compiler et l'installer.</para> + + <para>Pour émuler PostScript, nous ferons en sorte que le filtre + texte reconnaisse les fichiers PostScript. Quand ce n'est pas le + cas, le filtre enverra directement le fichier à l'imprimante. + Sinon, il utilisera Ghostscript pour convertir le fichier + en un format que l'imprimante comprenne.</para> + + <para>Voici un exemple: cette procédure est un filtre texte pour les + imprimantes Hewlett Packard DeskJet 500. Pour d'autres + imprimantes, modifiez l'argument de l'option + <option>-sDEVICE</option> de la commande + <citerefentry> + <refentrytitle>gs</refentrytitle></citerefentry> (Ghostscript). + (Tapez <command>gs -h</command> pour avoir la liste des + périphériques supportés par la version courante de + Ghostscript.)</para> + + <programlisting> +#!/bin/sh +# +# ifhp - Imprime du PostSCript émulé par Ghostscript sur une DeskJet 500 +# fichier /usr/local/libexec/hpif +# +# traiter LF comme CR+LF: +# +printf "\033&k2G" || exit 2 + +# +# Lit les deux premiers caractères du fichier +# +read first_line +first_two_chars=`expr "$first_line" : '\(..\)'` + +if [ "$first_two_chars" = "%!" ]; then + # + # Si c'est du PostScript; utiliser Ghostscript pour convertir, et imprimer. + # + /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 -sOutputFile=- - \ + && exit 0 +else + # + # Texte ou HP/PCL, donc, imprimer directement; envoyer ensuite un saut + # de page pour éjecter la dernière page. + # + echo $first_line && cat && printf "\f" && exit 0 +fi + +exit 2 + </programlisting> + + <para>Pour finir, il faut spécifier le filtre à LPD avec + la fonctionnalité <literal remap="tt">if</literal>: + <programlisting> +:if=/usr/local/libexec/hpif: + </programlisting> C'est tout. Vous pouvez maintenant taper + <command>lpr texte.simple</command> et <command>lpr + quoique-ce-soit.ps</command> et les deux devraient + s'imprimer.</para> + + </sect3> + + <sect3 + id="printing-advanced-convfilters"> + <title>Filtres de conversion</title> + + <para>Après avoir terminé l'étape de + <link linkend="printing-simple">Configuration simple d'une imprimante</link>, la + première chose que vous voudrez probablement faire sera + d'installer des filtres de conversion pour vos formats de + fichiers favoris (autres que le simple texte ASCII).</para> + + + <sect4> + <title>Pourquoi installer des filtres de conversion?</title> + + <para>Les filtres de conversion facilitent l'impression de + différents types de fichiers. Supposons, par exemple, que + nous utilisions beaucoup le logiciel de traitement de texte + TeX, et que nous ayons une imprimante PostScript. Chaque fois + que nous générons un fichier DVI avec TeX, nous ne pouvons + l'imprimer directement sans le convertir auparavant en + PostScript. La séquence de commande pour le faire est la + suivante:</para> + + <informalexample> + <screen>&prompt.user; <userinput>dvips anaylse-algues.dvi</userinput> +&prompt.user; <userinput>lpr analyse-algues.ps</userinput></screen> + </informalexample> + + <para>En installant un filtre de conversion pour les fichiers + DVI, nous pourrons nous dispenser de la conversion manuelle + à chaque fois, en laissant LPD le faire à notre place. Quand nous aurons + un fichier DVI, l'impression se fera en une seule étape:</para> + + <informalexample> + <screen>&prompt.user; <userinput>lpr -d analyse-algues.dvi</userinput></screen> + </informalexample> + + <para>L'option <option>-d</option> dit à LPD que c'est un + fichier DVI à convertir. La section + <link + linkend="printing-lpr-options-format">Options de mise en page et de conversion</link> + liste les options de conversion.</para> + + <para>Pour chaque option de conversion que vous voulez que + l'imprimante supporte, installez un + <emphasis>filtre de conversion</emphasis> et donnez son chemin + d'accès dans <filename>/etc/printcap</filename>. Un + filtre de conversion est similaire au filtre texte de notre + configuration simple + (voir section <link linkend="printing-textfilter">Installer + le filtre texte</link>) sinon qu'au lieu + d'imprimer du texte, il convertit le fichier en un format + compréhensible pour l'imprimante.</para> + + </sect4> + + <sect4> + <title>Quels filtres de conversion dois-je installer? + </title> + + <para>Installez les filtres de conversion que vous prévoyez + d'utiliser. Si vous avez beaucoup de données DVI, un filtre + de conversion DVI s'impose. Si vous voulez imprimer beaucoup + de troff, c'est une bonne idée d'installer un filtre + troff.</para> + + <para>La table ci-dessous résume les caractéristiques des filtres + que LPD utilise, elle donne le type de fichier, + la fonctionnalité correspondante dans le fichier + <filename>/etc/printcap</filename> et l'option + à utiliser avec la commande <command>lpr</command>.</para> + + <informaltable frame="none"> + <tgroup cols="3"> + <thead> + <row> + <entry>Type de fichier</entry> + <entry>Fonctionnalité <filename>/etc/printcap</filename> + </entry> + <entry>Option de <command>lpr</command></entry> + </row> + </thead> + <tbody> + <row> + <entry>cifplot</entry> + <entry><literal>cf</literal></entry> + <entry><option>-c</option></entry> + </row> + + <row> + <entry>DVI</entry> + <entry><literal>df</literal></entry> + <entry><option>-d</option></entry> + </row> + + <row> + <entry>format traceur (“plot”)</entry> + <entry><literal>gf</literal></entry> + <entry><option>-g</option></entry> + </row> + + <row> + <entry>ditroff</entry> + <entry><literal>nf</literal></entry> + <entry><option>-n</option></entry> + </row> + + <row> + <entry>programme FORTRAN</entry> + <entry><literal>rf</literal></entry> + <entry><option>-f</option></entry> + </row> + + <row> + <entry>troff</entry> + <entry><literal>rf</literal></entry> + <entry><option>-f</option></entry> + </row> + + <row> + <entry>image point à point (“raster”)</entry> + <entry><literal>vf</literal></entry> + <entry><option>-v</option></entry> + </row> + + <row> + <entry>texte</entry> + <entry><literal>if</literal></entry> + <entry>aucune, <option>-p</option>, ou <option>-l</option></entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <para>Dans notre exemple, la commande + <command>lpr -d</command> signifie que l'imprimante doit + invoquer la fonctionnalité <literal>df</literal> de sa + définition dans <filename>/etc/printcap</filename>.</para> + + <para>Malgré ce que d'aucuns en pensent, des formats tels que + FORTRAN ou “traceur” sont + probablement obsolètes. Sur votre + site, vous pouvez changer la signification de ces options, ou + de n'importe quelle option de conversion, en installant des + filtres personnalisés. Imaginons, par exemple, que vous + vouliez imprimer directement des fichiers Printerleaf (des + fichiers créés avec le logiciel de Publication Assistée par + Ordinateur Interleaf), mais n'imprimerez jamais de fichier + traceur. Vous pouvez installer un filtre de conversion + Printerleaf pour la fonctionnalité <literal>gf</literal> et + prévenir vos utilisateur que <command>lpr -g</command> + signifie “imprimer des fichiers + Printerleaf.”</para> + + </sect4> + + <sect4> + <title>Installer des filtres de conversion</title> + + <para>Les filtres de conversion sont des programmes qui ne + font pas partie de la distribution standard de FreeBSD, ils + ont logiquement leur place dans + <filename>/usr/local</filename>. Le répertoire + <filename>/usr/local/libexec</filename> est l'endroit habituel + où les mettre, parce que ce sont des programmes réservés à LPD + que les utilisateurs ordinaires ne devraient jamais + employer.</para> + + <para>Pour mettre en service un filtre de conversion, indiquez + son chemin d'accès à la fonctionnalité correspondante pour + l'imprimante destinatrice dans + <filename>/etc/printcap</filename>.</para> + + <para>Nous allons ajouter à notre exemple un filtre de conversion + DVI pour l'imprimante appelée <literal>bamboo</literal>. Voici + notre nouveau fichier <filename>/etc/printcap</filename> avec + la fonctionnalité <literal>df</literal> pour l'imprimante + <literal>bamboo</literal>:</para> + + <programlisting> +# +# /etc/printcap pour la machine rose - ajout du filtre df pour bamboo +# +rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\ + :sh:sd=/var/spool/lpd/rattan:\ + :lp=/dev/lpt0:\ + :if=/usr/local/libexec/if-simple: + +bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ + :sh:sd=/var/spool/lpd/bamboo:\ + :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:\ + :if=/usr/local/libexec/psif:\ + :df=/usr/local/libexec/psdf: + </programlisting> + + <para>Le filtre DVI est une procédure appelée + <filename>/usr/local/libexec/psdf</filename>. Voici cette + procédure:</para> + + <programlisting> +#!bin/sh +# +# psdf - filtre de conversion de DVI en PostScript +# fichier /usr/local/libexec/psdf +# +# appelé quand l'utilisateur invoque lpr -d +# +exec /usr/local/bin/dvips -f | /usr/local/libexec/lprps "$@" + </programlisting> + + <para>Cette procédure exécute <citerefentry> + <refentrytitle>dvips</refentrytitle></citerefentry> en mode + filtre (l'argument <option>-f</option>) sur l'entrée standard, + qui est le travail d'impression. Elle lance ensuite le filtre + d'impression PostScript <command>lprps</command> (reportez-vous + à la section <link linkend="printing-advanced-if-conversion">Imprimer + du texte sur des imprimantes PostScript</link>) + en lui passant les arguments donnés à LPD. + <command>lprps</command> utilisera ces arguments pour + comptabiliser les pages imprimées.</para> + + </sect4> + + <sect4> + <title>Autres exemples de filtres de conversion</title> + + <para>La méthode pour installer des filtres de conversion n'étant + pas toujours la même, il vaut mieux que je vous donne d'autres + exemples, dont vous pourrez vous inspirer pour mettre en oeuvre + vos propres filtres. Utilisez-les tels quels, au besoin.</para> + + <para>Voici une procédure pour convertir des fichiers graphiques point à point + (en fait, des fichiers GIF) pour une imprimante + Hewlett Packard LaserJet III-Si:</para> + + <programlisting> +#!/bin/sh +# +# hpvf - Convertit des fichiers GIF en HP/PCL, et les imprime +# fichier /usr/local/libexec/hpvf + +PATH=/usr/X11R6/bin:$PATH; export PATH giftopnm | ppmtopgm | pgmtopbm | pbmtolj -resolution 300 \ + && exit 0 \ + || exit 2 + </programlisting> + + <para>Elle convertit le fichier GIF en format portable universel, puis + en format portable noir et blanc, puis en format portable + “bitmap” et enfin en données compatibles + LaserJet/PCL.</para> + + <para>Voici le fichier <filename>/etc/printcap</filename> avec + une entrée pour une imprimante utilisant ce filtre:</para> + + <programlisting> +# +# /etc/printcap pour la machine rose +# +teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ + :lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\ + :if=/usr/local/libexec/hpif:\ + :vf=/usr/local/libexec/hpvf: + </programlisting> + + <para>La procédure suivante convertit des données troff produites + par le traitement de texte groff pour l'imprimante PostScript + <literal>bamboo</literal>:</para> + + <programlisting> +#!/bin/sh +# +# pstf - Convertit des données troff de groff en PS, et les imprime +# fichier /usr/local/libexec/pstf +# +exec grops | /usr/local/libexec/lprps "$@" + </programlisting> + + <para>Cette procédure utilise de nouveau <command>lprps</command> + pour communiquer avec l'imprimante. Si l'imprimante était sur + un port parallèle, il faudrait utiliser une autre + méthode:</para> + + <programlisting> +#!/bin/sh +# +# pstf - Convertit des donnees troff de groff en PS, et les imprime +# fichier /usr/local/libexec/pstf +# +exec grops + </programlisting> + + <para>C'est tout. Voici ce qu'il faut mettre dans + <filename>/etc/printcap</filename> pour utiliser ce + filtre:</para> + + <programlisting> +:tf=/usr/local/libexec/pstf: + </programlisting> + + <para>Voici un exemple qui prend en charge la sauce FORTRAN. C'est un filtre + pour les programmes FORTRAN pour n'importe quelle imprimante + capable d'imprimer directement du texte. Nous l'installerons + pour l'imprimante + <literal>teak</literal>:</para> + + <programlisting> +#!/bin/sh +# +# hprf - filtre de conversion pour FORTRAN pour LaserJet 3si: +# fichier /usr/local/libexec/hprf +# + +printf "\033&k2G" && fpr && printf "\f" && exit 0 +exit 2 + </programlisting> + + <para>Et nous mettrons la ligne suivante dans + <filename>/etc/printcap</filename> pour l'imprimante + <literal>teak</literal> pour activer ce filtre:</para> + + <programlisting> +:rf=/usr/local/libexec/hprf: + </programlisting> + + <para>Voici un dernier exemple, quelque peu plus complexe. Nous + allons installer un filtre DVI pour l'imprimante LaserJet + <literal>teak</literal> de l'exemple précédent. Commençons + par le plus facile: mettre à jour + <filename>/etc/printcap</filename> en lui donnant le chemin + d'accès au filtre DVI:</para> + + <programlisting> +:df=/usr/local/libexec/hpdf: + </programlisting> + + <para>Et maintenant, la partie compliquée: créer le filtre. Il + nous faut un programme de conversion de DVI en + PCL pour LaserJet. Il y en a un au catalogue des logiciels + portés de FreeBSD (voyez le chapitre <link linkend="ports">Installer + des Logiciels au “Catalogue des Logiciels Portés”</link>): + <citerefentry> + <refentrytitle>dvi2xx</refentrytitle></citerefentry> est le + nom du logiciel. En l'installant, nous récupérons le programme + dont nous avons besoin, <citerefentry> + <refentrytitle>dvilj2p</refentrytitle></citerefentry>, qui + convertit du DVI en instructions compatibles LaserJet IIp, + LaserJet III et LaserJet 2000.</para> + + <para><citerefentry> + <refentrytitle>dvilj2p</refentrytitle></citerefentry> rend + le filtre <command>hpdf</command> assez complexe, parce que + <citerefentry> + <refentrytitle>dvilj2p</refentrytitle></citerefentry> ne + sait pas lire sur l'entrée standard. Il lui faut un nom de + fichier. Pire encore, ce fichier doit avoir l'extension + <filename>.dvi</filename>, nous ne pouvons donc pas utiliser + <filename>/dev/fd/0</filename> qui correspond à l'entrée + standard. Nous contournons le problème avec un lien + (symbolique) d'un fichier temporaire (avec l'extension + <filename>.dvi</filename>) vers <filename>/dev/fd/0</filename>, + forçant ainsi <citerefentry> + <refentrytitle>dvilj2p</refentrytitle></citerefentry> à lire + l'entrée standard.</para> + + <para>Il y a cependant une mouche dans le potage. Nous ne pouvons + pas créer de lien symbolique temporaire dans + <filename>/tmp</filename>. Les liens symboliques appartiennent + à l'utilisateur et au groupe <username>bin</username>. + Le filtre est exécuté par l'utilisateur + <username>daemon</username>. Et le bit “sticky (persistant)” + du répertoire <filename>/tmp</filename> est positionné. Le + filtre peut créer le lien, mais ne pourra pas le détruire + après avoir fait son travail, puisque le lien appartient + à un autre utilisateur.</para> + + <para>Le filtre créera donc le lien dans le répertoire courant, + qui est le répertoire tampon pour la file d'attente des + travaux d'impression + (défini par la fonctionnalité <literal>sd</literal> dans + <filename>/etc/printcap</filename>). C'est l'endroit idéal + pour que les filtres accomplissent leur tâche, en particulier + parce qu'il y a (parfois) plus de place dans le répertoire + tampon que dans <filename>/tmp</filename>.</para> + + <para>Voici, enfin, le filtre:</para> + + <programlisting> +#!/bin/sh +# +# hpdf - Imprime du DVI sur une imprimante HP/PCL +# fichier /usr/local/libexec/hpdf + +PATH=/usr/local/bin:$PATH; export PATH + +# +# Définit une fonction pour détruire nos fichiers temporaires. Ces fichiers +# sont dans le répertoire courant, qui est le répertoire de file d'attente de +# l'imprimante +# +cleanup() { + rm -f hpdf$$.dvi +} + +# +# Définit une fonction de gestion des erreurs fatales : imprime le message +# d'erreur et retourne le code d'erreur 2. Ce code dit à LPD de ne pas +# relancer le travail d'impression. +# +fatal() { + echo "$@" 1>&2 + cleanup + exit 2 +} + +# +# Si l'utilisateur annule le travail d'impression, LPD envoie SIGINT, +# il faut donc capturer SIGINT (et quelques autres signaux) +# pour faire ensuite le ménage nous-mêmes. +# +trap cleanup 1 2 15 + +# +# Assurons-nous de ne pas avoir de conflit de nom avec des fichiers existants. +# +cleanup + +# +# Lien symbolique du fichier DVI sur l'entrée standard (fichier à imprimer). +# +ln -s /dev/fd/0 hpdf$$.dvi || fatal "Cannot symlink /dev/fd/0" + +# +# LF = CR+LF +# +printf "\033&k2G" || fatal "Cannot initialize printer" + +# +# Convertit et imprime. Le code retour de dvilj2p ne semble pas fiable, +# nous l'ignorons. +# +dvilj2p -M1 -q -e- dfhp$$.dvi + +# +# Fait le ménage et termine la procédure +# +cleanup +exit 0 + </programlisting> + + </sect4> + + <sect4 + id="printing-advanced-autoconv"> + <title>La conversion automatique: une alternative aux filtres de + conversion + </title> + + <para>Tous ces filtres de conversion améliorent votre + environnement d'impression, mais ils obligent l'utilisateur + à préciser (sur la ligne de commande de <citerefentry> + <refentrytitle>lpr</refentrytitle></citerefentry>) + lequel utiliser. Si vos utilisateurs ne sont pas + particulièrement compétents en informatique, cela leur sera + une gêne. Pire encore, une erreur d'option de filtrage + peut lancer un filtre sur le mauvais type de fichier et + provoquer l'impression de centaines de pages inutiles.</para> + + <para>Au lieu d'installer des filtres de conversion, vous pouvez + essayer de faire en sorte que le filtre texte (qui est le + filtre par défaut) reconnaisse le type de fichier qu'il doit + imprimer et exécute automatiquement le filtre de conversion + adéquat. Des utilitaires comme <command>file</command> peuvent + être employés pour cela. Il sera bien sûr difficile de faire + la différence entre <emphasis>certains</emphasis> types de + fichiers - dans ce cas, vous pouvez toujours fournir des + filtres de conversion juste pour ces fichiers.</para> + + <para>Le catalogue des logiciels portés de FreeBSD inclut un + filtre texte appelé <citerefentry> + <refentrytitle>apsfilter</refentrytitle></citerefentry> + qui effectue la conversion automatique. Il sait reconnaître les + fichiers texte, PostScript et DVI, effectuer la + conversion adéquate et imprimer.</para> + + </sect4> + </sect3> + + <sect3 + id="printing-advanced-of"> + <title>Filtres de sortie</title> + + <para>Le gestionnaire d'impression LPD supporte encore un autre + type de filtre dont nous n'avons pas encore parlé: le filtre + de sortie. Un filtre de sortie sert à imprimer du texte + uniquement, comme le filtre texte, mais il est grandement + simplifié. Si vous utilisez un filtre de sortie, et pas de + filtre texte, alors: + <itemizedlist> + + <listitem> + <para>LPD exécute le filtre de sortie une seule fois par + travail d'impression et non une fois pour chaque fichier + d'un travail d'impression.</para> + </listitem> + + <listitem> + <para>LPD ne s'inquiète pas de détecter le début et la fin + de chaque fichier pour les besoins du filtre de + sortie.</para> + </listitem> + + <listitem> + <para>LPD ne passe pas le nom de la machine et de + l'utilisateur au filtre, qui ne peut donc être utilisé + pour la comptabilité. De fait, il n'a que deux arguments: + + <cmdsynopsis> + <command>nom_du_filtre</command> + <arg choice="plain">-w<replaceable>largeur</replaceable></arg> + <arg choice="plain">-l<replaceable>hauteur</replaceable></arg> + </cmdsynopsis> où <replaceable>largeur</replaceable> est + la valeur définie par la fonctionnalité + <literal>pw</literal> et + <replaceable>hauteur</replaceable> est + la valeur définie par la fonctionnalité + <literal>pl</literal> associée à l'imprimante en + question.</para> + </listitem> + + </itemizedlist> + </para> + + <para>Ne soyez pas abusé par la simplicité du filtre de sortie. Si + vous voulez que chaque fichier d'un travail d'impression commence + sur une nouvelle page, le filtre de sortie + <emphasis>ne convient pas</emphasis>. Utilisez un filtre texte + (appelé aussi filtre d'entrée); voyez la section <link + linkend="printing-textfilter">Installer le filtre texte</link>. + De plus, un filtre de sortie est en fait plus complexe + car il doit examiner le flot de données pour voir s'il contient + des caractères spéciaux et s'envoyer des signaux à lui-même + au lieu que ce soit LPD qui le fasse.</para> + + <para>Un filtre de sortie est toutefois + <emphasis>nécessaire</emphasis> si vous voulez avoir des pages + d'en-tête et devez envoyer des séquences d'échappement ou d'autres + commandes d'initialisation pour pouvoir imprimer ces pages + d'en-tête. (Il est cependant <emphasis>inutilisable</emphasis> si vous + voulez facturer ces pages d'en-tête à l'utilisateur, + puisque LPD ne donne pas d'informations sur l'utilisateur et + la machine au filtre de sortie.)</para> + + <para>Pour une même imprimante, LPD vous autorise à avoir à la fois + un filtre texte, un filtre de sortie et d'autres filtres. Dans ce + cas, LPD utilisera le filtre de sortie pour imprimer la page + d'en-tête (voyez la section <link + linkend="printing-advanced-header-pages">Pages d'en-tête</link>) + uniquement. LPD s'attend à ce que le filtre de sortie + <emphasis>s'interrompe ensuite lui-même</emphasis> quand il lui envoie les + deux octets: ASCII 031 suivi de ASCII 001. Quand un filtre de + sortie reçoit cette séquence (031, 001), il doit s'interrompre en + s'envoyant le signal SIGSTOP. Quand LPD en a fini avec les autres + filtres, il réactive le filtre de sortie en lui envoyant un + SIGCONT.</para> + + <para>S'il y a un filtre de sortie mais <emphasis>pas</emphasis> + de filtre texte et que LPD traite une impression de texte, LPD + se sert du filtre de sortie pour faire le travail. Comme déjà dit + plus haut, le filtre de sortie imprimera les fichiers en continu, + sans saut de page ou autre commande d'avance papier entre eux, ce + qui n'est probablement <emphasis>pas</emphasis> ce que vous + attendez. Dans la plupart des cas, vous aurez besoin d'un filtre + texte.</para> + + <para>Le programme <command>lpf</command>, que nous avons cité + auparavant comme filtre texte, peut aussi être utilisé comme + filtre de sortie. Si vous avez besoin d'un filtre de sortie + grossier et ne voulez pas écrire le code pour tester les + octets et envoyer les signaux, essayez <command>lpf</command>. + Vous pouvez aussi encapsuler <command>lpf</command> dans une + procédure qui prenne en charge les codes d'initialisation + dont l'imprimante aurait besoin.</para> + + </sect3> + + <sect3 + id="printing-advanced-lpf"> + <title><command>lpf</command>: un filtre texte</title> + + <para>Le programme <filename>/usr/libexec/lpr/lpf</filename> qui + fait partie de la distribution de FreeBSD est un filtre texte + (filtre d'entrée) qui sait indenter le résultat + (commande <command>lpr -i</command>), imprimer littéralement le + texte (commande <command>lpr -l</command>), se positionner + à la bonne colonne d'impression pour gérer les retours arrière + et les tabulations et comptabiliser les pages imprimées. Il peut + aussi servir de filtre de sortie.</para> + + <para><command>lpf</command> convient à de nombreux environnements + d'impression. Et bien qu'il ne sache pas envoyer de séquences + d'initialisation à l'imprimante, il est facile d'écrire une + procédure qui effectue les initialisations requises et exécute + ensuite <command>lpf</command>.</para> + + <para>Pour que <command>lpf</command> comptabilise correctement les + pages, il faut que les valeurs définies par les fonctionnalités + <literal>pw</literal> et <literal>pl</literal> du fichier + <filename>/etc/printcap</filename> soient correctement + renseignées. Ces valeurs sont utilisées pour savoir quelle + quantité de texte tient sur une page, et combien de pages + comporte le travail d'impression d'un utilisateur. Pour plus + d'informations sur la comptabilisation des impressions, voyez + la section <link linkend="printing-advanced-acct">Comptabiliser + l'utilisation des imprimantes</link>.</para> + + </sect3> + </sect2> + + <sect2 + id="printing-advanced-header-pages"> + <title>Pages d'en-tête</title> + + <para>Si vous avez <emphasis>beaucoup</emphasis> d'utilisateurs, + employant tous différentes imprimantes, alors vous devrez + envisager les <emphasis>pages d'en-tête</emphasis> comme un + mal nécessaire.</para> + + <para>Les pages d'en-tête, appelées aussi + <emphasis>bannières</emphasis> ou + pages qui sautent aux yeux (<emphasis>burst</emphasis>) + identifient les propriétaires des + travaux après qu'ils aient été imprimés. Elles sont généralement + imprimées en gros caractères gras, parfois encadrés, de façon à + ce qu'elles se distinguent facilement des documents eux-mêmes + dans une pile d'impressions. Elles permettent aux utilisateurs + de répérer rapidement leurs propres travaux. L'inconvénient en est + que cela fait une page supplémentaire à imprimer à chaque fois, + d'usage éphémère - quelques minutes au plus, et qui finissent + à la corbeille ou au recyclage. (Notez que comme il n'y a qu'une + page d'en-tête par travail d'impression et non une pour chaque + fichier, le gaspillage n'est peut-être pas si grave.)</para> + + <para>Le système LPD peut générer automatiquement les pages d'en-tête + si votre imprimante sait imprimer directement du texte. Si vous + avez une imprimante PostScript, il vous faudra un programme + supplémentaire pour les générer; reportez-vous à la section + <link linkend="printing-advanced-header-pages-ps">Pages + d'en-tête sur les imprimantes PostScript</link>.</para> + + <sect3 id="printing-advanced-header-pages-enabling"> + <title>Activer les pages d'en-tête</title> + + <para>Dans la <link linkend="printing-simple">Configuration + simple d'une imprimante</link>, nous avons supprimé l'impression + des pages d'en-tête en ajoutant + <literal>sh</literal> (pour “suppress + header” - supprimer les en-têtes) dans le fichier + <filename>/etc/printcap</filename>. Pour les mettre en service + sur une imprimante, il suffit d'enlever la fonctionnalité + <literal>sh</literal>.</para> + + <para>Cela parait trop facile, non?</para> + + <para>Vous avez raison. Vous devrez <emphasis>peut-être</emphasis> + fournir un filtre de sortie pour envoyer une séquence + d'initialisation à votre imprimante. Voici un exemple de filtre + de sortie pour une imprimante compatible avec le langage PCL + de Hewlett Packard:</para> + + <programlisting> +#!/bin/sh +# +# hpof - filtre de sortie pour les imprimantes compatibles Hewlett Packard PCL +# fichier /usr/local/libexec/hpof + +printf "\033&k2G" || exit 2 exec +/usr/libexec/lpr/lpf + </programlisting> + + <para>Donnez le chemin d'accès du filtre de sortie avec la + fonctionnalité + <literal remap="tt">of</literal>. Voyez la section <link + linkend="printing-advanced-of">Filtres de sortie</link> + pour plus d'informations.</para> + + <para>Voici par exemple le fichier + <filename>/etc/printcap</filename> pour l'imprimante + <literal>teak</literal> déjà utilisée plus haut; nous + mettons en service les pages d'en-tête et ajoutons le + filtre de sortie ci-dessus:</para> + + <programlisting> +# +# /etc/printcap pour la machine orchid +# +teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ + :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\ + :if=/usr/local/libexec/hpif:\ + :vf=/usr/local/libexec/hpvf:\ + :of=/usr/local/libexec/hpof: + </programlisting> + + <para>Maintenant, quand nous utilisateurs imprimeront sur + <literal>teak</literal>, ils auront une page d'en-tête + pour chaque travail. S'ils préférent perdre du temps à + retrouver leurs impressions, ils peuvent supprimer les + pages d'en-tête en soumettant leurs travaux avec + <command>lpr -h</command>; voyez la section <link + linkend="printing-lpr-options-misc">Options pour la page + d'en-tête</link> pour connaître les autres options + de <citerefentry> + <refentrytitle>lpr</refentrytitle></citerefentry>.</para> + + <note> + <para>LPD imprime un caractère de saut de page après chaque page + d'en-tête. Si votre imprimante utilise un caractère ou une + séquence différente pour éjecter une page, précisez-la avec + la fonctionnalité <literal>ff</literal> dans + <filename>/etc/printcap</filename>.</para> + </note> + + </sect3> + + <sect3 + id="printing-advanced-header-pages-controlling"> + <title>Configurer les pages d'en-tête</title> + + <para>Si les pages d'en-tête sont actives, LPD produira un + <emphasis>en-tête long</emphasis>, une page entière en + gros caractères, donnant le nom de l'utilisateur, de la + machine et du travail d'impression. En voici un exemple + (kelly a imprimé un travail appelé outline depuis la + machine rose):</para> + + <programlisting> + k ll ll + k l l + k l l + k k eeee l l y y + k k e e l l y y + k k eeeeee l l y y + kk k e l l y y + k k e e l l y yy + k k eeee lll lll yyy y + y + y y + yyyy + + + ll + t l i + t l + oooo u u ttttt l ii n nnn eeee + o o u u t l i nn n e e + o o u u t l i n n eeeeee + o o u u t l i n n e + o o u uu t t l i n n e e + oooo uuu u tt lll iii n n eeee + + + + + + + + + + r rrr oooo ssss eeee + rr r o o s s e e + r o o ss eeeeee + r o o ss e + r o o s s e e + r oooo ssss eeee + + + + + + + + Job: outline + Date: Sun Sep 17 11:04:58 1995 + </programlisting> + + <para>LPD ajoute un saut de page après ce texte de sorte que le + travail commence en début de page (à moins que vous n'ayez mis + <literal>sf</literal> - supprimer les sauts de + page - dans l'entrée + correspondant à l'imprimante destinatrice dans + <filename>/etc/printcap</filename>).</para> + + <para>Si vous le préférez, LPD peut générer des <emphasis>en-têtes + courts</emphasis>; spécifiez <literal>sb</literal> + (en-tête court - “short banner”) dans le + fichier <filename>/etc/printcap</filename>. + La page d'en-tête ressemblera alors à ceci:</para> + + <programlisting> +rose:kelly Job: outline Date: Sun Sep 17 11:07:51 1995 + </programlisting> + + <para>Par défaut, LPD imprime la page d'en-tête avant le contenu + du travail. Vous pouvez faire l'inverse avec + <literal>hl</literal> (en-tête à la fin - “header + last”) dans + <filename>/etc/printcap</filename>.</para> + + </sect3> + + <sect3 id="printing-advanced-header-pages-accounting"> + <title>Comptabiliser les pages d'en-tête</title> + + <para>Avec les pages d'en-tête pré-programmées de LPD, vous + en êtes réduits à appliquer la politique suivante: les pages + d'en-tête doivent être <emphasis>gratuites</emphasis>.</para> + + <para>Pourquoi?</para> + + <para>Le filtre de sortie est le seul programme additionnel + qui puisse savoir quand sont imprimées les pages d'en-tête + et comme il ne connait <emphasis>ni l'utilisateur, ni la + machine</emphasis>, pas plus que le nom du fichier comptable, + il ne peut pas savoir qui facturer. Il ne suffit pas + de simplement “ajouter une page” par l'intermédiaire + du filtre texte ou de l'un des filtres de conversion (qui + connaissent l'utilisateur et la machine), puisque les utilisateurs + peuvent supprimer les pages d'en-tête avec + <command>lpr -h</command>. Ils seraient alors facturés pour des + pages d'en-tête qu'ils n'ont pas imprimées. Les utilisateurs + écologistes préféreront employer <command>lpr -h</command>, mais + vous n'avez pas moyen de les y inciter.</para> + + <para>Il ne suffit <emphasis>pas non plus</emphasis> de faire + générer les pages d'en-tête par les différents filtres (ce + qui permet de les facturer). Si les utilisateurs veulent + alors les supprimer avec <command>lpr -h</command>, ils + les auront malgré tout et seront facturés pour, parce que LPD + ne passe l'information fournie par l'option + <option>-h</option> à aucun des filtres.</para> + + <para>Que pouvez-vous donc faire?</para> + + <para>Vous pouvez : + <itemizedlist> + + <listitem> + <para>Accepter la politique de LPD et ne pas facturer les + pages d'en-tête.</para> + </listitem> + + <listitem> + <para>Installer l'une des alternatives à LPD, comme + LPDng ou PLP. + La section + <link linkend="printing-lpd-alternatives">Alternatives au + gestionnaire d'impression standard</link> vous + en dit plus sur les autres gestionnaires d'impression + qui peuvent se substituer à LPD.</para> + </listitem> + + <listitem> + <para>Ecrire un filtre de sortie + <emphasis>intelligent</emphasis>. Le filtre de sortie + n'a normalement rien d'autre à faire que d'initialiser + l'imprimante et effectuer quelques conversions simples + de caractères. Il convient pour les pages d'en-tête et + l'impression de textes (quand il n'y a pas de filtre + texte - ou d'entrée). Mais, s'il y a un filtre + texte, le filtre de sortie n'est utilisé que pour les + pages d'en-tête. Le filtre de sortie peut alors + déterminer quel utilisateur ou quelle machine facturer + en fonction du contenu de la page d'en-tête. Le seul + problème avec cette méthode est que l'on ne sait toujours + pas quel est le fichier comptable (son nom, défini par + la fonctionnalité <literal>af</literal>, n'est pas + transmis au filtre de sortie), mais si son nom est + standard, vous pouvez le codez “en dur” + dans le filtre de sortie. Pour faciliter l'analyse du + contenu de la page d'en-tête, utilisez la fonctionnalité + <literal>sh</literal> (en-tête courte) dans + <filename>/etc/printcap</filename>. Cependant, + c'est peut-être se donner beaucoup de mal, alors que + les utilisateurs apprécieront certainement plus + l'administrateur système qui leur fait cadeau des + pages d'en-tête.</para> + </listitem> + + </itemizedlist> + </para> + + </sect3> + + <sect3 + id="printing-advanced-header-pages-ps"> + <title>Pages d'en-tête sur les imprimantes PostScript</title> + + <para>Comme décrit ci-dessus, LPD peut générer une page + d'en-tête texte qui convient pour de nombreuses imprimantes. + PostScript ne peut pas imprimer directement du texte, donc + dans ce cas, les pages d'en-tête de LPD sont + inutilisables - ou presque.</para> + + <para>Une méthode triviale pour obtenir des pages d'en-tête est + de confier leur génération à chaque filtre de conversion et + au filtre texte. Ces filtres se serviront des noms d'utilisateur + et de machine pour remplir correctement la page d'en-tête. + L'inconvénient de cette méthode est que les utilisateurs + auront toujours une page d'en-tête, même s'ils soumettent + leurs travaux avec <command>lpr -h</command>.</para> + + <para>Voyons comment cela fonctionne. La procédure ci-dessous a + trois arguments (le nom de l'utilisateur, celui de la machine et + celui du travail d'impression) et génère une page d'en-tête + PostScript simple:</para> + + <programlisting> +#!/bin/sh +# +# make-ps-header - affiche une page d'en-tête PostScript sur la sortie standard +# fichier /usr/local/libexec/make-ps-header +# + +# +# Ce sont les unités PostScript (72 par pouce). +# A modifier pour le format A4 ou autre. +# +page_width=612 +page_height=792 +border=72 + +# +# contrôle des arguments +# +if [ $# -ne 3 ]; then + echo "Usage: `basename $0` <user> <host> <job>" 1>&2 + exit 1 +fi + +# +# Les mémoriser, pour la lisibilité du code PostScript qui suit. +# +user=$1 +host=$2 +job=$3 +date=`date` + +# +# Envoyer le code PostScript sur la sortie standard. +# +exec cat <<EOF +%!PS + +% +% Pour ne pas interférer avec le travail de l'utilisateur qui suivra. +% +save + +% +% Un cadre large et désagréable autour de la page. +% +$border $border moveto +$page_width $border 2 mul sub 0 rlineto +0 $page_height $border 2 mul sub rlineto +currentscreen 3 -1 roll pop 100 3 1 roll setscreen +$border 2 mul $page_width sub 0 rlineto closepath +0.8 setgray 10 setlinewidth stroke 0 setgray + +% +% Le nom de l'utilisateur en gros caractères. +% +/Helvetica-Bold findfont 64 scalefont setfont +$page_width ($user) stringwidth pop sub 2 div $page_height 200 sub moveto +($user) show + +% +% Les caractéristiques ennuyeuses +% +/Helvetica findfont 14 scalefont setfont +/y 200 def +[ (Job:) (Host:) (Date:) ] { +200 y moveto show /y y 18 sub def } +forall + +/Helvetica-Bold findfont 14 scalefont setfont +/y 200 def +[ ($job) ($host) ($date) ] { + 270 y moveto show /y y 18 sub def +} forall + +% +% C'est tout. +% +restore +showpage +EOF + </programlisting> + + <para>Chacun des filtres de conversion et le filtre texte peuvent + maintenant utiliser cette procédure pour produire les pages + d'en-tête avant d'imprimer le travail de l'utilisateur. Voici + le filtre de conversion DVI décrit plus haut dans ce chapitre, + modifié pour inclure la génération des pages d'en-tête:</para> + + <programlisting> +#!/bin/sh +# +# psdf - filtre de conversion de DVI en PostScript +# fichier /usr/local/libexec/psdf +# +# Utilisé par lpd quand l'utilisateur emploie lpr -d +# + +orig_args="$@" + +fail() { + echo "$@" 1>&2 + exit 2 +} + +while getopts "x:y:n:h:" option; do + case $option in + x|y) ;; # Ignore + n) login=$OPTARG ;; + h) host=$OPTARG ;; + *) echo "LPD started `basename $0` wrong." 1>&2 + exit 2 + ;; + esac +done + +[ "$login" ] || fail "Pas de nom d'utilisateur" +[ "$host" ] || fail "Pas de nom de machine" + +( /usr/local/libexec/make-ps-header $login $host "DVI File" + /usr/local/bin/dvips -f ) | eval /usr/local/libexec/lprps $orig_args + </programlisting> + + <para>Remarquez la façon dont le filtre analyse les arguments + pour connaître le nom de l'utilisateur et celui de la machine. + Ce serait la même pour les autres filtres de conversion. Le + filtre texte a un jeu d'arguments légèrement différent (voyez + la section <link linkend="printing-advanced-filters">Comment + fonctionnent les filtres</link>).</para> + + <para>Comme nous l'avons déjà dit, cette méthode, quoique assez + simple, empêche d'utiliser l'option de + “suppression de la page d'en-tête” (l'option + <option>-h</option>) de la commande <command>lpr</command>. Si + les utilisateurs voulaient épargner un arbre (ou quelques + centimes, si vous facturez les pages d'en-tête), ils ne pourront + pas, puisque tous les filtres imprimeront une page d'en-tête + pour chaque travail.</para> + + <para>Pour permettre aux utilisateurs de désactiver les pages + d'en-tête, vous devrez utiliser l'astuce décrite à la section + <link + linkend="printing-advanced-header-pages-accounting">Comptabiliser + les pages d'en-tête</link>: écrire un filtre de + sortie qui analyse la page d'en-tête générée par LPD et en + produire une version PostScript. Si l'utilisateur soumet son + travail avec <command>lpr -h</command>, LPD ne génère pas + de page d'en-tête, et donc le filtre de sortie non plus. + Dans le cas contraire, votre filtre de sortie lira le texte + produit par LPD et enverra le code PostScript de la page + d'en-tête à l'imprimante.</para> + + <para>Si votre imprimante PostScript est sur une interface + série, vous pouvez utiliser <command>lprps</command>, qui + inclut un filtre de sortie, <command>psof</command>, qui + se charge de cela. Remarquez que <command>psof</command> + ne facture pas les pages d'en-tête.</para> + + </sect3> + </sect2> + + <sect2 + id="printing-advanced-network-printers"> + <title>Impression en réseau</title> + + <para>FreeBSD supporte l'impression en réseau pour envoyer des travaux + sur des imprimantes distantes. Imprimer en réseau veut en général + dire deux choses différentes: + <itemizedlist> + + <listitem> + <para>Accéder à une imprimante connectée à une machine distante. + Vous installez une imprimante avec une interface série ou + parallèle classique sur une machine. Vous pouvez alors + configurer LPD pour permettre l'accès à cette imprimante + depuis d'autres machines du réseau. La section <link + linkend="printing-advanced-network-rm">Imprimantes + installées sur des machines distantes</link> + vous explique comment + faire.</para> + </listitem> + + <listitem> + <para>Accéder à une imprimante connectée directement au réseau. + L'imprimante a une interface réseau en plus (ou à la place) + de l'interface série ou parallèle habituelle. Une imprimante + de ce type peut fonctionner comme suit: + + <itemizedlist> + + <listitem> + <para>Elle peut comprendre le protocole LPD, voire même + gérer une file d'attente de travaux venant de machines + distantes. Dans ce cas, elle se comporte comme une + machine distante exécutant LPD. Suivez la même procédure + qu'à la section <link + linkend="printing-advanced-network-rm">Imprimantes + installées sur des machines distantes</link> pour + configurer ce type d'imprimante.</para> + </listitem> + + <listitem> + <para>Elle ne peut que recevoir un flot de données + venant du réseau. Dans ce cas, + vous la “reliez” à une machine du réseau + en confiant à cette machine la gestion de la file + d'attente et l'envoi des travaux à l'imprimante. La + section <link + linkend="printing-advanced-network-net-if">Imprimantes + avec une interface réseau</link> donne + quelques indications sur + l'installation de ce type d'imprimante.</para> + </listitem> + + </itemizedlist> + </para> + </listitem> + + </itemizedlist> + </para> + + <sect3 id="printing-advanced-network-rm"> + <title>Imprimantes installées sur des machines distantes</title> + + <para>Le système LPD inclut ce qu'il faut pour envoyer des + travaux sur d'autres machines qui exécutent aussi LPD (ou + sont compatibles avec). Cela vous permet d'installer une + imprimante sur une machine et de la rendre accessible à + d'autres machines. Cela marche aussi avec les imprimantes + qui ont une interface réseau qui comprend le protocole + LPD.</para> + + <para>Pour utiliser ce type d'impression en réseau, installez + d'abord l'imprimante sur une machine, la <emphasis>machine + d'impression</emphasis>, en utilisant la <link + linkend="printing-simple">Configuration simple d'une + imprimante</link>. + Utilisez les options nécessaires de la + <link linkend="printing-advanced">Configuration avancée + d'une imprimante</link>. Veillez à tester l'imprimante + et vous assurez qu'elle marche avec les options de LPD que vous + avez choisies.</para> + + <para>Si vous utilisez une imprimante avec une interface réseau + compatible avec LPD, alors la <emphasis>machine + d'impression</emphasis> dont nous parlerons ci-dessous est + l'imprimante elle-même, et le <emphasis>nom de + l'imprimante</emphasis> est le nom que vous avez utilisé pour + configurer votre imprimante. Consultez la documentation de + votre imprimante ou de son interface réseau.</para> + + <para>Ensuite, sur les autres machines depuis lesquelles vous voulez + pouvoir accéder à cette imprimante, ajouter une entrée dans leurs + fichiers <filename>/etc/printcap</filename> de la façon suivante: + <orderedlist> + + <listitem> + <para>Nommez cette entrée comme vous voulez. Pour plus de + simplicité, vous utiliserez éventuellement le même nom + et les mêmes alias que sur la machine d'impression.</para> + </listitem> + + <listitem> + <para>Laissez explicitement la fonctionnalité + <literal>lp</literal> non renseignée + (<literal>:lp=:</literal>).</para> + </listitem> + + <listitem> + <para>Créez un répertoire tampon et donnez son chemin d'accès + avec la fonctionnalité <literal>sd</literal>. LPD y + mettra les travaux avant de les envoyer à la machine + d'impression.</para> + </listitem> + + <listitem> + <para>Donnez le nom de l'imprimante avec la fonctionnalité + <literal>rm</literal>.</para> + </listitem> + + <listitem> + <para>Donnez le nom de l'imprimante telle qu'elle est connue + sur la <emphasis>machine + d'impression</emphasis> avec la fonctionnalité + <literal>rp</literal>.</para> + </listitem> + + </orderedlist>C'est tout. Vous n'avez pas besoin de préciser + les filtres, les dimensions de la page ou quoi que ce soit + d'autre dans le fichier + <filename>/etc/printcap</filename>.</para> + + <para>Voici un exemple. Il y a deux imprimantes sur la machine + <hostid>rose</hostid>, + <literal>bamboo</literal> et <literal>rattan</literal>. Nous + allons permettre aux utilisateurs de la machine + <hostid>orchid</hostid> d'utiliser ces imprimantes. Voici le + fichier <filename>/etc/printcap</filename> de la + machine <hostid>orchid</hostid> (repris de la section + <link linkend="printing-advanced-header-pages-enabling">Activer + les pages d'en-tête</link>). Il contenait déjà une entrée + pour l'imprimante <literal>teak</literal>; nous avons ajouté + les entrées pour les deux imprimantes de la machine + <hostid>rose</hostid>:</para> + + <programlisting> +# +# /etc/printcap pour la machine orchid +# ajout des imprimantes (distantes) sur rose +# +# teak est locale; elle est connectée directement à orchid: +# +teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ + :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\ + :if=/usr/local/libexec/ifhp:\ + :vf=/usr/local/libexec/vfhp:\ + :of=/usr/local/libexec/ofhp: + +# +# rattan est connectée à rose; envoyer les travaux pour rattan à rose: +# +rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\ + :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan: + +# +# bamboo est aussi connectée à rose: +# +bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ + :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo: + </programlisting> + + <para>Nous n'avons plus qu'à créer les répertoires + tampon sur <hostid>orchid</hostid>:</para> + + <informalexample> + <screen>&prompt.root; <userinput>mkdir -p /var/spool/lpd/rattan /var/spool/lpd/bamboo</userinput> +&prompt.root; <userinput>chmod 770 /var/spool/lpd/rattan /var/spool/lpd/bamboo</userinput> +&prompt.root; <userinput>chown daemon.daemon /var/spool/lpd/rattan /var/spool/lpd/bamboo</userinput></screen> + </informalexample> + + <para>Les utilisateurs d'<hostid>orchid</hostid> peuvent maintenant + imprimer sur <literal>rattan</literal> + et <literal>bamboo</literal>. Si, par exemple, un utilisateur + d'<hostid>orchid</hostid> tape: + + <informalexample> + <screen>&prompt.user; <userinput>lpr -P bamboo -d appreciations-sushi.dvi</userinput></screen> + </informalexample> Le système LPD d'orchid copiera le travail dans + le répertoire tampon + <filename>/var/spool/lpd/bamboo</filename> et notera que c'est + un travail DVI. Dès qu'il y aura de la place dans le répertoire + tampon pour <hostid>bamboo</hostid> sur la machine rose, les deux + LPD transfèreront le fichier sur rose. Il attendra d'être imprimé + dans la file d'attente de rose. La conversion de DVI en + PostScript (puisque bamboo est une imprimante PostScript) + sera faite par rose.</para> + + </sect3> + + <sect3 + id="printing-advanced-network-net-if"> + <title>Imprimantes avec une interface réseau</title> + + <para>La plupart du temps, quand vous achetez une carte d'interface + réseau pour une imprimante, vous avez le choix entre deux + versions: l'une (la plus chère) émule un gestionnaire + d'impression, l'autre (la moins chère) ne vous permet que de lui + envoyer des données comme si elle était sur un port parallèle ou + série. C'est l'utilisation de cette dernière que décrit la + présente section. Pour la version la plus chère, voyez la + section précédente, <link + linkend="printing-advanced-network-rm">Imprimantes installées + sur des machines distantes</link>.</para> + + <para>Le format du fichier <filename>/etc/printcap</filename> + vous permet d'indiquer quelle interface série ou parallèle + utiliser, et (si vous utilisez une interface série), quelle + est la vitesse en baud, s'il faut utiliser un contrôle de + flux, les délais pour les tabulations, la conversion des + sauts de ligne, et ainsi de suite. Mais il n'y a rien pour + décrire la connexion d'une imprimante qui écoute sur un port + TCP/IP ou un autre port réseau.</para> + + <para>Pour envoyer des données à une imprimante réseau, il vous + faut un programme de communication qui soit appelé par le + filtre texte et les filtres de conversion. En voici une + exemple: la procédure <command>netprint</command> récupère + toutes les données qui arrivent sur l'entrée standard et + les envoie à une imprimante réseau. Nous donnons comme + premier argument de <command>netprint</command> + le nom de machine de l'imprimante et comme deuxième argument + le numéro du port auquel se connecter. Remarquez que la + communication est à sens unique (de FreeBSD vers l'imprimante); + nombre d'imprimantes réseau sont capables de communiquer dans + les deux sens, et vous voudrez peut-être en profiter (pour + connaître l'état de l'imprimante, gérer la comptabilité, + etc.).</para> + + <programlisting> +#!/usr/bin/perl +# +# netprint - filtre texte pour une imprimante réseau +# fichier /usr/local/libexec/netprint +# +$#ARGV eq 1 || die "Usage: $0 <printer-hostname> <port-number>"; + +$printer_host = $ARGV[0]; +$printer_port = $ARGV[1]; + +require 'sys/socket.ph'; + +($ignore, $ignore, $protocol) = getprotobyname('tcp'); +($ignore, $ignore, $ignore, $ignore, $address) + = gethostbyname($printer_host); + +$sockaddr = pack('S n a4 x8', &AF_INET, $printer_port, $address); + +socket(PRINTER, &PF_INET, &SOCK_STREAM, $protocol) + || die "Impossible de créer la socket TCP/IP: $!"; +connect(PRINTER, $sockaddr) || die "Impossible de contacter $printer_host: $!"; +while (<STDIN>) { print PRINTER; } +exit 0; + </programlisting> + + <para>Nous pouvons utiliser cette procédure avec différents + filtres. Supposons que nous ayons une imprimante ligne + Diablo 750-N sur notre réseau. Cette imprimante reçoit les données + à imprimer sur le port 5100. Son nom de machine est scrivener. + Voici le filtre texte pour cette imprimante:</para> + + <programlisting> +#!/bin/sh +# +# diablo-if-net - filtre texte pour l'imprimante Diablo `scrivener' à l'écoute +# sur le port 5100. fichier /usr/local/libexec/diablo-if-net +/usr/libexec/lpr/lpf "$@" | /usr/local/libexec/netprint scrivener 5100 + </programlisting> + + </sect3> + </sect2> + + <sect2 id="printing-advanced-restricting"> + <title>Restreindre l'accès aux imprimantes</title> + + <para>Cette section vous donne des informations sur les + restrictions d'accès aux imprimantes. Le système LPD + vous permet de contrôler quels sont les utilisateurs + qui peuvent accéder aux imprimantes, locales et distantes, + s'ils ont le droit d'imprimer en plusieurs exemplaires, + quelle taille peut avoir leurs travaux, et quelle peut + être la taille maximale de la file d'attente.</para> + + + <sect3 id="printing-advanced-restricting-copies"> + <title>Restreindre l'impression de plusieurs exemplaires</title> + + <para>Avec le système LPD, il est facile pour les utilisateurs + d'imprimer en plusieurs exemplaires. Il leur suffit d'utiliser + <command>lpr -#5</command> (par exemple) pour obtenir 5 + exemplaires de chaque fichier de leur travail d'impression. + C'est à vous de décider si c'est une bonne chose.</para> + + <para>Si vous pensez que les impressions multiples usent + inutilement vos imprimantes, vous pouvez désactiver + l'option <option>-#</option> de + <citerefentry><refentrytitle>lpr</refentrytitle></citerefentry> + en ajoutant la fonctionnalité <literal>sc</literal> au fichier + <filename>/etc/printcap</filename>. Quand les utilisateurs + soumettront des travaux avec l'option <option>-#</option>, + ils auront le message : + + <informalexample> + <screen>lpr: multiple copies are not allowed</screen> + </informalexample></para> + + <para>(L'impression en plusieurs exemplaires n'est pas + autorisée.)</para> + <para>Notez bien que si vous avez défini une entrée pour une + imprimante distante + (voyez la section + <link linkend="printing-advanced-network-rm">Imprimantes + installées sur des machines distantes</link>), vous devrez aussi + définir la fonctionnalité <literal>sc</literal> dans le fichier + <filename>/etc/printcap</filename> de la machine, ou bien les + autres utilisateurs pourrons envoyer des impressions multiples + depuis d'autres machines.</para> + + <para>Voici un exemple. C'est le fichier + <filename>/etc/printcap</filename> de la machine + <hostid>rose</hostid>. L'imprimante <literal>rattan</literal> + est assez robuste, nous y autoriserons les impressions multiples, + mais l'imprimante laser <literal>bamboo</literal> est un peu plus + fragile, nous y désactiverons donc les impressions en plusieurs + exemplaires en ajoutant la fonctionnalité + <literal remap="tt">sc</literal>:</para> + + <programlisting> +# +# /etc/printcap pour la machine rose +# interdire plusieurs exemplaires sur bamboo +# +rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\ + :sh:sd=/var/spool/lpd/rattan:\ + :lp=/dev/lpt0:\ + :if=/usr/local/libexec/if-simple: + +bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ + :sh:sd=/var/spool/lpd/bamboo:sc:\ + :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:\ + :if=/usr/local/libexec/psif:\ + :df=/usr/local/libexec/psdf: + </programlisting> + + <para>Il nous faut encore ajouter la fonctionnalité + <literal>sc</literal> dans <filename>/etc/printcap</filename> + sur la machine <hostid>orchid</hostid> (et pendant que nous y + sommes, désactivons les exemplaires multiples sur l'imprimante + <literal>teak</literal>):</para> + + <programlisting> +# +# /etc/printcap pour la machine orchid - pas d'impression en plusieurs +# exemplaires sur l'imprimante locale teak ni sur l'imprimante distante bamboo +# +teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ + :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:sc:\ + :if=/usr/local/libexec/ifhp:\ + :vf=/usr/local/libexec/vfhp:\ + :of=/usr/local/libexec/ofhp: + +rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\ + :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan: + +bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ + :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:sc: + </programlisting> + + <para>Avec la fonctionnalité <literal>sc</literal>, + nous empêchons d'utiliser la commande <command>lpr -#</command>, + mais cela n'évite pas que les utilisateurs exécutent plusieurs + fois <citerefentry> + <refentrytitle>lpr</refentrytitle></citerefentry>, + ou soumettent plusieurs fois les mêmes fichiers dans un même + travail, comme ceci:</para> + + <informalexample> + <screen>&prompt.user; <userinput>lpr a-vendre.annonce a-vendre.annonce a-vendre.annonce</userinput></screen> + </informalexample> + + <para>Il y a de nombreux moyens d'empêcher ce type d'abus + que vous êtes libre d'essayer (y compris l'ignorer).</para> + + </sect3> + + <sect3 + id="printing-advanced-restricting-access"> + <title>Restreindre l'accès aux imprimantes</title> + + <para>Vous pouvez contrôler qui imprime sur quelle imprimante + avec le mécanisme des groupes d'UNIX et la fonctionnalité + <literal>rg</literal> dans <filename>/etc/printcap</filename>. + Définissez les utilisateurs auxquels vous voulez autoriser l'accès + à une imprimante dans un groupe précis et donnez ce groupe + en paramètre de la fonctionnalité <literal>rg</literal>.</para> + + <para>Les utilisateurs qui n'appartiennent pas à ce + groupe (y compris le super-utilisateur) seront accueillis par:</para> + + <informalexample> + <screen>lpr: Not a member of the restricted group</screen> + </informalexample> + + <para>(Vous n'appartenez pas au groupe autorisé.) + s'ils essaient d'utiliser l'imprimante en question.</para> + + <para>De même que pour la fonctionnalité <literal>sc</literal> + (suppressions des exemplaires multiples), vous devez spécifier + <literal>rg</literal> sur les machines distantes qui ont accès + à l'imprimante, si cela vous paraît indiqué (voyez la section + <link linkend="printing-advanced-network-rm">Imprimantes + installées sur des machines distantes</link>).</para> + + <para>Par exemple, nous ne laisserons pas tout le monde imprimer sur + <literal>rattan</literal>, mais seuls les utilisateurs du groupe + <literal>artists</literal> pourront utiliser + <literal>bamboo</literal>. Voici notre habituel fichier + <filename>/etc/printcap</filename> + pour la machine <hostid>rose</hostid>:</para> + + <programlisting> +# +# /etc/printcap pour la machine rose - restriction d'accès à bamboo +# +rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\ + :sh:sd=/var/spool/lpd/rattan:\ + :lp=/dev/lpt0:\ + :if=/usr/local/libexec/if-simple: + +bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ + :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:\ + :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:\ + :if=/usr/local/libexec/psif:\ + :df=/usr/local/libexec/psdf: + </programlisting> + + <para>Laissons tel quel l'autre fichier + <filename>/etc/printcap</filename> (de la machine + <hostid>orchid</hostid>). Bien sûr, tous les utilisateurs + d'<hostid>orchid</hostid> peuvent alors imprimer sur + <literal>bamboo</literal>. Selon le cas, nous voudrons + restreindre ou non l'accès à certains utilisateurs + d'<hostid>orchid</hostid>.</para> + + <note> + <para>Avec cette fonctionnalité, il ne peut y avoir qu'un seul + groupe d'utilisateurs autorisé par imprimante.</para> + </note> + </sect3> + + <sect3 + id="printing-advanced-restricting-sizes"> + <title>Contrôler la taille des travaux soumis</title> + + <para>Si de nombreux utilisateurs accèdent à vos imprimantes, + vous voudrez probablement limiter la taille des fichiers + qu'ils peuvent imprimer. Après tout, l'espace disponible + sur les systèmes de fichiers où se trouvent les files + d'attente n'est pas illimité, et vous devez aussi faire en + sorte qu'il y ait de la place pour les travaux de tous les + utilisateurs.</para> + + <para>LPD vous permet de définir une taille maximum en octets + que peut avoir un fichier à imprimer grâce à la fonctionnalité + <literal>mx</literal>. L'unité est le bloc BUFSIZ, qui est de + 1024 octets. Si vous donnez en paramètre de cette fonctionnalité + la valeur zéro, la taille des fichiers ne sera pas limitée.</para> + + <note> + <para>Cette limite s'applique à la taille des + <emphasis>fichiers</emphasis> d'un travail d'impression, + et <emphasis>non</emphasis> au volume total du travail.</para> + </note> + + <para>LPD ne refusera pas d'imprimer un fichier trop volumineux. + Il en mettra autant que la limite + donnée dans la file d'attente. Cette + partie sera imprimée, le reste sera ignoré. Est-ce la bonne + méthode, le débat reste ouvert.</para> + + <para>Ajoutons des limites aux imprimantes + <literal>rattan</literal> et <literal>bamboo</literal> + de notre exemple. Comme les fichiers PostScript de nos artistes + sont assez volumineux, nous les limiterons à 5 méga-octets. Nous + ne mettrons pas de limitation à l'utilisation de l'imprimante + texte:</para> + + <programlisting> +# +# /etc/printcap pour la machine rose +# + +# +# Pas de limite à la taille des fichiers: +# +rattan|line|diablo|lp|Imprimante Ligne Diablo 630:\ + :sh:sd=/var/spool/lpd/rattan:\ + :lp=/dev/lpt0:\ + :if=/usr/local/libexec/if-simple: + +# +# Pas plus de 5 méga-octets +# +bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ + :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\ + :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:\ + :if=/usr/local/libexec/psif:\ + :df=/usr/local/libexec/psdf: + </programlisting> + + <para>Encore une fois, ces limitations s'appliquent aux + utilisateurs locaux. Si ces imprimantes sont accessibles + à distance, les utilisateurs distants ne seront pas + assujettis à ces limites. Il vous faut aussi introduire la + fonctionnalité <literal>mx</literal> dans les fichiers + <filename>/etc/printcap</filename> des machines distantes. Voyez + la section <link + linkend="printing-advanced-network-rm">Imprimantes installées + sur des machines distantes</link> pour plus d'informations sur + l'impression à distance.</para> + + <para>Il y a un autre moyen de limiter le volume des travaux + d'impression à distance; voyez la section <link + linkend="printing-advanced-restricting-remote">Contrôler les + impressions à distance</link>.</para> + + </sect3> + + <sect3 + id="printing-advanced-restricting-remote"> + <title>Contrôler les impressions à distance</title> + + <para>Le système LPD fournit différents moyens de contrôler + les impressions depuis des machines distantes:</para> + + + <variablelist> + <varlistentry><term>Restrictions selon les machines</term> + <listitem> + <para>Vous pouvez contrôler de quelles machines distantes + le “démon” LPD local acceptera des requêtes + d'impression grâce aux fichiers + <filename>/etc/hosts.equiv</filename> et + <filename>/etc/hosts.lpd</filename>. LPD vérifie si la + requête vient d'une machine mentionnée dans l'un de ces + deux fichiers. Si ce n'est pas le cas, il refuse la + requête.</para> + + <para>Le format de ces fichiers est trivial: un nom de + machine par ligne. Notez que le fichier + <filename>/etc/hosts.equiv</filename> est aussi utilisé + par le protocole + <citerefentry><refentrytitle>ruserok</refentrytitle><manvolnum>3</manvolnum></citerefentry>, et affecte des programmes comme + <citerefentry> + <refentrytitle>rsh</refentrytitle></citerefentry> et + <citerefentry> + <refentrytitle>rcp</refentrytitle></citerefentry>, + faites donc attention.</para> + + <para>Voici par exemple le fichier + <filename>/etc/hosts.lpd</filename> de la machine + <hostid>rose</hostid>: + + <programlisting> +orchid +violet +madrigal.fishbaum.de + </programlisting> + + Ce qui signifie que <hostid>rose</hostid> acceptera + les demandes qui viennent des machines + <hostid>orchid</hostid>, + <hostid>violet</hostid> + et <hostid role="fqdn">madrigal.fishbaum.de</hostid>. + Si une autre machine fait appel au LPD de + <hostid>rose</hostid>, il lui refusera l'accès.</para> + </listitem> + </varlistentry> + + <varlistentry><term>Restrictions de volume</term> + + <listitem> + <para>Vous pouvez contrôler combien il doit rester + d'espace libre sur le système de fichiers où se + trouve le répertoire de file d'attente. Créez un + fichier appelé <filename>minfree</filename> dans + le répertoire de file d'attente de l'imprimante + local. Mettez-y un nombre de blocs disque (512 octets) + qui sera l'espace qui devra être disponible pour + qu'un travail d'impression à distance soit accepté.</para> + + <para>Vous vous assurez ainsi que les utilisateurs distants + ne satureront pas votre système de fichiers. Vous pouvez + aussi utiliser cette possibilité pour donner une certaine + priorité aux utilisateurs locaux: ils pourront mettre des + travaux en attente bien après que l'espace disponible + soit descendu en dessous de la valeur indiquée par + le fichier <filename>minfree</filename>.</para> + + <para>Définissons par exemple un fichier + <filename>minfree</filename> pour l'imprimante + <hostid>bamboo</hostid>. Nous regardons dans + <filename>/etc/printcap</filename> pour savoir + quel est son répertoire de file d'attente. Voici l'entrée + pour <hostid>bamboo</hostid>:</para> + + <programlisting> +bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ + :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\ + :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:mx#5000:\ + :if=/usr/local/libexec/psif:\ + :df=/usr/local/libexec/psdf: + </programlisting> + + <para>Le répertoire de file d'attente est défini par la + fonctionnalité <literal>sd</literal>. Nous fixerons à + trois méga-octets (soit 6144 blocs disque) l'espace + qui doit être libre pour que LPD accepte des impressions + distantes:</para> + + <informalexample> + <screen>&prompt.root; <userinput>echo 6144 > /var/spool/lpd/bamboo/minfree</userinput></screen> + </informalexample> + + </listitem> + </varlistentry> + + <varlistentry><term>Restrictions sur les utilisateurs</term> + + <listitem> + <para>Vous pouvez contrôler quels utilisateurs distants + peuvent utiliser les imprimantes locales avec la + fonctionnalité <literal>rs</literal> dans + <filename>/etc/printcap</filename>. Quand + <literal>rs</literal> est mentionnée dans l'entrée + correspondant à une imprimante locale, LPD acceptera + les impressions venant de machines distantes + <emphasis>si et seulement si</emphasis> l'utilisateur + qui soumet le travail a un compte sous le même nom + sur la machine locale. Sinon, le travail d'impression + sera refusé.</para> + + <para>Cette fonctionnalité est particulièrement utile + lorsque (par exemple) plusieurs départements partagent un réseau + et certains utilisateurs sont à cheval sur plusieurs + départements. En leur ouvrant un compte sur vos + systèmes, ils peuvent utiliser les imprimantes de + leur propre département. Si vous préférez qu'ils + n'utilisent que <emphasis>vos</emphasis> imprimantes, mais + pas vos machines, vous pouvez leur ouvrir des comptes + “jeton”, sans répertoire utilisateur et + avec un interpréteur de commandes inutilisable tel que + <filename>/usr/bin/false</filename>.</para> + + </listitem> + </varlistentry> + </variablelist> + + + </sect3> + </sect2> + + <sect2 + id="printing-advanced-acct"> + <title>Comptabiliser l'utilisation des imprimantes</title> + + <para>Donc, vous voulez facturer les impressions. Et pourquoi pas? + Le papier et l'encre coûtent de l'argent. Il y a aussi les coûts + de maintenance. Les imprimantes ont des pièces mobiles qui ont + tendance à casser. Vous avez fait un bilan du coût de vos + imprimantes, consommables et frais de maintenance et avez + calculé un coup à la page (ou au mètre, ou toute autre unité). + Comment faites-vous maintenant pour comptabiliser les + impressions?</para> + + <para>Bien, la mauvaise nouvelle est que le gestionnaire + d'impression LPD n'aide pas beaucoup dans ce domaine. La + facturation dépend dans une large mesure du type d'imprimante, + du format utilisé, et de <emphasis>votre</emphasis> politique + de facturation de l'utilisation des imprimantes.</para> + + <para>Pour mettre en oeuvre la facturation, vous devez modifier le + filtre texte de l'imprimante (pour facturer l'impression de + fichiers texte) et les filtres de conversion (pour les autres + formats de fichiers), pour qu'ils comptent les pages ou interrogent + l'imprimante pour connaître le nombre de pages imprimées. Vous + ne pouvez pas vous en sortir avec un simple filtre de sortie, qui + n'est pas capable de gérer la comptabilité. Voyez la section + <link + linkend="printing-advanced-filter-intro">Filtres</link>.</para> + + <para>D'une façon générale, il y a deux méthodes de faire la + facturation: + <itemizedlist> + + <listitem> + <para>La <emphasis>facturation périodique</emphasis> est la + méthode la plus courante, probablement parce que c'est la + plus facile. Chaque fois que quelqu'un imprime, le filtre + enregistre dans le fichier comptable le nom de l'utilisateur, + celui de la machine et le nombre de pages imprimées. Tous + les mois, semestres, années, ou avec la périodicité que vous + voulez, vous récupérez les fichiers comptables des différentes + imprimantes et facturez leur utilisation. Vous réinitialisez + ensuite ces fichiers, et repartez à zéro pour la période + suivante.</para> + </listitem> + + <listitem> + <para>La <emphasis>facturation à la volée</emphasis> est moins + utilisée, certainement parce qu'elle est plus délicate. Avec + cette méthode, les filtres facturent les utilisateurs dès + qu'ils utilisent les imprimantes. Comme pour les quotas + d'espace disque, la comptabilité est immédiate, Vous pouvez + interdire aux utilisateurs d'imprimer dès qu'ils sont dans le + rouge et leur fournir un moyen de consulter et modifier + leurs “quotas d'impression”. Mais cette + méthode demande de mettre en oeuvre une base de données + pour gérer les utilisateurs et leurs quotas.</para> + </listitem> + + </itemizedlist> + </para> + + <para>Le gestionnaire d'impression LPD permet de mettre facilement en + oeuvre les deux méthodes: de même que vous devez fournir des filtres + (la plupart du temps, au moins), vous devez aussi écrire le code + de facturation. Mais cela a un avantage: vous avez énormement de + souplesse pour la méthode. Par exemple, vous pouvez choisir entre + la facturation périodique ou à la volée. Vous pouvez choisir quelles + informations utiliser: le nom d'utilisateur, le nom de + machine, le type d'impression, le nombre de pages, la surface ou + la quantité de papier utilisée, le temps qu'a pris l'impression, et + ainsi de suite. Vous faites cela en modifiant le filtre pour qu'il + archive ces informations.</para> + + <sect3> + <title>Facturation simplifiée</title> + + <para>FreeBSD inclut deux programmes que vous pouvez immédiatement + configurer pour une facturation périodique de base. Ce sont le + filtre texte <command>lpf</command>, décrit à la section + <link linkend="printing-advanced-lpf"><command>lpf</command>: + un filtre texte</link>, et <citerefentry> + <refentrytitle>pac</refentrytitle></citerefentry>, un programme + qui rassemble et globalise les données des fichiers + comptables.</para> + + <para>Comme indiqué à la section sur les filtres (<link + linkend="printing-advanced-filters">Filtres</link>), LPD + exécute le filtre texte et les filtres de conversion en leur + donnant en argument le nom du fichier comptable. Les filtres + peuvent utiliser ce paramètre pour savoir où écrire + l'enregistrement comptable. Le nom du fichier est précisé par + la fonctionnalité <literal>af</literal> du fichier + <filename>/etc/printcap</filename>, avec un chemin d'accès + absolu ou relatif au répertoire de file d'attente.</para> + + <para>LPD exécute <command>lpf</command> avec comme paramètres + la largeur et la hauteur de page (définies par les + fonctionnalités <literal>pw</literal> et <literal>pl</literal>). + <command>lpf</command> utilise ces arguments pour savoir combien + il faudra de papier. Après avoir envoyé le fichier à l'imprimante, + il génère alors un enregistrement dans le fichier comptable. Cet + enregistrement ressemble à ce qui suit:</para> + + <programlisting> +2.00 rose:andy +3.00 rose:kelly +3.00 orchid:mary +5.00 orchid:mary +2.00 orchid:zhang</programlisting> + + <para>Il faut utiliser un fichier comptable différent pour + chaque imprimante, car <command>lpf</command> ne sait pas + verrouiller les fichiers, et deux <command>lpf</command> + pourraient corrompre leurs enregistrements respectifs + s'ils écrivaient en même temps dans le même fichier. Une façon + simple d'être sûr que l'on a des fichiers différents pour chaque + imprimante est d'utiliser <literal>af=acct</literal> dans + <filename>/etc/printcap</filename>. On a alors dans les + répertoires de file d'attente de chaque imprimante, un fichier + comptable appelé <filename>acct</filename>.</para> + + <para>Quand vous voulez facturer les utilisateurs, + exécutez le programme <citerefentry> + <refentrytitle>pac</refentrytitle></citerefentry>. + Allez simplement dans le répertoire de file d'attente + de l'imprimante dont vous voulez récupérer les informations + comptables et tapez <citerefentry> + <refentrytitle>pac</refentrytitle></citerefentry>. Vous + obtiendrez un résumé (en dollars) des coûts:</para> + + <informalexample> + <screen> Login pages/feet runs price +orchid:kelly 5.00 1 $ 0.10 +orchid:mary 31.00 3 $ 0.62 +orchid:zhang 9.00 1 $ 0.18 +rose:andy 2.00 1 $ 0.04 +rose:kelly 177.00 104 $ 3.54 +rose:mary 87.00 32 $ 1.74 +rose:root 26.00 12 $ 0.52 + +total 337.00 154 $ 6.74</screen> + </informalexample> + + <para>Voici les arguments qu'attend <citerefentry> + <refentrytitle>pac</refentrytitle></citerefentry>:</para> + + <variablelist> + <varlistentry><term><option>-P<replaceable>imprimante</replaceable></option></term> + <listitem> + <para>L'<replaceable>imprimante</replaceable> dont on + veut le résumé comptable. Cette option ne fonctionne + que si l'on a donné un chemin d'accès absolu à la + fonctionnalité <literal>af</literal> + dans <filename>/etc/printcap</filename>.</para> + </listitem> + </varlistentry> + + <varlistentry><term><option>-c</option></term> + + <listitem> + <para>Trier par coûts au lieu d'utiliser l'ordre + alphabétique des noms d'utilisateurs.</para> + </listitem> + </varlistentry> + + <varlistentry><term><option>-m</option></term> + + <listitem> + <para>Ne pas tenir compte du nom de machine indiqué pour la + comptabilité. Avec cette option, l'utilisateur + <username>smith</username> sur la machine + <hostid>alpha</hostid> est le même utilisateur que + <username>smith</username> sur la machine + <hostid>gamma</hostid>. Sinon, ils sont considérés comme + des utilisateurs différents.</para> + </listitem> + </varlistentry> + + <varlistentry><term><option>-p<replaceable>prix</replaceable></option></term> + + <listitem> + <para>Calculer les coûts sur la base du + <replaceable>prix</replaceable> en dollars par page ou par + pied (“ft”) au lieu d'utiliser la valeur donnée + avec la fonctionnalité <literal>pc</literal> dans + <filename>/etc/printcap</filename>, ou deux + centimes (la valeur par défaut). + <replaceable>prix</replaceable> peut être un nombre en + virgule flottante.</para> + </listitem> + </varlistentry> + + <varlistentry><term><option>-r</option></term> + + <listitem> + <para>Trier dans l'ordre inverse.</para> + </listitem> + </varlistentry> + + <varlistentry><term><option>-s</option></term> + + <listitem> + <para>Editer le résumé comptable et tronquer le + fichier.</para> + </listitem> + </varlistentry> + + <varlistentry><term><replaceable>nom</replaceable> <replaceable>...</replaceable></term> + + <listitem> + <para>N'imprimer les informations comptables que pour + l'utilisateur <replaceable>nom</replaceable>.</para> + + </listitem> + </varlistentry> + </variablelist> + + <para>Dans le résumé que produit <citerefentry> + <refentrytitle>pac</refentrytitle></citerefentry> + par défaut, vous avez le nombre de pages imprimées par + chaque utilisateur sur chaque machine.Si, sur votre site, + les machines n'ont pas d'importance (parce que les + utilisateurs peuvent se servir de n'importe laquelle), + utilisez <command>pac -m</command>, pour obtenir un + récapitulatif qui ressemble à:</para> + + <informalexample> + <screen> Login pages/feet runs price +andy 2.00 1 $ 0.04 +kelly 182.00 105 $ 3.64 +mary 118.00 35 $ 2.36 +root 26.00 12 $ 0.52 +zhang 9.00 1 $ 0.18 + +total 337.00 154 $ 6.74</screen> + </informalexample> + + <para>Pour calculer la facture en dollars, + <citerefentry> + <refentrytitle>pac</refentrytitle></citerefentry> utilise + la fonctionnalité <literal>pc</literal> du fichier + <filename>/etc/printcap</filename> (200 par défaut, soit 2 + centimes par page). Donnez, en centièmes de centimes, le prix + par page ou par pied que vous voulez facturer. Cette valeur + peut être redéfinie quand vous utilisez + <citerefentry> + <refentrytitle>pac</refentrytitle></citerefentry> avec + l'option <option>-p</option>. Avec l'option + <option>-p</option>, l'unité est le dollar et non plus + le centième de centime. Par exemple: + + <informalexample> + <screen>&prompt.root; <userinput>pac -p1.50</userinput></screen> + </informalexample> + + facture chaque page un dollar cinquante centimes. Vous pouvez + vraiment faire des affaires avec cette option.</para> + + <para>Enfin, utiliser <command>pac -s</command> sauvegardera le + résumé dans un fichier comptable récapitulatif, de même nom + que le fichier comptable associé à l'imprimante, mais suffixé + par <literal>_sum</literal>. Le fichier comptable est ensuite + tronqué. La prochaine fois que vous utiliserez + <citerefentry><refentrytitle>pac</refentrytitle></citerefentry>, + ce fichier récapitulatif sera relu et pris en compte pour + recalculer les totaux, en y ajoutant ce qui est comptabilisé + dans le fichier comptable normal.</para> + + </sect3> + + <sect3> + <title>Comment compter le nombre de pages imprimées?</title> + + <para>Pour comptabliser correctement les impressions, même à + distance, vous devez pouvoir calculer la quantité de papier + consommée par chaque travail. C'est la difficulté principale + liée à la facturation des impressions.</para> + + <para>Pour les impressions en mode texte, la difficulté n'est + pas si grande: vous comptez le nombre de lignes à imprimer + et le comparer au nombre de lignes que l'imprimante peut + éditer par page. N'oubliez pas de prendre les retours arrière + en compte, lorsqu'il y a sur-impression, de même que les lignes + trop longues qui s'impriment sur plus d'une ligne.</para> + + <para>Le filtre texte <command>lpf</command> + (décrit dans <link + linkend="printing-advanced-lpf"><command>lpf</command>: un filtre + texte</link>) prend tout cela en compte lorsqu'il gère + la comptabilité. Si vous écrivez un filtre texte qui doit prendre + la facturation en charge, vous devriez jeter un oeil au code + source de <command>lpf</command>.</para> + + <para>Comment prendre les autres formats en compte?</para> + + <para>Pour les conversions de DVI en LaserJet ou PostScript, + le filtre peut analyser la sortie de + <citerefentry> + <refentrytitle>dvilj</refentrytitle></citerefentry> ou + <citerefentry> + <refentrytitle>dvips</refentrytitle></citerefentry> + pour y lire le nombre de pages converties. Vous devriez + être en mesure de faire de même avec d'autres formats de fichiers + et d'autres programmes de conversion.</para> + + <para>Ces méthodes sont toutefois limitées parce qu'elles ne + prennent pas en compte le fait que l'imprimante n'imprimera + peut-être pas toutes ces pages. Il peut par exemple y avoir + bourrage ou manque d'encre - et l'utilisateur sera malgré + tout facturé.</para> + + <para>Que pouvez-vous alors faire?</para> + + <para>Il n'y a qu'une seule méthode <emphasis>sûre</emphasis> + pour tenir une comptabilité <emphasis>précise</emphasis>. + Faire dire à l'imprimante combien de papier elle utilise, et + la connecter sur un port série ou directement sur le réseau. + Pratiquement toutes les imprimantes PostScript offrent cette + possibilité. C'est aussi faisable avec d'autres modèles (les + imprimantes laser réseau Imagen, par exemple). Modifiez les + filtres de ces imprimantes pour lire le nombre de pages + imprimées à la fin de chaque travail et reportez dans le + fichier comptable des informations qui se basent + <emphasis>uniquement</emphasis> là-dessus. Il n'y a alors pas besoin + de compter les lignes ou d'un examen des fichiers qui peut + être source d'erreurs.</para> + + <para>Vous pouvez toujours en définitive vous montrer généreux et + instituer la gratuité des impressions.</para> + + </sect3> + </sect2> + </sect1> + + <sect1 + id="printing-lpd-alternatives"> + <title>Alternatives au gestionnaire d'impression standard</title> + + <para>Si vous avez lu intégralement ce document jusqu'ici, + vous savez maintenant à peu près tout ce qu'il faut savoir sur + le gestionnaire d'impression LPD qui est livré avec FreeBSD. Vous + pouvez juger de ses limitations, ce qui vous amène tout naturellement + à vous demander s'il existe d'autres gestionnaires d'impression + (qui fonctionnent sous FreeBSD).</para> + + <para>Malheureusement, je n'ai trouvé que <emphasis>deux</emphasis> + alternatives - et elles sont quasiment semblables! Ce sont:</para> + + <variablelist> + <varlistentry><term>PLP, le “Portable Line Printer + Spooler” + (gestionnaire d'impression en ligne portable)</term> + <listitem> + <para>PLP est basé sur un logiciel développé par Patrick Powell + puis maintenu par un groupe de développeurs sur Internet. Le + site de référence pour ce logiciel est <ulink + url="ftp://ftp.iona.ie/pub/plp">ftp://ftp.iona.ie/pub/plp</ulink>. + Il y a aussi une <ulink url="http://www.iona.ie:8000/www/hyplan/jmason/plp.html">page Web</ulink>.</para> + + <para>Il ressemble beaucoup au gestionnaire LPD de BSD, mais + en améliore un grand nombre de fonctionnalités, dont: + <itemizedlist> + + <listitem> + <para>Meilleur support réseau, dont le support intégré + des imprimantes réseau, + fichiers <filename>printcap</filename> gérés par NIS, + et montage NFS des répertoires tampons.</para> + </listitem> + + <listitem> + <para>Gestion sophistiquée des files d'attentes, + permettant d'avoir plusieurs imprimantes sur la même + file, le transfert de travaux d'une file à une autre, + et la redirection des files d'attente.</para> + </listitem> + + <listitem> + <para>Fonctions de contrôle à distance des + imprimantes.</para> + </listitem> + + <listitem> + <para>Gestion des priorités des travaux.</para> + </listitem> + + <listitem> + <para>Extensions aux options d'accès et de sécurité.</para> + </listitem> + + </itemizedlist> + </para> + </listitem> + </varlistentry> + + <varlistentry><term>LPRng</term> + + <listitem> + <para>LPRng, qui signifie “LPR: the Next + Generation” (LPR : la génération suivante) est une + réécriture complète de PLP. Patrick Powell + et Justin Mason (le principal responsable de la maintenance + de PLP) ont coopéré pour réaliser LPRng. Le site de + référence de LPRng est <ulink + url="ftp://dickory.sdsu.edu/pub/LPRng">ftp://dickory.sdsu.edu/pub/LPRng</ulink>.</para> + + </listitem> + </varlistentry> + </variablelist> + + </sect1> + + <sect1><title>Remerciements</title> + + <para>Je voudrais remercier les personnes suivantes pour l'aide + qu'elles m'ont apportée pour réaliser ce document:</para> + + <variablelist> + <varlistentry><term>Daniel Eischen + <email>deischen@iworks.interworks.org</email></term> + <listitem> + <para>Qui a fourni une pléthore de programmes de filtre HP + que j'ai pu réutiliser.</para> + </listitem> + </varlistentry> + + <varlistentry><term>&a.jehamby;</term> + + <listitem> + <para>Pour le filtre de conversion Ghostscript pour HP.</para> + </listitem> + </varlistentry> + + <varlistentry><term>Ma femme, Mary Kelly + <email>urquhart@argyre.colorado.edu</email></term> + + <listitem> + <para>Pour m'avoir laissé passer plus de temps avec FreeBSD + qu'avec elle.</para> + </listitem> + </varlistentry> + </variablelist> + + </sect1> + </chapter> +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-shorttag: nil + sgml-always-quote-attributes: t + sgml-minimize-attributes: max + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> diff --git a/fr_FR.ISO_8859-1/books/handbook/quotas/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/quotas/chapter.sgml new file mode 100755 index 0000000000..4ace312374 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/quotas/chapter.sgml @@ -0,0 +1,284 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + + <chapter + id="quotas"> + <title>Quotas d'utilisation des disques</title> + + <para><emphasis>Contribution de &a.mpp;.<!-- <br> -->26 Février + 1996</emphasis></para> + &trans.a.haby; + + <para>Les quotas sont une option du système d'exploitation qui vous + permet de limiter la quantité d'espace disque et/ou le nombre + de fichiers auxquels ont droit un utilisateur ou tous les + utilisateurs du même groupe, sur un système de fichiers donné. + On les utilise la plupart du temps sur les systèmes en temps + partagé sur lequel il est souhaitable de limiter la quantité de + ressources allouée à un utilisateur ou à un groupe. Cela évite + qu'un seul utilisateur consomme tout l'espace disque.</para> + + + <sect1> + <title>Configurer votre système pour pouvoir utiliser les + quotas d'utilisation des disques</title> + + <para>Avant d'essayer de mettre en place des quotas disque, il faut + vous assurez que votre noyau est configuré pour cela. Pour ce faire, + vous devez ajouter la ligne suivante au fichier de configuration de + votre noyau:</para> + + <programlisting> +options QUOTA + </programlisting> + + <para>Cette option n'est pas activée par défaut dans le fichier noyau + <filename>GENERIC</filename> de base, vous devez donc configurer, + compiler et installer un noyau sur-mesure pour utiliser les quotas + disque. Reportez-vous s'il vous plaît au chapitre + <link linkend="kernelconfig">Configurer le noyau de FreeBSD</link> + pour plus d'informations sur la configuration du noyau.</para> + + <para>Vous devrez ensuite mettre en service les quotas dans votre + fichier <filename>/etc/sysconfig</filename>. Pour cela, remplacez + la ligne: + + <programlisting> +quotas=NO + </programlisting>par: + + <programlisting> +quotas=YES + </programlisting></para> + + <para>Si vous utilisez FreeBSD 2.2.2 ou ultérieur, ce fichier + de configuration s'appelle <filename>/etc/rc.conf</filename> et le + nom de la variable a été modifié en: + + <programlisting> +check_quotas=YES + </programlisting></para> + + <para>Vous devez enfin éditer le fichier + <filename>/etc/fstab</filename> pour mettre en service les quotas + système de fichiers par système de fichiers. C'est là que vous + dites si vous voulez des quotas d'utilisation des disques par + utilisateur, par groupe ou les deux, pour chaque système de + fichiers.</para> + + <para>Pour mettre en service des quotas par utilisateur, ajoutez + l'option <literal>userquota</literal> à la zone d'options de + l'entrée de <filename>/etc/fstab</filename> pour le système de + fichiers sur lequel vous voulez des quotas. Par exemple:</para> + + <programlisting> +/dev/sd1s2g /home ufs rw,userquota 1 2 + </programlisting> + + <para>De même, pour définir des quotas par groupe, utilisez l'option + <literal>groupquota</literal> au lieu du mot-clé + <literal>userquota</literal>. Pour avoir à la fois des quotas par + utilisateur et par groupe, modifiez cette entrée de la façon + suivante:</para> + + <programlisting> +/dev/sd1s2g /home ufs rw,userquota,groupquota 1 2 + </programlisting> + + <para>Par défaut, les fichiers où sont définis les quotas se trouvent + dans le répertoire racine du système de fichiers et s'appellent + <filename>quota.user</filename> et + <filename>quota.group</filename>, pour les quotas par utilisateur + et, respectivement, par groupe. Consultez + <command>man fstab</command> pour plus d'informations. Bien que les + pages de manuel disent que vous pouvez mettre ces fichiers ailleurs, + ce n'est pas recommandé parce qu'il semble que les divers utilitaires + qui gèrent les quotas ne prennent pas tous cela correctement en + compte.</para> + + <para>Vous devez maintenant redémarrer votre système avec le nouveau + noyau. La procédure <filename>/etc/rc</filename> exécutera + automatiquement les commandes nécessaires à la création des fichiers + de quotas initiaux pour tous ceux que vous avez instaurés dans + <filename>/etc/fstab</filename>, vous n'avez donc pas besoin de + créer à la main des fichiers de quotas vides.</para> + + <para>Vous ne devriez normalement pas avoir à exécuter les commandes + <command>quotacheck</command>, <command>quotaon</command>, + ou <command>quotaoff</command>. Vous pouvez cependant lire les pages + de manuel qui s'y rapportent, simplement pour savoir ce qu'elles + font.</para> + + </sect1> + + <sect1> + <title>Définir les quotas</title> + + <para>Maintenant que votre système est configuré pour mettre en place + des quotas, vérifiez que cela marche bien. Cela ce fait facilement + en exécutant:</para> + + <informalexample> + <screen>&prompt.root; <userinput>quota -v</userinput></screen> + </informalexample> + + <para>Vous devriez obtenir une ligne de résumé d'utilisation du + disque avec les quotas actuellement définis pour chaque système de + fichiers sur lesquels il y a des quotas.</para> + + <para>Vous pouvez maintenant définir ces quotas avec la commande + <command>edquota</command>.</para> + + <para>Il y a différentes option pour instaurer les quotas d'espace + disque alloués à un utilisateur ou à un groupe et le nombre de + fichiers qu'ils ont le droit de créer. Il peuvent être basés sur + l'espace disque (quotas en nombre de blocs) ou le nombre de fichiers + (quotas en nombre d'entrées dans le + répertoire - “inode”) ou les deux. Ces options + peuvent encore être subdivisées en deux catégories: limitations + strictes ou souples.</para> + + <para>Les limites strictes ne peuvent jamais être dépassées. Dès qu'un + utilisateur atteint sa limite stricte, il ne peut plus rien allouer + sur le système de fichiers en question. Si par exemple, il n'a + droit qu'à 500 blocs sur un système de fichiers et en utilise déjà + 490, il ne peut plus en allouer que 10. S'il voulait en allouer 11, + il n'y arriverait pas.</para> + + <para>Les limites souples peuvent elles être dépassées pour une période + de temps restreinte. C'est ce que l'on appelle le délai de grâce, qui + est d'une semaine par défaut. Si un utilisateur dépasse sa limite + souple au delà du délai de grâce, cette limite devient stricte, et + il ne peut plus rien allouer. Lorsqu'il redescend en dessous de + la limite stricte, le délai de grâce lui est réaccordé.</para> + + <para>Voici un exemple de ce que vous pouvez voir en utilisant + la commande <command>edquota</command>. Quand vous invoquez la + commande <command>edquota</command>, vous vous retrouvez sous + l'éditeur défini par la variable d'environnement + <envar>EDITOR</envar>, ou sous <command>vi</command> + si la variable d'environnement <envar>EDITOR</envar> n'est pas + positionnée, ce qui vous permet d'éditer les quotas.</para> + + <informalexample> + <screen>&prompt.root; <userinput>edquota -u test</userinput></screen> + </informalexample> + + <programlisting> +Quotas for user test: +/usr: blocks in use: 65, limits (soft = 50, hard = 75) + inodes in use: 7, limits (soft = 50, hard = 60) +/usr/var: blocks in use: 0, limits (soft = 50, hard = 75) + inodes in use: 0, limits (soft = 50, hard = 60) + </programlisting> + + <para>Il y aura normalement deux lignes pour chaque système de fichiers + sur lequel il y a des quotas: une pour les quotas de blocs, l'autre + pour les quotas d'entrées de répertoire. Modifiez simplement les + valeurs que vous voulez mettre à jour. Par exemple, pour augmenter + la limite de blocs accordée à cet utilisateur de 50 pour la limite + souple et 75 pour la limite stricte à 500 pour la limite souple et + 600 pour la limite stricte, modifiez: + + <programlisting> +/usr: blocks in use: 65, limits (soft = 50, hard = 75) + </programlisting> en: + + <programlisting> +/usr: blocks in use: 65, limits (soft = 500, hard = 600) + </programlisting></para> + + <para>Ces nouveaux quotas seront en service dès que vous quitterez + l'éditeur.</para> + + <para>Il est parfois souhaitable de définir des quotas pour une plage + d'UIDs (identifiants utilisateur). Cela peut être réalisé par + l'option <option>-p</option> de la commande + <command>edquota</command>. Définissez d'abord les quotas voulus pour + un seul utilisateur, puis exécutez <command>edquota -p + utilisateur_prototype premier_uid-dernier_uid</command>. + Par exemple, si les quotas voulus sont ceux de l'utilisateur + <username>test</username>, la commande qui suit applique les + mêmes quotas aux “uids” de 10.000 à 19.999:</para> + + <informalexample> + <screen>&prompt.root; <userinput>edquota -p test 10000-19999</userinput></screen> + </informalexample> + + <para>Cette possibilité de définir des quotas pour une plage + d'“uids” a été ajoutée après la version 2.1. Si + vous voulez en bénéficiez sur un système 2.1, vous devez + récupérer un version plus récente de + <command>edquota</command>.</para> + + <para>Voyez <command>man edquota</command> pour des informations plus + détaillées.</para> + + </sect1> + + <sect1> + <title>Consulter les quotas et l'utilisation des disques</title> + + <para>Vous pouvez utiliser l'une des commandes + <command>quota</command> ou <command>repquota</command> pour + consulter les quotas et l'utilisation des disques. + La commande <command>quota</command> peut être employée pour + connaître les quotas et l'utilisation des disques pour un + utilisateur et un groupe. Seul le super-utilisateur peut + consulter les quotas et l'usage des disques des autres + utilisateurs ou d'un groupe auquel il n'appartient pas. + La commande <command>repquota</command> permet d'avoir un + résumé des quotas et de l'utilisation des disques pour les + systèmes des fichiers sur lesquels il y a des quotas.</para> + + <para>Voici un exemple de résultat obtenu avec la commande + <command>quota -v</command> pour un utilisateur pour lequel on + a défini des quotas sur deux systèmes de fichiers.</para> + + + <programlisting> +Disk quotas for user test (uid 1002): + Filesystem blocks quota limit grace files quota limit grace + /usr 65* 50 75 5days 7 50 60 + /usr/var 0 50 75 0 50 60 + </programlisting> + + <para>Dans cet exemple, l'utilisateur occupe 15 blocs de plus que la + limite de 50 blocs qui lui est allouée sur le système de fichiers + <filename>/usr</filename> et dispose d'un délai de grâce de 5 jours. + Remarquez l'astérisque <literal>*</literal> qui indique que la limite + est dépassée.</para> + + <para>Les systèmes de fichiers sur lequel l'utilisateur n'occupe pas + de place n'apparaissent normalement pas dans les sorties de la + commande <command>quota</command>, même s'il a des quotas + sur ces systèmes de fichiers. L'option <option>-v</option> elle + les liste, comme <filename>/usr/var</filename> dans l'exemple + ci-dessus.</para> + + </sect1> + + <sect1> + <title>* Quotas avec NFS</title> + + <para>Cette section est encore en cours de rédaction.</para> + + </sect1> + </chapter> +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-shorttag: nil + sgml-always-quote-attributes: t + sgml-minimize-attributes: max + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> diff --git a/fr_FR.ISO_8859-1/books/handbook/security/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/security/chapter.sgml new file mode 100755 index 0000000000..3198d08340 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/security/chapter.sgml @@ -0,0 +1,1894 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + + <chapter> + <title>Sécurité</title> + &trans.a.haby; + + <sect1 id="crypt"> + <title>DES, MD5, et Crypt</title> + + <para><emphasis>Contribution de &a.wollman;<!-- <br> -->24 Septembre + 1995.</emphasis></para> + + <para>Pour éviter que les mots de passe ne soient facilement accessibles + sur les systèmes UN*X, ils ont traditionnellement été brouillés + d'une façon ou d'une autre. Depuis la Septième Edition d'Unix de + Bell Labs', les mots de passe ont été codés avec ce que les + spécialistes de la sécurité appellent + “un hachage irréversible”. Ce qui signifie que le mot de + passe est transformé de telle sorte qu'une fois encodé, il ne puisse + être décodé, sinon par la force, en parcourant l'éventail de toutes + les possibilités. Malheureusement, la seule méthode accessible aux + chercheurs d'AT&T était basée sur DES, le “Data Encryption + Standard” (standard de cryptage des données). C'est un problème + mineur pour les distributeurs de logiciels commerciaux, mais un + obstacle sérieux pour un système d'exploitation comme FreeBSD, dont + tout le code source est accessible librement, parce que, dans de + nombreux pays, l'exportation de DES et d'autres logiciels de + cryptage est restreinte.</para> + + <para>L'équipe de développement de FreeBSD s'est donc retrouvée face + au dilemme suivant: comment rester compatible avec les autres + systèmes Unix sans enfreindre la législation. Nous avons donc + décidé d'une double approche: avoir une distribution qui ne + comporte que du logiciel de hachage des mots de passe non restreint + à l'exportation, et fournir une bibliothèque séparée pour le DES. + L'algorithme de codage a été extrait de la bibliothèque C et + déplacé dans une bibliothèque séparée appelée + <filename>libcrypt</filename>, du nom de la fonction C + <function>crypt</function> qui l'implémente. Dans FreeBSD 1.x + et quelques instantanés de pré-versions 2.0, l'algorithme librement + exportable utilise une fonction non sécurisée due à Nate Williams; + dans les versions ultérieures, il a été remplacé par la fonction + de hachage irréversible MD5 de RSA Data Security, Inc. Comme aucune + de ces fonctions n'utilise de technique de cryptage, elles sont + supposées librement exportables des Etats-Unis et importables dans + de nombreux autres pays.</para> + + <para>Dans le même temps, nous avons aussi travaillé sur une fonction + basée sur le cryptage DES. Tout d'abord, une version de la fonction + <function>crypt</function> écrite en dehors des Etats-Unis a été + importée, pour synchroniser le code américain et celui du reste du + monde. Puis la bibliothèque a été modifiée et coupée en deux; la + bibliothèque <filename>libcrypt</filename> DES ne contient que le + code de hachage irréversible des mots de passe, et une deuxième + bibliothèque <filename>libcipher</filename> contient les points + d'entrée vers le code effectuant le cryptage. Le code a + été découpé de cette façon pour obtenir plus facilement la licence + d'exportation pour la bibliothèque compilée.</para> + + <sect2> + <title>Identifier votre mécanisme <command>crypt</command></title> + + <para>Il est assez facile de savoir si un mot de passe a été codé + avec un algorithme basé sur DES ou sur MD5. Les mots de passe MD5 + commencent toujours par les caractères + <literal>$1$</literal>. + Les mots de passe DES n'ont pas de caractéristique particulière, + mais sont plus courts que les mots de passe MD5 et utilisent un + alphabet de 64 caractères qui ne contient pas le caractère + <literal>$</literal>, une chaîne relativement courte qui ne + commence pas par un “<literal>$</literal>” a donc + de très fortes chances d'être un mot de passe DES.</para> + + <para>Savoir quelle bibliothèque est utilisée sur votre système est + aussi facile pour la plupart des programmes, sauf pour ceux qui, + comme <command>init</command> sont liés statiquement. (Pour ces + programmes, il n'y a qu'un moyen: les utiliser avec un mot de passe + connu et voir si cela marche.) Les programmes qui utilisent la + fonction <function>crypt</function> sont liés avec la bibliothèque + <filename>libcrypt</filename>, qui pour chaque type de codage, + est un lien symbolique vers l'implémentation adéquate. Par exemple, + sur un système utilisant la version DES:</para> + + + <informalexample> + <screen>&prompt.user;<userinput> cd /usr/lib</userinput> +&prompt.user; <userinput>ls -l /usr/lib/libcrypt*</userinput> +lrwxr-xr-x 1 bin bin 13 Sep 5 12:50 libcrypt.a -> libdescrypt.a +lrwxr-xr-x 1 bin bin 18 Sep 5 12:50 libcrypt.so.2.0 -> libdescrypt.so.2.0 +lrwxr-xr-x 1 bin bin 15 Sep 5 12:50 libcrypt_p.a -> libdescrypt_p.a</screen> + </informalexample> + + + <para>Sur un système utilisant les biblothèques basées sur le MD5, + on trouvera les mêmes liens, mais ils pointeront sur + <filename>libscrypt</filename> au lieu de + <filename>libdescrypt</filename>.</para> + + </sect2> + </sect1> + + <sect1 id="skey"> + <title>S/Key</title> + + <para><emphasis>Contribution de &a.wollman;<!-- <br> -->25 Septembre + 1995.</emphasis></para> + + <para>S/Key est un système de mots de passe non réutilisables basé sur + une fonction de hachage irréversible (notre version est basée sur + MD4 pour des raisons de compatibilité; d'autres versions utilisent + MD5 et DES-MAC). S/Key est inclus en standard dans toutes les + distributions de FreeBSD depuis la version 1.1.5, et est aussi + implémenté sur un nombre toujours plus important d'autres systèmes. + S/Key est une marque déposée de Bell Communications Research, + Inc.</para> + + <para>Il y a trois types de mots de passe différents dont nous + parlerons dans ce qui suit. Le premier est votre mot de passe + Unix habituel ou un mot de passe Kerberos; nous l'appelerons + “mot de passe Unix”. Le second est le mot de passe + non réutilisable généré par le programme S/Key + <command>key</command> et reconnu par le programme + <command>keyinit</command> et l'invite de session; nous + l'appelerons “mot de passe non réutilisable”. Le dernier + type de mot de passe est le mot de passe secret que vous donnez au + programme <command>key</command> (et parfois au programme + <command>keyinit</command>) qui l'utilise pour générer des mots de + passe non-réutilisables; nous l'appelerons + “mot de passe secret” ou simplement + “mot de passe”.</para> + + <para>Le mot de passe secret n'a rien à voir avec votre mot de passe + Unix (ils peuvent être identiques, mais c'est déconseillé). Les + mots de passe Unix sont limités à huit caractères, alors que les + mots de passe secrets S/Key ont la longueur que vous voulez; j'utilise + des phrases de sept mots. En général, le système S/Key fonctionne + sans liaison avec le système de mots de passe Unix.</para> + +<para>Il y a en outre deux autres types de données utilisés par le + système S/Key; l'un s'appelle “grain de sel” + <footnote><para>N.d.T.: “seed” dans l'original en + langue anglaise. “salt” est aussi parfois utilisé + pour désigner le préfixe utilisé pour perturber un + algorithme de hachage. + Voir <citerefentry><refentrytitle>crypt</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para></footnote> + ou (cela prête à + confusion) “clé” et est un mot de deux lettres et cinq + chiffres, et l'autre est le “compteur d'itérations” + compris entre 100 et 1. S/Key génère un mot de passe non réutilisable + en concaténant le “grain de sel” et le mot de passe + secret, en lui appliquant + la fonction de hachage irréversible (la fonction sécurisée MD4 de + RSA Data Security, Inc.) autant de fois qu'indiqué par le compteur + d'itérations, et en convertissant le résultat en six courts mots + anglais. Les programmes <command>login</command> et + <command>su</command> enregistrent le dernier mot de passe non + réutilisable employé, et l'utilisateur est authentifié si la valeur + de hachage de son mot de passe est la même que celle de celui + qu'il a utilisé auparavant. Comme le hachage utilisé est irréversible, + il n'est pas possible de générer de mot de passe non réutilisable + si l'on a surpris un de ceux qui a été utilisé avec + succès; le compteur + est décrémenté après chaque ouverture de session réussie, de sorte que + l'utilisateur et le programme d'initialisation de session restent en phase. + (Quand ce compteur passe à 1, il est temps de réinitialiser + S/Key.)</para> + +<para>Il y a quatre programmes du système S/Key dont nous traiterons plus bas. + Le programme <command>key</command> a comme paramètres un compteur + d'itérations, un “grain de sel” et un mot de passe + secret et génère un mot + de passe non réutilisable. Le programme <command>keyinit</command> + initialise S/Key et sert à modifier les mots de passe, les compteurs + d'itérations et les “grains de sel”; Ses paramètres sont + soit un mot de passe + secret, soit un compteur d'itérations, soit un + “grain de sel”, et un mot de + passe non réutilisable. Le programme <command>keyinfo</command> + consulte le fichier <filename>/etc/skeykeys</filename> et imprime + la valeur du compteur d'itérations et le “grain de sel” + de l'utilisateur qui + l'a invoqué. Enfin, les programmes <command>login</command> et + <command>su</command> incorporent la logique nécessaire pour + reconnaître les mots de passe non réutilisables S/Key pour + authentifier les utilisateurs. Le programme <command>login</command> + est aussi capable d'interdire l'utilisation de mots de passe Unix + en fonction de l'adresse d'origine de la connexion.</para> + +<para>Nous décrirons quatre sortes d'opérations. La première est + l'utilisation du programme <command>keyinit</command> sur une + connexion sécurisée pour initialiser S/Key, ou pour modifier votre + mot de passe ou votre “grain de sel”. La seconde est + l'emploi du programme + <command>keyinit</command> sur une connexion non sécurisée, en même + temps que du programme <command>key</command> sur une connexion + sécurisée, pour faire la même chose. La troisième est l'utilisation + du programme <command>key</command> pour ouvrir une session sur une + connexion non sécurisée. La quatrième est l'usage du programme + <command>key</command> pour générer un certain nombre de clés qui + peuvent être notées ou imprimées et emportées avec vous quand vous allez + quelque part ou il n'y a aucune connexion sécurisée (comme dans + une conférence).</para> + + +<sect2> + <title>Initialisation depuis une connexion sécurisée</title> + + <para>Pour initialiser S/Key, changer votre mot de passe ou changer + votre “grain de sel” quand vous êtes en session, sous + votre compte, sur une + connexion sécurisée (e.g., sur la console d'une machine), utilisez + la commande <command>keyinit</command> sans paramètres:</para> + + + <informalexample> + <screen>&prompt.user; keyinit +Updating wollman: ) ceci n'apparaît pas si vous +Old key: ha73895 ) n'avez pas déjà utilisé S/Key +Reminder - Only use this method if you are directly connected. +If you are using telnet or rlogin exit with no password and use keyinit -s. +(Rappel - N'employez cette méthode que si vous êtes directement connecté. +Si vous utilisez telnet ou rlogin, quittez sans donner de mot de passe +et utilisez keyinit -s) +<prompt>Enter secret password:</prompt> ) j'ai tapé ma phrase clé ici +<prompt>Again secret password:</prompt> ) je l'ai retapée + +ID wollman s/key is 99 ha73896 ) voir ci-dessous +SAG HAS FONT GOUT FATE BOOM )</screen> + </informalexample> + + + <para>Il y a beaucoup de choses là-dedans. A l'invite + <prompt>Enter secret password:</prompt>, vous devez entrer un + mot de passe ou une phrase (j'utilise des phrases d'au moins + sept mots) qui servira à générer les mots de passe pour vos + sessions. La ligne qui commence par “ID” vous + liste vos paramètres S/Key: votre nom d'utilisateur, la valeur + de votre compteur d'itérations et votre + “grain de sel”. Quand vous ouvrirez + une session avec S/Key, le système aura mémorisé ces valeurs et + vous les redonnera, vous n'avez donc pas besoin de les retenir. + La dernière ligne vous donne le mot de passe non réutilisable + correspondant à ces paramètres et à votre mot de passe secret; + si vous deviez vous reconnectez immédiatement, c'est ce mot de + passe que vous utiliseriez.</para> + +</sect2> + +<sect2> + <title>Initialisation depuis une connexion non sécurisée</title> + + <para>Pour initialiser S/Key, changer votre mot de passe ou changer + votre “grain de sel” quand vous êtes en session + sur une connexion non + sécurisée, il vous faudra déjà avoir une connexion sécurisée + sur une machine où vous pouvez utiliser le programme + <command>key</command>; ce peut être depuis un accessoire de + bureau sur un Macintosh ou depuis la ligne de commande d'une + machine sûre (notre exemple illustre ce dernier + cas). Il vous + faudra donner une valeur au compteur d'itérations et indiquer + un “grain de sel” ou utiliser la valeur aléatoire + générée par le programme. + Sur la connexion non sécurisée (à la machine que vous initialisez), + employez la commande <command>keyinit -s</command>:</para> + + + <informalexample> + <screen>&prompt.user; <userinput>keyinit -s</userinput> +Updating wollman: Old key: kh94741 +Reminder you need the 6 English words from the skey command. +(Rappel - Il vous faut les 6 mots Anglais fournis par la commande skey.) +<prompt>Enter sequence count from 1 to 9999:</prompt> <userinput>100</userinput> ) j'ai tapé cela +<prompt>Enter new key [default kh94742]:</prompt> +s/key 100 kh94742</screen> + </informalexample> + + + <para>Pour utiliser le “grain de sel” par défaut, + (que le programme <command>keyinit</command> appelle une + “clé” - <literal>key</literal>, ce qui prête + à confusion), appuyez sur Entrée. Passez ensuite sur votre connexion + sécurisée ou sur l'accessoire de bureau S/Key et donnez lui les + mêmes paramètres:</para> + + <informalexample> + <screen>&prompt.user; <userinput>key 100 kh94742</userinput> +Reminder - Do not use this program while logged in via telnet or rlogin. +(Rappel - N'utilisez pas ce programme avec une session telnet ou rlogin.) +<prompt>Enter secret password:</prompt> ) j'ai tapé mon mot de passe +secret +HULL NAY YANG TREE TOUT VETO</screen> + </informalexample> + + + <para>Retournez alors sur votre connexion non sécurisée, et donnez le + mot de passe non réutilisable généré par la programme + <command>key</command> au programme + <command>keyinit</command>:</para> + + + <informalexample> + <screen><prompt>s/key access password:</prompt> <userinput>HULL NAY YANG TREE TOUT VETO</userinput> +ID wollman s/key is 100 kh94742 +HULL NAY YANG TREE TOUT VETO</screen> + </informalexample> + + + <para>Le reste de la description du paragraphe précédent s'applique + aussi ici.</para> + +</sect2> + +<sect2> + <title>Diversion: une invite de session</title> + + <para>Avant d'expliquer comment générer les mots de passe non + réutilisables, nous allons examiner une invite de session + S/Key:</para> + + <informalexample> + <screen>&prompt.user; <userinput>telnet himalia</userinput> +Trying 18.26.0.186... +Connected to himalia.lcs.mit.edu. +Escape character is '^]'. +s/key 92 hi52030 +<prompt>Password:</prompt></screen> + </informalexample> + + + <para>Remarquez qu'avant de nous demander un mot de passe, le + programme d'initialisation de la session nous affiche le nombre + d'itérations et le grain de sel dont nous aurons besoin pour + générer la clé appropriée. Vous découvrirez aussi une possibilité + intéressante (qui n'est pas illustrée ici); si vous tapez Entrée + quand on vous demande votre mot de passe, le programme active + l'écho au terminal, de sorte que vous voyez ce que vous tapez. + C'est très utile si vous essayez de taper une S/Key à la main, + à partir d'un résultat imprimé, par exemple.</para> + + <para>Si cette machine avait été configurée pour interdire l'emploi + de mots de passe Unix depuis ma machine, l'annotation + <literal>(s/key required)</literal> - “(s/key obligatoire)” + aurait aussi figuré, précisant que seul un mot de passe S/Key non + réutilisable serait accepté.</para> + +</sect2> + +<sect2> + <title>Générer un unique mot de passe non réutilisable</title> + + <para>Pour générer le mot de passe non réutilisable dont nous + avons besoin pour ouvrir la session, nous utilisons une + machine sûre et le programme <command>key</command>. + (Il y a des versions du programme <command>key</command> pour DOS + et Windows, et il y a aussi un accessoire de bureau pour + Macintosh.) La version en ligne de commande du programme + <command>key</command> a pour paramètres le compteur d'itérations + et le “grain de sel”; vous pouvez les couper-coller + de l'invite de session, en commençant à + <literal>key</literal> jusqu'à la fin de la ligne. Donc:</para> + + + <informalexample> + <screen>&prompt.user; <userinput>key 92 hi52030</userinput> ) collé du programme précédent +Reminder - Do not use this program while logged in via telnet or rlogin. +(Rappel - N'utilisez pas ce programme avec une session telnet ou rlogin.) +<prompt>Enter secret password:</prompt> ) j'ai tapé mon mot de passe secret +ADEN BED WOLF HAW HOT STUN</screen> + </informalexample> + + + <para>et dans l'autre fenêtre:</para> + + + <informalexample> + <screen>s/key 92 hi52030 ) de la section précédente +<prompt>Password:</prompt> +(turning echo on) +<prompt>Password:</prompt>ADEN BED WOLF HAW HOT STUN +Last login: Wed Jun 28 15:31:00 from halloran-eldar.l +[etc.]</screen> + </informalexample> + + + <para>C'est la méthode la plus simple <emphasis>si</emphasis> vous + avez une machine sûre . Il y a une appliquette Java + <ulink url="http://www.cs.umd.edu/~harry/jotp/src.html">The Java OTP + Calculator</ulink>, que vous pouvez télécharger et exécuter sous + n'importe quel navigateur supportant Java.</para> + +</sect2> + +<sect2> + <title>Générer de multiples mots de passe non réutilisables</title> + + <para>Il vous faut parfois aller en des endroits où vous n'avez pas + de connexion sécurisée disponible. Dans ce cas, vous pouvez + utiliser la commande <command>key</command> pour générer en une + seule fois plusieurs mots de passe non réutilisables; vous pouvez + imprimer ces derniers. Par exemple:</para> + + <informalexample> + <screen>&prompt.user; <userinput>key -n 25 57 zz99999</userinput> +Reminder - Do not use this program while logged in via telnet or rlogin. +(Rappel - N'utilisez pas ce programme avec une session telnet ou rlogin.) +<prompt>Enter secret password:</prompt> +33: WALT THY MALI DARN NIT HEAD +34: ASK RICE BEAU GINA DOUR STAG +... +56: AMOS BOWL LUG FAT CAIN INCH +57: GROW HAYS TUN DISH CAR BALM</screen> + </informalexample> + + + <para>L'option <option>-n 25</option> demande vingt-cinq clés en + séquence; l'option <option>57</option> indique le rang de la + <emphasis>dernière</emphasis> itération; le reste a été décrit + plus haut. Notez que les clés sont imprimées dans l'ordre inverse + de celui où elles seront éventuellement utilisées. Si vous êtes + vraiment paranoïde, vous pouvez les recopier à la main, sinon + vous pouvez les couper-coller vers la commande + <command>lpr</command>. Remarquez que chaque ligne liste et le + nombre d'itérations et le mot de passe non réutilisable; vous + trouverez cependant probablement pratique de rayer les mots de + passe au fur et à mesure de leur utilisation.</para> + +</sect2> + +<sect2> + <title>Restreindre l'utilisation des mots de passe Unix</title> + + <para>Le fichier de configuration + <filename>/etc/skey.access</filename> peut servir à définir des + restrictions d'utilisation des mots de passe Unix en fonction des + noms de machine et d'utilisateur, de la ligne utilisée par le + terminal ou de l'adresse IP de la machine connectée à distance. Le + format détaillé de ce fichier est décrit dans la page de manuel de + <citerefentry><refentrytitle>skey.access</refentrytitle><manvolnum>5</manvolnum></citerefentry>; + elle inclut aussi des avertissements relatifs à la sécurité qu'il + faut lire avant de se fier à ce fichier pour sa sécurité.</para> + + <para>S'il n'y a pas de fichier <filename>/etc/skey.access</filename> + (ce qui est le cas par défaut avec la distribution de FreeBSD), + tous les utilisateurs pourront se servir de mots de passe Unix. + Si le fichier existe, alors tous les utilisateurs devront passer + par S/Key, à moins qu'ils ne soient explicitement autorisés à ne + pas le faire par des instructions du fichier + <filename>skey.access</filename>. Dans tous les cas, l'usage + de mots de passe Unix est autorisé sur la console système.</para> + + <para>Voici un exemple de fichier de configuration qui illustre + les trois types d'instructions les plus courants:</para> + + <programlisting> +permit internet 18.26.0.0 255.255.0.0 +permit user jrl +permit port ttyd0 + </programlisting> + + <para>La première ligne (<literal>permit + internet</literal>) autorise les utilisateurs dont les adresses + IP (ce qui rend vulnérable en cas d'usurpation) appartiennent + au sous-réseau spécifié à employer des mots de passe Unix. Il ne + faut pas considérer cela comme une mesure de sécurité, mais plutôt + comme un moyen de rappeler aux utilisateurs qu'ils sont sur un + réseau non sécurisé et qu'ils doivent utiliser S/Key pour + s'authentifier.</para> + + <para>La seconde ligne (<literal>permit user</literal>) + autorise l'utilisateur désigné à employer n'importe quand des + mots de passe Unix. En général, il faut se servir de cette + possibilité si les gens soit n'ont pas moyen d'utiliser + le programme <command>key</command>, s'ils ont par exemple des + terminaux passifs, soit s'ils sont définitivement réfractaires.</para> + + <para>La troisième ligne (<literal>permit port</literal>) + autorise tous les utilisateurs d'un terminal sur une liaison particulière + à utiliser des mots de passe Unix. On emploie cela pour les connexions + téléphoniques.</para> + + </sect2> + </sect1> + + <sect1 id="kerberos"> + <title>Kerberos</title> + + <para><emphasis>Contribution de &a.markm; (sur la base d'une + contribution de &a.md;).</emphasis></para> + + <para>Kerberos est un protocole réseau supplémentaire qui permet + aux utilisateurs de s'authentifier en passant par l'intermédiaire + d'un serveur sécurisé. Des services comme l'ouverture de session + et la copie à distance, la copie sécurisée de fichiers entre systèmes + et autres fonctionnalités à haut risque deviennent ainsi + considérablement plus sûrs et contrôlables.</para> + + <para>Les instructions qui suivent peuvent être utilisées comme + guide d'installation de Kerberos dans la version distribuée + pour FreeBSD. Vous devriez cependant vous référer aux pages + de manuel correspondantes pour avoir une description complète.</para> + + <para>La distribution Kerberos de FreeBSD n'est pas la distribution + originale de 4.4BSD-Lite, mais eBones, qui avait été + auparavant portée sous FreeBSD 1.1.5.1, et dont les sources ne + proviennent pas des Etats-Unis/Canada, ce qui la rend disponible aux + utilisateurs d'autres pays.</para> + + <para>Pour ces derniers, qui ont besoin d'une distribution légale + de ce logiciel, s'il vous plait, <emphasis>ne vous la procurez + pas</emphasis> depuis un site aux Etats-Unis ou au Canada. Vous + lui causeriez de <emphasis>graves</emphasis> problèmes. Il y a + une copie légale sur + <hostid role="fqdn">skeleton.mikom.csir.co.za</hostid>, qui se + situe en Afrique du Sud.</para> + + + <sect2> + <title>Créer la base de données initiale</title> + + <para>Il faut faire cela uniquement sur le serveur Kerberos. Vérifiez + d'abord qu'il ne traîne pas d'anciennes bases Kerberos. Allez + dans le répertoire <filename>/etc/kerberosIV</filename> et + assurez-vous qu'il ne contient que les fichiers suivants:</para> + + + <informalexample> + <screen>&prompt.root; <userinput>cd /etc/kerberosIV</userinput> +&prompt.root; <userinput>ls</userinput> +README krb.conf krb.realms</screen> + </informalexample> + + + <para>S'il y a d'autres fichiers (comme + <filename>principal.*</filename> ou <symbol>master_key</symbol>), + utilisez la commande <symbol>kdb_destroy</symbol> pour supprimer + l'ancienne base de données Kerberos, ou si Kerberos ne tourne pas, + effacez simplement les fichiers excédentaires avec + <command>rm</command>.</para> + + <para>Vous devez maintenant éditer les fichiers + <filename>krb.conf</filename> et + <filename>krb.realms</filename> pour définir votre domaine + (“realm”) + Kerberos. Pour notre exemple, le domaine sera + <filename>GRONDAR.ZA</filename> et le serveur + <filename>grunt.grondar.za</filename>. Nous éditons ou créons alors + le fichier <filename>krb.conf</filename>:</para> + + <informalexample> + <screen>&prompt.root; <userinput>cat krb.conf</userinput> +GRONDAR.ZA +GRONDAR.ZA grunt.grondar.za admin server +CS.BERKELEY.EDU okeeffe.berkeley.edu +ATHENA.MIT.EDU kerberos.mit.edu +ATHENA.MIT.EDU kerberos-1.mit.edu +ATHENA.MIT.EDU kerberos-2.mit.edu +ATHENA.MIT.EDU kerberos-3.mit.edu +LCS.MIT.EDU kerberos.lcs.mit.edu +TELECOM.MIT.EDU bitsy.mit.edu +ARC.NASA.GOV trident.arc.nasa.gov</screen> + </informalexample> + + <para>Les autres domaines n'ont pas besoin d'être mentionnés. Ils + ne sont là que pour montrer comment une machine peut avoir + connaissance de plusieurs domaines. Pour plus de simplicité, + vous pouvez ne pas les inclure.</para> + + <para>La première ligne indique pour quel domaine cette machine + agit. Les autres lignes définissent les autres + domaines/machines. Chaque ligne comporte d'abord le nom du + domaine, puis le nom de la machine qui est le “centre + de distribution” de ce domaine. Les mots + <literal>admin server</literal> qui suivent signifient que + cette machine est aussi serveur d'administration de la + base de données. Pour plus d'explication sur cette + terminologie, consultez les pages de manuel de Kerberos.</para> + + <para>Il faut maintenant ajouter + <hostid role="fqdn">grunt.grondar.za</hostid> + au domaine <filename>GRONDAR.ZA</filename> et ajouter une entrée + pour mettre toutes les machines du domaine DNS + <hostid role="domainname">.grondar.za</hostid> dans + le domaine Kerberos <filename>GRONDAR.ZA</filename>. Le fichier + <filename>krb.realms</filename> aura alors l'allure + suivante:</para> + + <informalexample> + <screen>&prompt.root; <userinput>cat krb.realms</userinput> +grunt.grondar.za GRONDAR.ZA +.grondar.za GRONDAR.ZA +.berkeley.edu CS.BERKELEY.EDU +.MIT.EDU ATHENA.MIT.EDU +.mit.edu ATHENA.MIT.EDU</screen> + </informalexample> + + <para>Encore une fois, les autres domaines n'ont pas besoin + d'être mentionnés. Ils ne sont là que pour montrer comment + une machine peut avoir connaissance de plusieurs + domaines. Pour plus de simplicité, vous pouvez ne pas les + inclure.</para> + + <para>La première ligne assigne un système + <emphasis>particulier</emphasis> au domaine désigné. + Les autres lignes montrent comment affecter par défaut + les systèmes d'un sous-domaine DNS à un domaine Kerberos + donné.</para> + + <para>Nous pouvons maintenant créer le base de données. Il n'y a à + le faire que sur le serveur Kerberos (ou Centre de Distribution + de Clés). Cela se fait avec la command + <command>kdb_init</command>:</para> + + <informalexample> + <screen>&prompt.root; <userinput>kdb_init</userinput> +<prompt>Realm name [default ATHENA.MIT.EDU ]:</prompt> <userinput>GRONDAR.ZA</userinput> +You will be prompted for the database Master Password. +It is important that you NOT FORGET this password. +(On vous demandera le Mot de Passe Maître de la base de données.) +(Il est important de NE PAS PERDRE ce mot de passe.) + +<prompt>Enter Kerberos master key:</prompt> </screen> + </informalexample> + + <para>Nous devons maintenant sauvegarder la clé pour que les serveurs + sur la machine locale puisse la lire, avec la commande + <command>kstash</command>:</para> + + <informalexample> + <screen>&prompt.root; <userinput>kstash</userinput> + +<prompt>Enter Kerberos master key:</prompt> + +Current Kerberos master key version is 1. + +Master key entered. BEWARE! +(Clé maître saisie. ATTENTION!)</screen> + </informalexample> + + <para>Le mot de passe maître encrypté est enregistré dans + le fichier <filename>/etc/kerberosIV/master_key</filename>.</para> + + </sect2> + + <sect2> + <title>Installer les services</title> + + <para>Il faut ajouter deux entrées (“principals” + <footnote><para>N.d.T.: L'“Introduction à Kerberos 5” + du NCSA - <ulink url="http://www.ncsa.uuic.edu/General/CC/ACES/kerberos/introduction.html">http://www.ncsa.uuic.edu/General/CC/ACES/kerberos/introduction.html</ulink> + explicite cette notion: “Toute entité à laquelle il faut + s'authentifier ou qui doit s'authentifier est un + <foreignphrase>principal</foreignphrase> Kerberos ... + chaque principal a un mot de passe secret qui n'est connu + que de lui-même et du Centre de Distribution de Clés. Chaque + <foreignphrase>principal</foreignphrase> a un nom ... de la + forme + <emphasis>primaire/instance@domaine</emphasis>.”</para></footnote>) + + à la base de données pour <emphasis>chaque</emphasis> système + qui sera sécurisé par Kerberos. Ce sont <literal>kpasswd</literal> + et <literal>rcmd</literal>. Ces deux entrées sont définies pour + chaque système. A chacune de leurs instances est attribuée le nom + du système.</para> + + <para>Ces “démons”, <command>kpasswd</command> et + <command>rcmd</command> permettent aux systèmes de changer + les mots de passe Kerberos et d'exécuter des commandes comme + <command>rcp</command>, <command>rlogin</command> + et <command>rsh</command>.</para> + + <para>Ajoutons donc maintenant ces entrées:</para> + + + <informalexample> + <screen>&prompt.root; <userinput>kdb_edit</userinput> +Opening database... + +<prompt>Enter Kerberos master key:</prompt> + +Current Kerberos master key version is 1. + +Master key entered. BEWARE! +Previous or default values are in [brackets] , +enter return to leave the same, or new value. + +<prompt>Principal name:</prompt> <userinput>passwd</userinput> +<prompt>Instance:</prompt> <userinput>grunt</userinput> + +<Not found>, <prompt>Create [y] ?</prompt> <userinput>y</userinput> + +Principal: passwd, Instance: grunt, kdc_key_ver: 1 +<prompt>New Password:</prompt> <---- entrez RANDOM ici +Verifying password + +<prompt>New Password:</prompt> <---- entrez RANDOM ici + +<prompt>Random password [y] ?</prompt> <userinput>y</userinput> + +Principal's new key version = 1 +<prompt>Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?</prompt> +<prompt>Max ticket lifetime (*5 minutes) [ 255 ] ?</prompt> +<prompt>Attributes [ 0 ] ?</prompt> +Edit O.K. +<prompt>Principal name:</prompt> <userinput>rcmd</userinput> +<prompt>Instance:</prompt> <userinput>grunt</userinput> + +<Not found>, <prompt>Create [y] ?</prompt> + +Principal: rcmd, Instance: grunt, kdc_key_ver: 1 +<prompt>New Password:</prompt> <---- entrez RANDOM ici +Verifying password + +<prompt>New Password:</prompt> <---- entrez RANDOM ici + +<prompt>Random password [y] ?</prompt> + +Principal's new key version = 1 +<prompt>Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?</prompt> +<prompt>Max ticket lifetime (*5 minutes) [ 255 ] ?</prompt> +<prompt>Attributes [ 0 ] ?</prompt> +Edit O.K. +<prompt>Principal name:</prompt> <---- ne rien entrez ici + permet de quitter le programme</screen> + </informalexample> + + + </sect2> + + <sect2> + <title>Créer le fichier des services</title> + + <para>Il faut maintenant extraire toutes les instances qui définissent + les services sur chaque machine. Cela se fait avec la commande + <command>ext_srvtab</command>. Elle crée un fichier qui doit être + copié ou reporté <emphasis>par un moyen sûr</emphasis> dans le + répertoire <filename>/etc/kerberosIV</filename> de chaque client + Kerberos. Ce fichier doit exister sur tous les serveurs et tous + les clients et est crucial au bon fonctionnement de + Kerberos.</para> + + <informalexample> + <screen>&prompt.root; <userinput>ext_srvtab grunt</userinput> +<prompt>Enter Kerberos master key:</prompt> + +Current Kerberos master key version is 1. + +Master key entered. BEWARE! +Generating 'grunt-new-srvtab'....</screen> + </informalexample> + + <para>Cette commande ne génère qu'un fichier temporaire qui doit être + renommé en <filename>srvtab</filename> pour que tous les serveurs + puissent y accéder. Utilisez la commande <command>mv</command> + pour l'installer sur le système d'origine:</para> + + <informalexample> + <screen>&prompt.root; <userinput>mv grunt-new-srvtab srvtab</userinput></screen> + </informalexample> + + <para>Si le fichier est destiné à un client, et que le réseau n'est + pas considéré comme sûr, copiez le fichier + <filename><client>-new-srvtab</filename> sur un support + amovible et transportez-le par un moyen physiquement sûr. N'oubliez + pas de le renommer <filename>srvtab</filename> dans le répertoire + <filename>/etc/kerberosIV</filename> du client, et mettez-le bien + en mode 600:</para> + + <informalexample> + <screen>&prompt.root; <userinput>mv grumble-new-srvtab srvtab</userinput> +&prompt.root; <userinput>chmod 600 srvtab</userinput></screen> + </informalexample> + </sect2> + + <sect2> + <title>Renseigner la base de données</title> + + <para>Il faut maintenant créer des entrées utilisateurs dans la base + de données. Ajoutons une entrée pour l'utilisateur + <username>jeanne</username>. Utilisez la commande + <command>kdb_edit</command> pour cela:</para> + + <informalexample> + <screen>&prompt.root; <userinput>kdb_edit</userinput> +Opening database... + +<prompt>Enter Kerberos master key:</prompt> + +Current Kerberos master key version is 1. + +Master key entered. BEWARE! +Previous or default values are in [brackets] , +enter return to leave the same, or new value. + +<prompt>Principal name:</prompt> <userinput>jeanne</userinput> +<prompt>Instance:</prompt> + +<Not found>, <prompt>Create [y] ?</prompt> <userinput>y</userinput> + +Principal: jeanne, Instance: , kdc_key_ver: 1 +<prompt>New Password:</prompt> <---- entrez un mot de passe sûr ici +Verifying password + +<prompt>New Password:</prompt> <---- réentrez le mot de passe sûr là +Principal's new key version = 1 +<prompt>Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?</prompt> +<prompt>Max ticket lifetime (*5 minutes) [ 255 ] ?</prompt> +<prompt>Attributes [ 0 ] ?</prompt> +Edit O.K. +<prompt>Principal name:</prompt> <---- ne rien entrer ici permet + de quitter le programme</screen> + </informalexample> + </sect2> + + <sect2> + <title>Tester l'ensemble</title> + + <para>Il faut d'abord démarrer les “démons” Kerberos. + NOTEZ que si vous avez correctement modifié votre fichier + <filename>/etc/rc.conf</filename>, cela se fera automatiquement + au redémarrage du système. Ce n'est nécessaire que sur le serveur + Kerberos. Les clients Kerberos récupéreront automagiquement les + informations dont ils ont besoin via leur répertoire + <filename>/etc/kerberosIV</filename>.</para> + + <informalexample> + <screen>&prompt.root; <userinput>kerberos &</userinput> +Kerberos server starting +Sleep forever on error +Log file is /var/log/kerberos.log +Current Kerberos master key version is 1. + +Master key entered. BEWARE! + +Current Kerberos master key version is 1 +Local realm: GRONDAR.ZA +&prompt.root; <userinput>kadmind -n &</userinput> +KADM Server KADM0.0A initializing +Please do not use 'kill -9' to kill this job, use a +regular kill instead +(S'il vous plait, n'utilisez pas kill -9 pour arrêter + le programme, utilisez kill à la place) + +Current Kerberos master key version is 1. + +Master key entered. BEWARE!</screen> + </informalexample> + + <para>Vous pouvez maintenant utiliser la commande + <command>kinit</command> pour obtenir un + “ticket d'entrée” + pour l'utilisateur <username>jeanne</username> que nous avons créé + plus haut :</para> + + <informalexample> + <screen>&prompt.user; <userinput>kinit jeanne</userinput> +MIT Project Athena (grunt.grondar.za) +Kerberos Initialization for "jeanne" +<prompt>Password:</prompt> </screen> + </informalexample> + + <para>Essayons de lister les informations associées avec la commande + <command>klist</command> pour voir si nous avons vraiment tout + ce qu'il nous faut:</para> + + <informalexample> + <screen>&prompt.user; <userinput>klist</userinput> +Ticket file: /tmp/tkt245 +Principal: jeanne@GRONDAR.ZA + + Issued Expires Principal +Apr 30 11:23:22 Apr 30 19:23:22 krbtgt.GRONDAR.ZA@GRONDAR.ZA</screen> + </informalexample> + + <para>Essayons maintenant de changer de mot de passe avec la commande + <command>passwd</command> pour voir si le “démon” + <command>kpasswd</command> est autorisé à accéder à la base de + données Kerberos:</para> + + <informalexample> + <screen>&prompt.user; <userinput>passwd</userinput> +realm GRONDAR.ZA +<prompt>Old password for jeanne:</prompt> +<prompt>New Password for jeanne:</prompt> +Verifying password +<prompt>New Password for jeanne:</prompt> +Password changed.</screen> + </informalexample> + </sect2> + + <sect2> + <title>Autoriser l'utilisation de la commande <command>su</command></title> + + <para>Kerberos permet d'attribuer à <emphasis>chaque</emphasis> + utilisateur qui a besoin des droits du super-utilisateur son + <emphasis>propre</emphasis> mot de passe <command>su</command>. Nous + pouvons créer un identifiant qui soit autorisé à utiliser + <command>su</command> pour devenir <username>root</username>. Cela + se fait en associant une instance <username>root</username> à + l'identificateur de base. Avec la commande + <command>kdb_edit</command> nous créons l'entrée + <literal>jeanne.root</literal> dans la base de données + Kerberos:</para> + + <informalexample> + <screen>&prompt.root; <userinput>kdb_edit</userinput> +Opening database... + +<prompt>Enter Kerberos master key:</prompt> + +Current Kerberos master key version is 1. + +Master key entered. BEWARE! +Previous or default values are in [brackets] , +enter return to leave the same, or new value. + +<prompt>Principal name:</prompt> <userinput>jeanne</userinput> +<prompt>Instance:</prompt> <userinput>root</userinput> + +<Not found>, Create [y] ? y + +Principal: jeanne, Instance: root, kdc_key_ver: 1 +<prompt>New Password:</prompt> <---- entrez un mot de passe SUR ici +Verifying password + +<prompt>New Password:</prompt> <---- réentrez le mot de passe là + +Principal's new key version = 1 +<prompt>Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?</prompt> +<prompt>Max ticket lifetime (*5 minutes) [ 255 ] ?</prompt> <userinput>12</userinput> <--- Laissez une valeur faible! +<prompt>Attributes [ 0 ] ?</prompt> +Edit O.K. +<prompt>Principal name:</prompt> <---- ne rien entrer ici + permet de quitter le programme</screen> + </informalexample> + + <para>Vérifions maintenant les caractéristiques associées pour voir si cela marche:</para> + + <informalexample> + <screen>&prompt.root; <userinput>kinit jeanne.root</userinput> +MIT Project Athena (grunt.grondar.za) +Kerberos Initialization for "jeanne.root" +<prompt>Password:</prompt></screen> + </informalexample> + + <para>Il faut maintenant ajouter l'utilisateur au fichier + <filename>.klogin</filename> de root:</para> + + <informalexample> + <screen>&prompt.root; <userinput>cat /root/.klogin</userinput> +jeanne.root@GRONDAR.ZA</screen> + </informalexample> + + <para>Essayons maintenant la commande <command>su</command>:</para> + + <informalexample> + <screen>&prompt.user; <prompt>su</prompt> +<prompt>Password:</prompt></screen> + </informalexample> + + <para>et voyons quelles sont nos caractéristiques:</para> + + <informalexample> + <screen>&prompt.root; klist +Ticket file: /tmp/tkt_root_245 +Principal: jeanne.root@GRONDAR.ZA + + Issued Expires Principal +May 2 20:43:12 May 3 04:43:12 krbtgt.GRONDAR.ZA@GRONDAR.ZA</screen> + </informalexample> + </sect2> + + <sect2> + <title>Utiliser d'autres commandes</title> + + <para>Dans l'exemple précédent, nous avons créé une entrée principale + <literal>jeanne</literal> avec une instance <literal>root</literal>. + Elle reposait sur un utilisateur ayant le même nom que l'entrée + principale. C'est ce que fait Kerberos par défaut; + une <literal><entrée_principale>.<instance></literal> + de la forme + <literal><nom_d_utilisateur>.</literal><literal>root</literal> + autorisera + <literal><nom_d_utilisateur></literal> à utiliser + <command>su</command> pour devenir root si le fichier + <filename>.klogin</filename> du répertoire utilisateur de + <username>root</username> est correctement renseigné:</para> + + <informalexample> + <screen>&prompt.root; <userinput>cat /root/.klogin</userinput> +jeanne.root@GRONDAR.ZA</screen> + </informalexample> + + <para>De même, s'il y a dans un répertoire utilisateur + des lignes de la forme:</para> + + <informalexample> + <screen>&prompt.user; <userinput>cat ~/.klogin</userinput> +jeanne@GRONDAR.ZA +jacques@GRONDAR.ZA</screen> + </informalexample> + + <para>Cela permet à quiconque dans le domaine + <filename>GRONDAR.ZA</filename> + s'est authentifié en tant que + <username>jeanne</username> ou <username>jacques</username> (avec + <command>kinit</command>, voir plus haut) d'accéder avec + <command>rlogin</command> au compte de + <username>jeanne</username> ou à ses fichiers sur ce système + (<hostid>grunt</hostid>) avec <command>rlogin</command>, <command>rsh</command> ou + <command>rcp</command>.</para> + + <para>Par exemple, jeanne ouvre maintenant une session sur un autre + système, avec Kerberos:</para> + + <informalexample> + <screen>&prompt.user; <userinput>kinit</userinput> +MIT Project Athena (grunt.grondar.za) +<prompt>Password:</prompt> +%prompt.user; <userinput>rlogin grunt</userinput> +Last login: Mon May 1 21:14:47 from grumble +Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 + The Regents of the University of California. All rights reserved. + +FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995</screen> + </informalexample> + + <para>ou bien jacques ouvre une session sur le compte de jeanne + sur la même machine (jeanne ayant modifié son fichier + <filename>.klogin</filename> comme décrit plus haut, et + l'administrateur de Kerberos ayant défini une entrée principale + <emphasis>jacques</emphasis>, sans instance:</para> + + <informalexample> + <screen>&prompt.user; <userinput>kinit</userinput> +&prompt.user; <userinput>rlogin grunt -l jeanne</userinput> +MIT Project Athena (grunt.grondar.za) +<prompt>Password:</prompt> +Last login: Mon May 1 21:16:55 from grumble +Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 + The Regents of the University of California. All rights reserved. +FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995</screen> + </informalexample> + </sect2> + </sect1> + + <sect1 id="firewalls"> + <title>Coupe-Feux</title> + + <para><emphasis>Contribution de &a.gpalmer; et + &a.alex;.</emphasis></para> + + <para>Les coupe-feux suscitent un intérêt croissant de la part de gens + qui se connectent à l'Internet, et sont même installés sur des + réseaux privés pour accroître leur sécurité. Cette section vise à + vous expliquer ce que sont les coupe-feux, comment les utiliser + et comment mettre en oeuvre les possibilités offertes par le noyau + de FreeBSD pour les implémenter.</para> + + <note> + <para>Les gens pensent souvent qu'avoir un coupe-feu entre le + réseau interne de leur entreprise et le + “Grand Méchant Internet” + résoud tous leurs problèmes de sécurité.</para> + + <para>Cela peut y concourir, mais une système de coupe-feu mal + configuré présente pour la sécurité un risque plus grand que + de ne pas en avoir du tout. Un coupe-feu ajoute une couche + protectrice + supplémentaire à votre système, mais ne sera pas capable + d'empêcher un pirate réellement déterminé de pénétrer votre + réseau interne. Si vous êtes laxiste quant à votre + sécurité interne parce que vous croyez votre coupe-feu + impénétrable, vous avez tout bonnement simplifié la tâche + des pirates.</para> + </note> + + + <sect2> + <title>Qu'est-ce qu'un coupe-feu?</title> + + <para>Il y a aujourd'hui deux types de coupe-feux différents + d'utilisation courante sur l'Internet. Le premier est appelé + plus justement <emphasis>routeur filtrant</emphasis>, quand + le noyau d'une machine interconnectée à plusieurs réseaux + sélectionne, en appliquant un ensemble de règles, les paquets + qu'il transmet ou rejette. Le second, désigné par le terme + de <emphasis>serveurs mandataires</emphasis>, s'appuie sur + des “démons” pour assurer l'authentification + et transmettre les paquets, éventuellement sur une machine + interconnectée dont la transmission de paquets au niveau + du noyau est désactivée.</para> + + <para>Les sites combinent parfois ces deux approches, de telle + sorte qu'une machine seulement (appelée + <emphasis>bastion</emphasis>) soit autorisée à envoyer des + paquets, via un routeur filtrant, sur le réseau interne. Les + services mandatés, qui sont généralement plus sûrs que les + mécanismes habituels d'authentification, + sont fournis par le bastion.</para> + + <para>Le noyau de FreeBSD inclut une fonctionnalité de filtrage + de paquets (appelée <application>IPFW</application>), dont traite + essentiellement la suite de cette section. Des serveurs mandataires + sous FreeBSD peuvent être mis en oeuvre avec des logiciels + extérieurs, mais il y a une telle variété de serveurs mandataires + qu'il est impossible de les décrire dans ce document.</para> + + <sect3 + id="firewalls-packet-filters"> + <title>Routeurs filtrants</title> + + <para>Un routeur est une machine qui transmet des paquets entre + plusieurs réseaux. Le noyau d'un routeur filtrant comporte + en plus du code qui applique à chaque paquet un jeu de + règles pour décider de le transmettre ou non. La plupart + des logiciels récents de routage IP comportent du code de + filtrage de paquets. Pour l'utiliser, vous devez fournir + au filtre un ensemble de règles sur la base desquelles il + peut décider d'autoriser ou non la transmission des + paquets.</para> + + <para>Pour décider si le paquet peut passer ou non, le code + parcourt les règles jusqu'à ce qu'il en trouve une qui + corresponde aux en-têtes du paquet. Il effectue alors + l'opération associée à la règle. Ce peut être rejeter + le paquet, le transmettre, ou même répondre par un + message ICMP à l'émetteur. La première règle trouvée, en + séquence, est seule prise en considération. On peut donc + parler d'une “chaîne de règles”.</para> + + <para>Les critères de sélection des paquets varient selon + les logiciels, mais vous pouvez typiquement définir des + règles basées sur les adresses IP de l'émetteur et du + destinataire, les ports source et destination (pour les + protocoles qui supportent les ports), voir le type de paquet + (UDP, TCP, ICMP, etc...).</para> + + </sect3> + + <sect3 + id="firewalls-proxy-servers"> + <title>Serveurs mandataires</title> + + <Para>Les serveurs mandataires sont des machines sur lesquelles + les “démons” du système standard + (telnetd, ftpd, etc) sont remplacés par des serveurs spéciaux. + Ce sont ces serveurs que l'on appelle <emphasis>serveurs + mandataires</emphasis>, car ils n'autorisent normalement que + les connexions entrantes. Cela permet (par exemple), + avec un serveur mandataire telnet sur votre bastion, aux gens + de se connecter de l'extérieur et d'accéder à votre réseau + interne, après avoir satisfait à un mécanisme d'authentification + (inversement, des serveurs mandataires peuvent être utilisés + pour les connexions du réseau interne vers l'extérieur).</para> + + <para>Les serveurs mandataires sont généralement plus sûrs que les + serveurs ordinaires et disposent d'une plus grande variété de + mécanismes d'authentification, dont les mots de passe “à + usage unique”, de façon à ce que, + même si quelqu'un arrive à + surprendre votre mot de passe, il ne puisse l'utiliser pour + accéder à vos systèmes, puisqu'il expire aussitôt. Comme ils + ne donnent pas aux utilisateurs l'accès à la machine qui les + héberge, il en est d'autant plus difficile d'installer une + entrée dérobée dans votre système de sécurité.</para> + + <para>Les serveurs mandataires ont aussi souvent la possibilité + de restreindre encore l'accès, de telle façon que seules + certaines machines y soient autorisées, et peuvent aussi + la plupart du temps être configurés + pour définir quels utilisateurs + peuvent accéder aux machines cibles. Là encore, les + fonctionnalités disponibles dépendent des logiciels que + vous choisissez.</para> + + </sect3> + </sect2> + + <sect2> + <title>Que me permet de faire IPFW?</title> + + <para><application>IPFW</application>, le logiciel fourni avec + FreeBSD, est un système de filtrage de paquets et de comptabilité + qui est intégré au noyau, et comporte un outil de configuration + accessible à l'utilisateur, + <citerefentry><refentrytitle>ipfw</refentrytitle><manvolnum>8</manvolnum></citerefentry>. Ensemble, ils vous permettent de définir et de consulter + les règles appliquées par le noyau pour prendre ses décisions de + routage.</para> + + <para><application>IPFW</application> comporte deux parties. Le + coupe-feu s'occupe du filtrage de paquets. Il y a aussi une + partie comptabilité IP, qui vous permet de tracer l'utilisation + de votre routeur, sur la base de règles similaires à celle + utilisée par le coupe-feu. Vous pouvez (par exemple) savoir + quel trafic votre routeur reçoit d'une machine donnée, ou quel + volume de requêtes WWW (“World Wide Web”) il + transmet.</para> + + <para>De par la conception d'<application>IPFW</application>, + vous pouvez l'utiliser sur une machine qui ne fait pas de + routage, pour filtrer les connexions entrantes et sortantes. + C'est un cas plus particulier d'application + d'<application>IPFW</application> que l'usage général, qui + se gère avec les mêmes commandes et les mêmes techniques.</para> + + </sect2> + + <sect2> + <title>Activer IPFW sur FreeBSD</title> + + <para>Comme la majeure partie du système + <application>IPFW</application> est intégrée au noyau, + vous devrez ajouter une ou plusieurs options à votre + fichier de configuration du noyau, selon les possibilités + que vous voulez utiliser, et recompiler votre noyau. + Reportez-vous au chapitre + <link linkend="kernelconfig">Configurer le noyau de FreeBSD</link> + pour plus de détails sur la recompilation + du noyau.</para> + + <para>Il y a trois options de configuration du noyau qui concernent + <application>IPFW</application>:</para> + + + <variablelist> + <varlistentry><term>options IPFIREWALL</term> + <listitem> + <para>Intègre au noyau le code de filtrage de + paquets.</para> + </listitem> + </varlistentry> + + <varlistentry><term>options IPFIREWALL_VERBOSE</term> + + <listitem> + <para>Donne au code la possibilité de tracer les paquets via + <citerefentry><refentrytitle>syslogd</refentrytitle><manvolnum>8</manvolnum></citerefentry>. + Sans cette option et même si vous précisez dans vos règles + que les paquets doivent être tracés, rien ne se + passera.</para> + </listitem> + </varlistentry> + + <varlistentry><term>options IPFIREWALL_VERBOSE_LIMIT=10</term> + + <listitem> + <para>Limite le nombre de paquets similaires tracés. Cette + option peut être utile dans un environnement hostile, si + vous voulez surveiller l'activité de votre coupe-feu, tout + en évitant les attaques par refus de service qui + submergeraient <command>syslog</command>.</para> + + <para>Quand une règle atteint le nombre limite de paquets + identiques, la trace est désactivée pour cette règle. + Pour la remettre en service, vous devrez réinitialiser + le compteur associé avec l'utilitaire + <citerefentry><refentrytitle>ipfw</refentrytitle><manvolnum>8</manvolnum></citerefentry>:</para> + + <informalexample> + <screen>&prompt.root; <userinput>ipfw zero 4500</userinput></screen> + </informalexample> + + <para>où 4500 est le numéro de la règle que vous voulez de + nouveau tracer.</para> + </listitem> + </varlistentry> + </variablelist> + + + <para>Il y avait, dans les versions antérieures de FreeBSD, une + option <literal>IPFIREWALL_ACCT</literal>. Elle est maintenant + obsolète. Le code du coupe-feu intègre désormais automatiquement + les fonctions comptables.</para> + + </sect2> + + <sect2> + <title>Configurer IPFW</title> + + <para>La configuration du logiciel <application>IPFW</application> + se fait avec l'utilitaire <citerefentry><refentrytitle>ipfw</refentrytitle><manvolnum>8</manvolnum></citerefentry>. La syntaxe de cette commande + paraît assez compliquée, mais elle est relativement simple, une + fois que vous en avez compris la structure.</para> + + <para>L'utilitaire comporte quatre catégories de commandes: + ajout/suppression, liste, vidage, réinitialisation. On ajoute + et l'on supprime des règles de filtrage. On liste les règles. + On vide la séquence de règles, pour supprimer toutes les règles. + On réinitialise les informations comptables.</para> + + + <sect3> + <title>Modifier les règles IPFW</title> + + <para>La syntaxe pour ce type de commande est: + <cmdsynopsis> + <command>ipfw</command> + <arg>-N</arg> + <arg choice="plain">commande</arg> + <arg>index</arg> + <arg choice="plain">action</arg> + <arg>log</arg> + <arg choice="plain">protocole</arg> + <arg choice="plain">adresses</arg> + <arg>options</arg> + </cmdsynopsis></para> + + <para>Il n'y a qu'un seul indicateur avec ce type de + commande:</para> + + + <variablelist> + <varlistentry><term>-N</term> + <listitem> + <para>Résoudre les adresses et les noms de services + dans les sorties.</para> + + </listitem> + </varlistentry> + </variablelist> + + + <para>La <emphasis>commande</emphasis> peut être raccourcie + à son abbréviation univoque la plus courte. Les + <emphasis>commandes</emphasis> valides sont:</para> + + + <variablelist> + <varlistentry><term>add</term> + <listitem> + <para>Ajoute une entrée à la liste des règles de + filtrage/comptabilité.</para> + </listitem> + </varlistentry> + + <varlistentry><term>delete</term> + + <listitem> + <para>Supprime une entrée de la liste des règles de + filtrage/comptabilité.</para> + </listitem> + </varlistentry> + </variablelist> + + + <para>Des versions antérieures d'<application>IPFW</application> + séparaient les règles de filtrage et celles de comptabilité. + La version actuelle autorise la comptabilisation de chaque + règle de filtrage.</para> + + <para>L'<emphasis>index</emphasis>, s'il est renseigné, permet + d'insérer la règle à un point précis de la séquence. Sinon, + la règle est ajoutée en fin de séquence avec un index de 100 + supérieur à la dernière règle existante (à + l'exception de la règle par défaut, 65535, + “deny”).</para> + + <para>L'option <literal>log</literal> active la trace de la + règle à la console système, si le noyau a été compilé avec + l'option <literal>IPFIREWALL_VERBOSE</literal>.</para> + + <para>Les <emphasis>actions</emphasis> valides sont:</para> + + + <variablelist> + <varlistentry><term>reject</term> + <listitem> + <para>Refuse le paquet, et envoie un message ICMP + hôte ou port non joignable (selon le cas) à + l'émetteur.</para> + </listitem> + </varlistentry> + + <varlistentry><term>allow</term> + + <listitem> + <para>Transmet normalement le paquet (alias: + <literal>pass</literal> et + <literal>accept</literal>). </para> + </listitem> + </varlistentry> + + <varlistentry><term>deny</term> + + <listitem> + <para>Rejette le paquet. N'envoie pas de message + ICMP à l'émetteur (tout ce passe comme si le paquet + n'était jamais arrivé à destination).</para> + </listitem> + </varlistentry> + + <varlistentry><term>count</term> + + <listitem> + <para>Met à jour les informations comptables, mais le paquet + n'est pas accepté/rejeté sur la base de cette règle. Le + filtrage se poursuit avec la règle suivante de la + séquence.</para> + </listitem> + </varlistentry> + </variablelist> + + + <para>Chaque <emphasis>action</emphasis> est identifiable + par son abbréviation univoque la plus courte.</para> + + <para>Les <emphasis>protocoles</emphasis> qui peuvent être + précisés sont:</para> + + + <variablelist> + <varlistentry><term>all</term> + <listitem> + <para>N'importe quel paquet IP.</para> + </listitem> + </varlistentry> + + <varlistentry><term>icmp</term> + + <listitem> + <para>Les paquets ICMP.</para> + </listitem> + </varlistentry> + + <varlistentry><term>tcp</term> + + <listitem> + <para>Les paquets TCP.</para> + </listitem> + </varlistentry> + + <varlistentry><term>udp</term> + + <listitem> + <para>Les paquets UDP.</para> + </listitem> + </varlistentry> + </variablelist> + + + <para>Les <emphasis>adresses</emphasis> sont représentées comme + suit:</para> + + <cmdsynopsis> + <arg choice="plain">from</arg> + <arg choice="plain"><replaceable>adresse/masque</replaceable></arg><arg><replaceable>port</replaceable></arg> + <arg choice="plain">to</arg> + <arg choice="plain"><replaceable>adresse/masque</replaceable></arg><arg><replaceable>port</replaceable></arg> + <arg>via <replaceable>interface</replaceable></arg> + </cmdsynopsis> + + <para>Vous ne pouvez spécifier le <replaceable>port</replaceable> + qu'avec les <emphasis>protocoles</emphasis> qui les supportent + (UDP et TCP).</para> + + <para>Le paramètre <option>via</option> est optionnel et définit + soit l'adresse IP, soit le nom de domaine d'une interface IP + locale, soit le nom d'une interface + (e.g. <devicename>ed0</devicename>) pour que la règle ne + s'applique qu'aux paquets passant par cette interface. Le + numéro d'unité de l'interface peut être remplacé par un + caractère de substitution. Par exemple, <literal>ppp*</literal> + désigne toutes les interfaces associées au module PPP intégré au + noyau.</para> + + <para>La syntaxe utilisée pour + <replaceable>adresse/masque</replaceable> est:</para> + + <informalexample> + <screen><replaceable>adresse</replaceable></screen> + </informalexample> + + <para>ou:</para> + + <informalexample> + <screen><replaceable>adresse</replaceable>/<replaceable>longueur_du_masque</replaceable></screen> + </informalexample> + + <para>ou:</para> + + <informalexample> + <screen><replaceable>adresse</replaceable>:<replaceable>masque_logique</replaceable></screen> + </informalexample> + + <para>Un nom de machine valide peut remplacer l'adresse IP. + <option><replaceable>longueur_du_masque</replaceable></option> est + une valeur décimale indiquant combien de digits de l'adresse + doivent correspondre. e.g. <literal>192.216.222.1/24</literal> + génère un masque tel que toutes les adresses d'un sous-réseau de + classe C (dans ce cas, 192.216.222) soient sélectionnées. + <option><replaceable>masque_logique</replaceable></option> est + une adresse IP telle que le masque soit obtenu par intersection + logique (“ET”) avec l'adresse associée. Le mot-clé + <literal>any</literal> peut être utilisé pour indiquer + “n'importe quelle adresse IP”.</para> + + <para>Les numéros des ports à bloquer sont indiqués par: + + <cmdsynopsis> + <arg choice="plain"><replaceable>port</replaceable><arg>,<replaceable>port</replaceable><arg>,<replaceable>port</replaceable><arg>...</arg></arg></arg></arg> + </cmdsynopsis>pour donner un seul port ou une liste de ports, ou: + + <cmdsynopsis> + <arg choice="plain"><replaceable>port</replaceable>-<replaceable>port</replaceable></arg> + </cmdsynopsis>pour donner une plage de valeurs. On peut aussi + combiner une seule plage et une liste, mais la plage doit toujours + être indiquée en premier.</para> + + <para>Les <emphasis>options</emphasis> disponibles sont:</para> + + + <variablelist> + <varlistentry><term>frag</term> + <listitem> + <para>Le paquet correspond si ce n'est pas le premier + fragment d'un datagramme.</para> + </listitem> + </varlistentry> + + <varlistentry><term>in</term> + + <listitem> + <para>Le paquet correspond si c'est un paquet + entrant.</para> + </listitem> + </varlistentry> + + <varlistentry><term>out</term> + + <listitem> + <para>Le paquet correspond si c'est un paquet + sortant.</para> + </listitem> + </varlistentry> + + <varlistentry><term>ipoptions <replaceable>options</replaceable></term> + + <listitem> + <para>Le paquet correspond si son en-tête IP contient les + options - séparées par des virgules - de la liste + d'<replaceable>options</replaceable>. Les options IP + reconnues sont: <literal>ssrr</literal> + (“strict source route” - routage strict + par la source) + <literal>lsrr</literal> + (“loose source route” - routage souple + par la source), + <literal>rr</literal> (“record packet + route” - enregistrer la route du paquet), + et <literal>ts</literal> + (“timestamp” - date). L'absence d'une + option est indiquée en la faisant précéder d'un + <literal>!</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry><term>established</term> + + <listitem> + <para>Le paquet correspond s'il fait partie + d'une connexion TCP déjà établie, + (i.e. si le bit RST ou ACK + est positionné). Vous pouver optimiser les performances + du coupe-feu en introduisant une règle + <emphasis>established</emphasis> + assez tôt dans la séquence.</para> + </listitem> + </varlistentry> + + <varlistentry><term>setup</term> + + <listitem> + <para>Le paquet correspond si c'est un paquet qui initialise + une connexion TCP (Le bit SYN est positionné mais pas le + bit ACK).</para> + </listitem> + </varlistentry> + + <varlistentry><term>tcpflags <replaceable>indicateurs</replaceable></term> + + <listitem> + <para>Le paquet correspond si son en-tête contient les + indicateurs - séparés par des virgules - de la + liste d'<replaceable>indicateurs</replaceable>. Les + indicateurs reconnus sont <literal>fin</literal>, + <literal>syn</literal>, <literal>rst</literal>, + <literal>psh</literal>, <literal>ack</literal>, et + <literal>urg</literal>. L'absence d'un indicateur donné + est indiquée en le faisant précéder d'un + <literal>!</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry><term>icmptypes <replaceable>types</replaceable></term> + + <listitem> + <para>Le paquet correspond si son type ICMP appartient à la + liste <replaceable>types</replaceable>. La liste est + donnée sous forme d'une combinaison de plages et/ou de + types séparés par des virgules. Les types ICMP + habituellement utilisés sont: + <literal>0</literal> “echo reply” (réponse à + un <command>ping</command>), + <literal>5</literal> “redirect” + (modification de la route), <literal>8</literal> + “echo request” (émis par + <command>ping</command>), et + <literal>11</literal> “time exceeded” + (utilisé pour indiquer que le TTL - “Time To + Live” - durée de vie - ,a été atteint, avec + <citerefentry><refentrytitle>traceroute</refentrytitle><manvolnum>8</manvolnum></citerefentry>, par exemple).</para> + </listitem> + </varlistentry> + </variablelist> + + + </sect3> + + <sect3> + <title>Lister les règles IPFW</title> + + <para>La syntaxe de cette forme de la commande est: + <cmdsynopsis> + <command>ipfw</command> + <arg>-a</arg> + <arg>-t</arg> + <arg>-N</arg> + <arg choice="plain">l</arg> + </cmdsynopsis></para> + + <para>Il y a trois indicateurs valides avec ce type de + commande:</para> + + + <variablelist> + <varlistentry><term>-a</term> + <listitem> + <para>Affiche avec la liste, les valeurs des compteurs. + Cette option est le seul moyen de consulter les + informations comptables.</para> + </listitem> + </varlistentry> + + <varlistentry><term>-t</term> + + <listitem> + <para>Affiche la date de dernière concordance pour chaque + règle de la séquence. Le format d'affichage n'est + pas compatible avec la syntaxe d'entrée de l'utilitaire + <citerefentry><refentrytitle>ipfw</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para> + </listitem> + </varlistentry> + + <varlistentry><term>-N</term> + + <listitem> + <para>Essaye de résoudre les adresses et le noms des + services.</para> + </listitem> + </varlistentry> + </variablelist> + + + </sect3> + + <sect3> + <title>Vider les règles IPFW</title> + + <para>La commande pour vider les règles est: + <cmdsynopsis> + <command>ipfw</command> + <arg choice="plain">flush</arg> + </cmdsynopsis></para> + + <para>Toutes les règles de la séquence sont supprimées, sauf + la règle par défaut définie par le noyau (index 65535). Faites + attention quand vous utilisez cette commande, la règle par + défaut “deny” isolera votre coupe-feu du réseau + jusqu'à ce qu'une nouvelle règle “allow” soit + ajoutée à la séquence.</para> + + </sect3> + + <sect3> + <title>Réinitialiser les compteurs IPFW</title> + + <para>La syntaxe pour réinitialiser un ou plusieurs compteurs de + paquets est: + <cmdsynopsis> + <command>ipfw</command> + <arg choice="plain">zero</arg> + <arg choice="opt"><replaceable>index</replaceable></arg> + </cmdsynopsis></para> + + <para>Employée sans l'argument + <replaceable>index</replaceable>, tous les compteurs sont + réinitialisés. Si un <replaceable>index</replaceable> est + précisé, l'opération ne s'applique qu'à la règle + correspondante.</para> + + </sect3> + </sect2> + + <sect2> + <title>Exemples de commandes IPFW</title> + + <para>Cette commande empêchera le routeur de transmettre tous les + paquets venant de la machine + <hostid role="fqdn">sales.pirates.org</hostid> vers le port + “telnet” de la machine + <hostid role="fqdn">chics.types.org</hostid>:</para> + + <informalexample> + <screen>&prompt.root <userinput>ipfw add deny tcp from sales.pirates.org to chics.types.org 23</userinput></screen> + </informalexample> + + <para>L'exemple suivant rejette tout trafic TCP venant du réseau + <hostid role="domainname">pirates.org</hostid> (un réseau de classe + C) vers la machine + <hostid role="fqdn">chics.types.org</hostid> machine (quel que + soit le port).</para> + + <informalexample> + <screen>&prompt.root; <userinput>ipfw add deny log tcp from sales.pirates.org/24 to chics.types.org</userinput></screen> + </informalexample> + + <para>Si vous ne voulez pas que l'on puisse ouvrir de sessions X + sur votre réseau interne (un sous-réseau d'un réseau de classe C), + la commande suivante applique le filtrage adéquat:</para> + + <informalexample> + <screen>&prompt.root; <userinput>ipfw add deny tcp from any to mon.reseau.org/28 6000 setup</userinput></screen> + </informalexample> + + <para>Pour lister les informations comptables: + + <informalexample> + <screen>&prompt.root; <userinput>ipfw -a list</userinput></screen> + </informalexample> ou en abrégé: + + <informalexample> + <screen>&prompt.root; <userinput>ipfw -a l</userinput></screen> + </informalexample> Vous pouvez aussi voir la dernière date + d'application d'une règle avec: + + <informalexample> + <screen>&prompt.root; <userinput>ipfw -at l</userinput></screen> + </informalexample></para> + + </sect2> + + <sect2> + <title>Mettre en oeuvre un coupe-feu filtrant</title> + + <note> + <para>Les suggestions ci-dessous ne sont rien que des suggestions. + Les contraintes varient d'un coupe-feu à l'autre et je ne peux + pas vous dire comment mettre en place le coupe-feu qui réponde + à votre besoin particulier.</para> + </note> + + <para>Lorsque vous commencez à configurer votre coupe-feu, à moins + que vous n'ayez un banc d'essai pour faire vos tests dans un + environnement que vous contrôlez, je vous conseille + vivement d'utiliser les options de trace des commandes après avoir + compilé un noyau supportant les traces du coupe-feu. Vous pourrez + ainsi identifier rapidement les problèmes et y remédier sans + provoquer trop de gêne. Même par la suite, je vous conseille de + conserver l'option pour les commandes <command>deny</command>, + ce qui vous permettra de tracer les attaques éventuelles et aussi de + modifier vos règles si vos besoins évoluent.</para> + + <note> + <para>Tracer les commandes <command>accept</command> aboutit + à de gros volumes de fichiers de trace, puisqu'il y a une + ligne pour chaque paquet qui transite par le coupe-feu. Les + transferts ftp/http importants ralentissent alors sérieusement + le système. Cela augmente aussi le temps de latence pour ces + paquets, parce que cela demande au noyau plus de traitement + avant de les passer. <command>syslogd</command> utilisera aussi + plus de temps CPU pour écrire toutes ces informations sur disque + et peut même assez rapidement saturer la partition sur laquelle + réside le répertoire <filename>/var/log</filename>.</para> + </note> + + <para>Tel qu'il est livré, FreeBSD ne sait pas charger les règles + du coupe-feu au démarrage du système. Je vous suggère d'appeler + une procédure ad-hoc depuis la procédure + <filename>/etc/netstart</filename>. Mettez cette procédure assez tôt + dans le fichier <filename>netstart</filename>, de sorte que le + coupe-feu soit configuré avant les interfaces IP. Il n'y a ainsi + pas de possibilité d'accès tant que votre réseau est encore + ouvert.</para> + + <para>Employez la méthode que vous voulez pour charger les règles. + La commande <command>ipfw</command> ne peut pas charger toutes + les règles en une seule fois. Je procède de la façon + suivante:</para> + + <informalexample> + <screen>&prompt.root; <userinput>ipfw list</userinput></screen> + </informalexample> + + <para>pour écrire dans un fichier les règles que j'ai définies. Puis + j'édite ce fichier pour ajouter <literal>ipfw</literal> au début + de chaque ligne. La procédure peut alors être exécutée pour + recharger les règles. C'est n'est peut-être pas la façon la + plus efficace de procéder, mais cela marche.</para> + + <para>La question suivante est de savoir ce que votre coupe-feu + doit réellement <emphasis>faire</emphasis>! Cela dépend dans une + large mesure des accès que vous voulez autoriser de l'extérieur + à votre réseau et vice-versa. Voici quelques règles + générales:</para> + + <itemizedlist> + + <listitem> + <para>Bloquez tous les accès entrants sur des ports TCP + en dessous de 1024. C'est là que les services les plus + problématiques pour la sécurité se trouvent, comme + finger, SMTP (courrier électronique) et telnet.</para> + </listitem> + + <listitem> + <para>Bloquez <emphasis>tout</emphasis> traffic UDP entrant. + Il y a très peu de services utiles qui fonctionnent sur UDP, + et les services qui sont utiles menacent généralement la + sécurité (e.g. Les protocoles RPC et NFS de Sun). Cela + présente l'inconvénient que, comme le protocole UDP est + sans état, les réponses aux requêtes UDP sortantes sont + aussi bloquées. Cela peut poser problème à des utilisateurs + internes qui veulent interroger des serveurs archie (prospero) + externes. Si vous voulez autoriser l'accès à archie, vous + devez accepter les paquets UDP venant des ports 191 et 1525 + sur n'importe quel port UDP interne. ntp est un autre service + que vous pouver envisager d'autoriser; il utilise le port + 123.</para> + </listitem> + + <listitem> + <para>Bloquez le trafic entrant vers le port 6000. Le port + 6000 est utilisé pour accèder aux serveurs X11, et peut + présenter des risques pour la sécurité (en particulier + si les gens ont l'habitude d'utiliser + <command>xhost +</command> sur leur station de travail). + X11 peut en fait utiliser une plage de ports commençant + au port 6000, la limite supérieure dépendant du nombre + de sessions d'affichage qu'accepte la machine. La limite + définie par la RFC 1700 est 6063.</para> + </listitem> + + <listitem> + <para>Répertoriez les ports utilisés par les serveurs + internes (e.g. serveurs SQL, ...). C'est probablement + une bonne idée de les bloquer aussi, car ils sont + normalement hors de la plage 1-1024 décrite plus haut.</para> + </listitem> + + </itemizedlist> + + + <para>Le CERT propose d'autres recommendations pour la configuration + d'un coupe-feu à l'adresse + <ulink url="ftp://ftp.cert.org/pub/tech_tips/packet_filtering">ftp://ftp.cert.org/pub/tech_tips/packet_filtering</ulink>.</para> + + <para>Comme je l'ai dit plus haut, ce ne sont que des + <emphasis>propositions</emphasis>. Vous devrez définir vous-même + les règles à appliquer à votre coupe-feu. Je ne peux endosser + AUCUNE responsabilité si quelqu'un s'infiltre sur votre réseau, + même si vous suivez les conseils donnés ci-dessus.</para> + + </sect2> + </sect1> + </chapter> +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-shorttag: nil + sgml-always-quote-attributes: t + sgml-minimize-attributes: max + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> diff --git a/fr_FR.ISO_8859-1/books/handbook/serialcomms/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/serialcomms/chapter.sgml new file mode 100644 index 0000000000..0c6273abe8 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/serialcomms/chapter.sgml @@ -0,0 +1,2351 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + + <chapter> + <title>Communications série</title> + &trans.a.haby; + + <sect1 id="serial"> + <title>Les bases</title> + + <para><emphasis>Compilées à partir de la FAQ.</emphasis></para> + + <para>Cette section devrait vous donner des informations + générales sur les ports série. Si vous n'y trouvez pas + ce que vous cherchez, consultez les sections de ce manuel + consacrées aux terminaux et aux liaisons téléphoniques.</para> + + <para>Vos applications ouvrirons normalement le fichier spécial + de périphérique <filename>ttyd<replaceable>X</replaceable></filename> + (ou <filename>cuaa<replaceable>X</replaceable></filename>). Quand + un programme ouvre ce fichier, il retrouve normalement un ensemble + de paramètres par défaut pour les entrées/sorties sur le terminal. + Vous pouvez visualiser ces valeurs par défaut avec la commande:</para> + + <informalexample> + <screen>&prompt.root; <userinput>stty -a -f /dev/ttyd1</userinput></screen> + </informalexample> + + <para>Si vous modifiez le paramètrage de ce périphérique, ces + modifications s'appliquent jusqu'à ce que vous fermiez le + périphérique. A la prochaine ouverture, le paramètrage par + défaut s'applique de nouveau. Pour changer le paramètrage + par défaut, vous devez ouvrir et modifier l'“état + initial” du périphérique. Par exemple, pour activer + le mode <acronym>CLOCAL</acronym>, la transmission de données + 8 bits et le contrôle de flux <emphasis>XON/XOFF</emphasis> + par défaut pour la ligne ttyd5, tapez:</para> + + <informalexample> + <screen>&prompt.root; <userinput>stty -f /dev/ttyid5 clocal cs8 ixon ixoff</userinput></screen> + </informalexample> + + <para>Il est bien de confier cela à la procédure + <filename>/etc/rc.serial</filename>. Ces paramètres par défaut + s'appliqueront maintenant lorsqu'une application ouvrira + <filename>ttyd5</filename>. Ce qui ne l'empêche pas de modifier + ces valeurs, si besoin est.</para> + + <para>Vous pouvez aussi empêcher que certaines valeurs puissent + être modifiées par une application en changeant + l'“état verrouillé” du périphérique. Par exemple, + pour fixer la vitesse de <filename>ttyd5</filename> à 57600 bps, + tapez:</para> + + <informalexample> + <screen>&prompt.root; <userinput>stty -f /dev/ttyld5 57600</userinput></screen> + </informalexample> + + <para>Si une application qui ouvre maintenant <filename>ttyd5</filename> + essaie de modifier la vitesse de ce port, elle sera contrainte de + garder la valeur de 57600 bps.</para> + + <para>Vous devriez bien entendu n'autoriser l'écriture + de l'état initial et de l'état bloqué du périphérique qu'au + super-utilisateur <emphasis remap=tt>root</emphasis>. La procédure + <filename>MAKEDEV</filename> <emphasis>NE</emphasis> le fait + <emphasis>PAS</emphasis> quand elle crée les fichiers spéciaux de + périphériques.</para> + + </sect1> + + <sect1 id="term"> + <title>Terminaux</title> + + <para><emphasis>Contribution de &a.kelly;<!-- <br> -->28 Juillet + 1996</emphasis></para> + + <para>Utiliser des terminaux est une solution commode et peu coûteuse + pour disposer de la puissance de votre système FreeBSD lorsque vous + n'êtes pas sur la console de l'ordinateur ou sur un réseau auquel il + est connecté. Cette section vous explique comment utiliser des + terminaux avec FreeBSD.</para> + + <sect2 id="term-uses"> + <title>Usages et types de terminaux</title> + + <para>Les premiers systèmes Unix n'avaient pas de console. Au lieu + de cela, les gens ouvraient des sessions et exécutaient leurs + programmes à partir de terminaux qui étaient connectés aux ports + série de l'ordinateur. C'est un peu la même chose que lorsque + l'on utilise un modem et un logiciel d'émulation de terminal + pour se connecter à un système distant et travailler en mode + texte.</para> + + <para>Les PCs d'aujourd'hui ont des consoles graphiques de + haute résolution, mais la possibilité d'ouvrir une session + sur un port série subsiste toujours sur presque tous les + systèmes d'exploitation de type Unix; FreeBSD ne fait pas + exception à la règle. Avec un terminal relié à un port série + disponible, vous pouvez ouvrir une session + et exécuter des programmes + comme vous le feriez normalement à la console ou dans une + fenêtre <command>xterm</command> avec le gestionnaire + X Window.</para> + + <para>Pour un usage professionnel, vous pouvez connecter de + nombreux terminaux à un système FreeBSD et les installer + sur les bureaux de vos employés. Pour une usage domestique, + un ordinateur inutilisé, un vieux PC ou Macintosh, peut + servir de terminal sur un ordinateur plus puissant sous + FreeBSD. Vous pouvez ainsi faire de ce qui serait sinon un + système mono-utilisateur un puissant système + multi-utilisateurs.</para> + + <para>FreeBSD connaît trois types de terminaux:</para> + + <itemizedlist> + + <listitem> + <para>Les <link linkend="term-dumb">Terminaux + passifs</link>,</para> + </listitem> + + <listitem> + <para>Les <link linkend="term-pcs">PCs servant de + terminaux</link>,</para> + </listitem> + + <listitem> + <para>Les <link linkend="term-x">Terminaux X</link>.</para> + </listitem> + + </itemizedlist> + + <para>Les sections qui suivent décrivent chacun de ces types de + terminaux.</para> + + + <sect3 id="term-dumb"> + <title>Terminaux passifs</title> + + <para>Les terminaux passifs sont des matériels spécialisés qui + vous permettent de vous connecter à votre ordinateur via une + ligne série. On les appelle “passifs” parce qu'ils + ne savent qu'afficher, envoyer et recevoir du texte. Ils ne + peuvent pas exécuter de programmes. C'est l'ordinateur auquel + ils sont connectés qui dispose de tout ce qu'il faut pour faire + tourner les logiciels de traitement de texte, les compilateurs, + la messagerie électroniques, les jeux, et ainsi de suite.</para> + + <para>Il ya a des centaines de modèles de terminaux passifs de + constructeurs différents, dont le VT-100 de Digital Equipment + Corporation et le WY-75 de Wyse. Ils fonctionneront pratiquement + tous avec FreeBSD. Certains terminaux haut de gamme peuvent même + afficher des graphiques, mais seuls certains logiciels tireront + parti de ces possibilités évoluées.</para> + + <para>Les terminaux passifs sont d'usage courant + lorsque les utilisateurs + n'ont pas besoin d'accéder à des outils graphiques tels que ceux + que fournit le système X Window.</para> + + </sect3> + + <sect3 id="term-pcs"> + <title>PCs servant de terminaux</title> + + <para>Si un <link linkend="term-dumb">terminal passif</link> + ne sait qu'afficher, envoyer et recevoir du texte, alors + n'importe quel ordinateur personnel inutilisé peut servir + de terminal passif. Il vous faudra uniquement le câble + adapté et un programme d'<emphasis>émulation de + terminal</emphasis> qui tourne sur cet ordinateur.</para> + + <para>C'est un usage domestique courant. Si votre femme travaille + sur votre console système FreeBSD, vous pouvez travailler en mode + texte en même temps à partir d'une machine moins puissante + connectée comme terminal à votre système FreeBSD.</para> + + </sect3> + + <sect3 id="term-x"> + <title>Terminaux X</title> + + <para>Les terminaux X sont les terminaux les plus sophistiqués, + ils ne se connectent pas à un port série, mais habituellement + à un réseau du type Ethernet. Au lieu d'être cantonnés au mode + texte, ils peuvent afficher des applications X Window.</para> + + <para>Les terminaux X ne sont cités ici que pour être exhaustif. + Ce chapitre <emphasis>ne</emphasis> décrit + <emphasis>pas</emphasis> comment installer, configurer et utiliser + des terminaux X.</para> + + </sect3> + </sect2> + + <sect2 id="term-cables-ports"> + <title>Câbles et Ports</title> + + <para>Pour relier un terminal à votre système FreeBSD, il vous faut + le bon câble et un port série auquel le connecter. Cette section + vous explique comment faire. Si vous savez déjà comment brancher + votre terminal et quel type de câble il vous faut, passez à la + section <link linkend="term-config">Configuration</link>.</para> + + <sect3 id="term-cables"> + <title>Câbles</title> + + <para>Comme les terminaux utilisent les ports série, il vous faudra + un câble série - appelé aussi RS-232C - pour relier le + terminal à votre système FreeBSD.</para> + + <para>Il y a deux sortes de câbles série. Celui que vous utiliserez + dépendra du type de terminal que vous voulez connecter:</para> + + <para> + <itemizedlist> + + <listitem> + <para>Si vous connectez un ordinateur personnel pour servir + de terminal, utilisez un <link linkend="term-null">câble + “null-modem”</link>. Un câble + “null-modem” relie deux ordinateurs ou deux + terminaux entre eux.</para> + </listitem> + + <listitem> + <para>Si vous avez un vrai terminal, la meilleure source + d'information pour savoir quel câble utiliser est la + documentation du terminal. Si vous n'avez pas de + documentation, essayez un <link linkend="term-null">câble + “null-modem”</link>. Si cela ne marche pas, + alors essayez avec un <link linkend="term-std">câble + standard</link>.</para> + </listitem> + + </itemizedlist> + </para> + + <para>Il faudra aussi que les ports série de votre terminal + <emphasis>et</emphasis> de votre système FreeBSD aient des + connecteurs compatibles avec le câble que vous utilisez.</para> + + <sect4 id="term-null"> + <title>Câbles “Null-modem”</title> + + <para>Un câble “null-modem” transmet directement + certains signaux, le “signal à la terre”, par + exemple, mais en permute d'autres, les broches + “émission” et “réception” + sont par exemple reliées entre elles, d'une extrémité sur + l'autre.</para> + + <para>Si vous réalisez vous-même vos propres câbles, voici une + table qui décrit la méthode recommandée pour fabriquer un câble + “null-modem” pour les terminaux. Cette table donne + les noms et les numéros de broches des signaux RS-232C sur un + connecteur DB-25,</para> + + <informaltable frame="none"> + <tgroup cols="5"> + <thead> + <row> + <entry>Signal</entry> + <entry>Broche #</entry> + <entry></entry> + <entry>Broche #</entry> + <entry>Signal</entry> + </row> + </thead> + + <tbody> + + <row> + <entry>TxD</entry> + <entry>2</entry> + <entry>reliée à</entry> + <entry>3</entry> + <entry>RxD</entry> + </row> + + <row> + <entry>RxD</entry> + <entry>3</entry> + <entry>reliée à</entry> + <entry>2</entry> + <entry>TxD</entry> + </row> + + <row> + <entry>DTR</entry> + <entry>20</entry> + <entry>reliée à</entry> + <entry>6</entry> + <entry>DSR</entry> + </row> + + <row> + <entry>DSR</entry> + <entry>6</entry> + <entry>reliée à</entry> + <entry>20</entry> + <entry>DTR</entry> + </row> + + <row> + <entry>SG</entry> + <entry>7</entry> + <entry>reliée à</entry> + <entry>7</entry> + <entry>SG</entry> + </row> + + <row> + <entry>DCD</entry> + <entry>8</entry> + <entry>reliée à</entry> + <entry>4</entry> + <entry>RTS [a]</entry> + </row> + + <row> + <entry>RTS</entry> + <entry>4</entry> + <entry></entry> + <entry>5</entry> + <entry>CTS</entry> + </row> + + <row> + <entry>CTS</entry> + <entry>5</entry> + <entry>reliée à</entry> + <entry>8</entry> + <entry>DCD</entry> + </row> + </tbody> + </tgroup> + </informaltable> + <para>Remarques :</para> + <itemizedlist> + <listitem> + <para>[a] reliez les broches 4 et 5 entre elles sur le + connecteur et à la broche 8 de l'autre extrémité (côté + ordinateur).</para> + </listitem> + </itemizedlist> + + </sect4> + + <sect4 id="term-std"> + <title>Câbles RS-232C standard</title> + + <para>Un câble série standard transmet directement les signaux + RS-232C. Ce qui signifie que la broche “émission” + d'une extrémité est reliée à la broche “émission” + de l'autre. C'est le câble que l'on utilise pour connecter un + modem à un système FreeBSD, et dont ont besoin certains + terminaux.</para> + + </sect4> + </sect3> + + <sect3 id="term-ports"> + <title>Ports</title> + + <para>Les ports série sont les périphériques grâce auxquels + l'information est échangée entre le terminal et l'ordinateur + FreeBSD hôte. Cette section décrit les différents types de + ports série existant et comment ils sont adressés par + FreeBSD.</para> + + <sect4 id="term-portkinds"> + <title>Types de ports</title> + + <para>Il y a différents types de ports série. Avant d'acheter ou + de monter un câble, vous devez vérifier qu'il soit adapté aux + ports de votre terminal et de votre machine FreeBSD.</para> + + <para>La plupart des terminaux ont des ports DB25. Les ordinateurs + personnels, dont les PCs sous FreeBSD, ont des ports DB25 ou + DB9. Si vous avez une carte multi-ports série sur votre PC, + vous pouvez avoir des ports RJ-12 ou RJ-45.</para> + + <para>Consultez la documentation de votre matériel pour connaître + les spécifications des ports que vous allez utiliser. Un coup + d'oeil aux ports suffit souvent aussi.</para> + + </sect4> + + <sect4 id="term-portnames"> + <title>Noms des ports</title> + + <para>Avec FreeBSD, vous accédez à chacun des ports série par + une entrée dans le répertoire <filename>/dev</filename>. Il y + a deux sortes d'entrées:</para> + + <itemizedlist> + + <listitem> + <para>Les ports d'appel entrant sont appelés + <filename>/dev/ttyd<replaceable>X</replaceable></filename> + où <emphasis remap=it>X</emphasis> est le numéro du port, + à partir de zéro. Vous utilisez habituellement les ports + d'appel entrant pour les terminaux. Avec ces ports, la + ligne série doit émettre le signal “Data Carrier + Detect” (DCD) - détection de + porteuse - pour qu'ils fonctionnent.</para> + </listitem> + + <listitem> + <para>Les ports d'appel sortant sont appelés + <filename>/dev/cuaa<replaceable>X</replaceable></filename>. + Vous n'utilisez normalement pas les ports d'appel sortant + pour les terminaux, mais pour les modems. Vous pouvez les + utiliser avec un terminal, si le câble série ou le terminal + ne supportent pas le signal de détection de + porteuse.</para> + </listitem> + + </itemizedlist> + + <para>Reportez-vous aux pages de manuel de + <citerefentry><refentrytitle>sio</refentrytitle><manvolnum>4</manvolnum></citerefentry> + pour plus d'informations.</para> + + <para>Si vous connectez un terminal au premier port série + (<devicename>COM1</devicename> en langage DOS), vous utiliserez + alors <filename>/dev/ttyd0</filename> pour faire référence au + terminal. S'il est sur le second port série (aussi appelé + <devicename>COM2</devicename>), ce sera + <filename>/dev/ttyd1</filename>, et ainsi de suite.</para> + + <para>Notez bien que vous devrez peut-être configurer votre + noyau pour y inclure le support de chaque port série, en + particulier si vous avez une carte série multi-ports. Voyez + le chapitre <link linkend="kernelconfig">Configurer le noyau + de FreeBSD</link> pour plus d'informations.</para> + + </sect4> + </sect3> + </sect2> + + <sect2 id="term-config"> + <title>Configuration</title> + + <para>Cette section décrit ce que vous devez faire pour configurer + votre système FreeBSD pour pouvoir ouvrir une session depuis un + terminal. Elle suppose que vous avez déjà configuré votre noyau + pour y inclure le support du port série auquel votre terminal est + connecté - et que vous avez branché ce dernier.</para> + + <para>En un mot, vous devez demander au programme + <command>init</command>, qui contrôle le lancement et l'exécution + des processus, de lancer un processus <command>getty</command>, + lequel se chargera de lire le nom d'utilisateur au début de la + session et lancera à son tour le programme + <command>login</command>.</para> + + <para>Pour cela, vous devez éditer le fichier + <filename>/etc/ttys</filename>. Commencez par utiliser + <command>su</command> pour devenir super-utilisateur. Modifiez + ensuite de la façon suivante <filename>/etc/ttys</filename>:</para> + + <procedure> + <step> + <para>Ajoutez à <filename>/etc/ttys</filename> une ligne pour + l'entrée du répertoire <filename>/dev</filename> correspondant + au port série, si elle n'y est pas déjà.</para> + </step> + + <step> + <para>Précisez qu'il faut exécuter + <filename>/usr/libexec/getty</filename> sur ce port et donnez + le type de “<emphasis remap=tt>getty</emphasis>” + approprié, tel qu'il est défini dans le fichier + <filename>/etc/gettytab</filename>.</para> + </step> + + <step> + <para>Donnez le type de terminal par défaut.</para> + </step> + + <step> + <para>Activez le port avec “on”.</para> + </step> + + <step> + <para>Indiquez si le port doit être + “secure”.</para> + </step> + + <step> + <para>Faites relire le fichier <filename>/etc/ttys</filename> + par <command>init</command>.</para> + </step> + </procedure> + + <para>En option, vous pouvez définir un type de + <emphasis remap=tt>getty</emphasis> sur-mesure pour l'étape 2 en + ajoutant une entrée au fichier <filename>/etc/gettytab</filename>. + Ce document ne vous explique pas comment le faire. Vous êtes invités + à consulter les pages de manuel de + <citerefentry><refentrytitle>gettytab</refentrytitle><manvolnum>5</manvolnum></citerefentry> + et <citerefentry><refentrytitle>getty</refentrytitle><manvolnum>8</manvolnum></citerefentry> + pour plus d'informations.</para> + + <para>Les sections qui suivent détaillent chacune de ces étapes, Dans + l'exemple que nous prendrons pour cela, nous connecterons deux + terminaux à notre système: un Wyse-50 et un vieil IBM PC 286 avec + un logiciel d'émulation de terminal compatible VT-100. Nous + connecterons le terminal Wyse au second port série et le 286 au + sixième port série (sur une carte multi-ports).</para> + + <para>Pour plus d'informations sur le fichier + <filename>/etc/ttys</filename>, lisez les pages de manuel de + <citerefentry><refentrytitle>ttys</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para> + + <sect3 id="term-etcttys"> + <title>Ajouter une entrée à <filename>/etc/ttys</filename></title> + + <para>Vous devez d'abord ajouter une entrée au fichier + <filename>/etc/ttys</filename>, à moins qu'il n'y en ait déjà + une.</para> + + <para>Le fichier <filename>/etc/ttys</filename> liste tous les + ports de votre système FreeBSD sur lesquels vous voulez autoriser + l'ouverture de session. Par exemple, la première console virtuelle + <filename>ttyv0</filename> a une entrée dans ce fichier. Vous + pouvez ouvrir une session à la console en utilisant cette entrée. + Il y a des entrées dans le fichier pour les consoles virtuelles, + les ports série et les “pseudo-tty”s. Pour les + terminaux physiques, n'indiquez que l'entrée + <filename>/dev</filename> du port série, sans le + “<filename>/dev/</filename>”.</para> + + <para>A l'installation de votre système FreeBSD, le fichier + <filename>/etc/ttys</filename> contient les entrées pour les + quatre premiers ports série: de <filename>ttyd0</filename> à + <filename>ttyd3</filename>. Si vous connectez un terminal + à l'un de ces ports, vous n'avez pas d'entrée à ajouter.</para> + + <PARA>Dans notre exemple, le Wyse-50 va sur le second port série, + <filename>ttyd1</filename>, qui est déjà dans le fichier. Il nous + suffit d'ajouter une entrée pour le PC 286 relié au sixième port + série. Voici un extrait du fichier <filename>/etc/ttys</filename> + après que nous ayons ajouté cette nouvelle entrée:</para> + + <programlisting> +ttyd1 "/usr/libexec/getty std.9600" unknown off secure +ttyd5 + </programlisting> + + </sect3> + + <sect3 id="term-getty"> + <title>Définir le type de + <emphasis remap=tt>getty</emphasis></title> + + <para>Nous devons ensuite préciser quel est le programme à exécuter + pour gérer les ouvertures de session depuis le terminal. Le + programme standard de FreeBSD pour cela est + <filename>/usr/libexec/getty</filename>. C'est lui qui affiche + l'invite <prompt>login:</prompt>.</para> + + <para>Le programme <command>getty</command> a un argument + (optionnel), le type de <replaceable>getty</replaceable>. Un + type de <replaceable>getty</replaceable> décrit les + caractéristiques de la ligne sur laquelle est le terminal, telle + sa vitesse en bps et le type de contrôle de parité utilisé. + le programme <command>getty</command> lit ces caractéristiques + dans le fichier <filename>/etc/gettytab</filename>.</para> + + <para>Le fichier <filename>/etc/gettytab</filename> contient un + grand nombre d'entrées pour des terminaux anciens et d'autres + plus récents. Dans presque tous les cas, les entrées qui + commencent par <literal>std</literal> fonctionneront avec les + terminaux physiques. Ces entrées ignorent le contrôle de parité. + Il y a un entrée <literal>std</literal> pour chaque vitesse en + bps de 110 à 115200. Vous pouvez bien entendu ajouter vos propres + entrées à ce fichier. + Les pages de manuel de + <citerefentry><refentrytitle>gettytab</refentrytitle><manvolnum>5</manvolnum></citerefentry> + vous donnent plus d'informations.</para> + + <para>Quand vous définissez le type de + <replaceable>getty</replaceable> dans le fichier + <filename>/etc/ttys</filename>, vérifiez que les paramètres + de communication du terminal soient les mêmes.</para> + + <para>Dans notre exemple, le Wyse-50 n'utilise pas de contrôle de + parité et se connecte à 38400 bps. Le PC n'utilise pas de + contrôle de parité et se connecte à 19200 bps. Voici le fichier + <filename>/etc/ttys</filename> avec les définitions + correspondantes (juste ce qui concerne les deux terminaux qui nous + intéressent):</para> + + <programlisting> +ttyd1 "/usr/libexec/getty std.38400" unknown off secure +ttyd5 "/usr/libexec/getty std.19200" + </programlisting> + + <para>Remarquez que le second champ - celui qui indique quel + programme exécuter - est entre guillemets. C'est important, + parce que sans cela le type donné en argument de + <command>getty</command> serait interprété comme troisième + champ.</para> + + </sect3> + + <sect3 id="term-deftermtype"> + <title>Définir le type de terminal par défaut</title> + + <para>Le troisième champ du fichier <filename>/etc/ttys</filename> + donne le type de terminal par défaut sur le port. Pour les ports + d'appel entrant, vous y mettez typiquement + “<literal>unknown</literal>” - inconnu - ou + <literal>dialup</literal> - appel - parce que les + utilisateurs peuvent s'y connecter avec n'importe quel type de + terminal ou de logiciel. Pour les terminaux physiques, le type + de terminal ne varie pas, vous pouvez donc indiquer un vrai type + de terminal dans ce champ.</para> + + <para>Habituellement, les utilisateurs emploient le programme + <command>tset</command> depuis leur fichier + <filename>.login</filename> ou <filename>.profile</filename> + pour récupérer le type de terminal et demander de le préciser + si nécessaire. En définissant le type de terminal dans le fichier + <filename>/etc/ttys</filename>, vous leur évitez qu'on leur pose + cette question.</para> + + <para>Pour savoir quels types de terminaux sont reconnus par + FreeBSD, consultez le fichier + <filename>/usr/share/misc/termcap</filename>. Il liste environ + 600 terminaux. Vous pouvez en ajouter si vous le désirez. Voyez + les pages de manuel de + <citerefentry><refentrytitle>termcap</refentrytitle><manvolnum>5</manvolnum></citerefentry> + pour plus d'informations.</para> + + <para>Dans notre exemple, le Wyse-50 est un terminal de type + Wyse-50 (bien qu'il puisse émuler d'autres types de terminaux, + nous le laisseront en mode Wyse-50). Le PC 286 PC utilise + Procomm qui sera configuré pour émuler une VT-100. Voici les + entrées adéquates, quoiqu'encore incomplètes du fichier + <filename>/etc/ttys</filename>:</para> + + <programlisting> +ttyd1 "/usr/libexec/getty std.38400" wy50 off secure +ttyd5 "/usr/libexec/getty std.19200" vt100 + </programlisting> + + </sect3> + + <sect3 id="term-enable"> + <title>Activer le port</title> + + <para>Le champ suivant de <filename>/etc/ttys</filename>, le + quatrième, indique s'il faut activer le port. Si vous y mettez + <literal>on</literal>, alors le processus <command>init</command> + démarrera le programme mentionné par le second champ, + <command>getty</command>, qui affichera l'invite de session. + Si vous y mettez <literal>off</literal>, il n'y aura pas de + <command>getty</command>, et donc pas d'ouverture de session + sur le port.</para> + + <para>Vous devez donc bien sûr préciser <literal>on</literal> + dans ce champ. Voici de nouveau le fichier + <filename>/etc/ttys</filename>. Nous avons activé les deux + ports avec <literal>on</literal>:</para> + + <programlisting> +ttyd1 "/usr/libexec/getty std.38400" wy50 on secure +ttyd5 "/usr/libexec/getty std.19200" vt100 on + </programlisting> + + </sect3> + + <sect3 id="term-secure"> + <title>Définir les ports sécurisés</title> + + <para>Nous voici arrivé au dernier champ (enfin, presque: il y a + un indicateur <literal>window</literal> optionnel, mais nous ne + nous en préocupperons pas). Le dernier champ indique si le port + est sécurisé.</para> + + <para>Que veut dire “sécurisé”?</para> + + <para>Cela veut dire que le compte super-utilisateur (ou tout compte + avec un IDentifiant utilisateur de 0) peut ouvrir une session sur + ce port. Les ports non-sécurisés n'autorisent pas l'ouverture de + session super-utilisateur.</para> + + <para>Comment utiliser les ports sécurisés et non sécurisés?</para> + + <para>Lorsqu'un port est non sécurisé, le terminal qui y est + connecté n'autorise pas l'ouverture de session super-utilisateur. + Les gens qui connaissent le mot de passe super-utilisateur de + votre système FreeBSD devront d'abord se connecter sous un compte + utilisateur ordinaire. Ils devront ensuite utiliser la commande + <command>su</command> pour avoir les droits du + super-utilisateur.</para> + + <para>Grâce à cela, vous aurez deux enregistrements pour pouvoir + repérer les accès super-utilisateur illégitimes: les deux + commandes <command>login</command> et <command>su</command> + rapportent leur emploi dans le fichier de trace système + (les ouvertures de sessions sont aussi enregistrées dans le + fichier <filename>wtmp</filename>).</para> + + <para>Lorsque le port est sécurisé, l'ouverture de session + super-utilisateur est autorisée depuis le terminal. Les gens + qui connaissent le mot de passe super-utilisateur peuvent + directement se connecter en tant que tel. + Vous n'avez plus les traces potentiellement utiles de + l'ouverture de session et de l'utilisation de + <command>su</command>.</para> + + <para>Que devez-vous utiliser?</para> + + <para>Utilisez “non sécurisé”. Utilisez + “non sécurisé” <emphasis>même</emphasis> pour les + terminaux qui ne sont <emphasis>pas</emphasis> accessibles à tout + le monde ou sont dans des locaux fermés à clé. Il est facile + d'ouvrir une session et d'utiliser <command>su</command> quand + vous avez besoin des droits du super-utilisateur.</para> + + <para>Voici finalement les entrées complètes du fichier + <filename>/etc/ttys</filename> accompagnées d'un commentaire + qui indique où se trouvent les terminaux:</para> + + <programlisting> +ttyd1 "/usr/libexec/getty std.38400" wy50 on insecure # Cuisine +ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure # Salle de bains + </programlisting> + + </sect3> + + <sect3 id="term-hup"> + <title>Obliger <command>init</command> à relire le fichier + <filename>/etc/ttys</filename></title> + + <para>Quand vous démarrez FreeBSD, le premier processus, + <command>init</command>, lit le fichier + <filename>/etc/ttys</filename> et démarre les programmes + listés pour chacun des ports activés, pour afficher + l'invite de session.</para> + + <para>Après avoir modifié <filename>/etc/ttys</filename>, vous + aimeriez ne pas avoir à redémarrer le système pour + qu'<command>init</command> voit vos modifications. C'est pourquoi + <command>init</command> relit <filename>/etc/ttys</filename> + lorsqu'il reçoit un signal SIGHUP (“hang up” - raccrocher).</para> + + <para>Donc, après avoir sauvegardé vos modifications au fichier + <filename>/etc/ttys</filename>, envoyez un + <literal>SIGHUP</literal> à <command>init</command> en tapant: + <informalexample> + <screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen> + </informalexample> (Le processus <command>init</command> + a <emphasis>toujours</emphasis> l'IDentifiant de + processus 1.)</para> + + <para>Si la configuration est correcte, les câbles en place, les + terminaux sous tension, vous devriez voir les invites de session. + Vos terminaux sont prêts à être utilisés pour la première + fois!</para> + + </sect3> + </sect2> + + <sect2 + id="term-debug"> + <title>Régler les problèmes liés à votre connection</title> + + <para>Même en ayant porté la plus méticuleuse attention aux détails, + il peut toujours y avoir quelque chose qui ne va pas lorsque vous + installez un terminal. Voici une liste de symptômes et de + suggestions de solutions.</para> + + <variablelist> + <varlistentry><term>L'invite de session n'apparaît pas.</term> + <listitem> + <para>Vérifiez que le terminal est branché et sous tension. Si + c'est un ordinateur personnel utilisé comme terminal, + vérifiez qu'il utilise bien le logiciel d'émulation de + terminal sur le bon port.</para> + + <para>Assurez-vous que le câble est solidement raccordé sur le + terminal et sur la machine FreeBSD. Vérifiez que c'est le + bon type de câble.</para> + + <para>Contrôlez que le terminal et FreeBSD utilisent la même + vitesse en bps et le même contrôle de parité. Si c'est un + terminal vidéo, vérifiez que les contrôles de luminosité et + de contraste ne soient pas au minimum. Si c'est un terminal + papier, vérifiez qu'il y ait du papier et de l'encre.</para> + + <para>Vérifiez qu'il y ait bien un processus + <command>getty</command> qui s'exécute pour ce terminal. + Tapez:</para> + + <informalexample> + <screen>&prompt.root; <userinput>ps -axww|grep getty</userinput></screen> + </informalexample> + <para>pour avoir la liste des processus + <command>getty</command> actifs. Vous devriez voir une + entrée pour le terminal. Par exemple, la ligne + suivante:</para> + + <informalexample> + <screen>22189 d1 Is+ 0:00.03 /usr/libexec/getty std.38400 ttyd1</screen> + </informalexample> + <para>montre qu'il y a un <command>getty</command> qui + s'exécute sur le port série <literal>ttyd1</literal> et + utilise l'entrée <literal>std.38400</literal> de + <filename>/etc/gettytab</filename>.</para> + + <para>S'il n'y a pas de processus <command>getty</command> + actif, assurez-vous que vous avez activé le port dans + <filename>/etc/ttys</filename>. Avez-vous aussi bien + exécuté <command>kill -HUP 1</command>?</para> + </listitem> + </varlistentry> + + <varlistentry><term>Il y a n'importe quoi à la place de l'invite + de session.</term> + + <listitem> + <para>Vérifiez que le terminal et FreeBSD définissent la + même vitesse et le même contrôle de parité. Assurez-vous + que le processus <command>getty</command> utilise le bon + type de <replaceable>getty</replaceable>. Dans le cas + contraire, corrigez + <filename>/etc/ttys</filename> et exécutez + <command>kill -HUP 1</command>.</para> + </listitem> + </varlistentry> + + <varlistentry><term>Les caractères sont redoublés; le mot de passe + s'affiche quand on le tape.</term> + + <listitem> + <para>Passez le terminal (ou le logiciel d'émulation de + terminal) du mode “half duplex” ou “echo + local” en mode “full + duplex”.</para> + </listitem> + </varlistentry> + </variablelist> + + + </sect2> + </sect1> + + <sect1 id="dialup"> + <title>Connexions téléphoniques</title> + + <para><emphasis>Contribution de &a.ghelmer;.</emphasis></para> + + <para>Ce document donne des indications sur la configuration d'un + système FreeBSD pour qu'il accepte des connexions entrantes par + modem. Ce document est basé sur l'expérience de son auteur avec + les versions 1.0, 1.1 et 1.1.5.1 de FreeBSD (et l'expérience de + configuration de modems sur d'autres systèmes d'exploitation de + type Unix); il se peut cependant qu'il ne réponde pas à toutes + vos questions et ne vous donne pas d'exemple suffisamment + adapté à votre environnement. L'auteur ne saurait être tenu + responsable des dégats que vous causeriez à vos systèmes ou + des données que vous perdriez en essayant de suivre les suggestions + qui vous sont données ici.</para> + + <sect2 id="dialup-prereqs"> + <title>Prérequis</title> + + <para>Pour commencer, l'auteur suppose que vous connaissez déjà + FreeBSD. Il vous faudra un système FreeBSD installé. Vous devez + savoir éditer des fichiers dans un environnement Unix et lire + les pages de manuel. Comme précisé plus bas, il vous faudra des + versions précises de FreeBSD, un minimum de vocabulaire et + connaître les modems et le câblage.</para> + + <sect3> + <title>Version de FreeBSD</title> + + <para>On suppose tout d'abord que vous utilisez la version 1.1 de + FreeBSD ou une version ultérieure (y compris les versions 2.x). + La version 1.0 de FreeBSD comportait deux pilotes de périphérique + série différents, ce qui complique la situation. Le pilote de + périphérique série (<devicename>sio</devicename>) a aussi été + largement amélioré avec chaque version successive de FreeBSD, + les versions plus récentes de FreeBSD ont donc en principe des + pilotes meilleurs et plus efficaces que les versions plus + anciennes.</para> + + </sect3> + + <sect3> + <title>Terminologie</title> + + <para>Une revue rapide de la terminologie:</para> + + <variablelist> + <varlistentry><term>bps</term> + <listitem> + <para>Bits par seconde - la vitesse à laquelle les + informations sont transmises.</para> + </listitem> + </varlistentry> + + <varlistentry><term>DTE</term> + + <listitem> + <para>Data Terminal Equipment - dispositif de traitement + de données - Par exemple, votre ordinateur.</para> + </listitem> + </varlistentry> + + <varlistentry><term>DCE</term> + + <listitem> + <para>Data Communications Equipment - dispositif de + communication - votre modem.</para> + </listitem> + </varlistentry> + + <varlistentry><term>RS-232</term> + + <listitem> + <para>Standard EIA pour les communications série + physiques.</para> + </listitem> + </varlistentry> + </variablelist> + + <para>S'il vous faut plus d'informations sur ces termes et sur les + transmissions de données en général, l'auteur se rappelle avoir + lu que la <emphasis>Bible RS-232</emphasis> (quelqu'un connaît + l'ISBN?) est une bonne référence.</para> + + <para>Pour parler de la vitesse de transmission des informations, + l'auteur n'utilise pas le terme “baud”. Baud désigne + le nombre de transitions d'état électrique qui peuvent se + produire sur une période de temps donnée, alors que + “bps” (bits par seconde) est le terme + “correct” à employer (au moins, il ne dérange pas + autant les adeptes de la quadri-section capillaire).</para> + + </sect3> + + <sect3> + <title>Modems externes vs. modems internes</title> + + <para>Les modems externes semblent plus adaptés aux communications + à la demande, parce qu'ils peuvent être configurés de façon + quasi-permanente grâce à leurs paramètres enregistrés en mémoire + non volatile et disposent habituellement de voyants lumineux + qui affichent les signaux RS-232 les plus importants. Les lumières + impressionnent les visiteurs, mais elles sont aussi très utiles + pour savoir si les modems fonctionnent correctement.</para> + + <para>Les modems internes ne disposent pas généralement de mémoire + non volatile, leur configuration peut se limiter au positionnement + de cavaliers. Quand ils disposent de voyants, ils sont + la plupart du temps difficilement visibles quand le boitier est + refermé.</para> + + </sect3> + + <sect3> + <title>Modems et Câbles</title> + + <para>On suppose que vous avez un minumum de notions sur le + sujet:</para> + + <itemizedlist> + + <listitem> + <para>Vous savez connecter votre modem à votre ordinateur + de façon à ce qu'ils puissent communiquer (à moins que vous + n'ayez un modem interne qui n'a pas besoin de câble).</para> + </listitem> + + <listitem> + <para>Vous maîtrisez le jeu de commandes de votre modem, ou + savez où trouver les commandes dont vous avez besoin.</para> + </listitem> + + <listitem> + <para>Vous savez configurer votre modem (a priori avec un + programme de communication pour terminal) de facon à définir + ses paramètres en mémoire non volatile.</para> + </listitem> + + </itemizedlist> + + <para>La première étape, connecter le modem, est généralement + simple - la plupart des câbles séries standard fonctionneront + sans problème. Vous aurez besoin du câble avec les bons + connecteurs (DB-25 ou DB-9, et mâle ou femelle) à chaque + extrémité, et il vous faudra un câble DCE-à-DTE avec le + brochage suivant:</para> + + <itemizedlist> + + <listitem> + <para>Donnée émise (“Send Data”, + <abbrev>SD</abbrev>),</para> + </listitem> + + <listitem> + <para>Donnée reçue (“Received Data”, + <abbrev>RD</abbrev>),</para> + </listitem> + + <listitem> + <para>Demande d'émission (“Ready To Send”, + <abbrev>RTS</abbrev>),</para> + </listitem> + + <listitem> + <para>Prêt à émettre (“Clear To Send”, + <abbrev>CTS</abbrev>),</para> + </listitem> + + <listitem> + <para>Données prêtes (“Data Set Ready”, + <abbrev>DSR</abbrev>),</para> + </listitem> + + <listitem> + <para>Disponible (“Data Terminal Ready”, + <abbrev>DTR</abbrev>),</para> + </listitem> + + <listitem> + <para>Détection de porteuse(“Carrier Detect”, + <abbrev>CD</abbrev>),</para> + </listitem> + + <listitem> + <para>Terre (“Signal Ground”, + <abbrev>SG</abbrev>).</para> + </listitem> + + </itemizedlist> + + <para>FreeBSD a besoin des signaux <abbrev>RTS</abbrev> et + <abbrev>CTS</abbrev> pour le contrôle de flux matériel aux + vitesses supérieures à 2400bps, du signal <abbrev>CD</abbrev> + pour savoir quand la ligne décroche et quand elle raccroche et + du signal <abbrev>DTR</abbrev> pour réinitialiser le modem en + fin de session. Certains câbles ne transmettent pas tous les + signaux, donc, si vous avez des problèmes, comme par exemple, + si la session reste ouverte alors que la ligne a raccroché, + cela peut être un problème de câble.</para> + + <para>Le deuxième prérequis dépend du type de modem(s) que vous + utilisez. Si vous ne connaissez pas les commandes de votre + modem par coeur, gardez le guide de référence ou le manuel + utilisateur de votre modem à portée de main. Des exemples + de commandes seront donnés pour les modems externes + USR Sportster 14.400, qui peuvent vous servir de référence pour + les commandes de votre propre modem.</para> + + <para>Enfin, vous devez savoir comment configurer votre modem pour + qu'il marche correctement avec FreeBSD. Comme les autres systèmes + d'exploitation de type Unix, FreeBSD utilise les signaux matériels + pour savoir quand la ligne a décroché ou raccroché et pour + réinitialiser le modem quand la communication est terminée. + FreeBSD vous évite d'avoir à envoyer des commandes au modem ou + à vérifier ses informations d'état. Si vous avez l'habitude de + connecter des modems à de systèmes de discussions + (“BBS”) sur PC, cela vous semblera + peut-être gênant.</para> + + </sect3> + + <sect3> + <title>A propos de l'interface série</title> + + <para>FreeBSD supporte les interfaces de communication construites + autour des NS8250, NS16450, NS16550, et NS16550A EIA RS-232C + (CCITT V.24). Les périphériques 8250 et 16450 ont des tampon d'un + caractère. Le 16550 a un tampon de 16 caractères, qui offre de + meilleures performances. (Un bogue dans la version 16650 empêche + de se servir du tampon de 16 caractères, utilisez donc si possible + le modèle 16650A). Parce qu'un tampon d'un seul caractère demande + plus de traitement au système d'exploitation qu'un tampon de 16 + caractères, les cartes à base de 16650A sont recommandées. Si le + système a de nombreux ports série actifs ou si la charge doit être + importante, les cartes 16650A sont préférables pour avoir un taux + d'erreur de communication plus faible.</para> + + </sect3> + </sect2> + + <sect2> + <title>Résumé</title> + + <para>Voici comment FreeBSD accepte des communications téléphoniques + entrantes. Un processus <command>getty</command>, lancé par + <command>init</command>, attend patiemment le moment d'ouvrir le + port série qui lui est assigné (<filename>/dev/ttyd0</filename>, + dans notre exemple). On peut le voir avec la commande + <command>ps ax</command>:</para> + + <informalexample> + <screen> 4850 ?? I 0:00.09 /usr/libexec/getty V19200 ttyd0</screen> + </informalexample> + + <para>Quand un utilisateur appelle, la connexion s'établit avec le + modem. Le modem active le signal <abbrev>CD</abbrev>. Le noyau + s'aperçoit qu'une porteuse a été détectée et ouvre le port via + <command>getty</command>. <command>getty</command> envoie l'invite + <prompt>login:</prompt> à la vitesse initialement définie pour cette + ligne. <command>getty</command> attend de recevoir des caractères + valides, et si, dans un configuration habituelle, il reçoit + n'importe quoi (probablement parce que la vitesse du modem et celle + de <command>getty</command> ne sont pas identiques), + <command>getty</command> essaie d'ajuster la vitesse jusqu'à ce + qu'il reçoive des caractères qui paraissent sensés.</para> + + <para>Souhaitons que <command>getty</command> trouve la bonne vitesse + et que l'utilisateur obtienne l'invite <prompt>login:</prompt>. + Une fois que l'utilisateur a répondu par son nom, + <command>getty</command> exécute + <filename>/usr/bin/login</filename>, qui termine l'ouverture de la + session en demandant à l'utilisateur son mot de passe et en lançant + l'interpréteur de commandes affecté à cet utilisateur.</para> + + <para>Passons donc à la configuration...</para> + + </sect2> + + <sect2> + <title>Configuration du noyau</title> + + <para>Les noyaux de FreeBSD sont habituellement livrés prêts à + tester la présence de quatre ports série, connus dans le monde + PC-DOS sous les noms de <devicename>COM1:</devicename>, + <devicename>COM2:</devicename>, <devicename>COM3:</devicename>, + et <devicename>COM4:</devicename>. FreeBSD peut aussi gérer les + cartes série multi-ports “passives”, comme les cartes + Boca 1008 et 2016 (reportez-vous s'il vous plaît aux pages de manuel + de <citerefentry><refentrytitle>sio</refentrytitle><manvolnum>4</manvolnum></citerefentry> + pour avoir des informations sur la configuration du noyau si vous + avez une carte série multi-ports). Le noyau par défaut ne recherche, + quant à lui, que les ports COM standards.</para> + + <para>Pour vérifier si votre noyau reconnaît vos ports série, + regardez les messages au démarrage de votre système, ou employez + la commande <command>/sbin/dmesg</command> pour les lister ensuite. + Cherchez en particulier les messages qui commencent par + <literal>sio</literal>. Tuyau: pour ne voir que les messages qui + comportent le mot <literal>sio</literal>, utilisez la + commande:</para> + + <informalexample> + <screen>&prompt.root; <userinput>/sbin/dmesg | grep 'sio'</userinput></screen> + </informalexample> + + <para>Par exemple, sur un système avec quatre ports série, voici les + messages de démarrage du noyau qui concernent les ports + série:</para> + + <informalexample> + <screen>sio0 at 0x3f8-0x3ff irq 4 on isa +sio0: type 16550A +sio1 at 0x2f8-0x2ff irq 3 on isa +sio1: type 16550A +sio2 at 0x3e8-0x3ef irq 5 on isa +sio2: type 16550A +sio3 at 0x2e8-0x2ef irq 9 on isa +sio3: type 16550A</screen> + </informalexample> + + <para>Si votre noyau ne reconnait pas tous vos ports série, vous + devrez probablement recompiler un noyau sur mesure pour votre + système.</para> + + <para>Lisez le chapitre du Manuel de l'Administrateur Système BSD sur + “Générer les noyaux Berkeley avec Config” [que vous + trouverez dans le répertoire + <filename>/usr/src/share/doc/smm</filename>] et les “Options + de Configuration de FreeBSD” [dans + <filename>/sys/conf/options</filename> et dans + <filename>/sys/<replaceable>arch</replaceable>/conf/options.<replaceable>arch</replaceable></filename>, + ou <emphasis>arch</emphasis> vaut par exemple + <filename>i386</filename>] pour plus d'informations sur la + configuration et la recompilation des noyaux. Vous devrez peut-être + installer les sources du noyau, si vous ne l'avez pas déjà fait, + (<filename>srcdist/srcsys.??</filename> pour FreeBSD 1.1, + <filename>srcdist/sys.??</filename> pour FreeBSD 1.1.5.1, + ou les sources de toute la distribution pour FreeBSD 2.0) pour + pouvoir configurer et recompiler des noyaux.</para> + + <para>Créez un fichier de configuration du noyau pour votre système + (si vous ne l'avez pas déjà fait) en allant dans le répertoire + <filename>/sys/i386/conf</filename>. Puis si, vous créez un nouveau + fichier de configuration, copiez le fichier + <filename>GENERICAH</filename> (ou <filename>GENERICBT</filename>, + si vous avez un contrôleur SCSI BusTek avec FreeBSD 1.x) dans + <filename>VOTRESYS</filename>, où <filename>VOTRESYS</filename> + est le nom de votre système, en majuscules. Editez le fichier, et + modifiez les lignes:</para> + + <programlisting> +device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr +device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr +device sio2 at isa? port "IO_COM3" tty irq 5 vector siointr +device sio3 at isa? port "IO_COM4" tty irq 9 vector siointr + </programlisting> + + <para>Vous pouvez commenter ou supprimer les lignes pour les + périphériques que vous n'avez pas. Si vous avez une carte + série multi-ports, comme la carte Boca BB2016, reportez-vous + s'il vous plaît aux pages de manuel de + <citerefentry><refentrytitle>sio</refentrytitle><manvolnum>4</manvolnum></citerefentry> + pour avoir des informations complètes sur les lignes de + configuration pour les cartes série multi-ports. Faites attention + si vous partez d'un fichier de configuration utilisé pour une + version antérieure de FreeBSD, parce que les indicateurs associés + au périphérique peuvent avoir changé d'une version à l'autre.</para> + + <note> + <para><literal>port "IO_COM1"</literal> est l'équivalent de + <literal>port 0x3f8</literal>, + <symbol>IO_COM2</symbol> de <literal>0x2f8</literal>, + <symbol>IO_COM3</symbol> de <literal>0x3e8</literal> et + <symbol>IO_COM4</symbol> de <literal>0x2e8</literal>, qui sont + les adresses respectives les plus courantes de ces ports série; + les interruptions 4, 3, 5, et 9 sont les lignes d'interruption + utilisées habituellement. Notez aussi que les ports série + ordinaires <emphasis>ne peuvent pas</emphasis> partager + d'interruption sur le bus ISA (les cartes multi-ports intègrent + l'électronique nécessaire pour permettre au 16550A de la carte de + partager une ou deux lignes d'interruption).</para> + </note> + + <para>Quand vous avez terminé de corriger votre fichier de + configuration du noyau, utilisez le programme + <command>config</command> en suivant la documentation fournie par + “Générer les noyaux Berkeley avec Config” et les pages + de manuel de + <citerefentry><refentrytitle>config</refentrytitle><manvolnum>8</manvolnum></citerefentry> + pour créer le répertoire de compilation du noyau, puis compilez, + intallez et testez votre nouveau noyau.</para> + + </sect2> + + <sect2> + <title>Fichiers spéciaux de périphérique</title> + + <para>La plupart des périphériques gérés par le noyau sont adressés + par l'intermédiaire de “fichiers spéciaux de + périphérique”, qui se trouvent dans le répertoire + <filename>/dev</filename>. Les périphériques + <devicename>sio</devicename> sont adressés via + <filename>/dev/ttyd<replaceable>?</replaceable></filename> (liaisons + entrantes) et + <filename>/dev/cua0<replaceable>?</replaceable></filename> (liaisons + sortantes). Avec les versions 1.1.5 et ultérieures de FreeBSD, + il y a aussi des fichiers spéciaux d'initialisation + (<filename>/dev/ttyid<replaceable>?</replaceable></filename> et + <filename>/dev/cuai0<replaceable>?</replaceable></filename>) et + des fichiers spéciaux de verrouillage + (<filename>/dev/ttyld<replaceable>?</replaceable></filename> et + <filename>/dev/cual0<replaceable>?</replaceable></filename>). Les + fichiers d'initialisation sont utilisés pour initialiser les + paramètres de communication du port chaque fois qu'il est ouvert, + comme <literal remap="tt">crtscts</literal> pour les modems qui + emploient les signaux <literal>CTS/RTS</literal> pour le contrôle + de flux. Les fichiers de verrouillage sont utilisés pour + verrouiller des indicateurs sur les ports pour empêcher les + utilisateurs ou les programmes de modifier certains paramètres; voyez + les pages de manuel de + <citerefentry><refentrytitle>termios</refentrytitle><manvolnum>4</manvolnum></citerefentry>, + <citerefentry><refentrytitle>sio</refentrytitle><manvolnum>4</manvolnum></citerefentry> et + <citerefentry><refentrytitle>stty</refentrytitle><manvolnum>1</manvolnum></citerefentry> + pour plus d'informations sur le paramétrage des terminaux, le + verrouillage et l'initialisation des périphériques et la définition + des options pour les terminaux, respectivement.</para> + + <sect3> + <title>Créer les fichiers spéciaux de périphérique</title> + + <para>La procédure <command>MAKEDEV</command> du répertoire + <filename>/dev</filename> gère les fichiers spéciaux de + périphérique. (Les pages de manuel + <citerefentry><refentrytitle>MAKEDEV</refentrytitle><manvolnum>8</manvolnum></citerefentry> + de FreeBSD 1.1.5 comportent pas mal d'erreurs sur ce qui concerne + les ports <acronym>COM</acronym>, donc ignorez-les.) Pour utiliser + <command>MAKEDEV</command> pour créer les fichiers spéciaux de + périphérique pour les connexions sur + <devicename>COM1:</devicename> (port 0), allez avec + <command>cd</command> dans <filename>/dev</filename> et tapez la + commande <command>MAKEDEV ttyd0</command>. De même, pour créer + les fichiers spéciaux de périphérique pour + <devicename>COM2:</devicename> (port 1), utilisez + <command>MAKEDEV ttyd1</command>.</para> + + <para>La commande <command>MAKEDEV</command> ne crée pas uniquement + les fichiers + <filename>/dev/ttyd<replaceable>?</replaceable></filename>, + mais aussi les fichiers + <filename>/dev/cua0<replaceable>?</replaceable></filename> + (et tous les fichiers d'initialisation et de verrouillage à partir + de la version 1.1.5 de FreeBSD) + et supprime le fichier spécial pour le terminal physique + <filename>/dev/tty0<replaceable>?</replaceable></filename>, + s'il existe.</para> + + <para>Après avoir créé les nouveaux fichiers spéciaux de + périphérique, vérifiez les droits sur ces fichiers (en + particulier sur les fichiers <filename>/dev/cua*</filename>) + pour vous assurer que seuls les utilisateurs qui doivent y + accéder peuvent lire et écrire dessus - vous ne voulez + probablement pas que l'utilisateur ordinaire puisse utiliser + vos modems pour se connecter à l'extérieur. Les autorisations + par défaut sur les fichiers <filename>/dev/cua*</filename> + devraient suffire:</para> + + <informalexample> + <screen>crw-rw---- 1 uucp dialer 28, 129 Feb 15 14:38 /dev/cua01 +crw-rw---- 1 uucp dialer 28, 161 Feb 15 14:38 /dev/cuai01 +crw-rw---- 1 uucp dialer 28, 193 Feb 15 14:38 /dev/cual01</screen> + </informalexample> + + <para>Ces droits autorisent l'utilisateur <username>uucp</username> + et les utilisateurs du groupe <username>dialer</username> à se + servir des périphériques d'appel vers l'extérieur.</para> + + </sect3> + </sect2> + + <sect2> + <title>Fichiers de Configuration</title> + + <para>Il y a trois fichiers de configuration du système dans le + répertoire <filename>/etc</filename> que vous devrez probablement + éditer pour autoriser les accès téléphoniques à votre système + FreeBSD. Le premier, <filename>/etc/gettytab</filename>, contient + les informations de configuration pour le “démon” + <filename>/usr/libexec/getty</filename>. Le second, + <filename>/etc/ttys</filename> contient les informations qui disent + à <filename>/sbin/init</filename> sur quels périphériques + <filename>tty</filename> doivent s'exécuter des processus + <command>getty</command>. Enfin, vous pouvez mettre les commandes + d'initialisation de ports dans la procédure + <filename>/etc/rc.serial</filename> si vous utilisez FreeBSD + 1.1.5.1 ou ultérieurs; sinon, vous pouvez initialiser les ports + dans la procédure <filename>/etc/rc.local</filename>.</para> + + <para>Il y a deux écoles de pensée pour ce qui concerne la + configuration des modems sous Unix. La première préfère + configurer ses systèmes et ses modems de façon à ce que quelque + soit la vitesse à laquelle l'utilisateur se connecte, l'interface + RS-232 entre le système et le modem travaille toujours à la même + vitesse. L'avantage de cette méthode est que l'utilisateur distant + obtient toujours immédiatement l'invite de session. L'inconvénient + est que le système ne sait pas quelle est la vitesse réelle de la + connexion, de sorte que les programmes plein-écran comme Emacs + n'adaptent pas leur mode d'affichage pour améliorer leurs temps de + réponse avec des connexions lentes.</para> + + <para>L'autre école configure les interfaces RS-232 de ses modems de + façon à ce qu'elles adaptent leur vitesse en fonction de la vitesse + de la connexion de l'utilisateur. Par exemple, les connexions + V.32bis (14.4 Kbps) au modem feront fonctionner l'interface RS-232 + du modem à 19.2 Kbps, alors que les connexions à 2400 bps la feront + fonctionner à 2400 bps. Comme <command>getty</command> ne comprend + pas les informations que fournit le modem sur sa vitesse, + <command>getty</command> affiche le message <prompt>login:</prompt> + à la vitesse initiale et consulte la réponse qu'il reçoit. Si les + utilisateurs voient n'importe quoi, ils sont censés savoir qu'ils + doivent appuyer sur la touche <literal><Entrée></literal> + jusqu'à ce qu'ils obtiennent une invite lisible. Si les vitesses + ne correspondent pas, <command>getty</command> reçoit n'importe + quoi quoi que l'utilisateur tape, essaie de passer à la vitesse + suivante et renvoie l'invite <prompt>login:</prompt>. Cela peut + durer indéfiniment, mais il suffit normalement d'un ou deux essais + pour que l'utilisateur obtienne le message correct. Bien entendu, + cette méthode d'ouverture de session n'est pas aussi propre que la + première, mais un utilisateur dont la connexion est lente obtiendra + de meilleurs temps de réponse des logiciels plein-écran.</para> + + <para>L'auteur essaiera de donner des informations de configuration + objectives, mais la méthode qui consiste à ajuster la vitesse + du modem à celle de la connexion a sa préférence.</para> + + <sect3> + <title><filename>/etc/gettytab</filename></title> + + <para><filename>/etc/gettytab</filename> est un fichier de type + <citerefentry><refentrytitle>termcap</refentrytitle><manvolnum>5</manvolnum></citerefentry> + qui contient les informations de configuration de + <citerefentry><refentrytitle>getty</refentrytitle><manvolnum>8</manvolnum></citerefentry>. + Reportez-vous s'il vous plaît aux pages de manuel de + <citerefentry><refentrytitle>gettytab</refentrytitle><manvolnum>5</manvolnum></citerefentry> + pour une description complète du format de ce fichier et la liste + des fonctionnalités.</para> + + <sect4> + <title>Configuration à vitesse fixée</title> + + <para>Si vous verrouillez la vitesse de communication avec votre + modem à une valeur donnée, vous n'aurez probablement pas à + modifier le fichier <filename>/etc/gettytab</filename>.</para> + + </sect4> + + <sect4> + <title>Configuration avec adaptation de la vitesse</title> + + <para>Vous devrez définir une entrée dans + <filename>/etc/gettytab</filename> pour fournir à + <command>getty</command> des informations sur la vitesse à + laquelle vous voulez utiliser votre modem. Si vous avez un modem + 2400 bps, vous pouvez probablement utiliser l'entrée + <literal>D2400</literal>. Cette entrée existe déjà dans le + fichier <filename>gettytab</filename> de FreeBSD 1.1.5.1, vous + n'avez pas besoin de l'ajouter, à moins qu'elle n'existe pas + dans votre version de FreeBSD:</para> + + <programlisting> +# +# Terminaux (via téléphone) rapides +# sélection 2400/1200/300 (dans l'un ou l'autre sens) +# +D2400|d2400|Accès-Rapide-2400:\ + :nx=D1200:tc=2400-baud: +3|D1200|Accès-Rapide-1200:\ + :nx=D300:tc=1200-baud: +5|D300|Accès-Rapide-300:\ + :nx=D2400:tc=300-baud: + </programlisting> + + <para>Si vous avez un modem plus rapide, vous devrez certainement + ajouter une entrée à <filename>/etc/gettytab</filename>; voici + ce que vous pourriez utiliser pour un modem à 14.4 Kbps pour + une vitesse maximum de l'interface de 19.2 Kbps:</para> + + <programlisting> +# +# Ajouts pour un modem V.32bis +# +um|V300|Modem Grande Vitesse à 300,8-bit:\ + :nx=V19200:tc=std.300: +un|V1200|Modem Grande Vitesse à 1200,8-bit:\ + :nx=V300:tc=std.1200: +uo|V2400|Modem Grande Vitesse à 2400,8-bit:\ + :nx=V1200:tc=std.2400: +up|V9600|Modem Grande Vitesse à 9600,8-bit:\ + :nx=V2400:tc=std.9600: +uq|V19200|Modem Grande Vitesse à 19200,8-bit:\ + :nx=V9600:tc=std.19200: + </programlisting> + + <para>Avec FreeBSD 1.1.5 et ultérieurs, cela donnera une connexion + 8-bit sans contrôle de parité. Avec FreeBSD 1.1, ajoutez les + paramètres <literal>:np:</literal> aux entrées + <literal>std.<replaceable>xxx</replaceable></literal> + en début de fichier, pour 8 bits, sans parité; sinon, le + paramètrage par défaut est à 7 bits, parité paire.</para> + + <para>Avec l'exemple ci-dessus, la communication se fait + initialement à 19.2 Kbps (pour une connexion V.32bis), puis + passe à 9600 bps (pour V.32), 2400 bps, 1200 bps, 300 bps, et de + nouveau à 19.2 Kbps. Ce parcours des vitesses est implémenté + par la fonctionnalité <literal>nx=</literal> (“next + table” - table suivante). Chaque ligne + comporte une entrée <literal>tc=</literal> (“table + continuation” - suite de la table) pour utiliser + le reste de la configuration “standard” pour + une vitesse donnée.</para> + + <para>Si vous avez un modem à 28.8 Kbps modem et/ou voulez + profiter de la compression sur un modem à 14.4 Kbps, + vous devez utiliser une vitesse de communication supérieure à + 19.2 Kbps. Voici un exemple d'entrée + <filename>gettytab</filename> commençant à 57.6 Kbps:</para> + + <programlisting> +# +# Ajout pour un modem V.32bis ou V.34 +# On commence à 57.6 Kbps +# +vm|V300|Modem Très Grande Vitesse à 300,8-bit:\ + :nx=V19200:tc=std.300: +vn|V1200|Modem Très Grande Vitesse à 1200,8-bit:\ + :nx=V300:tc=std.1200: +vo|V2400|Modem Très Grande Vitesse à 2400,8-bit:\ + :nx=V1200:tc=std.2400: +vp|V9600|Modem Très Grande Vitesse à 9600,8-bit:\ + :nx=V2400:tc=std.9600: +vq|V57600|Modem Très Grande Vitesse à 57600,8-bit:\ + :nx=V2400:tc=std.9600: + </programlisting> + + <para>Si vous avez une CPU lente ou un système très chargé et pas + de port série à base de 16550, vous aurez peut-être des erreurs + “silo” de sio à 57.6 Kbps.</para> + + </sect4> + </sect3> + + <sect3 + id="dialup-ttys"> + <title><filename>/etc/ttys</filename></title> + + <para><filename>/etc/ttys</filename> est la liste des + <filename>ttys</filename> qu'<command>init</command> doit gérer. + <filename>/etc/ttys</filename> fournit aussi des informations + de sécurité à <command>login</command> (le super-utilisateur + <username>root</username> ne peut ouvrir de session que sur des + <filename>ttys</filename> mentionnés comme + <literal>secure</literal>). Voyez les pages de manuel de + <citerefentry><refentrytitle>ttys</refentrytitle><manvolnum>5</manvolnum></citerefentry> pour plus d'informations.</para> + + <para>Vous devrez soit modifier les lignes existantes de + <filename>/etc/ttys</filename>, soit ajouter de nouvelles lignes, + pour qu'<command>init</command> exécute automatiquement + les processus <command>getty</command> sur vos nouveaux ports + d'appel. Le format général de la ligne sera le même, que vous + utilisiez une configuration avec vitesse verrouilllée ou + non:</para> + + <programlisting> +ttyd0 "/usr/libexec/getty xxx" dialup on + </programlisting> + + <para>Le premier champ de la ligne ci-dessus est le fichier spécial + de périphérique pour cette entrée - <literal>ttyd0</literal> + signifie que <filename>/dev/ttyd0</filename> est le fichier que ce + <command>getty</command> surveillera. Le second champ, + <literal>"/usr/libexec/getty + <replaceable>xxx</replaceable>"</literal> + (<replaceable>xxx</replaceable> est à remplacer par la + fonctionnalité initiale de <filename>gettytab</filename>) est le + processus qu'<command>init</command> lancera pour ce périphérique. + Le troisième champ, <literal>dialup</literal>, est le type de + terminal par défaut. Le quatrième paramètre, + <literal>on</literal>, indique à <command>init</command> que cette + ligne est opérationnelle. Il peut y avoir un cinquième paramètre, + <literal>secure</literal>, mais il ne faut l'utiliser que pour + les terminaux qui sont physiquement “sécurisés”, + comme la console système.</para> + + <para>Le type de terminal par défaut (<literal>dialup</literal> dans + l'exemple précédent) peut dépendre de vos préférences. + <literal>dialup</literal> est le terminal + par défaut traditionnel pour les lignes téléphoniques, de façon + à ce que les utilisateurs puissent adapter leur procédure + d'ouverture de session pour qu'elle sache que c'est un terminal + <literal>dialup</literal> et ajuste en conséquence son type de + de terminal. L'auteur préfère quant à lui utiliser + <literal>vt102</literal> comme type de terminal par défaut sur + son site, car ses utilisateurs emploient l'émulation VT102 sur + leurs systèmes distants.</para> + + <para>Après avoir modifié + <filename>/etc/ttys</filename>, vous pouvez envoyer au processus + <command>init</command> un signal <acronym>HUP</acronym> + pour qu'il relise le fichier. Utilisez la commande:</para> + + <informalexample> + <screen>&prompt.root; <userinput>kill -1 1</userinput></screen> + </informalexample> + + <para>pour envoyer ce signal. Si c'est la première fois que vous + configurer ce système, vous pouvez toutefois attendre que vos + modems soient correctement configurés et connectés avant + d'envoyer un signal à <command>init</command>.</para> + + <sect4> + <title>Configuration à vitesse fixée</title> + + <para>Dans une configuration où la vitesse est fixée, il faut + une entrée destinée à <command>getty</command> dans le fichier + <filename>ttys</filename>. Avec un modem pour lequel la vitesse + du port série est fixée à 19.2 Kbps, l'entrée de + <filename>ttys</filename> ressemblera à:</para> + + <programlisting> +ttyd0 "/usr/libexec/getty std.19200" dialup on + </programlisting> + + <para>Si vous utilisez une vitesse différente, remplacez + l'entrée <literal>std.19200</literal> par l'entrée + <literal>std.<replaceable>vitesse</replaceable></literal> + appropriée à la vitesse de transmission de votre modem + d'après la définition qui en est donnée dans le fichier + <filename>/etc/gettytab</filename>.</para> + + </sect4> + + <sect4> + <title>Configuration avec adaptation de la vitesse</title> + + <para>Dans une configuration où la vitesse s'adapte à celle + de la connexion, l'entrée dans votre fichier + <filename>ttys</filename> doit faire référence à l'entrée + “auto-baud” (sic) initiale de + <filename>/etc/gettytab</filename>. Avec l'exemple donné + plus haut pour une configuration avec adaptation de la + vitesse commençant à 19.2 Kbps (entrée de + <filename>gettytab</filename> avec <literal>V19200</literal> + pour point de départ), l'entrée de + <filename>ttys</filename> ressemblera à:</para> + + <programlisting> +ttyd0 "/usr/libexec/getty V19200" dialup on + </programlisting> + </sect4> + </sect3> + + <sect3> + <title><filename>/etc/rc.serial</filename> ou + <filename>/etc/rc.local</filename></title> + + <para>Les modems à haut débit, comme les modems V.32, V.32bis, + et V.34, doivent utiliser le contrôle de flux matériel + (<filename>RTS/CTS</filename>). Vous pouvez ajouter des commandes + <command>stty</command> dans <filename>/etc/rc.serial</filename>, + pour FreeBSD 1.1.5.1 et ultérieurs, ou + <filename>/etc/rc.local</filename> pour FreeBSD 1.1, pour + positionner l'indicateur de contrôle de flux matériel du noyau + de FreeBSD sur les ports où sont les modems.</para> + + <para>Voici un extrait d'un fichier + <filename>/etc/rc.serial</filename> d'exemple pour un système + FreeBSD 1.1.5.1:</para> + + <programlisting> +#!/bin/sh +# +# Configuration initiale des ports série + +stty -f /dev/ttyid1 crtscts +stty -f /dev/cuai01 crtscts + </programlisting> + + <para>Cela positionne l'indicateur <literal>crtscts</literal> + de <literal>termios</literal> pour les fichiers spéciaux + d'initialisation des connexions entrantes et sortantes + sur le port série numéro 1 + (<devicename>COM2:</devicename>).</para> + + <para>Sur un vieux système FreeBSD 1.1, ces entrées devaient + être ajoutées au fichier <filename>/etc/rc.local</filename> pour + positionner l'indicateur <literal>crtscts</literal> pour les + périphériques:</para> + + <programlisting> +# Configurer les ports série pour utiliser le contrôle de flux RTS/CTS +stty -f /dev/ttyd0 crtscts +stty -f /dev/ttyd1 crtscts +stty -f /dev/ttyd2 crtscts +stty -f /dev/ttyd3 crtscts + </programlisting> + + <para>Comme il n'y avait pas de fichiers spéciaux d'initialisation + dans FreeBSD 1.1, il suffisait de positionner les indicateurs + pour les fichiers spéciaux de périphériques, et d'espérer qu'ils + ne seraient pas réinitialisés par un petit malin.</para> + + </sect3> + </sect2> + + <sect2> + <title>Configuration des modems</title> + + <para>Si vous avez un modem dont le paramétrage est enregistré en + mémoire RAM non volatile, vous devrez utiliser un programme de + terminal (comme Telix sous PC-DOS ou <command>tip</command> sous + FreeBSD) pour définir ces paramètres. Connectez-vous au modem à + la vitesse de communication initiale que + <command>getty</command> utilise et introduisez en mémoire RAM + non volatile des valeurs telles que:</para> + + <itemizedlist> + + <listitem> + <para>Le signal <abbrev>CD</abbrev> soit activé quand la + ligne est active,</para> + </listitem> + + <listitem> + <para>Le signal <abbrev>DTR</abbrev> soit activé en cours de + fonctionnement; quand le signal <abbrev>DTR</abbrev> tombe, la + ligne raccroche et le modem est réinitialisé,</para> + </listitem> + + <listitem> + <para>Le signal <abbrev>CTS</abbrev> soit activé en fin de + transmission,</para> + </listitem> + + <listitem> + <para>Le contrôle de flux <filename>XON/XOFF</filename> soit + désactivé,</para> + </listitem> + + <listitem> + <para>Le signal <abbrev>RTS</abbrev> soit activé en fin de + réception,</para> + </listitem> + + <listitem> + <para>Le modem soit en mode silencieux (pas de code + retour),</para> + </listitem> + + <listitem> + <para>Il n'y ait pas d'écho des commandes.</para> + </listitem> + + </itemizedlist> + + + <para>Lisez s'il vous plaît la documentation de votre modem + pour savoir quelles commandes et/ou quels positionnements des + cavaliers utiliser.</para> + + <para>Par exemple, pour passer ces paramètres à un modem externe + USRobotics Sportster 14.400, il faudrait lui passer les commandes + suivantes:</para> + + + <programlisting> +ATZ +AT&C1&D2&H1&I0&R2&W + </programlisting> + + <para>Vous pouvez aussi en profiter pour définir d'autres options + de configuration du modem, par exemple, s'il doit utiliser la norme + V.42bis et/ou la compression MNP5.</para> + + <para>Il y a aussi des cavaliers à positionner sur le modem externe + USR Sportster 14.400; pour d'autres modems, la configuration + suivante peut peut-être servir d'exemple:</para> + + <itemizedlist> + + <listitem> + <para>Cavalier 1: HAUT - DTR normal,</para> + </listitem> + + <listitem> + <para>Cavalier 2: Pas d'importance (Codes retour + explicites/numériques),</para> + </listitem> + + <listitem> + <para>Cavalier 3: HAUT - Pas de code retour,</para> + </listitem> + + <listitem> + <para>Cavalier 4: BAS - Pas d'écho, commandes hors-ligne,</para> + </listitem> + + <listitem> + <para>Cavalier 5: HAUT - Réponse automatique,</para> + </listitem> + + <listitem> + <para>Cavalier 6: HAUT - Détection de porteuse normale,</para> + </listitem> + + <listitem> + <para>Cavalier 7: HAUT - Charger les valeurs par défaut depuis + la NVRAM (mémoire non volatile),</para> + </listitem> + + <listitem> + <para>Cavalier 8: Pas d'importance (Mode + intelligent/passif).</para> + </listitem> + + </itemizedlist> + + + <para>Il vaut mieux désactiver les codes retours pour les connexions + entrantes pour éviter les problèmes qui peuvent se produire si + <command>getty</command> envoie une invite <prompt>login:</prompt> + alors que le modem est en mode commande et renvoie soit l'écho de + la commande soit un code retour. J'ai entendu dire que cela peut + engendrer une dialogue absurde et interminable entre + <command>getty</command> et le modem.</para> + + + <sect3> + <title>Configuration à vitesse fixée</title> + + <para>Pour une configuration à vitesse fixée, vous devrez + configurer le modem pour qu'il communique toujours à la + même vitesse avec l'ordinateur, quelle que soit la vitesse + de la ligne. Sur un modem externe USR Sportster + 14.400, les commandes suivantes figeront la vitesse + de communication entre le modem et l'ordinateur à la vitesse + utilisée pour envoyer ces commandes:</para> + + <programlisting> +ATZ +AT&B1&W + </programlisting> + </sect3> + + <sect3> + <title>Configuration avec adaptation de la vitesse</title> + + <para>Dans une configuration où la vitesse peut varier, vous + devrez configurer votre modem pour qu'il ajuste sa vitesse + de communication sur le port série à la vitesse de l'appel + entrant. Sur un modem externe USR Sportster 14.400, les + commandes suivantes figeront la vitesse de transmission avec + corrections d'erreur à la vitesse employée pour passer ces + mêmes commandes, mais autoriseront une vitesse variable pour + les connexions sans correction d'erreur:</para> + + <programlisting> +ATZ +AT&B2&W + </programlisting> + </sect3> + + <sect3> + <title>Vérifier la configuration des modems</title> + + <para>La plupart des modems à haut débit disposent de commandes + pour afficher leurs paramètres opérationnels courants sous + une forme plus ou moins lisible. Sur les modems externes + USR Sportster 14.400, la commande <command>ATI5</command> + affiche les valeurs stockées dans la RAM non volatile. Pour + voir les valeurs réellement utilisées (compte tenu de la + position des cavaliers), utilisez les commandes + <command>ATZ</command> suivie de <command>ATI4</command>.</para> + + <para>Si vous avez une autre marque de modem, consultez le manuel + de votre modem pour savoir comment vérifier les paramètres de + configuration de votre modem.</para> + + </sect3> + </sect2> + + <sect2> + <title>En cas de problème</title> + + <para>Voici différentes étapes à suivre pour vérifier le + fonctionnement des modems sur votre système.</para> + + <sect3> + <title>Tester le système FreeBSD</title> + + <para>Connectez le modem à votre système FreeBSD, redémarrez le + système, et, si votre modem a des voyants d'état lumineux, + regardez si le voyant <abbrev>DTR</abbrev> s'allume lorsque + l'invite <prompt>login:</prompt> s'affiche à la console + système - si c'est la cas, cela veut normalement dire que + FreeBSD a lancé un processus <command>getty</command> sur le port + de communication approprié et attend que le modem reçoive un + appel.</para> + + <para>Si le voyant <abbrev>DTR</abbrev> ne s'allume pas, ouvrez une + session à la console système et passez la commande + <command>ps ax</command> pour voir si FreeBSD essaie bien de + lancer un processus <command>getty</command> sur le bon port. + Parmi les processus affichés, vous devriez voir une ligne comme + celle-ci:</para> + + <informalexample> + <screen> 114 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd0 + 115 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd1</screen> + </informalexample> + + <para>Si vous voyez autre chose, par exemple: + + <informalexample> + <screen> 114 d0 I 0:00.10 /usr/libexec/getty V19200 ttyd0</screen> + </informalexample> + + et que le modem n'a pas encore reçu d'appel, cela veut dire que + <command>getty</command> a déjà ouvert le port de communication. + Cela peut être dû à un problème de câblage ou à un modem mal + configuré, parce que <command>getty</command> ne devrait pas + pouvoir ouvrir le port de communication tant que le signal + <abbrev>CD</abbrev> (détection de porteuse) n'a pas été activé + par le modem.</para> + + <para>S'il n'y a pas de processus <command>getty</command> + prêt à ouvrir le port + <filename>ttyd<replaceable>?</replaceable></filename> voulu, + contrôlez vos entrées dans <filename>/etc/ttys</filename> pour + voir s'il n'y a pas d'erreur. Consultez aussi le fichier de trace + <filename>/var/log/messages</filename> pour voir s'il y a des + messages d'<command>init</command> ou de + <command>getty</command> indiquant un problème. S'il y a des + messages, revérifiez les fichiers de configuration + <filename>/etc/ttys</filename> et + <filename>/etc/gettytab</filename>, et les fichiers spéciaux + de périphériques <filename>/dev/ttyd?</filename> ad hoc, pour + voir s'il y a des erreurs, s'il manque des entrées ou des + fichiers spéciaux.</para> + + </sect3> + + <sect3> + <title>Essayer de se connecter</title> + + <para>Essayez d'ouvrir une connexion par téléphone sur le système; + Veillez à utiliser 8 bits, pas de contrôle de parité et + 1 bit stop sur le système distant. Si vous n'obtenez pas tout de + suite l'invite, ou obtenez n'importe quoi, essayez d'appuyer + plusieurs fois sur <literal><Entrée></literal>, environ une + fois par seconde. Si vous n'obtenez toujours pas l'invite + <prompt>login:</prompt>, essayez d'envoyer un + <command>Attn</command> (<command>BREAK</command>). Si vous + utilisez un modem à haut débit, réessayez de vous connecter + après avoir verrouillé la vitesse de l'interface du modem, + (via <command>AT&B1</command> sur un USR Sportster, par + exemple).</para> + + <para>Si cela ne marche toujours pas, vérifiez encore le fichier + <filename>/etc/gettytab</filename> et contrôlez que:</para> + + <itemizedlist> + + <listitem> + <para>Le nom de la fonctionnalité initiale de + <filename>/etc/ttys</filename> pour cette liaison correspond + bien à celui d'une fonctionnalité définie dans + <filename>/etc/gettytab</filename>,</para> + </listitem> + + <listitem> + <para>Il y a une fonctionnalité <filename>gettytab</filename> + de nom différent pour chaque entrée + <literal>nx=</literal>,</para> + </listitem> + + <listitem> + <para>Il y a une fonctionnalité <filename>gettytab</filename> + de nom différent pour chaque entrée + <literal>tc=</literal>,</para> + </listitem> + + </itemizedlist> + + <para>Si vous appelez mais que le modem sur le système FreeBSD ne + répond pas, assurez-vous que le modem est configuré pour répondre + au téléphone lorsque le signal <abbrev>DTR</abbrev> est actif. Si + le modem semble correctement configuré, vérifiez que le signal + <abbrev>DTR</abbrev> est actif en regardant les voyants lumineux + du modem (s'il en a).</para> + + <para>Si vous avez tout passé en revue plusieurs fois et que cela + ne marche toujours pas, faites une pause et reprenez plus tard. + Si vous en êtes toujours au même point, vous pouvez peut-être + envoyer un courrier électronique à la &a.questions; décrivant + votre modem et votre problème, et les bons samaritains de la + liste essaieront de vous aider.</para> + + </sect3> + </sect2> + + <sect2> + <title>Remerciements</title> + + <para>Merci aux personnes suivantes pour leurs conseils et leurs + commentaires:</para> + + <variablelist> + <varlistentry><term>&a.kelly;</term> + <listitem> + <para>pour nombre d'excellentes suggestions.</para> + </listitem> + </varlistentry> + </variablelist> + + + </sect2> + </sect1> + + <sect1 id="dialout"> + <title>Service d'appel sortant</title> + + <para><emphasis>Informations reprises de la FAQ.</emphasis></para> + + <para>Cette section fournit des indications pour connecter votre + machine à une autre machine par modem. Cela peut servir à ouvrir + une session sur une machine distante.</para> + + <para>C'est aussi utile pour vous connecter à un “BBS”.</para> + + <para>Ce type de connexion peut être très utile pour récupérer un + fichier sur l'Internet si vous avez des problèmes avec PPP. Si vous + avez besoin d'utiliser ftp et que PPP ne fonctionne pas, vous pouvez + le faire en lançant ftp sur la session terminal. Utilisez ensuite + zmodem pour recevoir le fichier sur votre machine.</para> + + <sect2> + <title>Pourquoi ne puis-je pas utiliser <command>tip</command> ou + <command>cu</command>?</title> + + <para>Sur votre système, les programmes <command>tip</command> + et <command>cu</command> ne sont probablement exécutables que par + l'utilisateur <username>uucp</username> et le groupe + <username>dialer</username>. Vous pouvez vous servir du groupe + <username>dialer</username> pour contrôler qui a accès à vos modems + et à vos systèmes distants. Ajoutez-vous donc au groupe + <username>dialer</username>.</para> + + <para>Vous pouvez aussi autoriser tout le monde à utiliser + <command>tip</command> et <command>cu</command> sur votre + système en tapant:</para> + + <informalexample> + <screen>&prompt.root; <userinput>chmod 4511 /usr/bin/tip</userinput></screen> + </informalexample> + + <para>Il est inutile de changer les droits sur la + commande <command>cu</command>, car <command>cu</command> n'est + qu'un lien physique sur <command>tip</command>.</para> + + </sect2> + + <sect2> + <title>Mon modem compatible Hayes n'est pas + supporté, que puis-je faire?</title> + + <para>En fait, les pages de manuel de <command>tip</command> + ne sont pas à jour. Le support générique Hayes y est déjà incorporé. + Mettez simplement <literal>at=hayes</literal> dans votre fichier + <filename>/etc/remote</filename>.</para> + + <para>Le pilote Hayes n'est pas assez intelligent pour reconnaître + les possibilités étendues des nouveaux messages des + modems - <literal>BUSY</literal>, + <literal>NO DIALTONE</literal>, ou <literal>CONNECT 115200</literal> ne feront que lui poser des problèmes. Vous devez désactiver ces + messages quand vous utilisez <command>tip</command> (avec + <command>ATX0&W</command>).</para> + + <para>Par ailleurs, le délai d'appel de <command>tip</command> + est de 60 secondes. Il devra être inférieur sur votre modem, sinon + tip pensera qu'il y a un problème de communication. Essayez + <command>ATS7=45&W</command>.</para> + + <para>Tel que livré, <command>tip</command> ne supporte pas + encore cela complètement. Pour y remédier, il faut éditer le fichier + <filename>tipconf.h</filename> du répertoire + <filename>/usr/src/usr.bin/tip/tip</filename>. Il vous faut + bien évidemment le source pour cela.</para> + + <para>Changez la ligne <literal>#define HAYES + 0</literal> en <literal>#define HAYES + 1</literal>. Puis <command>make</command> et + <command>make install</command>. Tout fonctionnera ensuite + sans problème.</para> + + </sect2> + + <sect2 + id="direct-at"> + <title>Comment dois-je entrer toutes ces commandes AT?</title> + + <para>Mettez ce que l'on appelle une entrée “directe” + dans le fichier <filename>/etc/remote</filename>. Par exemple, + si votre modem est sur le premier port série. + <filename>/dev/cuaa0</filename>, mettez la ligne suivante:</para> + + <programlisting> +cuaa0:dv=/dev/cuaa0:br#19200:pa=none + </programlisting> + + <para>Utilisez la vitesse en bps la plus rapide que votre modem + accepte avec la fonctionnalité br. Tapez alors + <command>tip cuaa0</command> et vous serez connecté à votre + modem.</para> + + <para>S'il n'y a pas de fichier spécial + <filename>/dev/cuaa0</filename> sur votre système, faites la + chose suivante:</para> + + <informalexample> + <screen>&prompt.root; <userinput>cd /dev</userinput> +&prompt.root; <userinput>MAKEDEV cuaa0</userinput></screen> + </informalexample> + + <para>Ou utilisez cu en tant que super-utilisateur avec la + commande:</para> + + <informalexample> + <screen>&prompt.root; <userinput>cu -l<replaceable>ligne</replaceable> -s<replaceable>vitesse</replaceable></userinput></screen> + </informalexample> + + <para><replaceable>ligne</replaceable> est le port série + (e.g. <filename>/dev/cuaa0</filename>) + et <replaceable>vitesse</replaceable> est + la vitesse (e.g. <literal>57600</literal>). Quand vous avez fini + d'entrer vos commandes AT, tapez <command>~.</command> + pour quitter le programme.</para> + + </sect2> + + <sect2> + <title>Le signe <literal>@</literal> ne marche pas avec la fonctionnalité pn!</title> + + <para>Le signe <literal>@</literal> comme numéro de téléphone + dit à tip de lire le numéro de téléphone + dans <filename>/etc/phones</filename>. Mais + <literal>@</literal> est aussi un caractère spécial dans les + fichiers qui définissent des fonctionnalités, + comme <filename>/etc/remote</filename>. Faites-le + précéder d'une barre oblique inverse:</para> + + <programlisting> +pn=\@ + </programlisting> + + </sect2> + + <sect2> + <title>Comment puis-je appeler un numéro de téléphone depuis la + ligne de commande?</title> + + <para>Mettez ce que l'on appelle un entrée “générique” + dans votre fichier <filename>/etc/remote</filename>. Par + exemple:</para> + + <programlisting> +tip115200|Appeler un numéro de téléphone à 115200 bps:\ + :dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du: +tip57600|Appeler un numéro de téléphone à 57600 bps:\ + :dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du: + </programlisting> + + <para>Vous pouvez alors faire la chose suivante:</para> + + <informalexample> + <screen>&prompt.root; <userinput>tip -115200 5551234</userinput></screen> + </informalexample> + + <para>Si vous préférez <command>cu</command> à <command>tip</command>, + mettez une entrée générique pour cu: + + <programlisting> +cu115200|Utiliser cu pour appeler un numéro à 115200bps:\ + :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du: + </programlisting> + et tapez: + + <informalexample> + <screen>&prompt.root; <userinput>cu 5551234 -s 115200</userinput></screen> + </informalexample></para> + </sect2> + + <sect2> + <title>Dois-je préciser la vitesse en bauds à chaque fois?</title> + + <para>Mettez un entrée pour <literal>tip1200</literal> ou + <literal>cu1200</literal>, mais donnez-y la vitesse en bps + voulue avec la fonctionnalité br. <command>tip</command> pense + que 1200 bps est une valeur par défaut convenable et cherche donc + une entrée <literal>tip1200</literal>. Vous n'êtes cependant pas + obligé d'y mettre la vitesse de 1200 bps.</para> + + </sect2> + + <sect2> + <title>Je me connecte à plusieurs machines par l'intermédiaire d'un + concentrateur.</title> + + <para>Au lieu d'attendre d'être connecté et de taper + <command>CONNECT <hôte></command> à chaque fois, + utilisez la fonctionnalité <literal>cm</literal> de tip. Par + exemple, ces entrées dans <filename>/etc/remote</filename>: + + <programlisting> +pain|pain.deep13.com|la machine de Forrester:\ + :cm=CONNECT pain\n:tc=deep13: +muffin|muffin.deep13.com|la machine de Frank:\ + :cm=CONNECT muffin\n:tc=deep13: +deep13:le concentrateur de l'Institut Gizmonics:\ + :dv=/dev/cua02:br#38400:at=hayes:du:pa=none:pn=5551234: + </programlisting> + + vous permettent d'utiliser <command>tip pain</command> + ou <command>tip muffin</command> pour vous connecter aux machines + pain ou muffin; et <command>tip + deep13</command> pour accéder à l'autre concentrateur.</para> + + </sect2> + + <sect2> + <title>tip peut-il essayer d'appeler plusieurs numéros pour + se connecter à un même site?</title> + + <para>C'est un problème fréquent dans les universités qui ont une + batterie de modems et des milliers d'étudiants qui essayent de + s'en servir...</para> + + <para>Définissez une entrée pour votre université dans + <filename>/etc/remote</filename> et employez <literal>@</literal> + pour la fonctionnalité <literal>pn</literal>:</para> + + <programlisting> +super-universite:\ + :pn=\@:tc=dialout +dialout:\ + :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none: + </programlisting> + + <para>Mettez ensuite les numéros de téléphone de l'université dans + <filename>/etc/phones</filename>:</para> + + <programlisting> +super-universite 5551111 +super-universite 5551112 +super-universite 5551113 +super-universite 5551114 + </programlisting> + + <para><command>tip</command> essayera d'appeler chacun de ces numéros + dans l'ordre, puis abandonnera la tentative. Si vous voulez + continuer à essayer de vous connecter, exécutez + <command>tip</command> dans une boucle “tant + que”.</para> + + </sect2> + + <sect2> + <title>pourquoi dois-je taper CTRL+P deux fois pour envoyer un + seul CTRL+P?</title> + + <para>CTRL+P est le caractère + d'échappement - “force” par défaut, + pour dire à <command>tip</command> que le caractère suivant est à + comprendre tel quel. Vous pouvez changer de caractère d'échappement + avec la commande <command>~s</command>, qui signifie + “définir une variable.”</para> + + <para>Tapez <command>~sforce=<replaceable>caractère</replaceable></command> + suivie d'un saut de ligne. <replaceable>caractère</replaceable> peut + être n'importe quel caractère. Si vous n'indiquez pas de + <replaceable>caractère</replaceable>, alors le caractère + d'échappement est le caractère “nul”, qui s'obtient en + tapant CTRL+2 ou CTRL+barre d'espacement. Une bonne valeur + à donner à <replaceable>caractère</replaceable> est SHIFT+CTRL+6, + que je n'ai jamais vue utilisée ailleurs que sur certains + concentrateurs.</para> + + <para>vous pouvez aussi donner la valeur que vous voulez au caractère + d'échappement en mettant la ligne suivante dans votre fichier + <filename>$HOME/.tiprc</filename>:</para> + + <programlisting> +force=<caractère> + </programlisting> + + </sect2> + + <sect2> + <title>Tout ce que je tape s'affiche tout à coup en + MAJUSCULES?</title> + + <para>Vous avez appuyé sur CTRL+A, c'est le caractère + “majuscules” de <command>tip</command>, à l'usage + particulier de ceux dont la touche “Majuscules” ne + fonctionne pas. Utilisez <command>~s</command> comme précédemment et + donnez une valeur raisonnable à la variable + <literal>raisechar</literal>. Vous pouvez d'ailleurs lui donner la + même valeur qu'au caractère d'échappement, si vous n'avez pas + l'intention de les utiliser l'un et l'autre.</para> + + <para>Voici une exemple de fichier <filename>.tiprc</filename> idéal + pour les utilisateurs d'<command>Emacs</command> qui ont souvent + besoin de CTRL+2 et CTRL+A:</para> + + <programlisting> +force=^^ +raisechar=^^ + </programlisting> + + <para>^^ équivaut à SHIFT+CTRL+6.</para> + + </sect2> + + <sect2> + <title>Comment puis-je transférer des fichiers avec + <command>tip</command>?</title> + + <para>Si vous dialoguez avec un autre système Unix, + vous pouvez envoyer + et recevoir des fichiers avec <command>~p</command> + (“put”) et <command>~t</command> (“take”). + Ces commandes lancent + <command>cat</command> et <command>echo</command> sur le système + distant pour qu'il reçoive et envoie des fichiers. La syntaxe + est:</para> + + <cmdsynopsis> + <command>~p</command> + <arg choice="plain">fichier_local</arg> + <arg choice="opt">fichier_distant</arg> + </cmdsynopsis> + + <cmdsynopsis> + <command>~t</command> + <arg choice="plain">fichier_distant</arg> + <arg choice="opt">fichier_local</arg> + </cmdsynopsis> + + <para>Il n'y a aucun contrôle, vous devriez probablement utiliser un + autre protocole, comme zmodem.</para> + + </sect2> + + <sect2> + <title>Comment puis-je utiliser <command>zmodem</command> avec + <command>tip</command>?</title> + + <para>Pour récupérer des fichiers, lancez le programmes de transfert + sur la machine distante. Puis tapez <command>~C rz</command> pour + commencer à les recevoir.</para> + + <para>Pour transmettre des fichiers, lancer le programme de réception + sur la machine distante. Puis, tapez <command>~C sz + <replaceable>fichiers</replaceable></command> pour les lui + envoyer.</para> + + </sect2> + </sect1> + </chapter> +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-shorttag: nil + sgml-always-quote-attributes: t + sgml-minimize-attributes: max + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> diff --git a/fr_FR.ISO_8859-1/books/handbook/staff/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/staff/chapter.sgml new file mode 100644 index 0000000000..1a68a2c364 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/staff/chapter.sgml @@ -0,0 +1,859 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: 1.17 +--> + +<!-- + Please try to keep the CVSROOT/avail file in sync with the list of + FreeBSD developers. +--> + +<chapter id="staff"> + <title>L'équipe du projet FreeBSD</title> + + <para>Le projet FreeBSD est géré et mis en oeuvre par les + groupes de personnes suivantes :</para> + + <sect1 id="staff-core"> + <title>L'équipe de base + FreeBSD - <foreignphrase>Core Team</foreignphrase></title> + + <para>L'équipe de base de FreeBSD constitue le “Comité + de Direction” du projet, responsable de définir les objectifs + et l'orientation du projet ainsi que de la gestion de + <link linkend="staff-who">sections spécifiques</link> de l'ensemble + du projet FreeBSD.</para> + + <para>(par ordre alphabétique de patronyme) :</para> + + <itemizedlist> + <listitem> + <para>&a.asami;</para> + </listitem> + + <listitem> + <para>&a.jmb;</para> + </listitem> + + <listitem> + <para>&a.ache;</para> + </listitem> + + <listitem> + <para>&a.bde;</para> + </listitem> + + <listitem> + <para>&a.gibbs;</para> + </listitem> + + <listitem> + <para>&a.dg;</para> + </listitem> + + <listitem> + <para>&a.jkh;</para> + </listitem> + + <listitem> + <para>&a.phk;</para> + </listitem> + + <listitem> + <para>&a.rich;</para> + </listitem> + + <listitem> + <para>&a.gpalmer;</para> + </listitem> + + <listitem> + <para>&a.jdp;</para> + </listitem> + + <listitem> + <para>&a.sos;</para> + </listitem> + + <listitem> + <para>&a.peter;</para> + </listitem> + + <listitem> + <para>&a.wollman;</para> + </listitem> + + <listitem> + <para>&a.joerg;</para> + </listitem> + </itemizedlist> + </sect1> + + <sect1 id="staff-committers"> + <title>Les développeurs FreeBSD</title> + + <para>Ce sont ceux qui ont les droits d'écriture et effectuent le + travail d'ingénierie sur l'arborescence des sources. Tous les + membres de l'équipe de base sont aussi développeurs.</para> + + <itemizedlist> + <listitem> + <para>&a.ugen;</para> + </listitem> + + <listitem> + <para>&a.mbarkah;</para> + </listitem> + + <listitem> + <para>&a.stb;</para> + </listitem> + + <listitem> + <para>&a.pb;</para> + </listitem> + + <listitem> + <para>&a.abial;</para> + </listitem> + + <listitem> + <para>&a.jb;</para> + </listitem> + + <listitem> + <para>&a.torstenb;</para> + </listitem> + + <listitem> + <para>&a.dburr;</para> + </listitem> + + <listitem> + <para>&a.charnier;</para> + </listitem> + + <listitem> + <para>&a.luoqi;</para> + </listitem> + + <listitem> + <para>&a.ejc;</para> + </listitem> + + <listitem> + <para>&a.kjc;</para> + </listitem> + + <listitem> + <para>&a.gclarkii;</para> + </listitem> + + <listitem> + <para>&a.archie</para> + </listitem> + + <listitem> + <para>&a.cracauer;</para> + </listitem> + + <listitem> + <para>&a.adam;</para> + </listitem> + + <listitem> + <para>&a.dillon;</para> + </listitem> + + <listitem> + <para>&a.dufault;</para> + </listitem> + + <listitem> + <para>&a.uhclem;</para> + </listitem> + + <listitem> + <para>&a.tegge;</para> + </listitem> + + <listitem> + <para>&a.eivind;</para> + </listitem> + + <listitem> + <para>&a.julian;</para> + </listitem> + + <listitem> + <para>&a.rse;</para> + </listitem> + + <listitem> + <para>&a.se;</para> + </listitem> + + <listitem> + <para>&a.sef;</para> + </listitem> + + <listitem> + <para>&a.fenner;</para> + </listitem> + + <listitem> + <para>&a.jfieber;</para> + </listitem> + + <listitem> + <para>&a.jfitz;</para> + </listitem> + + <listitem> + <para>&a.scrappy;</para> + </listitem> + + <listitem> + <para>&a.lars;</para> + </listitem> + + <listitem> + <para>&a.dirk;</para> + </listitem> + + <listitem> + <para>&a.shige;</para> + </listitem> + + <listitem> + <para>&a.billf;</para> + </listitem> + + <listitem> + <para>&a.gallatin;</para> + </listitem> + + <listitem> + <para>&a.tg;</para> + </listitem> + + <listitem> + <para>&a.brandon;</para> + </listitem> + + <listitem> + <para>&a.graichen;</para> + </listitem> + + <listitem> + <para>&a.jgreco;</para> + </listitem> + + <listitem> + <para>&a.rgrimes;</para> + </listitem> + + <listitem> + <para>&a.jmg;</para> + </listitem> + + <listitem> + <para>&a.hanai;</para> + </listitem> + + <listitem> + <para>&a.thepish;</para> + </listitem> + + <listitem> + <para>&a.jhay;</para> + </listitem> + + <listitem> + <para>&a.helbig;</para> + </listitem> + + <listitem> + <para>&a.ghelmer;</para> + </listitem> + + <listitem> + <para>&a.erich;</para> + </listitem> + + <listitem> + <para>&a.nhibma;</para> + </listitem> + + <listitem> + <para>&a.flathill;</para> + </listitem> + + <listitem> + <para>&a.foxfair;</para> + </listitem> + + <listitem> + <para>&a.hosokawa;</para> + </listitem> + + <listitem> + <para>&a.hsu;</para> + </listitem> + + <listitem> + <para>&a.mph;</para> + </listitem> + + <listitem> + <para>&a.itojun;</para> + </listitem> + + <listitem> + <para>&a.mjacob;</para> + </listitem> + + <listitem> + <para>&a.gj;</para> + </listitem> + + <listitem> + <para>&a.nsj;</para> + </listitem> + + <listitem> + <para>&a.ljo;</para> + </listitem> + + <listitem> + <para>&a.kato;</para> + </listitem> + + <listitem> + <para>&a.andreas;</para> + </listitem> + + <listitem> + <para>&a.motoyuki;</para> + </listitem> + + <listitem> + <para>&a.jkoshy;</para> + </listitem> + + <listitem> + <para>&a.kuriyama;</para> + </listitem> + + <listitem> + <para>&a.grog;</para> + </listitem> + + <listitem> + <para>&a.jlemon;</para> + </listitem> + + <listitem> + <para>&a.truckman;</para> + </listitem> + + <listitem> + <para>&a.imp;</para> + </listitem> + + <listitem> + <para>&a.smace;</para> + </listitem> + + <listitem> + <para>&a.mckay;</para> + </listitem> + + <listitem> + <para>&a.mckusick;</para> + </listitem> + + <listitem> + <para>&a.ken;</para> + </listitem> + + <listitem> + <para>&a.hm;</para> + </listitem> + + <listitem> + <para>&a.tedm;</para> + </listitem> + + <listitem> + <para>&a.amurai;</para> + </listitem> + + <listitem> + <para>&a.markm;</para> + </listitem> + + <listitem> + <para>&a.max;</para> + </listitem> + + <listitem> + <para>&a.alex;</para> + </listitem> + + <listitem> + <para>&a.newton;</para> + </listitem> + + <listitem> + <para>&a.rnordier;</para> + </listitem> + + <listitem> + <para>&a.davidn;</para> + </listitem> + + <listitem> + <para>&a.obrien;</para> + </listitem> + + <listitem> + <para>&a.danny;</para> + </listitem> + + <listitem> + <para>&a.ljo;</para> + </listitem> + + <listitem> + <para>&a.fsmp;</para> + </listitem> + + <listitem> + <para>&a.smpatel;</para> + </listitem> + + <listitem> + <para>&a.wpaul;</para> + </listitem> + + <listitem> + <para>&a.jmacd;</para> + </listitem> + + <listitem> + <para>&a.wes;</para> + </listitem> + + <listitem> + <para>&a.steve;</para> + </listitem> + + <listitem> + <para>&a.mpp;</para> + </listitem> + + <listitem> + <para>&a.dfr;</para> + </listitem> + + <listitem> + <para>&a.jraynard;</para> + </listitem> + + <listitem> + <para>&a.darrenr;</para> + </listitem> + + <listitem> + <para>&a.csgr;</para> + </listitem> + + <listitem> + <para>&a.martin;</para> + </listitem> + + <listitem> + <para>&a.paul;</para> + </listitem> + + <listitem> + <para>&a.roberto;</para> + </listitem> + + <listitem> + <para>&a.chuckr;</para> + </listitem> + + <listitem> + <para>&a.guido;</para> + </listitem> + + <listitem> + <para>&a.dima;</para> + </listitem> + + <listitem> + <para>&a.sada;</para> + </listitem> + + <listitem> + <para>&a.nsayer;</para> + </listitem> + + <listitem> + <para>&a.wosch;</para> + </listitem> + + <listitem> + <para>&a.ats;</para> + </listitem> + + <listitem> + <para>&a.jseger;</para> + </listitem> + + <listitem> + <para>&a.simokawa;</para> + </listitem> + + <listitem> + <para>&a.vanilla;</para> + </listitem> + + <listitem> + <para>&a.msmith;</para> + </listitem> + + <listitem> + <para>&a.des;</para> + </listitem> + + <listitem> + <para>&a.brian;</para> + </listitem> + + <listitem> + <para>&a.mks;</para> + </listitem> + + <listitem> + <para>&a.stark;</para> + </listitem> + + <listitem> + <para>&a.karl;</para> + </listitem> + + <listitem> + <para>&a.taoka;</para> + </listitem> + + <listitem> + <para>&a.dt;</para> + </listitem> + + <listitem> + <para>&a.cwt;</para> + </listitem> + + <listitem> + <para>&a.pst;</para> + </listitem> + + <listitem> + <para>&a.hoek;</para> + </listitem> + + <listitem> + <para>&a.nectar;</para> + </listitem> + + <listitem> + <para>&a.swallace;</para> + </listitem> + + <listitem> + <para>&a.dwhite;</para> + </listitem> + + <listitem> + <para>&a.nate;</para> + </listitem> + + <listitem> + <para>&a.yokota;</para> + </listitem> + + <listitem> + <para>&a.jmz;</para> + </listitem> + </itemizedlist> + </sect1> + + <sect1 id="staff-doc"> + <title>Le projet de documentation de FreeBSD</title> + + <para>Le <ulink URL="http://www.freebsd.org/docproj.html">Projet de + documentation de FreeBSD</ulink> est responsable d'une série de + services, chacun étant géré par une personne et ses + <emphasis>adjoints</emphasis> (le cas échéant) :</para> + + <variablelist> + <varlistentry> + <term>Gestion du projet de documentation</term> + + <listitem> + <para>&a.nik;</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Webmestre</term> + + <listitem> + <para>&a.wosch;</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Rédacteur en chef des Manuel de référence + & Foire Aux Questions</term> + + <listitem> + <para>&a.faq;</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Rédacteur en chef pour les nouvelles</term> + + <listitem> + <para>&a.nsj;</para> + + <para><emphasis>Adjoint :</emphasis> &a.john;</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Rédacteur en chef de la lettre d'information succinte de + FreeBSD</term> + + <listitem> + <para>Chris Coleman <email>chrisc@vmunix.com</email></para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Rédacteur en chef de la galerie</term> + + <listitem> + <para>&a.nsj;</para> + + <para><emphasis>Adjoint :</emphasis> &a.cawimm;</para> + + </listitem> + </varlistentry> + + <varlistentry> + <term>Rédacteur en chef commercial</term> + + <listitem> + <para>&a.mbarkah;</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Rédacteur en chef pour les modifications au site Web</term> + + <listitem> + <para>&a.mbarkah;</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Coordination du style (Polices) & graphisme</term> + + <listitem> + <para>&a.opsys;</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Ingénieur base de données</term> + + <listitem> + <para>&a.mayo;</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Ingénieur CGI</term> + + <listitem> + <para>&a.stb;</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Finalisation</term> + + <listitem> + <para>&a.nsj;</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Conversion de LinuxDoc à DocBook</term> + + <listitem> + <para>&a.nik;</para> + </listitem> + </varlistentry> + </variablelist> + </sect1> + + <sect1 id="staff-who"> + <title>Qui est responsable de quoi</title> + + <variablelist> + <varlistentry> + <term>Architecte principal</term> + + <listitem> + <para>&a.dg;</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><ulink + url="http://www.freebsd.org/docproj/docproj.html">Gestionnaire du + projet de documentation</ulink></term> + + <listitem> + <para>&a.nik;</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><link linkend="l10n">Internationalisation</link></term> + + <listitem> + <para>&a.ache;</para> + </listitem> + </varlistentry> + + <varlistentry><term>Réseau</term> + + <listitem> + <para>&a.wollman;</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><link linkend="eresources-mail">Postmaster</link></term> + + <listitem> + <para>&a.jmb;</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Coordination des versions</term> + + <listitem> + <para>&a.jkh;</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Relations publiques & avec les entreprises²</term> + + <listitem> + <para>&a.jkh;</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><ulink url="http://www.freebsd.org/security/">Officier de + sécurité</ulink></term> + + <listitem> + <para>&a.imp;</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><ulink url="http://www.freebsd.org/support.html#cvs">Gestionnaires + des archives CVS</ulink></term> + + <listitem> + <para>Principal : &a.peter;</para> + + <para>Assistant : &a.jdp;</para> + + <para>International (Crypto) : &a.markm;</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><ulink url="http://www.freebsd.org/ports/">Gestionnaire du + catalogue des logiciels portés</ulink></term> + + <listitem> + <para>&a.asami;</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Liaison avec XFree86 Project, Inc.</term> + + <listitem> + <para>&a.rich;</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><link linkend="eresources-news">Support des forums de + discussion</link></term> + + <listitem> + <para>&a.joerg;</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><ulink url="http://www.freebsd.org/support.html#gnats">Administrateur + GNATS</ulink></term> + + <listitem> + <para>&a.steve;</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><ulink + url="http://www.freebsd.org/internal/">Webmestre</ulink></term> + + <listitem> + <para>&a.wosch;</para> + </listitem> + </varlistentry> + </variablelist> + </sect1> +</chapter> + +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-always-quote-attributes: t + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> + diff --git a/fr_FR.ISO_8859-1/books/handbook/todo.sgml b/fr_FR.ISO_8859-1/books/handbook/todo.sgml new file mode 100644 index 0000000000..e471e64082 --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/todo.sgml @@ -0,0 +1,9 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: n.nn +--> + +<para>*** A Traduire ***</para> diff --git a/fr_FR.ISO_8859-1/books/handbook/x11/chapter.sgml b/fr_FR.ISO_8859-1/books/handbook/x11/chapter.sgml new file mode 100644 index 0000000000..9f8d633ade --- /dev/null +++ b/fr_FR.ISO_8859-1/books/handbook/x11/chapter.sgml @@ -0,0 +1,29 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: 1.5 +--> + +<chapter id="x11"> + <title>Le système X Window</title> + + <para>En attendant que la rédaction de ce chapitre soit + terminée, reportez-vous s'il vous plaît à la + documentation fournie par + <ulink URL="http://www.xfree86.org/">The XFree86 Project, + Inc</ulink>.</para> +</chapter> + +<!-- + Local Variables: + mode: sgml + sgml-declaration: "../chapter.decl" + sgml-indent-data: t + sgml-omittag: nil + sgml-always-quote-attributes: t + sgml-parent-document: ("../handbook.sgml" "part" "chapter") + End: +--> + diff --git a/fr_FR.ISO_8859-1/share/sgml/abstract.ent b/fr_FR.ISO_8859-1/share/sgml/abstract.ent new file mode 100644 index 0000000000..8ebec98cff --- /dev/null +++ b/fr_FR.ISO_8859-1/share/sgml/abstract.ent @@ -0,0 +1,15 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + Références vers d'autres fichiers qui peuvent être inclus à l'intérieur + d'un élément Abstract. Les noms des éléments sont de la forme + "abstract.<element>", où <element> est le texte de la partie visible de + l'entité. Exemple : "abstract.legalnotice" et "abstract.preface". + + $FreeBSD$ + Original revision: N/A +--> + +<!ENTITY abstract.license SYSTEM "license.sgml"> +<!ENTITY abstract.disclaimer SYSTEM "disclaimer.sgml"> diff --git a/fr_FR.ISO_8859-1/share/sgml/artheader.ent b/fr_FR.ISO_8859-1/share/sgml/artheader.ent new file mode 100644 index 0000000000..90b7b739ca --- /dev/null +++ b/fr_FR.ISO_8859-1/share/sgml/artheader.ent @@ -0,0 +1,14 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + Références vers d'autres fichiers qui peuvent être inclus à l'intérieur + d'un élément ArtHeader. Les noms des éléments sont de la forme + "artheader.<element>", où <element> est le texte de la partie visible de + l'entité. Exemple : "artheader.legalnotice" et "artheader.preface". + + $FreeBSD$ + Original revision: N/A +--> + +<!ENTITY artheader.copyright SYSTEM "copyright.sgml"> diff --git a/fr_FR.ISO_8859-1/share/sgml/bookinfo.ent b/fr_FR.ISO_8859-1/share/sgml/bookinfo.ent new file mode 100644 index 0000000000..fcd691b83d --- /dev/null +++ b/fr_FR.ISO_8859-1/share/sgml/bookinfo.ent @@ -0,0 +1,16 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + Références vers d'autres fichiers qui peuvent être inclus à l'intérieur + d'un élément BookInfo. Les noms des éléments sont de la forme + "bookinfo.<element>", où <element> est le texte de la partie visible de + l'entité. Exemple : "bookinfo.legalnotice" et "bookinfo.preface". + + $FreeBSD$ + Original revision: N/A +--> + +<!ENTITY bookinfo.legalnotice SYSTEM "legalnotice.sgml"> +<!ENTITY bookinfo.license SYSTEM "license.sgml"> +<!ENTITY bookinfo.disclaimer SYSTEM "disclaimer.sgml"> diff --git a/fr_FR.ISO_8859-1/share/sgml/copyright.sgml b/fr_FR.ISO_8859-1/share/sgml/copyright.sgml new file mode 100644 index 0000000000..70b2222f34 --- /dev/null +++ b/fr_FR.ISO_8859-1/share/sgml/copyright.sgml @@ -0,0 +1,13 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: N/A +--> + +<copyright> + <year>1999</year> + <holder>Groupe de Documentation de FreeBSD. Tous droits + réservés.</holder> +</copyright> diff --git a/fr_FR.ISO_8859-1/share/sgml/disclaimer.sgml b/fr_FR.ISO_8859-1/share/sgml/disclaimer.sgml new file mode 100644 index 0000000000..3946a1c2c0 --- /dev/null +++ b/fr_FR.ISO_8859-1/share/sgml/disclaimer.sgml @@ -0,0 +1,19 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: N/A +--> + +<para>CE DOCUMENT EST FOURNI “TEL QU'EN L'ÉTAT” PAR LE + PROJET DE DOCUMENTATION FRANÇAISE DE FreeBSD ET IL N'EST DONNÉ + AUCUNE GARANTIE, IMPLICITE OU EXPLICITE, QUANT À SON UTILISATION + COMMERCIALE, PROFESSIONNELLE OU AUTRE. LES COLLABORATEURS DU PROJET DE + DOCUMENTATION FRANÇAISE DE FreeBSD NE PEUVENT EN AUCUN CAS ÊTRE + TENUS POUR RESPONSABLES DE QUELQUE DOMMAGE OU PRÉJUDICE DIRECT, + INDIRECT, SECONDAIRE OU ACCESSOIRE (Y COMPRIS LES PERTES FINANCIèRES + DUES AU MANQUE À GAGNER, À L'INTERRUPTION D'ACTIVITÉS, + OU LA PERTE D'INFORMATIONS ET AUTRES) DÉCOULANT DE L'UTILISATION DE + LA DOCUMENTATION OU DE L'IMPOSSIBILITÉ D'UTILISER CELLE-CI, ET DONT + L'UTILISATEUR ACCEPTE L'ENTIÈRE RESPONSABILITÉ.</para> diff --git a/fr_FR.ISO_8859-1/share/sgml/legalnotice.sgml b/fr_FR.ISO_8859-1/share/sgml/legalnotice.sgml new file mode 100644 index 0000000000..f3ad36c2e0 --- /dev/null +++ b/fr_FR.ISO_8859-1/share/sgml/legalnotice.sgml @@ -0,0 +1,14 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: N/A +--> + +<legalnotice> + &bookinfo.license; + <important> + &bookinfo.disclaimer; + </important> +</legalnotice> diff --git a/fr_FR.ISO_8859-1/share/sgml/license.sgml b/fr_FR.ISO_8859-1/share/sgml/license.sgml new file mode 100644 index 0000000000..494968772d --- /dev/null +++ b/fr_FR.ISO_8859-1/share/sgml/license.sgml @@ -0,0 +1,27 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + $FreeBSD$ + Original revision: N/A +--> + +<para>La redistribution du code source (SGML), modifié ou non, et + compilé (HTML, PostScript, etc.) est soumise aux conditions + suivantes :</para> + +<para> + <orderedlist> + <listitem> + <para>Le copyright ci-dessus, la présente liste de conditions et + l'avertissement qui la suit doivent figurer dans le code + source.</para> + </listitem> + + <listitem> + <para>Le code source distribué sous forme compilé doit + faire apparaître le copyright ci-dessus, la présente + liste de conditions et l'avertissement qui la suit.</para> + </listitem> + </orderedlist> +</para> diff --git a/fr_FR.ISO_8859-1/share/sgml/translators.ent b/fr_FR.ISO_8859-1/share/sgml/translators.ent new file mode 100644 index 0000000000..d911c3e6ff --- /dev/null +++ b/fr_FR.ISO_8859-1/share/sgml/translators.ent @@ -0,0 +1,46 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + Noms et adresses de courrier électronique des membres de l'équipe de + traduction francaise + + $FreeBSD$ + Original revision: N/A +--> + +<!ENTITY a.breard "Renaud Bréard + <email>renaud.breard@easynet.fr</email>"> +<!ENTITY a.brive "Robert Brive + <email>brive@mail.dotcom.fr</email>"> +<!ENTITY a.dntt "Tuyet Tram Dang Ngoc + <email>dntt@prism.uvsq.fr</email>"> +<!ENTITY a.gioria "Sébastien Gioria + <email>gioria@francenet.fr</email>"> +<!ENTITY a.haby "Frédéric Haby + <email>frederic.haby@mail.dotcom.fr</email>"> +<!ENTITY a.laurand "Pierre-François Laurand + <email>pushf@club-internet.fr</email>"> +<!ENTITY a.legrand "Stéphane Legrand + <email>Stephane.Legrand@wanadoo.fr</email>"> +<!ENTITY a.nolin "Philippe Nolin + <email>philippe.nolin@mail.dotcom.fr</email>"> + +<!-- Traductions --> + +<!ENTITY trans.a.breard + "<para><emphasis>Version française de &a.breard;.</emphasis></para>"> +<!ENTITY trans.a.brive + "<para><emphasis>Version française de &a.brive;.</emphasis></para>"> +<!ENTITY trans.a.dntt + "<para><emphasis>Version française de &a.dntt;.</emphasis></para>"> +<!ENTITY trans.a.gioria + "<para><emphasis>Version française de &a.gioria;.</emphasis></para>"> +<!ENTITY trans.a.haby + "<para><emphasis>Version française de &a.haby;.</emphasis></para>"> +<!ENTITY trans.a.legrand + "<para><emphasis>Version française de &a.legrand;.</emphasis></para>"> +<!ENTITY trans.a.nolin + "<para><emphasis>Version française de &a.nolin;.</emphasis></para>"> +<!ENTITY trans.a.laurand + "<para><emphasis>Version française de &a.laurand;.</emphasis></para>"> diff --git a/fr_FR.ISO_8859-1/share/sgml/urls.ent b/fr_FR.ISO_8859-1/share/sgml/urls.ent new file mode 100644 index 0000000000..012a4072c7 --- /dev/null +++ b/fr_FR.ISO_8859-1/share/sgml/urls.ent @@ -0,0 +1,22 @@ +<!-- + The FreeBSD Documentation Project + The FreeBSD French Documentation Project + + URLs des documents les plus utilisés. Comme ces documents peuvent changer + de place dans l'arborescence des documentations (et du site web), il faut + disposer de variables pour ces URLs. Ces URLs peuvent être absolues ou + relative aux documents. + + $FreeBSD$ + Original revision: N/A +--> + +<!ENTITY url.base "http://www.freebsd-fr.org/"> +<!ENTITY url.doc "../"> +<!ENTITY url.faq "&url.doc;faq/"> +<!ENTITY url.handbook "&url.doc;handbook/"> +<!ENTITY url.tutorials "&url.doc;"> +<!ENTITY url.others "&url.doc;"> +<!ENTITY url.picobsd "&url.doc;picobsd"> +<!ENTITY url.press "&url.doc;"> +<!ENTITY url.www "&url.base;www/fr_FR.ISO_8859-1/"> |